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