From: Peter Hutterer Date: Thu, 30 Jan 2014 05:55:37 +0000 (+1000) Subject: evdev: prevent double-suspending a device X-Git-Tag: 0.7.0~142 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=1e37d3bc44294c01db3370a5fa4068211d4f53e3;p=platform%2Fupstream%2Flibinput.git evdev: prevent double-suspending a device Signed-off-by: Peter Hutterer Reviewed-by: Hans de Goede --- diff --git a/src/evdev.c b/src/evdev.c index 054beb6..9e91ee5 100644 --- a/src/evdev.c +++ b/src/evdev.c @@ -1168,16 +1168,23 @@ release_pressed_keys(struct evdev_device *device) int evdev_device_suspend(struct evdev_device *device) { - if (device->source) + if (device->source) { libinput_remove_source(device->base.seat->libinput, device->source); + device->source = NULL; + } release_pressed_keys(device); - if (device->mtdev) + if (device->mtdev) { mtdev_close_delete(device->mtdev); - close_restricted(device->base.seat->libinput, device->fd); - device->fd = -1; + device->mtdev = NULL; + } + + if (device->fd != -1) { + close_restricted(device->base.seat->libinput, device->fd); + device->fd = -1; + } return 0; }