cdc-acm: close race betrween suspend() and acm_softint
authorOliver Neukum <oneukum@suse.com>
Wed, 15 Apr 2020 15:13:57 +0000 (17:13 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 16 Apr 2020 12:59:49 +0000 (14:59 +0200)
commit0afccd7601514c4b83d8cc58c740089cc447051d
treec30222401442d5626449f2fb8e4cf32eb6b90ceb
parentf6cc6093a729ede1ff5658b493237c42b82ba107
cdc-acm: close race betrween suspend() and acm_softint

Suspend increments a counter, then kills the URBs,
then kills the scheduled work. The scheduled work, however,
may reschedule the URBs. Fix this by having the work
check the counter.

Signed-off-by: Oliver Neukum <oneukum@suse.com>
Cc: stable <stable@vger.kernel.org>
Tested-by: Jonas Karlsson <jonas.karlsson@actia.se>
Link: https://lore.kernel.org/r/20200415151358.32664-1-oneukum@suse.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/usb/class/cdc-acm.c