diff options
author | Song Yoong Siang <yoong.siang.song@intel.com> | 2021-08-25 08:55:29 +0800 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2021-08-25 10:59:39 +0100 |
commit | a6451192da2691dcf39507bd758dde35d4606ee1 (patch) | |
tree | 7e58bd24f791347951de1e37bf486ad9150e5536 /block/blk-merge.c | |
parent | 85520079afce885b80647fbd0d13d8f03d057167 (diff) |
net: stmmac: fix kernel panic due to NULL pointer dereference of xsk_pool
After free xsk_pool, there is possibility that napi polling is still
running in the middle, thus causes a kernel crash due to kernel NULL
pointer dereference of rx_q->xsk_pool and tx_q->xsk_pool.
Fix this by changing the XDP pool setup sequence to:
1. disable napi before free xsk_pool
2. enable napi after init xsk_pool
The following kernel panic is observed without this patch:
RIP: 0010:xsk_uses_need_wakeup+0x5/0x10
Call Trace:
stmmac_napi_poll_rxtx+0x3a9/0xae0 [stmmac]
__napi_poll+0x27/0x130
net_rx_action+0x233/0x280
__do_softirq+0xe2/0x2b6
run_ksoftirqd+0x1a/0x20
smpboot_thread_fn+0xac/0x140
? sort_range+0x20/0x20
kthread+0x124/0x150
? set_kthread_struct+0x40/0x40
ret_from_fork+0x1f/0x30
---[ end trace a77c8956b79ac107 ]---
Fixes: bba2556efad6 ("net: stmmac: Enable RX via AF_XDP zero-copy")
Cc: <stable@vger.kernel.org> # 5.13.x
Signed-off-by: Song Yoong Siang <yoong.siang.song@intel.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'block/blk-merge.c')
0 files changed, 0 insertions, 0 deletions