bitkeeper revision 1.891.1.28 (40a61211zpZ9C9yOQSIb1evQ_o-mIw)
authorkaf24@scramble.cl.cam.ac.uk <kaf24@scramble.cl.cam.ac.uk>
Sat, 15 May 2004 12:50:25 +0000 (12:50 +0000)
committerkaf24@scramble.cl.cam.ac.uk <kaf24@scramble.cl.cam.ac.uk>
Sat, 15 May 2004 12:50:25 +0000 (12:50 +0000)
Bug fixes relating to IPIs with interrupts disabled.

xen/arch/i386/process.c
xen/arch/i386/setup.c
xen/common/domain.c

index 408daa1f14f88be855d76ed73555ff6adeb001f6..7524e9c5c523090557d948d31e212b9925259402 100644 (file)
@@ -128,6 +128,9 @@ void machine_restart(char * __unused)
 #ifdef CONFIG_SMP
     cpuid = GET_APIC_ID(apic_read(APIC_ID));
 
+    /* KAF: Need interrupts enabled for safe IPI. */
+    __sti();
+
     if (reboot_smp) {
 
         /* check to see if reboot_cpu is valid 
index ebd68d38019e519da2ac770bcdecdf556911013f..06193aeb6b4b31fcb93a6ddfbf787ff57863c594 100644 (file)
@@ -405,6 +405,8 @@ void __init start_of_day(void)
      */
 #endif
 
+    __sti();
+
     initialize_keytable(); /* call back handling for key codes      */
 
     serial_init_stage2();
@@ -422,8 +424,6 @@ void __init start_of_day(void)
     init_xen_time();   /* initialise the time */
     schedulers_start(); /* start scheduler for each CPU */
 
-    sti();
-
     check_nmi_watchdog();
 
 #ifdef CONFIG_PCI
index 71294c94171e1b2f242e8425086a73de328624cc..9f4d2ad9648ae812edf448e20c088fd39819927a 100644 (file)
@@ -287,7 +287,7 @@ struct pfn_info *alloc_domain_page(struct task_struct *p)
 #ifdef NO_DEVICES_IN_XEN
     ASSERT(!in_irq());
 #else
-    ASSERT((p != NULL) || !in_irq());
+    ASSERT((p == NULL) || !in_irq());
 #endif
 
     spin_lock_irqsave(&free_list_lock, flags);