# HG changeset patch # User yamahata@xxxxxxxxxxxxx # Node ID b6d7dc918455e9c83f13e7b654759cecdd2e1a0a # Parent 354565c96b098fe8951d0c6f6e580974f890f11c mpt_table is accessed concurrently by cpus, so it needs volatile qualifier PATCHNAME: volatile_mpt_table Signed-off-by: Isaku Yamahata diff -r 354565c96b09 -r b6d7dc918455 xen/arch/ia64/xen/xenmem.c --- a/xen/arch/ia64/xen/xenmem.c Fri Jun 09 15:18:59 2006 +0900 +++ b/xen/arch/ia64/xen/xenmem.c Fri Jun 09 15:19:01 2006 +0900 @@ -35,7 +35,7 @@ unsigned long max_page; /* * Set up the page tables. */ -unsigned long *mpt_table; +volatile unsigned long *mpt_table; void paging_init (void) @@ -141,7 +141,7 @@ create_mpttable_page_table (u64 start, u create_mpttable_page_table (u64 start, u64 end, void *arg) { unsigned long address, start_page, end_page; - unsigned long *map_start, *map_end; + volatile unsigned long *map_start, *map_end; pgd_t *pgd; pud_t *pud; pmd_t *pmd; diff -r 354565c96b09 -r b6d7dc918455 xen/include/asm-ia64/mm.h --- a/xen/include/asm-ia64/mm.h Fri Jun 09 15:18:59 2006 +0900 +++ b/xen/include/asm-ia64/mm.h Fri Jun 09 15:19:01 2006 +0900 @@ -443,7 +443,7 @@ extern unsigned long dom0vp_add_physmap( extern unsigned long dom0vp_add_physmap(struct domain* d, unsigned long gpfn, unsigned long mfn, unsigned long flags, domid_t domid); #endif -extern unsigned long *mpt_table; +extern volatile unsigned long *mpt_table; extern unsigned long gmfn_to_mfn_foreign(struct domain *d, unsigned long gpfn); extern u64 translate_domain_pte(u64 pteval, u64 address, u64 itir__, u64* logps); #define machine_to_phys_mapping mpt_table