WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-changelog

[Xen-changelog] [xen-unstable] vtd: ia64 fix of intremap.c

To: xen-changelog@xxxxxxxxxxxxxxxxxxx
Subject: [Xen-changelog] [xen-unstable] vtd: ia64 fix of intremap.c
From: Xen patchbot-unstable <patchbot-unstable@xxxxxxxxxxxxxxxxxxx>
Date: Thu, 04 Jun 2009 10:25:48 -0700
Delivery-date: Thu, 04 Jun 2009 10:29:04 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
List-help: <mailto:xen-changelog-request@lists.xensource.com?subject=help>
List-id: BK change log <xen-changelog.lists.xensource.com>
List-post: <mailto:xen-changelog@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/mailman/listinfo/xen-changelog>, <mailto:xen-changelog-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/mailman/listinfo/xen-changelog>, <mailto:xen-changelog-request@lists.xensource.com?subject=unsubscribe>
Reply-to: xen-devel@xxxxxxxxxxxxxxxxxxx
Sender: xen-changelog-bounces@xxxxxxxxxxxxxxxxxxx
# HG changeset patch
# User Keir Fraser <keir.fraser@xxxxxxxxxx>
# Date 1244108925 -3600
# Node ID abdd365e2ec3d9a1cc45c5b083465652e0d0ffe9
# Parent  d8b7b51f482b709a8691c3020cfec68bee4a204c
vtd: ia64 fix of intremap.c

19707:07cf79dfb59c caused compilation error on ia64.
This patch fixes it.

Signed-off-by: Isaku Yamahata <yamahata@xxxxxxxxxxxxx>
---
 xen/arch/ia64/linux-xen/iosapic.c            |   18 ++++++++++++++++++
 xen/drivers/passthrough/vtd/intremap.c       |    8 ++++++--
 xen/include/asm-ia64/linux-xen/asm/iosapic.h |    3 +++
 3 files changed, 27 insertions(+), 2 deletions(-)

diff -r d8b7b51f482b -r abdd365e2ec3 xen/arch/ia64/linux-xen/iosapic.c
--- a/xen/arch/ia64/linux-xen/iosapic.c Thu Jun 04 10:47:56 2009 +0100
+++ b/xen/arch/ia64/linux-xen/iosapic.c Thu Jun 04 10:48:45 2009 +0100
@@ -1275,4 +1275,22 @@ int iosapic_guest_write(unsigned long ph
        spin_unlock_irqrestore(&irq_descp(vec)->lock, flags);
        return 0;
 }
+
+/* for vtd interrupt remapping. xen/drivers/vtd/intremap.c */
+int iosapic_get_nr_iosapics(void)
+{
+       int index;
+
+       for (index = NR_IOSAPICS - 1; index >= 0; index--) {
+               if (iosapic_lists[index].addr)
+                       break;
+       }
+
+       return index + 1;
+}
+
+int iosapic_get_nr_pins(int index)
+{
+       return iosapic_lists[index].num_rte;
+}
 #endif /* XEN */
diff -r d8b7b51f482b -r abdd365e2ec3 xen/drivers/passthrough/vtd/intremap.c
--- a/xen/drivers/passthrough/vtd/intremap.c    Thu Jun 04 10:47:56 2009 +0100
+++ b/xen/drivers/passthrough/vtd/intremap.c    Thu Jun 04 10:48:45 2009 +0100
@@ -33,6 +33,10 @@
 
 #ifdef __ia64__
 #define dest_SMI -1
+#define nr_ioapics              iosapic_get_nr_iosapics()
+#define nr_ioapic_registers(i)  iosapic_get_nr_pins(i)
+#else
+#define nr_ioapic_registers(i)  nr_ioapic_registers[i]
 #endif
 
 /* apic_pin_2_ir_idx[apicid][pin] = interrupt remapping table index */
@@ -45,7 +49,7 @@ static int init_apic_pin_2_ir_idx(void)
 
     nr_pins = 0;
     for ( i = 0; i < nr_ioapics; i++ )
-        nr_pins += nr_ioapic_registers[i];
+        nr_pins += nr_ioapic_registers(i);
 
     _apic_pin_2_ir_idx = xmalloc_array(unsigned int, nr_pins);
     apic_pin_2_ir_idx = xmalloc_array(unsigned int *, nr_ioapics);
@@ -63,7 +67,7 @@ static int init_apic_pin_2_ir_idx(void)
     for ( i = 0; i < nr_ioapics; i++ )
     {
         apic_pin_2_ir_idx[i] = &_apic_pin_2_ir_idx[nr_pins];
-        nr_pins += nr_ioapic_registers[i];
+        nr_pins += nr_ioapic_registers(i);
     }
 
     return 0;
diff -r d8b7b51f482b -r abdd365e2ec3 
xen/include/asm-ia64/linux-xen/asm/iosapic.h
--- a/xen/include/asm-ia64/linux-xen/asm/iosapic.h      Thu Jun 04 10:47:56 
2009 +0100
+++ b/xen/include/asm-ia64/linux-xen/asm/iosapic.h      Thu Jun 04 10:48:45 
2009 +0100
@@ -186,6 +186,9 @@ struct rte_entry {
 #define IOSAPIC_RTEINDEX(reg)  (((reg) - 0x10) >> 1)
 extern unsigned long ia64_vector_mask[];
 extern unsigned long ia64_xen_vector[];
+
+int iosapic_get_nr_iosapics(void);
+int iosapic_get_nr_pins(int index);
 #endif /* XEN */
 
 #define IO_APIC_BASE(idx) ((unsigned int *)iosapic_lists[idx].addr)

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

<Prev in Thread] Current Thread [Next in Thread>
  • [Xen-changelog] [xen-unstable] vtd: ia64 fix of intremap.c, Xen patchbot-unstable <=