[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-changelog] Remove shadow-translate Linux patches for now. We'll merge this stuff



# HG changeset patch
# User kaf24@xxxxxxxxxxxxxxxxxxxx
# Node ID 491a8798945e634976f05a69d6291b30674a172d
# Parent  3e7bcf1b6f706bb1fc2d51391fe656471542ff0d
Remove shadow-translate Linux patches for now. We'll merge this stuff
in piecemeal.

Signed-off-by: Keir Fraser <keir@xxxxxxxxxxxxx>

diff -r 3e7bcf1b6f70 -r 491a8798945e 
linux-2.6-xen-sparse/arch/xen/i386/kernel/ldt.c
--- a/linux-2.6-xen-sparse/arch/xen/i386/kernel/ldt.c   Sat Jan 28 10:09:18 2006
+++ b/linux-2.6-xen-sparse/arch/xen/i386/kernel/ldt.c   Sat Jan 28 11:09:45 2006
@@ -59,8 +59,8 @@
                cpumask_t mask;
                preempt_disable();
 #endif
-               make_pages_readonly(pc->ldt, (pc->size * LDT_ENTRY_SIZE) /
-                                   PAGE_SIZE);
+               make_mmu_pages_readonly(pc->ldt, (pc->size * LDT_ENTRY_SIZE) /
+                                       PAGE_SIZE);
                load_LDT(pc);
 #ifdef CONFIG_SMP
                mask = cpumask_of_cpu(smp_processor_id());
@@ -70,7 +70,7 @@
 #endif
        }
        if (oldsize) {
-               make_pages_writable(oldldt, (oldsize * LDT_ENTRY_SIZE) /
+               make_mmu_pages_writable(oldldt, (oldsize * LDT_ENTRY_SIZE) /
                        PAGE_SIZE);
                if (oldsize*LDT_ENTRY_SIZE > PAGE_SIZE)
                        vfree(oldldt);
@@ -86,8 +86,8 @@
        if (err < 0)
                return err;
        memcpy(new->ldt, old->ldt, old->size*LDT_ENTRY_SIZE);
-       make_pages_readonly(new->ldt, (new->size * LDT_ENTRY_SIZE) /
-                           PAGE_SIZE);
+       make_mmu_pages_readonly(new->ldt, (new->size * LDT_ENTRY_SIZE) /
+                               PAGE_SIZE);
        return 0;
 }
 
@@ -119,9 +119,9 @@
        if (mm->context.size) {
                if (mm == current->active_mm)
                        clear_LDT();
-               make_pages_writable(mm->context.ldt,
-                                   (mm->context.size * LDT_ENTRY_SIZE) /
-                                   PAGE_SIZE);
+               make_mmu_pages_writable(mm->context.ldt,
+                                       (mm->context.size * LDT_ENTRY_SIZE) /
+                                       PAGE_SIZE);
                if (mm->context.size*LDT_ENTRY_SIZE > PAGE_SIZE)
                        vfree(mm->context.ldt);
                else
diff -r 3e7bcf1b6f70 -r 491a8798945e 
linux-2.6-xen-sparse/arch/xen/i386/mm/hypervisor.c
--- a/linux-2.6-xen-sparse/arch/xen/i386/mm/hypervisor.c        Sat Jan 28 
10:09:18 2006
+++ b/linux-2.6-xen-sparse/arch/xen/i386/mm/hypervisor.c        Sat Jan 28 
11:09:45 2006
@@ -113,20 +113,6 @@
        BUG_ON(HYPERVISOR_mmuext_op(&op, 1, NULL, DOMID_SELF) < 0);
 }
 
-unsigned long xen_pfn_hole_start(void)
-{
-       struct mmuext_op op;
-       op.cmd = MMUEXT_PFN_HOLE_BASE;
-       return HYPERVISOR_mmuext_op(&op, 1, NULL, DOMID_SELF);
-}
-
-unsigned long xen_pfn_hole_size(void)
-{
-       struct mmuext_op op;
-       op.cmd = MMUEXT_PFN_HOLE_SIZE;
-       return HYPERVISOR_mmuext_op(&op, 1, NULL, DOMID_SELF);
-}
-
 void xen_new_user_pt(unsigned long ptr)
 {
        struct mmuext_op op;
@@ -279,7 +265,6 @@
  */
 unsigned long *contiguous_bitmap;
 
-#ifndef CONFIG_XEN_SHADOW_MODE
 static void contiguous_bitmap_set(
        unsigned long first_page, unsigned long nr_pages)
 {
@@ -452,19 +437,6 @@
 
        balloon_unlock(flags);
 }
-#else
-int xen_create_contiguous_region(
-       unsigned long vstat, unsigned int order, unsigned int address_bits)
-{
-       if (order >= 1)
-               BUG();
-       return 0;
-}
-
-void xen_destroy_contiguous_region(unsigned long vstart, unsigned int order)
-{
-}
-#endif
 
 #ifdef __i386__
 int write_ldt_entry(void *ldt, int entry, __u32 entry_a, __u32 entry_b)
diff -r 3e7bcf1b6f70 -r 491a8798945e 
linux-2.6-xen-sparse/arch/xen/i386/mm/init.c
--- a/linux-2.6-xen-sparse/arch/xen/i386/mm/init.c      Sat Jan 28 10:09:18 2006
+++ b/linux-2.6-xen-sparse/arch/xen/i386/mm/init.c      Sat Jan 28 11:09:45 2006
@@ -597,7 +597,6 @@
        int tmp;
        int bad_ppro;
        unsigned long pfn;
-        unsigned long hole_start, hole_size;
 
        contiguous_bitmap = alloc_bootmem_low_pages(
                (max_low_pfn + 2*BITS_PER_LONG) >> 3);
@@ -644,12 +643,6 @@
                set_page_count(&mem_map[pfn], 1);
                totalram_pages++;
        }
-
-        /* Make the Xen hole reserved. */
-        hole_size = xen_pfn_hole_size();
-        hole_start = xen_pfn_hole_start();
-        for (pfn = hole_start; pfn < hole_start + hole_size; pfn++)
-                SetPageReserved(pfn_to_page(pfn));
 
        reservedpages = 0;
        for (tmp = 0; tmp < max_low_pfn; tmp++)
diff -r 3e7bcf1b6f70 -r 491a8798945e 
linux-2.6-xen-sparse/arch/xen/i386/mm/pgtable.c
--- a/linux-2.6-xen-sparse/arch/xen/i386/mm/pgtable.c   Sat Jan 28 10:09:18 2006
+++ b/linux-2.6-xen-sparse/arch/xen/i386/mm/pgtable.c   Sat Jan 28 11:09:45 2006
@@ -389,11 +389,14 @@
        kmem_cache_free(pgd_cache, pgd);
 }
 
-
-void make_lowmem_page_readonly(void *va)
+#ifndef CONFIG_XEN_SHADOW_MODE
+void make_lowmem_mmu_page_readonly(void *va)
 {
        pte_t *pte;
        int rc;
+
+       if (xen_feature(writable_mmu_structures))
+               return;
 
        pte = virt_to_ptep(va);
        rc = HYPERVISOR_update_va_mapping(
@@ -401,10 +404,13 @@
        BUG_ON(rc);
 }
 
-void make_lowmem_page_writable(void *va)
+void make_lowmem_mmu_page_writable(void *va)
 {
        pte_t *pte;
        int rc;
+
+       if (xen_feature(writable_mmu_structures))
+               return;
 
        pte = virt_to_ptep(va);
        rc = HYPERVISOR_update_va_mapping(
@@ -412,11 +418,13 @@
        BUG_ON(rc);
 }
 
-
-void make_page_readonly(void *va)
+void make_mmu_page_readonly(void *va)
 {
        pte_t *pte;
        int rc;
+
+       if (xen_feature(writable_mmu_structures))
+               return;
 
        pte = virt_to_ptep(va);
        rc = HYPERVISOR_update_va_mapping(
@@ -430,15 +438,18 @@
                        kmap_flush_unused(); /* flush stale writable kmaps */
                else
 #endif
-                       make_lowmem_page_readonly(
+                       make_lowmem_mmu_page_readonly(
                                phys_to_virt(pfn << PAGE_SHIFT)); 
        }
 }
 
-void make_page_writable(void *va)
+void make_mmu_page_writable(void *va)
 {
        pte_t *pte;
        int rc;
+
+       if (xen_feature(writable_mmu_structures))
+               return;
 
        pte = virt_to_ptep(va);
        rc = HYPERVISOR_update_va_mapping(
@@ -450,70 +461,32 @@
 #ifdef CONFIG_HIGHMEM
                if (pfn < highstart_pfn)
 #endif
-                       make_lowmem_page_writable(
+                       make_lowmem_mmu_page_writable(
                                phys_to_virt(pfn << PAGE_SHIFT)); 
        }
 }
 
-void make_pages_readonly(void *va, unsigned nr)
-{
+void make_mmu_pages_readonly(void *va, unsigned int nr)
+{
+       if (xen_feature(writable_mmu_structures))
+               return;
+
        while (nr-- != 0) {
-               make_page_readonly(va);
+               make_mmu_page_readonly(va);
                va = (void *)((unsigned long)va + PAGE_SIZE);
        }
 }
 
-void make_pages_writable(void *va, unsigned nr)
-{
+void make_mmu_pages_writable(void *va, unsigned int nr)
+{
+       if (xen_feature(writable_mmu_structures))
+               return;
        while (nr-- != 0) {
-               make_page_writable(va);
+               make_mmu_page_writable(va);
                va = (void *)((unsigned long)va + PAGE_SIZE);
        }
 }
-
-#ifndef CONFIG_XEN_SHADOW_MODE
-void make_lowmem_mmu_page_readonly(void *va)
-{
-       if (xen_feature(writable_mmu_structures))
-               return;
-       make_lowmem_page_readonly(va);
-}
-
-void make_lowmem_mmu_page_writable(void *va)
-{
-       if (xen_feature(writable_mmu_structures))
-               return;
-       make_lowmem_page_writable(va);
-}
-
-void make_mmu_page_readonly(void *va)
-{
-       if (xen_feature(writable_mmu_structures))
-               return;
-       make_page_readonly(va);
-}
-
-void make_mmu_page_writable(void *va)
-{
-       if (xen_feature(writable_mmu_structures))
-               return;
-       make_page_writable(va);
-}
-
-void make_mmu_pages_readonly(void *va, unsigned int nr)
-{
-       if (xen_feature(writable_mmu_structures))
-               return;
-       make_pages_readonly(va, nr);
-}
-
-void make_mmu_pages_writable(void *va, unsigned int nr)
-{
-       if (xen_feature(writable_mmu_structures))
-               return;
-       make_pages_writable(va, nr);
-}
-#endif
+#endif /* CONFIG_XEN_SHADOW_MODE */
 
 static inline void pgd_walk_set_prot(void *pt, pgprot_t flags)
 {
@@ -564,8 +537,7 @@
 
 static void __pgd_pin(pgd_t *pgd)
 {
-       if (!xen_feature(writable_mmu_structures))
-               pgd_walk(pgd, PAGE_KERNEL_RO);
+       pgd_walk(pgd, PAGE_KERNEL_RO);
        xen_pgd_pin(__pa(pgd));
        set_bit(PG_pinned, &virt_to_page(pgd)->flags);
 }
@@ -573,8 +545,7 @@
 static void __pgd_unpin(pgd_t *pgd)
 {
        xen_pgd_unpin(__pa(pgd));
-       if (!xen_feature(writable_mmu_structures))
-               pgd_walk(pgd, PAGE_KERNEL);
+       pgd_walk(pgd, PAGE_KERNEL);
        clear_bit(PG_pinned, &virt_to_page(pgd)->flags);
 }
 
diff -r 3e7bcf1b6f70 -r 491a8798945e 
linux-2.6-xen-sparse/arch/xen/kernel/gnttab.c
--- a/linux-2.6-xen-sparse/arch/xen/kernel/gnttab.c     Sat Jan 28 10:09:18 2006
+++ b/linux-2.6-xen-sparse/arch/xen/kernel/gnttab.c     Sat Jan 28 11:09:45 2006
@@ -201,22 +201,25 @@
 }
 
 int
-gnttab_grant_foreign_transfer(domid_t domid, unsigned long pfn)
+gnttab_grant_foreign_transfer(domid_t domid)
 {
        int ref;
 
        if (unlikely((ref = get_free_entry()) == -1))
                return -ENOSPC;
-       gnttab_grant_foreign_transfer_ref(ref, domid, pfn);
+
+       shared[ref].frame = 0;
+       shared[ref].domid = domid;
+       wmb();
+       shared[ref].flags = GTF_accept_transfer;
 
        return ref;
 }
 
 void
-gnttab_grant_foreign_transfer_ref(grant_ref_t ref, domid_t domid,
-                                 unsigned long pfn)
-{
-       shared[ref].frame = pfn;
+gnttab_grant_foreign_transfer_ref(grant_ref_t ref, domid_t domid)
+{
+       shared[ref].frame = 0;
        shared[ref].domid = domid;
        wmb();
        shared[ref].flags = GTF_accept_transfer;
diff -r 3e7bcf1b6f70 -r 491a8798945e 
linux-2.6-xen-sparse/arch/xen/kernel/reboot.c
--- a/linux-2.6-xen-sparse/arch/xen/kernel/reboot.c     Sat Jan 28 10:09:18 2006
+++ b/linux-2.6-xen-sparse/arch/xen/kernel/reboot.c     Sat Jan 28 11:09:45 2006
@@ -74,7 +74,6 @@
 #endif
 
 
-#ifndef CONFIG_XEN_SHADOW_MODE
 static int __do_suspend(void *ignore)
 {
        int i, j, k, fpp;
@@ -217,13 +216,6 @@
 
        return err;
 }
-#else
-static int __do_suspend(void *ignore)
-{
-       printk(KERN_WARNING "Don't do suspend in shadow mode\n");
-       return -EOPNOTSUPP;
-}
-#endif
 
 static int shutdown_process(void *__unused)
 {
diff -r 3e7bcf1b6f70 -r 491a8798945e 
linux-2.6-xen-sparse/arch/xen/kernel/smpboot.c
--- a/linux-2.6-xen-sparse/arch/xen/kernel/smpboot.c    Sat Jan 28 10:09:18 2006
+++ b/linux-2.6-xen-sparse/arch/xen/kernel/smpboot.c    Sat Jan 28 11:09:45 2006
@@ -239,7 +239,7 @@
                memcpy((void *)cpu_gdt_descr[cpu].address,
                       (void *)cpu_gdt_descr[0].address,
                       cpu_gdt_descr[0].size);
-               make_page_readonly((void *)cpu_gdt_descr[cpu].address);
+               make_mmu_page_readonly((void *)cpu_gdt_descr[cpu].address);
 
                cpu_set(cpu, cpu_possible_map);
 #ifdef CONFIG_HOTPLUG_CPU
diff -r 3e7bcf1b6f70 -r 491a8798945e 
linux-2.6-xen-sparse/arch/xen/x86_64/mm/init.c
--- a/linux-2.6-xen-sparse/arch/xen/x86_64/mm/init.c    Sat Jan 28 10:09:18 2006
+++ b/linux-2.6-xen-sparse/arch/xen/x86_64/mm/init.c    Sat Jan 28 11:09:45 2006
@@ -93,10 +93,13 @@
                BUG();
 }
 
-void make_page_readonly(void *va)
+void make_mmu_page_readonly(void *va)
 {
        pgd_t *pgd; pud_t *pud; pmd_t *pmd; pte_t pte, *ptep;
        unsigned long addr = (unsigned long) va;
+
+       if (xen_feature(writable_mmu_structures))
+               return;
 
        pgd = pgd_offset_k(addr);
        pud = pud_offset(pgd, addr);
@@ -108,20 +111,16 @@
                xen_l1_entry_update(ptep, pte); /* fallback */
 
        if ((addr >= VMALLOC_START) && (addr < VMALLOC_END))
-               make_page_readonly(__va(pte_pfn(pte) << PAGE_SHIFT));
-}
-
-void make_mmu_page_readonly(void *va)
-{
+               make_mmu_page_readonly(__va(pte_pfn(pte) << PAGE_SHIFT));
+}
+
+void make_mmu_page_writable(void *va)
+{
+       pgd_t *pgd; pud_t *pud; pmd_t *pmd; pte_t pte, *ptep;
+       unsigned long addr = (unsigned long) va;
+
        if (xen_feature(writable_mmu_structures))
                return;
-       make_page_readonly(va);
-}
-
-void make_page_writable(void *va)
-{
-       pgd_t *pgd; pud_t *pud; pmd_t *pmd; pte_t pte, *ptep;
-       unsigned long addr = (unsigned long) va;
 
        pgd = pgd_offset_k(addr);
        pud = pud_offset(pgd, addr);
@@ -133,44 +132,28 @@
                xen_l1_entry_update(ptep, pte); /* fallback */
 
        if ((addr >= VMALLOC_START) && (addr < VMALLOC_END))
-               make_page_writable(__va(pte_pfn(pte) << PAGE_SHIFT));
-}
-
-void make_mmu_page_writable(void *va)
+               make_mmu_page_writable(__va(pte_pfn(pte) << PAGE_SHIFT));
+}
+
+void make_mmu_pages_readonly(void *va, unsigned nr)
 {
        if (xen_feature(writable_mmu_structures))
                return;
-       make_page_writable(va);
-}
-
-void make_pages_readonly(void *va, unsigned nr)
-{
+
        while (nr-- != 0) {
-               make_page_readonly(va);
+               make_mmu_page_readonly(va);
                va = (void*)((unsigned long)va + PAGE_SIZE);
        }
 }
 
-void make_mmu_pages_readonly(void *va, unsigned nr)
+void make_mmu_pages_writable(void *va, unsigned nr)
 {
        if (xen_feature(writable_mmu_structures))
                return;
-       make_pages_readonly(va, nr);
-}
-
-void make_pages_writable(void *va, unsigned nr)
-{
        while (nr-- != 0) {
-               make_page_writable(va);
+               make_mmu_page_writable(va);
                va = (void*)((unsigned long)va + PAGE_SIZE);
        }
-}
-
-void make_mmu_pages_writable(void *va, unsigned nr)
-{
-       if (xen_feature(writable_mmu_structures))
-               return;
-       make_pages_writable(va, nr);
 }
 
 /*
diff -r 3e7bcf1b6f70 -r 491a8798945e 
linux-2.6-xen-sparse/drivers/xen/balloon/balloon.c
--- a/linux-2.6-xen-sparse/drivers/xen/balloon/balloon.c        Sat Jan 28 
10:09:18 2006
+++ b/linux-2.6-xen-sparse/drivers/xen/balloon/balloon.c        Sat Jan 28 
11:09:45 2006
@@ -107,22 +107,9 @@
 #define WPRINTK(fmt, args...) \
        printk(KERN_WARNING "xen_mem: " fmt, ##args)
 
-static int page_is_xen_hole(unsigned long pfn)
-{
-       static unsigned long hole_start, hole_len = -1;
-       if (hole_len == -1) {
-               hole_start = xen_pfn_hole_start();
-               hole_len = xen_pfn_hole_size();
-       }
-       return pfn >= hole_start && pfn < hole_start + hole_len;
-}
-
 /* balloon_append: add the given page to the balloon. */
 static void balloon_append(struct page *page)
 {
-       if (page_is_xen_hole(page_to_pfn(page)))
-               panic("Attempt to add Xen-reserved pfn %lx to balloon.\n",
-                      page_to_pfn(page));
        /* Lowmem is re-populated first, so highmem pages go at list tail. */
        if (PageHighMem(page)) {
                list_add_tail(PAGE_TO_LIST(page), &ballooned_pages);
@@ -204,7 +191,6 @@
        for (i = 0; i < nr_pages; i++) {
                BUG_ON(page == NULL);
                frame_list[i] = page_to_pfn(page);;
-               BUG_ON(page_is_xen_hole(frame_list[i]));
                page = balloon_next_page(page);
        }
 
@@ -229,15 +215,12 @@
                BUG_ON(page == NULL);
 
                pfn = page_to_pfn(page);
-#ifndef CONFIG_XEN_SHADOW_MODE
-               /* In shadow mode, Xen handles this part for us. */
                BUG_ON(phys_to_machine_mapping_valid(pfn));
 
                /* Update P->M and M->P tables. */
                set_phys_to_machine(pfn, frame_list[i]);
                xen_machphys_update(frame_list[i], pfn);
-#endif
-
+            
                /* Link back into the page tables if not highmem. */
                if (pfn < max_low_pfn) {
                        int ret;
diff -r 3e7bcf1b6f70 -r 491a8798945e 
linux-2.6-xen-sparse/drivers/xen/netfront/netfront.c
--- a/linux-2.6-xen-sparse/drivers/xen/netfront/netfront.c      Sat Jan 28 
10:09:18 2006
+++ b/linux-2.6-xen-sparse/drivers/xen/netfront/netfront.c      Sat Jan 28 
11:09:45 2006
@@ -586,8 +586,7 @@
                BUG_ON((signed short)ref < 0);
                np->grant_rx_ref[id] = ref;
                gnttab_grant_foreign_transfer_ref(ref,
-                                                 np->xbdev->otherend_id,
-                                                 __pa(skb->head) >> 
PAGE_SHIFT);
+                                                 np->xbdev->otherend_id);
                RING_GET_REQUEST(&np->rx, req_prod + i)->gref = ref;
                rx_pfn_array[i] = virt_to_mfn(skb->head);
 
@@ -803,11 +802,9 @@
                np->stats.rx_bytes += rx->status;
 
                /* Remap the page. */
-#ifndef CONFIG_XEN_SHADOW_MODE
                mmu->ptr = ((maddr_t)mfn << PAGE_SHIFT) | MMU_MACHPHYS_UPDATE;
                mmu->val  = __pa(skb->head) >> PAGE_SHIFT;
                mmu++;
-#endif
                MULTI_update_va_mapping(mcl, (unsigned long)skb->head,
                                        pfn_pte_ma(mfn, PAGE_KERNEL), 0);
                mcl++;
@@ -1002,8 +999,7 @@
                if ((unsigned long)np->rx_skbs[i] < __PAGE_OFFSET)
                        continue;
                gnttab_grant_foreign_transfer_ref(
-                       np->grant_rx_ref[i], np->xbdev->otherend_id,
-                       __pa(np->rx_skbs[i]->data) >> PAGE_SHIFT);
+                       np->grant_rx_ref[i], np->xbdev->otherend_id);
                RING_GET_REQUEST(&np->rx, requeue_idx)->gref =
                        np->grant_rx_ref[i];
                RING_GET_REQUEST(&np->rx, requeue_idx)->id = i;
diff -r 3e7bcf1b6f70 -r 491a8798945e 
linux-2.6-xen-sparse/include/asm-xen/asm-i386/hypervisor.h
--- a/linux-2.6-xen-sparse/include/asm-xen/asm-i386/hypervisor.h        Sat Jan 
28 10:09:18 2006
+++ b/linux-2.6-xen-sparse/include/asm-xen/asm-i386/hypervisor.h        Sat Jan 
28 11:09:45 2006
@@ -101,9 +101,6 @@
 void xen_set_ldt(unsigned long ptr, unsigned long bytes);
 void xen_machphys_update(unsigned long mfn, unsigned long pfn);
 
-unsigned long xen_pfn_hole_start(void);
-unsigned long xen_pfn_hole_size(void);
-
 #ifdef CONFIG_SMP
 #include <linux/cpumask.h>
 void xen_tlb_flush_all(void);
diff -r 3e7bcf1b6f70 -r 491a8798945e 
linux-2.6-xen-sparse/include/asm-xen/asm-i386/page.h
--- a/linux-2.6-xen-sparse/include/asm-xen/asm-i386/page.h      Sat Jan 28 
10:09:18 2006
+++ b/linux-2.6-xen-sparse/include/asm-xen/asm-i386/page.h      Sat Jan 28 
11:09:45 2006
@@ -59,18 +59,8 @@
 #define clear_user_page(page, vaddr, pg)       clear_page(page)
 #define copy_user_page(to, from, vaddr, pg)    copy_page(to, from)
 
-/* Definitions for machine and pseudophysical addresses. */
-#ifdef CONFIG_X86_PAE
-typedef unsigned long long paddr_t;
-typedef unsigned long long maddr_t;
-#else
-typedef unsigned long paddr_t;
-typedef unsigned long maddr_t;
-#endif
-
 /**** MACHINE <-> PHYSICAL CONVERSION MACROS ****/
 #define INVALID_P2M_ENTRY      (~0UL)
-#ifndef CONFIG_XEN_SHADOW_MODE
 #define FOREIGN_FRAME(m)       ((m) | (1UL<<31))
 extern unsigned long *phys_to_machine_mapping;
 #define pfn_to_mfn(pfn)        \
@@ -103,6 +93,15 @@
        phys_to_machine_mapping[pfn] = mfn;
 }
 
+/* Definitions for machine and pseudophysical addresses. */
+#ifdef CONFIG_X86_PAE
+typedef unsigned long long paddr_t;
+typedef unsigned long long maddr_t;
+#else
+typedef unsigned long paddr_t;
+typedef unsigned long maddr_t;
+#endif
+
 static inline maddr_t phys_to_machine(paddr_t phys)
 {
        maddr_t machine = pfn_to_mfn(phys >> PAGE_SHIFT);
@@ -115,16 +114,7 @@
        phys = (phys << PAGE_SHIFT) | (machine & ~PAGE_MASK);
        return phys;
 }
-#else
-#define pfn_to_mfn(p) (p)
-#define mfn_to_pfn(m) (m)
-#define phys_to_machine(p) (p)
-#define machine_to_phys(m) (m)
-static inline void set_phys_to_machine(unsigned long pfn, unsigned long mfn)
-{
-       BUG_ON(pfn != mfn && mfn != INVALID_P2M_ENTRY);
-}
-#endif
+
 /*
  * These are used to make use of C type-checking..
  */
diff -r 3e7bcf1b6f70 -r 491a8798945e 
linux-2.6-xen-sparse/include/asm-xen/asm-i386/pgtable-2level.h
--- a/linux-2.6-xen-sparse/include/asm-xen/asm-i386/pgtable-2level.h    Sat Jan 
28 10:09:18 2006
+++ b/linux-2.6-xen-sparse/include/asm-xen/asm-i386/pgtable-2level.h    Sat Jan 
28 11:09:45 2006
@@ -64,7 +64,7 @@
 ({                                                                     \
        unsigned long mfn = pte_mfn(_pte);                              \
        unsigned long pfn = mfn_to_pfn(mfn);                            \
-       if ((pfn >= max_mapnr) || (pfn_to_mfn(pfn) != mfn))             \
+       if ((pfn >= max_mapnr) || (phys_to_machine_mapping[pfn] != mfn))\
                pfn = max_mapnr; /* special: force !pfn_valid() */      \
        pfn;                                                            \
 })
diff -r 3e7bcf1b6f70 -r 491a8798945e 
linux-2.6-xen-sparse/include/asm-xen/asm-i386/pgtable-3level.h
--- a/linux-2.6-xen-sparse/include/asm-xen/asm-i386/pgtable-3level.h    Sat Jan 
28 10:09:18 2006
+++ b/linux-2.6-xen-sparse/include/asm-xen/asm-i386/pgtable-3level.h    Sat Jan 
28 11:09:45 2006
@@ -149,7 +149,7 @@
 ({                                                                     \
        unsigned long mfn = pte_mfn(_pte);                              \
        unsigned long pfn = mfn_to_pfn(mfn);                            \
-       if ((pfn >= max_mapnr) || (pfn_to_mfn(pfn) != mfn))             \
+       if ((pfn >= max_mapnr) || (phys_to_machine_mapping[pfn] != mfn))\
                pfn = max_mapnr; /* special: force !pfn_valid() */      \
        pfn;                                                            \
 })
diff -r 3e7bcf1b6f70 -r 491a8798945e 
linux-2.6-xen-sparse/include/asm-xen/asm-i386/pgtable.h
--- a/linux-2.6-xen-sparse/include/asm-xen/asm-i386/pgtable.h   Sat Jan 28 
10:09:18 2006
+++ b/linux-2.6-xen-sparse/include/asm-xen/asm-i386/pgtable.h   Sat Jan 28 
11:09:45 2006
@@ -412,12 +412,6 @@
        ptep_set_access_flags(__vma, __address, __ptep, __entry, 1);    \
 } while (0)
 
-void make_lowmem_page_readonly(void *va);
-void make_lowmem_page_writable(void *va);
-void make_page_readonly(void *va);
-void make_page_writable(void *va);
-void make_pages_readonly(void *va, unsigned int nr);
-void make_pages_writable(void *va, unsigned int nr);
 #ifndef CONFIG_XEN_SHADOW_MODE
 void make_lowmem_mmu_page_readonly(void *va);
 void make_lowmem_mmu_page_writable(void *va);
diff -r 3e7bcf1b6f70 -r 491a8798945e 
linux-2.6-xen-sparse/include/asm-xen/gnttab.h
--- a/linux-2.6-xen-sparse/include/asm-xen/gnttab.h     Sat Jan 28 10:09:18 2006
+++ b/linux-2.6-xen-sparse/include/asm-xen/gnttab.h     Sat Jan 28 11:09:45 2006
@@ -50,7 +50,7 @@
 void gnttab_end_foreign_access(grant_ref_t ref, int readonly,
                               unsigned long page);
 
-int gnttab_grant_foreign_transfer(domid_t domid, unsigned long pfn);
+int gnttab_grant_foreign_transfer(domid_t domid);
 
 unsigned long gnttab_end_foreign_transfer_ref(grant_ref_t ref);
 unsigned long gnttab_end_foreign_transfer(grant_ref_t ref);
@@ -77,8 +77,7 @@
 void gnttab_grant_foreign_access_ref(grant_ref_t ref, domid_t domid,
                                     unsigned long frame, int readonly);
 
-void gnttab_grant_foreign_transfer_ref(grant_ref_t, domid_t domid,
-                                      unsigned long pfn);
+void gnttab_grant_foreign_transfer_ref(grant_ref_t, domid_t domid);
 
 #ifdef __ia64__
 #define gnttab_map_vaddr(map) __va(map.dev_bus_addr)

_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.