Re: [PATCH v2 0/6] gpio: cdev: bail out of poll() if the device goes down

From: Kent Gibson
Date: Thu Aug 17 2023 - 20:17:47 EST


On Thu, Aug 17, 2023 at 08:49:52PM +0200, Bartosz Golaszewski wrote:
> From: Bartosz Golaszewski <bartosz.golaszewski@xxxxxxxxxx>
>
> 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(-)
>

I'm happier with this version.

Reviewed-by: Kent Gibson <warthog618@xxxxxxxxx>

Cheers,
Kent.