linux-stable/drivers
Kishon Vijay Abraham I 129714f773 usb: core: hcd: Add support for deferring roothub registration
commit a44623d927 upstream.

It has been observed with certain PCIe USB cards (like Inateck connected
to AM64 EVM or J7200 EVM) that as soon as the primary roothub is
registered, port status change is handled even before xHC is running
leading to cold plug USB devices not detected. For such cases, registering
both the root hubs along with the second HCD is required. Add support for
deferring roothub registration in usb_add_hcd(), so that both primary and
secondary roothubs are registered along with the second HCD.

This patch has been added and reverted earier as it triggered a race
in usb device enumeration.
That race is now fixed in 5.16-rc3, and in stable back to 5.4
commit 6cca13de26 ("usb: hub: Fix locking issues with address0_mutex")
commit 6ae6dc22d2 ("usb: hub: Fix usb enumeration issue due to address0
race")

CC: stable@vger.kernel.org # 5.4+
Suggested-by: Mathias Nyman <mathias.nyman@linux.intel.com>
Tested-by: Chris Chiu <chris.chiu@canonical.com>
Acked-by: Alan Stern <stern@rowland.harvard.edu>
Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
Link: https://lore.kernel.org/r/20220510091630.16564-2-kishon@ti.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2022-06-09 10:25:14 +02:00
..
accessibility
acpi ACPI: sysfs: Fix BERT error region memory mapping 2022-05-30 09:27:19 +02:00
amba
android binder: Address corner cases in deferred copy and fixup 2022-05-09 09:16:14 +02:00
ata ata: pata_marvell: Check the 'bmdma_addr' beforing reading 2022-04-27 14:41:11 +02:00
atm atm: eni: Add check for dma_map_single 2022-03-15 11:01:52 +00:00
auxdisplay
base firmware_loader: use kernel credentials when reading firmware 2022-05-18 10:28:18 +02:00
bcma
block drbd: remove usage of list iterator variable after loop 2022-05-25 09:59:01 +02:00
bluetooth Bluetooth: hci_qca: Use del_timer_sync() before freeing 2022-06-06 08:47:54 +02:00
bus bus: sunxi-rsb: Fix the return value of sunxi_rsb_device_create() 2022-05-09 09:16:23 +02:00
cdrom
char tpm: ibmvtpm: Correct the return value in tpm_ibmvtpm_probe() 2022-06-06 08:47:56 +02:00
clk clk: at91: generated: consider range when calculating best rate 2022-05-25 09:59:08 +02:00
clocksource clocksource: acpi_pm: fix return value of __setup handler 2022-04-08 13:57:38 +02:00
comedi
connector
counter counter: Stop using dev_get_drvdata() to get the counter device 2022-03-15 19:24:13 +01:00
cpufreq cpufreq: qcom-cpufreq-hw: Clear dcvs interrupts 2022-05-09 09:16:24 +02:00
cpuidle cpuidle: qcom-spm: Check if any CPU is managed by SPM 2022-04-08 13:57:46 +02:00
crypto crypto: caam - fix i.MX6SX entropy delay value 2022-06-06 08:47:53 +02:00
cxl cxl/port: Hold port reference until decoder release 2022-04-08 13:58:07 +02:00
dax dax: make sure inodes are flushed before destroy cache 2022-04-08 13:58:07 +02:00
dca
devfreq
dio
dma dmaengine: imx-sdma: fix init of uart scripts 2022-04-27 14:41:12 +02:00
dma-buf dma-buf: ensure unique directory name for dmabuf stats 2022-05-25 09:59:04 +02:00
edac EDAC/synopsys: Read the error count from the correct register 2022-04-27 14:41:11 +02:00
eisa
extcon
firewire firewire: core: extend card->lock in fw_core_handle_bus_reset 2022-05-12 12:32:20 +02:00
firmware firmware: cs_dsp: Fix overrun of unterminated control name string 2022-04-27 14:40:57 +02:00
fpga
fsi fsi: Aspeed: Fix a potential double free 2022-04-08 13:58:24 +02:00
gnss
gpio gpio: mvebu/pwm: Refuse requests with inverted polarity 2022-05-25 09:59:12 +02:00
gpu drm/i915: Fix -Wstringop-overflow warning in call to intel_read_wm_latency() 2022-06-06 08:47:51 +02:00
greybus greybus: svc: fix an error handling bug in gb_svc_hello() 2022-04-08 13:57:16 +02:00
hid HID: multitouch: add quirks to enable Lenovo X12 trackpoint 2022-06-06 08:47:55 +02:00
hsi
hv Drivers: hv: balloon: Disable balloon and hot-add accordingly 2022-04-20 09:36:22 +02:00
hwmon hwmon: (f71882fg) Fix negative temperature 2022-05-18 10:28:16 +02:00
hwspinlock
hwtracing coresight: syscfg: Fix memleak on registration failure in cscfg_create_device 2022-04-08 13:57:14 +02:00
i2c i2c: ismt: prevent memory corruption in ismt_access() 2022-06-06 08:47:50 +02:00
i3c
idle
iio iio:dac:ad3552r: Fix an IS_ERR() vs NULL check 2022-05-09 09:16:18 +02:00
infiniband RDMA/irdma: Fix deadlock in irdma_cleanup_cm_core() 2022-05-18 10:28:16 +02:00
input Input: ili210x - fix reset timing 2022-05-25 09:59:15 +02:00
interconnect interconnect: Restore sync state by ignoring ipa-virt in provider count 2022-05-18 10:28:18 +02:00
iommu iommu: arm-smmu: disable large page mappings for Nvidia arm-smmu 2022-05-18 10:28:16 +02:00
ipack
irqchip irqchip/gic, gic-v3: Prevent GSI to SGI translations 2022-04-13 19:27:42 +02:00
isdn isdn: hfcpci: check the return value of dma_set_mask() in setup_hw() 2022-03-07 11:27:12 +00:00
leds
macintosh
mailbox mailbox: imx: fix wakeup failure from freeze mode 2022-04-08 13:58:55 +02:00
mcb
md raid5: introduce MD_BROKEN 2022-06-06 08:47:54 +02:00
media media: i2c: imx412: Fix power_off ordering 2022-06-06 08:47:55 +02:00
memory memory: renesas-rpc-if: Fix HF/OSPI data transfer in Manual Mode 2022-05-09 09:16:21 +02:00
memstick memstick/mspro_block: fix handling of read-only devices 2022-04-08 13:58:36 +02:00
message
mfd mfd: asic3: Add missing iounmap() on error asic3_mfd_probe 2022-04-08 13:58:22 +02:00
misc eeprom: at25: Use DMA safe buffers 2022-05-09 09:16:14 +02:00
mmc mmc: core: Fix busy polling for MMC_SEND_OP_COND again 2022-05-25 09:59:03 +02:00
most
mtd mtd: rawnand: qcom: fix memory corruption that causes panic 2022-05-09 09:16:29 +02:00
mux
net net: ipa: compute proper aggregation limit 2022-06-06 08:47:51 +02:00
nfc nfc: pn533: Fix buggy cleanup order 2022-06-06 08:47:50 +02:00
ntb
nubus
nvdimm nvdimm/region: Fix default alignment for small regions 2022-04-08 13:58:27 +02:00
nvme nvme-multipath: fix hang when disk goes live over reconnect 2022-05-25 09:59:01 +02:00
nvmem
of
opp opp: Expose of-node's name in debugfs 2022-04-13 19:27:24 +02:00
parisc parisc: Fix CPU affinity for Lasi, WAX and Dino chips 2022-04-13 19:27:26 +02:00
parport
pci Revert "PCI: aardvark: Rewrite IRQ code to chained IRQ handler" 2022-05-25 09:59:07 +02:00
pcmcia
perf arm_pmu: Validate single/group leader events 2022-04-27 14:41:15 +02:00
phy phy: amlogic: fix error path in phy_g12a_usb3_pcie_probe() 2022-05-09 09:16:20 +02:00
pinctrl pinctrl: sunxi: fix f1c100s uart2 function 2022-06-06 08:47:50 +02:00
platform platform/surface: gpe: Add support for Surface Pro 8 2022-05-25 09:59:14 +02:00
pnp
power power: supply: axp288_fuel_gauge: Use acpi_quirk_skip_acpi_ac_and_battery() 2022-04-13 19:27:18 +02:00
powercap powercap/dtpm_cpu: Reset per_cpu variable in the release function 2022-04-08 13:58:37 +02:00
pps pps: clients: gpio: Propagate return value from pps_gpio_probe 2022-04-08 13:58:24 +02:00
ps3
ptp ptp: ocp: have adjtime handle negative delta_ns correctly 2022-05-25 09:59:07 +02:00
pwm pwm: lpc18xx-sct: Initialize driver data and hardware before pwmchip_add() 2022-04-08 13:58:23 +02:00
rapidio
ras
regulator regulator: wm8994: Add an off-on delay for WM8994 variant 2022-04-20 09:36:21 +02:00
remoteproc remoteproc: qcom_q6v5_mss: Fix some leaks in q6v5_alloc_memory_region 2022-04-08 13:58:27 +02:00
reset reset: tegra-bpmp: Restore Handle errors in BPMP response 2022-04-27 14:41:06 +02:00
rpmsg
rtc rtc: mc146818-lib: Fix the AltCentury for AMD platforms 2022-05-25 09:59:01 +02:00
s390 s390/lcs: fix variable dereferenced before check 2022-05-18 10:28:15 +02:00
sbus
scsi scsi: qla2xxx: Fix missed DMA unmap for aborted commands 2022-05-25 09:59:12 +02:00
sh
siox
slimbus slimbus: qcom: Fix IRQ check in qcom_slim_probe 2022-05-18 10:28:20 +02:00
soc soc: imx: imx8m-blk-ctrl: Fix IMX8MN_DISPBLK_PD_ISI hang 2022-05-09 09:16:18 +02:00
soundwire ASoC: Intel: sof_sdw: fix quirks for 2022 HP Spectre x360 13" 2022-04-08 13:58:45 +02:00
spi spi: atmel-quadspi: Fix the buswidth adjustment between spi-mem and controller 2022-04-27 14:41:17 +02:00
spmi
ssb
staging staging: wfx: fix an error handling in wfx_init_common() 2022-04-13 19:27:24 +02:00
target scsi: target: tcmu: Fix possible page UAF 2022-04-20 09:36:20 +02:00
tc
tee tee: optee: add missing mutext_destroy in optee_ffa_probe 2022-05-09 09:16:17 +02:00
thermal thermal: int340x: Fix attr.show callback prototype 2022-05-09 09:16:30 +02:00
thunderbolt
tty serial: 8250_mtk: Fix register address for XON/XOFF character 2022-05-18 10:28:20 +02:00
uio
usb usb: core: hcd: Add support for deferring roothub registration 2022-06-09 10:25:14 +02:00
vdpa vdpa/mlx5: Use consistent RQT size 2022-05-25 09:59:11 +02:00
vfio vfio/pci: Fix vf_token mechanism when device-specific VF drivers are used 2022-04-20 09:36:18 +02:00
vhost Fix double fget() in vhost_net_set_backend() 2022-05-25 09:59:03 +02:00
video parisc/stifb: Keep track of hardware path of graphics card 2022-06-09 10:25:12 +02:00
virt virt: acrn: fix a memory leak in acrn_dev_ioctl() 2022-04-08 13:58:30 +02:00
virtio virtio: use virtio_device_ready() in virtio_device_restore() 2022-04-08 13:58:57 +02:00
visorbus
vlynq
vme
w1 w1: w1_therm: fixes w1_seq for ds28ea00 sensors 2022-04-13 19:27:24 +02:00
watchdog Watchdog: sp5100_tco: Enable Family 17h+ CPUs 2022-05-25 09:58:58 +02:00
xen xen/gnttab: fix gnttab_end_foreign_access() without page specified 2022-03-07 09:48:55 +01:00
zorro
Kconfig
Makefile