diff options
author | Peter Hutterer <peter.hutterer@who-t.net> | 2008-12-23 09:59:28 +1000 |
---|---|---|
committer | Peter Hutterer <peter.hutterer@who-t.net> | 2009-01-05 11:05:13 +1000 |
commit | 27011254c4de4e573a0851bf46892fb488db6522 (patch) | |
tree | 859b9f68bd61d7854edbeb27537d2fa12cc27486 /dix | |
parent | e1a3a1a0d85c9971aea65c2228b5fd4dbf3bf57a (diff) |
xfree86: If an input device failed to activate, return immediately.
Devices are only activated once - right after they've been added to the
server. If a device failes activation, it's dead. There's no reason to
continue. Return the error code from ActivateDevice() without setting up
sprite information or even sending a event to the client.
Then - in the DDX - just remove the device again.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Diffstat (limited to 'dix')
-rw-r--r-- | dix/devices.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/dix/devices.c b/dix/devices.c index ff6f0ec98..c51d9beef 100644 --- a/dix/devices.c +++ b/dix/devices.c @@ -444,6 +444,8 @@ ActivateDevice(DeviceIntPtr dev) ret = (*dev->deviceProc) (dev, DEVICE_INIT); dev->inited = (ret == Success); + if (!dev->inited) + return ret; /* Initialize memory for sprites. */ if (dev->isMaster && dev->spriteInfo->spriteOwner) |