aboutsummaryrefslogtreecommitdiffstats
path: root/arch/alpha/kernel/irq_alpha.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/alpha/kernel/irq_alpha.c')
-rw-r--r--arch/alpha/kernel/irq_alpha.c11
1 files changed, 6 insertions, 5 deletions
diff --git a/arch/alpha/kernel/irq_alpha.c b/arch/alpha/kernel/irq_alpha.c
index 51d66b7f99e3..6dd126b8be85 100644
--- a/arch/alpha/kernel/irq_alpha.c
+++ b/arch/alpha/kernel/irq_alpha.c
@@ -72,7 +72,9 @@ do_entInt(unsigned long type, unsigned long vector,
72 set_irq_regs(old_regs); 72 set_irq_regs(old_regs);
73 return; 73 return;
74 case 2: 74 case 2:
75 alpha_mv.machine_check(vector, la_ptr, regs); 75 old_regs = set_irq_regs(regs);
76 alpha_mv.machine_check(vector, la_ptr);
77 set_irq_regs(old_regs);
76 return; 78 return;
77 case 3: 79 case 3:
78 old_regs = set_irq_regs(regs); 80 old_regs = set_irq_regs(regs);
@@ -125,8 +127,7 @@ struct mcheck_info __mcheck_info;
125 127
126void 128void
127process_mcheck_info(unsigned long vector, unsigned long la_ptr, 129process_mcheck_info(unsigned long vector, unsigned long la_ptr,
128 struct pt_regs *regs, const char *machine, 130 const char *machine, int expected)
129 int expected)
130{ 131{
131 struct el_common *mchk_header; 132 struct el_common *mchk_header;
132 const char *reason; 133 const char *reason;
@@ -153,7 +154,7 @@ process_mcheck_info(unsigned long vector, unsigned long la_ptr,
153 mchk_header = (struct el_common *)la_ptr; 154 mchk_header = (struct el_common *)la_ptr;
154 155
155 printk(KERN_CRIT "%s machine check: vector=0x%lx pc=0x%lx code=0x%x\n", 156 printk(KERN_CRIT "%s machine check: vector=0x%lx pc=0x%lx code=0x%x\n",
156 machine, vector, regs->pc, mchk_header->code); 157 machine, vector, get_irq_regs()->pc, mchk_header->code);
157 158
158 switch (mchk_header->code) { 159 switch (mchk_header->code) {
159 /* Machine check reasons. Defined according to PALcode sources. */ 160 /* Machine check reasons. Defined according to PALcode sources. */
@@ -194,7 +195,7 @@ process_mcheck_info(unsigned long vector, unsigned long la_ptr,
194 printk(KERN_CRIT "machine check type: %s%s\n", 195 printk(KERN_CRIT "machine check type: %s%s\n",
195 reason, mchk_header->retry ? " (retryable)" : ""); 196 reason, mchk_header->retry ? " (retryable)" : "");
196 197
197 dik_show_regs(regs, NULL); 198 dik_show_regs(get_irq_regs(), NULL);
198 199
199#ifdef CONFIG_VERBOSE_MCHECK 200#ifdef CONFIG_VERBOSE_MCHECK
200 if (alpha_verbose_mcheck > 1) { 201 if (alpha_verbose_mcheck > 1) {