mirror of
https://github.com/torvalds/linux.git
synced 2024-09-29 19:33:13 +00:00
ef1100ef20
When the ksz module is installed and removed using rmmod, kernel crashes
with null pointer dereferrence error. During rmmod, ksz_switch_remove
function tries to cancel the mib_read_workqueue using
cancel_delayed_work_sync routine and unregister switch from dsa.
During dsa_unregister_switch it calls ksz_mac_link_down, which in turn
reschedules the workqueue since mib_interval is non-zero.
Due to which queue executed after mib_interval and it tries to access
dp->slave. But the slave is unregistered in the ksz_switch_remove
function. Hence kernel crashes.
To avoid this crash, before canceling the workqueue, resetted the
mib_interval to 0.
v1 -> v2:
-Removed the if condition in ksz_mib_read_work
Fixes:
|
||
---|---|---|
.. | ||
Kconfig | ||
ksz_common.c | ||
ksz_common.h | ||
ksz8.h | ||
ksz8795_reg.h | ||
ksz8795_spi.c | ||
ksz8795.c | ||
ksz8863_smi.c | ||
ksz9477_i2c.c | ||
ksz9477_reg.h | ||
ksz9477_spi.c | ||
ksz9477.c | ||
Makefile |