UsbDescriptor: Add finite timeout to control transfer
Using "0" as value for USB control transfer timeout results in an unlimited timeout in case of bad USB devices. In host kernels where hung task panic is enabled, this results in device reboot. So, add a finite timeout for USB control transfer. Test: manual run and test with bad USB devices. Change-Id: Ibc13ca4d8259a08ae7419bb3bcac9c161b1d3693 Signed-off-by: sgopal1 <saranya.gopal@intel.com>
This commit is contained in:
@@ -126,6 +126,9 @@ public abstract class UsbDescriptor implements Reporting {
|
||||
public static final int REQUEST_GET_CONFIGURATION = 0x08;
|
||||
public static final int REQUEST_SET_CONFIGURATION = 0x09;
|
||||
|
||||
// USB control transfer timeout
|
||||
public static final int USB_CONTROL_TRANSFER_TIMEOUT_MS = 200;
|
||||
|
||||
/**
|
||||
* @throws IllegalArgumentException
|
||||
*/
|
||||
@@ -224,7 +227,7 @@ public abstract class UsbDescriptor implements Reporting {
|
||||
0,
|
||||
sStringBuffer,
|
||||
0xFF,
|
||||
0);
|
||||
USB_CONTROL_TRANSFER_TIMEOUT_MS);
|
||||
if (rdo >= 0) {
|
||||
usbStr = new String(sStringBuffer, 2, rdo - 2, "UTF-16LE");
|
||||
} else {
|
||||
|
||||
Reference in New Issue
Block a user