This is a note to let you know that I've just added the patch titled Revert "usb: cdc-wdm: close race between read and workqueue" to the 5.4-stable tree which can be found at: http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary The filename of the patch is: revert-usb-cdc-wdm-close-race-between-read-and-workqueue.patch and it can be found in the queue-5.4 subdirectory. If you, or anyone else, feels it should not be added to the stable tree, please let <stable@xxxxxxxxxxxxxxx> know about it. >From 1607830dadeefc407e4956336d9fcd9e9defd810 Mon Sep 17 00:00:00 2001 From: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx> Date: Thu, 18 Apr 2024 16:33:28 +0200 Subject: Revert "usb: cdc-wdm: close race between read and workqueue" MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit From: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx> commit 1607830dadeefc407e4956336d9fcd9e9defd810 upstream. This reverts commit 339f83612f3a569b194680768b22bf113c26a29d. It has been found to cause problems in a number of Chromebook devices, so revert the change until it can be brought back in a safe way. Link: https://lore.kernel.org/r/385a3519-b45d-48c5-a6fd-a3fdb6bec92f@xxxxxxxxxxxx Reported-by:: Aleksander Morgado <aleksandermj@xxxxxxxxxxxx> Fixes: 339f83612f3a ("usb: cdc-wdm: close race between read and workqueue") Cc: stable <stable@xxxxxxxxxx> Cc: Oliver Neukum <oneukum@xxxxxxxx> Cc: Bjørn Mork <bjorn@xxxxxxx> Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx> --- drivers/usb/class/cdc-wdm.c | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) --- a/drivers/usb/class/cdc-wdm.c +++ b/drivers/usb/class/cdc-wdm.c @@ -471,7 +471,6 @@ out_free_mem: static int service_outstanding_interrupt(struct wdm_device *desc) { int rv = 0; - int used; /* submit read urb only if the device is waiting for it */ if (!desc->resp_count || !--desc->resp_count) @@ -486,10 +485,7 @@ static int service_outstanding_interrupt goto out; } - used = test_and_set_bit(WDM_RESPONDING, &desc->flags); - if (used) - goto out; - + set_bit(WDM_RESPONDING, &desc->flags); spin_unlock_irq(&desc->iuspin); rv = usb_submit_urb(desc->response, GFP_KERNEL); spin_lock_irq(&desc->iuspin); Patches currently in stable-queue which might be from gregkh@xxxxxxxxxxxxxxxxxxx are queue-5.4/revert-tracing-trigger-fix-to-return-error-if-failed-to-alloc-snapshot.patch queue-5.4/vhost-add-smp_rmb-in-vhost_vq_avail_empty.patch queue-5.4/comedi-vmk80xx-fix-incomplete-endpoint-checking.patch queue-5.4/usb-serial-option-add-support-for-fibocom-fm650-fg650.patch queue-5.4/usb-serial-option-add-telit-fn920c04-rmnet-compositions.patch queue-5.4/usb-dwc2-host-fix-dereference-issue-in-ddma-completion-flow.patch queue-5.4/batman-adv-avoid-infinite-loop-trying-to-resize-local-tt.patch queue-5.4/selftests-timers-fix-abs-warning-in-posix_timers-test.patch queue-5.4/selftests-ftrace-limit-length-in-subsystem-enable-tests.patch queue-5.4/usb-serial-option-add-fibocom-fm135-gl-variants.patch queue-5.4/speakup-avoid-crash-on-very-long-word.patch queue-5.4/usb-disable-usb3-lpm-at-shutdown.patch queue-5.4/drm-client-fully-protect-modes-with-dev-mode_config.mutex.patch queue-5.4/serial-pmac_zilog-remove-flawed-mitigation-for-rx-irq-flood.patch queue-5.4/bluetooth-fix-memory-leak-in-hci_req_sync_complete.patch queue-5.4/usb-serial-option-add-lonsung-u8300-u9300-product.patch queue-5.4/btrfs-qgroup-correctly-model-root-qgroup-rsv-in-convert.patch queue-5.4/usb-serial-option-support-quectel-em060k-sub-models.patch queue-5.4/x86-apic-force-native_apic_mem_read-to-use-the-mov-instruction.patch queue-5.4/fs-sysfs-fix-reference-leak-in-sysfs_break_active_protection.patch queue-5.4/binder-check-offset-alignment-in-binder_get_object.patch queue-5.4/revert-usb-cdc-wdm-close-race-between-read-and-workqueue.patch queue-5.4/usb-serial-option-add-rolling-rw101-gl-and-rw135-gl-support.patch queue-5.4/kprobes-fix-possible-use-after-free-issue-on-kprobe-registration.patch