mirror of
https://github.com/brain-hackers/linux-brain.git
synced 2024-06-09 23:36:23 +09:00
0e2ad69bd4
[ Upstream commit 2b52a4b65bc8f14520fe6e996ea7fb3f7e400761 ]
In the net core, the struct net_device_ops -> ndo_set_rx_mode()
callback is called with the dev->addr_list_lock spinlock held.
However, this driver's ndo_set_rx_mode callback eventually calls
lan743x_dp_write(), which acquires a mutex. Mutex acquisition
may sleep, and this is not allowed when holding a spinlock.
Fix by removing the dp_lock mutex entirely. Its purpose is to
prevent concurrent accesses to the data port. No concurrent
accesses are possible, because the dev->addr_list_lock
spinlock in the core only lets through one thread at a time.
Fixes:
|
||
---|---|---|
.. | ||
enc28j60_hw.h | ||
enc28j60.c | ||
encx24j600_hw.h | ||
encx24j600-regmap.c | ||
encx24j600.c | ||
Kconfig | ||
lan743x_ethtool.c | ||
lan743x_ethtool.h | ||
lan743x_main.c | ||
lan743x_main.h | ||
lan743x_ptp.c | ||
lan743x_ptp.h | ||
Makefile |