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;
#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 */
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:
"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)