|   | 
      | 
  
  
      | 
      | 
  
 
     | 
    | 
  
  
     | 
    | 
  
  
    |   | 
      | 
  
  
    | 
         
xen-devel
[Xen-devel] [patch 02/33] xen: paravirt: add a hook for once the	allocat
 
Add a hook so that the paravirt backend knows when the allocator is
ready.  This is useful for the obvious reason that the allocator is
available, but the other side-effect of having the bootmem allocator
available is that each page now has an associated "struct page".
Signed-off-by: Jeremy Fitzhardinge <jeremy@xxxxxxxxxxxxx>
---
 arch/i386/kernel/setup.c    |    2 ++
 include/asm-i386/paravirt.h |    8 ++++++++
 include/asm-i386/setup.h    |    4 ++++
 3 files changed, 14 insertions(+)
===================================================================
--- a/arch/i386/kernel/setup.c
+++ b/arch/i386/kernel/setup.c
@@ -611,6 +611,8 @@ void __init setup_arch(char **cmdline_p)
         * NOTE: at this point the bootmem allocator is fully available.
         */
 
+       paravirt_post_allocator_init();
+
        dmi_scan_machine();
 
 #ifdef CONFIG_X86_GENERICARCH
===================================================================
--- a/include/asm-i386/paravirt.h
+++ b/include/asm-i386/paravirt.h
@@ -52,6 +52,8 @@ struct paravirt_ops
        /* Basic arch-specific setup */
        void (*arch_setup)(void);
        char *(*memory_setup)(void);
+       void (*post_allocator_init)(void);
+
        void (*init_IRQ)(void);
        void (*time_init)(void);
 
@@ -669,6 +671,12 @@ static inline void setup_secondary_clock
 }
 #endif
 
+static inline void paravirt_post_allocator_init(void)
+{
+       if (paravirt_ops.post_allocator_init)
+               (*paravirt_ops.post_allocator_init)();
+}
+
 static inline void paravirt_pagetable_setup_start(pgd_t *base)
 {
        if (paravirt_ops.pagetable_setup_start)
===================================================================
--- a/include/asm-i386/setup.h
+++ b/include/asm-i386/setup.h
@@ -79,6 +79,10 @@ void __init add_memory_region(unsigned l
 
 extern unsigned long init_pg_tables_end;
 
+#ifndef CONFIG_PARAVIRT
+#define paravirt_post_allocator_init() do {} while(0)
+#endif
+
 #endif /* __ASSEMBLY__ */
 
 #endif  /*  __KERNEL__  */
-- 
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
 |   
 
| <Prev in Thread] | 
Current Thread | 
[Next in Thread>
 |  
- [Xen-devel] [patch 00/33] xen: Xen paravirt_ops implementation, Jeremy Fitzhardinge
- [Xen-devel] [patch 02/33] xen: paravirt: add a hook for once the	allocator is ready,
Jeremy Fitzhardinge <=
 
- [Xen-devel] [patch 04/33] xen: paravirt: unstatic leave_mm, Jeremy Fitzhardinge
 
- [Xen-devel] [patch 01/33] xen: paravirt: add an "mm" argument to	alloc_pt, Jeremy Fitzhardinge
 
- [Xen-devel] [patch 03/33] xen: paravirt: increase IRQ limit, Jeremy Fitzhardinge
 
- [Xen-devel] [patch 07/33] xen: paravirt: export __supported_pte_mask, Jeremy Fitzhardinge
 
- [Xen-devel] [patch 05/33] xen: paravirt: unstatic smp_store_cpu_info, Jeremy Fitzhardinge
 
- [Xen-devel] [patch 06/33] xen: paravirt: make siblingmap functions	visible, Jeremy Fitzhardinge
 
- [Xen-devel] [patch 08/33] xen: Allocate and free vmalloc areas, Jeremy Fitzhardinge
 
- [Xen-devel] [patch 09/33] xen: Add nosegneg capability to the	vsyscall page notes, Jeremy Fitzhardinge
 
- [Xen-devel] [patch 17/33] xen: Complete pagetable pinning for Xen, Jeremy Fitzhardinge
 
- [Xen-devel] [patch 19/33] xen: Account for time stolen by Xen, Jeremy Fitzhardinge
 
 
 
 
 |  
  
 | 
    | 
  
  
    |   | 
    |