diff options
Diffstat (limited to 'drivers/input/evdev.c')
-rw-r--r-- | drivers/input/evdev.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/input/evdev.c b/drivers/input/evdev.c index 0727b0a12557..99562cee827e 100644 --- a/drivers/input/evdev.c +++ b/drivers/input/evdev.c | |||
@@ -853,6 +853,9 @@ static void evdev_cleanup(struct evdev *evdev) | |||
853 | evdev_hangup(evdev); | 853 | evdev_hangup(evdev); |
854 | evdev_remove_chrdev(evdev); | 854 | evdev_remove_chrdev(evdev); |
855 | 855 | ||
856 | if (evdev->grab) | ||
857 | evdev_ungrab(evdev, evdev->grab); | ||
858 | |||
856 | /* evdev is marked dead so no one else accesses evdev->open */ | 859 | /* evdev is marked dead so no one else accesses evdev->open */ |
857 | if (evdev->open) { | 860 | if (evdev->open) { |
858 | input_flush_device(handle, NULL); | 861 | input_flush_device(handle, NULL); |