android_kernel_motorola_sm6375/drivers
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Weitao Wang b8f0c19d48 USB: Fix xhci event ring dequeue pointer ERDP update issue
[ Upstream commit e91ac20889d1a26d077cc511365cd7ff4346a6f3 ]

In some situations software handles TRB events slower than adding TRBs.
If the number of TRB events to be processed in a given interrupt is exactly
the same as the event ring size 256, then the local variable
"event_ring_deq" that holds the initial dequeue position is equal to
software_dequeue after handling all 256 interrupts.

It will cause driver to not update ERDP to hardware,

Software dequeue pointer is out of sync with ERDP on interrupt exit.
On the next interrupt, the event ring may full but driver will not
update ERDP as software_dequeue is equal to ERDP.

[  536.377115] xhci_hcd 0000:00:12.0: ERROR unknown event type 37
[  566.933173] sd 8:0:0:0: [sdb] tag#27 uas_eh_abort_handler 0 uas-tag 7 inflight: CMD OUT
[  566.933181] sd 8:0:0:0: [sdb] tag#27 CDB: Write(10) 2a 00 17 71 e6 78 00 00 08 00
[  572.041186] xhci_hcd On some situataions,the0000:00:12.0: xHCI host not responding to stop endpoint command.
[  572.057193] xhci_hcd 0000:00:12.0: Host halt failed, -110
[  572.057196] xhci_hcd 0000:00:12.0: xHCI host controller not responding, assume dead
[  572.057236] sd 8:0:0:0: [sdb] tag#26 uas_eh_abort_handler 0 uas-tag 6 inflight: CMD
[  572.057240] sd 8:0:0:0: [sdb] tag#26 CDB: Write(10) 2a 00 38 eb cc d8 00 00 08 00
[  572.057244] sd 8:0:0:0: [sdb] tag#25 uas_eh_abort_handler 0 uas-tag 5 inflight: CMD

Hardware ERDP is updated mid event handling if there are more than 128
events in an interrupt (half of ring size).
Fix this by updating the software local variable at the same time as
hardware ERDP.

[commit message rewording -Mathias]

Fixes: dc0ffbea5729 ("usb: host: xhci: update event ring dequeue pointer on purpose")
Reviewed-by: Peter Chen <peter.chen@kernel.org>
Signed-off-by: Weitao Wang <WeitaoWang-oc@zhaoxin.com>
Signed-off-by: Mathias Nyman <mathias.nyman@linux.intel.com>
Link: https://lore.kernel.org/r/20220408134823.2527272-2-mathias.nyman@linux.intel.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2022-05-09 09:03:23 +02:00
..
accessibility
acpi ACPI: processor idle: Check for architectural support for LPI 2022-04-15 14:18:41 +02:00
amba ARM: 9120/1: Revert "amba: make use of -1 IRQs warn" 2021-11-06 13:59:45 +01:00
android binder: fix handling of error during copy 2022-01-27 09:19:38 +01:00
ata ata: pata_marvell: Check the 'bmdma_addr' beforing reading 2022-04-27 13:50:48 +02:00
atm atm: eni: Add check for dma_map_single 2022-03-23 09:12:07 +01:00
auxdisplay auxdisplay: ht16k33: Fix frame buffer device blanking 2021-11-17 09:48:45 +01:00
base arch_topology: Do not set llc_sibling if llc_id is invalid 2022-05-09 09:03:22 +02:00
bcma
block floppy: disable FDRAWCMD by default 2022-05-09 09:03:20 +02:00
bluetooth Bluetooth: btmtksdio: Fix kernel oops in btmtksdio_interrupt 2022-04-15 14:18:16 +02:00
bus bus: ti-sysc: Use CLKDM_NOAUTO for dra7 dcan1 for errata i893 2021-10-13 10:08:19 +02:00
cdrom
char virtio_console: eliminate anonymous module_init & module_exit 2022-04-15 14:18:36 +02:00
clk clk: Enforce that disjoints limits are invalid 2022-04-15 14:18:35 +02:00
clocksource clocksource: acpi_pm: fix return value of __setup handler 2022-04-15 14:18:05 +02:00
connector
counter
cpufreq cpufreq: Fix initialization of min and max frequency QoS requests 2022-01-27 09:19:44 +01:00
cpuidle cpuidle: Fix kobject memory leaks in error paths 2021-11-17 09:48:36 +01:00
crypto crypto: ccp - ccp_dmaengine_unregister release dma channels 2022-04-15 14:18:05 +02:00
dax dax: make sure inodes are flushed before destroy cache 2022-04-15 14:18:12 +02:00
dca
devfreq
dio
dma dma: at_xdmac: fix a missing check on list iterator 2022-04-27 13:50:48 +02:00
dma-buf udmabuf: validate ubuf->pagecount 2022-04-15 14:18:10 +02:00
edac EDAC/synopsys: Read the error count from the correct register 2022-04-27 13:50:48 +02:00
eisa
extcon
firewire
firmware firmware: google: Properly state IOMEM dependency 2022-04-15 14:18:20 +02:00
fpga
fsi
gnss
gpio gpiolib: acpi: use correct format characters 2022-04-20 09:19:35 +02:00
gpu drm/vc4: Use pm_runtime_resume_and_get to fix pm_runtime_get_sync() usage 2022-04-27 13:50:49 +02:00
greybus greybus: svc: fix an error handling bug in gb_svc_hello() 2022-04-15 14:17:58 +02:00
hid HID: i2c-hid: fix GET/SET_REPORT for unnumbered reports 2022-04-15 14:18:12 +02:00
hsi HSI: core: Fix return freed object in hsi_new_client 2022-01-27 09:19:41 +01:00
hv Drivers: hv: vmbus: Prevent load re-ordering when reading ring buffer 2022-04-20 09:19:36 +02:00
hwmon hwmon: (pmbus) Add Vin unit off handling 2022-04-15 14:18:05 +02:00
hwspinlock
hwtracing coresight: Fix TRCCONFIGR.QE sysfs interface 2022-04-15 14:17:57 +02:00
i2c i2c: pasemi: Wait for write xfers to finish 2022-04-20 09:19:39 +02:00
i3c
ide
idle
iio iio: magnetometer: ak8975: Fix the error handling in ak8975_power_on() 2022-05-09 09:03:21 +02:00
infiniband IB/rdmavt: add lock to call to rvt_error_qp to prevent a race condition 2022-04-15 14:18:37 +02:00
input Revert "Input: clear BTN_RIGHT/MIDDLE on buttonpads" 2022-04-15 14:18:00 +02:00
interconnect
iommu iommu/arm-smmu-v3: fix event handling soft lockup 2022-04-15 14:18:33 +02:00
ipack
irqchip irqchip/gic-v3: Fix GICR_CTLR.RWP polling 2022-04-15 14:18:40 +02:00
isdn mISDN: change function names to avoid conflicts 2022-01-11 15:23:33 +01:00
leds
lightnvm lightnvm: disable the subsystem 2022-05-09 09:03:20 +02:00
macintosh
mailbox mailbox: tegra-hsp: Flush whole channel 2022-04-15 14:18:01 +02:00
mcb
md dm integrity: fix memory corruption when tag_size is less than digest size 2022-04-20 09:19:39 +02:00
media media: hdpvr: initialize dev->worker at hdpvr_register_videodev 2022-04-15 14:18:25 +02:00
memory memory: atmel-ebi: Fix missing of_node_put in atmel_ebi_probe 2022-04-20 09:19:34 +02:00
memstick memstick: jmb38x_ms: use appropriate free function in jmb38x_ms_alloc_host() 2021-11-17 09:48:37 +01:00
message
mfd mfd: asic3: Add missing iounmap() on error asic3_mfd_probe 2022-04-15 14:18:17 +02:00
misc kgdbts: fix return value of __setup handler 2022-04-15 14:18:20 +02:00
mmc mmc: mmci: stm32: correctly check all elements of sg list 2022-04-15 14:18:40 +02:00
mtd mtd: rawnand: fix ecc parameters for mt7622 2022-05-09 09:03:23 +02:00
mux
net hamradio: remove needs_free_netdev to avoid UAF 2022-05-09 09:03:20 +02:00
nfc nfc: st21nfca: Fix potential buffer overflows in EVT_TRANSACTION 2022-03-28 08:46:43 +02:00
ntb
nubus
nvdimm
nvme nvme-rdma: fix possible use-after-free in transport error_recovery work 2022-02-23 11:59:56 +01:00
nvmem nvmem: Fix shift-out-of-bound (UBSAN) with byte size cells 2021-10-20 11:40:14 +02:00
of of: base: Improve argument length mismatch error 2022-01-27 09:19:51 +01:00
opp opp: Fix return in _opp_add_static_v2() 2021-11-17 09:48:44 +01:00
oprofile
parisc parisc: Fix CPU affinity for Lasi, WAX and Dino chips 2022-04-15 14:18:36 +02:00
parport
pci PCI: pciehp: Add Qualcomm quirk for Command Completed erratum 2022-04-15 14:18:33 +02:00
pcmcia pcmcia: fix setting of kthread task states 2022-01-27 09:19:37 +01:00
perf arm_pmu: Validate single/group leader events 2022-04-27 13:50:50 +02:00
phy phy: dphy: Correct lpx parameter and its derivatives(ta_{get,go,sure}) 2022-04-15 14:18:18 +02:00
pinctrl pinctrl: nuvoton: npcm7xx: Use %zu printk format for ARRAY_SIZE() 2022-04-15 14:18:29 +02:00
platform platform/x86: samsung-laptop: Fix an unsigned comparison which can never be negative 2022-04-27 13:50:47 +02:00
pnp
power power: supply: axp288-charger: Set Vhold to 4.4V 2022-04-15 14:18:33 +02:00
powercap
pps
ps3
ptp ptp: replace snprintf with sysfs_emit 2022-04-15 14:18:32 +02:00
pwm pwm: lpc18xx-sct: Initialize driver data and hardware before pwmchip_add() 2022-04-15 14:18:17 +02:00
rapidio
ras
regulator regulator: wm8994: Add an off-on delay for WM8994 variant 2022-04-20 09:19:37 +02:00
remoteproc remoteproc: qcom_wcnss: Add missing of_node_put() in wcnss_alloc_memory_region 2022-04-15 14:18:19 +02:00
reset reset: tegra-bpmp: Restore Handle errors in BPMP response 2022-04-27 13:50:47 +02:00
rpmsg rpmsg: char: Fix race between the release of rpmsg_eptdev and cdev 2022-02-01 17:24:36 +01:00
rtc rtc: wm8350: Handle error for wm8350_register_irq 2022-04-15 14:18:31 +02:00
s390 scsi: zfcp: Fix failed recovery on gone remote port with non-NPIV FCP devices 2022-02-01 17:24:33 +01:00
sbus
scsi scsi: qedi: Fix failed disconnect handling 2022-04-27 13:50:48 +02:00
sfi
sh maple: fix wrong return value of maple_bus_init(). 2021-11-26 10:47:17 +01:00
siox
slimbus
soc soc: ti: wkup_m3_ipc: Fix IRQ check in wkup_m3_ipc_probe 2022-04-15 14:18:07 +02:00
soundwire
spi spi: atmel-quadspi: Fix the buswidth adjustment between spi-mem and controller 2022-04-27 13:50:50 +02:00
spmi
ssb
staging staging: ion: Prevent incorrect reference counting behavour 2022-04-27 13:50:50 +02:00
target scsi: target: tcmu: Fix possible page UAF 2022-04-20 09:19:36 +02:00
tc
tee optee: use driver internal tee_context for some rpc 2022-03-02 11:41:04 +01:00
thermal thermal: int340x: Increase bitmap size 2022-04-15 14:18:02 +02:00
thunderbolt
tty serial: 8250: Correct the clock for EndRun PTP/1588 PCIe device 2022-05-09 09:03:22 +02:00
uio
usb USB: Fix xhci event ring dequeue pointer ERDP update issue 2022-05-09 09:03:23 +02:00
vfio
vhost tuntap: add sanity checks about msg_controllen in sendmsg 2022-04-15 14:18:34 +02:00
video video: fbdev: udlfb: properly check endpoint type 2022-05-09 09:03:23 +02:00
virt
virtio virtio: acknowledge all features before access 2022-03-16 13:21:48 +01:00
visorbus
vlynq
vme
w1 w1: w1_therm: fixes w1_seq for ds28ea00 sensors 2022-04-15 14:18:35 +02:00
watchdog ar7: fix kernel builds for compiler test 2021-11-17 09:48:46 +01:00
xen xen/gnttab: fix gnttab_end_foreign_access() without page specified 2022-03-11 11:22:39 +01:00
zorro
Kconfig
Makefile