linux-uconsole/drivers
Mathias Nyman cc8b329fef usb: xhci: Prevent bus suspend if a port connect change or polling state is detected
commit 2f31a67f01 upstream.

USB3 roothub might autosuspend before a plugged USB3 device is detected,
causing USB3 device enumeration failure.

USB3 devices don't show up as connected and enabled until USB3 link trainig
completes. On a fast booting platform with a slow USB3 link training the
link might reach the connected enabled state just as the bus is suspending.

If this device is discovered first time by the xhci_bus_suspend() routine
it will be put to U3 suspended state like the other ports which failed to
suspend earlier.

The hub thread will notice the connect change and resume the bus,
moving the port back to U0

This U0 -> U3 -> U0 transition right after being connected seems to be
too much for some devices, causing them to first go to SS.Inactive state,
and finally end up stuck in a polling state with reset asserted

Fix this by failing the bus suspend if a port has a connect change or is
in a polling state in xhci_bus_suspend().

Don't do any port changes until all ports are checked, buffer all port
changes and only write them in the end if suspend can proceed

Cc: stable@vger.kernel.org
Signed-off-by: Mathias Nyman <mathias.nyman@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2018-12-01 09:37:25 +01:00
..
accessibility
acpi ACPI / platform: Add SMB0001 HID to forbidden_id_list 2018-11-27 16:13:10 +01:00
amba
android android: binder: fix the race mmap and alloc_new_buf_locked 2018-09-12 09:18:29 +02:00
ata libata: blacklist SAMSUNG MZ7TD256HAFV-000L9 SSD 2018-11-21 09:19:24 +01:00
atm
auxdisplay
base Char/Misc fixes for 4.19-rc7 2018-10-07 08:15:57 +02:00
bcma
block block: brd: associate with queue until adding disk 2018-11-27 16:12:58 +01:00
bluetooth Bluetooth: hci_qca: Remove hdev dereference in qca_close(). 2018-11-13 11:08:25 -08:00
bus
cdrom cdrom: fix improper type cast, which can leat to information leak. 2018-11-21 09:19:12 +01:00
char tpm: fix response size validation in tpm_get_random() 2018-11-13 11:08:48 -08:00
clk clk: fixed-factor: fix of_node_get-put imbalance 2018-11-27 16:13:04 +01:00
clocksource clockevents/drivers/i8253: Add support for PIT shutdown quirk 2018-11-21 09:19:20 +01:00
connector
cpufreq cpufreq: dt: Try freeing static OPPs only if we have added them 2018-11-13 11:08:24 -08:00
cpuidle ARM: cpuidle: Don't register the driver when back-end init returns -ENXIO 2018-11-21 09:19:23 +01:00
crypto crypto: hisilicon - Fix reference after free of memories on error path 2018-11-21 09:19:17 +01:00
dax device-dax: Add missing address_space_operations 2018-09-22 09:07:33 -07:00
dca
devfreq
dio
dma dmaengine: ppc4xx: fix off-by-one build failure 2018-11-13 11:08:41 -08:00
dma-buf
edac EDAC, skx_edac: Fix logical channel intermediate decoding 2018-11-13 11:08:44 -08:00
eisa
extcon
firewire
firmware efi/libstub: arm: support building with clang 2018-12-01 09:37:24 +01:00
fmc
fpga fpga: bridge: fix obvious function documentation error 2018-09-30 08:49:55 -07:00
fsi
gnss gnss: sirf: fix synchronous write timeout 2018-11-27 16:13:10 +01:00
gpio gpio: brcmstb: allow 0 width GPIO banks 2018-11-13 11:08:30 -08:00
gpu drm/amd/amdgpu/dm: Fix dm_dp_create_fake_mst_encoder() 2018-11-27 16:13:05 +01:00
hid HID: steam: remove input device when a hid client is running. 2018-12-01 09:37:24 +01:00
hsi
hv Drivers: hv: vmbus: Use cpumask_var_t for on-stack cpu mask 2018-11-13 11:08:34 -08:00
hwmon hwmon: (ibmpowernv) Remove bogus __init annotations 2018-11-27 16:13:04 +01:00
hwspinlock
hwtracing coresight: etb10: Fix handling of perf mode 2018-11-13 11:08:36 -08:00
i2c i2c: qcom-geni: Fix runtime PM mismatch with child devices 2018-11-27 16:13:06 +01:00
ide
idle
iio iio: adc: at91: fix wrong channel number in triggered buffer mode 2018-11-13 11:08:47 -08:00
infiniband IB/mlx5: Fix MR cache initialization 2018-11-13 11:08:43 -08:00
input Input: wm97xx-ts - fix exit path 2018-11-21 09:19:08 +01:00
iommu iommu/arm-smmu: Ensure that page-table updates are visible before TLBI 2018-11-13 11:08:51 -08:00
ipack
irqchip irqchip/pdc: Setup all edge interrupts as rising edge at GIC 2018-11-13 11:08:34 -08:00
isdn
leds
lightnvm lightnvm: pblk: fix race condition on metadata I/O 2018-11-13 11:08:21 -08:00
macintosh
mailbox mailbox: PCC: handle parse error 2018-11-13 11:08:18 -08:00
mcb
md MD: fix invalid stored role for a disk - try2 2018-11-13 11:09:00 -08:00
media media: v4l: event: Add subscription to list before calling "add" operation 2018-11-27 16:13:08 +01:00
memory memory: ti-aemif: fix a potential NULL-pointer dereference 2018-09-06 10:04:07 -07:00
memstick
message
mfd mfd: menelaus: Fix possible race condition and leak 2018-11-13 11:08:38 -08:00
misc drivers/misc/sgi-gru: fix Spectre v1 vulnerability 2018-11-27 16:13:10 +01:00
mmc sdhci: acpi: add free_slot callback 2018-11-13 11:08:23 -08:00
mtd mtd: rawnand: atmel: fix OF child-node lookup 2018-11-27 16:13:10 +01:00
mux mux: adgs1408: use the correct MODULE_LICENSE 2018-10-12 17:36:39 +02:00
net mt76x0: run vco calibration for each channel configuration 2018-11-27 16:13:11 +01:00
nfc NFC: nfcmrvl_uart: fix OF child-node lookup 2018-11-13 11:08:48 -08:00
ntb
nubus
nvdimm libnvdimm, pmem: Fix badblocks population for 'raw' namespaces 2018-11-13 11:08:42 -08:00
nvme nvme: make sure ns head inherits underlying device limits 2018-11-27 16:13:05 +01:00
nvmem nvmem: check the return value of nvmem_add_cells() 2018-11-13 11:08:35 -08:00
of of/device: Really only set bus DMA mask when appropriate 2018-11-27 16:13:05 +01:00
opp OPP: Free OPP table properly on performance state irregularities 2018-11-13 11:08:39 -08:00
oprofile
parisc
parport
pci PCI: Add Device IDs for Intel GPU "spurious interrupt" quirk 2018-11-13 11:08:45 -08:00
pcmcia pcmcia: Implement CLKRUN protocol disabling for Ricoh bridges 2018-11-13 11:08:17 -08:00
perf arm64: perf: Reject stand-alone CHAIN events for PMUv3 2018-10-12 15:25:17 +01:00
phy
pinctrl pinctrl: ssbi-gpio: Fix pm8xxx_pin_config_get() to be compliant 2018-11-13 11:08:29 -08:00
platform platform/x86: acerhdf: Add BIOS entry for Gateway LT31 v1.3307 2018-11-27 16:13:00 +01:00
pnp
power power: supply: twl4030-charger: fix OF sibling-node lookup 2018-11-13 11:08:51 -08:00
powercap
pps
ps3
ptp ptp: fix Spectre v1 vulnerability 2018-10-17 22:00:22 -07:00
pwm
rapidio
ras
regulator regulator: fix crash caused by null driver data 2018-09-20 09:04:51 -07:00
remoteproc remoteproc: qcom: q6v5: Propagate EPROBE_DEFER 2018-11-13 11:08:52 -08:00
reset
rpmsg rpmsg: smd: fix memory leak on channel create 2018-11-13 11:08:55 -08:00
rtc rtc: hctosys: Add missing range error reporting 2018-11-21 09:19:23 +01:00
s390 s390/qeth: unregister netdevice only when registered 2018-11-27 16:13:03 +01:00
sbus oradax: remove redundant null check before kfree 2018-10-07 22:42:00 -07:00
scsi SCSI: fix queue cleanup race before queue initialization is done 2018-11-21 09:19:18 +01:00
sfi
sh
siox
slimbus
sn
soc soc: ti: QMSS: Fix usage of irq_set_affinity_hint 2018-11-21 09:19:18 +01:00
soundwire
spi spi: gpio: No MISO does not imply no RX 2018-11-13 11:08:28 -08:00
spmi
ssb
staging staging: most: video: fix registration of an empty comp core_component 2018-11-21 09:19:11 +01:00
target scsi: target: Fix target_wait_for_sess_cmds breakage with active signals 2018-11-13 11:08:42 -08:00
tc TC: Set DMA masks for devices 2018-11-13 11:08:51 -08:00
tee
thermal thermal: core: Fix use-after-free in thermal_cooling_device_destroy_sysfs 2018-11-21 09:19:17 +01:00
thunderbolt thunderbolt: Initialize after IOMMUs 2018-10-02 10:51:16 -07:00
tty serial: sh-sci: Fix receive on SCIFA/SCIFB variants with DMA 2018-11-27 16:13:01 +01:00
uio uio: Fix an Oops on load 2018-11-27 16:13:09 +01:00
usb usb: xhci: Prevent bus suspend if a port connect change or polling state is detected 2018-12-01 09:37:25 +01:00
uwb
vfio
vhost vhost/scsi: truncate T10 PI iov_iter to prot_bytes 2018-11-21 09:19:17 +01:00
video mach64: fix image corruption due to reading accelerator registers 2018-11-21 09:19:17 +01:00
virt
virtio
visorbus
vlynq
vme
w1 w1: omap-hdq: fix missing bus unregister at removal 2018-11-13 11:08:48 -08:00
watchdog
xen xen/grant-table: Fix incorrect gnttab_dma_free_pages() pr_debug message 2018-11-27 16:13:04 +01:00
zorro
Kconfig
Makefile