ia64/xen-unstable

changeset 4576:260db0c4de3b

bitkeeper revision 1.1328 (4265217aYiP2DYWshvrhuzl1lKe_3w)

Merge freefall.cl.cam.ac.uk:/auto/groups/xeno-xenod/BK/xen-unstable.bk
into freefall.cl.cam.ac.uk:/auto/groups/xeno/users/iap10/xeno-clone/xen-unstable.bk
author iap10@freefall.cl.cam.ac.uk
date Tue Apr 19 15:19:22 2005 +0000 (2005-04-19)
parents dfe18db08708 41e1779574b4
children 5b9e241131fb
files linux-2.6.11-xen-sparse/arch/xen/kernel/gnttab.c linux-2.6.11-xen-sparse/arch/xen/kernel/reboot.c xen/arch/x86/audit.c xen/arch/x86/domain.c xen/include/asm-x86/mm.h
line diff
     1.1 --- a/linux-2.6.11-xen-sparse/arch/xen/kernel/gnttab.c	Tue Apr 19 13:48:05 2005 +0000
     1.2 +++ b/linux-2.6.11-xen-sparse/arch/xen/kernel/gnttab.c	Tue Apr 19 15:19:22 2005 +0000
     1.3 @@ -319,7 +319,8 @@ static int grant_write(struct file *file
     1.4      return -ENOSYS;
     1.5  }
     1.6  
     1.7 -static int __init gnttab_init(void)
     1.8 +
     1.9 +int gnttab_resume(void)
    1.10  {
    1.11      gnttab_setup_table_t setup;
    1.12      unsigned long        frames[NR_GRANT_FRAMES];
    1.13 @@ -341,6 +342,21 @@ static int __init gnttab_init(void)
    1.14  
    1.15      for ( i = 0; i < NR_GRANT_ENTRIES; i++ )
    1.16          gnttab_free_list[i] = i + 1;
    1.17 +    
    1.18 +    return 0;
    1.19 +}
    1.20 +
    1.21 +int gnttab_suspend(void)
    1.22 +{
    1.23 +    int i;
    1.24 +    for ( i = 0; i < NR_GRANT_FRAMES; i++ )
    1.25 +	clear_fixmap(FIX_GNTTAB_END - i);
    1.26 +    return 0;
    1.27 +}
    1.28 +
    1.29 +static int __init gnttab_init(void)
    1.30 +{
    1.31 +    BUG_ON(gnttab_resume());
    1.32  
    1.33      /*
    1.34       *  /proc/xen/grant : used by libxc to access grant tables
     2.1 --- a/linux-2.6.11-xen-sparse/arch/xen/kernel/reboot.c	Tue Apr 19 13:48:05 2005 +0000
     2.2 +++ b/linux-2.6.11-xen-sparse/arch/xen/kernel/reboot.c	Tue Apr 19 15:19:22 2005 +0000
     2.3 @@ -84,6 +84,9 @@ static void __do_suspend(void)
     2.4  #define usbif_resume() do{}while(0)
     2.5  #endif
     2.6  
     2.7 +    extern int gnttab_suspend(void);
     2.8 +    extern int gnttab_resume(void);
     2.9 +
    2.10      extern void time_suspend(void);
    2.11      extern void time_resume(void);
    2.12      extern unsigned long max_pfn;
    2.13 @@ -107,6 +110,8 @@ static void __do_suspend(void)
    2.14  
    2.15      irq_suspend();
    2.16  
    2.17 +    gnttab_suspend();
    2.18 +
    2.19      HYPERVISOR_shared_info = (shared_info_t *)empty_zero_page;
    2.20      clear_fixmap(FIX_SHARED_INFO);
    2.21  
    2.22 @@ -138,6 +143,7 @@ static void __do_suspend(void)
    2.23      HYPERVISOR_shared_info->arch.pfn_to_mfn_frame_list =
    2.24          virt_to_machine(pfn_to_mfn_frame_list) >> PAGE_SHIFT;
    2.25  
    2.26 +    gnttab_resume();
    2.27  
    2.28      irq_resume();
    2.29  
     3.1 --- a/xen/arch/x86/audit.c	Tue Apr 19 13:48:05 2005 +0000
     3.2 +++ b/xen/arch/x86/audit.c	Tue Apr 19 15:19:22 2005 +0000
     3.3 @@ -285,7 +285,7 @@ int audit_adjust_pgtables(struct domain 
     3.4                                     d->id, l1mfn, i, gmfn);
     3.5                              errors++;
     3.6                          }
     3.7 -                    }
     3.8 +                    }		   
     3.9  
    3.10                      if ( page_get_owner(gpage) != d )
    3.11                      {
    3.12 @@ -587,7 +587,7 @@ void _audit_domain(struct domain *d, int
    3.13                               unsigned long mfn)
    3.14      {
    3.15          struct pfn_info *page = &frame_table[mfn];
    3.16 -        unsigned long *pt = map_domain_mem(mfn);
    3.17 +        unsigned long *pt = map_domain_mem(mfn<<PAGE_SHIFT);
    3.18          int i;
    3.19  
    3.20          for ( i = 0; i < L1_PAGETABLE_ENTRIES; i++ )
     4.1 --- a/xen/arch/x86/domain.c	Tue Apr 19 13:48:05 2005 +0000
     4.2 +++ b/xen/arch/x86/domain.c	Tue Apr 19 15:19:22 2005 +0000
     4.3 @@ -185,6 +185,14 @@ void dump_pageframe_info(struct domain *
     4.4                     page->u.inuse.type_info);
     4.5          }
     4.6      }
     4.7 +
     4.8 +    list_for_each_entry ( page, &d->xenpage_list, list )
     4.9 +    {
    4.10 +        printk("XenPage %08x: caf=%08x, taf=%08x\n",
    4.11 +               page_to_phys(page), page->count_info,
    4.12 +               page->u.inuse.type_info);
    4.13 +    }
    4.14 +
    4.15      
    4.16      page = virt_to_page(d->shared_info);
    4.17      printk("Shared_info@%08x: caf=%08x, taf=%08x\n",
     5.1 --- a/xen/include/asm-x86/mm.h	Tue Apr 19 13:48:05 2005 +0000
     5.2 +++ b/xen/include/asm-x86/mm.h	Tue Apr 19 15:19:22 2005 +0000
     5.3 @@ -332,7 +332,7 @@ int audit_adjust_pgtables(struct domain 
     5.4  #define AUDIT_QUIET          ( 1u << 2 )
     5.5  
     5.6  void _audit_domain(struct domain *d, int flags);
     5.7 -#define audit_domain(_d) _audit_domain((_d), 0)
     5.8 +#define audit_domain(_d) _audit_domain((_d), AUDIT_ERRORS_OK)
     5.9  void audit_domains(void);
    5.10  
    5.11  #else