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 <peter.hutterer@who-t.net>
Reviewed-by: Dan Nicholson <dbn.lists@gmail.com>
Signed-off-by: Julien Cristau <jcristau@debian.org>
This commit is contained in:
Peter Hutterer 2009-12-23 16:05:16 +10:00 committed by Julien Cristau
parent 9fad8f06fb
commit b8b12e41c4

View File

@ -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)