From: Bjørn Mork Date: Sun, 12 Jan 2014 20:48:53 +0000 (+0100) Subject: usb: cdc-wdm: resp_count can be 0 even if WDM_READ is set X-Git-Tag: v3.14-rc1~148^2~8 X-Git-Url: http://git.openpandora.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=f563926fed982f26b391ca42493f55f2447f1b0a;p=pandora-kernel.git usb: cdc-wdm: resp_count can be 0 even if WDM_READ is set Do not decrement resp_count if it's already 0. We set resp_count to 0 when the device is closed. The next open and read will try to clear the WDM_READ flag if there was leftover data in the read buffer. This fix is necessary to prevent resubmitting the read URB in a tight loop because resp_count becomes negative. The bug can easily be triggered from userspace by not reading all data in the read buffer, and then closing and reopening the chardev. Fixes: 8dd5cd5395b9 ("usb: cdc-wdm: avoid hanging on zero length reads") Cc: # 3.13 Signed-off-by: Bjørn Mork Signed-off-by: Greg Kroah-Hartman --- Reading git-diff-tree failed