Re: [PATCH net 1/1] via-velocity: fix netif_receive_skb use in irq disabled section.
From: David Miller <davem@davemloft.net>
Date: 2013-11-28 23:45:31
From: David Miller <davem@davemloft.net>
Date: 2013-11-28 23:45:31
From: Francois Romieu <romieu@fr.zoreil.com> Date: Tue, 26 Nov 2013 00:40:58 +0100
2fdac010bdcf10a30711b6924612dfc40daf19b8 ("via-velocity.c: update napi
implementation") overlooked an irq disabling spinlock when the Rx part
of the NAPI poll handler was converted from netif_rx to netif_receive_skb.
NAPI Rx processing can be taken out of the locked section with a pair of
napi_{disable / enable} since it only races with the MTU change function.
An heavier rework of the NAPI locking would be able to perform NAPI Tx
before Rx where I simply removed one of velocity_tx_srv calls.
References: https://bugzilla.redhat.com/show_bug.cgi?id=1022733
Fixes: 2fdac010bdcf (via-velocity.c: update napi implementation)
Signed-off-by: Francois Romieu <romieu@fr.zoreil.com>
Tested-by: Alex A. Schmidt <redacted>Applied and queued up for -stable, thanks. Just a note that we usually recommend to people to do TX processing before RX in NAPI, because the TX work can liberate packets and make them available to RX reclaim. But that would be quite hard with the approach you took to fix this bug simply.