CC: [email protected] BCC: [email protected] CC: [email protected] TO: Dongjin Kim <[email protected]>
tree: https://github.com/tobetter/linux odroid-5.19.y head: 0569e1291a824471ea27c9e90132881c0232a3a0 commit: 898624b63a33622330468fd8007048dc1981492d ODROID-COMMON: phy/realtek: add Wake-on-Lan to Realtek PHY date: 8 days ago :::::: branch date: 7 days ago :::::: commit date: 8 days ago config: i386-randconfig-m021-20220718 (https://download.01.org/0day-ci/archive/20220720/[email protected]/config) compiler: gcc-11 (Debian 11.3.0-3) 11.3.0 If you fix the issue, kindly add following tag where applicable Reported-by: kernel test robot <[email protected]> Reported-by: Dan Carpenter <[email protected]> smatch warnings: drivers/net/phy/phy_device.c:1772 phy_detach() error: we previously assumed 'dev' could be null (see line 1752) drivers/net/phy/phy_device.c:1784 phy_detach() warn: variable dereferenced before check 'dev' (see line 1772) vim +/dev +1772 drivers/net/phy/phy_device.c 6349084746ff4f Michael Walle 2020-05-06 1727 b3df0da886ffdb Randy Dunlap 2007-03-06 1728 /** b3df0da886ffdb Randy Dunlap 2007-03-06 1729 * phy_detach - detach a PHY device from its network device b3df0da886ffdb Randy Dunlap 2007-03-06 1730 * @phydev: target phy_device struct 7322967bc1bd97 Russell King 2015-09-24 1731 * 7322967bc1bd97 Russell King 2015-09-24 1732 * This detaches the phy device from its network device and the phy 7322967bc1bd97 Russell King 2015-09-24 1733 * driver, and drops the reference count taken in phy_attach_direct(). b3df0da886ffdb Randy Dunlap 2007-03-06 1734 */ e13934563db047 Andy Fleming 2005-08-24 1735 void phy_detach(struct phy_device *phydev) e13934563db047 Andy Fleming 2005-08-24 1736 { ec988ad78ed6d1 Florian Fainelli 2016-12-06 1737 struct net_device *dev = phydev->attached_dev; 2db2d9d1ac3722 Ioana Ciornei 2019-05-28 1738 struct module *ndev_owner = NULL; 3e3aaf64941698 Russell King 2015-09-24 1739 struct mii_bus *bus; b3565f278a9bab Ezequiel Garcia 2014-07-23 1740 a3995460491d45 Florian Fainelli 2017-05-27 1741 if (phydev->sysfs_links) { 2db2d9d1ac3722 Ioana Ciornei 2019-05-28 1742 if (dev) 5568363f0cb358 Florian Fainelli 2017-05-25 1743 sysfs_remove_link(&dev->dev.kobj, "phydev"); 5568363f0cb358 Florian Fainelli 2017-05-25 1744 sysfs_remove_link(&phydev->mdio.dev.kobj, "attached_dev"); a3995460491d45 Florian Fainelli 2017-05-27 1745 } c920f745f45d46 Ioana Ciornei 2019-05-28 1746 c920f745f45d46 Ioana Ciornei 2019-05-28 1747 if (!phydev->attached_dev) c920f745f45d46 Ioana Ciornei 2019-05-28 1748 sysfs_remove_file(&phydev->mdio.dev.kobj, c920f745f45d46 Ioana Ciornei 2019-05-28 1749 &dev_attr_phy_standalone.attr); c920f745f45d46 Ioana Ciornei 2019-05-28 1750 93f41e67dc8ff0 Heiner Kallweit 2018-09-24 1751 phy_suspend(phydev); 2db2d9d1ac3722 Ioana Ciornei 2019-05-28 @1752 if (dev) { c1f19b51d1d87f Richard Cochran 2010-07-17 1753 phydev->attached_dev->phydev = NULL; e13934563db047 Andy Fleming 2005-08-24 1754 phydev->attached_dev = NULL; 2db2d9d1ac3722 Ioana Ciornei 2019-05-28 1755 } 9525ae83959b60 Russell King 2017-07-25 1756 phydev->phylink = NULL; e13934563db047 Andy Fleming 2005-08-24 1757 0075bd692dca03 Geert Uytterhoeven 2016-11-28 1758 phy_led_triggers_unregister(phydev); 0075bd692dca03 Geert Uytterhoeven 2016-11-28 1759 c2b727df7caa33 Florian Fainelli 2020-09-16 1760 if (phydev->mdio.dev.driver) 6d9f66ac7fec2a Florian Fainelli 2017-02-08 1761 module_put(phydev->mdio.dev.driver->owner); 6d9f66ac7fec2a Florian Fainelli 2017-02-08 1762 e13934563db047 Andy Fleming 2005-08-24 1763 /* If the device had no specific driver before (i.e. - it e13934563db047 Andy Fleming 2005-08-24 1764 * was using the generic driver), we unbind the device e13934563db047 Andy Fleming 2005-08-24 1765 * from the generic driver so that there's a chance a 2f53e9047e79b6 Sergei Shtylyov 2014-01-05 1766 * real driver could be loaded 2f53e9047e79b6 Sergei Shtylyov 2014-01-05 1767 */ 5db5ea995fc2fa Florian Fainelli 2019-01-15 1768 if (phy_driver_is_genphy(phydev) || 5db5ea995fc2fa Florian Fainelli 2019-01-15 1769 phy_driver_is_genphy_10g(phydev)) e5a03bfd873c29 Andrew Lunn 2016-01-06 1770 device_release_driver(&phydev->mdio.dev); 3e3aaf64941698 Russell King 2015-09-24 1771 898624b63a3362 Dongjin Kim 2021-11-17 @1772 if (!dev->wol_enabled) { cbda1b16687580 Marek Behún 2022-01-19 1773 /* Assert the reset signal */ cbda1b16687580 Marek Behún 2022-01-19 1774 phy_device_reset(phydev, 1); 898624b63a3362 Dongjin Kim 2021-11-17 1775 } cbda1b16687580 Marek Behún 2022-01-19 1776 7322967bc1bd97 Russell King 2015-09-24 1777 /* 7322967bc1bd97 Russell King 2015-09-24 1778 * The phydev might go away on the put_device() below, so avoid 7322967bc1bd97 Russell King 2015-09-24 1779 * a use-after-free bug by reading the underlying bus first. 7322967bc1bd97 Russell King 2015-09-24 1780 */ e5a03bfd873c29 Andrew Lunn 2016-01-06 1781 bus = phydev->mdio.bus; 3e3aaf64941698 Russell King 2015-09-24 1782 e5a03bfd873c29 Andrew Lunn 2016-01-06 1783 put_device(&phydev->mdio.dev); 2db2d9d1ac3722 Ioana Ciornei 2019-05-28 @1784 if (dev) 2db2d9d1ac3722 Ioana Ciornei 2019-05-28 1785 ndev_owner = dev->dev.parent->driver->owner; ec988ad78ed6d1 Florian Fainelli 2016-12-06 1786 if (ndev_owner != bus->owner) 3e3aaf64941698 Russell King 2015-09-24 1787 module_put(bus->owner); e13934563db047 Andy Fleming 2005-08-24 1788 } e13934563db047 Andy Fleming 2005-08-24 1789 EXPORT_SYMBOL(phy_detach); e13934563db047 Andy Fleming 2005-08-24 1790 -- 0-DAY CI Kernel Test Service https://01.org/lkp _______________________________________________ kbuild mailing list -- [email protected] To unsubscribe send an email to [email protected]
