linux_dsm_epyc7002/drivers/net/ethernet
Nimrod Andy 94191fd671 net: fec: Fix NAPI race
Do camera capture test on i.MX6q sabresd board, and save the capture data to
nfs rootfs. The command is:
gst-launch-1.0 -e imxv4l2src device=/dev/video1 num-buffers=2592000 ! tee name=t !
queue ! imxv4l2sink sync=false t. ! queue ! vpuenc ! queue ! mux. pulsesrc num-buffers=3720937
blocksize=4096 ! 'audio/x-raw, rate=44100, channels=2' ! queue ! imxmp3enc ! mpegaudioparse !
queue ! mux. qtmux name=mux ! filesink location=video_recording_long.mov

After about 10 hours running, there have net watchdog timeout kernel dump:
...
WARNING: CPU: 0 PID: 0 at net/sched/sch_generic.c:264 dev_watchdog+0x2b4/0x2d8()
NETDEV WATCHDOG: eth0 (fec): transmit queue 0 timed out
CPU: 0 PID: 0 Comm: swapper/0 Not tainted 3.14.24-01051-gdb840b7 #440
[<80014e6c>] (unwind_backtrace) from [<800118ac>] (show_stack+0x10/0x14)
[<800118ac>] (show_stack) from [<806ae3f0>] (dump_stack+0x78/0xc0)
[<806ae3f0>] (dump_stack) from [<8002b504>] (warn_slowpath_common+0x68/0x8c)
[<8002b504>] (warn_slowpath_common) from [<8002b558>] (warn_slowpath_fmt+0x30/0x40)
[<8002b558>] (warn_slowpath_fmt) from [<8055e0d4>] (dev_watchdog+0x2b4/0x2d8)
[<8055e0d4>] (dev_watchdog) from [<800352d8>] (call_timer_fn.isra.33+0x24/0x8c)
[<800352d8>] (call_timer_fn.isra.33) from [<800354c4>] (run_timer_softirq+0x184/0x220)
[<800354c4>] (run_timer_softirq) from [<8002f420>] (__do_softirq+0xc0/0x22c)
[<8002f420>] (__do_softirq) from [<8002f804>] (irq_exit+0xa8/0xf4)
[<8002f804>] (irq_exit) from [<8000ee5c>] (handle_IRQ+0x54/0xb4)
[<8000ee5c>] (handle_IRQ) from [<80008598>] (gic_handle_irq+0x28/0x5c)
[<80008598>] (gic_handle_irq) from [<800123c0>] (__irq_svc+0x40/0x74)
Exception stack(0x80d27f18 to 0x80d27f60)
7f00:                                                       80d27f60 0000014c
7f20: 8858c60e 0000004d 884e4540 0000004d ab7250d0 80d34348 00000000 00000000
7f40: 00000001 00000000 00000017 80d27f60 800702a4 80476e6c 600f0013 ffffffff
[<800123c0>] (__irq_svc) from [<80476e6c>] (cpuidle_enter_state+0x50/0xe0)
[<80476e6c>] (cpuidle_enter_state) from [<80476fa8>] (cpuidle_idle_call+0xac/0x154)
[<80476fa8>] (cpuidle_idle_call) from [<8000f174>] (arch_cpu_idle+0x8/0x44)
[<8000f174>] (arch_cpu_idle) from [<80064c54>] (cpu_startup_entry+0x100/0x158)
[<80064c54>] (cpu_startup_entry) from [<80cd8a9c>] (start_kernel+0x304/0x368)
---[ end trace 09ebd32fb032f86d ]---
...

There might have a race in napi_schedule(), leaving interrupts disabled forever.
After these patch, the case still work more than 40 hours running.

Signed-off-by: Fugang Duan <B38611@freescale.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2014-12-16 15:23:29 -05:00
..
3com net: typhoon: Remove redundant casts 2014-10-24 00:41:31 -04:00
8390 net: ethernet: 8390: drop owner assignment from platform_drivers 2014-10-20 16:21:02 +02:00
adaptec
adi net: ethernet: adi: drop owner assignment from platform_drivers 2014-10-20 16:21:03 +02:00
aeroflex net: ethernet: aeroflex: drop owner assignment from platform_drivers 2014-10-20 16:21:03 +02:00
agere et131x: Add PCIe gigabit ethernet driver et131x to drivers/net 2014-10-03 12:22:19 -07:00
allwinner net: ethernet: Remove superfluous ether_setup after alloc_etherdev 2014-10-03 15:31:40 -07:00
alteon
altera net: ethernet: altera: drop owner assignment from platform_drivers 2014-10-20 16:21:04 +02:00
amd Driver core patches for 3.19-rc1 2014-12-14 16:10:09 -08:00
apm Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2014-11-06 22:01:18 -05:00
apple net: ethernet: apple: drop owner assignment from platform_drivers 2014-10-20 16:21:04 +02:00
arc Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2014-09-23 12:09:27 -04:00
atheros Merge Linus' tree to be be to apply submitted patches to newer code than 2014-11-20 14:42:02 +01:00
broadcom net: systemport: always select FIXED_PHY 2014-12-16 00:57:07 -05:00
brocade bna: use netdev_rss_key_fill() helper 2014-11-16 15:59:11 -05:00
cadence net/macb: remove useless calls of devm_free_irq() 2014-12-15 11:50:45 -05:00
calxeda net: ethernet: Remove superfluous ether_setup after alloc_etherdev 2014-10-03 15:31:40 -07:00
chelsio cxgb4: Add support for QSA modules 2014-12-12 11:24:03 -05:00
cirrus cirrus: cs89x0: fix time comparison 2014-12-15 11:44:21 -05:00
cisco enic: add support for set/get rss hash key 2014-12-10 14:41:48 -05:00
davicom Driver core patches for 3.19-rc1 2014-12-14 16:10:09 -08:00
dec uli526x: fix misspelling of current function in string 2014-12-09 16:18:46 -05:00
dlink
emulex be2net: Export tunnel offloads only when a VxLAN tunnel is created 2014-12-11 14:37:24 -05:00
faraday net: ethernet: faraday: drop owner assignment from platform_drivers 2014-10-20 16:21:07 +02:00
freescale net: fec: Fix NAPI race 2014-12-16 15:23:29 -05:00
fujitsu
hisilicon
hp hp100: fix misspelling of current function in string 2014-12-09 16:18:47 -05:00
i825xx net: ethernet: i825xx: drop owner assignment from platform_drivers 2014-10-20 16:21:08 +02:00
ibm Driver core patches for 3.19-rc1 2014-12-14 16:10:09 -08:00
icplus
intel fm10k/igb/ixgbe: Use dma_rmb on Rx descriptor reads 2014-12-11 21:15:06 -05:00
marvell Driver core patches for 3.19-rc1 2014-12-14 16:10:09 -08:00
mellanox net/mlx4_core: Avoid double dumping of the PF device capabilities 2014-12-15 11:34:54 -05:00
micrel net: ethernet: micrel: drop owner assignment from platform_drivers 2014-10-20 16:21:09 +02:00
microchip
moxa net: ethernet: moxa: drop owner assignment from platform_drivers 2014-10-20 16:21:10 +02:00
myricom myri10ge: use eth_skb_pad helper 2014-12-08 20:47:42 -05:00
natsemi Driver core patches for 3.19-rc1 2014-12-14 16:10:09 -08:00
neterion net: ethernet: neterion: vxge: vxge-main.c: Cleaning up missing null-terminate in conjunction with strncpy 2014-09-15 14:17:00 -04:00
nuvoton net: ethernet: nuvoton: drop owner assignment from platform_drivers 2014-10-20 16:21:10 +02:00
nvidia
nxp net: ethernet: Remove superfluous ether_setup after alloc_etherdev 2014-10-03 15:31:40 -07:00
octeon net: ethernet: octeon: drop owner assignment from platform_drivers 2014-10-20 16:21:11 +02:00
oki-semi pch_gbe: 'select' NET_PTP_CLASSIFY. 2014-09-22 13:25:51 -04:00
packetengines
pasemi net-PA Semi: Deletion of unnecessary checks before the function call "pci_dev_put" 2014-12-05 21:14:20 -08:00
qlogic net: rename netdev_phys_port_id to more generic name 2014-12-02 20:01:19 -08:00
qualcomm net: qualcomm: Fix dependency 2014-11-11 18:12:32 -05:00
rdc
realtek r8169:update rtl8168g pcie ephy parameter 2014-12-11 21:38:52 -05:00
renesas Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2014-12-10 15:48:20 -05:00
rocker rocker: remove swdev mode 2014-12-09 18:24:47 -05:00
samsung Driver core patches for 3.19-rc1 2014-12-14 16:10:09 -08:00
seeq net: ethernet: seeq: drop owner assignment from platform_drivers 2014-10-20 16:21:12 +02:00
sfc ethtool: Support for configurable RSS hash function 2014-12-08 21:07:10 -05:00
sgi net: ethernet: sgi: drop owner assignment from platform_drivers 2014-10-20 16:21:12 +02:00
silan
sis
smsc net: smc91x: Fix build without gpiolib 2014-12-15 11:46:54 -05:00
stmicro net: stmmac: sti: Fix uninitialized pointer dereference if !OF 2014-12-15 11:48:02 -05:00
sun Driver core patches for 3.19-rc1 2014-12-14 16:10:09 -08:00
tehuti
ti drivers: net : cpsw: Update Kconfig for CPSW 2014-12-09 13:44:16 -05:00
tile Merge branch 'for-3.18-consistent-ops' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/percpu 2014-10-15 07:48:18 +02:00
toshiba net: spider_net: avoid using signed char for bitops 2014-10-05 21:15:16 -04:00
tundra net: ethernet: tundra: drop owner assignment from platform_drivers 2014-10-20 16:21:13 +02:00
via net: ethernet: via: drop owner assignment from platform_drivers 2014-10-20 16:21:14 +02:00
wiznet Driver core patches for 3.19-rc1 2014-12-14 16:10:09 -08:00
xilinx net: Xilinx: Deletion of unnecessary checks before two function calls 2014-11-21 15:14:12 -05:00
xircom
xscale
dnet.c
dnet.h
ec_bhf.c
ethoc.c net: ethernet: drop owner assignment from platform_drivers 2014-10-20 16:21:02 +02:00
fealnx.c
jme.c jme: replace calls to redundant function 2014-12-12 15:15:41 -05:00
jme.h
Kconfig rocker: introduce rocker switch driver 2014-12-02 20:01:24 -08:00
korina.c
lantiq_etop.c net: ethernet: drop owner assignment from platform_drivers 2014-10-20 16:21:02 +02:00
Makefile rocker: introduce rocker switch driver 2014-12-02 20:01:24 -08:00
netx-eth.c net: ethernet: drop owner assignment from platform_drivers 2014-10-20 16:21:02 +02:00
s6gmac.c net: ethernet: drop owner assignment from platform_drivers 2014-10-20 16:21:02 +02:00