xen/arm: Implement 32-bit dump stack

Message ID 1382544917-4978-1-git-send-email-julien.grall@linaro.org
State Accepted
Commit 785e2c1f5d45225a43ea0d46702fc09d508e04bd
Headers show

Commit Message

Julien Grall Oct. 23, 2013, 4:15 p.m.
Signed-off-by: Julien Grall <julien.grall@linaro.org>
---
 xen/arch/arm/traps.c | 12 ++++++++++--
 1 file changed, 10 insertions(+), 2 deletions(-)

Patch

diff --git a/xen/arch/arm/traps.c b/xen/arch/arm/traps.c
index 4c0fc32..287dd7b 100644
--- a/xen/arch/arm/traps.c
+++ b/xen/arch/arm/traps.c
@@ -629,12 +629,20 @@  static void show_guest_stack(struct vcpu *v, struct cpu_user_regs *regs)
         return;
 
     case PSR_MODE_FIQ:
+        sp = regs->sp_fiq;
+        break;
     case PSR_MODE_IRQ:
+        sp = regs->sp_irq;
+        break;
     case PSR_MODE_SVC:
+        sp = regs->sp_svc;
+        break;
     case PSR_MODE_ABT:
+        sp = regs->sp_abt;
+        break;
     case PSR_MODE_UND:
-        printk("No stack trace for 32-bit guest kernel-mode\n");
-        return;
+        sp = regs->sp_und;
+        break;
 
 #ifdef CONFIG_ARM_64
     case PSR_MODE_EL1t: