[Devel] [PATCH RH7 2/2] ms/extable: Consolidate *kernel_text_address() functions

Vasily Averin vvs at virtuozzo.com
Fri Nov 20 09:21:08 MSK 2020


Author: Steven Rostedt (VMware) <rostedt at goodmis.org>
backported upstream commit 9aadde91b3c035413c806619beb3e3ef6e697953

    The functionality between kernel_text_address() and _kernel_text_address()
    is the same except that _kernel_text_address() does a little more (that
    function needs a rename, but that can be done another time). Instead of
    having duplicate code in both, simply have _kernel_text_address() calls
    kernel_text_address() instead.

    This is marked for stable because there's an RCU bug that can happen if
    one of these functions gets called while RCU is not watching. That fix
    depends on this fix to keep from having to write the fix twice.

    Cc: stable at vger.kernel.org
    Fixes: 0be964be0 ("module: Sanitize RCU usage and locking")
    Acked-by: Paul E. McKenney <paulmck at linux.vnet.ibm.com>
    Signed-off-by: Steven Rostedt (VMware) <rostedt at goodmis.org>

backport changes: context changes, Rh7 and vz7 kernels does not have
  is_ftrace_trampoline() and is_kprobe() checks

https://jira.sw.ru/browse/PSBM-122315
Signed-off-by: Vasily Averin <vvs at virtuozzo.com>
---
 kernel/extable.c | 6 +-----
 1 file changed, 1 insertion(+), 5 deletions(-)

diff --git a/kernel/extable.c b/kernel/extable.c
index 4f1a5d2..1cb213f 100644
--- a/kernel/extable.c
+++ b/kernel/extable.c
@@ -99,11 +99,7 @@ int core_kernel_data(unsigned long addr)
 
 int __kernel_text_address(unsigned long addr)
 {
-	if (core_kernel_text(addr))
-		return 1;
-	if (is_module_text_address(addr))
-		return 1;
-	if (is_bpf_text_address(addr))
+	if (kernel_text_address(addr))
 		return 1;
 	/*
 	 * There might be init symbols in saved stacktraces.
-- 
1.8.3.1



More information about the Devel mailing list