Re: [PATCH] shm: fix a race between shm_exit() and shm_init()

Andrew Morton
2011-08-04T00:48:30Z

On Wed, 3 Aug 2011 14:35:09 -1000 Linus Torvalds <torvalds@linux-foundation.org> wrote:

> --- a/init/main.c
> +++ b/init/main.c
> @@ -369,9 +369,12 @@ static noinline void __init_refok rest_init(void)
> init_idle_bootup_task(current);
> preempt_enable_no_resched();
> schedule();
> - preempt_disable();
> +
> + /* At this point, we can enable user mode helper functionality */
> + usermodehelper_enable();
>
> /* Call into cpu_idle with preempt disabled */
> + preempt_disable();
> cpu_idle();
> }

Well, it's still a workaround. We'll still have driver_init() trying
to run userspace helpers at an inappropriate time, and failing to do
so. Either something will break or it should not be attempting
attempting to do this at all.

Perhaps Kay and Greg can suggest how we can fix all this up?