Re: [PATCH 8/8] x86_64: Support for new UV apic

Ingo Molnar
2008-03-28T20:15:56Z

* Jack Steiner <steiner@sgi.com> wrote:

> Index: linux/arch/x86/kernel/apic_64.c
> ===================================================================
> --- linux.orig/arch/x86/kernel/apic_64.c 2008-03-28 13:00:22.000000000 -0500
> +++ linux/arch/x86/kernel/apic_64.c 2008-03-28 13:06:12.000000000 -0500
> @@ -738,6 +738,7 @@ void __cpuinit setup_local_APIC(void)
> unsigned int value;
> int i, j;
>
> + preempt_disable();
> value = apic_read(APIC_LVR);
>
> BUILD_BUG_ON((SPURIOUS_APIC_VECTOR & 0x0f) != 0x0f);
> @@ -831,6 +832,7 @@ void __cpuinit setup_local_APIC(void)
> else
> value = APIC_DM_NMI | APIC_LVT_MASKED;
> apic_write(APIC_LVT1, value);
> + preempt_enable();
> }

hm, this looks a bit weird - why are all the preempt-disable/enable
calls needed?

Ingo