We can't handle vfree itself from atomic context, but callers can explicitly use vfree_atomic instead, which defers the actual vfree to a workqueue. Unfortunately in_atomic does not work on non-preemptible kernels, so we can't just do the right thing by default. Signed-off-by: Christoph Hellwig <hch@xxxxxx> --- mm/vmalloc.c | 1 + 1 file changed, 1 insertion(+) diff --git a/mm/vmalloc.c b/mm/vmalloc.c index 80f3fae..e2030b4 100644 --- a/mm/vmalloc.c +++ b/mm/vmalloc.c @@ -1530,6 +1530,7 @@ void vfree_atomic(const void *addr) void vfree(const void *addr) { BUG_ON(in_nmi()); + WARN_ON_ONCE(in_atomic()); kmemleak_free(addr); -- 2.1.4 -- To unsubscribe from this list: send the line "unsubscribe linux-rt-users" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html