forked from Minki/linux
90364feaf7
>From what I can tell, spin_lock(&priv->lock) is not needed, since the phy_ethtool_ksettings_set call is not given the priv struct. phy_start_aneg takes the phydev->lock. Calls to phy_adjust_link from phy_state_machine also takes the phydev->lock. [ 13.718319] BUG: sleeping function called from invalid context at kernel/locking/mutex.c:97 [ 13.726717] in_atomic(): 1, irqs_disabled(): 0, pid: 1307, name: ethtool [ 13.742115] Hardware name: Axis ARTPEC-6 Platform [ 13.746829] [<80110568>] (unwind_backtrace) from [<8010c2bc>] (show_stack+0x18/0x1c) [ 13.754575] [<8010c2bc>] (show_stack) from [<80433484>] (dump_stack+0x80/0xa0) [ 13.761801] [<80433484>] (dump_stack) from [<80145428>] (___might_sleep+0x108/0x170) [ 13.769554] [<80145428>] (___might_sleep) from [<806c9b50>] (mutex_lock+0x24/0x44) [ 13.777128] [<806c9b50>] (mutex_lock) from [<8050cbc0>] (phy_start_aneg+0x1c/0x13c) [ 13.784783] [<8050cbc0>] (phy_start_aneg) from [<8050d338>] (phy_ethtool_ksettings_set+0x98/0xd0) [ 13.793656] [<8050d338>] (phy_ethtool_ksettings_set) from [<80517adc>] (stmmac_ethtool_set_link_ksettings+0xa0/0xb4) [ 13.804184] [<80517adc>] (stmmac_ethtool_set_link_ksettings) from [<805c5138>] (ethtool_set_settings+0xd4/0x13c) [ 13.814358] [<805c5138>] (ethtool_set_settings) from [<805c9718>] (dev_ethtool+0x13c4/0x211c) [ 13.822882] [<805c9718>] (dev_ethtool) from [<805dc7c0>] (dev_ioctl+0x480/0x8e0) [ 13.830291] [<805dc7c0>] (dev_ioctl) from [<80260e34>] (do_vfs_ioctl+0x94/0xa00) [ 13.837699] [<80260e34>] (do_vfs_ioctl) from [<802617dc>] (SyS_ioctl+0x3c/0x60) [ 13.845011] [<802617dc>] (SyS_ioctl) from [<801088bc>] (__sys_trace_return+0x0/0x10) Signed-off-by: Niklas Cassel <niklas.cassel@axis.com> Signed-off-by: David S. Miller <davem@davemloft.net> |
||
---|---|---|
.. | ||
altr_tse_pcs.c | ||
altr_tse_pcs.h | ||
chain_mode.c | ||
common.h | ||
descs_com.h | ||
descs.h | ||
dwmac4_core.c | ||
dwmac4_descs.c | ||
dwmac4_descs.h | ||
dwmac4_dma.c | ||
dwmac4_dma.h | ||
dwmac4_lib.c | ||
dwmac4.h | ||
dwmac100_core.c | ||
dwmac100_dma.c | ||
dwmac100.h | ||
dwmac1000_core.c | ||
dwmac1000_dma.c | ||
dwmac1000.h | ||
dwmac_dma.h | ||
dwmac_lib.c | ||
dwmac-generic.c | ||
dwmac-ipq806x.c | ||
dwmac-lpc18xx.c | ||
dwmac-meson8b.c | ||
dwmac-meson.c | ||
dwmac-oxnas.c | ||
dwmac-rk.c | ||
dwmac-socfpga.c | ||
dwmac-sti.c | ||
dwmac-stm32.c | ||
dwmac-sunxi.c | ||
enh_desc.c | ||
Kconfig | ||
Makefile | ||
mmc_core.c | ||
mmc.h | ||
norm_desc.c | ||
ring_mode.c | ||
stmmac_ethtool.c | ||
stmmac_hwtstamp.c | ||
stmmac_main.c | ||
stmmac_mdio.c | ||
stmmac_pci.c | ||
stmmac_pcs.h | ||
stmmac_platform.c | ||
stmmac_platform.h | ||
stmmac_ptp.c | ||
stmmac_ptp.h | ||
stmmac.h |