|
|
|
|
|
|
|
|
|
|
xen-devel
[Xen-devel] [PATCH] linux/x86: make xen_change_pte_range() compatible wi
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
|
<Prev in Thread] |
Current Thread |
[Next in Thread> |
- [Xen-devel] [PATCH] linux/x86: make xen_change_pte_range() compatible with CONFIG_HIGHPTE,
Jan Beulich <=
|
|
|
|
|