1
0
Fork 0
mirror of synced 2025-03-06 20:59:54 +01:00
linux/drivers/counter
William Breathitt Gray c95cc0d957 counter: 104-quad-8: Fix persistent enabled events bug
A bug exists if the user executes a COUNTER_ADD_WATCH_IOCTL ioctl call,
and then executes a COUNTER_DISABLE_EVENTS_IOCTL ioctl call. Disabling
the events should disable the 104-QUAD-8 interrupts, but because of this
bug the interrupts are not disabling.

The reason this bug is occurring is because quad8_events_configure() is
called when COUNTER_DISABLE_EVENTS_IOCTL is handled, but the
next_irq_trigger[] array has not been cleared before it is checked in
the loop.

This patch fixes the bug by removing the next_irq_trigger array and
instead utilizing a different algorithm of walking the events_list list
for the current requested events. When a COUNTER_DISABLE_EVENTS_IOCTL is
handled, events_list will be empty and thus all device channels end up
with interrupts disabled.

Fixes: 7aa2ba0df6 ("counter: 104-quad-8: Add IRQ support for the ACCES 104-QUAD-8")
Cc: Syed Nayyar Waris <syednwaris@gmail.com>
Signed-off-by: William Breathitt Gray <vilhelm.gray@gmail.com>
Link: https://lore.kernel.org/r/5fd5731cec1c251acee30eefb7c19160d03c9d39.1640072891.git.vilhelm.gray@gmail.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2021-12-21 10:32:08 +01:00
..
104-quad-8.c counter: 104-quad-8: Fix persistent enabled events bug 2021-12-21 10:32:08 +01:00
counter-chrdev.c counter: Fix use-after-free race condition for events_queue_size write 2021-10-21 13:02:47 +02:00
counter-chrdev.h counter: Add character device interface 2021-10-17 10:53:52 +01:00
counter-core.c counter: Add character device interface 2021-10-17 10:53:52 +01:00
counter-sysfs.c counter: Fix use-after-free race condition for events_queue_size write 2021-10-21 13:02:47 +02:00
counter-sysfs.h counter: Internalize sysfs interface code 2021-10-17 10:52:58 +01:00
ftm-quaddec.c counter: Internalize sysfs interface code 2021-10-17 10:52:58 +01:00
intel-qep.c counter: Internalize sysfs interface code 2021-10-17 10:52:58 +01:00
interrupt-cnt.c counter: Internalize sysfs interface code 2021-10-17 10:52:58 +01:00
Kconfig counter: 104-quad-8: Add IRQ support for the ACCES 104-QUAD-8 2021-10-17 10:55:55 +01:00
Makefile counter: Add character device interface 2021-10-17 10:53:52 +01:00
microchip-tcb-capture.c counter: microchip-tcb-capture: Tidy up a false kernel-doc /** marking. 2021-10-17 10:56:31 +01:00
stm32-lptimer-cnt.c counter: Internalize sysfs interface code 2021-10-17 10:52:58 +01:00
stm32-timer-cnt.c counter: Internalize sysfs interface code 2021-10-17 10:52:58 +01:00
ti-eqep.c counter: ti-eqep: Use container_of instead of struct counter_device::priv 2021-12-21 10:32:08 +01:00