Messages in this thread | | | Date | Thu, 10 Dec 2020 13:39:00 +0100 | From | Jessica Yu <> | Subject | Re: [PATCH RFC 1/1] module: delay kobject uevent until after module init call |
| |
+++ Jessica Yu [03/12/20 14:51 +0100]: >Apparently there has been a longstanding race between udev/systemd and >the module loader. Currently, the module loader sends a uevent right >after sysfs initialization, but before the module calls its init >function. However, some udev rules expect that the module has >initialized already upon receiving the uevent. > >This race has been triggered recently (see link in references) in some >systemd mount unit files. For instance, the configfs module creates the >/sys/kernel/config mount point in its init function, however the module >loader issues the uevent before this happens. sys-kernel-config.mount >expects to be able to mount /sys/kernel/config upon receipt of the >module loading uevent, but if the configfs module has not called its >init function yet, then this directory will not exist and the mount unit >fails. A similar situation exists for sys-fs-fuse-connections.mount, as >the fuse sysfs mount point is created during the fuse module's init >function. If udev is faster than module initialization then the mount >unit would fail in a similar fashion. > >To fix this race, delay the module KOBJ_ADD uevent until after the >module has finished calling its init routine. > >References: https://github.com/systemd/systemd/issues/17586 >Signed-off-by: Jessica Yu <jeyu@kernel.org>
Thanks all, this has been applied to modules-next to try to get as much -next time as possible before the upcoming merge window.
Jessica
| |