[LINUX] Rename hw_resend_irq to allow it to be defined seperately per arch.
authorkaf24@firebug.cl.cam.ac.uk <kaf24@firebug.cl.cam.ac.uk>
Wed, 7 Jun 2006 13:38:36 +0000 (14:38 +0100)
committerkaf24@firebug.cl.cam.ac.uk <kaf24@firebug.cl.cam.ac.uk>
Wed, 7 Jun 2006 13:38:36 +0000 (14:38 +0100)
Signed-off-by Kevin Tian <kevin.tian@intel.com>

linux-2.6-xen-sparse/drivers/xen/core/evtchn.c
linux-2.6-xen-sparse/include/asm-i386/mach-xen/asm/hw_irq.h
linux-2.6-xen-sparse/include/asm-ia64/hw_irq.h
linux-2.6-xen-sparse/include/asm-x86_64/mach-xen/asm/hw_irq.h

index dcbc828079843bbcdc9669caea2737c3b4addd83..750cde5fc4ebc8e686966a453e1126a60f1525c8 100644 (file)
@@ -678,7 +678,7 @@ static struct hw_interrupt_type pirq_type = {
        set_affinity_irq
 };
 
-void hw_resend_irq(struct hw_interrupt_type *h, unsigned int i)
+void resend_irq_on_evtchn(struct hw_interrupt_type *h, unsigned int i)
 {
        int evtchn = evtchn_from_irq(i);
        shared_info_t *s = HYPERVISOR_shared_info;
index 05cf283a65063ea71edf5276a486ca4a1e2d6d9b..eecc6b6a0965a36ebc3999e8e46818977b940388 100644 (file)
@@ -68,6 +68,10 @@ extern atomic_t irq_mis_count;
 
 #define IO_APIC_IRQ(x) (((x) >= 16) || ((1<<(x)) & io_apic_irqs))
 
-extern void hw_resend_irq(struct hw_interrupt_type *h, unsigned int i);
+extern void resend_irq_on_evtchn(struct hw_interrupt_type *h, unsigned int i);
+static inline void hw_resend_irq(struct hw_interrupt_type *h, unsigned int i)
+{
+       resend_irq_on_evtchn(h, i);
+}
 
 #endif /* _ASM_HW_IRQ_H */
index 6f8bd3334d303d2ff7d66cd6a7da7137797d1a61..d4a0cfcd5d7e049bc25a986ca9bd8694aaf0555f 100644 (file)
@@ -90,15 +90,18 @@ extern void free_irq_vector (int vector);
 extern void ia64_send_ipi (int cpu, int vector, int delivery_mode, int redirect);
 extern void register_percpu_irq (ia64_vector vec, struct irqaction *action);
 
-#ifndef CONFIG_XEN
 static inline void
 hw_resend_irq (struct hw_interrupt_type *h, unsigned int vector)
 {
+#ifdef CONFIG_XEN
+       extern void resend_irq_on_evtchn(struct hw_interrupt_type *h,
+                                        unsigned int i);
+       if (is_running_on_xen())
+               resend_irq_on_evtchn(h, vector);
+       else
+#endif /* CONFIG_XEN */
        platform_send_ipi(smp_processor_id(), vector, IA64_IPI_DM_INT, 0);
 }
-#else
-extern void hw_resend_irq(struct hw_interrupt_type *h, unsigned int i);
-#endif /* CONFIG_XEN */
 
 /*
  * Default implementations for the irq-descriptor API:
index 32607a4e726599024dc7ef1eea504aea64fbdbcf..f33108241f11daca356c60010bb4d9bf63076299 100644 (file)
@@ -132,7 +132,11 @@ __asm__( \
        "push $" #nr "-256 ; " \
        "jmp common_interrupt");
 
-extern void hw_resend_irq(struct hw_interrupt_type *h, unsigned int i);
+extern void resend_irq_on_evtchn(struct hw_interrupt_type *h, unsigned int i);
+static inline void hw_resend_irq(struct hw_interrupt_type *h, unsigned int i)
+{
+       resend_irq_on_evtchn(h, i);
+}
 
 #define platform_legacy_irq(irq)       ((irq) < 16)