From 32698e87ae0b900038a98c19ad4782590706d699 Mon Sep 17 00:00:00 2001 From: Greg Kroah-Hartman Date: Tue, 13 Feb 2024 14:22:38 +0100 Subject: [PATCH] drop xhci patch from older kernels --- queue-4.19/series | 1 - ...e-and-buffer-overrun-events-properly.patch | 51 ------------------- queue-5.10/series | 1 - ...e-and-buffer-overrun-events-properly.patch | 51 ------------------- queue-5.4/series | 1 - ...e-and-buffer-overrun-events-properly.patch | 51 ------------------- 6 files changed, 156 deletions(-) delete mode 100644 queue-4.19/xhci-handle-isoc-babble-and-buffer-overrun-events-properly.patch delete mode 100644 queue-5.10/xhci-handle-isoc-babble-and-buffer-overrun-events-properly.patch delete mode 100644 queue-5.4/xhci-handle-isoc-babble-and-buffer-overrun-events-properly.patch diff --git a/queue-4.19/series b/queue-4.19/series index b7d8c69a77e..7dcdcbb3f47 100644 --- a/queue-4.19/series +++ b/queue-4.19/series @@ -159,5 +159,4 @@ net-af_iucv-clean-up-a-try_then_request_module.patch usb-serial-qcserial-add-new-usb-id-for-dell-wireless-dw5826e.patch usb-serial-option-add-fibocom-fm101-gl-variant.patch usb-serial-cp210x-add-id-for-imst-im871a-usb.patch -xhci-handle-isoc-babble-and-buffer-overrun-events-properly.patch input-atkbd-skip-atkbd_cmd_setleds-when-skipping-atkbd_cmd_getid.patch diff --git a/queue-4.19/xhci-handle-isoc-babble-and-buffer-overrun-events-properly.patch b/queue-4.19/xhci-handle-isoc-babble-and-buffer-overrun-events-properly.patch deleted file mode 100644 index f39c5699224..00000000000 --- a/queue-4.19/xhci-handle-isoc-babble-and-buffer-overrun-events-properly.patch +++ /dev/null @@ -1,51 +0,0 @@ -From 7c4650ded49e5b88929ecbbb631efb8b0838e811 Mon Sep 17 00:00:00 2001 -From: Michal Pecio -Date: Thu, 25 Jan 2024 17:27:37 +0200 -Subject: xhci: handle isoc Babble and Buffer Overrun events properly - -From: Michal Pecio - -commit 7c4650ded49e5b88929ecbbb631efb8b0838e811 upstream. - -xHCI 4.9 explicitly forbids assuming that the xHC has released its -ownership of a multi-TRB TD when it reports an error on one of the -early TRBs. Yet the driver makes such assumption and releases the TD, -allowing the remaining TRBs to be freed or overwritten by new TDs. - -The xHC should also report completion of the final TRB due to its IOC -flag being set by us, regardless of prior errors. This event cannot -be recognized if the TD has already been freed earlier, resulting in -"Transfer event TRB DMA ptr not part of current TD" error message. - -Fix this by reusing the logic for processing isoc Transaction Errors. -This also handles hosts which fail to report the final completion. - -Fix transfer length reporting on Babble errors. They may be caused by -device malfunction, no guarantee that the buffer has been filled. - -Signed-off-by: Michal Pecio -Cc: stable@vger.kernel.org -Signed-off-by: Mathias Nyman -Link: https://lore.kernel.org/r/20240125152737.2983959-5-mathias.nyman@linux.intel.com -Signed-off-by: Greg Kroah-Hartman ---- - drivers/usb/host/xhci-ring.c | 6 +++++- - 1 file changed, 5 insertions(+), 1 deletion(-) - ---- a/drivers/usb/host/xhci-ring.c -+++ b/drivers/usb/host/xhci-ring.c -@@ -2168,9 +2168,13 @@ static int process_isoc_td(struct xhci_h - case COMP_BANDWIDTH_OVERRUN_ERROR: - frame->status = -ECOMM; - break; -- case COMP_ISOCH_BUFFER_OVERRUN: - case COMP_BABBLE_DETECTED_ERROR: -+ sum_trbs_for_length = true; -+ fallthrough; -+ case COMP_ISOCH_BUFFER_OVERRUN: - frame->status = -EOVERFLOW; -+ if (ep_trb != td->last_trb) -+ td->error_mid_td = true; - break; - case COMP_INCOMPATIBLE_DEVICE_ERROR: - case COMP_STALL_ERROR: diff --git a/queue-5.10/series b/queue-5.10/series index 3a19f50788f..fe0604fec83 100644 --- a/queue-5.10/series +++ b/queue-5.10/series @@ -276,7 +276,6 @@ usb-serial-qcserial-add-new-usb-id-for-dell-wireless-dw5826e.patch usb-serial-option-add-fibocom-fm101-gl-variant.patch usb-serial-cp210x-add-id-for-imst-im871a-usb.patch usb-host-xhci-plat-add-support-for-xhci_sg_trb_cache_size_quirk.patch -xhci-handle-isoc-babble-and-buffer-overrun-events-properly.patch hrtimer-report-offline-hrtimer-enqueue.patch input-i8042-fix-strange-behavior-of-touchpad-on-clevo-ns70pu.patch input-atkbd-skip-atkbd_cmd_setleds-when-skipping-atkbd_cmd_getid.patch diff --git a/queue-5.10/xhci-handle-isoc-babble-and-buffer-overrun-events-properly.patch b/queue-5.10/xhci-handle-isoc-babble-and-buffer-overrun-events-properly.patch deleted file mode 100644 index 870429dc182..00000000000 --- a/queue-5.10/xhci-handle-isoc-babble-and-buffer-overrun-events-properly.patch +++ /dev/null @@ -1,51 +0,0 @@ -From 7c4650ded49e5b88929ecbbb631efb8b0838e811 Mon Sep 17 00:00:00 2001 -From: Michal Pecio -Date: Thu, 25 Jan 2024 17:27:37 +0200 -Subject: xhci: handle isoc Babble and Buffer Overrun events properly - -From: Michal Pecio - -commit 7c4650ded49e5b88929ecbbb631efb8b0838e811 upstream. - -xHCI 4.9 explicitly forbids assuming that the xHC has released its -ownership of a multi-TRB TD when it reports an error on one of the -early TRBs. Yet the driver makes such assumption and releases the TD, -allowing the remaining TRBs to be freed or overwritten by new TDs. - -The xHC should also report completion of the final TRB due to its IOC -flag being set by us, regardless of prior errors. This event cannot -be recognized if the TD has already been freed earlier, resulting in -"Transfer event TRB DMA ptr not part of current TD" error message. - -Fix this by reusing the logic for processing isoc Transaction Errors. -This also handles hosts which fail to report the final completion. - -Fix transfer length reporting on Babble errors. They may be caused by -device malfunction, no guarantee that the buffer has been filled. - -Signed-off-by: Michal Pecio -Cc: stable@vger.kernel.org -Signed-off-by: Mathias Nyman -Link: https://lore.kernel.org/r/20240125152737.2983959-5-mathias.nyman@linux.intel.com -Signed-off-by: Greg Kroah-Hartman ---- - drivers/usb/host/xhci-ring.c | 6 +++++- - 1 file changed, 5 insertions(+), 1 deletion(-) - ---- a/drivers/usb/host/xhci-ring.c -+++ b/drivers/usb/host/xhci-ring.c -@@ -2261,9 +2261,13 @@ static int process_isoc_td(struct xhci_h - case COMP_BANDWIDTH_OVERRUN_ERROR: - frame->status = -ECOMM; - break; -- case COMP_ISOCH_BUFFER_OVERRUN: - case COMP_BABBLE_DETECTED_ERROR: -+ sum_trbs_for_length = true; -+ fallthrough; -+ case COMP_ISOCH_BUFFER_OVERRUN: - frame->status = -EOVERFLOW; -+ if (ep_trb != td->last_trb) -+ td->error_mid_td = true; - break; - case COMP_INCOMPATIBLE_DEVICE_ERROR: - case COMP_STALL_ERROR: diff --git a/queue-5.4/series b/queue-5.4/series index 05bab1947fb..3016ccf0538 100644 --- a/queue-5.4/series +++ b/queue-5.4/series @@ -195,6 +195,5 @@ net-af_iucv-clean-up-a-try_then_request_module.patch usb-serial-qcserial-add-new-usb-id-for-dell-wireless-dw5826e.patch usb-serial-option-add-fibocom-fm101-gl-variant.patch usb-serial-cp210x-add-id-for-imst-im871a-usb.patch -xhci-handle-isoc-babble-and-buffer-overrun-events-properly.patch hrtimer-report-offline-hrtimer-enqueue.patch input-atkbd-skip-atkbd_cmd_setleds-when-skipping-atkbd_cmd_getid.patch diff --git a/queue-5.4/xhci-handle-isoc-babble-and-buffer-overrun-events-properly.patch b/queue-5.4/xhci-handle-isoc-babble-and-buffer-overrun-events-properly.patch deleted file mode 100644 index a8ac3fab5cf..00000000000 --- a/queue-5.4/xhci-handle-isoc-babble-and-buffer-overrun-events-properly.patch +++ /dev/null @@ -1,51 +0,0 @@ -From 7c4650ded49e5b88929ecbbb631efb8b0838e811 Mon Sep 17 00:00:00 2001 -From: Michal Pecio -Date: Thu, 25 Jan 2024 17:27:37 +0200 -Subject: xhci: handle isoc Babble and Buffer Overrun events properly - -From: Michal Pecio - -commit 7c4650ded49e5b88929ecbbb631efb8b0838e811 upstream. - -xHCI 4.9 explicitly forbids assuming that the xHC has released its -ownership of a multi-TRB TD when it reports an error on one of the -early TRBs. Yet the driver makes such assumption and releases the TD, -allowing the remaining TRBs to be freed or overwritten by new TDs. - -The xHC should also report completion of the final TRB due to its IOC -flag being set by us, regardless of prior errors. This event cannot -be recognized if the TD has already been freed earlier, resulting in -"Transfer event TRB DMA ptr not part of current TD" error message. - -Fix this by reusing the logic for processing isoc Transaction Errors. -This also handles hosts which fail to report the final completion. - -Fix transfer length reporting on Babble errors. They may be caused by -device malfunction, no guarantee that the buffer has been filled. - -Signed-off-by: Michal Pecio -Cc: stable@vger.kernel.org -Signed-off-by: Mathias Nyman -Link: https://lore.kernel.org/r/20240125152737.2983959-5-mathias.nyman@linux.intel.com -Signed-off-by: Greg Kroah-Hartman ---- - drivers/usb/host/xhci-ring.c | 6 +++++- - 1 file changed, 5 insertions(+), 1 deletion(-) - ---- a/drivers/usb/host/xhci-ring.c -+++ b/drivers/usb/host/xhci-ring.c -@@ -2227,9 +2227,13 @@ static int process_isoc_td(struct xhci_h - case COMP_BANDWIDTH_OVERRUN_ERROR: - frame->status = -ECOMM; - break; -- case COMP_ISOCH_BUFFER_OVERRUN: - case COMP_BABBLE_DETECTED_ERROR: -+ sum_trbs_for_length = true; -+ fallthrough; -+ case COMP_ISOCH_BUFFER_OVERRUN: - frame->status = -EOVERFLOW; -+ if (ep_trb != td->last_trb) -+ td->error_mid_td = true; - break; - case COMP_INCOMPATIBLE_DEVICE_ERROR: - case COMP_STALL_ERROR: -- 2.47.3