aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorawilliam@xenbuild.aw <awilliam@xenbuild.aw>2006-08-04 09:32:00 -0600
committerawilliam@xenbuild.aw <awilliam@xenbuild.aw>2006-08-04 09:32:00 -0600
commit443287f1b8e3fa3b962ef23ef2f91248fb82fd4a (patch)
treea781b153a0417cf9a53756b94fa7a20fb1cbe614
parent853e51aa53d72b48fca8332eb50b04fafd0e2a67 (diff)
downloadxen-443287f1b8e3fa3b962ef23ef2f91248fb82fd4a.tar.gz
xen-443287f1b8e3fa3b962ef23ef2f91248fb82fd4a.tar.bz2
xen-443287f1b8e3fa3b962ef23ef2f91248fb82fd4a.zip
[IA64] Remove P==M support
Remove the old P==M dom0 memory model support. It's likely broken by now anyway. Signed-off-by: Alex Williamson <alex.williamson@hp.com>
-rw-r--r--buildconfigs/linux-defconfig_xen0_ia641
-rw-r--r--buildconfigs/linux-defconfig_xenU_ia641
-rw-r--r--buildconfigs/linux-defconfig_xen_ia641
-rw-r--r--linux-2.6-xen-sparse/arch/ia64/Kconfig28
-rw-r--r--linux-2.6-xen-sparse/arch/ia64/xen/Makefile6
-rw-r--r--linux-2.6-xen-sparse/arch/ia64/xen/util.c15
-rw-r--r--linux-2.6-xen-sparse/drivers/xen/blkback/blkback.c12
-rw-r--r--linux-2.6-xen-sparse/drivers/xen/blkback/interface.c6
-rw-r--r--linux-2.6-xen-sparse/drivers/xen/blktap/blktap.c5
-rw-r--r--linux-2.6-xen-sparse/drivers/xen/blktap/interface.c6
-rw-r--r--linux-2.6-xen-sparse/include/asm-ia64/agp.h12
-rw-r--r--linux-2.6-xen-sparse/include/asm-ia64/dma-mapping.h24
-rw-r--r--linux-2.6-xen-sparse/include/asm-ia64/hypercall.h23
-rw-r--r--linux-2.6-xen-sparse/include/asm-ia64/hypervisor.h16
-rw-r--r--linux-2.6-xen-sparse/include/asm-ia64/io.h8
-rw-r--r--linux-2.6-xen-sparse/include/asm-ia64/machvec.h2
-rw-r--r--linux-2.6-xen-sparse/include/asm-ia64/page.h10
-rw-r--r--xen/arch/ia64/Rules.mk4
-rw-r--r--xen/arch/ia64/xen/dom0_ops.c2
-rw-r--r--xen/arch/ia64/xen/dom_fw.c62
-rw-r--r--xen/arch/ia64/xen/domain.c28
-rw-r--r--xen/arch/ia64/xen/hypercall.c4
-rw-r--r--xen/arch/ia64/xen/hyperprivop.S14
-rw-r--r--xen/arch/ia64/xen/mm.c53
-rw-r--r--xen/arch/ia64/xen/vcpu.c2
-rw-r--r--xen/arch/ia64/xen/xensetup.c7
-rw-r--r--xen/include/asm-ia64/config.h2
-rw-r--r--xen/include/asm-ia64/grant_table.h18
-rw-r--r--xen/include/asm-ia64/mm.h6
-rw-r--r--xen/include/asm-ia64/shadow.h2
-rw-r--r--xen/include/asm-ia64/vhpt.h4
31 files changed, 19 insertions, 365 deletions
diff --git a/buildconfigs/linux-defconfig_xen0_ia64 b/buildconfigs/linux-defconfig_xen0_ia64
index 5194f56bc1..0a0edf1272 100644
--- a/buildconfigs/linux-defconfig_xen0_ia64
+++ b/buildconfigs/linux-defconfig_xen0_ia64
@@ -91,7 +91,6 @@ CONFIG_TIME_INTERPOLATION=y
CONFIG_EFI=y
CONFIG_GENERIC_IOMAP=y
CONFIG_XEN=y
-CONFIG_XEN_IA64_DOM0_VP=y
CONFIG_XEN_IA64_VDSO_PARAVIRT=y
CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y
CONFIG_DMA_IS_DMA32=y
diff --git a/buildconfigs/linux-defconfig_xenU_ia64 b/buildconfigs/linux-defconfig_xenU_ia64
index 650a026632..b448bd5ad2 100644
--- a/buildconfigs/linux-defconfig_xenU_ia64
+++ b/buildconfigs/linux-defconfig_xenU_ia64
@@ -88,7 +88,6 @@ CONFIG_TIME_INTERPOLATION=y
CONFIG_EFI=y
CONFIG_GENERIC_IOMAP=y
CONFIG_XEN=y
-CONFIG_XEN_IA64_DOM0_VP=y
CONFIG_XEN_IA64_VDSO_PARAVIRT=y
CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y
CONFIG_DMA_IS_DMA32=y
diff --git a/buildconfigs/linux-defconfig_xen_ia64 b/buildconfigs/linux-defconfig_xen_ia64
index 51f191d6e8..ec915c29d9 100644
--- a/buildconfigs/linux-defconfig_xen_ia64
+++ b/buildconfigs/linux-defconfig_xen_ia64
@@ -91,7 +91,6 @@ CONFIG_TIME_INTERPOLATION=y
CONFIG_EFI=y
CONFIG_GENERIC_IOMAP=y
CONFIG_XEN=y
-CONFIG_XEN_IA64_DOM0_VP=y
CONFIG_XEN_IA64_VDSO_PARAVIRT=y
CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y
CONFIG_DMA_IS_DMA32=y
diff --git a/linux-2.6-xen-sparse/arch/ia64/Kconfig b/linux-2.6-xen-sparse/arch/ia64/Kconfig
index a74eeffde4..0a21dbbed3 100644
--- a/linux-2.6-xen-sparse/arch/ia64/Kconfig
+++ b/linux-2.6-xen-sparse/arch/ia64/Kconfig
@@ -57,20 +57,6 @@ config XEN
Enable Xen hypervisor support. Resulting kernel runs
both as a guest OS on Xen and natively on hardware.
-config XEN_IA64_DOM0_VP
- bool "dom0 vp model"
- depends on XEN
- default n
- help
- dom0 vp model
-
-config XEN_IA64_DOM0_NON_VP
- bool
- depends on XEN && !XEN_IA64_DOM0_VP
- default y
- help
- dom0 P=M model
-
config XEN_IA64_VDSO_PARAVIRT
bool
depends on XEN && !ITANIUM
@@ -516,25 +502,25 @@ source "crypto/Kconfig"
#
if XEN
config XEN_UTIL
- default n if XEN_IA64_DOM0_VP
+ default n
config HAVE_ARCH_ALLOC_SKB
- default n if !XEN_IA64_DOM0_VP
+ default y
config HAVE_ARCH_DEV_ALLOC_SKB
- default n if !XEN_IA64_DOM0_VP
+ default y
config XEN_BALLOON
- default n if !XEN_IA64_DOM0_VP
+ default y
config XEN_SKBUFF
- default n if !XEN_IA64_DOM0_VP
+ default y
config XEN_NETDEV_BACKEND
- default n if !XEN_IA64_DOM0_VP
+ default y
config XEN_NETDEV_FRONTEND
- default n if !XEN_IA64_DOM0_VP
+ default y
config XEN_DEVMEM
default n
diff --git a/linux-2.6-xen-sparse/arch/ia64/xen/Makefile b/linux-2.6-xen-sparse/arch/ia64/xen/Makefile
index 7a3d1a1f63..c2b4f94edd 100644
--- a/linux-2.6-xen-sparse/arch/ia64/xen/Makefile
+++ b/linux-2.6-xen-sparse/arch/ia64/xen/Makefile
@@ -2,7 +2,7 @@
# Makefile for Xen components
#
-obj-y := hypercall.o xenivt.o xenentry.o xensetup.o xenpal.o xenhpski.o
+obj-y := hypercall.o xenivt.o xenentry.o xensetup.o xenpal.o xenhpski.o \
+ hypervisor.o pci-dma-xen.o util.o
-obj-$(CONFIG_XEN_IA64_DOM0_VP) += hypervisor.o pci-dma-xen.o util.o
-pci-dma-xen-$(CONFIG_XEN_IA64_DOM0_VP) := ../../i386/kernel/pci-dma-xen.o
+pci-dma-xen-y := ../../i386/kernel/pci-dma-xen.o
diff --git a/linux-2.6-xen-sparse/arch/ia64/xen/util.c b/linux-2.6-xen-sparse/arch/ia64/xen/util.c
index cb75c504fc..02dfaabc66 100644
--- a/linux-2.6-xen-sparse/arch/ia64/xen/util.c
+++ b/linux-2.6-xen-sparse/arch/ia64/xen/util.c
@@ -105,21 +105,6 @@ void unlock_vm_area(struct vm_struct *area)
}
EXPORT_SYMBOL_GPL(unlock_vm_area);
-#ifndef CONFIG_XEN_IA64_DOM0_VP
-/* We just need a range of legal va here, though finally identity
- * mapped one is instead used for gnttab mapping.
- */
-unsigned long alloc_empty_foreign_map_page_range(unsigned long pages)
-{
- struct vm_struct *vma;
-
- if ( (vma = get_vm_area(PAGE_SIZE * pages, VM_ALLOC)) == NULL )
- return NULL;
-
- return (unsigned long)vma->addr;
-}
-#endif
-
/*
* Local variables:
* c-file-style: "linux"
diff --git a/linux-2.6-xen-sparse/drivers/xen/blkback/blkback.c b/linux-2.6-xen-sparse/drivers/xen/blkback/blkback.c
index ace6dbcc37..8b5cf74d97 100644
--- a/linux-2.6-xen-sparse/drivers/xen/blkback/blkback.c
+++ b/linux-2.6-xen-sparse/drivers/xen/blkback/blkback.c
@@ -398,14 +398,9 @@ static void dispatch_rw_block_io(blkif_t *blkif,
}
pending_handle(pending_req, i) = map[i].handle;
-#ifdef CONFIG_XEN_IA64_DOM0_NON_VP
- pending_vaddrs[vaddr_pagenr(pending_req, i)] =
- (unsigned long)gnttab_map_vaddr(map[i]);
-#else
set_phys_to_machine(__pa(vaddr(
pending_req, i)) >> PAGE_SHIFT,
FOREIGN_FRAME(map[i].dev_bus_addr >> PAGE_SHIFT));
-#endif
seg[i].buf = map[i].dev_bus_addr |
(req->seg[i].first_sect << 9);
}
@@ -534,16 +529,9 @@ static int __init blkif_init(void)
blkif_interface_init();
-#ifdef CONFIG_XEN_IA64_DOM0_NON_VP
- extern unsigned long alloc_empty_foreign_map_page_range(
- unsigned long pages);
- mmap_vstart = (unsigned long)
- alloc_empty_foreign_map_page_range(mmap_pages);
-#else /* ! ia64 */
page = balloon_alloc_empty_page_range(mmap_pages);
BUG_ON(page == NULL);
mmap_vstart = (unsigned long)pfn_to_kaddr(page_to_pfn(page));
-#endif
printk("%s: reqs=%d, pages=%d, mmap_vstart=0x%lx\n",
__FUNCTION__, blkif_reqs, mmap_pages, mmap_vstart);
BUG_ON(mmap_vstart == 0);
diff --git a/linux-2.6-xen-sparse/drivers/xen/blkback/interface.c b/linux-2.6-xen-sparse/drivers/xen/blkback/interface.c
index e5d67ea633..53b4764c42 100644
--- a/linux-2.6-xen-sparse/drivers/xen/blkback/interface.c
+++ b/linux-2.6-xen-sparse/drivers/xen/blkback/interface.c
@@ -76,12 +76,6 @@ static int map_frontend_page(blkif_t *blkif, unsigned long shared_page)
blkif->shmem_ref = shared_page;
blkif->shmem_handle = op.handle;
-#ifdef CONFIG_XEN_IA64_DOM0_NON_VP
- /* on some arch's, map_grant_ref behaves like mmap, in that the
- * passed address is a hint and a different address may be returned */
- blkif->blk_ring_area->addr = gnttab_map_vaddr(op);
-#endif
-
return 0;
}
diff --git a/linux-2.6-xen-sparse/drivers/xen/blktap/blktap.c b/linux-2.6-xen-sparse/drivers/xen/blktap/blktap.c
index deb9e61933..2f51a50406 100644
--- a/linux-2.6-xen-sparse/drivers/xen/blktap/blktap.c
+++ b/linux-2.6-xen-sparse/drivers/xen/blktap/blktap.c
@@ -1299,13 +1299,8 @@ static void dispatch_rw_block_io(blkif_t *blkif,
= map[i].handle;
pending_handle(mmap_idx, pending_idx, i/2).user
= map[i+1].handle;
-#ifdef CONFIG_XEN_IA64_DOM0_NON_VP
- pending_addrs[mmap_idx][vaddr_pagenr(pending_req, i)] =
- (unsigned long)gnttab_map_vaddr(map[i]);
-#else
set_phys_to_machine(__pa(kvaddr) >> PAGE_SHIFT,
FOREIGN_FRAME(map[i].dev_bus_addr >> PAGE_SHIFT));
-#endif
offset = (uvaddr - info->vma->vm_start) >> PAGE_SHIFT;
pg = pfn_to_page(__pa(kvaddr) >> PAGE_SHIFT);
((struct page **)info->vma->vm_private_data)[offset] =
diff --git a/linux-2.6-xen-sparse/drivers/xen/blktap/interface.c b/linux-2.6-xen-sparse/drivers/xen/blktap/interface.c
index 94727b1306..19e0eda0a0 100644
--- a/linux-2.6-xen-sparse/drivers/xen/blktap/interface.c
+++ b/linux-2.6-xen-sparse/drivers/xen/blktap/interface.c
@@ -76,12 +76,6 @@ static int map_frontend_page(blkif_t *blkif, unsigned long shared_page)
blkif->shmem_ref = shared_page;
blkif->shmem_handle = op.handle;
-#ifdef CONFIG_XEN_IA64_DOM0_NON_VP
- /* on some arch's, map_grant_ref behaves like mmap, in that the
- * passed address is a hint and a different address may be returned */
- blkif->blk_ring_area->addr = gnttab_map_vaddr(op);
-#endif
-
return 0;
}
diff --git a/linux-2.6-xen-sparse/include/asm-ia64/agp.h b/linux-2.6-xen-sparse/include/asm-ia64/agp.h
index 5750b23c97..31bf2831ed 100644
--- a/linux-2.6-xen-sparse/include/asm-ia64/agp.h
+++ b/linux-2.6-xen-sparse/include/asm-ia64/agp.h
@@ -19,21 +19,10 @@
#define flush_agp_cache() mb()
/* Convert a physical address to an address suitable for the GART. */
-#ifndef CONFIG_XEN_IA64_DOM0_VP
-#define phys_to_gart(x) (x)
-#define gart_to_phys(x) (x)
-#else
#define phys_to_gart(x) phys_to_machine_for_dma(x)
#define gart_to_phys(x) machine_to_phys_for_dma(x)
-#endif
/* GATT allocation. Returns/accepts GATT kernel virtual address. */
-#ifndef CONFIG_XEN_IA64_DOM0_VP
-#define alloc_gatt_pages(order) \
- ((char *)__get_free_pages(GFP_KERNEL, (order)))
-#define free_gatt_pages(table, order) \
- free_pages((unsigned long)(table), (order))
-#else
#include <asm/hypervisor.h>
static inline char*
alloc_gatt_pages(unsigned int order)
@@ -57,6 +46,5 @@ free_gatt_pages(void* table, unsigned int order)
xen_destroy_contiguous_region((unsigned long)table, order);
free_pages((unsigned long)table, order);
}
-#endif /* CONFIG_XEN_IA64_DOM0_VP */
#endif /* _ASM_IA64_AGP_H */
diff --git a/linux-2.6-xen-sparse/include/asm-ia64/dma-mapping.h b/linux-2.6-xen-sparse/include/asm-ia64/dma-mapping.h
index a4a937915a..a0e6f4200f 100644
--- a/linux-2.6-xen-sparse/include/asm-ia64/dma-mapping.h
+++ b/linux-2.6-xen-sparse/include/asm-ia64/dma-mapping.h
@@ -7,28 +7,11 @@
*/
#include <linux/config.h>
#include <asm/machvec.h>
-#ifdef CONFIG_XEN_IA64_DOM0_VP
/* Needed for arch/i386/kernel/swiotlb.c and arch/i386/kernel/pci-dma-xen.c */
#include <asm/hypervisor.h>
/* Needed for arch/i386/kernel/swiotlb.c */
#include <asm-i386/mach-xen/asm/swiotlb.h>
-#endif
-
-#ifndef CONFIG_XEN_IA64_DOM0_VP
-#define dma_alloc_coherent platform_dma_alloc_coherent
-#define dma_alloc_noncoherent platform_dma_alloc_coherent /* coherent mem. is cheap */
-#define dma_free_coherent platform_dma_free_coherent
-#define dma_free_noncoherent platform_dma_free_coherent
-#define dma_map_single platform_dma_map_single
-#define dma_map_sg platform_dma_map_sg
-#define dma_unmap_single platform_dma_unmap_single
-#define dma_unmap_sg platform_dma_unmap_sg
-#define dma_sync_single_for_cpu platform_dma_sync_single_for_cpu
-#define dma_sync_sg_for_cpu platform_dma_sync_sg_for_cpu
-#define dma_sync_single_for_device platform_dma_sync_single_for_device
-#define dma_sync_sg_for_device platform_dma_sync_sg_for_device
-#define dma_mapping_error platform_dma_mapping_error
-#else
+
int dma_map_sg(struct device *hwdev, struct scatterlist *sg, int nents,
enum dma_data_direction direction);
void dma_unmap_sg(struct device *hwdev, struct scatterlist *sg, int nents,
@@ -67,7 +50,6 @@ dma_sync_sg_for_device(struct device *dev, struct scatterlist *sg, int nelems,
swiotlb_sync_sg_for_device(dev,sg,nelems,direction);
flush_write_buffers();
}
-#endif
#define dma_map_page(dev, pg, off, size, dir) \
dma_map_single(dev, page_address(pg) + (off), (size), (dir))
@@ -109,7 +91,6 @@ dma_cache_sync (void *vaddr, size_t size, enum dma_data_direction dir)
#define dma_is_consistent(dma_handle) (1) /* all we do is coherent memory... */
-#ifdef CONFIG_XEN_IA64_DOM0_VP
/* arch/i386/kernel/swiotlb.o requires */
void contiguous_bitmap_init(unsigned long end_pfn);
@@ -130,8 +111,5 @@ range_straddles_page_boundary(void *p, size_t size)
return (((((unsigned long)p & ~PAGE_MASK) + size) > PAGE_SIZE) &&
!test_bit(__pa(p) >> PAGE_SHIFT, contiguous_bitmap));
}
-#else
-#define contiguous_bitmap_init(end_pfn) ((void)end_pfn)
-#endif
#endif /* _ASM_IA64_DMA_MAPPING_H */
diff --git a/linux-2.6-xen-sparse/include/asm-ia64/hypercall.h b/linux-2.6-xen-sparse/include/asm-ia64/hypercall.h
index 6c7c5014ed..e2fe103e65 100644
--- a/linux-2.6-xen-sparse/include/asm-ia64/hypercall.h
+++ b/linux-2.6-xen-sparse/include/asm-ia64/hypercall.h
@@ -195,14 +195,6 @@ HYPERVISOR_multicall(
return _hypercall2(int, multicall, call_list, nr_calls);
}
-#ifndef CONFIG_XEN_IA64_DOM0_VP
-static inline int
-HYPERVISOR_memory_op(
- unsigned int cmd, void *arg)
-{
- return _hypercall2(int, memory_op, cmd, arg);
-}
-#else
//XXX xen/ia64 copy_from_guest() is broken.
// This is a temporal work around until it is fixed.
static inline int
@@ -230,7 +222,6 @@ HYPERVISOR_memory_op(
}
/* NOTREACHED */
}
-#endif
static inline int
HYPERVISOR_event_channel_op(
@@ -288,12 +279,8 @@ ____HYPERVISOR_grant_table_op(
{
return _hypercall3(int, grant_table_op, cmd, uop, count);
}
-#ifndef CONFIG_XEN_IA64_DOM0_VP
-#define HYPERVISOR_grant_table_op(cmd, uop, count) \
- ____HYPERVISOR_grant_table_op((cmd), (uop), (count))
-#else
+
int HYPERVISOR_grant_table_op(unsigned int cmd, void *uop, unsigned int count);
-#endif
static inline int
HYPERVISOR_vcpu_op(
@@ -319,7 +306,6 @@ static inline void exit_idle(void) {}
irq_exit(); \
})
-#ifdef CONFIG_XEN_IA64_DOM0_VP
#include <linux/err.h>
#include <asm/xen/privop.h>
@@ -507,11 +493,4 @@ HYPERVISOR_add_physmap(unsigned long gpfn, unsigned long mfn,
// for balloon driver
#define HYPERVISOR_update_va_mapping(va, new_val, flags) (0)
-#else
-#define HYPERVISOR_ioremap(ioaddr, size) (ioaddr)
-#define HYPERVISOR_phystomach(gpfn) (gpfn)
-#define HYPERVISOR_machtophys(mfn) (mfn)
-#define HYPERVISOR_zap_physmap(gpfn, extent_order) (0)
-#define HYPERVISOR_add_physmap(gpfn, mfn, flags) (0)
-#endif
#endif /* __HYPERCALL_H__ */
diff --git a/linux-2.6-xen-sparse/include/asm-ia64/hypervisor.h b/linux-2.6-xen-sparse/include/asm-ia64/hypervisor.h
index e39d90e3a1..67c45d90e9 100644
--- a/linux-2.6-xen-sparse/include/asm-ia64/hypervisor.h
+++ b/linux-2.6-xen-sparse/include/asm-ia64/hypervisor.h
@@ -125,11 +125,6 @@ HYPERVISOR_poll(
// for drivers/xen/privcmd/privcmd.c
#define machine_to_phys_mapping 0
-#ifndef CONFIG_XEN_IA64_DOM0_VP
-#define direct_remap_pfn_range(a,b,c,d,e,f) remap_pfn_range(a,b,c,d,e)
-#define pfn_to_mfn(x) (x)
-#define mfn_to_pfn(x) (x)
-#else
struct vm_area_struct;
int direct_remap_pfn_range(struct vm_area_struct *vma,
unsigned long address,
@@ -140,7 +135,6 @@ int direct_remap_pfn_range(struct vm_area_struct *vma,
struct file;
int privcmd_mmap(struct file * file, struct vm_area_struct * vma);
#define HAVE_ARCH_PRIVCMD_MMAP
-#endif
// for drivers/xen/balloon/balloon.c
#ifdef CONFIG_XEN_SCRUB_PAGES
@@ -152,12 +146,7 @@ int privcmd_mmap(struct file * file, struct vm_area_struct * vma);
#define __pte_ma(_x) ((pte_t) {(_x)})
#define phys_to_machine_mapping_valid(_x) (1)
#define pfn_pte_ma(_x,_y) __pte_ma(0)
-#ifndef CONFIG_XEN_IA64_DOM0_VP //XXX
-#define set_phys_to_machine(_x,_y) do {} while (0)
-#define xen_machphys_update(_x,_y) do {} while (0)
-#endif
-#ifdef CONFIG_XEN_IA64_DOM0_VP
int __xen_create_contiguous_region(unsigned long vstart, unsigned int order, unsigned int address_bits);
static inline int
xen_create_contiguous_region(unsigned long vstart,
@@ -191,11 +180,6 @@ MULTI_update_va_mapping(
mcl->result = 0;
}
-#else
-#define xen_create_contiguous_region(vstart, order, address_bits) (0)
-#define xen_destroy_contiguous_region(vstart, order) do {} while (0)
-#endif
-
// for debug
asmlinkage int xprintk(const char *fmt, ...);
#define xprintd(fmt, ...) xprintk("%s:%d " fmt, __func__, __LINE__, \
diff --git a/linux-2.6-xen-sparse/include/asm-ia64/io.h b/linux-2.6-xen-sparse/include/asm-ia64/io.h
index bc1ee86272..86f6297e38 100644
--- a/linux-2.6-xen-sparse/include/asm-ia64/io.h
+++ b/linux-2.6-xen-sparse/include/asm-ia64/io.h
@@ -97,13 +97,6 @@ extern int valid_mmap_phys_addr_range (unsigned long addr, size_t *count);
* The following two macros are deprecated and scheduled for removal.
* Please use the PCI-DMA interface defined in <asm/pci.h> instead.
*/
-#ifndef CONFIG_XEN_IA64_DOM0_VP
-#define bus_to_virt phys_to_virt
-#define virt_to_bus virt_to_phys
-#define page_to_bus page_to_phys
-#define page_to_phys(page) (page_to_pfn(page) << PAGE_SHIFT)
-#define page_to_pseudophys(page) page_to_phys(page)
-#else
#define bus_to_virt(bus) \
phys_to_virt(machine_to_phys_for_dma(bus))
#define virt_to_bus(virt) \
@@ -131,7 +124,6 @@ extern int valid_mmap_phys_addr_range (unsigned long addr, size_t *count);
(((bvec_to_bus((vec1)) + (vec1)->bv_len) == bvec_to_bus((vec2))) && \
((bvec_to_pseudophys((vec1)) + (vec1)->bv_len) == \
bvec_to_pseudophys((vec2))))
-#endif
# endif /* KERNEL */
diff --git a/linux-2.6-xen-sparse/include/asm-ia64/machvec.h b/linux-2.6-xen-sparse/include/asm-ia64/machvec.h
index 20c9e9cfc4..1a5158b8d1 100644
--- a/linux-2.6-xen-sparse/include/asm-ia64/machvec.h
+++ b/linux-2.6-xen-sparse/include/asm-ia64/machvec.h
@@ -247,7 +247,6 @@ extern void machvec_init (const char *name);
# error Unknown configuration. Update asm-ia64/machvec.h.
# endif /* CONFIG_IA64_GENERIC */
-#ifdef CONFIG_XEN_IA64_DOM0_VP
# define platform_dma_map_sg dma_map_sg
# define platform_dma_unmap_sg dma_unmap_sg
# define platform_dma_mapping_error dma_mapping_error
@@ -260,7 +259,6 @@ extern void machvec_init (const char *name);
dma_sync_single_for_cpu
# define platform_dma_sync_single_for_device \
dma_sync_single_for_device
-#endif
/*
* Declare default routines which aren't declared anywhere else:
diff --git a/linux-2.6-xen-sparse/include/asm-ia64/page.h b/linux-2.6-xen-sparse/include/asm-ia64/page.h
index 94f59a3b27..9a32648e71 100644
--- a/linux-2.6-xen-sparse/include/asm-ia64/page.h
+++ b/linux-2.6-xen-sparse/include/asm-ia64/page.h
@@ -223,15 +223,6 @@ get_order (unsigned long size)
#define INVALID_P2M_ENTRY (~0UL)
-#ifndef CONFIG_XEN_IA64_DOM0_VP
-
-#define virt_to_machine(v) __pa(v)
-#define machine_to_virt(m) __va(m)
-#define virt_to_mfn(v) ((__pa(v)) >> PAGE_SHIFT)
-#define mfn_to_virt(m) (__va((m) << PAGE_SHIFT))
-
-#else
-
#include <linux/kernel.h>
#include <asm/hypervisor.h>
#include <xen/features.h> // to compile netback, netfront
@@ -337,7 +328,6 @@ mfn_to_local_pfn(unsigned long mfn)
return pfn;
}
-#endif /* CONFIG_XEN_IA64_DOM0_VP */
#endif /* CONFIG_XEN */
#endif /* __ASSEMBLY__ */
diff --git a/xen/arch/ia64/Rules.mk b/xen/arch/ia64/Rules.mk
index 777fc4d6d6..030a9e2f1d 100644
--- a/xen/arch/ia64/Rules.mk
+++ b/xen/arch/ia64/Rules.mk
@@ -3,7 +3,6 @@
HAS_ACPI := y
VALIDATE_VT ?= n
-xen_ia64_dom0_virtual_physical ?= y
no_warns ?= n
ifneq ($(COMPILE_ARCH),$(TARGET_ARCH))
@@ -36,9 +35,6 @@ CFLAGS += -g
ifeq ($(VALIDATE_VT),y)
CFLAGS += -DVALIDATE_VT
endif
-ifeq ($(xen_ia64_dom0_virtual_physical),y)
-CFLAGS += -DCONFIG_XEN_IA64_DOM0_VP
-endif
ifeq ($(no_warns),y)
CFLAGS += -Wa,--fatal-warnings -Werror -Wno-uninitialized
endif
diff --git a/xen/arch/ia64/xen/dom0_ops.c b/xen/arch/ia64/xen/dom0_ops.c
index 62adf91fc3..e08da03964 100644
--- a/xen/arch/ia64/xen/dom0_ops.c
+++ b/xen/arch/ia64/xen/dom0_ops.c
@@ -199,7 +199,6 @@ long arch_do_dom0_op(dom0_op_t *op, XEN_GUEST_HANDLE(dom0_op_t) u_dom0_op)
return ret;
}
-#ifdef CONFIG_XEN_IA64_DOM0_VP
static unsigned long
dom0vp_ioremap(struct domain *d, unsigned long mpaddr, unsigned long size)
{
@@ -260,7 +259,6 @@ do_dom0vp_op(unsigned long cmd,
return ret;
}
-#endif
/*
* Local variables:
diff --git a/xen/arch/ia64/xen/dom_fw.c b/xen/arch/ia64/xen/dom_fw.c
index 40b7ce1195..6f8e25f225 100644
--- a/xen/arch/ia64/xen/dom_fw.c
+++ b/xen/arch/ia64/xen/dom_fw.c
@@ -169,12 +169,6 @@ static void dom_fpswa_hypercall_patch(struct domain *d)
unsigned long entry_paddr = FW_HYPERCALL_FPSWA_ENTRY_PADDR;
unsigned long patch_paddr = FW_HYPERCALL_FPSWA_PATCH_PADDR;
-#ifndef CONFIG_XEN_IA64_DOM0_VP
- if (d == dom0) {
- entry_paddr += dom0_start;
- patch_paddr += dom0_start;
- }
-#endif
ASSIGN_NEW_DOMAIN_PAGE_IF_DOM0(d, entry_paddr);
ASSIGN_NEW_DOMAIN_PAGE_IF_DOM0(d, patch_paddr);
entry_imva = domain_mpa_to_imva(d, entry_paddr);
@@ -190,9 +184,6 @@ static void dom_efi_hypercall_patch(struct domain *d, unsigned long paddr, unsig
{
unsigned long *imva;
-#ifndef CONFIG_XEN_IA64_DOM0_VP
- if (d == dom0) paddr += dom0_start;
-#endif
ASSIGN_NEW_DOMAIN_PAGE_IF_DOM0(d, paddr);
imva = domain_mpa_to_imva(d, paddr);
build_hypercall_bundle(imva, d->arch.breakimm, hypercall, 1);
@@ -223,12 +214,6 @@ void dom_fw_setup(struct domain *d, unsigned long bp_mpa, unsigned long maxmem)
struct ia64_boot_param *bp;
dom_fw_base_mpa = 0;
-#ifndef CONFIG_XEN_IA64_DOM0_VP
- if (d == dom0) {
- dom_fw_base_mpa += dom0_start;
- bp_mpa += dom0_start;
- }
-#endif
ASSIGN_NEW_DOMAIN_PAGE_IF_DOM0(d, dom_fw_base_mpa);
imva_fw_base = (unsigned long) domain_mpa_to_imva(d, dom_fw_base_mpa);
ASSIGN_NEW_DOMAIN_PAGE_IF_DOM0(d, bp_mpa);
@@ -483,10 +468,8 @@ dom_fw_fake_acpi(struct domain *d, struct fake_acpi_tables *tables)
#define NUM_MEM_DESCS 64 //large enough
struct dom0_passthrough_arg {
-#ifdef CONFIG_XEN_IA64_DOM0_VP
struct domain* d;
int flags;
-#endif
efi_memory_desc_t *md;
int* i;
};
@@ -496,8 +479,6 @@ dom_fw_dom0_passthrough(efi_memory_desc_t *md, void *arg__)
{
struct dom0_passthrough_arg* arg = (struct dom0_passthrough_arg*)arg__;
unsigned long paddr;
-
-#ifdef CONFIG_XEN_IA64_DOM0_VP
struct domain* d = arg->d;
u64 start = md->phys_addr;
u64 size = md->num_pages << EFI_PAGE_SHIFT;
@@ -515,9 +496,6 @@ dom_fw_dom0_passthrough(efi_memory_desc_t *md, void *arg__)
paddr = assign_domain_mmio_page(d, start, size);
} else
paddr = assign_domain_mach_page(d, start, size, arg->flags);
-#else
- paddr = md->phys_addr;
-#endif
BUG_ON(md->type != EFI_RUNTIME_SERVICES_CODE &&
md->type != EFI_RUNTIME_SERVICES_DATA &&
@@ -630,11 +608,7 @@ dom_fw_init (struct domain *d, struct ia64_boot_param *bp, char *fw_mem, int fw_
unsigned char checksum = 0;
char *cp, *fw_vendor;
int num_mds, j, i = 0;
-#ifdef CONFIG_XEN_IA64_DOM0_VP
const unsigned long start_mpaddr = 0;
-#else
- const unsigned long start_mpaddr = ((d==dom0)?dom0_start:0);
-#endif
/* FIXME: should check size but for now we have a whole MB to play with.
And if stealing code from fw-emu.c, watch out for new fw_vendor on the end!
@@ -800,52 +774,24 @@ dom_fw_init (struct domain *d, struct ia64_boot_param *bp, char *fw_mem, int fw_
dom_pa((unsigned long)fw_mem + fw_mem_size), 1);
if (d == dom0) {
-#ifndef CONFIG_XEN_IA64_DOM0_VP
- /*
- * This is a bad hack. Dom0 may share other domains' memory
- * through a dom0 physical address. Unfortunately, this
- * address may be used in maddr_to_page (e.g. in the loopback
- * driver) but when Linux initializes memory it only creates
- * page structs for the physical memory it knows about. And
- * on ia64, only for full writeback granules. So, we reserve
- * the last full granule of Xen's memory for dom0 (in
- * start_kernel) to ensure dom0 creates a large enough memmap
- */
- unsigned long last_start = max_page << PAGE_SHIFT;
- unsigned long last_end = last_start + IA64_GRANULE_SIZE;
-
- /* simulate 1MB free memory at physical address zero */
- MAKE_MD(EFI_LOADER_DATA,EFI_MEMORY_WB,0*MB,1*MB, 0);//XXX
-#endif
/* hypercall patches live here, masquerade as reserved PAL memory */
MAKE_MD(EFI_PAL_CODE,EFI_MEMORY_WB|EFI_MEMORY_RUNTIME,HYPERCALL_START,HYPERCALL_END, 0);
-#ifndef CONFIG_XEN_IA64_DOM0_VP
- MAKE_MD(EFI_CONVENTIONAL_MEMORY,EFI_MEMORY_WB,HYPERCALL_END,maxmem-IA64_GRANULE_SIZE, 0);//XXX make sure this doesn't overlap on i/o, runtime area.
-/* hack */ MAKE_MD(EFI_CONVENTIONAL_MEMORY,EFI_MEMORY_WB,last_start,last_end,1);
-#endif
-
/* pass through the I/O port space */
if (!running_on_sim) {
struct dom0_passthrough_arg arg;
arg.md = &efi_memmap[i];
arg.i = &i;
-#ifdef CONFIG_XEN_IA64_DOM0_VP
arg.d = d;
arg.flags = ASSIGN_writable;
-#endif
//XXX Is this needed?
efi_memmap_walk_type(EFI_RUNTIME_SERVICES_CODE,
dom_fw_dom0_passthrough, &arg);
// for ACPI table.
-#ifdef CONFIG_XEN_IA64_DOM0_VP
arg.flags = ASSIGN_readonly;
-#endif
efi_memmap_walk_type(EFI_RUNTIME_SERVICES_DATA,
dom_fw_dom0_passthrough, &arg);
-#ifdef CONFIG_XEN_IA64_DOM0_VP
arg.flags = ASSIGN_writable;
-#endif
efi_memmap_walk_type(EFI_ACPI_RECLAIM_MEMORY,
dom_fw_dom0_passthrough, &arg);
efi_memmap_walk_type(EFI_ACPI_MEMORY_NVS,
@@ -861,12 +807,6 @@ dom_fw_init (struct domain *d, struct ia64_boot_param *bp, char *fw_mem, int fw_
}
else MAKE_MD(EFI_RESERVED_TYPE,0,0,0,0);
} else {
-#ifndef CONFIG_XEN_IA64_DOM0_VP
- /* Dom0 maps legacy mmio in first MB. */
- MAKE_MD(EFI_LOADER_DATA, EFI_MEMORY_WB, 0*MB, 1*MB, 1);
- MAKE_MD(EFI_CONVENTIONAL_MEMORY, EFI_MEMORY_WB,
- HYPERCALL_END, maxmem, 1);
-#endif
/* hypercall patches live here, masquerade as reserved
PAL memory */
MAKE_MD(EFI_PAL_CODE, EFI_MEMORY_WB | EFI_MEMORY_RUNTIME,
@@ -877,7 +817,6 @@ dom_fw_init (struct domain *d, struct ia64_boot_param *bp, char *fw_mem, int fw_
MAKE_MD(EFI_RESERVED_TYPE,0,0,0,0);
}
-#ifdef CONFIG_XEN_IA64_DOM0_VP
// simple
// MAKE_MD(EFI_CONVENTIONAL_MEMORY, EFI_MEMORY_WB,
// HYPERCALL_END, maxmem, 0);
@@ -920,7 +859,6 @@ dom_fw_init (struct domain *d, struct ia64_boot_param *bp, char *fw_mem, int fw_
if (next_start >= maxmem)
break;
}
-#endif
sort(efi_memmap, i, sizeof(efi_memory_desc_t), efi_mdt_cmp, NULL);
bp->efi_systab = dom_pa((unsigned long) fw_mem);
diff --git a/xen/arch/ia64/xen/domain.c b/xen/arch/ia64/xen/domain.c
index b3c811ad62..1d51ea1c57 100644
--- a/xen/arch/ia64/xen/domain.c
+++ b/xen/arch/ia64/xen/domain.c
@@ -49,9 +49,6 @@
#include <asm/shadow.h>
#include <asm/privop_stat.h>
-#ifndef CONFIG_XEN_IA64_DOM0_VP
-#define CONFIG_DOMAIN0_CONTIGUOUS
-#endif
unsigned long dom0_start = -1L;
unsigned long dom0_size = 512*1024*1024;
unsigned long dom0_align = 64*1024*1024;
@@ -533,9 +530,7 @@ static void relinquish_memory(struct domain *d, struct list_head *list)
/* Follow the list chain and /then/ potentially free the page. */
ent = ent->next;
-#ifdef CONFIG_XEN_IA64_DOM0_VP
BUG_ON(get_gpfn_from_mfn(page_to_mfn(page)) != INVALID_M2P_ENTRY);
-#endif
put_page(page);
}
@@ -952,11 +947,7 @@ int construct_dom0(struct domain *d,
alloc_end = dom0_start + dom0_size;
max_pages = dom0_size / PAGE_SIZE;
d->max_pages = max_pages;
-#ifndef CONFIG_XEN_IA64_DOM0_VP
- d->tot_pages = d->max_pages;
-#else
d->tot_pages = 0;
-#endif
dsi.image_addr = (unsigned long)image_start;
dsi.image_len = image_len;
rc = parseelfimage(&dsi);
@@ -1053,25 +1044,6 @@ int construct_dom0(struct domain *d,
if (alloc_vcpu(d, i, i) == NULL)
printf ("Cannot allocate dom0 vcpu %d\n", i);
-#if defined(VALIDATE_VT) && !defined(CONFIG_XEN_IA64_DOM0_VP)
- /* Construct a frame-allocation list for the initial domain, since these
- * pages are allocated by boot allocator and pfns are not set properly
- */
- for ( mfn = (alloc_start>>PAGE_SHIFT);
- mfn < (alloc_end>>PAGE_SHIFT);
- mfn++ )
- {
- page = mfn_to_page(mfn);
- page_set_owner(page, d);
- page->u.inuse.type_info = 0;
- page->count_info = PGC_allocated | 1;
- list_add_tail(&page->list, &d->page_list);
-
- /* Construct 1:1 mapping */
- set_gpfn_from_mfn(mfn, mfn);
- }
-#endif
-
/* Copy the OS image. */
loaddomainelfimage(d,image_start);
diff --git a/xen/arch/ia64/xen/hypercall.c b/xen/arch/ia64/xen/hypercall.c
index f7bc76a27a..9bf367f1a1 100644
--- a/xen/arch/ia64/xen/hypercall.c
+++ b/xen/arch/ia64/xen/hypercall.c
@@ -84,11 +84,7 @@ hypercall_t ia64_hypercall_table[] =
(hypercall_t)do_ni_hypercall, /* */ /* 45 */
(hypercall_t)do_ni_hypercall, /* */
(hypercall_t)do_ni_hypercall, /* */
-#ifdef CONFIG_XEN_IA64_DOM0_VP
(hypercall_t)do_dom0vp_op, /* dom0vp_op */
-#else
- (hypercall_t)do_ni_hypercall, /* arch_0 */
-#endif
(hypercall_t)do_ni_hypercall, /* arch_1 */
(hypercall_t)do_ni_hypercall, /* arch_2 */ /* 50 */
(hypercall_t)do_ni_hypercall, /* arch_3 */
diff --git a/xen/arch/ia64/xen/hyperprivop.S b/xen/arch/ia64/xen/hyperprivop.S
index 9bd40d3d14..67efc3fc96 100644
--- a/xen/arch/ia64/xen/hyperprivop.S
+++ b/xen/arch/ia64/xen/hyperprivop.S
@@ -32,20 +32,10 @@
//#define FAST_TICK // mostly working (unat problems) but default off for now
//#define FAST_TLB_MISS_REFLECT // mostly working but default off for now
-# ifdef CONFIG_XEN_IA64_DOM0_VP
-# undef FAST_ITC //XXX CONFIG_XEN_IA64_DOM0_VP
- // TODO fast_itc doesn't suport dom0 vp yet.
-# else
-//# define FAST_ITC // to be reviewed
-# endif
+# undef FAST_ITC //XXX TODO fast_itc doesn't suport dom0 vp yet.
# define FAST_BREAK
-# ifndef CONFIG_XEN_IA64_DOM0_VP
-# define FAST_ACCESS_REFLECT
-# else
-# undef FAST_ACCESS_REFLECT //XXX CONFIG_XEN_IA64_DOM0_VP
- // TODO fast_access_reflect
+# undef FAST_ACCESS_REFLECT //XXX TODO fast_access_reflect
// doesn't support dom0 vp yet.
-# endif
# define FAST_RFI
# define FAST_SSM_I
# define FAST_PTC_GA
diff --git a/xen/arch/ia64/xen/mm.c b/xen/arch/ia64/xen/mm.c
index f968d57e69..e219dbfa70 100644
--- a/xen/arch/ia64/xen/mm.c
+++ b/xen/arch/ia64/xen/mm.c
@@ -173,12 +173,8 @@
#include <asm/shadow.h>
#include <linux/efi.h>
-#ifndef CONFIG_XEN_IA64_DOM0_VP
-#define CONFIG_DOMAIN0_CONTIGUOUS
-#else
static void domain_page_flush(struct domain* d, unsigned long mpaddr,
unsigned long old_mfn, unsigned long new_mfn);
-#endif
extern unsigned long ia64_iobase;
@@ -268,12 +264,11 @@ relinquish_pte(struct domain* d, pte_t* pte)
return;
}
-#ifdef CONFIG_XEN_IA64_DOM0_VP
if (page_get_owner(page) == d) {
BUG_ON(get_gpfn_from_mfn(mfn) == INVALID_M2P_ENTRY);
set_gpfn_from_mfn(mfn, INVALID_M2P_ENTRY);
}
-#endif
+
try_to_clear_PGC_allocate(d, page);
put_page(page);
}
@@ -397,10 +392,6 @@ gmfn_to_mfn_foreign(struct domain *d, unsigned long gpfn)
{
unsigned long pte;
-#ifndef CONFIG_XEN_IA64_DOM0_VP
- if (d == dom0)
- return(gpfn);
-#endif
pte = lookup_domain_mpa(d,gpfn << PAGE_SHIFT, NULL);
if (!pte) {
panic("gmfn_to_mfn_foreign: bad gpfn. spinning...\n");
@@ -427,34 +418,12 @@ u64 translate_domain_pte(u64 pteval, u64 address, u64 itir__, u64* logps,
// FIXME address had better be pre-validated on insert
mask = ~itir_mask(itir.itir);
mpaddr = ((pteval & _PAGE_PPN_MASK) & ~mask) | (address & mask);
-#ifdef CONFIG_XEN_IA64_DOM0_VP
- if (itir.ps > PAGE_SHIFT) {
+
+ if (itir.ps > PAGE_SHIFT)
itir.ps = PAGE_SHIFT;
- }
-#endif
+
*logps = itir.ps;
-#ifndef CONFIG_XEN_IA64_DOM0_VP
- if (d == dom0) {
- if (mpaddr < dom0_start || mpaddr >= dom0_start + dom0_size) {
- /*
- printk("translate_domain_pte: out-of-bounds dom0 mpaddr 0x%lx! itc=%lx...\n",
- mpaddr, ia64_get_itc());
- */
- }
- }
- else if ((mpaddr >> PAGE_SHIFT) > d->max_pages) {
- /* Address beyond the limit. However the grant table is
- also beyond the limit. Display a message if not in the
- grant table. */
- if (mpaddr >= IA64_GRANT_TABLE_PADDR
- && mpaddr < (IA64_GRANT_TABLE_PADDR
- + (ORDER_GRANT_FRAMES << PAGE_SHIFT)))
- printf("translate_domain_pte: bad mpa=0x%lx (> 0x%lx),"
- "vadr=0x%lx,pteval=0x%lx,itir=0x%lx\n",
- mpaddr, (unsigned long)d->max_pages<<PAGE_SHIFT,
- address, pteval, itir.itir);
- }
-#endif
+
pteval2 = lookup_domain_mpa(d, mpaddr, entry);
/* Check access rights. */
@@ -525,14 +494,6 @@ unsigned long translate_domain_mpaddr(unsigned long mpaddr,
{
unsigned long pteval;
-#ifndef CONFIG_XEN_IA64_DOM0_VP
- if (current->domain == dom0) {
- if (mpaddr < dom0_start || mpaddr >= dom0_start + dom0_size) {
- printk("translate_domain_mpaddr: out-of-bounds dom0 mpaddr 0x%lx! continuing...\n",
- mpaddr);
- }
- }
-#endif
pteval = lookup_domain_mpa(current->domain, mpaddr, entry);
return ((pteval & _PAGE_PPN_MASK) | (mpaddr & ~PAGE_MASK));
}
@@ -644,7 +605,6 @@ lookup_noalloc_domain_pte(struct domain* d, unsigned long mpaddr)
return (volatile pte_t*)pte_offset_map(pmd, mpaddr);
}
-#ifdef CONFIG_XEN_IA64_DOM0_VP
static volatile pte_t*
lookup_noalloc_domain_pte_none(struct domain* d, unsigned long mpaddr)
{
@@ -684,7 +644,6 @@ ____lookup_domain_mpa(struct domain *d, unsigned long mpaddr)
return GPFN_INV_MASK;
return INVALID_MFN;
}
-#endif
unsigned long lookup_domain_mpa(struct domain *d, unsigned long mpaddr,
struct p2m_entry* entry)
@@ -973,7 +932,6 @@ ioports_deny_access(struct domain *d, unsigned long fp, unsigned long lp)
return 0;
}
-#ifdef CONFIG_XEN_IA64_DOM0_VP
static void
assign_domain_same_page(struct domain *d,
unsigned long mpaddr, unsigned long size,
@@ -1563,7 +1521,6 @@ domain_page_mapped(struct domain* d, unsigned long mpaddr)
return 1;
return 0;
}
-#endif
/* Flush cache of domain d. */
void domain_cache_flush (struct domain *d, int sync_only)
diff --git a/xen/arch/ia64/xen/vcpu.c b/xen/arch/ia64/xen/vcpu.c
index 7b13d68556..a300303f76 100644
--- a/xen/arch/ia64/xen/vcpu.c
+++ b/xen/arch/ia64/xen/vcpu.c
@@ -2012,9 +2012,7 @@ void vcpu_itc_no_srlz(VCPU *vcpu, UINT64 IorD, UINT64 vaddr, UINT64 pte, UINT64
panic_domain (NULL, "vcpu_itc_no_srlz: domain trying to use "
"smaller page size!\n");
-#ifdef CONFIG_XEN_IA64_DOM0_VP
BUG_ON(logps > PAGE_SHIFT);
-#endif
psr = ia64_clear_ic();
ia64_itc(IorD,vaddr,pte,ps); // FIXME: look for bigger mappings
ia64_set_psr(psr);
diff --git a/xen/arch/ia64/xen/xensetup.c b/xen/arch/ia64/xen/xensetup.c
index eccc8bb349..bc7014d882 100644
--- a/xen/arch/ia64/xen/xensetup.c
+++ b/xen/arch/ia64/xen/xensetup.c
@@ -388,13 +388,6 @@ void start_kernel(void)
max_page = 0;
efi_memmap_walk(find_max_pfn, &max_page);
printf("find_memory: efi_memmap_walk returns max_page=%lx\n",max_page);
-#ifndef CONFIG_XEN_IA64_DOM0_VP
- /* this is a bad hack. see dom_fw.c creation of EFI map for dom0 */
- max_page = (GRANULEROUNDDOWN(max_page << PAGE_SHIFT)
- - IA64_GRANULE_SIZE) >> PAGE_SHIFT;
- printf("find_memory: last granule reserved for dom0; xen max_page=%lx\n",
- max_page);
-#endif
efi_print();
heap_start = memguard_init(ia64_imva(&_end));
diff --git a/xen/include/asm-ia64/config.h b/xen/include/asm-ia64/config.h
index 39c7653519..973268f710 100644
--- a/xen/include/asm-ia64/config.h
+++ b/xen/include/asm-ia64/config.h
@@ -228,9 +228,7 @@ struct screen_info { };
#define seq_printf(a,b...) printf(b)
//#define CONFIG_BLK_DEV_INITRD // needed to reserve memory for domain0
-#ifdef CONFIG_XEN_IA64_DOM0_VP
#define CONFIG_SHADOW 1
-#endif
// xen/include/asm/config.h
/******************************************************************************
diff --git a/xen/include/asm-ia64/grant_table.h b/xen/include/asm-ia64/grant_table.h
index d020dfbc8c..5e6b1cff22 100644
--- a/xen/include/asm-ia64/grant_table.h
+++ b/xen/include/asm-ia64/grant_table.h
@@ -7,12 +7,6 @@
#define ORDER_GRANT_FRAMES 0
-#ifndef CONFIG_XEN_IA64_DOM0_VP
-// for grant map/unmap
-#define create_grant_host_mapping(a, f, fl) 0
-#define destroy_grant_host_mapping(a, f, fl) 0
-
-#else
// for grant map/unmap
int create_grant_host_mapping(unsigned long gpaddr, unsigned long mfn, unsigned int flags);
int destroy_grant_host_mapping(unsigned long gpaddr, unsigned long mfn, unsigned int flags);
@@ -20,8 +14,6 @@ int destroy_grant_host_mapping(unsigned long gpaddr, unsigned long mfn, unsigned
// for grant transfer
void guest_physmap_add_page(struct domain *d, unsigned long gpfn, unsigned long mfn);
-#endif
-
// for grant table shared page
#define gnttab_create_shared_page(d, t, i) \
do { \
@@ -37,21 +29,11 @@ void guest_physmap_add_page(struct domain *d, unsigned long gpfn, unsigned long
#define gnttab_shared_maddr(d, t, i) \
virt_to_maddr((char*)(t)->shared + ((i) << PAGE_SHIFT))
-#ifndef CONFIG_XEN_IA64_DOM0_VP
-# define gnttab_shared_gmfn(d, t, i) \
- ({ ((d) == dom0) ? \
- (virt_to_maddr((t)->shared) >> PAGE_SHIFT) + (i): \
- assign_domain_page((d), \
- IA64_GRANT_TABLE_PADDR + ((i) << PAGE_SHIFT), \
- gnttab_shared_maddr(d, t, i)), \
- (IA64_GRANT_TABLE_PADDR >> PAGE_SHIFT) + (i);})
-#else
# define gnttab_shared_gmfn(d, t, i) \
({ assign_domain_page((d), \
IA64_GRANT_TABLE_PADDR + ((i) << PAGE_SHIFT), \
gnttab_shared_maddr((d), (t), (i))); \
(IA64_GRANT_TABLE_PADDR >> PAGE_SHIFT) + (i);})
-#endif
#define gnttab_log_dirty(d, f) ((void)0)
diff --git a/xen/include/asm-ia64/mm.h b/xen/include/asm-ia64/mm.h
index b81a1bd335..5bc654802d 100644
--- a/xen/include/asm-ia64/mm.h
+++ b/xen/include/asm-ia64/mm.h
@@ -435,7 +435,6 @@ struct p2m_entry;
extern unsigned long lookup_domain_mpa(struct domain *d, unsigned long mpaddr, struct p2m_entry* entry);
extern void *domain_mpa_to_imva(struct domain *d, unsigned long mpaddr);
extern volatile pte_t *lookup_noalloc_domain_pte(struct domain* d, unsigned long mpaddr);
-#ifdef CONFIG_XEN_IA64_DOM0_VP
extern unsigned long assign_domain_mmio_page(struct domain *d, unsigned long mpaddr, unsigned long size);
extern unsigned long assign_domain_mach_page(struct domain *d, unsigned long mpaddr, unsigned long size, unsigned long flags);
int domain_page_mapped(struct domain *d, unsigned long mpaddr);
@@ -444,7 +443,6 @@ extern unsigned long ____lookup_domain_mpa(struct domain *d, unsigned long mpadd
extern unsigned long do_dom0vp_op(unsigned long cmd, unsigned long arg0, unsigned long arg1, unsigned long arg2, unsigned long arg3);
extern unsigned long dom0vp_zap_physmap(struct domain *d, unsigned long gpfn, unsigned int extent_order);
extern unsigned long dom0vp_add_physmap(struct domain* d, unsigned long gpfn, unsigned long mfn, unsigned long flags, domid_t domid);
-#endif
extern volatile unsigned long *mpt_table;
extern unsigned long gmfn_to_mfn_foreign(struct domain *d, unsigned long gpfn);
@@ -499,11 +497,7 @@ extern u64 translate_domain_pte(u64 pteval, u64 address, u64 itir__, u64* logps,
/* Arch-specific portion of memory_op hypercall. */
#define arch_memory_op(op, arg) (-ENOSYS)
-#ifndef CONFIG_XEN_IA64_DOM0_VP
-#define steal_page(d, p, f) 0
-#else
int steal_page(
struct domain *d, struct page_info *page, unsigned int memflags);
-#endif
#endif /* __ASM_IA64_MM_H__ */
diff --git a/xen/include/asm-ia64/shadow.h b/xen/include/asm-ia64/shadow.h
index e01d2a4be7..b877f76ea2 100644
--- a/xen/include/asm-ia64/shadow.h
+++ b/xen/include/asm-ia64/shadow.h
@@ -25,7 +25,6 @@
#include <xen/config.h>
-#ifdef CONFIG_XEN_IA64_DOM0_VP
#ifndef CONFIG_SHADOW
# error "CONFIG_SHADOW must be defined"
#endif
@@ -43,7 +42,6 @@
*/
void guest_physmap_add_page(struct domain *d, unsigned long gpfn, unsigned long mfn);
void guest_physmap_remove_page(struct domain *d, unsigned long gpfn, unsigned long mfn);
-#endif
static inline int
shadow_mode_enabled(struct domain *d)
diff --git a/xen/include/asm-ia64/vhpt.h b/xen/include/asm-ia64/vhpt.h
index 9f40a5d87d..afd3d7f279 100644
--- a/xen/include/asm-ia64/vhpt.h
+++ b/xen/include/asm-ia64/vhpt.h
@@ -4,12 +4,8 @@
#define VHPT_ENABLED 1
/* Size of the VHPT. */
-#ifdef CONFIG_XEN_IA64_DOM0_VP
// XXX work around to avoid trigerring xenLinux software lock up detection.
# define VHPT_SIZE_LOG2 16 // 64KB
-#else
-# define VHPT_SIZE_LOG2 24 // 16MB default
-#endif
/* Number of entries in the VHPT. The size of an entry is 4*8B == 32B */
#define VHPT_NUM_ENTRIES (1 << (VHPT_SIZE_LOG2 - 5))