From: Julian Andres Klode Date: Tue, 27 Sep 2011 17:01:01 +0000 (+0200) Subject: staging: nvec: Reject incomplete messages X-Git-Tag: v3.2-rc1~169^2^2~315 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=210ceb4f68dcc7bede2e3af547abd6f661a7bfda;p=profile%2Fivi%2Fkernel-x86-ivi.git 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 Acked-by: Marc Dietrich Signed-off-by: Greg Kroah-Hartman --- diff --git a/drivers/staging/nvec/nvec.c b/drivers/staging/nvec/nvec.c index e845f58..8c01723 100644 --- a/drivers/staging/nvec/nvec.c +++ b/drivers/staging/nvec/nvec.c @@ -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