# HG changeset patch
# User awilliam@xxxxxxxxxxx
# Node ID eab6fd4949f0bd40656a435cc7b0af47b9a91e88
# Parent 19148831ab05b2d1925c2a8e2562a0ada12f6d9a
[IA64] Compile iosapic within xen
Compile iosapic within xen. Part of code from Tristan.
Signed-off-by Kevin Tian <kevin.tian@xxxxxxxxx>
diff -r 19148831ab05 -r eab6fd4949f0 xen/arch/ia64/linux-xen/Makefile
--- a/xen/arch/ia64/linux-xen/Makefile Fri Apr 21 08:56:24 2006 -0600
+++ b/xen/arch/ia64/linux-xen/Makefile Fri Apr 21 08:56:34 2006 -0600
@@ -13,3 +13,4 @@ obj-y += tlb.o
obj-y += tlb.o
obj-y += unaligned.o
obj-y += unwind.o
+obj-y += iosapic.o
diff -r 19148831ab05 -r eab6fd4949f0 xen/arch/ia64/linux-xen/iosapic.c
--- a/xen/arch/ia64/linux-xen/iosapic.c Fri Apr 21 08:56:24 2006 -0600
+++ b/xen/arch/ia64/linux-xen/iosapic.c Fri Apr 21 08:56:34 2006 -0600
@@ -75,7 +75,9 @@
#include <linux/irq.h>
#include <linux/kernel.h>
#include <linux/list.h>
+#ifndef XEN
#include <linux/pci.h>
+#endif
#include <linux/smp.h>
#include <linux/smp_lock.h>
#include <linux/string.h>
@@ -524,7 +526,11 @@ static struct iosapic_rte_info *iosapic_
int preallocated = 0;
if (!iosapic_kmalloc_ok && list_empty(&free_rte_list)) {
+#ifdef XEN
+ rte = xmalloc_bytes(sizeof(struct iosapic_rte_info) *
NR_PREALLOCATE_RTE_ENTRIES);
+#else
rte = alloc_bootmem(sizeof(struct iosapic_rte_info) *
NR_PREALLOCATE_RTE_ENTRIES);
+#endif
if (!rte)
return NULL;
for (i = 0; i < NR_PREALLOCATE_RTE_ENTRIES; i++, rte++)
diff -r 19148831ab05 -r eab6fd4949f0 xen/include/asm-ia64/config.h
--- a/xen/include/asm-ia64/config.h Fri Apr 21 08:56:24 2006 -0600
+++ b/xen/include/asm-ia64/config.h Fri Apr 21 08:56:34 2006 -0600
@@ -35,6 +35,7 @@
#endif
#define CONFIG_NR_CPUS NR_CPUS
+#define CONFIG_IOSAPIC
#define supervisor_mode_kernel (0)
#define MAX_DMADOM_PFN (0x7FFFFFFFUL >> PAGE_SHIFT) /* 31 addressable bits */
diff -r 19148831ab05 -r eab6fd4949f0
xen/include/asm-ia64/linux-xen/asm/iosapic.h
--- a/xen/include/asm-ia64/linux-xen/asm/iosapic.h Fri Apr 21 08:56:24
2006 -0600
+++ b/xen/include/asm-ia64/linux-xen/asm/iosapic.h Fri Apr 21 08:56:34
2006 -0600
@@ -108,5 +108,37 @@ extern void __devinit map_iosapic_to_nod
polarity,trigger) (gsi)
#endif
+#ifdef XEN
+/* Move to common code later */
+/**
+ * list_move - delete from one list and add as another's head
+ * @list: the entry to move
+ * @head: the head that will precede our entry
+ */
+static inline void list_move(struct list_head *list, struct list_head *head)
+{
+ __list_del(list->prev, list->next);
+ list_add(list, head);
+}
+
+#define move_irq(x)
+
+#define WARN_ON(condition) do { \
+ if (unlikely((condition)!=0)) { \
+ printk("Badness in %s at %s:%d\n", __FUNCTION__, __FILE__,
__LINE__); \
+ dump_stack(); \
+ } \
+} while (0)
+
+#ifdef nop
+#undef nop
+#endif
+
+/* nop for now */
+static inline void
+set_irq_affinity_info(unsigned int irq, int hwid, int redir) {}
+
+#endif /* XEN */
+
# endif /* !__ASSEMBLY__ */
#endif /* __ASM_IA64_IOSAPIC_H */
_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog
|