linux/drivers/net/phy
Christian Marangi 0fe1e3e8f3 net: phylink: put link_gpio if phylink_create fails
In phylink_create() if phylink_register_sfp() returns an error, link_gpio
obtained by phylink_parse_fixedlink() is never released. While this is a
very unlikely scenario, it's worth to fix/handle this.

This was present from the very first implementation of phylink but got
relevant only with the introduction of ce0aa27ff3 ("sfp: add sfp-bus to
bridge between network devices and sfp cages") where additional function
were added after phylink_parse_fixedlink() making the release of link_gpio
needed if such additional function errored out.

While at it, restructure the exit condition of phylink_create() with the
goto pattern to reduce code duplication on handling error conditions.

Fixes: ce0aa27ff3 ("sfp: add sfp-bus to bridge between network devices and sfp cages")
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
Reviewed-by: Andrew Lunn <andrew@lunn.ch>
Link: https://patch.msgid.link/20260726150806.2437-1-ansuelsmth@gmail.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2026-07-28 18:31:11 -07:00
..
aquantia net: phy: aquantia: use ADVERTISE_XNP for extended next page advertising 2026-04-29 17:30:05 -07:00
mediatek net: phy: mediatek: enable interrupts on AN7581 2026-01-05 16:16:53 -08:00
mscc Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
qcom net: phy: at803x: add RX and TX clock management for IPQ5018 PHY 2026-06-11 15:32:13 -07:00
realtek net: phy: realtek: Clear MDIO_AN_10GBT_CTRL_ADV10G bit 2026-06-24 18:41:00 -07:00
adin.c net: phy: adin: enable configuration of the LP Termination Register 2026-01-15 19:36:04 -08:00
adin1100.c net: phy: adin1100: Simplify register value passing 2025-11-20 18:03:59 -08:00
air_an8801.c net: phy: air_an8801: ensure maximum available speed link use 2026-05-27 18:39:24 -07:00
air_en8811h.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2026-05-28 14:02:21 -07:00
air_phy_lib.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2026-05-28 14:02:21 -07:00
air_phy_lib.h Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2026-05-28 14:02:21 -07:00
amd.c net: phy: Constify struct mdio_device_id 2025-01-14 15:01:32 -08:00
as21xxx.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
ax88796b_rust.rs drivers: net: replace kernel::c_str! with C-Strings 2026-01-05 16:32:39 -08:00
ax88796b.c net: phy: ax88796b: Replace hard-coded values with PHY_ID_MATCH_MODEL() 2025-09-22 16:38:59 -07:00
bcm-cygnus.c net: phy: Constify struct mdio_device_id 2025-01-14 15:01:32 -08:00
bcm-phy-lib.c net: phy: broadcom: Save PHY counters during suspend 2026-05-07 08:36:47 -07:00
bcm-phy-lib.h net: phy: broadcom: Save PHY counters during suspend 2026-05-07 08:36:47 -07:00
bcm-phy-ptp.c net: phy: broadcom: add HW timestamp configuration reporting 2025-11-26 16:56:34 -08:00
bcm7xxx.c net: phy: broadcom: Save PHY counters during suspend 2026-05-07 08:36:47 -07:00
bcm63xx.c net: phy: Constify struct mdio_device_id 2025-01-14 15:01:32 -08:00
bcm87xx.c net: phy: bcm87xx: simplify .match_phy_device OP 2025-05-21 15:56:09 -07:00
bcm54140.c net: phy: move PHY package related code from phy.h to phy_package.c 2025-03-05 19:13:53 -08:00
bcm84881.c net: phy: bcm84881: add LED framework support for BCM84891/BCM84892 2026-04-02 17:59:43 -07:00
broadcom.c net: phy: broadcom: Save PHY counters during suspend 2026-05-07 08:36:47 -07:00
cicada.c net: phy: Constify struct mdio_device_id 2025-01-14 15:01:32 -08:00
cortina.c net: phy: Constify struct mdio_device_id 2025-01-14 15:01:32 -08:00
davicom.c net: phy: Constify struct mdio_device_id 2025-01-14 15:01:32 -08:00
dp83tc811.c net: phy: DP83TC811: add reading of abilities 2026-05-14 15:17:12 +02:00
dp83td510.c net: phy: dp83td510: add MSE interface support for 10BASE-T1L 2025-11-03 18:32:27 -08:00
dp83tg720.c net: phy: dp83tg720: switch to adaptive polling and remove random delays 2025-06-13 18:09:47 -07:00
dp83640_reg.h
dp83640.c Convert remaining multi-line kmalloc_obj/flex GFP_KERNEL uses 2026-02-22 08:26:33 -08:00
dp83822.c net: phy: dp83822: Add optional external PHY clock 2026-06-02 11:38:00 -07:00
dp83848.c net: phy: Constify struct mdio_device_id 2025-01-14 15:01:32 -08:00
dp83867.c net: phy: dp83867: add MDI-X management 2026-05-08 15:58:36 -07:00
dp83869.c net: phy: dp83869: fix setting CLK_O_SEL field. 2026-04-28 15:51:55 +02:00
et1011c.c net: phy: Constify struct mdio_device_id 2025-01-14 15:01:32 -08:00
fixed_phy.c net: phy: fixed_phy: replace IDA with a bitmap 2026-01-13 18:58:49 -08:00
icplus.c net: phy: pass PHY driver to .match_phy_device OP 2025-05-21 15:56:09 -07:00
intel-xway.c net: phy: intel-xway: add PHY-level statistics via ethtool 2026-05-12 17:51:29 -07:00
Kconfig net: phy: Introduce Airoha AN8801R Gigabit Ethernet PHY driver 2026-05-27 18:39:24 -07:00
linkmode.c
lxt.c net: phy: Constify struct mdio_device_id 2025-01-14 15:01:32 -08:00
Makefile net: phy: Introduce Airoha AN8801R Gigabit Ethernet PHY driver 2026-05-27 18:39:24 -07:00
marvell-88q2xxx.c net: phy: marvell-88q2xxx: Fix clamped value in mv88q2xxx_hwmon_write 2025-12-04 17:49:31 -08:00
marvell-88x2222.c net: phy: marvell-88x2222: Support SFP through phy_port interface 2026-01-13 18:52:35 -08:00
marvell.c net: phy: marvell: fix return code 2026-07-20 17:51:46 -07:00
marvell10g.c net: phy: marvell10g: Support SFP through phy_port 2026-01-13 18:52:35 -08:00
mdio_bus_provider.c Networking changes for 7.1. 2026-04-14 18:36:10 -07:00
mdio_bus.c net: phy: move remaining provider code to mdio_bus_provider.c 2026-03-14 12:23:02 -07:00
mdio_device.c net: phy: make mdio_device.c part of libphy 2026-03-14 12:23:02 -07:00
mdio_devres.c net: fill in MODULE_DESCRIPTION()s for mdio_devres 2024-02-15 08:03:46 -08:00
mdio-open-alliance.h net: phy: phy-c45: add SQI and SQI+ support for OATC14 10Base-T1S PHYs 2025-12-01 15:08:24 -08:00
meson-gxl.c net: phy: Constify struct mdio_device_id 2025-01-14 15:01:32 -08:00
micrel.c net: phy: micrel: expose KSZ87xx low-loss cable tunables 2026-06-11 15:47:56 -07:00
microchip_rds_ptp.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
microchip_rds_ptp.h net: phy: microchip_rds_ptp: Header file library changes for PEROUT 2025-01-16 17:27:56 -08:00
microchip_t1.c net: phy: microchip_t1: Enable pin out specific to lan887x phy for PEROUT signal 2025-01-16 17:27:56 -08:00
microchip_t1s.c net: phy: microchip_t1s: add SQI support for LAN867x Rev.D0 PHYs 2025-12-01 15:08:24 -08:00
microchip.c net: phy: microchip: enable downshift by default on LAN88xx 2026-04-02 18:03:03 -07:00
mii_timestamper.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
motorcomm.c net: phy: motorcomm: Add YT8522 100M RMII PHY support 2026-06-09 17:31:20 -07:00
mxl-86110.c net: phy: mxl-86110: Add power management and soft reset support 2026-01-04 09:53:33 -08:00
mxl-gpy.c net: phy: mxl-gpy: add PHY-level statistics via ethtool 2026-03-17 16:07:40 -07:00
national.c net: phy: Constify struct mdio_device_id 2025-01-14 15:01:32 -08:00
ncn26000.c net: phy: Constify struct mdio_device_id 2025-01-14 15:01:32 -08:00
nxp-c45-tja11xx-macsec.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
nxp-c45-tja11xx.c net: phy: nxp-c45-tja11xx: add HW timestamp configuration reporting 2025-11-26 16:56:34 -08:00
nxp-c45-tja11xx.h net: phy: c45-tja11xx: add support for outputting RMII reference clock 2024-10-15 10:44:52 +02:00
nxp-cbtx.c net: phy: Constify struct mdio_device_id 2025-01-14 15:01:32 -08:00
nxp-tja11xx.c net: phy: pass PHY driver to .match_phy_device OP 2025-05-21 15:56:09 -07:00
open_alliance_helpers.c phy: Add Open Alliance helpers for the PHY framework 2024-08-16 10:16:26 -07:00
open_alliance_helpers.h phy: Add Open Alliance helpers for the PHY framework 2024-08-16 10:16:26 -07:00
phy_caps.c net: ethtool: Add support for 80Gbps speed 2026-01-19 12:09:58 -08:00
phy_device.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2026-06-11 14:33:35 -07:00
phy_led_triggers.c Convert remaining multi-line kmalloc_obj/flex GFP_KERNEL uses 2026-02-22 08:26:33 -08:00
phy_link_topology.c net: ethtool: make dev->hwprov ops-protected 2026-06-09 10:13:04 -07:00
phy_package.c net: phy: update outdated comment for removed phy_package_read/write() 2026-03-24 13:21:28 +01:00
phy_port.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
phy-c45.c net: phy: skip EEE advertisement write when autoneg is disabled 2026-05-19 18:45:16 -07:00
phy-caps.h net: ethtool: Add support for 80Gbps speed 2026-01-19 12:09:58 -08:00
phy-core.c net: ethtool: Add support for 80Gbps speed 2026-01-19 12:09:58 -08:00
phy.c net: phy: add a PHY write barrier when disabling interrupts 2026-04-12 14:19:19 -07:00
phylib-internal.h net: phy: move remaining provider code to mdio_bus_provider.c 2026-03-14 12:23:02 -07:00
phylib.h net: phy: move mmd_phy_read and mmd_phy_write to phylib.h 2026-01-08 13:18:26 +01:00
phylink.c net: phylink: put link_gpio if phylink_create fails 2026-07-28 18:31:11 -07:00
qsemi.c net: phy: Constify struct mdio_device_id 2025-01-14 15:01:32 -08:00
qt2025.rs drivers: net: replace kernel::c_str! with C-Strings 2026-01-05 16:32:39 -08:00
rockchip.c net: phy: Constify struct mdio_device_id 2025-01-14 15:01:32 -08:00
sfp-bus.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
sfp.c Revert "net: phy: sfp: probe for RollBall I2C-to-MDIO bridge in mdio-i2c" 2026-06-29 19:07:42 -07:00
sfp.h net: sfp: convert sfp quirks to modify struct sfp_module_support 2025-09-22 16:05:14 -07:00
smsc.c net: phy: smsc: add proper reset flags for LAN8710A 2025-07-30 18:14:11 -07:00
ste10Xp.c net: phy: Constify struct mdio_device_id 2025-01-14 15:01:32 -08:00
stubs.c
swphy.c
swphy.h
teranetics.c net: phy: pass PHY driver to .match_phy_device OP 2025-05-21 15:56:09 -07:00
uPD60620.c net: phy: Constify struct mdio_device_id 2025-01-14 15:01:32 -08:00
vitesse.c net: phy: vitesse: add inband caps and configuration 2026-03-12 17:55:33 -07:00
xilinx_gmii2rgmii.c net: phy: Allow loopback speed selection for PHY drivers 2025-03-20 08:45:08 +01:00