|   | 
      | 
  
  
      | 
      | 
  
 
     | 
    | 
  
  
     | 
    | 
  
  
    |   | 
      | 
  
  
    | 
         
xen-changelog
[Xen-changelog] [xen-3.4-testing] x86: Force !in_irq() in	machine_restar
 
# HG changeset patch
# User Keir Fraser <keir.fraser@xxxxxxxxxx>
# Date 1276160998 -3600
# Node ID fb569acd6b945c3f9251cc8c74eb331c0485ee0b
# Parent  985dcbf87197e8f5517ccf8658393cd74a09398c
x86: Force !in_irq() in machine_restart().
Various function we may call assert this fact. We just want to restart
the system.
Signed-off-by: Keir Fraser <keir.fraser@xxxxxxxxxx>
xen-unstable changeset:   21550:cb75117829a6
xen-unstable date:        Mon Jun 07 16:41:19 2010 +0100
---
 xen/arch/x86/shutdown.c |    7 +++++++
 xen/arch/x86/tboot.c    |    5 -----
 2 files changed, 7 insertions(+), 5 deletions(-)
diff -r 985dcbf87197 -r fb569acd6b94 xen/arch/x86/shutdown.c
--- a/xen/arch/x86/shutdown.c   Thu Jun 10 10:09:17 2010 +0100
+++ b/xen/arch/x86/shutdown.c   Thu Jun 10 10:09:58 2010 +0100
@@ -316,6 +316,13 @@ void machine_restart(unsigned int delay_
             halt();
     }
 
+    /*
+     * We may be called from an interrupt context, and various functions we
+     * may need to call (alloc_domheap_pages, map_domain_page, ...) assert that
+     * they are not called from interrupt context. This hack keeps them happy.
+     */
+    local_irq_count(0) = 0;
+
     smp_send_stop();
 
     mdelay(delay_millisecs);
diff -r 985dcbf87197 -r fb569acd6b94 xen/arch/x86/tboot.c
--- a/xen/arch/x86/tboot.c      Thu Jun 10 10:09:17 2010 +0100
+++ b/xen/arch/x86/tboot.c      Thu Jun 10 10:09:58 2010 +0100
@@ -283,11 +283,6 @@ void tboot_shutdown(uint32_t shutdown_ty
     g_tboot_shared->shutdown_type = shutdown_type;
 
     local_irq_disable();
-
-    /* we may be called from an interrupt context, so to prevent */
-    /* 'ASSERT(!in_irq());' in alloc_domheap_pages(), decrease count */
-    while ( in_irq() )
-        irq_exit();
 
     /* Create identity map for tboot shutdown code. */
     /* do before S3 integrity because mapping tboot may change xenheap */
_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog
 |   
 
| <Prev in Thread] | 
Current Thread | 
[Next in Thread> |  
- [Xen-changelog] [xen-3.4-testing] x86: Force !in_irq() in	machine_restart().,
Xen patchbot-3.4-testing <=
  
 |  
  
 | 
    | 
  
  
    |   | 
    |