android_kernel_motorola_sm6375/drivers
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Nam Cao c448a9fd50 HID: i2c-hid: remove I2C_HID_READ_PENDING flag to prevent lock-up
commit 9c0f59e47a90c54d0153f8ddc0f80d7a36207d0e upstream.

The flag I2C_HID_READ_PENDING is used to serialize I2C operations.
However, this is not necessary, because I2C core already has its own
locking for that.

More importantly, this flag can cause a lock-up: if the flag is set in
i2c_hid_xfer() and an interrupt happens, the interrupt handler
(i2c_hid_irq) will check this flag and return immediately without doing
anything, then the interrupt handler will be invoked again in an
infinite loop.

Since interrupt handler is an RT task, it takes over the CPU and the
flag-clearing task never gets scheduled, thus we have a lock-up.

Delete this unnecessary flag.

Reported-and-tested-by: Eva Kurchatova <nyandarknessgirl@gmail.com>
Closes: https://lore.kernel.org/r/CA+eeCSPUDpUg76ZO8dszSbAGn+UHjcyv8F1J-CUPVARAzEtW9w@mail.gmail.com
Fixes: 4a200c3b9a ("HID: i2c-hid: introduce HID over i2c specification implementation")
Cc: <stable@vger.kernel.org>
Signed-off-by: Nam Cao <namcao@linutronix.de>
Signed-off-by: Jiri Kosina <jkosina@suse.com>
[apply to v4.19 -> v5.15]
Signed-off-by: Nam Cao <namcao@linutronix.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2024-05-02 16:18:37 +02:00
..
accessibility
acpi Revert "ACPI: PM: Block ASUS B1400CEAE from suspend to idle by default" 2024-04-13 12:51:38 +02:00
amba
android binder: check offset alignment in binder_get_object() 2024-05-02 16:18:31 +02:00
ata ata: sata_mv: Fix PCI device ID table declaration compilation warning 2024-04-13 12:51:36 +02:00
atm atm: idt77252: fix a memleak in open_card_ubr0 2024-02-23 08:25:06 +01:00
auxdisplay
base PM: sleep: wakeirq: fix wake irq warning in system suspend 2024-04-13 12:51:25 +02:00
bcma
block loop: loop_set_status_from_info() check before assignment 2024-04-13 12:51:30 +02:00
bluetooth Bluetooth: btusb: Add Realtek RTL8852BE support ID 0x0bda:0x4853 2024-05-02 16:18:36 +02:00
bus bus: tegra-aconnect: Update dependency to ARCH_TEGRA 2024-03-26 18:22:15 -04:00
cdrom
char hwrng: core - Fix page fault dead lock on mmap-ed hwrng 2024-02-23 08:24:48 +01:00
clk clk: Get runtime PM before walking tree during disable_unused 2024-05-02 16:18:31 +02:00
clocksource
connector
counter
cpufreq
cpuidle
crypto crypto: qat - resolve race condition during AER recovery 2024-04-13 12:51:23 +02:00
dax
dca
devfreq
dio
dma idma64: Don't try to serve interrupts when device is powered off 2024-05-02 16:18:37 +02:00
dma-buf
edac EDAC/thunderx: Fix possible out-of-bounds string access 2024-01-25 14:34:21 -08:00
eisa
extcon
firewire firewire: core: use long bus reset on gap count error 2024-03-26 18:22:13 -04:00
firmware firmware: meson_sm: fix to avoid potential NULL pointer dereference 2024-04-13 12:51:40 +02:00
fpga
fsi
gnss
gpio gpio: 74x164: Enable output pins after registers are reset 2024-03-06 14:36:10 +00:00
gpu drm/amdgpu: Fix leak when GPU memory allocation fails 2024-05-02 16:18:36 +02:00
greybus
hid HID: i2c-hid: remove I2C_HID_READ_PENDING flag to prevent lock-up 2024-05-02 16:18:37 +02:00
hsi
hv
hwmon hwmon: (amc6821) add of_match table 2024-04-13 12:51:26 +02:00
hwspinlock
hwtracing coresight: etm4x: Fix width of CCITMIN field 2024-01-25 14:34:21 -08:00
i2c i2c: smbus: fix NULL function pointer dereference 2024-05-02 16:18:37 +02:00
i3c i3c: master: cdns: Update maximum prescaler value for i2c clock 2024-02-23 08:25:02 +01:00
ide
idle
iio iio: magnetometer: rm3100: add boundary check for the value read from RM3100_REG_TMRC 2024-02-23 08:25:11 +01:00
infiniband RDMA/mlx5: Fix port number for counter query in multi-port configuration 2024-05-02 16:18:30 +02:00
input Input: synaptics-rmi4 - fail probing if memory allocation for "phys" fails 2024-04-13 12:51:38 +02:00
interconnect interconnect: Treat xlate() returning NULL node as an error 2024-01-08 11:29:45 +01:00
iommu iommu/amd: Mark interrupt as managed 2024-03-26 18:22:15 -04:00
ipack
irqchip irqchip/gic-v3-its: Prevent double free on error 2024-05-02 16:18:36 +02:00
isdn
leds leds: trigger: panic: Don't register panic notifier if creating the trigger failed 2024-02-23 08:25:02 +01:00
lightnvm
macintosh
mailbox
mcb
md dm integrity: fix out-of-range warning 2024-04-13 12:51:33 +02:00
media media: sta2x11: fix irq handler cast 2024-04-13 12:51:38 +02:00
memory
memstick
message
mfd mfd: altera-sysmgr: Call of_node_put() only when of_parse_phandle() takes a ref 2024-03-26 18:22:21 -04:00
misc VMCI: Fix possible memcpy() run-time warning in vmci_datagram_invoke_guest_handler() 2024-04-13 12:51:40 +02:00
mmc mmc: core: Avoid negative index with array access 2024-04-13 12:51:31 +02:00
mtd mtd: diskonchip: work around ubsan link failure 2024-05-02 16:18:36 +02:00
mux
net net: b44: set pause params only when interface is up 2024-05-02 16:18:36 +02:00
nfc NFC: trf7970a: disable all regulators on removal 2024-05-02 16:18:33 +02:00
ntb
nubus
nvdimm
nvme nvmet-fc: abort command when there is no binding 2024-03-01 13:13:34 +01:00
nvmem nvmem: meson-efuse: fix function pointer type mismatch 2024-04-13 12:51:26 +02:00
of of: gpio unittest kfree() wrong object 2024-02-23 08:25:15 +01:00
opp
oprofile
parisc
parport parport: parport_serial: Add Brainboxes device IDs and geometry 2024-01-25 14:34:21 -08:00
pci PCI/PM: Drain runtime-idle callbacks before driver removal 2024-04-13 12:51:25 +02:00
pcmcia
perf
phy phy: ti: phy-omap-usb2: Fix NULL pointer dereference for SRP 2024-02-23 08:25:06 +01:00
pinctrl pinctrl: rockchip: Fix refcount leak in rockchip_pinctrl_parse_groups 2024-03-01 13:13:35 +01:00
platform platform/x86: intel_telemetry: Fix kernel doc descriptions 2023-12-20 15:41:21 +01:00
pnp PNP: ACPI: fix fortify warning 2024-02-23 08:24:54 +01:00
power power: supply: bq27xxx-i2c: Do not free non existing IRQ 2024-03-06 14:36:09 +00:00
powercap
pps
ps3
ptp
pwm
rapidio
ras
regulator regulator: pwm-regulator: Add validity checks in continuous .get_voltage 2024-03-01 13:13:34 +01:00
remoteproc
reset reset: hisilicon: hi6220: fix Wvoid-pointer-to-enum-cast warning 2024-01-25 14:34:20 -08:00
rpmsg rpmsg: virtio: Free driver_override when rpmsg_remove() 2024-02-23 08:24:48 +01:00
rtc rtc: mt6397: select IRQ_DOMAIN instead of depending on it 2024-03-26 18:22:24 -04:00
s390 s390/zcrypt: fix reference counting on zcrypt card objects 2024-04-13 12:51:27 +02:00
sbus
scsi scsi: lpfc: Fix possible memory leak in lpfc_rcv_padisc() 2024-04-13 12:51:38 +02:00
sfi
sh
siox
slimbus slimbus: core: Remove usage of the deprecated ida_simple_xx() API 2024-04-13 12:51:26 +02:00
soc soc: fsl: qbman: Use raw spinlock for cgr_lock 2024-04-13 12:51:27 +02:00
soundwire soundwire: stream: fix NULL pointer dereference for multi_link 2023-12-20 15:41:24 +01:00
spi spi: spi-mt65xx: Fix NULL pointer access in interrupt handler 2024-03-26 18:22:25 -04:00
spmi
ssb
staging speakup: Avoid crash on very long word 2024-05-02 16:18:32 +02:00
target scsi: target: core: Add TMF to tmr_list handling 2024-03-01 13:13:33 +01:00
tc
tee
thermal
thunderbolt
tty serial: mxs-auart: add spinlock around changing cts state 2024-05-02 16:18:35 +02:00
uio uio: Fix use-after-free in uio_open 2024-01-25 14:34:21 -08:00
usb usb: Disable USB3 LPM at shutdown 2024-05-02 16:18:32 +02:00
vfio vfio/platform: Create persistent IRQ handlers 2024-04-13 12:51:34 +02:00
vhost vhost: Add smp_rmb() in vhost_vq_avail_empty() 2024-05-02 16:18:29 +02:00
video fbmon: prevent division by zero in fb_videomode_from_videomode() 2024-04-13 12:51:39 +02:00
virt
virtio virtio: reenable config if freezing device failed 2024-04-13 12:51:40 +02:00
visorbus
vlynq
vme
w1
watchdog watchdog: stm32_iwdg: initialize default timeout 2024-03-26 18:22:24 -04:00
xen xen/events: close evtchn after mapping cleanup 2024-04-13 12:51:29 +02:00
zorro
Kconfig
Makefile