On 22.01.2025 03:31, Josh Poimboeuf wrote:
Objtool warns about calling pr_debug() from uaccess-enabled regions, and
rightfully so.  Add a dbg_sec_uaccess() macro which temporarily disables
uaccess before doing the dynamic printk, and use that to add debug
messages throughout the uaccess-enabled regions.

Signed-off-by: Josh Poimboeuf <jpoim...@kernel.org>

diff --git a/kernel/unwind/sframe.c b/kernel/unwind/sframe.c

@@ -53,12 +53,15 @@ static __always_inline int __read_fde(struct sframe_section 
*sec,
                              sizeof(struct sframe_fde), Efault);
ip = sec->sframe_start + fde->start_addr;
-       if (ip < sec->text_start || ip > sec->text_end)
+       if (ip < sec->text_start || ip > sec->text_end) {
+               dbg_sec_uaccess("bad fde num %d\n", fde_num);
                return -EINVAL;
+       }
return 0; Efault:
+       dbg_sec_uaccess("fde %d usercopy failed\n", fde_num);
        return -EFAULT;
  }

Add a similar debug message for SFRame FDE user copy failures?

diff --git a/kernel/unwind/sframe.c b/kernel/unwind/sframe.c

@@ -125,6 +125,7 @@ static __always_inline int __find_fde(struct sframe_section 
*sec,
        return 0;

 Efault:
+       dbg_sec_uaccess("fde usercopy failed\n");
        return -EFAULT;
 }


Printing the IP is probably not an option due to security concerns?
Printing the the CFA, FP, and RA offsets is too much traffic?  To debug
issues on s390 I had to add tons of additional debug messages to make
sense of what was actually going on.

Regards,
Jens
--
Jens Remus
Linux on Z Development (D3303)
+49-7031-16-1128 Office
jre...@de.ibm.com

IBM

IBM Deutschland Research & Development GmbH; Vorsitzender des Aufsichtsrats: 
Wolfgang Wendt; Geschäftsführung: David Faller; Sitz der Gesellschaft: Böblingen; 
Registergericht: Amtsgericht Stuttgart, HRB 243294
IBM Data Privacy Statement: https://www.ibm.com/privacy/


Reply via email to