On Fri, Sep 19, 2014 at 2:41 AM, Oleg Nesterov <o...@redhat.com> wrote: > On 09/18, Roman Pen wrote: >> >> +void wait_for_rootfs(void) >> +{ >> + /* Avoid waiting for ourselves */ >> + if (WARN_ON(is_global_init(current))) >> + return; >> + else >> + wait_event(rootfs_waitq, rootfs_mounted); >> +} > > Ah, wait, the is_global_init() check doesn't look right in any case. > > What if /sbin/init does sys_init_module() and this module does > request_firmware() ?
Yeah, right. It turned out to be more tricky than I expected. Will fix. > > I think we should only warn if init is going to wait, > > /* Avoid waiting for ourselves */ > if (rootfs_mounted || WARN_ON(is_global_init(current))) > return; > > __wait_event(rootfs_waitq, rootfs_mounted); > > >> +EXPORT_SYMBOL(wait_for_rootfs); > > Why? CONFIG_FW_LOADER (which includes firmware_class.c to compilation sequence) is declared as tristate, thus it can be built as module. Seems I can break loading of this module if skip exporting, right? -- Roman -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/