[PATCH 1/2] winebus.sys: Treat udev actions other than "remove" as "add".
Rémi Bernon
rbernon at codeweavers.com
Wed Oct 20 04:01:32 CDT 2021
From: Simon McVittie <smcv at collabora.com>
As per https://github.com/systemd/systemd/blob/v247-rc1/NEWS#L5
there are more kernel uevent types than just "add" and "remove",
and we should be treating everything other than "remove" as being
potentially an "add".
To cope with this, try_add_device() now checks whether the same device
was already added. If so, we ignore it.
Signed-off-by: Rémi Bernon <rbernon at codeweavers.com>
---
Two patches from Proton, which should help the udev backend when running
Wine within a container. There was some container detection too but that
seemed a bit specific, and the new option should be enough.
dlls/winebus.sys/bus_udev.c | 6 ++----
1 file changed, 2 insertions(+), 4 deletions(-)
diff --git a/dlls/winebus.sys/bus_udev.c b/dlls/winebus.sys/bus_udev.c
index 1cad63f0275..59bb2564def 100644
--- a/dlls/winebus.sys/bus_udev.c
+++ b/dlls/winebus.sys/bus_udev.c
@@ -1411,16 +1411,14 @@ static void process_monitor_event(struct udev_monitor *monitor)
if (!action)
WARN("No action received\n");
- else if (strcmp(action, "add") == 0)
+ else if (strcmp(action, "remove"))
udev_add_device(dev);
- else if (strcmp(action, "remove") == 0)
+ else
{
impl = find_device_from_udev(dev);
if (impl) bus_event_queue_device_removed(&event_queue, &impl->unix_device);
else WARN("failed to find device for udev device %p\n", dev);
}
- else
- WARN("Unhandled action %s\n", debugstr_a(action));
udev_device_unref(dev);
}
--
2.33.0
More information about the wine-devel
mailing list