diff options
author | Julian Andres Klode <jak@jak-linux.org> | 2011-09-27 19:01:00 +0200 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2011-09-29 17:41:37 -0700 |
commit | 8da798634343de8dbb8c1593923f8368db69f838 (patch) | |
tree | d1be25cf1ce87714c46cfda17e2af29726108f34 /drivers/staging/nvec | |
parent | bb0590e2723eed53b524d61cf011d53fc7280949 (diff) |
staging: nvec: Handle filled up RX buffers
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>
Diffstat (limited to 'drivers/staging/nvec')
-rw-r--r-- | drivers/staging/nvec/nvec.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/drivers/staging/nvec/nvec.c b/drivers/staging/nvec/nvec.c index c05adcd7fbf..e845f58a8d7 100644 --- a/drivers/staging/nvec/nvec.c +++ b/drivers/staging/nvec/nvec.c @@ -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; |