[PATCH 1/3] x86: add lapic_shutdown for x86_64

Vivek Goyal vgoyal at in.ibm.com
Wed Oct 24 02:29:33 EDT 2007


On Fri, Oct 19, 2007 at 06:21:11PM -0700, Hiroshi Shimamoto wrote:
> From: Hiroshi Shimamoto <h-shimamoto at ct.jp.nec.com>
> 
> Signed-off-by: Hiroshi Shimamoto <h-shimamoto at ct.jp.nec.com>
> ---
>  arch/x86/kernel/apic_64.c |   14 ++++++++++++++
>  include/asm-x86/apic_64.h |    1 +
>  2 files changed, 15 insertions(+), 0 deletions(-)
> 
> diff --git a/arch/x86/kernel/apic_64.c b/arch/x86/kernel/apic_64.c
> index f47bc49..f28ccb5 100644
> --- a/arch/x86/kernel/apic_64.c
> +++ b/arch/x86/kernel/apic_64.c
> @@ -287,6 +287,20 @@ void disable_local_APIC(void)
>  	apic_write(APIC_SPIV, value);
>  }
> 
> +void lapic_shutdown(void)
> +{
> +	unsigned long flags;
> +
> +	if (!cpu_has_apic)
> +		return;
> +
> +	local_irq_save(flags);
> +
> +	disable_local_APIC();
> +
> +	local_irq_restore(flags);
> +}
> +
>  /*

Do we really have to introduce this function for 64bit? I remember some
issues were faced on i386 w.r.t kernel enabling the LAPIC against the
wishes of BIOS hence kernel was disabling it while shutting down. No
such problems were reported for x86_64 hence this function existed only
for i386.

If that is the case, probably we don't have to introduce lapic_shutdown()
for x86_64. Instead call lapic_shutdown() for X86_32, and disble_local_APIC()
otherwise?

Thanks
Vivek



More information about the kexec mailing list