Merge "usb: gadget: composite: Add spinlock protection for usb config descriptor"
This commit is contained in:
commit
12fdb0f751
1 changed files with 4 additions and 0 deletions
|
@ -1655,7 +1655,9 @@ composite_setup(struct usb_gadget *gadget, const struct usb_ctrlrequest *ctrl)
|
||||||
if (!gadget_is_dualspeed(gadget) ||
|
if (!gadget_is_dualspeed(gadget) ||
|
||||||
gadget->speed >= USB_SPEED_SUPER)
|
gadget->speed >= USB_SPEED_SUPER)
|
||||||
break;
|
break;
|
||||||
|
spin_lock(&cdev->lock);
|
||||||
device_qual(cdev);
|
device_qual(cdev);
|
||||||
|
spin_unlock(&cdev->lock);
|
||||||
value = min_t(int, w_length,
|
value = min_t(int, w_length,
|
||||||
sizeof(struct usb_qualifier_descriptor));
|
sizeof(struct usb_qualifier_descriptor));
|
||||||
break;
|
break;
|
||||||
|
@ -1665,7 +1667,9 @@ composite_setup(struct usb_gadget *gadget, const struct usb_ctrlrequest *ctrl)
|
||||||
break;
|
break;
|
||||||
/* FALLTHROUGH */
|
/* FALLTHROUGH */
|
||||||
case USB_DT_CONFIG:
|
case USB_DT_CONFIG:
|
||||||
|
spin_lock(&cdev->lock);
|
||||||
value = config_desc(cdev, w_value);
|
value = config_desc(cdev, w_value);
|
||||||
|
spin_unlock(&cdev->lock);
|
||||||
if (value >= 0)
|
if (value >= 0)
|
||||||
value = min(w_length, (u16) value);
|
value = min(w_length, (u16) value);
|
||||||
break;
|
break;
|
||||||
|
|
Loading…
Add table
Reference in a new issue