From: Oliver Neukum oneukum@suse.com
commit 97fe809934dd2b0b37dfef3a2fc70417f485d7af upstream.
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 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
--- a/drivers/usb/class/cdc-acm.c +++ b/drivers/usb/class/cdc-acm.c @@ -590,7 +590,7 @@ static void acm_softint(struct work_stru }
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); }