aboutsummaryrefslogtreecommitdiffstats
path: root/arch/sparc64/kernel/traps.c
diff options
context:
space:
mode:
authorDavid S. Miller <davem@sunset.davemloft.net>2006-02-18 20:06:28 -0500
committerDavid S. Miller <davem@sunset.davemloft.net>2006-03-20 04:13:40 -0500
commit04d74758eb7dce6dfb7d2101315827c267ffefc4 (patch)
tree18a90d84f5503eefc9af52ecd3bb1a09ae3fe6d0 /arch/sparc64/kernel/traps.c
parent24c523ecc667dfeb28ef969cfabc531709bfffb8 (diff)
[SPARC64]: Use KERN_EMERG in dump_tl1_traplog() and sun4v TLB errors.
We're about to seriously die in these cases so it is important that the messages make it to the console. Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'arch/sparc64/kernel/traps.c')
-rw-r--r--arch/sparc64/kernel/traps.c20
1 files changed, 13 insertions, 7 deletions
diff --git a/arch/sparc64/kernel/traps.c b/arch/sparc64/kernel/traps.c
index 5a157e92bfc7..6d45867ee166 100644
--- a/arch/sparc64/kernel/traps.c
+++ b/arch/sparc64/kernel/traps.c
@@ -75,12 +75,12 @@ static void dump_tl1_traplog(struct tl1_traplog *p)
75{ 75{
76 int i, limit; 76 int i, limit;
77 77
78 printk("TRAPLOG: Error at trap level 0x%lx, dumping track stack.\n", 78 printk(KERN_EMERG "TRAPLOG: Error at trap level 0x%lx, "
79 p->tl); 79 "dumping track stack.\n", p->tl);
80 80
81 limit = (tlb_type == hypervisor) ? 2 : 4; 81 limit = (tlb_type == hypervisor) ? 2 : 4;
82 for (i = 0; i < 4; i++) { 82 for (i = 0; i < 4; i++) {
83 printk(KERN_CRIT 83 printk(KERN_EMERG
84 "TRAPLOG: Trap level %d TSTATE[%016lx] TPC[%016lx] " 84 "TRAPLOG: Trap level %d TSTATE[%016lx] TPC[%016lx] "
85 "TNPC[%016lx] TT[%lx]\n", 85 "TNPC[%016lx] TT[%lx]\n",
86 i + 1, 86 i + 1,
@@ -1938,10 +1938,13 @@ void sun4v_itlb_error_report(struct pt_regs *regs, int tl)
1938 if (tl > 1) 1938 if (tl > 1)
1939 dump_tl1_traplog((struct tl1_traplog *)(regs + 1)); 1939 dump_tl1_traplog((struct tl1_traplog *)(regs + 1));
1940 1940
1941 printk("SUN4V-ITLB: Error at TPC[%lx], tl %d\n", regs->tpc, tl); 1941 printk(KERN_EMERG "SUN4V-ITLB: Error at TPC[%lx], tl %d\n",
1942 printk("SUN4V-ITLB: vaddr[%lx] ctx[%lx] pte[%lx] error[%lx]\n", 1942 regs->tpc, tl);
1943 printk(KERN_EMERG "SUN4V-ITLB: vaddr[%lx] ctx[%lx] "
1944 "pte[%lx] error[%lx]\n",
1943 sun4v_err_itlb_vaddr, sun4v_err_itlb_ctx, 1945 sun4v_err_itlb_vaddr, sun4v_err_itlb_ctx,
1944 sun4v_err_itlb_pte, sun4v_err_itlb_error); 1946 sun4v_err_itlb_pte, sun4v_err_itlb_error);
1947
1945 prom_halt(); 1948 prom_halt();
1946} 1949}
1947 1950
@@ -1955,10 +1958,13 @@ void sun4v_dtlb_error_report(struct pt_regs *regs, int tl)
1955 if (tl > 1) 1958 if (tl > 1)
1956 dump_tl1_traplog((struct tl1_traplog *)(regs + 1)); 1959 dump_tl1_traplog((struct tl1_traplog *)(regs + 1));
1957 1960
1958 printk("SUN4V-DTLB: Error at TPC[%lx], tl %d\n", regs->tpc, tl); 1961 printk(KERN_EMERG "SUN4V-DTLB: Error at TPC[%lx], tl %d\n",
1959 printk("SUN4V-DTLB: vaddr[%lx] ctx[%lx] pte[%lx] error[%lx]\n", 1962 regs->tpc, tl);
1963 printk(KERN_EMERG "SUN4V-DTLB: vaddr[%lx] ctx[%lx] "
1964 "pte[%lx] error[%lx]\n",
1960 sun4v_err_dtlb_vaddr, sun4v_err_dtlb_ctx, 1965 sun4v_err_dtlb_vaddr, sun4v_err_dtlb_ctx,
1961 sun4v_err_dtlb_pte, sun4v_err_dtlb_error); 1966 sun4v_err_dtlb_pte, sun4v_err_dtlb_error);
1967
1962 prom_halt(); 1968 prom_halt();
1963} 1969}
1964 1970