2005-09-14 04:46:42

by Simon Horman

[permalink] [raw]
Subject: Re: [patch 04/09] x86_64: avoid SMP boot up race

Hi,

I'm wondering if anyone could comment on if this could
be conceived as a security bug. My initial instinct was
yes, but on further considertation I can't conceive
a way it could be exploited, well not by anyone
who couldn't DoS the box in any number of other ways,
including shutting it down.

On Wed, Jun 08, 2005 at 05:04:08PM -0700, Chris Wright wrote:
> Keep interrupts disabled during smp bootup
>
> This avoids a race that breaks SMP bootup on some machines.
> The race is not fully plugged (that is only done with much
> more changes in 2.6.12), but should be good enough
> for most people.
>
> Keeping the interrupts disabled here is ok because we
> don't rely on the timer interrupt for local APIC
> timer setup, but always read the timer registers
> directly.
>
> (originally from Rusty Russell iirc)
>
> Signed-off-by: [email protected]
> Signed-off-by: Chris Wright <[email protected]>
>
> diff -u linux/arch/x86_64/kernel/apic.c-o linux/arch/x86_64/kernel/apic.c
> --- linux/arch/x86_64/kernel/apic.c-o 2005-05-31 16:40:01.000000000 +0200
> +++ linux/arch/x86_64/kernel/apic.c 2005-05-31 16:44:05.000000000 +0200
> @@ -775,9 +775,7 @@
>
> void __init setup_secondary_APIC_clock(void)
> {
> - local_irq_disable(); /* FIXME: Do we need this? --RR */
> setup_APIC_timer(calibration_result);
> - local_irq_enable();
> }
>
> void __init disable_APIC_timer(void)
> diff -u linux/arch/x86_64/kernel/smpboot.c-o linux-2.6.11/arch/x86_64/kernel/smpboot.c
> --- linux/arch/x86_64/kernel/smpboot.c-o 2005-03-21 14:04:11.000000000 +0100
> +++ linux/arch/x86_64/kernel/smpboot.c 2005-05-31 16:44:07.000000000 +0200
> @@ -309,8 +309,6 @@
> Dprintk("CALLIN, before setup_local_APIC().\n");
> setup_local_APIC();
>
> - local_irq_enable();
> -
> /*
> * Get our bogomips.
> */
> @@ -324,8 +322,6 @@
> */
> smp_store_cpu_info(cpuid);
>
> - local_irq_disable();
> -
> /*
> * Allow the master to continue.
> */
>
> -
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to [email protected]
> More majordomo info at http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at http://www.tux.org/lkml/
>

--
Horms


2005-09-14 06:30:15

by Chris Wright

[permalink] [raw]
Subject: Re: [patch 04/09] x86_64: avoid SMP boot up race

* Horms ([email protected]) wrote:
> I'm wondering if anyone could comment on if this could
> be conceived as a security bug. My initial instinct was
> yes, but on further considertation I can't conceive
> a way it could be exploited, well not by anyone
> who couldn't DoS the box in any number of other ways,
> including shutting it down.

That code is run early during boot up when bringing online a cpu.
If you can control this, you own the box.