x86, cpu hotplug: flush softirq work when going offline
authorKeir Fraser <keir.fraser@citrix.com>
Fri, 12 Sep 2008 09:40:19 +0000 (10:40 +0100)
committerKeir Fraser <keir.fraser@citrix.com>
Fri, 12 Sep 2008 09:40:19 +0000 (10:40 +0100)
From: Haitao Shan <haitao.shan@intel.com>
Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
xen/arch/x86/domain.c

index 9f2746910b8f0ecc6f9656e83b4fbf08b9646170..31a100f81c75bdf2c1c58a0c67772f988eef2ef0 100644 (file)
@@ -86,6 +86,12 @@ static void default_idle(void)
 
 static void play_dead(void)
 {
+    /*
+     * Flush pending softirqs if any. They can be queued up before this CPU
+     * was taken out of cpu_online_map in __cpu_disable().
+     */
+    do_softirq();
+
     /* This must be done before dead CPU ack */
     cpu_exit_clear();
     hvm_cpu_down();