[Devel] [PATCH RHEL7 COMMIT] ms/extable: Consolidate *kernel_text_address() functions

Vasily Averin vvs at virtuozzo.com
Thu Dec 3 15:31:43 MSK 2020


The commit is pushed to "branch-rh7-3.10.0-1160.6.1.vz7.171.x-ovz" and will appear at https://src.openvz.org/scm/ovz/vzkernel.git
after rh7-3.10.0-1160.6.1.vz7.171.2
------>
commit e0ec00505c7f9e92a713e334002190054e8b9b06
Author: Vasily Averin <vvs at virtuozzo.com>
Date:   Thu Dec 3 15:31:43 2020 +0300

    ms/extable: Consolidate *kernel_text_address() functions
    
    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 e8de57b..21136fc 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.


More information about the Devel mailing list