diff options
author | David S. Miller <davem@davemloft.net> | 2008-01-17 04:32:09 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2008-01-17 09:26:55 -0500 |
commit | 6320bcebc0ee0bafc61f293bec2d0809171f6b1d (patch) | |
tree | 3304410d948260a374eaaf4ba138f777dad05520 /arch/sparc64/kernel/traps.c | |
parent | d8c89eb3a12f0da96d049bd515c7fa3702e511c5 (diff) |
[SPARC64]: Fix hypervisor TLB operation error reporting.
1) Trap level wasn't being passed down properly, we need to
move it from %l4 into the correct outgoing arg register.
2) Although the TPC often provides the most direct clue, we
have the caller PC so we should provide that as well.
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'arch/sparc64/kernel/traps.c')
-rw-r--r-- | arch/sparc64/kernel/traps.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/arch/sparc64/kernel/traps.c b/arch/sparc64/kernel/traps.c index 04998388259f..2b6abf633343 100644 --- a/arch/sparc64/kernel/traps.c +++ b/arch/sparc64/kernel/traps.c | |||
@@ -1950,6 +1950,8 @@ void sun4v_itlb_error_report(struct pt_regs *regs, int tl) | |||
1950 | printk(KERN_EMERG "SUN4V-ITLB: Error at TPC[%lx], tl %d\n", | 1950 | printk(KERN_EMERG "SUN4V-ITLB: Error at TPC[%lx], tl %d\n", |
1951 | regs->tpc, tl); | 1951 | regs->tpc, tl); |
1952 | print_symbol(KERN_EMERG "SUN4V-ITLB: TPC<%s>\n", regs->tpc); | 1952 | print_symbol(KERN_EMERG "SUN4V-ITLB: TPC<%s>\n", regs->tpc); |
1953 | printk(KERN_EMERG "SUN4V-ITLB: O7[%lx]\n", regs->u_regs[UREG_I7]); | ||
1954 | print_symbol(KERN_EMERG "SUN4V-ITLB: O7<%s>\n", regs->u_regs[UREG_I7]); | ||
1953 | printk(KERN_EMERG "SUN4V-ITLB: vaddr[%lx] ctx[%lx] " | 1955 | printk(KERN_EMERG "SUN4V-ITLB: vaddr[%lx] ctx[%lx] " |
1954 | "pte[%lx] error[%lx]\n", | 1956 | "pte[%lx] error[%lx]\n", |
1955 | sun4v_err_itlb_vaddr, sun4v_err_itlb_ctx, | 1957 | sun4v_err_itlb_vaddr, sun4v_err_itlb_ctx, |
@@ -1971,6 +1973,8 @@ void sun4v_dtlb_error_report(struct pt_regs *regs, int tl) | |||
1971 | printk(KERN_EMERG "SUN4V-DTLB: Error at TPC[%lx], tl %d\n", | 1973 | printk(KERN_EMERG "SUN4V-DTLB: Error at TPC[%lx], tl %d\n", |
1972 | regs->tpc, tl); | 1974 | regs->tpc, tl); |
1973 | print_symbol(KERN_EMERG "SUN4V-DTLB: TPC<%s>\n", regs->tpc); | 1975 | print_symbol(KERN_EMERG "SUN4V-DTLB: TPC<%s>\n", regs->tpc); |
1976 | printk(KERN_EMERG "SUN4V-DTLB: O7[%lx]\n", regs->u_regs[UREG_I7]); | ||
1977 | print_symbol(KERN_EMERG "SUN4V-DTLB: O7<%s>\n", regs->u_regs[UREG_I7]); | ||
1974 | printk(KERN_EMERG "SUN4V-DTLB: vaddr[%lx] ctx[%lx] " | 1978 | printk(KERN_EMERG "SUN4V-DTLB: vaddr[%lx] ctx[%lx] " |
1975 | "pte[%lx] error[%lx]\n", | 1979 | "pte[%lx] error[%lx]\n", |
1976 | sun4v_err_dtlb_vaddr, sun4v_err_dtlb_ctx, | 1980 | sun4v_err_dtlb_vaddr, sun4v_err_dtlb_ctx, |