diff options
Diffstat (limited to 'arch/alpha/kernel/irq_alpha.c')
-rw-r--r-- | arch/alpha/kernel/irq_alpha.c | 11 |
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 | ||
126 | void | 128 | void |
127 | process_mcheck_info(unsigned long vector, unsigned long la_ptr, | 129 | process_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) { |