If you deregister a device you need to wake up all waiters
as there will be no further wakeups.

Signed-off-by: Oliver Neukum <[email protected]>
---
 drivers/gnss/core.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/gnss/core.c b/drivers/gnss/core.c
index e6f94501cb28..0d13bd2cefd5 100644
--- a/drivers/gnss/core.c
+++ b/drivers/gnss/core.c
@@ -303,7 +303,7 @@ void gnss_deregister_device(struct gnss_device *gdev)
        down_write(&gdev->rwsem);
        gdev->disconnected = true;
        if (gdev->count) {
-               wake_up_interruptible(&gdev->read_queue);
+               wake_up_interruptible_all(&gdev->read_queue);
                gdev->ops->close(gdev);
        }
        up_write(&gdev->rwsem);
-- 
2.16.4

Reply via email to