udev-seat: Fail input setup only if no devices are found
authorRob Bradford <rob@linux.intel.com>
Mon, 3 Jun 2013 17:46:13 +0000 (18:46 +0100)
committerKristian Høgsberg <krh@bitplanet.net>
Tue, 4 Jun 2013 04:13:20 +0000 (00:13 -0400)
Rather than failing if we cannot open any single device fail the input
setup if there are no input devices added.

https://bugs.freedesktop.org/show_bug.cgi?id=64506

src/udev-seat.c

index 7e62429..12a531c 100644 (file)
@@ -58,7 +58,7 @@ device_added(struct udev_device *udev_device, struct udev_seat *master)
        fd = weston_launcher_open(c, devnode, O_RDWR | O_NONBLOCK);
        if (fd < 0) {
                weston_log("opening input device '%s' failed.\n", devnode);
-               return -1;
+               return 0;
        }
 
        device = evdev_device_create(&master->base, devnode, fd);
@@ -69,7 +69,7 @@ device_added(struct udev_device *udev_device, struct udev_seat *master)
        } else if (device == NULL) {
                close(fd);
                weston_log("failed to create input device '%s'.\n", devnode);
-               return -1;
+               return 0;
        }
 
        calibration_values =
@@ -140,6 +140,7 @@ udev_seat_add_devices(struct udev_seat *seat, struct udev *udev)
                        "\t- seats misconfigured "
                        "(Weston backend option 'seat', "
                        "udev device property ID_SEAT)\n");
+               return -1;
        }
 
        return 0;