Patch "can: at91_can: RX queue could get stuck at high bus load" has been added to the 4.4-stable tree
Subsystems (3)
This is a note to let you know that I've just added the patch titled
can: at91_can: RX queue could get stuck at high bus load
to the 4.4-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
The filename of the patch is:
can-at91_can-rx-queue-could-get-stuck-at-high-bus-load.patch
and it can be found in the queue-4.4 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.
Quoted 1 line
From
43200a4480cbbe660309621817f54cbb93907108Mon Sep 17 00:00:00 2001
From: Wolfgang Grandegger <[email protected]>
Date: Mon, 13 Jun 2016 15:44:19 +0200
Subject: can: at91_can: RX queue could get stuck at high bus load
From: Wolfgang Grandegger <[email protected]>
commit 43200a4480cbbe660309621817f54cbb93907108 upstream.
At high bus load it could happen that "at91_poll()" enters with all RX message boxes filled up. If then at the end the "quota" is exceeded as well, "rx_next" will not be reset to the first RX mailbox and hence the interrupts remain disabled.
--- drivers/net/can/at91_can.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-)
drivers/net/can/at91_can.c +3 -2
@@ -712,9 +712,10 @@ static int at91_poll_rx(struct net_devic/* upper group completed, look again in lower */ if (priv->rx_next >get_mb_rx_low_last (priv) && - quota >0 && mb >get_mb_rx_last (priv)) { + mb >get_mb_rx_last (priv)) { priv->rx_next =get_mb_rx_first (priv); - goto again; +if (quota >0 ) + goto again; }return received;
Patches currently in stable-queue which might be from [email protected] are
queue-4.4/can-at91_can-rx-queue-could-get-stuck-at-high-bus-load.patch