With recent changes in AOSP, adb is now using asynchronous I/O. While adb works good for the most part, there have been issues with adb root/unroot commands which cause adb hang. The issue is caused by a request being queued twice. A series of 3 patches from Felipe Balbi in upstream tree fixes this issue.
Felipe Balbi (3): usb: dwc3: gadget: add dwc3_request status tracking usb: dwc3: gadget: prevent dwc3_request from being queued twice usb: dwc3: gadget: remove req->started flag
drivers/usb/dwc3/core.h | 11 +++++++++-- drivers/usb/dwc3/gadget.c | 9 ++++++++- drivers/usb/dwc3/gadget.h | 4 ++-- 3 files changed, 19 insertions(+), 5 deletions(-)