[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH] linux/x86: make xen_change_pte_range() compatible with CONFIG_HIGHPTE
Cannot use virt_to_machine() on a kmap()-ed address. As usual, written and tested on 2.6.24 and made apply to the 2.6.18 tree without further testing. Signed-off-by: Jan Beulich <jbeulich@xxxxxxxxxx> Index: head-2008-01-28/arch/i386/mm/hypervisor.c =================================================================== --- head-2008-01-28.orig/arch/i386/mm/hypervisor.c 2007-10-19 17:18:37.000000000 +0200 +++ head-2008-01-28/arch/i386/mm/hypervisor.c 2008-01-31 17:38:56.000000000 +0100 @@ -569,7 +569,9 @@ int xen_change_pte_range(struct mm_struc pte = pte_offset_map_lock(mm, pmd, addr, &ptl); do { if (pte_present(*pte)) { - u[i].ptr = virt_to_machine(pte) | MMU_PT_UPDATE_PRESERVE_AD; + u[i].ptr = (__pmd_val(*pmd) & PHYSICAL_PAGE_MASK) + | ((unsigned long)pte & ~PAGE_MASK) + | MMU_PT_UPDATE_PRESERVE_AD; u[i].val = __pte_val(pte_modify(*pte, newprot)); if (++i == MAX_BATCHED_FULL_PTES) { if ((rc = HYPERVISOR_mmu_update( _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |