staging: nvec: Handle filled up RX buffers
authorJulian Andres Klode <jak@jak-linux.org>
Tue, 27 Sep 2011 17:01:00 +0000 (19:01 +0200)
committerGreg Kroah-Hartman <gregkh@suse.de>
Fri, 30 Sep 2011 00:41:37 +0000 (17:41 -0700)
If no RX buffer is available in state 1, jump to state
0 again. This will produce an incredible amount of
warnings, but it is not supposed to happen anyway.

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>
drivers/staging/nvec/nvec.c

index c05adcd..e845f58 100644 (file)
@@ -554,6 +554,11 @@ static irqreturn_t nvec_interrupt(int irq, void *dev)
                        nvec_invalid_flags(nvec, status, true);
                } else {
                        nvec->rx = nvec_msg_alloc(nvec, NVEC_MSG_RX);
+                       /* Should not happen in a normal world */
+                       if (unlikely(nvec->rx == NULL)) {
+                               nvec->state = 0;
+                               break;
+                       }
                        nvec->rx->data[0] = received;
                        nvec->rx->pos = 1;
                        nvec->state = 2;