diff --git a/init/udev-settle.service.in b/init/udev-settle.service.in
index bda8626b2..d7d6f782c 100644
--- a/init/udev-settle.service.in
+++ b/init/udev-settle.service.in
@@ -17,6 +17,7 @@ Before=basic.target
[Service]
Type=oneshot
+TimeoutSec=180
RemainAfterExit=yes
ExecStart=@sbindir@/udevadm settle
diff --git a/udev/udev-event.c b/udev/udev-event.c
index e5683cfc2..8b7362cc1 100644
--- a/udev/udev-event.c
+++ b/udev/udev-event.c
@@ -49,7 +49,7 @@ struct udev_event *udev_event_new(struct udev_device *dev)
udev_list_init(&event->run_list);
event->fd_signal = -1;
event->birth_usec = now_usec();
- event->timeout_usec = 120 * 1000 * 1000;
+ event->timeout_usec = 60 * 1000 * 1000;
dbg(event->udev, "allocated event %p\n", event);
return event;
}
diff --git a/udev/udevadm-settle.c b/udev/udevadm-settle.c
index afd4af5f4..9492abd40 100644
--- a/udev/udevadm-settle.c
+++ b/udev/udevadm-settle.c
@@ -52,7 +52,7 @@ int udevadm_settle(struct udev *udev, int argc, char *argv[])
unsigned long long end = 0;
int quiet = 0;
const char *exists = NULL;
- unsigned int timeout = 180;
+ unsigned int timeout = 120;
struct pollfd pfd[1];
struct udev_queue *udev_queue = NULL;
int rc = EXIT_FAILURE;
diff --git a/udev/udevadm.xml b/udev/udevadm.xml
index 7860efe96..b5fb971f3 100644
--- a/udev/udevadm.xml
+++ b/udev/udevadm.xml
@@ -262,7 +262,7 @@
Maximum number of seconds to wait for the event queue to become empty.
- The default value is 180 seconds. A value of 0 will check if the queue is empty
+ The default value is 120 seconds. A value of 0 will check if the queue is empty
and always return immediately.