diff options
author | Sergei Shtylyov <sergei.shtylyov@cogentembedded.com> | 2013-09-04 02:41:27 +0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2013-09-04 14:55:34 -0400 |
commit | d2779e99468fd83ef1493c34f3803fec9aad8345 (patch) | |
tree | 4b240a6296af57e1340a68c37df65fd43ee861dc /drivers/net/ethernet/marvell | |
parent | 3a1c756590633c0e86df606e5c618c190926a0df (diff) |
sh_eth: fix napi_{en|dis}able() calls racing against interrupts
While implementing NAPI for the driver, I overlooked the race conditions where
interrupt handler might have called napi_schedule_prep() before napi_enable()
was called or after napi_disable() was called. If RX interrupt happens, this
would cause the endless interrupts and messages like:
sh-eth eth0: ignoring interrupt, status 0x00040000, mask 0x01ff009f.
The interrupt wouldn't even be masked by the kernel eventually since the handler
would return IRQ_HANDLED all the time.
As a fix, move napi_enable() call before request_irq() call and napi_disable()
call after free_irq() call.
Signed-off-by: Sergei Shtylyov <sergei.shtylyov@cogentembedded.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/ethernet/marvell')
0 files changed, 0 insertions, 0 deletions