We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
There was an error while loading. Please reload this page.
1 parent f6cc609 commit 0afccd7Copy full SHA for 0afccd7
drivers/usb/class/cdc-acm.c
@@ -557,14 +557,14 @@ static void acm_softint(struct work_struct *work)
557
struct acm *acm = container_of(work, struct acm, work);
558
559
if (test_bit(EVENT_RX_STALL, &acm->flags)) {
560
- if (!(usb_autopm_get_interface(acm->data))) {
+ smp_mb(); /* against acm_suspend() */
561
+ if (!acm->susp_count) {
562
for (i = 0; i < acm->rx_buflimit; i++)
563
usb_kill_urb(acm->read_urbs[i]);
564
usb_clear_halt(acm->dev, acm->in);
565
acm_submit_read_urbs(acm, GFP_KERNEL);
- usb_autopm_put_interface(acm->data);
566
+ clear_bit(EVENT_RX_STALL, &acm->flags);
567
}
- clear_bit(EVENT_RX_STALL, &acm->flags);
568
569
570
if (test_and_clear_bit(EVENT_TTY_WAKEUP, &acm->flags))
0 commit comments