WSL2-Linux-Kernel/drivers/net/phy
Jon Mason b601616681 mdio: mux: Correct mdio_mux_init error path issues
There is a potential unnecessary refcount decrement on error path of
put_device(&pb->mii_bus->dev), as it is possible to avoid the
of_mdio_find_bus() call if mux_bus is specified by the calling function.

The same put_device() is not called in the error path if the
devm_kzalloc of pb fails.  This caused the variable used in the
put_device() to be changed, as the pb pointer was obviously not set up.

There is an unnecessary of_node_get() on child_bus_node if the
of_mdiobus_register() is successful, as the
for_each_available_child_of_node() automatically increments this.
Thus the refcount on this node will always be +1 more than it should be.

There is no of_node_put() on child_bus_node if the of_mdiobus_register()
call fails.

Finally, it is lacking devm_kfree() of pb in the error path.  While this
might not be technically necessary, it was present in other parts of the
function.  So, I am adding it where necessary to make it uniform.

Signed-off-by: Jon Mason <jon.mason@broadcom.com>
Fixes: f20e6657a8 ("mdio: mux: Enhanced MDIO mux framework for integrated multiplexers")
Fixes: 0ca2997d14 ("netdev/of/phy: Add MDIO bus multiplexer support.")
Signed-off-by: David S. Miller <davem@davemloft.net>
2017-05-11 12:32:43 -04:00
..
Kconfig net: phy: Allow splitting MDIO bus/device support from PHYs 2017-03-24 12:51:05 -07:00
Makefile net: phy: Allow building mdio-boardinfo into the kernel 2017-03-29 10:32:32 -07:00
amd.c
aquantia.c
at803x.c
bcm-cygnus.c net: phy: phy drivers should not set SUPPORTED_[Asym_]Pause 2016-12-10 23:31:19 -05:00
bcm-phy-lib.c net: phy: switch remaining users to phy_(read|write)_mmd() 2017-03-22 12:43:00 -07:00
bcm-phy-lib.h
bcm7xxx.c net: phy: bcm7xxx: add support for 28nm EPHY 2017-03-13 21:51:49 -07:00
bcm63xx.c net: phy: bcm63xx: Utilize correct config_intr function 2017-01-18 16:56:10 -05:00
bcm87xx.c
broadcom.c net: phy: Allow BCM5481x PHYs to setup internal TX/RX clock delay 2017-04-30 22:56:19 -04:00
cicada.c
davicom.c Replace <asm/uaccess.h> with <linux/uaccess.h> globally 2016-12-24 11:46:01 -08:00
dp83640.c dp83640: don't recieve time stamps twice 2017-04-20 16:00:48 -04:00
dp83640_reg.h
dp83848.c net: phy: dp83848: Fix Typo 2017-03-24 15:33:32 +01:00
dp83867.c net: phy: switch remaining users to phy_(read|write)_mmd() 2017-03-22 12:43:00 -07:00
et1011c.c
fixed_phy.c
icplus.c Replace <asm/uaccess.h> with <linux/uaccess.h> globally 2016-12-24 11:46:01 -08:00
intel-xway.c net: phy: switch remaining users to phy_(read|write)_mmd() 2017-03-22 12:43:00 -07:00
lxt.c Replace <asm/uaccess.h> with <linux/uaccess.h> globally 2016-12-24 11:46:01 -08:00
marvell.c net: phy: marvell: Fix double free of hwmon device 2017-03-09 22:41:03 -08:00
mdio-bcm-iproc.c net: phy: Initialize mdio clock at probe function 2017-02-09 17:10:23 -05:00
mdio-bcm-unimac.c net: bcmgenet: add support for the GENETv5 hardware 2017-03-13 21:51:51 -07:00
mdio-bitbang.c
mdio-boardinfo.c net: phy: Allow building mdio-boardinfo into the kernel 2017-03-29 10:32:32 -07:00
mdio-boardinfo.h net: phy: Allow building mdio-boardinfo into the kernel 2017-03-29 10:32:32 -07:00
mdio-cavium.c
mdio-cavium.h
mdio-gpio.c net: mdio-gpio: Use gpio subsystem to handle low-active pins 2017-01-12 15:05:10 -05:00
mdio-hisi-femac.c
mdio-moxart.c
mdio-mux-bcm-iproc.c net: mdio-mux: bcm-iproc: call mdiobus_free() in error path 2017-05-08 17:59:33 -04:00
mdio-mux-gpio.c
mdio-mux-mmioreg.c
mdio-mux.c mdio: mux: Correct mdio_mux_init error path issues 2017-05-11 12:32:43 -04:00
mdio-octeon.c
mdio-sun4i.c
mdio-thunder.c
mdio-xgene.c drivers: net: phy: xgene: Fix mdio write 2017-03-15 21:52:51 -07:00
mdio-xgene.h xgene_enet: remove bogus forward declarations 2017-02-02 17:12:20 -05:00
mdio_bus.c mdio_bus: Issue GPIO RESET to PHYs. 2017-04-24 12:40:24 -04:00
mdio_device.c net: phy: Allow pre-declaration of MDIO devices 2017-02-07 10:51:46 -05:00
meson-gxl.c
micrel.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2017-04-26 22:39:08 -04:00
microchip.c net: phy: switch remaining users to phy_(read|write)_mmd() 2017-03-22 12:43:00 -07:00
mscc.c net: phy: Add LED mode driver for Microsemi PHYs. 2017-02-08 13:29:04 -05:00
national.c net: phy: phy drivers should not set SUPPORTED_[Asym_]Pause 2016-12-10 23:31:19 -05:00
phy-core.c net: phy: test the right variable in phy_write_mmd() 2017-04-17 15:10:42 -04:00
phy.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2017-04-26 22:39:08 -04:00
phy_device.c net: phy: switch remaining users to phy_(read|write)_mmd() 2017-03-22 12:43:00 -07:00
phy_led_triggers.c net: phy: leds: Break dependency of phy.h on phy_led_triggers.h 2017-01-25 14:40:19 -05:00
qsemi.c Replace <asm/uaccess.h> with <linux/uaccess.h> globally 2016-12-24 11:46:01 -08:00
realtek.c
smsc.c net: break include loop netdevice.h, dsa.h, devlink.h 2017-03-28 22:46:04 -07:00
spi_ks8995.c spi_ks8995: regs_size incorrect for some devices 2017-03-07 13:33:24 -08:00
ste10Xp.c
swphy.c
swphy.h
teranetics.c
vitesse.c
xilinx_gmii2rgmii.c