1
0
Fork 0

staging: nvec: Reject incomplete messages

Reject incomplete messages, causing the request to be
transmitted again. This should fix various problems
out there.

Signed-off-by: Julian Andres Klode <jak@jak-linux.org>
Acked-by: Marc Dietrich <marvin24@gmx.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
hifive-unleashed-5.1
Julian Andres Klode 2011-09-27 19:01:01 +02:00 committed by Greg Kroah-Hartman
parent 8da7986343
commit 210ceb4f68
1 changed files with 6 additions and 1 deletions

View File

@ -439,11 +439,16 @@ static void nvec_tx_completed(struct nvec_chip *nvec)
*/
static void nvec_rx_completed(struct nvec_chip *nvec)
{
if (nvec->rx->pos != nvec_msg_size(nvec->rx))
if (nvec->rx->pos != nvec_msg_size(nvec->rx)) {
dev_err(nvec->dev, "RX incomplete: Expected %u bytes, got %u\n",
(uint) nvec_msg_size(nvec->rx),
(uint) nvec->rx->pos);
nvec_msg_free(nvec, nvec->rx);
nvec->state = 0;
return;
}
spin_lock(&nvec->rx_lock);
/* add the received data to the work list