public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [2.6 patch] i386: KEXEC must depend on (!SMP && X86_LOCAL_APIC)
@ 2006-06-28 16:55 Adrian Bunk
  2006-06-28 17:35 ` Eric W. Biederman
  0 siblings, 1 reply; 4+ messages in thread
From: Adrian Bunk @ 2006-06-28 16:55 UTC (permalink / raw)
  To: ebiederm; +Cc: linux-kernel, James.Bottomley

This patch fixes the following issue with CONFIG_SMP=y and 
CONFIG_X86_VOYAGER=y:

<--  snip  -->

...
  CC      arch/i386/kernel/crash.o
arch/i386/kernel/crash.c: In function ‘crash_nmi_callback’:
arch/i386/kernel/crash.c:113: error: implicit declaration of function ‘disable_local_APIC’

<--  snip  -->

Signed-off-by: Adrian Bunk <bunk@stusta.de>

--- linux-2.6.17-mm3-full/arch/i386/Kconfig.old	2006-06-28 18:13:15.000000000 +0200
+++ linux-2.6.17-mm3-full/arch/i386/Kconfig	2006-06-28 18:21:32.000000000 +0200
@@ -748,7 +748,7 @@
 
 config KEXEC
 	bool "kexec system call (EXPERIMENTAL)"
-	depends on EXPERIMENTAL
+	depends on EXPERIMENTAL && (!SMP || X86_LOCAL_APIC)
 	help
 	  kexec is a system call that implements the ability to shutdown your
 	  current kernel, and to start another kernel.  It is like a reboot


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [2.6 patch] i386: KEXEC must depend on (!SMP && X86_LOCAL_APIC)
  2006-06-28 16:55 [2.6 patch] i386: KEXEC must depend on (!SMP && X86_LOCAL_APIC) Adrian Bunk
@ 2006-06-28 17:35 ` Eric W. Biederman
  2006-06-28 20:49   ` Adrian Bunk
  0 siblings, 1 reply; 4+ messages in thread
From: Eric W. Biederman @ 2006-06-28 17:35 UTC (permalink / raw)
  To: Adrian Bunk; +Cc: linux-kernel, James.Bottomley


Adrian Bunk <bunk@stusta.de> writes:
> This patch fixes the following issue with CONFIG_SMP=y and 
> CONFIG_X86_VOYAGER=y:
>
> <--  snip  -->
>
> ...
>   CC      arch/i386/kernel/crash.o
> arch/i386/kernel/crash.c: In function ‘crash_nmi_callback’:
> arch/i386/kernel/crash.c:113: error: implicit declaration of function
> ‘disable_local_APIC’
>
> <--  snip  -->

I think the patch below more correctly captures the dependency.

In truth that call to disable_local_APIC() is a bug but the kernel
isn't ready yet to boot in apic only mode, so it remains until
the apic initialization can be moved into init_IRQ.

Does this sound good?

Eric


diff --git a/arch/i386/kernel/crash.c b/arch/i386/kernel/crash.c
index 48f0f62..5b96f03 100644
--- a/arch/i386/kernel/crash.c
+++ b/arch/i386/kernel/crash.c
@@ -90,7 +90,7 @@ static void crash_save_self(struct pt_re
        crash_save_this_cpu(regs, cpu);
 }
 
-#ifdef CONFIG_SMP
+#if defined(CONFIG_SMP) && defined(CONFIG_X86_LOCAL_APIC)
 static atomic_t waiting_for_crash_ipi;
 
 static int crash_nmi_callback(struct pt_regs *regs, int cpu)


^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [2.6 patch] i386: KEXEC must depend on (!SMP && X86_LOCAL_APIC)
  2006-06-28 17:35 ` Eric W. Biederman
@ 2006-06-28 20:49   ` Adrian Bunk
  2006-06-29  0:40     ` Eric W. Biederman
  0 siblings, 1 reply; 4+ messages in thread
From: Adrian Bunk @ 2006-06-28 20:49 UTC (permalink / raw)
  To: Eric W. Biederman; +Cc: linux-kernel, James.Bottomley

On Wed, Jun 28, 2006 at 11:35:15AM -0600, Eric W. Biederman wrote:
> 
> Adrian Bunk <bunk@stusta.de> writes:
> > This patch fixes the following issue with CONFIG_SMP=y and 
> > CONFIG_X86_VOYAGER=y:
> >
> > <--  snip  -->
> >
> > ...
> >   CC      arch/i386/kernel/crash.o
> > arch/i386/kernel/crash.c: In function ‘crash_nmi_callback’:
> > arch/i386/kernel/crash.c:113: error: implicit declaration of function
> > ‘disable_local_APIC’
> >
> > <--  snip  -->
> 
> I think the patch below more correctly captures the dependency.
> 
> In truth that call to disable_local_APIC() is a bug but the kernel
> isn't ready yet to boot in apic only mode, so it remains until
> the apic initialization can be moved into init_IRQ.
> 
> Does this sound good?

It does compile (I can't test it due to lack of hardware).

> Eric

cu
Adrian

-- 

       "Is there not promise of rain?" Ling Tan asked suddenly out
        of the darkness. There had been need of rain for many days.
       "Only a promise," Lao Er said.
                                       Pearl S. Buck - Dragon Seed


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [2.6 patch] i386: KEXEC must depend on (!SMP && X86_LOCAL_APIC)
  2006-06-28 20:49   ` Adrian Bunk
@ 2006-06-29  0:40     ` Eric W. Biederman
  0 siblings, 0 replies; 4+ messages in thread
From: Eric W. Biederman @ 2006-06-29  0:40 UTC (permalink / raw)
  To: Adrian Bunk; +Cc: linux-kernel, James.Bottomley

Adrian Bunk <bunk@stusta.de> writes:

> On Wed, Jun 28, 2006 at 11:35:15AM -0600, Eric W. Biederman wrote:
>> 
>> Adrian Bunk <bunk@stusta.de> writes:
>> > This patch fixes the following issue with CONFIG_SMP=y and 
>> > CONFIG_X86_VOYAGER=y:
>> >
>> > <--  snip  -->
>> >
>> > ...
>> >   CC      arch/i386/kernel/crash.o
>> > arch/i386/kernel/crash.c: In function ‘crash_nmi_callback’:
>> > arch/i386/kernel/crash.c:113: error: implicit declaration of function
>> > ‘disable_local_APIC’
>> >
>> > <--  snip  -->
>> 
>> I think the patch below more correctly captures the dependency.
>> 
>> In truth that call to disable_local_APIC() is a bug but the kernel
>> isn't ready yet to boot in apic only mode, so it remains until
>> the apic initialization can be moved into init_IRQ.
>> 
>> Does this sound good?
>
> It does compile (I can't test it due to lack of hardware).

The code that is disabled is really an optimization to get a higher
quality crash dump so we should be ok.

At the very least it should come very close to working for anyone on
that subarch.

Eric

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2006-06-29  0:40 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2006-06-28 16:55 [2.6 patch] i386: KEXEC must depend on (!SMP && X86_LOCAL_APIC) Adrian Bunk
2006-06-28 17:35 ` Eric W. Biederman
2006-06-28 20:49   ` Adrian Bunk
2006-06-29  0:40     ` Eric W. Biederman

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox