Re: [PATCH v4] livepatch/module: Correctly handle coming and going modules

Rusty Russell
2015-03-17T01:59:12Z

Jiri Kosina <jkosina@suse.cz> writes:
> On Thu, 12 Mar 2015, Petr Mladek wrote:
>
>> There is a notifier that handles live patches for coming and going modules.
>> It takes klp_mutex lock to avoid races with coming and going patches but
>> it does not keep the lock all the time. Therefore the following races are
>> possible:
> [ ... snip ... ]
>> diff --git a/include/linux/module.h b/include/linux/module.h
>> index b653d7c0a05a..7232fde6a991 100644
>> --- a/include/linux/module.h
>> +++ b/include/linux/module.h
>> @@ -344,6 +344,10 @@ struct module {
>> unsigned long *ftrace_callsites;
>> #endif
>>
>> +#ifdef CONFIG_LIVEPATCH
>> + bool klp_alive;
>> +#endif
>> +
>
> Rusty, are you okay with this please? I'd like to have the race fixed in
> 4.0 still, but don't want to be making changes to struct module without
> your ack.

I look at the amount of explanation and discussion around these patches
and I fear the complexity of what you're doing.

But not enough to rewrite it myself, so:

Acked-by: Rusty Russell <rusty@rustcorp.com.au>

Good luck!
Rusty.