[BUG] renesas/sh_eth: two possible sleep-in-atomic bugs in sh_eth_set_link_ksettings and sh_eth_nway_reset
From: Jia-Ju Bai
Date: Tue Dec 12 2017 - 22:39:33 EST
Accoring to drivers/net/ethernet/renesas/sh_eth.c, the driver may sleep
under a spinlock.
The function call paths are:
sh_eth_set_link_ksettings (acquire the spinlock)
phy_ethtool_ksettings_set
phy_start_aneg
phy_start_aneg_priv
mutex_lock --> may sleep
sh_eth_nway_reset (acquire the spinlock)
phy_start_aneg
phy_start_aneg_priv
mutex_lock --> may sleep
I do not find a good way to fix them, so I only report.
These possible bugs are found by my static analysis tool (DSAC) and
checked by my code review.
Thanks,
Jia-Ju Bai