aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorvh249@arcadians.cl.cam.ac.uk <vh249@arcadians.cl.cam.ac.uk>2005-06-24 09:39:40 +0000
committervh249@arcadians.cl.cam.ac.uk <vh249@arcadians.cl.cam.ac.uk>2005-06-24 09:39:40 +0000
commita3adbd6c3cabd7e5fa757827c0f058c7b19b889b (patch)
tree3b148c209d8d20bd5bb6c07d9c505e8de59f4e9f
parentf90af1a519af771ee0d15af53b61223440178ca9 (diff)
parent5f2c0a19bfe0920261cb37b52916ab424bf9c9ed (diff)
downloadxen-a3adbd6c3cabd7e5fa757827c0f058c7b19b889b.tar.gz
xen-a3adbd6c3cabd7e5fa757827c0f058c7b19b889b.tar.bz2
xen-a3adbd6c3cabd7e5fa757827c0f058c7b19b889b.zip
bitkeeper revision 1.1750 (42bbd4dcGK7sWi0DELA8n8Ap3cfa0w)
Merge arcadians.cl.cam.ac.uk:/auto/groups/xeno-xenod/BK/xen-unstable.bk into arcadians.cl.cam.ac.uk:/local/scratch-2/vh249/unstable.bk
-rw-r--r--linux-2.6.11-xen-sparse/arch/xen/i386/mm/pgtable.c4
-rw-r--r--linux-2.6.11-xen-sparse/arch/xen/x86_64/kernel/head.S2
-rw-r--r--linux-2.6.11-xen-sparse/drivers/xen/blkback/interface.c2
-rw-r--r--linux-2.6.11-xen-sparse/drivers/xen/netback/interface.c2
-rw-r--r--linux-2.6.11-xen-sparse/drivers/xen/usbback/interface.c2
-rw-r--r--linux-2.6.11-xen-sparse/drivers/xen/usbback/usbback.c2
-rw-r--r--tools/libxc/xc_linux_build.c4
-rw-r--r--xen/common/grant_table.c6
8 files changed, 15 insertions, 9 deletions
diff --git a/linux-2.6.11-xen-sparse/arch/xen/i386/mm/pgtable.c b/linux-2.6.11-xen-sparse/arch/xen/i386/mm/pgtable.c
index f3756654c3..06495cd9de 100644
--- a/linux-2.6.11-xen-sparse/arch/xen/i386/mm/pgtable.c
+++ b/linux-2.6.11-xen-sparse/arch/xen/i386/mm/pgtable.c
@@ -461,7 +461,8 @@ void mm_pin(struct mm_struct *mm)
mm_walk(mm, PAGE_KERNEL_RO);
HYPERVISOR_update_va_mapping(
(unsigned long)mm->pgd,
- pfn_pte(virt_to_phys(mm->pgd)>>PAGE_SHIFT, PAGE_KERNEL_RO), 0);
+ pfn_pte(virt_to_phys(mm->pgd)>>PAGE_SHIFT, PAGE_KERNEL_RO),
+ UVMF_TLB_FLUSH);
xen_pgd_pin(__pa(mm->pgd));
mm->context.pinned = 1;
spin_lock(&mm_unpinned_lock);
@@ -480,6 +481,7 @@ void mm_unpin(struct mm_struct *mm)
(unsigned long)mm->pgd,
pfn_pte(virt_to_phys(mm->pgd)>>PAGE_SHIFT, PAGE_KERNEL), 0);
mm_walk(mm, PAGE_KERNEL);
+ xen_tlb_flush();
mm->context.pinned = 0;
spin_lock(&mm_unpinned_lock);
list_add(&mm->context.unpinned, &mm_unpinned);
diff --git a/linux-2.6.11-xen-sparse/arch/xen/x86_64/kernel/head.S b/linux-2.6.11-xen-sparse/arch/xen/x86_64/kernel/head.S
index 8a9caf951a..d7000838d8 100644
--- a/linux-2.6.11-xen-sparse/arch/xen/x86_64/kernel/head.S
+++ b/linux-2.6.11-xen-sparse/arch/xen/x86_64/kernel/head.S
@@ -16,7 +16,7 @@
#include <linux/linkage.h>
.section __xen_guest
- .ascii "GUEST_OS=linux,GUEST_VER=2.6,XEN_VER=3.0,VIRT_BASE=0xffffffff80100000"
+ .ascii "GUEST_OS=linux,GUEST_VER=2.6,XEN_VER=3.0,VIRT_BASE=0xffffffff80000000"
.ascii ",LOADER=generic"
/* .ascii ",PT_MODE_WRITABLE" */
.byte 0
diff --git a/linux-2.6.11-xen-sparse/drivers/xen/blkback/interface.c b/linux-2.6.11-xen-sparse/drivers/xen/blkback/interface.c
index 46d55d1fd4..f6bf04fe5b 100644
--- a/linux-2.6.11-xen-sparse/drivers/xen/blkback/interface.c
+++ b/linux-2.6.11-xen-sparse/drivers/xen/blkback/interface.c
@@ -174,7 +174,7 @@ void blkif_connect(blkif_be_connect_t *connect)
return;
}
- prot = __pgprot(_PAGE_PRESENT | _PAGE_RW | _PAGE_DIRTY | _PAGE_ACCESSED);
+ prot = __pgprot(_KERNPG_TABLE);
error = direct_remap_area_pages(&init_mm, VMALLOC_VMADDR(vma->addr),
shmem_frame<<PAGE_SHIFT, PAGE_SIZE,
prot, domid);
diff --git a/linux-2.6.11-xen-sparse/drivers/xen/netback/interface.c b/linux-2.6.11-xen-sparse/drivers/xen/netback/interface.c
index 98c6cfa98b..e7d918124d 100644
--- a/linux-2.6.11-xen-sparse/drivers/xen/netback/interface.c
+++ b/linux-2.6.11-xen-sparse/drivers/xen/netback/interface.c
@@ -300,7 +300,7 @@ void netif_connect(netif_be_connect_t *connect)
return;
}
- prot = __pgprot(_PAGE_PRESENT | _PAGE_RW | _PAGE_DIRTY | _PAGE_ACCESSED);
+ prot = __pgprot(_KERNPG_TABLE);
error = direct_remap_area_pages(&init_mm,
VMALLOC_VMADDR(vma->addr),
tx_shmem_frame<<PAGE_SHIFT, PAGE_SIZE,
diff --git a/linux-2.6.11-xen-sparse/drivers/xen/usbback/interface.c b/linux-2.6.11-xen-sparse/drivers/xen/usbback/interface.c
index c1a16e8000..edca62bba5 100644
--- a/linux-2.6.11-xen-sparse/drivers/xen/usbback/interface.c
+++ b/linux-2.6.11-xen-sparse/drivers/xen/usbback/interface.c
@@ -170,7 +170,7 @@ void usbif_connect(usbif_be_connect_t *connect)
return;
}
- prot = __pgprot(_PAGE_PRESENT | _PAGE_RW | _PAGE_DIRTY | _PAGE_ACCESSED);
+ prot = __pgprot(_KERNPG_TABLE);
error = direct_remap_area_pages(&init_mm, VMALLOC_VMADDR(vma->addr),
shmem_frame<<PAGE_SHIFT, PAGE_SIZE,
prot, domid);
diff --git a/linux-2.6.11-xen-sparse/drivers/xen/usbback/usbback.c b/linux-2.6.11-xen-sparse/drivers/xen/usbback/usbback.c
index 0a4cf8b4ea..ac73bd0f2f 100644
--- a/linux-2.6.11-xen-sparse/drivers/xen/usbback/usbback.c
+++ b/linux-2.6.11-xen-sparse/drivers/xen/usbback/usbback.c
@@ -646,7 +646,7 @@ static void dispatch_usb_io(usbif_priv_t *up, usbif_request_t *req)
ASSERT(buffer_mach);
/* Always map writeable for now. */
- remap_prot = _PAGE_PRESENT|_PAGE_DIRTY|_PAGE_ACCESSED|_PAGE_RW;
+ remap_prot = _KERNPG_TABLE;
for ( i = 0, offset = 0; offset < req->length;
i++, offset += PAGE_SIZE )
diff --git a/tools/libxc/xc_linux_build.c b/tools/libxc/xc_linux_build.c
index 3692dbd5e5..dc92fff3f6 100644
--- a/tools/libxc/xc_linux_build.c
+++ b/tools/libxc/xc_linux_build.c
@@ -81,8 +81,8 @@ static int setup_guest(int xc_handle,
int rc;
unsigned long nr_pt_pages;
- unsigned long ppt_alloc;
- unsigned long *physmap, *physmap_e, physmap_pfn;
+ unsigned long ppt_alloc, physmap_pfn;
+ u32 *physmap, *physmap_e;
struct load_funcs load_funcs;
struct domain_setup_info dsi;
diff --git a/xen/common/grant_table.c b/xen/common/grant_table.c
index 9e7b7223e9..2afdbca0bf 100644
--- a/xen/common/grant_table.c
+++ b/xen/common/grant_table.c
@@ -258,7 +258,11 @@ __gnttab_activate_grant_ref(
{
/* Write update into the pagetable. */
l1_pgentry_t pte;
- pte = l1e_from_pfn(frame, _PAGE_PRESENT | _PAGE_ACCESSED | _PAGE_DIRTY);
+ pte = l1e_from_pfn(frame, _PAGE_PRESENT | _PAGE_ACCESSED | _PAGE_DIRTY
+#if defined(__x86_64__)
+ | _PAGE_USER
+#endif
+ );
if ( !(dev_hst_ro_flags & GNTMAP_readonly) )
l1e_add_flags(pte,_PAGE_RW);
rc = update_grant_va_mapping( host_virt_addr, pte,