diff options
author | Kay Sievers <kay.sievers@vrfy.org> | 2012-01-18 05:06:18 +0100 |
---|---|---|
committer | Kay Sievers <kay.sievers@vrfy.org> | 2012-01-18 05:06:18 +0100 |
commit | e64fae5573e566ce4fd9b23c68ac8f3096603314 (patch) | |
tree | 4450c1412a2439706a07c253ca60cad5b8d7f10b /src/udev-event.c | |
parent | 1b9e13e2e2c4755752e1e9fd8ff4399af7329ab8 (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.c | 2 |
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; } |