Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 58484d7c authored by sgopal1's avatar sgopal1
Browse files

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: default avatarsgopal1 <saranya.gopal@intel.com>
parent ff801e5f
Loading
Loading
Loading
Loading
+4 −1
Original line number Diff line number Diff line
@@ -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 {