[PATCH v3 0/5] usb: xhci: Handle USB transaction error on address command

From: Lu Baolu
Date: Thu Aug 10 2017 - 22:45:48 EST


Xhci driver handles USB transaction errors on transfer events,
but transaction errors are possible on address device command
completion events as well.

The xHCI specification (section 4.6.5) says: A USB Transaction
Error Completion Code for an Address Device Command may be due
to a Stall response from a device. Software should issue a Disable
Slot Command for the Device Slot then an Enable Slot Command to
recover from this error.

The related discussion threads can be found through below links.

http://marc.info/?l=linux-usb&m=149362010728921&w=2
http://marc.info/?l=linux-usb&m=149252752825755&w=2

This patch set includes some fixes in xhci_disable_slot() as well
which will be used to handle USB transaction error on address
command.

---
Change log:

v1->v2:
- Add 4 fixes in xhci_disable_slot which will be used
to handle USB transaction error on address command.

v2->v3:
- Add checking virt dev for test mode in PATCH 1/5.

Lu Baolu (5):
usb: xhci: Disable slot even virt-dev is null
usb: xhci: Fix potential memory leak in xhci_disable_slot()
usb: xhci: Fix memory leak when xhci_disable_slot() returns error
usb: xhci: Return error when host is dead in xhci_disable_slot()
usb: xhci: Handle USB transaction error on address command

drivers/usb/host/xhci-hub.c | 5 ++++-
drivers/usb/host/xhci.c | 52 ++++++++++++++++++---------------------------
drivers/usb/host/xhci.h | 3 +--
3 files changed, 26 insertions(+), 34 deletions(-)

--
2.7.4