1 | From: luying1 <luying1@xiaomi.com> | 1 | From: Ying Lu <luying1@xiaomi.com> |
---|---|---|---|
2 | 2 | ||
3 | The patchset fix the issue caused by the following modifications: | 3 | The patchset fix the issue caused by the following modifications: |
4 | commit 04e906839a053f092ef53f4fb2d610983412b904 | 4 | commit 04e906839a053f092ef53f4fb2d610983412b904 |
5 | (usbnet: fix cyclical race on disconnect with work queue) | 5 | (usbnet: fix cyclical race on disconnect with work queue) |
6 | 6 | ||
... | ... | ||
14 | attempt to access skb->next, triggering a NULL pointer dereference (Kernel Panic). | 14 | attempt to access skb->next, triggering a NULL pointer dereference (Kernel Panic). |
15 | 15 | ||
16 | Fix issue: | 16 | Fix issue: |
17 | adding the usbnet_going_away check in usb_submit_urb to synchronize the validation logic. | 17 | adding the usbnet_going_away check in usb_submit_urb to synchronize the validation logic. |
18 | 18 | ||
19 | Changes in v4 | ||
20 | -use the correct "Cc:" tag format. | ||
19 | 21 | ||
20 | luying1 (1): | 22 | Changes in v3 |
23 | -use the correct "Fixes:" tag format. | ||
24 | |||
25 | Changes in v2 | ||
26 | -Use the formal name instead of an email alias. | ||
27 | |||
28 | Ying Lu (1): | ||
21 | usbnet:fix NPE during rx_complete | 29 | usbnet:fix NPE during rx_complete |
22 | 30 | ||
23 | drivers/net/usb/usbnet.c | 6 +++--- | 31 | drivers/net/usb/usbnet.c | 6 +++--- |
24 | 1 file changed, 3 insertions(+), 3 deletions(-) | 32 | 1 file changed, 3 insertions(+), 3 deletions(-) |
25 | 33 | ||
26 | -- | 34 | -- |
27 | 2.40.1 | 35 | 2.49.0 |
28 | 36 | diff view generated by jsdifflib |
1 | From: luying1 <luying1@xiaomi.com> | 1 | From: Ying Lu <luying1@xiaomi.com> |
---|---|---|---|
2 | 2 | ||
3 | Missing usbnet_going_away Check in Critical Path. | 3 | Missing usbnet_going_away Check in Critical Path. |
4 | The usb_submit_urb function lacks a usbnet_going_away | 4 | The usb_submit_urb function lacks a usbnet_going_away |
5 | validation, whereas __usbnet_queue_skb includes this check. | 5 | validation, whereas __usbnet_queue_skb includes this check. |
6 | 6 | ||
... | ... | ||
11 | Subsequent processes: | 11 | Subsequent processes: |
12 | (e.g., rx_complete → defer_bh → __skb_unlink(skb, list)) | 12 | (e.g., rx_complete → defer_bh → __skb_unlink(skb, list)) |
13 | attempt to access skb->next, triggering a NULL pointer | 13 | attempt to access skb->next, triggering a NULL pointer |
14 | dereference (Kernel Panic). | 14 | dereference (Kernel Panic). |
15 | 15 | ||
16 | Signed-off-by: luying1 <luying1@xiaomi.com> | 16 | Fixes: 04e906839a05 ("usbnet: fix cyclical race on disconnect with work queue") |
17 | Cc: stable@vger.kernel.org | ||
18 | Signed-off-by: Ying Lu <luying1@xiaomi.com> | ||
17 | --- | 19 | --- |
18 | drivers/net/usb/usbnet.c | 6 +++--- | 20 | drivers/net/usb/usbnet.c | 6 +++--- |
19 | 1 file changed, 3 insertions(+), 3 deletions(-) | 21 | 1 file changed, 3 insertions(+), 3 deletions(-) |
20 | 22 | ||
21 | diff --git a/drivers/net/usb/usbnet.c b/drivers/net/usb/usbnet.c | 23 | diff --git a/drivers/net/usb/usbnet.c b/drivers/net/usb/usbnet.c |
... | ... | ||
41 | + __usbnet_queue_skb(&dev->rxq, skb, rx_start); | 43 | + __usbnet_queue_skb(&dev->rxq, skb, rx_start); |
42 | } | 44 | } |
43 | } else { | 45 | } else { |
44 | netif_dbg(dev, ifdown, dev->net, "rx: stopped\n"); | 46 | netif_dbg(dev, ifdown, dev->net, "rx: stopped\n"); |
45 | -- | 47 | -- |
46 | 2.40.1 | 48 | 2.49.0 |
47 | 49 | diff view generated by jsdifflib |