--- /dev/null
+diff --git a/config/udev.c b/config/udev.c
+index 454838f..74ac998 100644
+--- a/config/udev.c
++++ b/config/udev.c
+@@ -300,10 +300,9 @@ wakeup_handler(pointer data, int err, pointer read_mask)
+ return;
+ action = udev_device_get_action(udev_device);
+ if (action) {
+- if (!strcmp(action, "add")) {
+- device_removed(udev_device);
++ if (!strcmp(action, "add"))
+ device_added(udev_device);
+- } else if (!strcmp(action, "change")) {
++ else if (!strcmp(action, "change")) {
+ /* ignore change for the drm devices */
+ if (strcmp(udev_device_get_subsystem(udev_device), "drm")) {
+ device_removed(udev_device);
+diff --git a/hw/xfree86/os-support/linux/lnx_platform.c b/hw/xfree86/os-support/linux/lnx_platform.c
+index 76f5583..c125e35 100644
+--- a/hw/xfree86/os-support/linux/lnx_platform.c
++++ b/hw/xfree86/os-support/linux/lnx_platform.c
+@@ -126,6 +126,8 @@ xf86PlatformDeviceProbe(struct OdevAttributes *attribs)
+ return;
+
+ out_free:
++ LogMessage(X_INFO, "config/udev: Ignoring already known drm device (%s)\n",
++ path);
+ config_odev_free_attribute_list(attribs);
+ }
+