Messages in this thread | | | From | Bartosz Golaszewski <> | Subject | [PATCH v2 0/6] gpio: cdev: bail out of poll() if the device goes down | Date | Thu, 17 Aug 2023 20:49:52 +0200 |
| |
From: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
Wake up all three wake queues (the one associated with the character device file, the one for V1 line events and the V2 line request one) when the underlying GPIO device is unregistered. This way we won't get stuck in poll() after the chip is gone as user-space will be forced to go back into a new system call and will see that gdev->chip is NULL.
v1 -> v2: - not much is left from v1, this time we don't repurpose the existing gpio_device notifier but add a new one so that cdev structures don't get unwanted events
Bartosz Golaszewski (6): gpiolib: rename the gpio_device notifier gpio: cdev: open-code to_gpio_chardev_data() gpiolib: add a second blocking notifier to struct gpio_device gpio: cdev: wake up chardev poll() on device unbind gpio: cdev: wake up linereq poll() on device unbind gpio: cdev: wake up lineevent poll() on device unbind
drivers/gpio/gpiolib-cdev.c | 101 ++++++++++++++++++++++++++++++------ drivers/gpio/gpiolib.c | 7 +-- drivers/gpio/gpiolib.h | 9 ++-- 3 files changed, 94 insertions(+), 23 deletions(-)
-- 2.39.2
| |