OpenCloudOS-Kernel/drivers/net/ethernet/amd
Lendacky, Thomas c30e76a728 amd-xgbe: Request IRQs only after driver is fully setup
It is possible that the hardware may not have been properly shutdown
before this driver gets control, through use by firmware, for example.
Until the driver is loaded, interrupts associated with the hardware
could go pending. When the IRQs are requested napi support has not
been initialized yet, but the ISR will get control and schedule napi
processing resulting in a kernel panic because the poll routine has not
been set.

Adjust the code so that the driver is fully ready to handle and process
interrupts as soon as the IRQs are requested. This involves requesting
and freeing IRQs during start and stop processing and ordering the napi
add and delete calls appropriately.

Also adjust the powerup and powerdown routines to match the start and
stop routines in regards to the ordering of tasks, including napi
related calls.

Signed-off-by: Tom Lendacky <thomas.lendacky@amd.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2015-02-27 17:13:02 -05:00
..
xgbe amd-xgbe: Request IRQs only after driver is fully setup 2015-02-27 17:13:02 -05:00
7990.c lance: Call dev_consume_skb_any instead of dev_kfree_skb. 2014-03-24 21:18:53 -07:00
7990.h net/7990: Make lance_private.name const 2013-12-29 00:46:38 -05:00
Kconfig Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2015-02-05 14:33:28 -08:00
Makefile amd-xgbe: Configuration and build support 2014-06-05 15:26:51 -07:00
a2065.c zorro/UAPI: Use proper types (endianness/size) in <linux/zorro.h> 2013-11-26 11:09:09 +01:00
a2065.h
am79c961a.c am79c961a: Call dev_consume_skb_any instead of dev_kfree_skb. 2014-03-24 21:18:40 -07:00
am79c961a.h drivers/net: fix up stale paths from driver reorg 2012-01-30 12:54:40 -05:00
amd8111e.c net: rename vlan_tx_* helpers since "tx" is misleading there 2015-01-13 17:51:08 -05:00
amd8111e.h net: amd8111e: Spelling s/recive/receive/ 2014-01-14 17:11:25 -08:00
ariadne.c net/ariadne: delete unneeded call to netdev_priv 2014-05-15 16:57:47 -04:00
ariadne.h
atarilance.c net: atarilance: Remove obsolete IRQ_TYPE_PRIO 2015-01-15 13:44:50 +01:00
au1000_eth.c net: ethernet: amd: drop owner assignment from platform_drivers 2014-10-20 16:21:04 +02:00
au1000_eth.h ethernet: Fix FSF address in file headers 2013-12-06 12:37:55 -05:00
declance.c declance: Fix 64-bit compilation warnings 2014-07-08 14:04:30 -07:00
hplance.c hplance: fix ram size in comment 2014-06-05 15:14:21 -07:00
hplance.h
lance.c lance: Fix hardcoded interrupt name lp->name to use system device value 2013-09-27 17:38:32 -04:00
mvme147.c mvme147: fix ram size in comment 2014-06-05 15:14:21 -07:00
ni65.c PTR_RET is now PTR_ERR_OR_ZERO(): Replace most. 2013-07-15 11:25:01 +09:30
ni65.h
nmclan_cs.c net: am2150: fix nmclan_cs.c shared interrupt handling 2015-01-29 15:08:21 -08:00
pcnet32.c mii: Handle link state changes for forced modes in mii_check_media() 2015-01-19 15:43:42 -05:00
sun3lance.c ethernet: amd: remove deprecated IRQF_DISABLED 2013-09-12 23:27:09 -04:00
sunlance.c net: ethernet: amd: drop owner assignment from platform_drivers 2014-10-20 16:21:04 +02:00