[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-changelog] [xen-unstable] [IA64] create free_irq()



# HG changeset patch
# User Alex Williamson <alex.williamson@xxxxxx>
# Date 1181591988 21600
# Node ID 51f5bea7b0d84d639a9823ddf1d27a71a869b6f4
# Parent  154878b6ec4bf58fb3a9a6c6b420097b2f4a6f1e
[IA64] create free_irq()

This isn't well tested, since it's not likely to get called, but
it is required to build.

Signed-off-by: Alex Williamson <alex.williamson@xxxxxx>
---
 xen/arch/ia64/xen/irq.c |   24 ++++++++++++++++++++++++
 1 files changed, 24 insertions(+)

diff -r 154878b6ec4b -r 51f5bea7b0d8 xen/arch/ia64/xen/irq.c
--- a/xen/arch/ia64/xen/irq.c   Mon Jun 11 13:46:42 2007 -0600
+++ b/xen/arch/ia64/xen/irq.c   Mon Jun 11 13:59:48 2007 -0600
@@ -281,6 +281,30 @@ int setup_irq(unsigned int irq, struct i
        return res;
 }
 
+void free_irq(unsigned int irq)
+{
+       unsigned int vec;
+       unsigned long flags;
+       irq_desc_t *desc;
+
+       /* Get vector for IRQ.  */
+       if (acpi_gsi_to_irq(irq, &vec) < 0)
+               return;
+
+       desc = irq_descp(vec);
+
+       spin_lock_irqsave(&desc->lock, flags);
+       clear_bit(vec, ia64_xen_vector);
+       desc->action = NULL;
+       desc->depth = 1;
+       desc->status |= IRQ_DISABLED;
+       desc->handler->shutdown(vec);
+       spin_unlock_irqrestore(&desc->lock, flags);
+
+       while (desc->status & IRQ_INPROGRESS)
+               cpu_relax();
+}
+
 /*
  * HANDLING OF GUEST-BOUND PHYSICAL IRQS
  */

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


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.