mm/vmalloc: replace BUG_ON with a simple if statement
authorHyunmin Lee <hn.min.lee@gmail.com>
Wed, 1 Feb 2023 11:51:42 +0000 (20:51 +0900)
committerAndrew Morton <akpm@linux-foundation.org>
Fri, 10 Feb 2023 00:51:41 +0000 (16:51 -0800)
As per the coding standards, in the event of an abnormal condition that
should not occur under normal circumstances, the kernel should attempt
recovery and proceed with execution, rather than halting the machine.

Specifically, in the alloc_vmap_area() function, use a simple if()
instead of using BUG_ON() halting the machine.

Link: https://lkml.kernel.org/r/20230201115142.GA7772@min-iamroot
Co-developed-by: Gwan-gyeong Mun <gwan-gyeong.mun@intel.com>
Signed-off-by: Gwan-gyeong Mun <gwan-gyeong.mun@intel.com>
Co-developed-by: Jeungwoo Yoo <casionwoo@gmail.com>
Signed-off-by: Jeungwoo Yoo <casionwoo@gmail.com>
Co-developed-by: Sangyun Kim <sangyun.kim@snu.ac.kr>
Signed-off-by: Sangyun Kim <sangyun.kim@snu.ac.kr>
Signed-off-by: Hyunmin Lee <hn.min.lee@gmail.com>
Reviewed-by: Christophe Leroy <christophe.leroy@csgroup.eu>
Reviewed-by: Hyeonggon Yoo <42.hyeyoo@gmail.com>
Reviewed-by: Mike Rapoport (IBM) <rppt@kernel.org>
Reviewed-by: Uladzislau Rezki (Sony) <urezki@gmail.com>
Cc: Hyeonggon Yoo <42.hyeyoo@gmail.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
mm/vmalloc.c

index ff4d7dfdf84add099b5e08f05c745e1d9abd4625..1dd7ca258a765d924f9fc18d704160b5b263cdf6 100644 (file)
@@ -1586,9 +1586,8 @@ static struct vmap_area *alloc_vmap_area(unsigned long size,
        int purged = 0;
        int ret;
 
-       BUG_ON(!size);
-       BUG_ON(offset_in_page(size));
-       BUG_ON(!is_power_of_2(align));
+       if (unlikely(!size || offset_in_page(size) || !is_power_of_2(align)))
+               return ERR_PTR(-EINVAL);
 
        if (unlikely(!vmap_initialized))
                return ERR_PTR(-EBUSY);