On Thu, 2011-01-20 at 10:31 +0200, Pekka Enberg wrote: > if (!irqs_disabled()) > > guard around the debugging code to make vfree() always work with IRQs > disabled.
That won't be sufficient, __purge_vmap_area_lazy() needs to call flush_tlb_kernel_range() occasionally.
There really is a good reason vmalloc()/vfree() don't work with interrupts disabled.