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!