Jeremy Fitzhardinge wrote: > > @@ -261,10 +261,12 @@ void pgd_ctor(void *pgd, struct kmem_cac > spin_unlock_irqrestore(&pgd_lock, flags); > } > > -/* never called when PTRS_PER_PMD > 1 */ > -void pgd_dtor(void *pgd, struct kmem_cache *cache, unsigned long unused) > +static void pgd_dtor(pgd_t *pgd) > { > unsigned long flags; /* can be called from interrupt context */ > + > + if (PTRS_PER_PMD == 1) > + return; > > paravirt_release_pd(__pa(pgd) >> PAGE_SHIFT); > spin_lock_irqsave(&pgd_lock, flags); > Acked, with exceptions. This bit breaks VMI. The paravirt_release_pd must happen unconditionally. But I would rather fix it after patches get applied just to make sure the entire allocation / deallocation order constraints are intact. Zach