linux/drivers/net
David Daney 65c66af660 net: thunderx: Fix broken of_node_put() code.
commit b7d3e3d3d2 ("net: thunderx: Don't leak phy device references
on -EPROBE_DEFER condition.") incorrectly moved the call to
of_node_put() outside of the loop.  Under normal loop exit, the node
has already had of_node_put() called, so the extra call results in:

[    8.228020] ERROR: Bad of_node_put() on /soc@0/pci@848000000000/mrml-bridge0@1,0/bgx0/xlaui00
[    8.239433] CPU: 16 PID: 608 Comm: systemd-udevd Not tainted 4.6.0-rc1-numa+ #157
[    8.247380] Hardware name: www.cavium.com EBB8800/EBB8800, BIOS 0.3 Mar  2 2016
[    8.273541] Call trace:
[    8.273550] [<fffffc0008097364>] dump_backtrace+0x0/0x210
[    8.273557] [<fffffc0008097598>] show_stack+0x24/0x2c
[    8.273560] [<fffffc0008399ed0>] dump_stack+0x8c/0xb4
[    8.273566] [<fffffc00085aa828>] of_node_release+0xa8/0xac
[    8.273570] [<fffffc000839cad8>] kobject_cleanup+0x8c/0x194
[    8.273573] [<fffffc000839c97c>] kobject_put+0x44/0x6c
[    8.273576] [<fffffc00085a9ab0>] of_node_put+0x24/0x30
[    8.273587] [<fffffc0000bd0f74>] bgx_probe+0x17c/0xcd8 [thunder_bgx]
[    8.273591] [<fffffc00083ed220>] pci_device_probe+0xa0/0x114
[    8.273596] [<fffffc0008473fbc>] driver_probe_device+0x178/0x418
[    8.273599] [<fffffc000847435c>] __driver_attach+0x100/0x118
[    8.273602] [<fffffc0008471b58>] bus_for_each_dev+0x6c/0xac
[    8.273605] [<fffffc0008473884>] driver_attach+0x30/0x38
[    8.273608] [<fffffc00084732f4>] bus_add_driver+0x1f8/0x29c
[    8.273611] [<fffffc0008475028>] driver_register+0x70/0x110
[    8.273617] [<fffffc00083ebf08>] __pci_register_driver+0x60/0x6c
[    8.273623] [<fffffc0000bf0040>] bgx_init_module+0x40/0x48 [thunder_bgx]
[    8.273626] [<fffffc0008090d04>] do_one_initcall+0xcc/0x1c0
[    8.273631] [<fffffc0008198abc>] do_init_module+0x68/0x1c8
[    8.273635] [<fffffc0008125668>] load_module+0xf44/0x11f4
[    8.273638] [<fffffc0008125b64>] SyS_finit_module+0xb8/0xe0
[    8.273641] [<fffffc0008093b30>] el0_svc_naked+0x24/0x28

Go back to the previous (correct) code that only did the extra
of_node_put() call on early exit from the loop.

Signed-off-by: David Daney <david.daney@cavium.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2016-04-13 23:06:31 -04:00
..
appletalk
arcnet
bonding bonding: fix bond_get_stats() 2016-03-18 23:14:15 -04:00
caif
can can: rcar_can: Add r8a7795 support 2016-03-10 10:30:21 +01:00
cris
dsa net: dsa: mv88e6xxx: Clear the PDOWN bit on setup 2016-03-31 15:12:57 -04:00
ethernet net: thunderx: Fix broken of_node_put() code. 2016-04-13 23:06:31 -04:00
fddi
fjes
hamradio
hippi
hyperv hv_netvsc: Fix the order of num_sc_offered decrement 2016-03-23 21:51:08 -04:00
ieee802154 mrf24j40: add writeable missing reg 2016-02-23 20:29:40 +01:00
ipvlan vlan: propagate gso_max_segs 2016-03-17 21:05:01 -04:00
irda
phy net: phy: bcm7xxx: Add entries for Broadcom BCM7346 and BCM7362 2016-03-25 11:37:57 -04:00
plip
ppp ppp: take reference on channels netns 2016-03-23 14:35:31 -04:00
slip
team team: team should sync the port's uc/mc addrs when add a port 2016-03-30 17:06:58 -04:00
usb net: usb: cdc_ncm: adding Telit LE910 V2 mobile broadband card 2016-03-31 17:15:35 -04:00
vmxnet3 vmxnet3: fix lock imbalance in vmxnet3_tq_xmit() 2016-03-14 13:10:29 -04:00
wan farsync: fix off-by-one bug in fst_add_one 2016-03-14 13:09:49 -04:00
wimax
wireless Merge tag 'iwlwifi-for-kalle-2016-03-30' of https://git.kernel.org/pub/scm/linux/kernel/git/iwlwifi/iwlwifi-fixes 2016-04-02 17:59:57 +03:00
xen-netback xen-netback: reduce log spam 2016-03-13 22:08:01 -04:00
dummy.c
eql.c
geneve.c geneve: fix populating tclass in geneve_get_v6_dst 2016-03-20 13:44:34 -04:00
ifb.c
Kconfig macsec: introduce IEEE 802.1AE driver 2016-03-13 22:40:24 -04:00
LICENSE.SRC
loopback.c
macsec.c macsec: introduce IEEE 802.1AE driver 2016-03-13 22:40:24 -04:00
macvlan.c vlan: propagate gso_max_segs 2016-03-17 21:05:01 -04:00
macvtap.c macvtap: always pass ethernet header in linear 2016-03-11 14:45:21 -05:00
Makefile macsec: introduce IEEE 802.1AE driver 2016-03-13 22:40:24 -04:00
mdio.c
mii.c
netconsole.c
nlmon.c
ntb_netdev.c
rionet.c rapidio/rionet: add mport removal handling 2016-03-22 15:36:02 -07:00
sb1000.c
Space.c
sungem_phy.c
tun.c tuntap: restore default qdisc 2016-04-08 15:52:45 -04:00
veth.c veth: implement ndo_set_rx_headroom 2016-03-01 15:54:31 -05:00
virtio_net.c virtio/vhost: new features, performance improvements, cleanups 2016-03-20 13:28:18 -07:00
vrf.c net: vrf: Fix dst reference counting 2016-04-11 15:56:20 -04:00
vxlan.c vxlan: fix too large pskb_may_pull with remote checksum 2016-03-21 13:32:19 -04:00
xen-netfront.c