mirror of
https://github.com/torvalds/linux.git
synced 2026-06-09 07:03:37 +02:00
usb: gadget: android: Cancel pending ctrlrequest before disabling
Make sure there is no pending ctrlrequest before removing the config.
Otherwise the ctrlrequest complete callback could access structures
after they have been freed. Unbind cancels pending transfers but not
ep0 requests.
Bug: 5513065 5440193
Change-Id: I063c22bf5d104a3d2df71cf622409459fac5f27a
Signed-off-by: Benoit Goby <benoit@android.com>
This commit is contained in:
parent
66d9d29720
commit
03af99cfe3
|
|
@ -837,6 +837,8 @@ static ssize_t enable_store(struct device *pdev, struct device_attribute *attr,
|
|||
dev->enabled = true;
|
||||
} else if (!enabled && dev->enabled) {
|
||||
usb_gadget_disconnect(cdev->gadget);
|
||||
/* Cancel pending control requests */
|
||||
usb_ep_dequeue(cdev->gadget->ep0, cdev->req);
|
||||
usb_remove_config(cdev, &android_config_driver);
|
||||
dev->enabled = false;
|
||||
} else {
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user