Re: [RFC PATCH 8/9] livepatch: allow patch modules to be removed

Josh Poimboeuf
2015-02-13T12:44:20Z

On Thu, Feb 12, 2015 at 04:22:24PM +0100, Miroslav Benes wrote:
> On Tue, 10 Feb 2015, Jiri Slaby wrote:
>
> > On 02/09/2015, 06:31 PM, Josh Poimboeuf wrote:
> > > --- a/kernel/livepatch/core.c
> > > +++ b/kernel/livepatch/core.c
> > ...
> > > @@ -497,10 +500,6 @@ static struct attribute *klp_patch_attrs[] = {
> > >
> > > static void klp_kobj_release_patch(struct kobject *kobj)
> > > {
> > > - /*
> > > - * Once we have a consistency model we'll need to module_put() the
> > > - * patch module here. See klp_register_patch() for more details.
> > > - */
> >
> > I deliberately let you write the note in there :). What happens when I
> > leave some attribute in /sys open and you remove the module in the meantime?
>
> And if that attribute is <enabled> it can lead even to the deadlock. You
> can try it yourself with the patchset applied and lockdep on. Simple
> series of insmod, disable and rmmod of the patch.
>
> Just for the sake of completeness...

Ouch, thanks.

--
Josh