kernel/module: Use BUG_ON instead of if condition followed by BUG
authorzhouchuangao <zhouchuangao@vivo.com>
Wed, 12 May 2021 14:01:57 +0000 (07:01 -0700)
committerJessica Yu <jeyu@kernel.org>
Fri, 14 May 2021 07:50:56 +0000 (09:50 +0200)
Fix the following coccinelle report:

kernel/module.c:1018:2-5:
WARNING: Use BUG_ON instead of if condition followed by BUG.

BUG_ON uses unlikely in if(). Through disassembly, we can see that
brk #0x800 is compiled to the end of the function.
As you can see below:
    ......
    ffffff8008660bec:   d65f03c0    ret
    ffffff8008660bf0:   d4210000    brk #0x800

Usually, the condition in if () is not satisfied. For the
multi-stage pipeline, we do not need to perform fetch decode
and excute operation on brk instruction.

In my opinion, this can improve the efficiency of the
multi-stage pipeline.

Signed-off-by: zhouchuangao <zhouchuangao@vivo.com>
Signed-off-by: Jessica Yu <jeyu@kernel.org>
kernel/module.c

index b5dd92e35b02a78b44532cbdcf69292350dca456..faf9114a9981c19d55d8bfb133de88df9e7cded1 100644 (file)
@@ -1014,8 +1014,7 @@ void __symbol_put(const char *symbol)
        };
 
        preempt_disable();
-       if (!find_symbol(&fsa))
-               BUG();
+       BUG_ON(!find_symbol(&fsa));
        module_put(fsa.owner);
        preempt_enable();
 }