summaryrefslogtreecommitdiff
path: root/src/udev-event.c
diff options
context:
space:
mode:
authorKay Sievers <kay.sievers@vrfy.org>2012-01-18 05:06:18 +0100
committerKay Sievers <kay.sievers@vrfy.org>2012-01-18 05:06:18 +0100
commite64fae5573e566ce4fd9b23c68ac8f3096603314 (patch)
tree4450c1412a2439706a07c253ca60cad5b8d7f10b /src/udev-event.c
parent1b9e13e2e2c4755752e1e9fd8ff4399af7329ab8 (diff)
udevd: kill hanging event processes after 30 seconds
Some broken kernel drivers load firmware synchronously in the module init path and block modprobe until the firmware request is fulfilled. The modprobe-generated firmware request is a direct child device of the device which caused modprobe to run. Child device event are blocked until the parent device is handled. This dead-locks until the kernel firmware loading timeout of 60 seconds is reached. The hanging modprobe event should now time-out and allow the firmware event to run before the 60 second kernel timeout.
Diffstat (limited to 'src/udev-event.c')
-rw-r--r--src/udev-event.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/udev-event.c b/src/udev-event.c
index 9bdc5186df..f0b9548f3d 100644
--- a/src/udev-event.c
+++ b/src/udev-event.c
@@ -49,7 +49,7 @@ struct udev_event *udev_event_new(struct udev_device *dev)
udev_list_init(udev, &event->run_list, false);
event->fd_signal = -1;
event->birth_usec = now_usec();
- event->timeout_usec = 60 * 1000 * 1000;
+ event->timeout_usec = 30 * 1000 * 1000;
dbg(event->udev, "allocated event %p\n", event);
return event;
}