[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-devel] [PATCH 2/4] x86/hpet: replace disabling of legacy broadcast


  • To: "xen-devel" <xen-devel@xxxxxxxxxxxxx>
  • From: "Jan Beulich" <JBeulich@xxxxxxxx>
  • Date: Tue, 27 Mar 2012 11:46:14 +0100
  • Delivery-date: Tue, 27 Mar 2012 10:45:40 +0000
  • List-id: Xen developer discussion <xen-devel.lists.xen.org>

... by the call to hpet_disable() added in the immediately preceding
patch.

In order to retain the behavior intended by c/s 23776:0ddb4481f883,
implement one of the alternative options pointed out there: remove CPUs
from the online map in __stop_this_cpu() (and hence doing so in
stop_this_cpu() is no longer needed).

Signed-off-by: Jan Beulich <jbeulich@xxxxxxxx>

--- a/xen/arch/x86/crash.c
+++ b/xen/arch/x86/crash.c
@@ -61,9 +61,6 @@ static void nmi_shootdown_cpus(void)
 
     local_irq_disable();
 
-    if ( hpet_broadcast_is_available() )
-        hpet_disable_legacy_broadcast();
-
     crashing_cpu = smp_processor_id();
     local_irq_count(crashing_cpu) = 0;
 
--- a/xen/arch/x86/hpet.c
+++ b/xen/arch/x86/hpet.c
@@ -783,7 +783,11 @@ void hpet_disable(void)
     u32 id;
 
     if ( !hpet_boot_cfg )
+    {
+        if ( hpet_broadcast_is_available() )
+            hpet_disable_legacy_broadcast();
         return;
+    }
 
     hpet_write32(*hpet_boot_cfg & ~HPET_CFG_ENABLE, HPET_CFG);
 
--- a/xen/arch/x86/smp.c
+++ b/xen/arch/x86/smp.c
@@ -349,12 +349,13 @@ void __stop_this_cpu(void)
      */
     clts();
     asm volatile ( "fninit" );
+
+    cpumask_clear_cpu(smp_processor_id(), &cpu_online_map);
 }
 
 static void stop_this_cpu(void *dummy)
 {
     __stop_this_cpu();
-    cpumask_clear_cpu(smp_processor_id(), &cpu_online_map);
     for ( ; ; )
         halt();
 }



Attachment: x86-hpet-disable-legacy-bcast.patch
Description: Text document

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.