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 ff4d7df..1dd7ca2 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);