diff --git a/src/keventd.c b/src/keventd.c index 466580cf..058077dd 100644 --- a/src/keventd.c +++ b/src/keventd.c @@ -378,6 +378,17 @@ static void init_dev_condition_dir(void) warn("Failed creating dev condition directory %s", dir); } +static void disable_uevent_helper(void) +{ + FILE *fp; + + fp = fopen("/proc/sys/kernel/hotplug", "w"); + if (!fp) + return; + fputs("\n", fp); + fclose(fp); +} + static void set_logging(int prio) { setlogmask(LOG_UPTO(prio)); @@ -487,6 +498,9 @@ int main(int argc, char *argv[]) init_power_supply(); init_dev_condition_dir(); + /* Disable legacy kernel uevent helper; we own events via netlink */ + disable_uevent_helper(); + /* Set up netlink socket for kernel uevents */ pfd.events = POLLIN; pfd.fd = socket(PF_NETLINK, SOCK_DGRAM | SOCK_CLOEXEC, NETLINK_KOBJECT_UEVENT);