diff --git a/mm/vmalloc.c b/mm/vmalloc.c index f8189a4b3e1..0b91e40af9e 100644 --- a/mm/vmalloc.c +++ b/mm/vmalloc.c @@ -546,10 +546,8 @@ static void __purge_vmap_area_lazy(unsigned long *start, unsigned long *end, } rcu_read_unlock(); - if (nr) { - BUG_ON(nr > atomic_read(&vmap_lazy_nr)); + if (nr) atomic_sub(nr, &vmap_lazy_nr); - } if (nr || force_flush) flush_tlb_kernel_range(*start, *end);