gpio: cdev: wake up chardev poll() on device unbind
authorBartosz Golaszewski <bartosz.golaszewski@linaro.org>
Thu, 17 Aug 2023 12:42:24 +0000 (14:42 +0200)
committerBartosz Golaszewski <bartosz.golaszewski@linaro.org>
Mon, 21 Aug 2023 13:57:05 +0000 (15:57 +0200)
commitd2e2586a3292e05d4872e9111e8b005bc4ff4d09
tree2a7adc4a981f08c98ef7ac28e17b578114139a3f
parenta067419ba77da830939852758702388f0fba09a1
gpio: cdev: wake up chardev poll() on device unbind

Add a notifier block to the gpio_chardev_data structure and register it
with the gpio_device's device notifier. Upon reception of an event, wake
up the wait queue so that the user-space be forced out of poll() and need
to go into a new system call which will then fail due to the chip being
gone.

Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
Reviewed-by: Kent Gibson <warthog618@gmail.com>
drivers/gpio/gpiolib-cdev.c