linux_dsm_epyc7002/drivers/net
Ben Dooks b5893a0881 sh_eth: ensure pm_runtime cannot suspend the device during init
The pm_rumtime work queue is causing the device to be suspended during
initialisation, thus the initialisation may not be able to access registers
properly. As the code is called from a work queue, it is possible that this
is not seen from certain configurations/builds due to the asynchronos
nature of the code.

Another issue has also been found where the network device registration
calls back into the driver thus causing further pm_runtime calls that
also caused issues with the MDIO bus code. This has now been checked
and is the only place the MDIO can be called without the device open.

Use pm_runtime_get_sync() and pm_runtime_put() to ensure that the
pm system does not suspend it during the probe() call and remove the
now unnecessary pm_runtime_resume() call. Also add a call in the error
path to call pm_runtime_disable().

This fixes the external abort that can cause /sbin/init or other such
init processed to die.

Signed-off-by: Ben Dooks <ben.dooks@codethink.co.uk>
Tested-by: Geert Uytterhoeven <geert@linux-m68k.org>
Acked-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2014-03-28 15:59:44 -04:00
..
appletalk
arcnet
bonding drivers/net: Use RCU_INIT_POINTER(x, NULL) in bonding/bond_options.c 2014-03-27 00:18:09 -04:00
caif caif: delete unnecessary field initialization 2014-02-17 00:29:23 -05:00
can can: mcp251x: Fix regulators operation without CONFIG_REGULATOR 2014-03-17 09:20:17 +01:00
cris
dsa
ethernet sh_eth: ensure pm_runtime cannot suspend the device during init 2014-03-28 15:59:44 -04:00
fddi
hamradio yam: replace del_timer by del_timer_sync 2014-03-27 15:28:06 -04:00
hippi
hyperv Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2014-03-14 22:31:55 -04:00
ieee802154 at86rf230: add support for devicetree 2014-03-17 16:10:26 -04:00
irda irtty-sir.c: Do not set_termios() on irtty_close() 2014-02-17 16:27:51 -05:00
phy net: sun4i: remove empty MDIO bus reset function 2014-03-28 01:38:02 -04:00
plip
ppp
slip
team net: Replace u64_stats_fetch_begin_bh to u64_stats_fetch_begin_irq 2014-03-14 22:41:36 -04:00
usb Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2014-03-25 20:29:20 -04:00
vmxnet3 vmxnet3: Call dev_kfree_skb_any instead of dev_kfree_skb. 2014-03-24 21:19:23 -07:00
wan
wimax
wireless Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2014-03-25 20:29:20 -04:00
xen-netback xen-netback: Functional follow-up patch for grant mapping series 2014-03-26 16:33:42 -04:00
dummy.c net: Replace u64_stats_fetch_begin_bh to u64_stats_fetch_begin_irq 2014-03-14 22:41:36 -04:00
eql.c
ifb.c net: Replace u64_stats_fetch_begin_bh to u64_stats_fetch_begin_irq 2014-03-14 22:41:36 -04:00
Kconfig netpoll: Remove dead packet receive code (CONFIG_NETPOLL_TRAP) 2014-03-17 15:48:12 -04:00
LICENSE.SRC
loopback.c net: Replace u64_stats_fetch_begin_bh to u64_stats_fetch_begin_irq 2014-03-14 22:41:36 -04:00
macvlan.c net: Replace u64_stats_fetch_begin_bh to u64_stats_fetch_begin_irq 2014-03-14 22:41:36 -04:00
macvtap.c
Makefile
mdio.c
mii.c
netconsole.c
nlmon.c net: Replace u64_stats_fetch_begin_bh to u64_stats_fetch_begin_irq 2014-03-14 22:41:36 -04:00
ntb_netdev.c
rionet.c
sb1000.c
Space.c
sungem_phy.c
tun.c drivers/net: Use RCU_INIT_POINTER(x, NULL) in tun.c 2014-03-27 00:18:09 -04:00
veth.c net: Replace u64_stats_fetch_begin_bh to u64_stats_fetch_begin_irq 2014-03-14 22:41:36 -04:00
virtio_net.c virtio_net: Call dev_kfree_skb_any instead of dev_kfree_skb. 2014-03-24 21:19:25 -07:00
vxlan.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2014-03-25 20:29:20 -04:00
xen-netfront.c xen-netfront: Call dev_kfree_skb_any instead of dev_kfree_skb. 2014-03-24 21:19:23 -07:00