Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 75093
b: refs/heads/master
c: ed5d402
h: refs/heads/master
i:
  75091: 8eb0050
v: v3
  • Loading branch information
Hidetoshi Seto authored and Tony Luck committed Dec 19, 2007
1 parent eea4cbd commit 19bc050
Show file tree
Hide file tree
Showing 2 changed files with 34 additions and 1 deletion.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 285fbd66330cd5899f4e607e3e65ab5921ddabf0
refs/heads/master: ed5d4026ae6f51bec25e03a891a7d59c492577ab
33 changes: 33 additions & 0 deletions trunk/arch/ia64/kernel/mca.c
Original file line number Diff line number Diff line change
Expand Up @@ -75,6 +75,7 @@
#include <linux/workqueue.h>
#include <linux/cpumask.h>
#include <linux/kdebug.h>
#include <linux/cpu.h>

#include <asm/delay.h>
#include <asm/machvec.h>
Expand Down Expand Up @@ -1813,6 +1814,36 @@ ia64_mca_cpu_init(void *cpu_data)
PAGE_KERNEL));
}

static void __cpuinit ia64_mca_cmc_vector_adjust(void *dummy)
{
unsigned long flags;

local_irq_save(flags);
if (!cmc_polling_enabled)
ia64_mca_cmc_vector_enable(NULL);
local_irq_restore(flags);
}

static int __cpuinit mca_cpu_callback(struct notifier_block *nfb,
unsigned long action,
void *hcpu)
{
int hotcpu = (unsigned long) hcpu;

switch (action) {
case CPU_ONLINE:
case CPU_ONLINE_FROZEN:
smp_call_function_single(hotcpu, ia64_mca_cmc_vector_adjust,
NULL, 1, 0);
break;
}
return NOTIFY_OK;
}

static struct notifier_block mca_cpu_notifier __cpuinitdata = {
.notifier_call = mca_cpu_callback
};

/*
* ia64_mca_init
*
Expand Down Expand Up @@ -1996,6 +2027,8 @@ ia64_mca_late_init(void)
if (!mca_init)
return 0;

register_hotcpu_notifier(&mca_cpu_notifier);

/* Setup the CMCI/P vector and handler */
init_timer(&cmc_poll_timer);
cmc_poll_timer.function = ia64_mca_cmc_poll;
Expand Down

0 comments on commit 19bc050

Please sign in to comment.