Nick Piggin wrote: > +static void free_unmap_vmap_area(struct vmap_area *va) > +{ > + va->flags |= VM_LAZY_FREE; > + atomic_add((va->va_end - va->va_start) >> PAGE_SHIFT, &vmap_lazy_nr); > + if (unlikely(atomic_read(&vmap_lazy_nr) > LAZY_MAX)) > + purge_vmap_area_lazy(); > +} Could you check here if we are in an atomic context and then simply not purge the vmap area? That may we may get to a vfree that can be run in an atomic context. Or run purge_vma_area_lazy from keventd? -- To unsubscribe from this list: send the line "unsubscribe linux-arch" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html