summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Hutterer <whot@possum.(none)>2008-07-14 13:06:32 +0930
committerPeter Hutterer <whot@possum.(none)>2008-07-14 13:10:34 +0930
commitbf0d81011e19a8bb5bbd80c6b496c8ae257b4f2c (patch)
tree3c24d83ab209670172cc1c427589ad7b9baf3225
parentef4bb69c1a64e784fef1c758ee439372ba329b0a (diff)
Don't enable the device if the grab failed with ENODEV.
After suspend/resume, sometimes the device doesn't come back up on the same node. Since we do not call PreInit for the device (which would detect this situation), we continue to try to read a nonexisting file, spamming the log file with "Read Error".
-rw-r--r--src/evdev.c13
1 files changed, 8 insertions, 5 deletions
diff --git a/src/evdev.c b/src/evdev.c
index 311f678..8e26c4d 100644
--- a/src/evdev.c
+++ b/src/evdev.c
@@ -900,12 +900,15 @@ EvdevProc(DeviceIntPtr device, int what)
if (!pEvdev->kernel24 && ioctl(pInfo->fd, EVIOCGRAB, (void *)1))
xf86Msg(X_WARNING, "%s: Grab failed (%s)\n", pInfo->name,
strerror(errno));
- xf86AddEnabledDevice(pInfo);
- if (pEvdev->flags & EVDEV_BUTTON_EVENTS)
- EvdevMBEmuPreInit(pInfo);
- device->public.on = TRUE;
+ if (errno != ENODEV)
+ {
+ xf86AddEnabledDevice(pInfo);
+ if (pEvdev->flags & EVDEV_BUTTON_EVENTS)
+ EvdevMBEmuPreInit(pInfo);
+ device->public.on = TRUE;
+ }
break;
-
+
case DEVICE_OFF:
if (!pEvdev->kernel24 && ioctl(pInfo->fd, EVIOCGRAB, (void *)0))
xf86Msg(X_WARNING, "%s: Release failed (%s)\n", pInfo->name,