Linux kernel source tree
Go to file
Feng Mingli e30da71b23 USB: core: flush pending URBs for unusual USB3 core when disable device
According to xHCI spec v1.1 section 6.4.5 TRB Completion Codes,
the standard XHCI controller provide a TRB Completion Status
'USB Transaction Error' to asserted in the case where the host
did not receive a valid response from the device, it's useful
to handle pending URBs on the endpoint when the USB device is
plugged out.

Unfortunately, some SOCs USB 3.0 modules lose the ability to
assert the 'USB Transaction Error' status when USB 3.0 device
disconnect. This may cause the pending URBs unhandled, even
lead to USB class driver stalled in waiting for URBs complete.

This patch flush pending URBs in usb_disable_device() when
USB 3.0 device disconnect, it will call xhci_urb_dequeue()
-> xhci_queue_stop_endpoint() to cancel pending URBs and
giveback URB status immediately.

Change-Id: If8acac59bc1f2c10a41ee390ccbeb84b2e7743c1
Signed-off-by: Feng Mingli <fml@rock-chips.com>
Signed-off-by: Frank Wang <frank.wang@rock-chips.com>
2019-11-04 14:18:53 +08:00
arch ARM: rockchip_defconfig: disable CONFIG_AUDITSYSCALL 2019-11-01 19:54:32 +08:00
block Merge remote branch 'android-4.19' of https://android.googlesource.com/kernel/common 2019-10-28 20:26:28 +08:00
certs rk: revert to v4.4 2019-02-10 00:33:21 +08:00
crypto This is the 4.19.79 stable release 2019-10-11 19:13:57 +02:00
Documentation dt-bindings: usb: dwc3: add dis-u3-autosuspend-quirk property 2019-11-04 11:10:20 +08:00
drivers USB: core: flush pending URBs for unusual USB3 core when disable device 2019-11-04 14:18:53 +08:00
firmware kbuild: remove all dummy assignments to obj- 2017-11-18 11:46:06 +09:00
fs Merge remote branch 'android-4.19' of https://android.googlesource.com/kernel/common 2019-10-28 20:26:28 +08:00
include usb: core: hub: add quirk for hub with broken autosuspend function 2019-11-04 10:18:11 +08:00
init FROMGIT: audit: Add option to enable/disable syscall audit 2019-11-01 19:54:32 +08:00
ipc This is the 4.19.65 stable release 2019-08-06 20:08:18 +02:00
kernel Merge remote branch 'android-4.19' of https://android.googlesource.com/kernel/common 2019-10-28 20:26:28 +08:00
lib Merge remote branch 'android-4.19' of https://android.googlesource.com/kernel/common 2019-10-28 20:26:28 +08:00
LICENSES LICENSES: Remove CC-BY-SA-4.0 license text 2018-10-18 11:28:50 +02:00
mm Merge remote branch 'android-4.19' of https://android.googlesource.com/kernel/common 2019-10-28 20:26:28 +08:00
net Merge remote branch 'android-4.19' of https://android.googlesource.com/kernel/common 2019-10-28 20:26:28 +08:00
samples samples, bpf: suppress compiler warning 2019-07-14 08:11:04 +02:00
scripts Merge remote branch 'android-4.19' of https://android.googlesource.com/kernel/common 2019-10-28 20:26:28 +08:00
security Merge remote branch 'android-4.19' of https://android.googlesource.com/kernel/common 2019-10-28 20:26:28 +08:00
sound ASoC: rockchip: add support for rk312x codec 2019-11-01 14:17:04 +08:00
tools Merge remote branch 'android-4.19' of https://android.googlesource.com/kernel/common 2019-10-28 20:26:28 +08:00
usr kbuild: clean compressed initramfs image 2019-10-07 18:57:16 +02:00
virt KVM: coalesced_mmio: add bounds checking 2019-09-21 07:16:44 +02:00
.checkpatch.conf rk: add .checkpatch.conf to enable strict check 2015-11-19 12:04:19 +08:00
.clang-format clang-format: Set IndentWrappedFunctionNames false 2018-08-01 18:38:51 +02:00
.cocciconfig scripts: add Linux .cocciconfig for coccinelle 2016-07-22 12:13:39 +02:00
.get_maintainer.ignore
.gitattributes .gitattributes: set git diff driver for C source code files 2016-10-07 18:46:30 -07:00
.gitignore rk: .gitignore: ignore boot.img/kernel.img/resource.img/zboot.mg 2019-02-15 18:31:05 +08:00
.mailmap rk: revert to v4.4 2019-02-10 00:33:21 +08:00
.scmversion
abi_gki_aarch64.xml ANDROID: enable CONFIG_ION_SYSTEM_HEAP for GKI 2019-09-23 23:26:20 -07:00
build.config.aarch64 ANDROID: refactor build.config files to remove duplication 2019-10-22 18:27:12 -07:00
build.config.common ANDROID: refactor build.config files to remove duplication 2019-10-22 18:27:12 -07:00
build.config.gki ANDROID: refactor build.config files to remove duplication 2019-10-22 18:27:12 -07:00
build.config.gki.aarch64 ANDROID: refactor build.config files to remove duplication 2019-10-22 18:27:12 -07:00
build.config.gki.x86_64 ANDROID: refactor build.config files to remove duplication 2019-10-22 18:27:12 -07:00
build.config.x86_64 ANDROID: refactor build.config files to remove duplication 2019-10-22 18:27:12 -07:00
COPYING COPYING: use the new text with points to the license files 2018-03-23 12:41:45 -06:00
CREDITS 9p: remove Ron Minnich from MAINTAINERS 2018-08-17 16:20:26 -07:00
Kbuild rk: revert to v4.4 2019-02-10 00:33:21 +08:00
Kconfig kconfig: move the "Executable file formats" menu to fs/Kconfig.binfmt 2018-08-02 08:06:55 +09:00
logo_kernel.bmp rk: logo: update logo file 2019-08-29 19:45:37 +08:00
logo.bmp rk: logo: update logo file 2019-08-29 19:45:37 +08:00
MAINTAINERS This is the 4.19.80 stable release 2019-10-17 15:33:07 -07:00
Makefile Merge remote branch 'android-4.19' of https://android.googlesource.com/kernel/common 2019-10-28 20:26:28 +08:00
README Docs: Added a pointer to the formatted docs to README 2018-03-21 09:02:53 -06:00

Linux kernel
============

There are several guides for kernel developers and users. These guides can
be rendered in a number of formats, like HTML and PDF. Please read
Documentation/admin-guide/README.rst first.

In order to build the documentation, use ``make htmldocs`` or
``make pdfdocs``.  The formatted documentation can also be read online at:

    https://www.kernel.org/doc/html/latest/

There are various text files in the Documentation/ subdirectory,
several of them using the Restructured Text markup notation.
See Documentation/00-INDEX for a list of what is contained in each file.

Please read the Documentation/process/changes.rst file, as it contains the
requirements for building and running the kernel, and information about
the problems which may result by upgrading your kernel.