From lihuafei1@huawei.com  Fri Sep 24 08:10:49 2021
From: Li Huafei <lihuafei1@huawei.com>
Date: Fri, 24 Sep 2021 10:54:48 +0800
Subject: tracing/kprobe: Fix kprobe_on_func_entry() modification
To: <gregkh@linuxfoundation.org>
Cc: <mhiramat@kernel.org>, <rostedt@goodmis.org>, <mingo@redhat.com>, <linux-kernel@vger.kernel.org>
Message-ID: <20210924025448.232959-1-lihuafei1@huawei.com>

From: Li Huafei <lihuafei1@huawei.com>

The commit 960434acef37 ("tracing/kprobe: Fix to support kretprobe
events on unloaded modules") backport from v5.11, which modifies the
return value of kprobe_on_func_entry(). However, there is no adaptation
modification in create_trace_kprobe(), resulting in the exact opposite
behavior. Now we need to return an error immediately only if
kprobe_on_func_entry() returns -EINVAL.

Fixes: 960434acef37 ("tracing/kprobe: Fix to support kretprobe events on unloaded modules")
Signed-off-by: Li Huafei <lihuafei1@huawei.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 kernel/trace/trace_kprobe.c |    3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

--- a/kernel/trace/trace_kprobe.c
+++ b/kernel/trace/trace_kprobe.c
@@ -836,8 +836,9 @@ static int create_trace_kprobe(int argc,
 			pr_info("Failed to parse either an address or a symbol.\n");
 			return ret;
 		}
+		/* Defer the ENOENT case until register kprobe */
 		if (offset && is_return &&
-		    !kprobe_on_func_entry(NULL, symbol, offset)) {
+		    kprobe_on_func_entry(NULL, symbol, offset) == -EINVAL) {
 			pr_info("Given offset is not valid for return probe.\n");
 			return -EINVAL;
 		}
