CDC-ACM: heed quirk also in error handling
authorOliver Neukum <oneukum@suse.com>
Tue, 26 May 2020 12:44:20 +0000 (14:44 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 27 May 2020 08:25:40 +0000 (10:25 +0200)
If buffers are iterated over in the error case, the lower limits
for quirky devices must be heeded.

Signed-off-by: Oliver Neukum <oneukum@suse.com>
Reported-by: Jean Rene Dawin <jdawin@math.uni-bielefeld.de>
Fixes: a4e7279cd1d19 ("cdc-acm: introduce a cool down")
Cc: stable <stable@vger.kernel.org>
Link: https://lore.kernel.org/r/20200526124420.22160-1-oneukum@suse.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/usb/class/cdc-acm.c

index ded8d93834ca739bc11f7ff4e9f5d6c5c01e3f58..f67088bb8218b82f9089be2e3d6a3228e77886ca 100644 (file)
@@ -584,7 +584,7 @@ static void acm_softint(struct work_struct *work)
        }
 
        if (test_and_clear_bit(ACM_ERROR_DELAY, &acm->flags)) {
-               for (i = 0; i < ACM_NR; i++) 
+               for (i = 0; i < acm->rx_buflimit; i++)
                        if (test_and_clear_bit(i, &acm->urbs_in_error_delay))
                                        acm_submit_read_urb(acm, i, GFP_NOIO);
        }