Lorenzo Bianconi
8e1da73acd
gro_cell: add napi_disable in gro_cells_destroy
...
Add napi_disable routine in gro_cells_destroy since starting from
commit c42858eaf4 ("gro_cells: remove spinlock protecting receive
queues") gro_cell_poll and gro_cells_destroy can run concurrently on
napi_skbs list producing a kernel Oops if the tunnel interface is
removed while gro_cell_poll is running. The following Oops has been
triggered removing a vxlan device while the interface is receiving
traffic
[ 5628.948853] BUG: unable to handle kernel NULL pointer dereference at 0000000000000008
[ 5628.949981] PGD 0 P4D 0
[ 5628.950308] Oops: 0002 [#1 ] SMP PTI
[ 5628.950748] CPU: 0 PID: 9 Comm: ksoftirqd/0 Not tainted 4.20.0-rc6+ #41
[ 5628.952940] RIP: 0010:gro_cell_poll+0x49/0x80
[ 5628.955615] RSP: 0018:ffffc9000004fdd8 EFLAGS: 00010202
[ 5628.956250] RAX: 0000000000000000 RBX: ffffe8ffffc08150 RCX: 0000000000000000
[ 5628.957102] RDX: 0000000000000000 RSI: ffff88802356bf00 RDI: ffffe8ffffc08150
[ 5628.957940] RBP: 0000000000000026 R08: 0000000000000000 R09: 0000000000000000
[ 5628.958803] R10: 0000000000000001 R11: 0000000000000000 R12: 0000000000000040
[ 5628.959661] R13: ffffe8ffffc08100 R14: 0000000000000000 R15: 0000000000000040
[ 5628.960682] FS: 0000000000000000(0000) GS:ffff88803ea00000(0000) knlGS:0000000000000000
[ 5628.961616] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[ 5628.962359] CR2: 0000000000000008 CR3: 000000000221c000 CR4: 00000000000006b0
[ 5628.963188] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
[ 5628.964034] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
[ 5628.964871] Call Trace:
[ 5628.965179] net_rx_action+0xf0/0x380
[ 5628.965637] __do_softirq+0xc7/0x431
[ 5628.966510] run_ksoftirqd+0x24/0x30
[ 5628.966957] smpboot_thread_fn+0xc5/0x160
[ 5628.967436] kthread+0x113/0x130
[ 5628.968283] ret_from_fork+0x3a/0x50
[ 5628.968721] Modules linked in:
[ 5628.969099] CR2: 0000000000000008
[ 5628.969510] ---[ end trace 9d9dedc7181661fe ]---
[ 5628.970073] RIP: 0010:gro_cell_poll+0x49/0x80
[ 5628.972965] RSP: 0018:ffffc9000004fdd8 EFLAGS: 00010202
[ 5628.973611] RAX: 0000000000000000 RBX: ffffe8ffffc08150 RCX: 0000000000000000
[ 5628.974504] RDX: 0000000000000000 RSI: ffff88802356bf00 RDI: ffffe8ffffc08150
[ 5628.975462] RBP: 0000000000000026 R08: 0000000000000000 R09: 0000000000000000
[ 5628.976413] R10: 0000000000000001 R11: 0000000000000000 R12: 0000000000000040
[ 5628.977375] R13: ffffe8ffffc08100 R14: 0000000000000000 R15: 0000000000000040
[ 5628.978296] FS: 0000000000000000(0000) GS:ffff88803ea00000(0000) knlGS:0000000000000000
[ 5628.979327] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[ 5628.980044] CR2: 0000000000000008 CR3: 000000000221c000 CR4: 00000000000006b0
[ 5628.980929] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
[ 5628.981736] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
[ 5628.982409] Kernel panic - not syncing: Fatal exception in interrupt
[ 5628.983307] Kernel Offset: disabled
Fixes: c42858eaf4 ("gro_cells: remove spinlock protecting receive queues")
Signed-off-by: Lorenzo Bianconi <lorenzo.bianconi@redhat.com>
Acked-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2018-12-19 15:50:02 -08:00
arch
Merge git://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf
2018-12-15 10:58:32 -08:00
block
blk-mq: punt failed direct issue to dispatch list
2018-12-07 08:16:11 -07:00
certs
crypto
crypto: user - Disable statistics interface
2018-12-07 13:56:08 +08:00
Documentation
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
2018-12-09 15:12:33 -08:00
drivers
lan743x: Remove MAC Reset from initialization
2018-12-19 15:48:11 -08:00
firmware
fs
a fix for smb3 direct i/o, a fix for CIFS DFS for stable and a minor cifs Kconfig fix
2018-12-09 10:15:13 -08:00
include
Merge git://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf
2018-12-18 22:30:33 -08:00
init
initramfs: clean old path before creating a hardlink
2018-11-30 14:56:14 -08:00
ipc
ipc: IPCMNI limit check for semmni
2018-10-31 08:54:14 -07:00
kernel
Merge git://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf
2018-12-15 10:58:32 -08:00
lib
debugobjects: avoid recursive calls with kmemleak
2018-11-30 14:56:14 -08:00
LICENSES
mm
dax fixes 4.20-rc6
2018-12-09 09:54:04 -08:00
net
gro_cell: add napi_disable in gro_cells_destroy
2018-12-19 15:50:02 -08:00
samples
VFIO updates for v4.20
2018-10-31 11:01:38 -07:00
scripts
Fixes for stackleak
2018-12-07 13:13:07 -08:00
security
selinux/stable-4.20 PR 20181129
2018-11-29 10:15:06 -08:00
sound
ALSA: hda/realtek: Fix mic issue on Acer AIO Veriton Z4860G/Z6860G
2018-12-05 16:39:59 +01:00
tools
selftests: net: Add test_vxlan_fdb_changelink.sh
2018-12-18 21:18:26 -08:00
usr
virt
Revert "mm, mmu_notifier: annotate mmu notifiers with blockable invalidate callbacks"
2018-10-26 16:25:19 -07:00
.clang-format
.cocciconfig
.get_maintainer.ignore
.gitattributes
.gitignore
.mailmap
mailmap: Update email for Punit Agrawal
2018-11-05 10:02:11 +00:00
COPYING
CREDITS
MAINTAINERS: change Sparse's maintainer
2018-11-25 09:17:43 -08:00
Kbuild
Kconfig
MAINTAINERS
wireless-drivers fixes for 4.20
2018-12-19 08:39:18 -08:00
Makefile
Linux 4.20-rc6
2018-12-09 15:31:00 -08:00
README