]> git.ipfire.org Git - thirdparty/plymouth.git/commitdiff
ply-device-manager: Accept new simpledrm/fbdev devices from udev events after timeout
authorHans de Goede <hdegoede@redhat.com>
Mon, 28 Feb 2022 15:46:34 +0000 (16:46 +0100)
committerHans de Goede <hdegoede@redhat.com>
Mon, 7 Mar 2022 14:12:09 +0000 (15:12 +0100)
Before the device-timeout elapses verify_add_or_change () blocks new
simpledrm and fbdev getting added through udev add events because we
really only want native drm devices.

Then when the timeout triggers the list of udev devices existing at
that point int time is rescanned and any drm (including simpledrm) and
fbdev devices are added (filtering out duplicates).

But what if a simpledrm or fbdev device for some reason only shows
up after the timeout? Before this change those would then be ignored
for ever.

Add a manager->device_timeout_elapsed check and make verify_add_or_change ()
accept any drm + fbdev devices after the timeout. Note this addresses
a mostly theoretically issue since in practice a simpledrm or fbdev device
showing up later is very unlikely.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
src/libply-splash-core/ply-device-manager.c

index 7043c7a81b37ab7d3a2a7cb449bce7ddce6836f2..215f5bef4374682432e9b30a39e4029350796863 100644 (file)
@@ -455,6 +455,9 @@ verify_add_or_change (ply_device_manager_t *manager,
                 return false;
         }
 
+        if (manager->device_timeout_elapsed)
+                return true;
+
         subsystem = udev_device_get_subsystem (device);
 
         if (strcmp (subsystem, SUBSYSTEM_DRM) == 0) {