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.