diff options
author | iap10@freefall.cl.cam.ac.uk <iap10@freefall.cl.cam.ac.uk> | 2005-08-12 16:59:24 +0000 |
---|---|---|
committer | iap10@freefall.cl.cam.ac.uk <iap10@freefall.cl.cam.ac.uk> | 2005-08-12 16:59:24 +0000 |
commit | 37086f1a52400032c457d4a38cbd6eb957c6e2b9 (patch) | |
tree | 8d493c5704441348161aab51cb97ce7a969d7d1c | |
parent | 2d76e4deef42d81f7e516ebf9372a131bb6ae063 (diff) | |
parent | ab7d21ef3abbd4c425574e5556b6d523d8369815 (diff) | |
download | xen-37086f1a52400032c457d4a38cbd6eb957c6e2b9.tar.gz xen-37086f1a52400032c457d4a38cbd6eb957c6e2b9.tar.bz2 xen-37086f1a52400032c457d4a38cbd6eb957c6e2b9.zip |
merge
5 files changed, 21 insertions, 27 deletions
diff --git a/linux-2.6-xen-sparse/arch/xen/i386/mm/hypervisor.c b/linux-2.6-xen-sparse/arch/xen/i386/mm/hypervisor.c index 7a9e73fa88..00b9c6eb73 100644 --- a/linux-2.6-xen-sparse/arch/xen/i386/mm/hypervisor.c +++ b/linux-2.6-xen-sparse/arch/xen/i386/mm/hypervisor.c @@ -286,8 +286,8 @@ void xen_contig_memory(unsigned long vstart, unsigned int order) pmd = pmd_offset(pud, (vstart + (i*PAGE_SIZE))); pte = pte_offset_kernel(pmd, (vstart + (i*PAGE_SIZE))); mfn = pte_mfn(*pte); - HYPERVISOR_update_va_mapping( - vstart + (i*PAGE_SIZE), __pte_ma(0), 0); + BUG_ON(HYPERVISOR_update_va_mapping( + vstart + (i*PAGE_SIZE), __pte_ma(0), 0)); phys_to_machine_mapping[(__pa(vstart)>>PAGE_SHIFT)+i] = INVALID_P2M_ENTRY; BUG_ON(HYPERVISOR_dom_mem_op( @@ -300,9 +300,9 @@ void xen_contig_memory(unsigned long vstart, unsigned int order) /* 3. Map the new extent in place of old pages. */ for (i = 0; i < (1<<order); i++) { - HYPERVISOR_update_va_mapping( + BUG_ON(HYPERVISOR_update_va_mapping( vstart + (i*PAGE_SIZE), - __pte_ma(((mfn+i)<<PAGE_SHIFT)|__PAGE_KERNEL), 0); + __pte_ma(((mfn+i)<<PAGE_SHIFT)|__PAGE_KERNEL), 0)); xen_machphys_update(mfn+i, (__pa(vstart)>>PAGE_SHIFT)+i); phys_to_machine_mapping[(__pa(vstart)>>PAGE_SHIFT)+i] = mfn+i; } @@ -345,7 +345,8 @@ unsigned long allocate_empty_lowmem_region(unsigned long pages) #ifdef CONFIG_X86_64 xen_l1_entry_update(pte, __pte(0)); #else - HYPERVISOR_update_va_mapping(vstart + (i*PAGE_SIZE), __pte_ma(0), 0); + BUG_ON(HYPERVISOR_update_va_mapping(vstart + (i*PAGE_SIZE), + __pte_ma(0), 0)); #endif phys_to_machine_mapping[(__pa(vstart)>>PAGE_SHIFT)+i] = INVALID_P2M_ENTRY; diff --git a/linux-2.6-xen-sparse/arch/xen/i386/mm/pgtable.c b/linux-2.6-xen-sparse/arch/xen/i386/mm/pgtable.c index fcf97c79e4..dda871f2bf 100644 --- a/linux-2.6-xen-sparse/arch/xen/i386/mm/pgtable.c +++ b/linux-2.6-xen-sparse/arch/xen/i386/mm/pgtable.c @@ -222,8 +222,8 @@ void pte_free(struct page *pte) unsigned long va = (unsigned long)__va(page_to_pfn(pte)<<PAGE_SHIFT); if (!pte_write(*virt_to_ptep(va))) - HYPERVISOR_update_va_mapping( - va, pfn_pte(page_to_pfn(pte), PAGE_KERNEL), 0); + BUG_ON(HYPERVISOR_update_va_mapping( + va, pfn_pte(page_to_pfn(pte), PAGE_KERNEL), 0)); ClearPageForeign(pte); set_page_count(pte, 1); @@ -355,10 +355,10 @@ void pgd_free(pgd_t *pgd) if (!pte_write(*ptep)) { xen_pgd_unpin(__pa(pgd)); - HYPERVISOR_update_va_mapping( + BUG_ON(HYPERVISOR_update_va_mapping( (unsigned long)pgd, pfn_pte(virt_to_phys(pgd)>>PAGE_SHIFT, PAGE_KERNEL), - 0); + 0)); } /* in the PAE case user pgd entries are overwritten before usage */ @@ -451,9 +451,9 @@ static inline void mm_walk_set_prot(void *pt, pgprot_t flags) if (PageHighMem(page)) return; - HYPERVISOR_update_va_mapping( + BUG_ON(HYPERVISOR_update_va_mapping( (unsigned long)__va(pfn << PAGE_SHIFT), - pfn_pte(pfn, flags), 0); + pfn_pte(pfn, flags), 0)); } static void mm_walk(struct mm_struct *mm, pgprot_t flags) @@ -492,10 +492,10 @@ void mm_pin(struct mm_struct *mm) spin_lock(&mm->page_table_lock); mm_walk(mm, PAGE_KERNEL_RO); - HYPERVISOR_update_va_mapping( + BUG_ON(HYPERVISOR_update_va_mapping( (unsigned long)mm->pgd, pfn_pte(virt_to_phys(mm->pgd)>>PAGE_SHIFT, PAGE_KERNEL_RO), - UVMF_TLB_FLUSH); + UVMF_TLB_FLUSH)); xen_pgd_pin(__pa(mm->pgd)); mm->context.pinned = 1; spin_lock(&mm_unpinned_lock); @@ -510,9 +510,9 @@ void mm_unpin(struct mm_struct *mm) spin_lock(&mm->page_table_lock); xen_pgd_unpin(__pa(mm->pgd)); - HYPERVISOR_update_va_mapping( + BUG_ON(HYPERVISOR_update_va_mapping( (unsigned long)mm->pgd, - pfn_pte(virt_to_phys(mm->pgd)>>PAGE_SHIFT, PAGE_KERNEL), 0); + pfn_pte(virt_to_phys(mm->pgd)>>PAGE_SHIFT, PAGE_KERNEL), 0)); mm_walk(mm, PAGE_KERNEL); xen_tlb_flush(); mm->context.pinned = 0; diff --git a/linux-2.6-xen-sparse/drivers/xen/balloon/balloon.c b/linux-2.6-xen-sparse/drivers/xen/balloon/balloon.c index 2971bc5087..bf717a8632 100644 --- a/linux-2.6-xen-sparse/drivers/xen/balloon/balloon.c +++ b/linux-2.6-xen-sparse/drivers/xen/balloon/balloon.c @@ -211,11 +211,11 @@ static void balloon_process(void *unused) /* Link back into the page tables if it's not a highmem page. */ if ( pfn < max_low_pfn ) { - HYPERVISOR_update_va_mapping( + BUG_ON(HYPERVISOR_update_va_mapping( (unsigned long)__va(pfn << PAGE_SHIFT), __pte_ma((mfn_list[i] << PAGE_SHIFT) | pgprot_val(PAGE_KERNEL)), - 0); + 0)); } /* Finally, relinquish the memory back to the system allocator. */ @@ -249,8 +249,8 @@ static void balloon_process(void *unused) { v = phys_to_virt(pfn << PAGE_SHIFT); scrub_pages(v, 1); - HYPERVISOR_update_va_mapping( - (unsigned long)v, __pte_ma(0), 0); + BUG_ON(HYPERVISOR_update_va_mapping( + (unsigned long)v, __pte_ma(0), 0)); } #ifdef CONFIG_XEN_SCRUB_PAGES else diff --git a/linux-2.6-xen-sparse/include/asm-xen/asm-i386/hypercall.h b/linux-2.6-xen-sparse/include/asm-xen/asm-i386/hypercall.h index 3abe82e3df..e4b7f781e8 100644 --- a/linux-2.6-xen-sparse/include/asm-xen/asm-i386/hypercall.h +++ b/linux-2.6-xen-sparse/include/asm-xen/asm-i386/hypercall.h @@ -386,13 +386,6 @@ HYPERVISOR_update_va_mapping( "4" (flags) : "memory" ); - if ( unlikely(ret < 0) ) - { - printk(KERN_ALERT "Failed update VA mapping: %08lx, %08lx, %08lx\n", - va, (new_val).pte_low, flags); - BUG(); - } - return ret; } diff --git a/linux-2.6-xen-sparse/include/asm-xen/asm-x86_64/pgtable.h b/linux-2.6-xen-sparse/include/asm-xen/asm-x86_64/pgtable.h index 154f704f00..59cdcce1f2 100644 --- a/linux-2.6-xen-sparse/include/asm-xen/asm-x86_64/pgtable.h +++ b/linux-2.6-xen-sparse/include/asm-xen/asm-x86_64/pgtable.h @@ -497,7 +497,7 @@ extern inline pte_t pte_modify(pte_t pte, pgprot_t newprot) do { \ if (__dirty) { \ if ( likely((__vma)->vm_mm == current->mm) ) { \ - HYPERVISOR_update_va_mapping((__address), (__entry), UVMF_INVLPG|UVMF_MULTI|(unsigned long)((__vma)->vm_mm->cpu_vm_mask.bits)); \ + BUG_ON(HYPERVISOR_update_va_mapping((__address), (__entry), UVMF_INVLPG|UVMF_MULTI|(unsigned long)((__vma)->vm_mm->cpu_vm_mask.bits))); \ } else { \ xen_l1_entry_update((__ptep), (__entry)); \ flush_tlb_page((__vma), (__address)); \ |