From ea3e3e30eb3ce76f6a0ae816a0f35809872f4edf Mon Sep 17 00:00:00 2001 From: Christian Kellner Date: Mon, 13 Jan 2020 17:38:47 +0100 Subject: [PATCH] manager: ignore wakeup device uevents for probing The probing detection code should ignore wakeup device uevents because these virtual devices can be added (and removed) without and correspondence to any physical thunderbolt device (un-)plug events. --- boltd/bolt-manager.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/boltd/bolt-manager.c b/boltd/bolt-manager.c index 877c008..c8b60da 100644 --- a/boltd/bolt-manager.c +++ b/boltd/bolt-manager.c @@ -2043,6 +2043,16 @@ device_is_thunderbolt_root (struct udev_device *dev) bolt_streq (driver, "thunderbolt"); } +static gboolean +device_is_wakeup (struct udev_device *dev) +{ + const char *subsys; + + subsys = udev_device_get_subsystem (dev); + + return bolt_streq (subsys, "wakeup"); +} + static gboolean probing_add_root (BoltManager *mgr, struct udev_device *dev) @@ -2080,6 +2090,12 @@ manager_probing_device_added (BoltManager *mgr, if (syspath == NULL) return; + /* ignore events for wakeup devices which get removed + * and added at random time without any connection to + * any physical thunderbolt device */ + if (device_is_wakeup (dev)) + return; + roots = mgr->probing_roots; for (guint i = 0; i < roots->len; i++) { -- 2.24.1