diff options
author | Ying Lu <luying1@xiaomi.com> | 2025-04-02 11:58:59 +0300 |
---|---|---|
committer | Jakub Kicinski <kuba@kernel.org> | 2025-04-04 17:24:46 +0300 |
commit | 51de3600093429e3b712e5f091d767babc5dd6df (patch) | |
tree | 2d5117ceacca7347216fec265450756867ccc272 /lib/timerqueue.c | |
parent | 2a8377720a0a30fa133f7773e901598f7d563f36 (diff) | |
download | linux-51de3600093429e3b712e5f091d767babc5dd6df.tar.xz |
usbnet:fix NPE during rx_complete
Missing usbnet_going_away Check in Critical Path.
The usb_submit_urb function lacks a usbnet_going_away
validation, whereas __usbnet_queue_skb includes this check.
This inconsistency creates a race condition where:
A URB request may succeed, but the corresponding SKB data
fails to be queued.
Subsequent processes:
(e.g., rx_complete → defer_bh → __skb_unlink(skb, list))
attempt to access skb->next, triggering a NULL pointer
dereference (Kernel Panic).
Fixes: 04e906839a05 ("usbnet: fix cyclical race on disconnect with work queue")
Cc: stable@vger.kernel.org
Signed-off-by: Ying Lu <luying1@xiaomi.com>
Link: https://patch.msgid.link/4c9ef2efaa07eb7f9a5042b74348a67e5a3a7aea.1743584159.git.luying1@xiaomi.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Diffstat (limited to 'lib/timerqueue.c')
0 files changed, 0 insertions, 0 deletions