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

Jiri Kosina
2015-03-17T09:31:45Z

On Tue, 17 Mar 2015, Rusty Russell 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.

Well, the race is rather theoretical (I don't think everyone ever saw it,
nor will in the future), but we'd rather be on a safe side.

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

Thanks! I am applying this to for-4.0/upstream-fixes.

--
Jiri Kosina
SUSE Labs