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

[Xen-changelog] [xen-unstable] [MINIOS] Move initialisation of events (masking event channels)



# HG changeset patch
# User kfraser@xxxxxxxxxxxxxxxxxxxxx
# Node ID e343f1850be0229a6cd5dbcbc71a421f4ecc8906
# Parent  73ef90055339056c6f84aa6da24b61ae748c6302
[MINIOS] Move initialisation of events (masking event channels)
earlier during the boot process. Otherwise 64bit guests would
sometimes crash.

Signed-off-by: Grzegorz Milos <gm281@xxxxxxxxx>
---
 extras/mini-os/include/x86/os.h |    2 ++
 extras/mini-os/kernel.c         |    6 +++---
 extras/mini-os/mm.c             |    7 ++-----
 3 files changed, 7 insertions(+), 8 deletions(-)

diff -r 73ef90055339 -r e343f1850be0 extras/mini-os/include/x86/os.h
--- a/extras/mini-os/include/x86/os.h   Thu Nov 16 18:29:06 2006 +0000
+++ b/extras/mini-os/include/x86/os.h   Fri Nov 17 09:16:27 2006 +0000
@@ -18,6 +18,8 @@
 #ifndef __ASSEMBLY__
 #include <types.h>
 #include <hypervisor.h>
+
+#define USED    __attribute__ ((used))
 
 extern void do_exit(void);
 #define BUG do_exit
diff -r 73ef90055339 -r e343f1850be0 extras/mini-os/kernel.c
--- a/extras/mini-os/kernel.c   Thu Nov 16 18:29:06 2006 +0000
+++ b/extras/mini-os/kernel.c   Fri Nov 17 09:16:27 2006 +0000
@@ -116,6 +116,9 @@ void start_kernel(start_info_t *si)
     printk("  cmd_line:   %s\n",  
            si->cmd_line ? (const char *)si->cmd_line : "NULL");
 
+    /* Set up events. */
+    init_events();
+    
     arch_print_info();
 
     setup_xen_features();
@@ -123,9 +126,6 @@ void start_kernel(start_info_t *si)
     /* Init memory management. */
     init_mm();
 
-    /* Set up events. */
-    init_events();
-    
     /* Init time and timers. */
     init_time();
 
diff -r 73ef90055339 -r e343f1850be0 extras/mini-os/mm.c
--- a/extras/mini-os/mm.c       Thu Nov 16 18:29:06 2006 +0000
+++ b/extras/mini-os/mm.c       Fri Nov 17 09:16:27 2006 +0000
@@ -148,7 +148,7 @@ static chunk_head_t  free_tail[FREELIST_
  * Prints allocation[0/1] for @nr_pages, starting at @start
  * address (virtual).
  */
-static void print_allocation(void *start, int nr_pages)
+USED static void print_allocation(void *start, int nr_pages)
 {
     unsigned long pfn_start = virt_to_pfn(start);
     int count;
@@ -163,7 +163,7 @@ static void print_allocation(void *start
  * Prints chunks (making them with letters) for @nr_pages starting
  * at @start (virtual).
  */
-static void print_chunks(void *start, int nr_pages)
+USED static void print_chunks(void *start, int nr_pages)
 {
     char chunks[1001], current='A';
     int order, count;
@@ -408,7 +408,6 @@ void new_pt_frame(unsigned long *pt_pfn,
          do_exit();
          break;
     }
-
     /* Update the entry */
 #if defined(__x86_64__)
     tab = pte_to_virt(tab[l4_table_offset(pt_page)]);
@@ -446,7 +445,6 @@ void new_pt_frame(unsigned long *pt_pfn,
        printk("ERROR: mmu_update failed\n");
        do_exit();
     }
-
     *pt_pfn += 1;
 }
 
@@ -581,7 +579,6 @@ void build_pagetable(unsigned long *star
         }
         start_address += PAGE_SIZE;
     }
-
     *start_pfn = pt_pfn;
 }
 

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


 


Rackspace

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