linux_dsm_epyc7002/drivers/net
Michael Ellerman 3051f39253 ehea: Fix memory hook reference counting crashes
The recent commit to only register the EHEA memory hotplug hooks on
adapter probe has a few problems.

Firstly the reference counting is wrong for multiple adapters, in that
the hooks are registered multiple times. Secondly the check in the tear
down path is backward. Finally the error path doesn't decrement the
count.

The multiple registration of the hooks is the biggest problem, as it
leads to oopses when the system is rebooted, and/or errors during memory
hotplug, eg:

  $ ./mem-on-off-test.sh -r 2
  ...
  ehea: memory is going offline
  ehea: LPAR memory changed - re-initializing driver
  ehea: re-initializing driver complete
  ehea: memory is going offline
  ehea: LPAR memory changed - re-initializing driver
  ehea: opcode=26c ret=fffffffffffffffc arg1=8000000003000003 arg2=0 arg3=700000060000d600 arg4=3fded0000 arg5=200 arg6=0 arg7=0
  ehea: register_rpage_mr failed
  ehea: registering mr failed
  ehea: register MR failed - driver inoperable!
  ehea: memory is going offline

Fixes: aa18332331 ("ehea: Register memory hotplug, reboot and crash hooks on adapter probe")
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Signed-off-by: David S. Miller <davem@davemloft.net>
2015-04-25 14:33:04 -04:00
..
appletalk net/appletalk: LTPC needs virt_to_bus 2015-02-20 16:28:46 -05:00
arcnet net: Kill dev_rebuild_header 2015-03-02 16:43:41 -05:00
bonding bonding: Remove unnecessary initialization 2015-04-08 12:12:15 -04:00
caif caif: remove unused struct member 2015-04-01 12:43:09 -04:00
can can: CAN_GRCAN should depend on HAS_DMA 2015-04-23 14:09:58 -04:00
cris
dsa net: dsa: mv88e6xxx: use PORT_DEFAULT_VLAN 2015-04-20 22:01:16 -04:00
ethernet ehea: Fix memory hook reference counting crashes 2015-04-25 14:33:04 -04:00
fddi
hamradio ax25: remove unneeded NULL test in ax_xmit() 2015-03-06 21:50:42 -05:00
hippi
hyperv hv_netvsc: Implement partial copy into send buffer 2015-04-14 14:57:10 -04:00
ieee802154 mac802154: fix transmission power datatype 2015-04-09 19:56:15 +02:00
ipvlan Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2015-04-02 16:16:53 -04:00
irda
phy net: mdio-gpio: support access that may sleep 2015-04-24 12:24:57 -04:00
plip
ppp ppp: call skb_checksum_complete_unset in ppp_receive_frame 2015-04-20 21:57:26 -04:00
slip
team team: Don't segment multiple tagged packets on team device 2015-03-29 13:33:24 -07:00
usb Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2015-04-14 15:44:14 -04:00
vmxnet3 vmxnet3: spelling fixes 2015-04-01 22:52:29 -04:00
wan cosa: fix error return code 2015-04-07 15:21:55 -04:00
wimax
wireless ARM: DT updates for v4.1 2015-04-22 09:09:46 -07:00
xen-netback xen: features and fixes for 4.1-rc0 2015-04-16 14:01:03 -05:00
dummy.c
eql.c
ifb.c act_mirred: Fix bogus header when redirecting from VLAN 2015-04-17 13:29:28 -04:00
Kconfig ipvlan: Fix text that talks about ip util support 2015-02-20 16:35:44 -05:00
LICENSE.SRC
loopback.c
macvlan.c macvlan: implement ndo_get_iflink 2015-04-02 14:05:00 -04:00
macvtap.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2015-04-17 16:31:08 -04:00
Makefile
mdio.c
mii.c
netconsole.c netconsole: Use eth_<foo>_addr instead of memset 2015-03-03 17:01:37 -05:00
nlmon.c
ntb_netdev.c
rionet.c
sb1000.c PNP: net/sb1000: Use module_pnp_driver to register driver 2015-03-18 22:39:17 +01:00
Space.c
sungem_phy.c
tun.c make new_sync_{read,write}() static 2015-04-11 22:29:40 -04:00
veth.c veth: set iflink to the peer veth 2015-04-02 14:05:01 -04:00
virtio_net.c virtio: document queue state logic 2015-04-06 16:44:24 -04:00
vxlan.c vxlan: remove the unnecessary codes 2015-04-22 18:45:49 -04:00
xen-netfront.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2015-04-17 16:31:08 -04:00