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

From: Peter Zijlstra
Date: Tue Jan 20 2015 - 04:48:22 EST


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.
--
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/