linux_dsm_epyc7002/drivers/net/ethernet/renesas
Vladimir Zapolskiy 05925e52a7 ravb: fix invalid context bug while changing link options by ethtool
The change fixes sleep in atomic context bug, which is encountered
every time when link settings are changed by ethtool.

Since commit 35b5f6b1a8 ("PHYLIB: Locking fixes for PHY I/O
potentially sleeping") phy_start_aneg() function utilizes a mutex
to serialize changes to phy state, however that helper function is
called in atomic context under a grabbed spinlock, because
phy_start_aneg() is called by phy_ethtool_ksettings_set() and by
replaced phy_ethtool_sset() helpers from phylib.

Now duplex mode setting is enforced in ravb_adjust_link() only, also
now RX/TX is disabled when link is put down or modifications to E-MAC
registers ECMR and GECMR are expected for both cases of checked and
ignored link status pin state from E-MAC interrupt handler.

Fixes: c156633f13 ("Renesas Ethernet AVB driver proper")
Signed-off-by: Vladimir Zapolskiy <vladimir_zapolskiy@mentor.com>
Reviewed-by: Sergei Shtylyov <sergei.shtylyov@cogentembedded.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2018-07-07 10:44:09 +09:00
..
Kconfig net: Remove depends on HAS_DMA in case of platform dependency 2018-06-23 10:44:30 +09:00
Makefile
ravb_main.c ravb: fix invalid context bug while changing link options by ethtool 2018-07-07 10:44:09 +09:00
ravb_ptp.c ravb: make ravb_ptp_interrupt() *void* 2016-04-14 00:48:33 -04:00
ravb.h ravb: add support for changing MTU 2018-02-16 16:34:50 -05:00
sh_eth.c sh_eth: remove custom .set_link_ksettings from ethtool ops 2018-07-07 10:44:09 +09:00
sh_eth.h sh_eth: uninline sh_eth_soft_swap() 2018-06-04 15:23:25 -04:00