[BUG] b44: two possible sleep-in-atomic bugs in b44_set_link_ksettings and b44_ioctl

From: Jia-Ju Bai
Date: Tue Dec 12 2017 - 22:30:05 EST


The driver may sleep under a spinlock.
The function call paths are:
b44_set_link_ksettings (acquire the spinlock)
phy_ethtool_ksettings_set
phy_start_aneg
phy_start_aneg_priv
mutex_lock --> may sleep

b44_ioctl (acquire the spinlock)
phy_mii_ioctl
mdiobus_read
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