When the 'kprobe_event=' kernel command-line parameter is not provided,
there is no need to execute setup_boot_kprobe_events().

This change optimizes the initialization function init_kprobe_trace()
by skipping unnecessary work and effectively prevents potential blocking
that could arise from contention on the event_mutex lock in subsequent
operations.

Signed-off-by: Yaxiong Tian <[email protected]>
---
 kernel/trace/trace_kprobe.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/kernel/trace/trace_kprobe.c b/kernel/trace/trace_kprobe.c
index 9953506370a5..89d2740f7bb5 100644
--- a/kernel/trace/trace_kprobe.c
+++ b/kernel/trace/trace_kprobe.c
@@ -2048,6 +2048,10 @@ static __init int init_kprobe_trace(void)
        trace_create_file("kprobe_profile", TRACE_MODE_READ,
                          NULL, NULL, &kprobe_profile_ops);
 
+       /* If no 'kprobe_event=' cmd is provided, return directly. */
+       if (kprobe_boot_events_buf[0] == '\0')
+               return 0;
+
        setup_boot_kprobe_events();
 
        return 0;
-- 
2.25.1


Reply via email to