Thanks, I've merged in these changes and added your text to the header.
I'll upload soon.
-Corey
Bill Rugolsky Jr. wrote:
> Corey,
>
> NMI compile fixes for x86_64, and for x86 with CONFIG_X86_HT disabled.
>
> Signed-off-by: Bill Rugolsky <[EMAIL PROTECTED]>
>
> --- linux-2.6.17/arch/x86_64/kernel/crash.c 2006-07-06 08:25:02.000000000
> -0400
> +++ linux-2.6.17/arch/x86_64/kernel/crash.c 2006-07-06 08:25:46.000000000
> -0400
> @@ -95,7 +95,8 @@ static void crash_save_self(struct pt_re
> #ifdef CONFIG_SMP
> static atomic_t waiting_for_crash_ipi;
>
> -static int crash_nmi_callback(struct pt_regs *regs, int cpu)
> +static int crash_nmi_callback(void *devid, struct pt_regs *regs, int cpu,
> + int handled)
> {
> /*
> * Don't do anything if this handler is invoked on crashing cpu.
> @@ -103,7 +104,7 @@ static int crash_nmi_callback(struct pt_
> * an NMI if system was initially booted with nmi_watchdog parameter.
> */
> if (cpu == crashing_cpu)
> - return 1;
> + return NOTIFY_DONE;
> local_irq_disable();
>
> crash_save_this_cpu(regs, cpu);
> @@ -113,7 +114,7 @@ static int crash_nmi_callback(struct pt_
> for(;;)
> asm("hlt");
>
> - return 1;
> + return NOTIFY_OK;
> }
>
> static void smp_send_nmi_allbutself(void)
> @@ -127,12 +128,23 @@ static void smp_send_nmi_allbutself(void
> * cpu hotplug shouldn't matter.
> */
>
> +static struct nmi_handler crash_nmi_handler =
> +{
> + .link = LIST_HEAD_INIT(crash_nmi_handler.link),
> + .dev_name = "crash",
> + .dev_id = NULL,
> + .handler = crash_nmi_callback,
> + .priority = NMI_HANDLER_MAX_PRIORITY /* Highest possible priority */
> +};
> +
> static void nmi_shootdown_cpus(void)
> {
> unsigned long msecs;
>
> atomic_set(&waiting_for_crash_ipi, num_online_cpus() - 1);
> - set_nmi_callback(crash_nmi_callback);
> +
> + /* Would it be better to replace the trap vector here? */
> + request_nmi(&crash_nmi_handler);
>
> /*
> * Ensure the new callback function is set before sending
> --- linux-2.6.17/arch/i386/kernel/nmi.c 2006-07-06 08:25:02.000000000
> -0400
> +++ linux-2.6.17/arch/i386/kernel/nmi.c 2006-07-06 08:26:43.000000000
> -0400
> @@ -515,9 +515,11 @@ static int p4_watchdog_reset(int handled
> {
> unsigned int low, high;
> int ovf;
> +#ifdef CONFIG_X86_HT
> int phys = phys_proc_id[cpu];
>
> spin_lock(&p4_nmiwd_lock[phys]);
> +#endif
> rdmsr(MSR_P4_IQ_CCCR0, low, high);
> ovf = (low & P4_CCCR_OVF) != 0;
> if (ovf) {
> @@ -550,9 +552,9 @@ static int p4_watchdog_reset(int handled
> p4_log_nmiwd_cnt[cpu] = p4_phys_nmiwd_cnt[phys];
> apic_write(APIC_LVTPC, APIC_DM_NMI);
> }
> -#endif
>
> spin_unlock(&p4_nmiwd_lock[phys]);
> +#endif
>
> return ovf;
> }
> @@ -580,8 +582,8 @@ static int setup_p4_watchdog(void)
> spin_lock_init(&p4_nmiwd_lock[cpu]);
> }
> wdog_initialized = 1;
> - }
> #endif
> + }
>
> if (!(misc_enable & MSR_P4_MISC_ENABLE_PEBS_UNAVAIL))
> clear_msr_range(0x3F1, 2);
> --- linux-2.6.17/drivers/serial/8250.c 2006-07-06 08:25:02.000000000
> -0400
> +++ linux-2.6.17/drivers/serial/8250.c 2006-07-06 08:25:46.000000000
> -0400
> @@ -39,7 +39,7 @@
> #include <linux/serial_core.h>
> #include <linux/serial.h>
> #include <linux/serial_8250.h>
> -#include <linux/nmi.h>
> +#include <linux/nmi_watchdog.h>
> #include <linux/mutex.h>
>
> #include <asm/io.h>
>
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
Openipmi-developer mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/openipmi-developer