mirror of
https://github.com/xen-project/xen.git
synced 2026-10-29 10:40:03 +01:00
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
This commit is contained in:
commit
cb00a26b7c
5 files changed
+34
-4
No files matched your search
@@ -319,7 +319,8 @@ static int grant_write(struct file *file, const char __user *buffer,
|
||||
return -ENOSYS;
|
||||
}
|
||||
|
||||
static int __init gnttab_init(void)
|
||||
|
||||
int gnttab_resume(void)
|
||||
{
|
||||
gnttab_setup_table_t setup;
|
||||
unsigned long frames[NR_GRANT_FRAMES];
|
||||
@@ -341,6 +342,21 @@ static int __init gnttab_init(void)
|
||||
|
||||
for ( i = 0; i < NR_GRANT_ENTRIES; i++ )
|
||||
gnttab_free_list[i] = i + 1;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
int gnttab_suspend(void)
|
||||
{
|
||||
int i;
|
||||
for ( i = 0; i < NR_GRANT_FRAMES; i++ )
|
||||
clear_fixmap(FIX_GNTTAB_END - i);
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int __init gnttab_init(void)
|
||||
{
|
||||
BUG_ON(gnttab_resume());
|
||||
|
||||
/*
|
||||
* /proc/xen/grant : used by libxc to access grant tables
|
||||
|
||||
@@ -84,6 +84,9 @@ static void __do_suspend(void)
|
||||
#define usbif_resume() do{}while(0)
|
||||
#endif
|
||||
|
||||
extern int gnttab_suspend(void);
|
||||
extern int gnttab_resume(void);
|
||||
|
||||
extern void time_suspend(void);
|
||||
extern void time_resume(void);
|
||||
extern unsigned long max_pfn;
|
||||
@@ -107,6 +110,8 @@ static void __do_suspend(void)
|
||||
|
||||
irq_suspend();
|
||||
|
||||
gnttab_suspend();
|
||||
|
||||
HYPERVISOR_shared_info = (shared_info_t *)empty_zero_page;
|
||||
clear_fixmap(FIX_SHARED_INFO);
|
||||
|
||||
@@ -138,6 +143,7 @@ static void __do_suspend(void)
|
||||
HYPERVISOR_shared_info->arch.pfn_to_mfn_frame_list =
|
||||
virt_to_machine(pfn_to_mfn_frame_list) >> PAGE_SHIFT;
|
||||
|
||||
gnttab_resume();
|
||||
|
||||
irq_resume();
|
||||
|
||||
|
||||
@@ -285,7 +285,7 @@ int audit_adjust_pgtables(struct domain *d, int dir, int noisy)
|
||||
d->id, l1mfn, i, gmfn);
|
||||
errors++;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if ( page_get_owner(gpage) != d )
|
||||
{
|
||||
@@ -587,7 +587,7 @@ void _audit_domain(struct domain *d, int flags)
|
||||
unsigned long mfn)
|
||||
{
|
||||
struct pfn_info *page = &frame_table[mfn];
|
||||
unsigned long *pt = map_domain_mem(mfn);
|
||||
unsigned long *pt = map_domain_mem(mfn<<PAGE_SHIFT);
|
||||
int i;
|
||||
|
||||
for ( i = 0; i < L1_PAGETABLE_ENTRIES; i++ )
|
||||
|
||||
@@ -185,6 +185,14 @@ void dump_pageframe_info(struct domain *d)
|
||||
page->u.inuse.type_info);
|
||||
}
|
||||
}
|
||||
|
||||
list_for_each_entry ( page, &d->xenpage_list, list )
|
||||
{
|
||||
printk("XenPage %08x: caf=%08x, taf=%08x\n",
|
||||
page_to_phys(page), page->count_info,
|
||||
page->u.inuse.type_info);
|
||||
}
|
||||
|
||||
|
||||
page = virt_to_page(d->shared_info);
|
||||
printk("Shared_info@%08x: caf=%08x, taf=%08x\n",
|
||||
|
||||
@@ -332,7 +332,7 @@ int audit_adjust_pgtables(struct domain *d, int dir, int noisy);
|
||||
#define AUDIT_QUIET ( 1u << 2 )
|
||||
|
||||
void _audit_domain(struct domain *d, int flags);
|
||||
#define audit_domain(_d) _audit_domain((_d), 0)
|
||||
#define audit_domain(_d) _audit_domain((_d), AUDIT_ERRORS_OK)
|
||||
void audit_domains(void);
|
||||
|
||||
#else
|
||||
|
||||