[PATCH] alpha pt_regs cleanups: machine_check()

do set_irq_regs() in caller, kill pt_regs argument.

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
This commit is contained in:
Al Viro 2006-10-08 14:44:38 +01:00 committed by Linus Torvalds
parent 3dbb8c6289
commit 4fa1970a23
20 changed files with 61 additions and 71 deletions

View file

@ -387,8 +387,7 @@ apecs_pci_clr_err(void)
} }
void void
apecs_machine_check(unsigned long vector, unsigned long la_ptr, apecs_machine_check(unsigned long vector, unsigned long la_ptr)
struct pt_regs * regs)
{ {
struct el_common *mchk_header; struct el_common *mchk_header;
struct el_apecs_procdata *mchk_procdata; struct el_apecs_procdata *mchk_procdata;
@ -412,7 +411,7 @@ apecs_machine_check(unsigned long vector, unsigned long la_ptr,
wrmces(0x7); /* reset machine check pending flag */ wrmces(0x7); /* reset machine check pending flag */
mb(); mb();
process_mcheck_info(vector, la_ptr, regs, "APECS", process_mcheck_info(vector, la_ptr, "APECS",
(mcheck_expected(0) (mcheck_expected(0)
&& (mchk_sysdata->epic_dcsr & 0x0c00UL))); && (mchk_sysdata->epic_dcsr & 0x0c00UL)));
} }

View file

@ -1192,8 +1192,7 @@ cia_decode_mchk(unsigned long la_ptr)
} }
void void
cia_machine_check(unsigned long vector, unsigned long la_ptr, cia_machine_check(unsigned long vector, unsigned long la_ptr)
struct pt_regs * regs)
{ {
int expected; int expected;
@ -1208,5 +1207,5 @@ cia_machine_check(unsigned long vector, unsigned long la_ptr,
expected = mcheck_expected(0); expected = mcheck_expected(0);
if (!expected && vector == 0x660) if (!expected && vector == 0x660)
expected = cia_decode_mchk(la_ptr); expected = cia_decode_mchk(la_ptr);
process_mcheck_info(vector, la_ptr, regs, "CIA", expected); process_mcheck_info(vector, la_ptr, "CIA", expected);
} }

View file

@ -19,6 +19,7 @@
#include <linux/tty.h> #include <linux/tty.h>
#include <asm/ptrace.h> #include <asm/ptrace.h>
#include <asm/irq_regs.h>
#include <asm/smp.h> #include <asm/smp.h>
#include "proto.h" #include "proto.h"
@ -386,8 +387,7 @@ ioc_error(__u32 stat0, __u32 stat1)
} }
void void
lca_machine_check(unsigned long vector, unsigned long la_ptr, lca_machine_check(unsigned long vector, unsigned long la_ptr)
struct pt_regs *regs)
{ {
const char * reason; const char * reason;
union el_lca el; union el_lca el;
@ -397,7 +397,7 @@ lca_machine_check(unsigned long vector, unsigned long la_ptr,
wrmces(rdmces()); /* reset machine check pending flag */ wrmces(rdmces()); /* reset machine check pending flag */
printk(KERN_CRIT "LCA machine check: vector=%#lx pc=%#lx code=%#x\n", printk(KERN_CRIT "LCA machine check: vector=%#lx pc=%#lx code=%#x\n",
vector, regs->pc, (unsigned int) el.c->code); vector, get_irq_regs()->pc, (unsigned int) el.c->code);
/* /*
* The first quadword after the common header always seems to * The first quadword after the common header always seems to

View file

@ -572,8 +572,7 @@ mcpcia_print_system_area(unsigned long la_ptr)
} }
void void
mcpcia_machine_check(unsigned long vector, unsigned long la_ptr, mcpcia_machine_check(unsigned long vector, unsigned long la_ptr)
struct pt_regs * regs)
{ {
struct el_common *mchk_header; struct el_common *mchk_header;
struct el_MCPCIA_uncorrected_frame_mcheck *mchk_logout; struct el_MCPCIA_uncorrected_frame_mcheck *mchk_logout;
@ -610,7 +609,7 @@ mcpcia_machine_check(unsigned long vector, unsigned long la_ptr,
wrmces(0x7); wrmces(0x7);
mb(); mb();
process_mcheck_info(vector, la_ptr, regs, "MCPCIA", expected != 0); process_mcheck_info(vector, la_ptr, "MCPCIA", expected != 0);
if (!expected && vector != 0x620 && vector != 0x630) { if (!expected && vector != 0x620 && vector != 0x630) {
mcpcia_print_uncorrectable(mchk_logout); mcpcia_print_uncorrectable(mchk_logout);
mcpcia_print_system_area(la_ptr); mcpcia_print_system_area(la_ptr);

View file

@ -187,8 +187,7 @@ polaris_pci_clr_err(void)
} }
void void
polaris_machine_check(unsigned long vector, unsigned long la_ptr, polaris_machine_check(unsigned long vector, unsigned long la_ptr)
struct pt_regs * regs)
{ {
/* Clear the error before any reporting. */ /* Clear the error before any reporting. */
mb(); mb();
@ -198,6 +197,6 @@ polaris_machine_check(unsigned long vector, unsigned long la_ptr,
wrmces(0x7); wrmces(0x7);
mb(); mb();
process_mcheck_info(vector, la_ptr, regs, "POLARIS", process_mcheck_info(vector, la_ptr, "POLARIS",
mcheck_expected(0)); mcheck_expected(0));
} }

View file

@ -551,8 +551,7 @@ t2_clear_errors(int cpu)
* Hence all the taken/expected/any_expected/last_taken stuff... * Hence all the taken/expected/any_expected/last_taken stuff...
*/ */
void void
t2_machine_check(unsigned long vector, unsigned long la_ptr, t2_machine_check(unsigned long vector, unsigned long la_ptr)
struct pt_regs * regs)
{ {
int cpu = smp_processor_id(); int cpu = smp_processor_id();
#ifdef CONFIG_VERBOSE_MCHECK #ifdef CONFIG_VERBOSE_MCHECK
@ -618,5 +617,5 @@ t2_machine_check(unsigned long vector, unsigned long la_ptr,
} }
#endif #endif
process_mcheck_info(vector, la_ptr, regs, "T2", mcheck_expected(cpu)); process_mcheck_info(vector, la_ptr, "T2", mcheck_expected(cpu));
} }

View file

@ -443,8 +443,7 @@ tsunami_pci_clr_err(void)
} }
void void
tsunami_machine_check(unsigned long vector, unsigned long la_ptr, tsunami_machine_check(unsigned long vector, unsigned long la_ptr)
struct pt_regs * regs)
{ {
/* Clear error before any reporting. */ /* Clear error before any reporting. */
mb(); mb();
@ -454,6 +453,6 @@ tsunami_machine_check(unsigned long vector, unsigned long la_ptr,
wrmces(0x7); wrmces(0x7);
mb(); mb();
process_mcheck_info(vector, la_ptr, regs, "TSUNAMI", process_mcheck_info(vector, la_ptr, "TSUNAMI",
mcheck_expected(smp_processor_id())); mcheck_expected(smp_processor_id()));
} }

View file

@ -322,8 +322,7 @@ wildfire_init_arch(void)
} }
void void
wildfire_machine_check(unsigned long vector, unsigned long la_ptr, wildfire_machine_check(unsigned long vector, unsigned long la_ptr)
struct pt_regs * regs)
{ {
mb(); mb();
mb(); /* magic */ mb(); /* magic */
@ -332,7 +331,7 @@ wildfire_machine_check(unsigned long vector, unsigned long la_ptr,
wrmces(0x7); wrmces(0x7);
mb(); mb();
process_mcheck_info(vector, la_ptr, regs, "WILDFIRE", process_mcheck_info(vector, la_ptr, "WILDFIRE",
mcheck_expected(smp_processor_id())); mcheck_expected(smp_processor_id()));
} }

View file

@ -11,6 +11,7 @@
#include <linux/sched.h> #include <linux/sched.h>
#include <asm/io.h> #include <asm/io.h>
#include <asm/irq_regs.h>
#include <asm/hwrpb.h> #include <asm/hwrpb.h>
#include <asm/smp.h> #include <asm/smp.h>
#include <asm/err_common.h> #include <asm/err_common.h>
@ -229,7 +230,7 @@ ev6_process_logout_frame(struct el_common *mchk_header, int print)
} }
void void
ev6_machine_check(u64 vector, u64 la_ptr, struct pt_regs *regs) ev6_machine_check(u64 vector, u64 la_ptr)
{ {
struct el_common *mchk_header = (struct el_common *)la_ptr; struct el_common *mchk_header = (struct el_common *)la_ptr;
@ -260,7 +261,7 @@ ev6_machine_check(u64 vector, u64 la_ptr, struct pt_regs *regs)
(unsigned int)vector, (int)smp_processor_id()); (unsigned int)vector, (int)smp_processor_id());
ev6_process_logout_frame(mchk_header, 1); ev6_process_logout_frame(mchk_header, 1);
dik_show_regs(regs, NULL); dik_show_regs(get_irq_regs(), NULL);
err_print_prefix = saved_err_prefix; err_print_prefix = saved_err_prefix;
} }

View file

@ -118,7 +118,7 @@ ev7_collect_logout_frame_subpackets(struct el_subpacket *el_ptr,
} }
void void
ev7_machine_check(u64 vector, u64 la_ptr, struct pt_regs *regs) ev7_machine_check(u64 vector, u64 la_ptr)
{ {
struct el_subpacket *el_ptr = (struct el_subpacket *)la_ptr; struct el_subpacket *el_ptr = (struct el_subpacket *)la_ptr;
char *saved_err_prefix = err_print_prefix; char *saved_err_prefix = err_print_prefix;

View file

@ -60,26 +60,26 @@ extern struct ev7_lf_subpackets *
ev7_collect_logout_frame_subpackets(struct el_subpacket *, ev7_collect_logout_frame_subpackets(struct el_subpacket *,
struct ev7_lf_subpackets *); struct ev7_lf_subpackets *);
extern void ev7_register_error_handlers(void); extern void ev7_register_error_handlers(void);
extern void ev7_machine_check(u64, u64, struct pt_regs *); extern void ev7_machine_check(u64, u64);
/* /*
* err_ev6.c * err_ev6.c
*/ */
extern void ev6_register_error_handlers(void); extern void ev6_register_error_handlers(void);
extern int ev6_process_logout_frame(struct el_common *, int); extern int ev6_process_logout_frame(struct el_common *, int);
extern void ev6_machine_check(u64, u64, struct pt_regs *); extern void ev6_machine_check(u64, u64);
/* /*
* err_marvel.c * err_marvel.c
*/ */
extern void marvel_machine_check(u64, u64, struct pt_regs *); extern void marvel_machine_check(u64, u64);
extern void marvel_register_error_handlers(void); extern void marvel_register_error_handlers(void);
/* /*
* err_titan.c * err_titan.c
*/ */
extern int titan_process_logout_frame(struct el_common *, int); extern int titan_process_logout_frame(struct el_common *, int);
extern void titan_machine_check(u64, u64, struct pt_regs *); extern void titan_machine_check(u64, u64);
extern void titan_register_error_handlers(void); extern void titan_register_error_handlers(void);
extern int privateer_process_logout_frame(struct el_common *, int); extern int privateer_process_logout_frame(struct el_common *, int);
extern void privateer_machine_check(u64, u64, struct pt_regs *); extern void privateer_machine_check(u64, u64);

View file

@ -1042,7 +1042,7 @@ marvel_process_logout_frame(struct ev7_lf_subpackets *lf_subpackets, int print)
} }
void void
marvel_machine_check(u64 vector, u64 la_ptr, struct pt_regs *regs) marvel_machine_check(u64 vector, u64 la_ptr)
{ {
struct el_subpacket *el_ptr = (struct el_subpacket *)la_ptr; struct el_subpacket *el_ptr = (struct el_subpacket *)la_ptr;
int (*process_frame)(struct ev7_lf_subpackets *, int) = NULL; int (*process_frame)(struct ev7_lf_subpackets *, int) = NULL;
@ -1077,7 +1077,7 @@ marvel_machine_check(u64 vector, u64 la_ptr, struct pt_regs *regs)
default: default:
/* Don't know it - pass it up. */ /* Don't know it - pass it up. */
ev7_machine_check(vector, la_ptr, regs); ev7_machine_check(vector, la_ptr);
return; return;
} }

View file

@ -379,7 +379,7 @@ titan_process_logout_frame(struct el_common *mchk_header, int print)
} }
void void
titan_machine_check(u64 vector, u64 la_ptr, struct pt_regs *regs) titan_machine_check(u64 vector, u64 la_ptr)
{ {
struct el_common *mchk_header = (struct el_common *)la_ptr; struct el_common *mchk_header = (struct el_common *)la_ptr;
struct el_TITAN_sysdata_mcheck *tmchk = struct el_TITAN_sysdata_mcheck *tmchk =
@ -408,7 +408,7 @@ titan_machine_check(u64 vector, u64 la_ptr, struct pt_regs *regs)
* Only handle system errors here * Only handle system errors here
*/ */
if ((vector != SCB_Q_SYSMCHK) && (vector != SCB_Q_SYSERR)) { if ((vector != SCB_Q_SYSMCHK) && (vector != SCB_Q_SYSERR)) {
ev6_machine_check(vector, la_ptr, regs); ev6_machine_check(vector, la_ptr);
return; return;
} }
@ -442,7 +442,7 @@ titan_machine_check(u64 vector, u64 la_ptr, struct pt_regs *regs)
#ifdef CONFIG_VERBOSE_MCHECK #ifdef CONFIG_VERBOSE_MCHECK
titan_process_logout_frame(mchk_header, alpha_verbose_mcheck); titan_process_logout_frame(mchk_header, alpha_verbose_mcheck);
if (alpha_verbose_mcheck) if (alpha_verbose_mcheck)
dik_show_regs(regs, NULL); dik_show_regs(get_irq_regs(), NULL);
#endif /* CONFIG_VERBOSE_MCHECK */ #endif /* CONFIG_VERBOSE_MCHECK */
err_print_prefix = saved_err_prefix; err_print_prefix = saved_err_prefix;
@ -452,7 +452,7 @@ titan_machine_check(u64 vector, u64 la_ptr, struct pt_regs *regs)
* machine checks to interrupts * machine checks to interrupts
*/ */
irqmask = tmchk->c_dirx & TITAN_MCHECK_INTERRUPT_MASK; irqmask = tmchk->c_dirx & TITAN_MCHECK_INTERRUPT_MASK;
titan_dispatch_irqs(irqmask, regs); titan_dispatch_irqs(irqmask, get_irq_regs());
} }
@ -701,7 +701,7 @@ privateer_process_logout_frame(struct el_common *mchk_header, int print)
} }
void void
privateer_machine_check(u64 vector, u64 la_ptr, struct pt_regs *regs) privateer_machine_check(u64 vector, u64 la_ptr)
{ {
struct el_common *mchk_header = (struct el_common *)la_ptr; struct el_common *mchk_header = (struct el_common *)la_ptr;
struct el_TITAN_sysdata_mcheck *tmchk = struct el_TITAN_sysdata_mcheck *tmchk =
@ -723,7 +723,7 @@ privateer_machine_check(u64 vector, u64 la_ptr, struct pt_regs *regs)
* Only handle system events here. * Only handle system events here.
*/ */
if (vector != SCB_Q_SYSEVENT) if (vector != SCB_Q_SYSEVENT)
return titan_machine_check(vector, la_ptr, regs); return titan_machine_check(vector, la_ptr);
/* /*
* Report the event - System Events should be reported even if no * Report the event - System Events should be reported even if no
@ -746,7 +746,7 @@ privateer_machine_check(u64 vector, u64 la_ptr, struct pt_regs *regs)
/* /*
* Dispatch the interrupt(s). * Dispatch the interrupt(s).
*/ */
titan_dispatch_irqs(irqmask, regs); titan_dispatch_irqs(irqmask, get_irq_regs());
/* /*
* Release the logout frame. * Release the logout frame.

View file

@ -72,7 +72,9 @@ do_entInt(unsigned long type, unsigned long vector,
set_irq_regs(old_regs); set_irq_regs(old_regs);
return; return;
case 2: case 2:
alpha_mv.machine_check(vector, la_ptr, regs); old_regs = set_irq_regs(regs);
alpha_mv.machine_check(vector, la_ptr);
set_irq_regs(old_regs);
return; return;
case 3: case 3:
old_regs = set_irq_regs(regs); old_regs = set_irq_regs(regs);
@ -125,8 +127,7 @@ struct mcheck_info __mcheck_info;
void void
process_mcheck_info(unsigned long vector, unsigned long la_ptr, process_mcheck_info(unsigned long vector, unsigned long la_ptr,
struct pt_regs *regs, const char *machine, const char *machine, int expected)
int expected)
{ {
struct el_common *mchk_header; struct el_common *mchk_header;
const char *reason; const char *reason;
@ -153,7 +154,7 @@ process_mcheck_info(unsigned long vector, unsigned long la_ptr,
mchk_header = (struct el_common *)la_ptr; mchk_header = (struct el_common *)la_ptr;
printk(KERN_CRIT "%s machine check: vector=0x%lx pc=0x%lx code=0x%x\n", printk(KERN_CRIT "%s machine check: vector=0x%lx pc=0x%lx code=0x%x\n",
machine, vector, regs->pc, mchk_header->code); machine, vector, get_irq_regs()->pc, mchk_header->code);
switch (mchk_header->code) { switch (mchk_header->code) {
/* Machine check reasons. Defined according to PALcode sources. */ /* Machine check reasons. Defined according to PALcode sources. */
@ -194,7 +195,7 @@ process_mcheck_info(unsigned long vector, unsigned long la_ptr,
printk(KERN_CRIT "machine check type: %s%s\n", printk(KERN_CRIT "machine check type: %s%s\n",
reason, mchk_header->retry ? " (retryable)" : ""); reason, mchk_header->retry ? " (retryable)" : "");
dik_show_regs(regs, NULL); dik_show_regs(get_irq_regs(), NULL);
#ifdef CONFIG_VERBOSE_MCHECK #ifdef CONFIG_VERBOSE_MCHECK
if (alpha_verbose_mcheck > 1) { if (alpha_verbose_mcheck > 1) {

View file

@ -20,7 +20,7 @@ struct pci_controller;
extern struct pci_ops apecs_pci_ops; extern struct pci_ops apecs_pci_ops;
extern void apecs_init_arch(void); extern void apecs_init_arch(void);
extern void apecs_pci_clr_err(void); extern void apecs_pci_clr_err(void);
extern void apecs_machine_check(u64, u64, struct pt_regs *); extern void apecs_machine_check(u64, u64);
extern void apecs_pci_tbi(struct pci_controller *, dma_addr_t, dma_addr_t); extern void apecs_pci_tbi(struct pci_controller *, dma_addr_t, dma_addr_t);
/* core_cia.c */ /* core_cia.c */
@ -29,7 +29,7 @@ extern void cia_init_pci(void);
extern void cia_init_arch(void); extern void cia_init_arch(void);
extern void pyxis_init_arch(void); extern void pyxis_init_arch(void);
extern void cia_kill_arch(int); extern void cia_kill_arch(int);
extern void cia_machine_check(u64, u64, struct pt_regs *); extern void cia_machine_check(u64, u64);
extern void cia_pci_tbi(struct pci_controller *, dma_addr_t, dma_addr_t); extern void cia_pci_tbi(struct pci_controller *, dma_addr_t, dma_addr_t);
/* core_irongate.c */ /* core_irongate.c */
@ -42,14 +42,14 @@ extern void irongate_machine_check(u64, u64, struct pt_regs *);
/* core_lca.c */ /* core_lca.c */
extern struct pci_ops lca_pci_ops; extern struct pci_ops lca_pci_ops;
extern void lca_init_arch(void); extern void lca_init_arch(void);
extern void lca_machine_check(u64, u64, struct pt_regs *); extern void lca_machine_check(u64, u64);
extern void lca_pci_tbi(struct pci_controller *, dma_addr_t, dma_addr_t); extern void lca_pci_tbi(struct pci_controller *, dma_addr_t, dma_addr_t);
/* core_marvel.c */ /* core_marvel.c */
extern struct pci_ops marvel_pci_ops; extern struct pci_ops marvel_pci_ops;
extern void marvel_init_arch(void); extern void marvel_init_arch(void);
extern void marvel_kill_arch(int); extern void marvel_kill_arch(int);
extern void marvel_machine_check(u64, u64, struct pt_regs *); extern void marvel_machine_check(u64, u64);
extern void marvel_pci_tbi(struct pci_controller *, dma_addr_t, dma_addr_t); extern void marvel_pci_tbi(struct pci_controller *, dma_addr_t, dma_addr_t);
extern int marvel_pa_to_nid(unsigned long); extern int marvel_pa_to_nid(unsigned long);
extern int marvel_cpuid_to_nid(int); extern int marvel_cpuid_to_nid(int);
@ -64,7 +64,7 @@ void io7_clear_errors(struct io7 *io7);
extern struct pci_ops mcpcia_pci_ops; extern struct pci_ops mcpcia_pci_ops;
extern void mcpcia_init_arch(void); extern void mcpcia_init_arch(void);
extern void mcpcia_init_hoses(void); extern void mcpcia_init_hoses(void);
extern void mcpcia_machine_check(u64, u64, struct pt_regs *); extern void mcpcia_machine_check(u64, u64);
extern void mcpcia_pci_tbi(struct pci_controller *, dma_addr_t, dma_addr_t); extern void mcpcia_pci_tbi(struct pci_controller *, dma_addr_t, dma_addr_t);
/* core_polaris.c */ /* core_polaris.c */
@ -72,21 +72,21 @@ extern struct pci_ops polaris_pci_ops;
extern int polaris_read_config_dword(struct pci_dev *, int, u32 *); extern int polaris_read_config_dword(struct pci_dev *, int, u32 *);
extern int polaris_write_config_dword(struct pci_dev *, int, u32); extern int polaris_write_config_dword(struct pci_dev *, int, u32);
extern void polaris_init_arch(void); extern void polaris_init_arch(void);
extern void polaris_machine_check(u64, u64, struct pt_regs *); extern void polaris_machine_check(u64, u64);
#define polaris_pci_tbi ((void *)0) #define polaris_pci_tbi ((void *)0)
/* core_t2.c */ /* core_t2.c */
extern struct pci_ops t2_pci_ops; extern struct pci_ops t2_pci_ops;
extern void t2_init_arch(void); extern void t2_init_arch(void);
extern void t2_kill_arch(int); extern void t2_kill_arch(int);
extern void t2_machine_check(u64, u64, struct pt_regs *); extern void t2_machine_check(u64, u64);
extern void t2_pci_tbi(struct pci_controller *, dma_addr_t, dma_addr_t); extern void t2_pci_tbi(struct pci_controller *, dma_addr_t, dma_addr_t);
/* core_titan.c */ /* core_titan.c */
extern struct pci_ops titan_pci_ops; extern struct pci_ops titan_pci_ops;
extern void titan_init_arch(void); extern void titan_init_arch(void);
extern void titan_kill_arch(int); extern void titan_kill_arch(int);
extern void titan_machine_check(u64, u64, struct pt_regs *); extern void titan_machine_check(u64, u64);
extern void titan_pci_tbi(struct pci_controller *, dma_addr_t, dma_addr_t); extern void titan_pci_tbi(struct pci_controller *, dma_addr_t, dma_addr_t);
extern struct _alpha_agp_info *titan_agp_info(void); extern struct _alpha_agp_info *titan_agp_info(void);
@ -94,14 +94,14 @@ extern struct _alpha_agp_info *titan_agp_info(void);
extern struct pci_ops tsunami_pci_ops; extern struct pci_ops tsunami_pci_ops;
extern void tsunami_init_arch(void); extern void tsunami_init_arch(void);
extern void tsunami_kill_arch(int); extern void tsunami_kill_arch(int);
extern void tsunami_machine_check(u64, u64, struct pt_regs *); extern void tsunami_machine_check(u64, u64);
extern void tsunami_pci_tbi(struct pci_controller *, dma_addr_t, dma_addr_t); extern void tsunami_pci_tbi(struct pci_controller *, dma_addr_t, dma_addr_t);
/* core_wildfire.c */ /* core_wildfire.c */
extern struct pci_ops wildfire_pci_ops; extern struct pci_ops wildfire_pci_ops;
extern void wildfire_init_arch(void); extern void wildfire_init_arch(void);
extern void wildfire_kill_arch(int); extern void wildfire_kill_arch(int);
extern void wildfire_machine_check(u64, u64, struct pt_regs *); extern void wildfire_machine_check(u64, u64);
extern void wildfire_pci_tbi(struct pci_controller *, dma_addr_t, dma_addr_t); extern void wildfire_pci_tbi(struct pci_controller *, dma_addr_t, dma_addr_t);
extern int wildfire_pa_to_nid(unsigned long); extern int wildfire_pa_to_nid(unsigned long);
extern int wildfire_cpuid_to_nid(int); extern int wildfire_cpuid_to_nid(int);
@ -214,5 +214,4 @@ extern struct mcheck_info
#endif #endif
extern void process_mcheck_info(unsigned long vector, unsigned long la_ptr, extern void process_mcheck_info(unsigned long vector, unsigned long la_ptr,
struct pt_regs *regs, const char *machine, const char *machine, int expected);
int expected);

View file

@ -244,7 +244,7 @@ jensen_init_arch(void)
} }
static void static void
jensen_machine_check (u64 vector, u64 la, struct pt_regs *regs) jensen_machine_check (u64 vector, u64 la)
{ {
printk(KERN_CRIT "Machine check\n"); printk(KERN_CRIT "Machine check\n");
} }

View file

@ -182,8 +182,7 @@ mikasa_map_irq(struct pci_dev *dev, u8 slot, u8 pin)
#if defined(CONFIG_ALPHA_GENERIC) || !defined(CONFIG_ALPHA_PRIMO) #if defined(CONFIG_ALPHA_GENERIC) || !defined(CONFIG_ALPHA_PRIMO)
static void static void
mikasa_apecs_machine_check(unsigned long vector, unsigned long la_ptr, mikasa_apecs_machine_check(unsigned long vector, unsigned long la_ptr)
struct pt_regs * regs)
{ {
#define MCHK_NO_DEVSEL 0x205U #define MCHK_NO_DEVSEL 0x205U
#define MCHK_NO_TABT 0x204U #define MCHK_NO_TABT 0x204U
@ -202,7 +201,7 @@ mikasa_apecs_machine_check(unsigned long vector, unsigned long la_ptr,
mb(); mb();
code = mchk_header->code; code = mchk_header->code;
process_mcheck_info(vector, la_ptr, regs, "MIKASA APECS", process_mcheck_info(vector, la_ptr, "MIKASA APECS",
(mcheck_expected(0) (mcheck_expected(0)
&& (code == MCHK_NO_DEVSEL && (code == MCHK_NO_DEVSEL
|| code == MCHK_NO_TABT))); || code == MCHK_NO_TABT)));

View file

@ -124,8 +124,7 @@ naut_sys_machine_check(unsigned long vector, unsigned long la_ptr,
in the system. They are analysed separately but all starts here. */ in the system. They are analysed separately but all starts here. */
void void
nautilus_machine_check(unsigned long vector, unsigned long la_ptr, nautilus_machine_check(unsigned long vector, unsigned long la_ptr)
struct pt_regs *regs)
{ {
char *mchk_class; char *mchk_class;
@ -165,7 +164,7 @@ nautilus_machine_check(unsigned long vector, unsigned long la_ptr,
else if (vector == SCB_Q_SYSMCHK) else if (vector == SCB_Q_SYSMCHK)
mchk_class = "Fatal"; mchk_class = "Fatal";
else { else {
ev6_machine_check(vector, la_ptr, regs); ev6_machine_check(vector, la_ptr);
return; return;
} }
@ -173,7 +172,7 @@ nautilus_machine_check(unsigned long vector, unsigned long la_ptr,
"[%s System Machine Check (NMI)]\n", "[%s System Machine Check (NMI)]\n",
vector, mchk_class); vector, mchk_class);
naut_sys_machine_check(vector, la_ptr, regs); naut_sys_machine_check(vector, la_ptr, get_irq_regs());
/* Tell the PALcode to clear the machine check */ /* Tell the PALcode to clear the machine check */
draina(); draina();

View file

@ -264,8 +264,7 @@ noritake_swizzle(struct pci_dev *dev, u8 *pinp)
#if defined(CONFIG_ALPHA_GENERIC) || !defined(CONFIG_ALPHA_PRIMO) #if defined(CONFIG_ALPHA_GENERIC) || !defined(CONFIG_ALPHA_PRIMO)
static void static void
noritake_apecs_machine_check(unsigned long vector, unsigned long la_ptr, noritake_apecs_machine_check(unsigned long vector, unsigned long la_ptr)
struct pt_regs * regs)
{ {
#define MCHK_NO_DEVSEL 0x205U #define MCHK_NO_DEVSEL 0x205U
#define MCHK_NO_TABT 0x204U #define MCHK_NO_TABT 0x204U
@ -284,7 +283,7 @@ noritake_apecs_machine_check(unsigned long vector, unsigned long la_ptr,
mb(); mb();
code = mchk_header->code; code = mchk_header->code;
process_mcheck_info(vector, la_ptr, regs, "NORITAKE APECS", process_mcheck_info(vector, la_ptr, "NORITAKE APECS",
(mcheck_expected(0) (mcheck_expected(0)
&& (code == MCHK_NO_DEVSEL && (code == MCHK_NO_DEVSEL
|| code == MCHK_NO_TABT))); || code == MCHK_NO_TABT)));

View file

@ -15,7 +15,6 @@
struct task_struct; struct task_struct;
struct mm_struct; struct mm_struct;
struct pt_regs;
struct vm_area_struct; struct vm_area_struct;
struct linux_hose_info; struct linux_hose_info;
struct pci_dev; struct pci_dev;
@ -80,7 +79,7 @@ struct alpha_machine_vector
void (*update_irq_hw)(unsigned long, unsigned long, int); void (*update_irq_hw)(unsigned long, unsigned long, int);
void (*ack_irq)(unsigned long); void (*ack_irq)(unsigned long);
void (*device_interrupt)(unsigned long vector); void (*device_interrupt)(unsigned long vector);
void (*machine_check)(u64 vector, u64 la, struct pt_regs *regs); void (*machine_check)(u64 vector, u64 la);
void (*smp_callin)(void); void (*smp_callin)(void);
void (*init_arch)(void); void (*init_arch)(void);