linux-stable/drivers/net/ethernet/chelsio
Shahjada Abul Husain 015fe6fd29 cxgb4: fix IRQ free race during driver unload
IRQs are requested during driver's ndo_open() and then later
freed up in disable_interrupts() during driver unload.
A race exists where driver can set the CXGB4_FULL_INIT_DONE
flag in ndo_open() after the disable_interrupts() in driver
unload path checks it, and hence misses calling free_irq().

Fix by unregistering netdevice first and sync with driver's
ndo_open(). This ensures disable_interrupts() checks the flag
correctly and frees up the IRQs properly.

Fixes: b37987e8db ("cxgb4: Disable interrupts and napi before unregistering netdev")
Signed-off-by: Shahjada Abul Husain <shahjada@chelsio.com>
Signed-off-by: Raju Rangoju <rajur@chelsio.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2021-07-08 13:34:13 -07:00
..
cxgb chelsio: cxgb: Disable the card on error in threaded interrupt 2021-02-03 17:41:01 -08:00
cxgb3 net:cxgb3: fix incorrect work cancellation 2021-06-04 14:46:17 -07:00
cxgb4 cxgb4: fix IRQ free race during driver unload 2021-07-08 13:34:13 -07:00
cxgb4vf net: chelsio: cxgb4vf: Fix wrong function name in comments 2021-05-17 14:12:38 -07:00
inline_crypto net: sock: introduce sk_error_report 2021-06-29 11:28:21 -07:00
libcxgb
Kconfig cxgb4: Fix build failure when CONFIG_TLS=m 2020-11-21 13:10:18 -08:00
Makefile chelsio/chtls: separate chelsio tls driver from crypto driver 2020-08-21 14:15:15 -07:00