[PATCH] kernel/notifier: Use BUG_ON instead of if condition followed by BUG

From: zhouchuangao
Date: Fri Apr 23 2021 - 03:56:50 EST


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@xxxxxxxx>
---
kernel/notifier.c | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/kernel/notifier.c b/kernel/notifier.c
index 1b019cb..2b0ed7d 100644
--- a/kernel/notifier.c
+++ b/kernel/notifier.c
@@ -522,8 +522,7 @@ EXPORT_SYMBOL_GPL(srcu_notifier_call_chain);
void srcu_init_notifier_head(struct srcu_notifier_head *nh)
{
mutex_init(&nh->mutex);
- if (init_srcu_struct(&nh->srcu) < 0)
- BUG();
+ BUG_ON(init_srcu_struct(&nh->srcu) < 0);
nh->head = NULL;
}
EXPORT_SYMBOL_GPL(srcu_init_notifier_head);
--
2.7.4