linux/drivers/net
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
..
appletalk
arcnet
bonding bonding: check nla_put_be32 return value 2017-05-08 14:57:05 -04:00
caif
can scripts/spelling.txt: add regsiter -> register spelling mistake 2017-05-08 17:15:13 -07:00
cris
dsa net: dsa: loop: Check for memory allocation failure 2017-05-08 14:58:36 -04:00
ethernet netxen_nic: set rcode to the return status from the call to netxen_issue_cmd 2017-05-11 12:16:04 -04:00
fddi format-security: move static strings to const 2017-05-08 17:15:14 -07:00
fjes
hamradio yam: use memdup_user 2017-05-08 15:02:10 -04:00
hippi Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2017-05-09 15:42:31 -07:00
hyperv netvsc: make sure napi enabled before vmbus_open 2017-05-04 11:08:36 -04:00
ieee802154 ieee802154: don't select COMMON_CLK 2017-04-22 10:28:40 +02:00
ipvlan ipvlan: use pernet operations and restrict l3s hooks to master netns 2017-04-25 10:43:22 -04:00
irda
phy mdio: mux: Correct mdio_mux_init error path issues 2017-05-11 12:32:43 -04:00
plip
ppp
slip
team Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2017-04-26 22:39:08 -04:00
usb net: cdc_ncm: Fix TX zero padding 2017-05-08 16:01:10 -04:00
vmxnet3
wan wan: pc300too: abort path on failure 2017-04-24 15:51:31 -04:00
wimax drivers: net: wimax: i2400m: i2400m-usb: Use time_after for time comparison 2017-05-09 09:40:33 -04:00
wireless mac80211: properly remove RX_ENC_FLAG_40MHZ 2017-05-08 11:11:56 +02:00
xen-netback
dummy.c
eql.c
geneve.c geneve: fix incorrect setting of UDP checksum flag 2017-04-30 22:31:16 -04:00
gtp.c
ifb.c
Kconfig VSOCK: Add vsockmon device 2017-04-24 12:35:56 -04:00
LICENSE.SRC
loopback.c
macsec.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2017-04-26 22:39:08 -04:00
macvlan.c macvlan: Fix device ref leak when purging bc_queue 2017-04-25 10:42:10 -04:00
macvtap.c
Makefile VSOCK: Add vsockmon device 2017-04-24 12:35:56 -04:00
mdio.c
mii.c
netconsole.c
nlmon.c
ntb_netdev.c
rionet.c
sb1000.c
Space.c
sungem_phy.c
tap.c
tun.c
veth.c netlink: pass extended ACK struct to parsing functions 2017-04-13 13:58:22 -04:00
virtio_net.c xdp: use common helper for netlink extended ack reporting 2017-05-03 09:51:24 -04:00
vrf.c driver: vrf: Fix one possible use-after-free issue 2017-05-11 12:13:11 -04:00
vsockmon.c VSOCK: Add vsockmon device 2017-04-24 12:35:56 -04:00
vxlan.c vxlan: do not output confusing error message 2017-04-30 22:30:13 -04:00
xen-netfront.c