Re: [PATCH] kernel/module.c: Free lock-classes if parse_args failed

From: Ingo Molnar
Date: Wed Feb 18 2015 - 19:12:43 EST



* Peter Zijlstra <peterz@xxxxxxxxxxxxx> wrote:

> On Tue, Jan 20, 2015 at 05:07:19PM +1030, Rusty Russell wrote:
> > Andrey Tsyvarev <tsyvarev@xxxxxxxxx> writes:
> > > parse_args call module parameters' .set handlers, which may use locks defined in the module.
> > > So, these classes should be freed in case parse_args returns error(e.g. due to incorrect parameter passed).
> >
> > Thanks, this seems right. Applied.
> >
> > But this makes me ask: where is lockdep_free_key_range() called on the
> > module init code? It doesn't seem to be at all...
>
> Hmm, Ingo, how does this work? The lockless class lookup in
> look_up_lock_class() very much assumes the class hash is only added too,
> but here we go wipe stuff from it.
>
> From what I can tell, every use of lockdep_free_key_range() is broken.

indeed ...

Thanks,

Ingo
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/