ChangeSet 1.1327.1.19, 2005/05/02 11:34:28-06:00, djm@xxxxxxxxxxxxxxx
Last round of cleanup (for now)
b/xen/arch/ia64/Makefile | 2
b/xen/arch/ia64/patch/linux-2.6.11/page.h | 47 ----
b/xen/arch/ia64/patch/linux-2.6.11/pgalloc.h | 42 +---
b/xen/arch/ia64/patch/linux-2.6.11/setup.c | 172 ++---------------
b/xen/arch/ia64/patch/linux-2.6.11/system.h | 22 --
b/xen/arch/ia64/patch/linux-2.6.11/time.c | 267 +--------------------------
b/xen/arch/ia64/patch/linux-2.6.11/tlb.c | 25 --
b/xen/arch/ia64/tools/mkbuildtree | 16 +
b/xen/arch/ia64/xenmisc.c | 8
b/xen/arch/ia64/xensetup.c | 9
b/xen/include/asm-ia64/config.h | 24 ++
xen/arch/ia64/patch/linux-2.6.11/swiotlb.c | 68 ------
12 files changed, 112 insertions(+), 590 deletions(-)
diff -Nru a/xen/arch/ia64/Makefile b/xen/arch/ia64/Makefile
--- a/xen/arch/ia64/Makefile 2005-05-03 04:08:59 -04:00
+++ b/xen/arch/ia64/Makefile 2005-05-03 04:08:59 -04:00
@@ -7,7 +7,7 @@
machvec.o dom0_ops.o domain.o \
idle0_task.o pal.o hpsim.o efi.o efi_stub.o ivt.o mm_contig.o \
xenmem.o sal.o cmdline.o mm_init.o tlb.o smpboot.o \
- extable.o linuxextable.o xenirq.o \
+ extable.o linuxextable.o xenirq.o xentime.o \
regionreg.o entry.o unaligned.o privop.o vcpu.o \
irq_ia64.o irq_lsapic.o vhpt.o xenasm.o dom_fw.o
# perfmon.o
diff -Nru a/xen/arch/ia64/patch/linux-2.6.11/page.h
b/xen/arch/ia64/patch/linux-2.6.11/page.h
--- a/xen/arch/ia64/patch/linux-2.6.11/page.h 2005-05-03 04:08:59 -04:00
+++ b/xen/arch/ia64/patch/linux-2.6.11/page.h 2005-05-03 04:08:59 -04:00
@@ -1,52 +1,34 @@
- page.h | 42 +++++++++++++++++++++++++++++++++++++++---
- 1 files changed, 39 insertions(+), 3 deletions(-)
-
-Index: linux-2.6.11-xendiffs/include/asm-ia64/page.h
-===================================================================
---- linux-2.6.11-xendiffs.orig/include/asm-ia64/page.h 2005-04-06
22:58:07.597539393 -0500
-+++ linux-2.6.11-xendiffs/include/asm-ia64/page.h 2005-04-06
23:06:15.908576975 -0500
-@@ -12,6 +12,9 @@
- #include <asm/intrinsics.h>
- #include <asm/types.h>
-
-+#ifndef __ASSEMBLY__
-+#include <asm/flushtlb.h>
-+#endif
- /*
- * PAGE_SHIFT determines the actual kernel page size.
- */
-@@ -95,9 +98,11 @@ extern int ia64_pfn_valid (unsigned long
+--- ../../linux-2.6.11/include/asm-ia64/page.h 2005-03-02 00:37:48.000000000
-0700
++++ include/asm-ia64/page.h 2005-05-02 11:25:33.000000000 -0600
+@@ -95,9 +95,15 @@
#endif
#ifndef CONFIG_DISCONTIGMEM
+#ifdef XEN
-+#define pfn_valid(pfn) (0)
++# define pfn_valid(pfn) (0)
++# define page_to_pfn(_page) ((unsigned long)((_page) - frame_table))
++# define pfn_to_page(_pfn) (frame_table + (_pfn))
+#else
# define pfn_valid(pfn) (((pfn) < max_mapnr) &&
ia64_pfn_valid(pfn))
--# define page_to_pfn(page) ((unsigned long) (page - mem_map))
--# define pfn_to_page(pfn) (mem_map + (pfn))
+ # define page_to_pfn(page) ((unsigned long) (page - mem_map))
+ # define pfn_to_page(pfn) (mem_map + (pfn))
+#endif
#else
extern struct page *vmem_map;
extern unsigned long max_low_pfn;
-@@ -106,9 +111,15 @@ extern unsigned long max_low_pfn;
- # define pfn_to_page(pfn) (vmem_map + (pfn))
- #endif
-
--#define page_to_phys(page) (page_to_pfn(page) << PAGE_SHIFT)
-+#define page_to_pfn(_page) ((unsigned long)((_page) - frame_table))
-+#define page_to_virt(_page) phys_to_virt(page_to_phys(_page))
-+
-+#define page_to_phys(_page) (page_to_pfn(_page) << PAGE_SHIFT)
+@@ -109,6 +115,11 @@
+ #define page_to_phys(page) (page_to_pfn(page) << PAGE_SHIFT)
#define virt_to_page(kaddr) pfn_to_page(__pa(kaddr) >> PAGE_SHIFT)
-+#define pfn_to_page(_pfn) (frame_table + (_pfn))
++#ifdef XEN
++#define page_to_virt(_page) phys_to_virt(page_to_phys(_page))
+#define phys_to_page(kaddr) pfn_to_page(((kaddr) >> PAGE_SHIFT))
++#endif
+
typedef union ia64_va {
struct {
unsigned long off : 61; /* intra-region offset */
-@@ -124,8 +135,25 @@ typedef union ia64_va {
+@@ -124,8 +135,23 @@
* expressed in this way to ensure they result in a single "dep"
* instruction.
*/
@@ -63,8 +45,6 @@
+// xen/drivers/console.c uses __va in a declaration (should be fixed!)
+#define __pa(x) ({xen_va _v; _v.l = (long) (x); _v.f.reg = 0;
_v.l;})
+#define __va(x) ({xen_va _v; _v.l = (long) (x); _v.f.reg = -1;
_v.p;})
-+//# define __pa(x) ((unsigned long)(((unsigned long)x) - PAGE_OFFSET))
-+//# define __va(x) ((void *)((char *)(x) + PAGE_OFFSET))
+#else
#define __pa(x) ({ia64_va _v; _v.l = (long) (x); _v.f.reg = 0;
_v.l;})
#define __va(x) ({ia64_va _v; _v.l = (long) (x); _v.f.reg = -1;
_v.p;})
@@ -72,7 +52,7 @@
#define REGION_NUMBER(x) ({ia64_va _v; _v.l = (long) (x); _v.f.reg;})
#define REGION_OFFSET(x) ({ia64_va _v; _v.l = (long) (x); _v.f.off;})
-@@ -197,11 +225,19 @@ get_order (unsigned long size)
+@@ -197,7 +223,11 @@
# define __pgprot(x) (x)
#endif /* !STRICT_MM_TYPECHECKS */
@@ -84,11 +64,3 @@
#define VM_DATA_DEFAULT_FLAGS (VM_READ | VM_WRITE |
\
VM_MAYREAD | VM_MAYWRITE | VM_MAYEXEC
| \
- (((current->personality &
READ_IMPLIES_EXEC) != 0) \
- ? VM_EXEC : 0))
-
-+#ifdef XEN
-+#define __flush_tlb() do {} while(0);
-+#endif
-+
- #endif /* _ASM_IA64_PAGE_H */
diff -Nru a/xen/arch/ia64/patch/linux-2.6.11/pgalloc.h
b/xen/arch/ia64/patch/linux-2.6.11/pgalloc.h
--- a/xen/arch/ia64/patch/linux-2.6.11/pgalloc.h 2005-05-03 04:08:59
-04:00
+++ b/xen/arch/ia64/patch/linux-2.6.11/pgalloc.h 2005-05-03 04:08:59
-04:00
@@ -1,78 +1,72 @@
- pgalloc.h | 17 +++++++++++------
- 1 files changed, 11 insertions(+), 6 deletions(-)
-
-Index: linux-2.6.11-xendiffs/include/asm-ia64/pgalloc.h
-===================================================================
---- linux-2.6.11-xendiffs.orig/include/asm-ia64/pgalloc.h 2005-04-08
11:57:30.909774800 -0500
-+++ linux-2.6.11-xendiffs/include/asm-ia64/pgalloc.h 2005-04-08
11:58:08.102711219 -0500
-@@ -18,6 +18,7 @@
- #include <linux/compiler.h>
- #include <linux/mm.h>
- #include <linux/page-flags.h>
-+#include <linux/preempt.h>
- #include <linux/threads.h>
-
- #include <asm/mmu_context.h>
-@@ -34,6 +35,10 @@
- #define pmd_quicklist (local_cpu_data->pmd_quick)
- #define pgtable_cache_size (local_cpu_data->pgtable_cache_sz)
-
-+/* FIXME: Later 3 level page table should be over, to create
-+ * new interface upon xen memory allocator. To simplify first
-+ * effort moving to xen allocator, use xenheap pages temporarily.
-+ */
- static inline pgd_t*
- pgd_alloc_one_fast (struct mm_struct *mm)
- {
-@@ -61,7 +66,7 @@ pgd_alloc (struct mm_struct *mm)
+--- ../../linux-2.6.11/include/asm-ia64/pgalloc.h 2005-03-02
00:37:31.000000000 -0700
++++ include/asm-ia64/pgalloc.h 2005-04-29 17:09:20.000000000 -0600
+@@ -61,7 +61,11 @@
pgd_t *pgd = pgd_alloc_one_fast(mm);
if (unlikely(pgd == NULL)) {
-- pgd = (pgd_t *)__get_free_page(GFP_KERNEL|__GFP_ZERO);
++#ifdef XEN
+ pgd = (pgd_t *)alloc_xenheap_page();
++#else
+ pgd = (pgd_t *)__get_free_page(GFP_KERNEL|__GFP_ZERO);
++#endif
}
return pgd;
}
-@@ -104,7 +109,7 @@ pmd_alloc_one_fast (struct mm_struct *mm
+@@ -104,7 +108,11 @@
static inline pmd_t*
pmd_alloc_one (struct mm_struct *mm, unsigned long addr)
{
-- pmd_t *pmd = (pmd_t
*)__get_free_page(GFP_KERNEL|__GFP_REPEAT|__GFP_ZERO);
++#ifdef XEN
+ pmd_t *pmd = (pmd_t *)alloc_xenheap_page();
++#else
+ pmd_t *pmd = (pmd_t
*)__get_free_page(GFP_KERNEL|__GFP_REPEAT|__GFP_ZERO);
++#endif
return pmd;
}
-@@ -136,7 +141,7 @@ pmd_populate_kernel (struct mm_struct *m
+@@ -136,7 +144,11 @@
static inline struct page *
pte_alloc_one (struct mm_struct *mm, unsigned long addr)
{
-- struct page *pte = alloc_pages(GFP_KERNEL|__GFP_REPEAT|__GFP_ZERO, 0);
++#ifdef XEN
+ struct page *pte = alloc_xenheap_page();
++#else
+ struct page *pte = alloc_pages(GFP_KERNEL|__GFP_REPEAT|__GFP_ZERO, 0);
++#endif
return pte;
}
-@@ -144,7 +149,7 @@ pte_alloc_one (struct mm_struct *mm, uns
+@@ -144,7 +156,11 @@
static inline pte_t *
pte_alloc_one_kernel (struct mm_struct *mm, unsigned long addr)
{
-- pte_t *pte = (pte_t
*)__get_free_page(GFP_KERNEL|__GFP_REPEAT|__GFP_ZERO);
++#ifdef XEN
+ pte_t *pte = (pte_t *)alloc_xenheap_page();
++#else
+ pte_t *pte = (pte_t
*)__get_free_page(GFP_KERNEL|__GFP_REPEAT|__GFP_ZERO);
++#endif
return pte;
}
-@@ -152,13 +157,13 @@ pte_alloc_one_kernel (struct mm_struct *
+@@ -152,13 +168,21 @@
static inline void
pte_free (struct page *pte)
{
-- __free_page(pte);
++#ifdef XEN
+ free_xenheap_page(pte);
++#else
+ __free_page(pte);
++#endif
}
static inline void
pte_free_kernel (pte_t *pte)
{
-- free_page((unsigned long) pte);
++#ifdef XEN
+ free_xenheap_page((unsigned long) pte);
++#else
+ free_page((unsigned long) pte);
++#endif
}
#define __pte_free_tlb(tlb, pte) tlb_remove_page((tlb), (pte))
diff -Nru a/xen/arch/ia64/patch/linux-2.6.11/setup.c
b/xen/arch/ia64/patch/linux-2.6.11/setup.c
--- a/xen/arch/ia64/patch/linux-2.6.11/setup.c 2005-05-03 04:08:59 -04:00
+++ b/xen/arch/ia64/patch/linux-2.6.11/setup.c 2005-05-03 04:08:59 -04:00
@@ -1,191 +1,96 @@
- setup.c | 72
+++++++++++++++++++++++++++++++++++++++++++++++++++-------------
- 1 files changed, 58 insertions(+), 14 deletions(-)
-
-Index: linux-2.6.11-xendiffs/arch/ia64/kernel/setup.c
-===================================================================
---- linux-2.6.11-xendiffs.orig/arch/ia64/kernel/setup.c 2005-04-07
17:44:13.294980153 -0500
-+++ linux-2.6.11-xendiffs/arch/ia64/kernel/setup.c 2005-04-07
17:46:37.157717072 -0500
-@@ -21,6 +21,9 @@
- #include <linux/init.h>
-
- #include <linux/acpi.h>
-+#ifdef XEN
-+#include <xen/sched.h>
-+#endif
- #include <linux/bootmem.h>
- #include <linux/console.h>
- #include <linux/delay.h>
-@@ -30,13 +33,17 @@
- #include <linux/seq_file.h>
- #include <linux/string.h>
- #include <linux/threads.h>
_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog
|