WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-devel

Re: [Xen-devel] [PATCH 2 of 7] KEXEC BUG: nmi_shootdown_cpus doesn't loo

To: "Andrew Cooper" <andrew.cooper3@xxxxxxxxxx>
Subject: Re: [Xen-devel] [PATCH 2 of 7] KEXEC BUG: nmi_shootdown_cpus doesn't look after the interrupt flag
From: "Jan Beulich" <JBeulich@xxxxxxxxxx>
Date: Tue, 14 Jun 2011 09:46:38 +0100
Cc: xen-devel@xxxxxxxxxxxxxxxxxxx
Delivery-date: Tue, 14 Jun 2011 01:47:14 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
In-reply-to: <1c3d2e4d06febe3443ac.1307984569@xxxxxxxxxxxxxxxxxxxxxxxxxxx>
List-help: <mailto:xen-devel-request@lists.xensource.com?subject=help>
List-id: Xen developer discussion <xen-devel.lists.xensource.com>
List-post: <mailto:xen-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
References: <patchbomb.1307984567@xxxxxxxxxxxxxxxxxxxxxxxxxxx> <1c3d2e4d06febe3443ac.1307984569@xxxxxxxxxxxxxxxxxxxxxxxxxxx>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
>>> On 13.06.11 at 19:02, Andrew Cooper <andrew.cooper3@xxxxxxxxxx> wrote:
> nmi_shootdown_cpus is part of the kexec path, coming from a panic, and
> as such can be called both with interrupts enabled or disabled. We
> really dont want to accidentally set IF.

Can interrupts really be enabled when entering this function?

> Therefore, use save/restore in preference to disable/enable.

I.e. wouldn't just removing the stray local_irq_enable() suffice?

Jan

> Signed-off-by: Andrew Cooper <andrew.cooper3@xxxxxxxxxx>
> 
> diff -r 076c3034c8c7 -r 1c3d2e4d06fe xen/arch/x86/crash.c
> --- a/xen/arch/x86/crash.c    Mon Jun 13 17:45:43 2011 +0100
> +++ b/xen/arch/x86/crash.c    Mon Jun 13 17:45:43 2011 +0100
> @@ -55,9 +55,9 @@ static int crash_nmi_callback(struct cpu
>  
>  static void nmi_shootdown_cpus(void)
>  {
> -    unsigned long msecs;
> +    unsigned long msecs, flags;
>  
> -    local_irq_disable();
> +    local_irq_save(flags);
>  
>      crashing_cpu = smp_processor_id();
>      local_irq_count(crashing_cpu) = 0;
> @@ -80,7 +80,7 @@ static void nmi_shootdown_cpus(void)
>      __stop_this_cpu();
>      disable_IO_APIC();
>  
> -    local_irq_enable();
> +    local_irq_restore(flags);
>  }
>  
>  void machine_crash_shutdown(void)
> 
> _______________________________________________
> Xen-devel mailing list
> Xen-devel@xxxxxxxxxxxxxxxxxxx 
> http://lists.xensource.com/xen-devel 




_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel

<Prev in Thread] Current Thread [Next in Thread>