From b8b12e41c453c3bf94b11e7a18934d3b6e1869bf Mon Sep 17 00:00:00 2001 From: Peter Hutterer Date: Wed, 23 Dec 2009 16:05:16 +1000 Subject: [PATCH] xfree86: move sanity checks below option and input classes merges. While the identifier is likely set before the input classes are merged, the driver may not be. Hence don't check for a driver before we've completed configuration for this device. Signed-off-by: Peter Hutterer Reviewed-by: Dan Nicholson Signed-off-by: Julien Cristau --- hw/xfree86/common/xf86Xinput.c | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/hw/xfree86/common/xf86Xinput.c b/hw/xfree86/common/xf86Xinput.c index e0c783089..87b5100fa 100644 --- a/hw/xfree86/common/xf86Xinput.c +++ b/hw/xfree86/common/xf86Xinput.c @@ -702,16 +702,6 @@ NewInputDeviceRequest (InputOption *options, InputAttributes *attrs, } } } - if (!idev->driver || !idev->identifier) { - xf86Msg(X_ERROR, "No input driver/identifier specified (ignoring)\n"); - rval = BadRequest; - goto unwind; - } - - if (!idev->identifier) { - xf86Msg(X_ERROR, "No device identifier specified (ignoring)\n"); - return BadMatch; - } for (option = options; option; option = option->next) { /* Steal option key/value strings from the provided list. @@ -729,6 +719,17 @@ NewInputDeviceRequest (InputOption *options, InputAttributes *attrs, goto unwind; } + if (!idev->driver || !idev->identifier) { + xf86Msg(X_ERROR, "No input driver/identifier specified (ignoring)\n"); + rval = BadRequest; + goto unwind; + } + + if (!idev->identifier) { + xf86Msg(X_ERROR, "No device identifier specified (ignoring)\n"); + return BadMatch; + } + rval = xf86NewInputDevice(idev, pdev, (!is_auto || (is_auto && xf86Info.autoEnableDevices))); if (rval == Success)