Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 39129
b: refs/heads/master
c: 4fa1970
h: refs/heads/master
i:
  39127: 3a2d09f
v: v3
  • Loading branch information
Al Viro authored and Linus Torvalds committed Oct 8, 2006
1 parent e57900f commit 0936a55
Show file tree
Hide file tree
Showing 21 changed files with 62 additions and 72 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 3dbb8c62897f96bbf5d4e4fe649e5d3791fc33c5
refs/heads/master: 4fa1970a23bf8fc68e86b65a87c32556e20a6be6
5 changes: 2 additions & 3 deletions trunk/arch/alpha/kernel/core_apecs.c
Original file line number Diff line number Diff line change
Expand Up @@ -387,8 +387,7 @@ apecs_pci_clr_err(void)
}

void
apecs_machine_check(unsigned long vector, unsigned long la_ptr,
struct pt_regs * regs)
apecs_machine_check(unsigned long vector, unsigned long la_ptr)
{
struct el_common *mchk_header;
struct el_apecs_procdata *mchk_procdata;
Expand All @@ -412,7 +411,7 @@ apecs_machine_check(unsigned long vector, unsigned long la_ptr,
wrmces(0x7); /* reset machine check pending flag */
mb();

process_mcheck_info(vector, la_ptr, regs, "APECS",
process_mcheck_info(vector, la_ptr, "APECS",
(mcheck_expected(0)
&& (mchk_sysdata->epic_dcsr & 0x0c00UL)));
}
5 changes: 2 additions & 3 deletions trunk/arch/alpha/kernel/core_cia.c
Original file line number Diff line number Diff line change
Expand Up @@ -1192,8 +1192,7 @@ cia_decode_mchk(unsigned long la_ptr)
}

void
cia_machine_check(unsigned long vector, unsigned long la_ptr,
struct pt_regs * regs)
cia_machine_check(unsigned long vector, unsigned long la_ptr)
{
int expected;

Expand All @@ -1208,5 +1207,5 @@ cia_machine_check(unsigned long vector, unsigned long la_ptr,
expected = mcheck_expected(0);
if (!expected && vector == 0x660)
expected = cia_decode_mchk(la_ptr);
process_mcheck_info(vector, la_ptr, regs, "CIA", expected);
process_mcheck_info(vector, la_ptr, "CIA", expected);
}
6 changes: 3 additions & 3 deletions trunk/arch/alpha/kernel/core_lca.c
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@
#include <linux/tty.h>

#include <asm/ptrace.h>
#include <asm/irq_regs.h>
#include <asm/smp.h>

#include "proto.h"
Expand Down Expand Up @@ -386,8 +387,7 @@ ioc_error(__u32 stat0, __u32 stat1)
}

void
lca_machine_check(unsigned long vector, unsigned long la_ptr,
struct pt_regs *regs)
lca_machine_check(unsigned long vector, unsigned long la_ptr)
{
const char * reason;
union el_lca el;
Expand All @@ -397,7 +397,7 @@ lca_machine_check(unsigned long vector, unsigned long la_ptr,
wrmces(rdmces()); /* reset machine check pending flag */

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
Expand Down
5 changes: 2 additions & 3 deletions trunk/arch/alpha/kernel/core_mcpcia.c
Original file line number Diff line number Diff line change
Expand Up @@ -572,8 +572,7 @@ mcpcia_print_system_area(unsigned long la_ptr)
}

void
mcpcia_machine_check(unsigned long vector, unsigned long la_ptr,
struct pt_regs * regs)
mcpcia_machine_check(unsigned long vector, unsigned long la_ptr)
{
struct el_common *mchk_header;
struct el_MCPCIA_uncorrected_frame_mcheck *mchk_logout;
Expand Down Expand Up @@ -610,7 +609,7 @@ mcpcia_machine_check(unsigned long vector, unsigned long la_ptr,
wrmces(0x7);
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) {
mcpcia_print_uncorrectable(mchk_logout);
mcpcia_print_system_area(la_ptr);
Expand Down
5 changes: 2 additions & 3 deletions trunk/arch/alpha/kernel/core_polaris.c
Original file line number Diff line number Diff line change
Expand Up @@ -187,8 +187,7 @@ polaris_pci_clr_err(void)
}

void
polaris_machine_check(unsigned long vector, unsigned long la_ptr,
struct pt_regs * regs)
polaris_machine_check(unsigned long vector, unsigned long la_ptr)
{
/* Clear the error before any reporting. */
mb();
Expand All @@ -198,6 +197,6 @@ polaris_machine_check(unsigned long vector, unsigned long la_ptr,
wrmces(0x7);
mb();

process_mcheck_info(vector, la_ptr, regs, "POLARIS",
process_mcheck_info(vector, la_ptr, "POLARIS",
mcheck_expected(0));
}
5 changes: 2 additions & 3 deletions trunk/arch/alpha/kernel/core_t2.c
Original file line number Diff line number Diff line change
Expand Up @@ -551,8 +551,7 @@ t2_clear_errors(int cpu)
* Hence all the taken/expected/any_expected/last_taken stuff...
*/
void
t2_machine_check(unsigned long vector, unsigned long la_ptr,
struct pt_regs * regs)
t2_machine_check(unsigned long vector, unsigned long la_ptr)
{
int cpu = smp_processor_id();
#ifdef CONFIG_VERBOSE_MCHECK
Expand Down Expand Up @@ -618,5 +617,5 @@ t2_machine_check(unsigned long vector, unsigned long la_ptr,
}
#endif

process_mcheck_info(vector, la_ptr, regs, "T2", mcheck_expected(cpu));
process_mcheck_info(vector, la_ptr, "T2", mcheck_expected(cpu));
}
5 changes: 2 additions & 3 deletions trunk/arch/alpha/kernel/core_tsunami.c
Original file line number Diff line number Diff line change
Expand Up @@ -443,8 +443,7 @@ tsunami_pci_clr_err(void)
}

void
tsunami_machine_check(unsigned long vector, unsigned long la_ptr,
struct pt_regs * regs)
tsunami_machine_check(unsigned long vector, unsigned long la_ptr)
{
/* Clear error before any reporting. */
mb();
Expand All @@ -454,6 +453,6 @@ tsunami_machine_check(unsigned long vector, unsigned long la_ptr,
wrmces(0x7);
mb();

process_mcheck_info(vector, la_ptr, regs, "TSUNAMI",
process_mcheck_info(vector, la_ptr, "TSUNAMI",
mcheck_expected(smp_processor_id()));
}
5 changes: 2 additions & 3 deletions trunk/arch/alpha/kernel/core_wildfire.c
Original file line number Diff line number Diff line change
Expand Up @@ -322,8 +322,7 @@ wildfire_init_arch(void)
}

void
wildfire_machine_check(unsigned long vector, unsigned long la_ptr,
struct pt_regs * regs)
wildfire_machine_check(unsigned long vector, unsigned long la_ptr)
{
mb();
mb(); /* magic */
Expand All @@ -332,7 +331,7 @@ wildfire_machine_check(unsigned long vector, unsigned long la_ptr,
wrmces(0x7);
mb();

process_mcheck_info(vector, la_ptr, regs, "WILDFIRE",
process_mcheck_info(vector, la_ptr, "WILDFIRE",
mcheck_expected(smp_processor_id()));
}

Expand Down
5 changes: 3 additions & 2 deletions trunk/arch/alpha/kernel/err_ev6.c
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
#include <linux/sched.h>

#include <asm/io.h>
#include <asm/irq_regs.h>
#include <asm/hwrpb.h>
#include <asm/smp.h>
#include <asm/err_common.h>
Expand Down Expand Up @@ -229,7 +230,7 @@ ev6_process_logout_frame(struct el_common *mchk_header, int print)
}

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;

Expand Down Expand Up @@ -260,7 +261,7 @@ ev6_machine_check(u64 vector, u64 la_ptr, struct pt_regs *regs)
(unsigned int)vector, (int)smp_processor_id());

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;
}
Expand Down
2 changes: 1 addition & 1 deletion trunk/arch/alpha/kernel/err_ev7.c
Original file line number Diff line number Diff line change
Expand Up @@ -118,7 +118,7 @@ ev7_collect_logout_frame_subpackets(struct el_subpacket *el_ptr,
}

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;
char *saved_err_prefix = err_print_prefix;
Expand Down
10 changes: 5 additions & 5 deletions trunk/arch/alpha/kernel/err_impl.h
Original file line number Diff line number Diff line change
Expand Up @@ -60,26 +60,26 @@ extern struct ev7_lf_subpackets *
ev7_collect_logout_frame_subpackets(struct el_subpacket *,
struct ev7_lf_subpackets *);
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
*/
extern void ev6_register_error_handlers(void);
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
*/
extern void marvel_machine_check(u64, u64, struct pt_regs *);
extern void marvel_machine_check(u64, u64);
extern void marvel_register_error_handlers(void);

/*
* err_titan.c
*/
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 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);
4 changes: 2 additions & 2 deletions trunk/arch/alpha/kernel/err_marvel.c
Original file line number Diff line number Diff line change
Expand Up @@ -1042,7 +1042,7 @@ marvel_process_logout_frame(struct ev7_lf_subpackets *lf_subpackets, int print)
}

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;
int (*process_frame)(struct ev7_lf_subpackets *, int) = NULL;
Expand Down Expand Up @@ -1077,7 +1077,7 @@ marvel_machine_check(u64 vector, u64 la_ptr, struct pt_regs *regs)

default:
/* Don't know it - pass it up. */
ev7_machine_check(vector, la_ptr, regs);
ev7_machine_check(vector, la_ptr);
return;
}

Expand Down
14 changes: 7 additions & 7 deletions trunk/arch/alpha/kernel/err_titan.c
Original file line number Diff line number Diff line change
Expand Up @@ -379,7 +379,7 @@ titan_process_logout_frame(struct el_common *mchk_header, int print)
}

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_TITAN_sysdata_mcheck *tmchk =
Expand Down Expand Up @@ -408,7 +408,7 @@ titan_machine_check(u64 vector, u64 la_ptr, struct pt_regs *regs)
* Only handle system errors here
*/
if ((vector != SCB_Q_SYSMCHK) && (vector != SCB_Q_SYSERR)) {
ev6_machine_check(vector, la_ptr, regs);
ev6_machine_check(vector, la_ptr);
return;
}

Expand Down Expand Up @@ -442,7 +442,7 @@ titan_machine_check(u64 vector, u64 la_ptr, struct pt_regs *regs)
#ifdef CONFIG_VERBOSE_MCHECK
titan_process_logout_frame(mchk_header, alpha_verbose_mcheck);
if (alpha_verbose_mcheck)
dik_show_regs(regs, NULL);
dik_show_regs(get_irq_regs(), NULL);
#endif /* CONFIG_VERBOSE_MCHECK */

err_print_prefix = saved_err_prefix;
Expand All @@ -452,7 +452,7 @@ titan_machine_check(u64 vector, u64 la_ptr, struct pt_regs *regs)
* machine checks to interrupts
*/
irqmask = tmchk->c_dirx & TITAN_MCHECK_INTERRUPT_MASK;
titan_dispatch_irqs(irqmask, regs);
titan_dispatch_irqs(irqmask, get_irq_regs());
}


Expand Down Expand Up @@ -701,7 +701,7 @@ privateer_process_logout_frame(struct el_common *mchk_header, int print)
}

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_TITAN_sysdata_mcheck *tmchk =
Expand All @@ -723,7 +723,7 @@ privateer_machine_check(u64 vector, u64 la_ptr, struct pt_regs *regs)
* Only handle system events here.
*/
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
Expand All @@ -746,7 +746,7 @@ privateer_machine_check(u64 vector, u64 la_ptr, struct pt_regs *regs)
/*
* Dispatch the interrupt(s).
*/
titan_dispatch_irqs(irqmask, regs);
titan_dispatch_irqs(irqmask, get_irq_regs());

/*
* Release the logout frame.
Expand Down
11 changes: 6 additions & 5 deletions trunk/arch/alpha/kernel/irq_alpha.c
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,9 @@ do_entInt(unsigned long type, unsigned long vector,
set_irq_regs(old_regs);
return;
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;
case 3:
old_regs = set_irq_regs(regs);
Expand Down Expand Up @@ -125,8 +127,7 @@ struct mcheck_info __mcheck_info;

void
process_mcheck_info(unsigned long vector, unsigned long la_ptr,
struct pt_regs *regs, const char *machine,
int expected)
const char *machine, int expected)
{
struct el_common *mchk_header;
const char *reason;
Expand All @@ -153,7 +154,7 @@ process_mcheck_info(unsigned long vector, unsigned long 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",
machine, vector, regs->pc, mchk_header->code);
machine, vector, get_irq_regs()->pc, mchk_header->code);

switch (mchk_header->code) {
/* Machine check reasons. Defined according to PALcode sources. */
Expand Down Expand Up @@ -194,7 +195,7 @@ process_mcheck_info(unsigned long vector, unsigned long la_ptr,
printk(KERN_CRIT "machine check type: %s%s\n",
reason, mchk_header->retry ? " (retryable)" : "");

dik_show_regs(regs, NULL);
dik_show_regs(get_irq_regs(), NULL);

#ifdef CONFIG_VERBOSE_MCHECK
if (alpha_verbose_mcheck > 1) {
Expand Down
Loading

0 comments on commit 0936a55

Please sign in to comment.