On Wed, 13 Dec 2017, Christian König wrote:

> > > > --- a/drivers/misc/sgi-gru/grutlbpurge.c
> > > > +++ b/drivers/misc/sgi-gru/grutlbpurge.c
> > > > @@ -298,6 +298,7 @@ struct gru_mm_struct
> > > > *gru_register_mmu_notifier(void)
> > > >                         return ERR_PTR(-ENOMEM);
> > > >                 STAT(gms_alloc);
> > > >                 spin_lock_init(&gms->ms_asid_lock);
> > > > +               gms->ms_notifier.flags = 0;
> > > >                 gms->ms_notifier.ops = &gru_mmuops;
> > > >                 atomic_set(&gms->ms_refcnt, 1);
> > > >                 init_waitqueue_head(&gms->ms_wait_queue);
> > > > diff --git a/drivers/xen/gntdev.c b/drivers/xen/gntdev.c
> > > There is a kzalloc() just above this:
> > >   gms = kzalloc(sizeof(*gms), GFP_KERNEL);
> > > 
> > > Is that not sufficient to clear the 'flags' field?
> > > 
> > Absolutely, but whether it is better to explicitly document that the mmu
> > notifier has cleared flags, i.e. there are no blockable callbacks, is
> > another story.  I can change it if preferred.
> 
> Actually I would invert the new flag, in other words specify that an MMU
> notifier will never sleep.
> 

Very good idea, I'll do that.  I'll also move the flags member to ops as 
Paolo suggested.

Thanks both!

Reply via email to