winebus.sys: Treat udev actions other than "remove" as "add".
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@codeweavers.com> Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
parent
1431608e61
commit
22dae167d3
|
@ -1404,16 +1404,14 @@ static void process_monitor_event(struct udev_monitor *monitor)
|
||||||
|
|
||||||
if (!action)
|
if (!action)
|
||||||
WARN("No action received\n");
|
WARN("No action received\n");
|
||||||
else if (strcmp(action, "add") == 0)
|
else if (strcmp(action, "remove"))
|
||||||
udev_add_device(dev);
|
udev_add_device(dev);
|
||||||
else if (strcmp(action, "remove") == 0)
|
else
|
||||||
{
|
{
|
||||||
impl = find_device_from_udev(dev);
|
impl = find_device_from_udev(dev);
|
||||||
if (impl) bus_event_queue_device_removed(&event_queue, &impl->unix_device);
|
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("failed to find device for udev device %p\n", dev);
|
||||||
}
|
}
|
||||||
else
|
|
||||||
WARN("Unhandled action %s\n", debugstr_a(action));
|
|
||||||
|
|
||||||
udev_device_unref(dev);
|
udev_device_unref(dev);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue