summaryrefslogtreecommitdiff
path: root/staging/mops_ext_bpdu.c
diff options
context:
space:
mode:
Diffstat (limited to 'staging/mops_ext_bpdu.c')
0 files changed, 0 insertions, 0 deletions
it/?h=nds-private-remove&id=075ad765ef7541b2860de8408c165a92b78aefa3'>075ad765ef7541b2860de8408c165a92b78aefa3 (diff)
net: phy: Fix PHY module checks and NULL deref in phy_attach_direct()
The Generic PHY drivers gets assigned after we checked that the current PHY driver is NULL, so we need to check a few things before we can safely dereference d->driver. This would be causing a NULL deference to occur when a system binds to the Generic PHY driver. Update phy_attach_direct() to do the following: - grab the driver module reference after we have assigned the Generic PHY drivers accordingly, and remember we came from the generic PHY path - update the error path to clean up the module reference in case the Generic PHY probe function fails - split the error path involving phy_detacht() to avoid double free/put since phy_detach() does all the clean up - finally, have phy_detach() drop the module reference count before we call device_release_driver() for the Generic PHY driver case Fixes: cafe8df8b9bc ("net: phy: Fix lack of reference count on PHY driver") Signed-off-by: Florian Fainelli <f.fainelli@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat