diff --git a/src/udev/udevd.c b/src/udev/udevd.c index aeec7fa77c..3b15beb4b3 100644 --- a/src/udev/udevd.c +++ b/src/udev/udevd.c @@ -1617,9 +1617,11 @@ static int manager_new(Manager **ret, int fd_ctrl, int fd_uevent, const char *cg if (!manager->ctrl) return log_error_errno(SYNTHETIC_ERRNO(EINVAL), "Failed to initialize udev control socket"); - r = udev_ctrl_enable_receiving(manager->ctrl); - if (r < 0) - return log_error_errno(r, "Failed to bind udev control socket: %m"); + if (fd_ctrl < 0) { + r = udev_ctrl_enable_receiving(manager->ctrl); + if (r < 0) + return log_error_errno(r, "Failed to bind udev control socket: %m"); + } fd_ctrl = udev_ctrl_get_fd(manager->ctrl); if (fd_ctrl < 0)