public inbox for linux-arm-kernel@lists.infradead.org
 help / color / mirror / Atom feed
* [PATCH v2] arm/stacktrace: stop unwinding after an invalid address.
       [not found] <CGME20180321111139epcas5p4d5b75f4e1b572ae4e55aef737cd6d8e9@epcas5p4.samsung.com>
@ 2018-03-21 11:10 ` Maninder Singh
  2018-04-03 12:58   ` Vaneet Narang
  0 siblings, 1 reply; 2+ messages in thread
From: Maninder Singh @ 2018-03-21 11:10 UTC (permalink / raw)
  To: linux-arm-kernel

This patch stops unwinding backtrace in case address does not
belong to kernel address like below:-

....
__do_fault+0x4c/0xa8
handle_mm_fault+0xb74/0x11c0
do_page_fault+0x29c/0x38c
do_DataAbort+0x40/0xb8
__dabt_usr+0x44/0x60
0xb6748ea4
^^^^^^^^

So this patch discards last junk entry.

Signed-off-by: Maninder Singh <maninder1.s@samsung.com>
Signed-off-by: Vaneet Narang <v.narang@samsung.com>
---
v1->v2: https://lkml.org/lkml/2017/10/24/378
(take care of IRQ taken in SVC mode)

 arch/arm/kernel/stacktrace.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/arch/arm/kernel/stacktrace.c b/arch/arm/kernel/stacktrace.c
index a56e7c8..1aadffc 100644
--- a/arch/arm/kernel/stacktrace.c
+++ b/arch/arm/kernel/stacktrace.c
@@ -92,6 +92,9 @@ static int save_trace(struct stackframe *frame, void *d)
 
 	regs = (struct pt_regs *)frame->sp;
 
+	if (!__kernel_text_address(regs->ARM_pc))
+		return 1;
+
 	trace->entries[trace->nr_entries++] = regs->ARM_pc;
 
 	return trace->nr_entries >= trace->max_entries;
-- 
1.9.1

^ permalink raw reply related	[flat|nested] 2+ messages in thread

* [PATCH v2] arm/stacktrace: stop unwinding after an invalid address.
  2018-03-21 11:10 ` [PATCH v2] arm/stacktrace: stop unwinding after an invalid address Maninder Singh
@ 2018-04-03 12:58   ` Vaneet Narang
  0 siblings, 0 replies; 2+ messages in thread
From: Vaneet Narang @ 2018-04-03 12:58 UTC (permalink / raw)
  To: linux-arm-kernel

?
Hi Russell,


>__dabt_usr+0x44/0x60
>0xb6748ea4
>^^^^^^^^

>--- a/arch/arm/kernel/stacktrace.c
>+++ b/arch/arm/kernel/stacktrace.c
>@@ -92,6 +92,9 @@ static int save_trace(struct stackframe *frame, void *d)
> 
> 	regs = (struct pt_regs *)frame->sp;
>
>+	if (!__kernel_text_address(regs->ARM_pc))
>+		return 1;
>+
> 	trace->entries[trace->nr_entries++] = regs->ARM_pc;
 
?
Any Inputs or Comments on this patch to avoid storing user space entries 
during unwind.
?
Regards,
Vaneet Narang
-------------- next part --------------
A non-text attachment was scrubbed...
Name: rcptInfo.txt
Type: application/octet-stream
Size: 1636 bytes
Desc: not available
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20180403/79f28a2f/attachment-0001.obj>

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2018-04-03 12:58 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
     [not found] <CGME20180321111139epcas5p4d5b75f4e1b572ae4e55aef737cd6d8e9@epcas5p4.samsung.com>
2018-03-21 11:10 ` [PATCH v2] arm/stacktrace: stop unwinding after an invalid address Maninder Singh
2018-04-03 12:58   ` Vaneet Narang

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox