# HG changeset patch
# User Alex Williamson <alex.williamson@xxxxxx>
# Date 1178549696 21600
# Node ID fc0a9a40f1516287639646d088759210b3c8e62c
# Parent 3b3f00d42dc41d3fd3ce60d3f048e6ba67ac499e
[IA64] Switch to CONFIG_IA64_GENERIC config and wire in Xen machine vector
This enables the switch to the generic flavor ia64 kernel for the -xen
and -xen0 kernels. -xenU is changed to a CONFIG_IA64_XEN build.
Signed-off-by: Alex Williamson <alex.williamson@xxxxxx>
---
buildconfigs/linux-defconfig_xen0_ia64 | 62 ++++++++++++++-----
buildconfigs/linux-defconfig_xenU_ia64 | 21 ++----
buildconfigs/linux-defconfig_xen_ia64 | 59 +++++++++++++-----
linux-2.6-xen-sparse/arch/ia64/xen/Makefile | 6 -
linux-2.6-xen-sparse/include/asm-ia64/dma-mapping.h | 63 +-------------------
linux-2.6-xen-sparse/include/asm-ia64/machvec_dig.h | 15 ----
linux-2.6-xen-sparse/lib/Makefile | 5 +
7 files changed, 111 insertions(+), 120 deletions(-)
diff -r 3b3f00d42dc4 -r fc0a9a40f151 buildconfigs/linux-defconfig_xen0_ia64
--- a/buildconfigs/linux-defconfig_xen0_ia64 Mon May 07 08:52:12 2007 -0600
+++ b/buildconfigs/linux-defconfig_xen0_ia64 Mon May 07 08:54:56 2007 -0600
@@ -1,8 +1,9 @@
#
# Automatically generated make config: don't edit
-# Linux kernel version: 2.6.18-xen0
-# Mon Jan 29 10:16:18 2007
-#
+# Linux kernel version: 2.6.18
+# Sun May 6 20:45:43 2007
+#
+CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
#
# Code maturity level options
@@ -99,12 +100,13 @@ CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y
CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y
CONFIG_DMA_IS_DMA32=y
CONFIG_AUDIT_ARCH=y
-# CONFIG_IA64_GENERIC is not set
-CONFIG_IA64_DIG=y
+CONFIG_IA64_GENERIC=y
+# CONFIG_IA64_DIG is not set
# CONFIG_IA64_HP_ZX1 is not set
# CONFIG_IA64_HP_ZX1_SWIOTLB is not set
# CONFIG_IA64_SGI_SN2 is not set
# CONFIG_IA64_HP_SIM is not set
+# CONFIG_IA64_XEN is not set
# CONFIG_ITANIUM is not set
CONFIG_MCKINLEY=y
# CONFIG_IA64_PAGE_SIZE_4KB is not set
@@ -120,6 +122,7 @@ CONFIG_IA64_L1_CACHE_SHIFT=7
CONFIG_IA64_L1_CACHE_SHIFT=7
CONFIG_IA64_CYCLONE=y
CONFIG_IOSAPIC=y
+# CONFIG_IA64_SGI_SN_XP is not set
CONFIG_FORCE_MAX_ZONEORDER=11
CONFIG_SMP=y
CONFIG_NR_CPUS=16
@@ -129,23 +132,37 @@ CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
# CONFIG_PERMIT_BSP_REMOVE is not set
# CONFIG_PREEMPT is not set
CONFIG_SELECT_MEMORY_MODEL=y
-CONFIG_FLATMEM_MANUAL=y
-# CONFIG_DISCONTIGMEM_MANUAL is not set
+# CONFIG_FLATMEM_MANUAL is not set
+CONFIG_DISCONTIGMEM_MANUAL=y
# CONFIG_SPARSEMEM_MANUAL is not set
-CONFIG_FLATMEM=y
+CONFIG_DISCONTIGMEM=y
CONFIG_FLAT_NODE_MEM_MAP=y
+CONFIG_NEED_MULTIPLE_NODES=y
# CONFIG_SPARSEMEM_STATIC is not set
CONFIG_SPLIT_PTLOCK_CPUS=4
+# CONFIG_MIGRATION is not set
CONFIG_RESOURCES_64BIT=y
CONFIG_ARCH_SELECT_MEMORY_MODEL=y
CONFIG_ARCH_DISCONTIGMEM_ENABLE=y
CONFIG_ARCH_FLATMEM_ENABLE=y
CONFIG_ARCH_SPARSEMEM_ENABLE=y
-# CONFIG_VIRTUAL_MEM_MAP is not set
+CONFIG_ARCH_DISCONTIGMEM_DEFAULT=y
+CONFIG_NUMA=y
+CONFIG_NODES_SHIFT=10
+CONFIG_VIRTUAL_MEM_MAP=y
+CONFIG_HOLES_IN_ZONE=y
+CONFIG_HAVE_ARCH_EARLY_PFN_TO_NID=y
+CONFIG_HAVE_ARCH_NODEDATA_EXTENSION=y
# CONFIG_IA32_SUPPORT is not set
-CONFIG_IA64_MCA_RECOVERY=y
+# CONFIG_IA64_MCA_RECOVERY is not set
CONFIG_PERFMON=y
CONFIG_IA64_PALINFO=y
+CONFIG_SGI_SN=y
+
+#
+# SN Devices
+#
+# CONFIG_SGI_IOC3 is not set
#
# Firmware Drivers
@@ -172,6 +189,7 @@ CONFIG_ACPI_PROCESSOR=y
CONFIG_ACPI_PROCESSOR=y
CONFIG_ACPI_HOTPLUG_CPU=y
CONFIG_ACPI_THERMAL=y
+CONFIG_ACPI_NUMA=y
CONFIG_ACPI_BLACKLIST_YEAR=0
# CONFIG_ACPI_DEBUG is not set
CONFIG_ACPI_EC=y
@@ -203,6 +221,7 @@ CONFIG_HOTPLUG_PCI_ACPI=y
# CONFIG_HOTPLUG_PCI_ACPI_IBM is not set
# CONFIG_HOTPLUG_PCI_CPCI is not set
# CONFIG_HOTPLUG_PCI_SHPC is not set
+# CONFIG_HOTPLUG_PCI_SGI is not set
#
# PCCARD (PCMCIA/CardBus) support
@@ -747,6 +766,8 @@ CONFIG_SERIAL_NONSTANDARD=y
# CONFIG_SX is not set
# CONFIG_RIO is not set
# CONFIG_STALDRV is not set
+# CONFIG_SGI_SNSC is not set
+# CONFIG_SGI_TIOCX is not set
#
# Serial drivers
@@ -755,6 +776,7 @@ CONFIG_SERIAL_NONSTANDARD=y
#
# Non-8250 serial port support
#
+# CONFIG_SERIAL_SGI_L1_CONSOLE is not set
# CONFIG_SERIAL_JSM is not set
CONFIG_UNIX98_PTYS=y
CONFIG_LEGACY_PTYS=y
@@ -782,6 +804,8 @@ CONFIG_AGP=y
# CONFIG_AGP_SIS is not set
# CONFIG_AGP_VIA is not set
CONFIG_AGP_I460=y
+# CONFIG_AGP_HP_ZX1 is not set
+# CONFIG_AGP_SGI_TIOCA is not set
CONFIG_DRM=y
# CONFIG_DRM_TDFX is not set
# CONFIG_DRM_R128 is not set
@@ -793,6 +817,7 @@ CONFIG_DRM=y
# CONFIG_RAW_DRIVER is not set
# CONFIG_HPET is not set
# CONFIG_HANGCHECK_TIMER is not set
+# CONFIG_MMTIMER is not set
#
# TPM devices
@@ -1541,6 +1566,13 @@ CONFIG_IRQ_PER_CPU=y
CONFIG_IRQ_PER_CPU=y
#
+# HP Simulator drivers
+#
+# CONFIG_HP_SIMETH is not set
+# CONFIG_HP_SIMSERIAL is not set
+# CONFIG_HP_SIMSCSI is not set
+
+#
# Instrumentation Support
#
# CONFIG_PROFILING is not set
@@ -1615,9 +1647,6 @@ CONFIG_CRYPTO_DES=y
#
# Hardware crypto devices
#
-# CONFIG_XEN_UTIL is not set
-CONFIG_XEN_BALLOON=y
-CONFIG_XEN_REBOOT=y
# CONFIG_XEN_SMPBOOT is not set
CONFIG_XEN_INTERFACE_VERSION=0x00030205
@@ -1642,15 +1671,14 @@ CONFIG_XEN_TPMDEV_BACKEND=m
CONFIG_XEN_TPMDEV_BACKEND=m
CONFIG_XEN_BLKDEV_FRONTEND=y
CONFIG_XEN_NETDEV_FRONTEND=y
-# CONFIG_XEN_FRAMEBUFFER is not set
+CONFIG_XEN_FRAMEBUFFER=y
+CONFIG_XEN_KEYBOARD=y
# CONFIG_XEN_SCRUB_PAGES is not set
CONFIG_XEN_DISABLE_SERIAL=y
CONFIG_XEN_SYSFS=y
CONFIG_XEN_COMPAT_030002_AND_LATER=y
# CONFIG_XEN_COMPAT_030004_AND_LATER is not set
# CONFIG_XEN_COMPAT_LATEST_ONLY is not set
-CONFIG_XEN_COMPAT_030002=y
-CONFIG_XEN_COMPAT_030004=y
+CONFIG_XEN_COMPAT=0x030002
CONFIG_HAVE_IRQ_IGNORE_UNHANDLED=y
CONFIG_NO_IDLE_HZ=y
-CONFIG_XEN_DEVMEM=y
diff -r 3b3f00d42dc4 -r fc0a9a40f151 buildconfigs/linux-defconfig_xenU_ia64
--- a/buildconfigs/linux-defconfig_xenU_ia64 Mon May 07 08:52:12 2007 -0600
+++ b/buildconfigs/linux-defconfig_xenU_ia64 Mon May 07 08:54:56 2007 -0600
@@ -1,8 +1,9 @@
#
# Automatically generated make config: don't edit
-# Linux kernel version: 2.6.18-xenU
-# Mon Jan 29 10:26:51 2007
-#
+# Linux kernel version: 2.6.18
+# Sun May 6 22:07:34 2007
+#
+CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
#
# Code maturity level options
@@ -56,6 +57,7 @@ CONFIG_MODULES=y
# CONFIG_MODVERSIONS is not set
# CONFIG_MODULE_SRCVERSION_ALL is not set
# CONFIG_KMOD is not set
+CONFIG_STOP_MACHINE=y
#
# Block layer
@@ -97,11 +99,12 @@ CONFIG_DMA_IS_DMA32=y
CONFIG_DMA_IS_DMA32=y
CONFIG_AUDIT_ARCH=y
# CONFIG_IA64_GENERIC is not set
-CONFIG_IA64_DIG=y
+# CONFIG_IA64_DIG is not set
# CONFIG_IA64_HP_ZX1 is not set
# CONFIG_IA64_HP_ZX1_SWIOTLB is not set
# CONFIG_IA64_SGI_SN2 is not set
# CONFIG_IA64_HP_SIM is not set
+CONFIG_IA64_XEN=y
# CONFIG_ITANIUM is not set
CONFIG_MCKINLEY=y
# CONFIG_IA64_PAGE_SIZE_4KB is not set
@@ -175,7 +178,7 @@ CONFIG_ACPI_EC=y
CONFIG_ACPI_EC=y
CONFIG_ACPI_POWER=y
CONFIG_ACPI_SYSTEM=y
-# CONFIG_ACPI_CONTAINER is not set
+CONFIG_ACPI_CONTAINER=y
#
# CPU Frequency scaling
@@ -673,7 +676,6 @@ CONFIG_AGP=y
CONFIG_AGP=y
# CONFIG_AGP_SIS is not set
# CONFIG_AGP_VIA is not set
-# CONFIG_AGP_I460 is not set
CONFIG_DRM=y
# CONFIG_DRM_TDFX is not set
# CONFIG_DRM_R128 is not set
@@ -1467,9 +1469,6 @@ CONFIG_CRYPTO_DES=y
#
# Hardware crypto devices
#
-# CONFIG_XEN_UTIL is not set
-CONFIG_XEN_BALLOON=y
-CONFIG_XEN_REBOOT=y
# CONFIG_XEN_SMPBOOT is not set
CONFIG_XEN_INTERFACE_VERSION=0x00030205
@@ -1491,8 +1490,6 @@ CONFIG_XEN_COMPAT_030002_AND_LATER=y
CONFIG_XEN_COMPAT_030002_AND_LATER=y
# CONFIG_XEN_COMPAT_030004_AND_LATER is not set
# CONFIG_XEN_COMPAT_LATEST_ONLY is not set
-CONFIG_XEN_COMPAT_030002=y
-CONFIG_XEN_COMPAT_030004=y
+CONFIG_XEN_COMPAT=0x030002
CONFIG_HAVE_IRQ_IGNORE_UNHANDLED=y
CONFIG_NO_IDLE_HZ=y
-CONFIG_XEN_DEVMEM=y
diff -r 3b3f00d42dc4 -r fc0a9a40f151 buildconfigs/linux-defconfig_xen_ia64
--- a/buildconfigs/linux-defconfig_xen_ia64 Mon May 07 08:52:12 2007 -0600
+++ b/buildconfigs/linux-defconfig_xen_ia64 Mon May 07 08:54:56 2007 -0600
@@ -1,8 +1,9 @@
#
# Automatically generated make config: don't edit
-# Linux kernel version: 2.6.18-xen
-# Mon Jan 29 10:01:13 2007
-#
+# Linux kernel version: 2.6.18
+# Sun May 6 20:45:43 2007
+#
+CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
#
# Code maturity level options
@@ -99,12 +100,13 @@ CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y
CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y
CONFIG_DMA_IS_DMA32=y
CONFIG_AUDIT_ARCH=y
-# CONFIG_IA64_GENERIC is not set
-CONFIG_IA64_DIG=y
+CONFIG_IA64_GENERIC=y
+# CONFIG_IA64_DIG is not set
# CONFIG_IA64_HP_ZX1 is not set
# CONFIG_IA64_HP_ZX1_SWIOTLB is not set
# CONFIG_IA64_SGI_SN2 is not set
# CONFIG_IA64_HP_SIM is not set
+# CONFIG_IA64_XEN is not set
# CONFIG_ITANIUM is not set
CONFIG_MCKINLEY=y
# CONFIG_IA64_PAGE_SIZE_4KB is not set
@@ -120,6 +122,7 @@ CONFIG_IA64_L1_CACHE_SHIFT=7
CONFIG_IA64_L1_CACHE_SHIFT=7
CONFIG_IA64_CYCLONE=y
CONFIG_IOSAPIC=y
+# CONFIG_IA64_SGI_SN_XP is not set
CONFIG_FORCE_MAX_ZONEORDER=11
CONFIG_SMP=y
CONFIG_NR_CPUS=16
@@ -129,23 +132,37 @@ CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
# CONFIG_PERMIT_BSP_REMOVE is not set
# CONFIG_PREEMPT is not set
CONFIG_SELECT_MEMORY_MODEL=y
-CONFIG_FLATMEM_MANUAL=y
-# CONFIG_DISCONTIGMEM_MANUAL is not set
+# CONFIG_FLATMEM_MANUAL is not set
+CONFIG_DISCONTIGMEM_MANUAL=y
# CONFIG_SPARSEMEM_MANUAL is not set
-CONFIG_FLATMEM=y
+CONFIG_DISCONTIGMEM=y
CONFIG_FLAT_NODE_MEM_MAP=y
+CONFIG_NEED_MULTIPLE_NODES=y
# CONFIG_SPARSEMEM_STATIC is not set
CONFIG_SPLIT_PTLOCK_CPUS=4
+# CONFIG_MIGRATION is not set
CONFIG_RESOURCES_64BIT=y
CONFIG_ARCH_SELECT_MEMORY_MODEL=y
CONFIG_ARCH_DISCONTIGMEM_ENABLE=y
CONFIG_ARCH_FLATMEM_ENABLE=y
CONFIG_ARCH_SPARSEMEM_ENABLE=y
-# CONFIG_VIRTUAL_MEM_MAP is not set
+CONFIG_ARCH_DISCONTIGMEM_DEFAULT=y
+CONFIG_NUMA=y
+CONFIG_NODES_SHIFT=10
+CONFIG_VIRTUAL_MEM_MAP=y
+CONFIG_HOLES_IN_ZONE=y
+CONFIG_HAVE_ARCH_EARLY_PFN_TO_NID=y
+CONFIG_HAVE_ARCH_NODEDATA_EXTENSION=y
# CONFIG_IA32_SUPPORT is not set
-CONFIG_IA64_MCA_RECOVERY=y
+# CONFIG_IA64_MCA_RECOVERY is not set
CONFIG_PERFMON=y
CONFIG_IA64_PALINFO=y
+CONFIG_SGI_SN=y
+
+#
+# SN Devices
+#
+# CONFIG_SGI_IOC3 is not set
#
# Firmware Drivers
@@ -172,6 +189,7 @@ CONFIG_ACPI_PROCESSOR=y
CONFIG_ACPI_PROCESSOR=y
CONFIG_ACPI_HOTPLUG_CPU=y
CONFIG_ACPI_THERMAL=y
+CONFIG_ACPI_NUMA=y
CONFIG_ACPI_BLACKLIST_YEAR=0
# CONFIG_ACPI_DEBUG is not set
CONFIG_ACPI_EC=y
@@ -203,6 +221,7 @@ CONFIG_HOTPLUG_PCI_ACPI=y
# CONFIG_HOTPLUG_PCI_ACPI_IBM is not set
# CONFIG_HOTPLUG_PCI_CPCI is not set
# CONFIG_HOTPLUG_PCI_SHPC is not set
+# CONFIG_HOTPLUG_PCI_SGI is not set
#
# PCCARD (PCMCIA/CardBus) support
@@ -747,6 +766,8 @@ CONFIG_SERIAL_NONSTANDARD=y
# CONFIG_SX is not set
# CONFIG_RIO is not set
# CONFIG_STALDRV is not set
+# CONFIG_SGI_SNSC is not set
+# CONFIG_SGI_TIOCX is not set
#
# Serial drivers
@@ -755,6 +776,7 @@ CONFIG_SERIAL_NONSTANDARD=y
#
# Non-8250 serial port support
#
+# CONFIG_SERIAL_SGI_L1_CONSOLE is not set
# CONFIG_SERIAL_JSM is not set
CONFIG_UNIX98_PTYS=y
CONFIG_LEGACY_PTYS=y
@@ -782,6 +804,8 @@ CONFIG_AGP=y
# CONFIG_AGP_SIS is not set
# CONFIG_AGP_VIA is not set
CONFIG_AGP_I460=y
+# CONFIG_AGP_HP_ZX1 is not set
+# CONFIG_AGP_SGI_TIOCA is not set
CONFIG_DRM=y
# CONFIG_DRM_TDFX is not set
# CONFIG_DRM_R128 is not set
@@ -793,6 +817,7 @@ CONFIG_DRM=y
# CONFIG_RAW_DRIVER is not set
# CONFIG_HPET is not set
# CONFIG_HANGCHECK_TIMER is not set
+# CONFIG_MMTIMER is not set
#
# TPM devices
@@ -1541,6 +1566,13 @@ CONFIG_IRQ_PER_CPU=y
CONFIG_IRQ_PER_CPU=y
#
+# HP Simulator drivers
+#
+# CONFIG_HP_SIMETH is not set
+# CONFIG_HP_SIMSERIAL is not set
+# CONFIG_HP_SIMSCSI is not set
+
+#
# Instrumentation Support
#
# CONFIG_PROFILING is not set
@@ -1615,9 +1647,6 @@ CONFIG_CRYPTO_DES=y
#
# Hardware crypto devices
#
-# CONFIG_XEN_UTIL is not set
-CONFIG_XEN_BALLOON=y
-CONFIG_XEN_REBOOT=y
# CONFIG_XEN_SMPBOOT is not set
CONFIG_XEN_INTERFACE_VERSION=0x00030205
@@ -1650,8 +1679,6 @@ CONFIG_XEN_COMPAT_030002_AND_LATER=y
CONFIG_XEN_COMPAT_030002_AND_LATER=y
# CONFIG_XEN_COMPAT_030004_AND_LATER is not set
# CONFIG_XEN_COMPAT_LATEST_ONLY is not set
-CONFIG_XEN_COMPAT_030002=y
-CONFIG_XEN_COMPAT_030004=y
+CONFIG_XEN_COMPAT=0x030002
CONFIG_HAVE_IRQ_IGNORE_UNHANDLED=y
CONFIG_NO_IDLE_HZ=y
-CONFIG_XEN_DEVMEM=y
diff -r 3b3f00d42dc4 -r fc0a9a40f151 linux-2.6-xen-sparse/arch/ia64/xen/Makefile
--- a/linux-2.6-xen-sparse/arch/ia64/xen/Makefile Mon May 07 08:52:12
2007 -0600
+++ b/linux-2.6-xen-sparse/arch/ia64/xen/Makefile Mon May 07 08:54:56
2007 -0600
@@ -3,7 +3,7 @@
#
obj-y := hypercall.o xenivt.o xenentry.o xensetup.o xenpal.o xenhpski.o \
- hypervisor.o pci-dma-xen.o util.o xencomm.o xcom_hcall.o \
- xcom_mini.o xcom_privcmd.o mem.o
+ hypervisor.o util.o xencomm.o xcom_hcall.o xcom_mini.o \
+ xcom_privcmd.o mem.o xen_dma.o
-pci-dma-xen-y := ../../i386/kernel/pci-dma-xen.o
+obj-$(CONFIG_IA64_GENERIC) += machvec.o
diff -r 3b3f00d42dc4 -r fc0a9a40f151
linux-2.6-xen-sparse/include/asm-ia64/dma-mapping.h
--- a/linux-2.6-xen-sparse/include/asm-ia64/dma-mapping.h Mon May 07
08:52:12 2007 -0600
+++ b/linux-2.6-xen-sparse/include/asm-ia64/dma-mapping.h Mon May 07
08:54:56 2007 -0600
@@ -13,7 +13,6 @@
#include <asm/swiotlb.h>
#endif
-#ifndef CONFIG_XEN
#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
@@ -27,47 +26,6 @@
#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,
- enum dma_data_direction direction);
-int dma_supported(struct device *dev, u64 mask);
-void *dma_alloc_coherent(struct device *dev, size_t size,
- dma_addr_t *dma_handle, gfp_t gfp);
-void dma_free_coherent(struct device *dev, size_t size, void *vaddr,
- dma_addr_t dma_handle);
-dma_addr_t dma_map_single(struct device *dev, void *ptr, size_t size,
- enum dma_data_direction direction);
-void dma_unmap_single(struct device *dev, dma_addr_t dma_addr, size_t size,
- enum dma_data_direction direction);
-void dma_sync_single_for_cpu(struct device *dev, dma_addr_t dma_handle,
- size_t size, enum dma_data_direction direction);
-void dma_sync_single_for_device(struct device *dev, dma_addr_t dma_handle,
- size_t size,
- enum dma_data_direction direction);
-int dma_mapping_error(dma_addr_t dma_addr);
-
-#define flush_write_buffers() do { } while (0)
-static inline void
-dma_sync_sg_for_cpu(struct device *dev, struct scatterlist *sg, int nelems,
- enum dma_data_direction direction)
-{
- if (swiotlb)
- swiotlb_sync_sg_for_cpu(dev,sg,nelems,direction);
- flush_write_buffers();
-}
-
-static inline void
-dma_sync_sg_for_device(struct device *dev, struct scatterlist *sg, int nelems,
- enum dma_data_direction direction)
-{
- if (swiotlb)
- 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))
#define dma_unmap_page(dev, dma_addr, size, dir) \
@@ -83,9 +41,7 @@ dma_sync_sg_for_device(struct device *de
#define dma_sync_single_range_for_device(dev, dma_handle, offset, size, dir)
\
dma_sync_single_for_device(dev, dma_handle, size, dir)
-#ifndef CONFIG_XEN
#define dma_supported platform_dma_supported
-#endif
static inline int
dma_set_mask (struct device *dev, u64 mask)
@@ -111,26 +67,19 @@ dma_cache_sync (void *vaddr, size_t size
#define dma_is_consistent(dma_handle) (1) /* all we do is coherent
memory... */
#ifdef CONFIG_XEN
-/* arch/i386/kernel/swiotlb.o requires */
-void contiguous_bitmap_init(unsigned long end_pfn);
-
-static inline int
-address_needs_mapping(struct device *hwdev, dma_addr_t addr)
-{
- dma_addr_t mask = DMA_64BIT_MASK;
- /* If the device has a mask, use it, otherwise default to 64 bits */
- if (hwdev && hwdev->dma_mask)
- mask = *hwdev->dma_mask;
- return (addr & ~mask) != 0;
-}
-
static inline int
range_straddles_page_boundary(void *p, size_t size)
{
extern unsigned long *contiguous_bitmap;
+
+ if (!is_running_on_xen())
+ return 0;
+
return (((((unsigned long)p & ~PAGE_MASK) + size) > PAGE_SIZE) &&
!test_bit(__pa(p) >> PAGE_SHIFT, contiguous_bitmap));
}
+#else
+#define range_straddles_page_boundary(addr, size) (0)
#endif
#endif /* _ASM_IA64_DMA_MAPPING_H */
diff -r 3b3f00d42dc4 -r fc0a9a40f151
linux-2.6-xen-sparse/include/asm-ia64/machvec_dig.h
--- a/linux-2.6-xen-sparse/include/asm-ia64/machvec_dig.h Mon May 07
08:52:12 2007 -0600
+++ b/linux-2.6-xen-sparse/include/asm-ia64/machvec_dig.h Mon May 07
08:54:56 2007 -0600
@@ -13,19 +13,4 @@ extern ia64_mv_setup_t dig_setup;
#define platform_name "dig"
#define platform_setup dig_setup
-#ifdef CONFIG_XEN
-# define platform_dma_map_sg dma_map_sg
-# define platform_dma_unmap_sg dma_unmap_sg
-# define platform_dma_mapping_error dma_mapping_error
-# define platform_dma_supported dma_supported
-# define platform_dma_alloc_coherent dma_alloc_coherent
-# define platform_dma_free_coherent dma_free_coherent
-# define platform_dma_map_single dma_map_single
-# define platform_dma_unmap_single dma_unmap_single
-# define platform_dma_sync_single_for_cpu \
- dma_sync_single_for_cpu
-# define platform_dma_sync_single_for_device \
- dma_sync_single_for_device
-#endif
-
#endif /* _ASM_IA64_MACHVEC_DIG_h */
diff -r 3b3f00d42dc4 -r fc0a9a40f151 linux-2.6-xen-sparse/lib/Makefile
--- a/linux-2.6-xen-sparse/lib/Makefile Mon May 07 08:52:12 2007 -0600
+++ b/linux-2.6-xen-sparse/lib/Makefile Mon May 07 08:54:56 2007 -0600
@@ -52,7 +52,12 @@ obj-$(CONFIG_AUDIT_GENERIC) += audit.o
obj-$(CONFIG_AUDIT_GENERIC) += audit.o
obj-$(CONFIG_SWIOTLB) += swiotlb.o
+ifeq ($(CONFIG_X86),y)
swiotlb-$(CONFIG_XEN) := ../arch/i386/kernel/swiotlb.o
+endif
+ifeq ($(CONFIG_IA64),y)
+swiotlb-$(CONFIG_XEN) := ../arch/ia64/xen/swiotlb.o
+endif
hostprogs-y := gen_crc32table
clean-files := crc32table.h
_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog
|