mirror-linux/drivers/net/phy
Yang Yingliang cdde156011 net: mdiobus: fix unbalanced node reference count
I got the following report while doing device(mscc-miim) load test
with CONFIG_OF_UNITTEST and CONFIG_OF_DYNAMIC enabled:

  OF: ERROR: memory leak, expected refcount 1 instead of 2,
  of_node_get()/of_node_put() unbalanced - destroy cset entry:
  attach overlay node /spi/soc@0/mdio@7107009c/ethernet-phy@0

If the 'fwnode' is not an acpi node, the refcount is get in
fwnode_mdiobus_phy_device_register(), but it has never been
put when the device is freed in the normal path. So call
fwnode_handle_put() in phy_device_release() to avoid leak.

If it's an acpi node, it has never been get, but it's put
in the error path, so call fwnode_handle_get() before
phy_device_register() to keep get/put operation balanced.

Fixes: bc1bee3b87 ("net: mdiobus: Introduce fwnode_mdiobus_register_phy()")
Signed-off-by: Yang Yingliang <yangyingliang@huawei.com>
Reviewed-by: Andrew Lunn <andrew@lunn.ch>
Link: https://lore.kernel.org/r/20221124150130.609420-1-yangyingliang@huawei.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2022-11-28 18:10:25 -08:00
..
mscc net: phy: mscc: macsec: clear encryption keys when freeing a flow 2022-11-10 11:58:52 +01:00
Kconfig net: phy: mxl-gpy: add temperature sensor 2022-06-23 20:55:18 -07:00
Makefile net: phy: broadcom: Add PTP support for some Broadcom PHYs. 2022-06-23 20:49:02 -07:00
adin.c net: move from strlcpy with unused retval to strscpy 2022-08-31 14:11:07 -07:00
adin1100.c net: phy: adin1100: add PHY IDs of adin1110/adin2111 2022-09-20 15:00:30 +02:00
amd.c
aquantia.h
aquantia_hwmon.c
aquantia_main.c net: phy: aquantia: Add support for rate matching 2022-09-23 11:56:18 +01:00
at803x.c net: phy: at803x: fix error return code in at803x_probe() 2022-11-21 20:43:01 -08:00
ax88796b.c net: phy: ax88772a: fix lost pause advertisement configuration 2022-06-29 20:39:05 -07:00
bcm-cygnus.c
bcm-phy-lib.c net: move from strlcpy with unused retval to strscpy 2022-08-31 14:11:07 -07:00
bcm-phy-lib.h net: phy: broadcom: Add Broadcom PTP hooks to bcm-phy-lib 2022-06-23 20:49:02 -07:00
bcm-phy-ptp.c net: phy: Add support for 1PPS out and external timestamps 2022-06-23 20:49:02 -07:00
bcm7xxx.c
bcm63xx.c
bcm87xx.c net: phy: bcm87xx: Use mmd helpers 2022-05-02 13:21:38 +02:00
bcm54140.c
bcm84881.c
broadcom.c net: phy: broadcom: Implement suspend/resume for AC131 and BCM5241 2022-08-17 11:49:23 +01:00
cicada.c
cortina.c
davicom.c
dp83tc811.c
dp83td510.c net: phy: dp83td510: add SQI support 2022-06-21 22:01:14 -07:00
dp83640.c dp83640: Use generic ptp_msg_is_sync() function 2022-03-07 11:31:34 +00:00
dp83640_reg.h
dp83822.c net: phy: dp83822: disable MDI crossover status change interrupt 2022-10-19 18:46:17 -07:00
dp83848.c
dp83867.c net: phy: dp83867: Fix SGMII FIFO depth for non OF devices 2022-11-11 19:58:44 -08:00
dp83869.c net: phy: add support for TI DP83561-SP phy 2021-11-19 20:13:07 -08:00
et1011c.c
fixed_phy.c net: phy: fixed_phy: set phy_mask before calling mdiobus_register() 2022-06-13 23:11:24 -07:00
icplus.c
intel-xway.c
linkmode.c
lxt.c
marvell-88x2222.c net: sfp: augment SFP parsing with phy_interface_t bitmap 2022-10-03 11:08:32 +01:00
marvell.c net: phy: marvell: add sleep time after enabling the loopback bit 2022-11-15 13:14:46 +01:00
marvell10g.c net: phy: marvell10g: select host interface configuration 2022-10-03 11:08:32 +01:00
mdio-boardinfo.c
mdio-boardinfo.h
mdio_bus.c net: mdio: fix undefined behavior in bit shift for __mdiobus_register 2022-11-02 20:30:51 -07:00
mdio_device.c
mdio_devres.c
mediatek-ge.c net: phy: mediatek: remove PHY mode check on MT7531 2022-02-15 14:21:01 +00:00
meson-gxl.c Revert "net: phy: meson-gxl: improve link-up behavior" 2022-09-01 20:55:12 -07:00
micrel.c net: phy: micrel: Fixes FIELD_GET assertion 2022-10-12 17:51:33 -07:00
microchip.c net: phy: microchip: add comments for the modified LAN88xx phy ID mask. 2022-05-10 18:57:14 -07:00
microchip_t1.c net: phy: lan87xx: change interrupt src of link_up to comm_ready 2022-09-08 11:02:44 +02:00
mii_timestamper.c
motorcomm.c
mxl-gpy.c net: phy: mxl-gpy: print firmware in human readable form 2022-07-13 14:18:39 +01:00
national.c
nxp-c45-tja11xx.c net: phy: Use netif_rx(). 2022-03-06 11:05:31 +00:00
nxp-tja11xx.c net: phy: tja11xx: add interface mode and RMII REF_CLK support 2022-08-23 17:43:28 -07:00
phy-c45.c net: phy: c45 baset1: do not skip aneg configuration if clock role is not specified 2022-08-08 20:54:28 -07:00
phy-core.c net: phy: Add support for rate matching 2022-09-23 11:55:35 +01:00
phy.c net: phy: Add support for rate matching 2022-09-23 11:55:35 +01:00
phy_device.c net: mdiobus: fix unbalanced node reference count 2022-11-28 18:10:25 -08:00
phy_led_triggers.c
phylink.c net: phylink: fix PHY validation with rate adaption 2022-11-28 11:12:39 +00:00
qsemi.c
realtek.c net: phy: realtek: add support for RTL8211F(D)(I)-VD-CG 2022-08-22 12:47:18 +01:00
rockchip.c
sfp-bus.c net: sfp: fill also 5gbase-r and 25gbase-r modes in sfp_parse_support() 2022-10-10 18:00:29 -07:00
sfp.c net: sfp: add support for multigig RollBall transceivers 2022-10-03 11:08:33 +01:00
sfp.h net: sfp: augment SFP parsing with phy_interface_t bitmap 2022-10-03 11:08:32 +01:00
smsc.c net: phy: smsc: use device-managed clock API 2022-08-31 12:19:18 -07:00
spi_ks8995.c net: phy: spi_ks8895: switch to using gpiod API 2022-09-15 11:43:51 +02:00
ste10Xp.c
swphy.c
swphy.h
teranetics.c
uPD60620.c
vitesse.c
xilinx_gmii2rgmii.c