>+++ zhouchuangao [30/03/21 05:07 -0700]: >>It can be optimized at compile time. >> >>Signed-off-by: zhouchuangao <zhouchuan...@vivo.com> > >Hi, > >Could you please provide a more descriptive changelog? I.e., Is this >a fix for a cocinelle warning? What are the optimization(s)? > >Thanks, > First, This patch comes from cocinelle warning.
Second, #define BUG_ON(condition) do { if (unlikely(condition)) BUG(); } while (0) 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. Thanks, zhouchuangao >Jessica > >>--- >> kernel/module.c | 4 ++-- >> 1 file changed, 2 insertions(+), 2 deletions(-) >> >>diff --git a/kernel/module.c b/kernel/module.c >>index 3047935..f46fc4f 100644 >>--- a/kernel/module.c >>+++ b/kernel/module.c >>@@ -1014,8 +1014,8 @@ void __symbol_put(const char *symbol) >> }; >> >> preempt_disable(); >>- if (!find_symbol(&fsa)) >>- BUG(); >>+ BUG_ON(!find_symbol(&fsa)); >>+ >> module_put(fsa.owner); >> preempt_enable(); >> } >>-- >>2.7.4 >>