[PATCH v3 2/3] hvc_init(): Enforce one-time initialization.

Rusty Russell rusty at rustcorp.com.au
Fri Nov 11 15:30:31 EST 2011


On Tue, 08 Nov 2011 13:45:04 -0800, Miche Baker-Harvey <miche at google.com> wrote:
> hvc_init() must only be called once, and no thread should continue with hvc_alloc()
> until after initialization is complete.  The original code does not enforce either
> of these requirements.  A new mutex limits entry to hvc_init() to a single thread,
> and blocks all later comers until it has completed.
> 
> This patch fixes multiple crash symptoms.

No, it doesn't: not now your previous double-hvc_init patch has been
reverted.

It's easy to show this is the case though: replace mutex_lock() with:

        if (!mutex_trylock()) {
                WARN(1, "hvc_console: mutex is stopping us!\n");
                mutex_lock();
        }

If you get that warning, then your mutex is doing something.

Thanks,
Rusty.


More information about the Linuxppc-dev mailing list