Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

xen: add resend_irq_on_evtchn() definition into events.c

Define resend_irq_on_evtchn() which ia64/xen uses.
Although it isn't used by current x86/xen code, it's arch generic
so that put it into common code.

Signed-off-by: Isaku Yamahata <yamahata@valinux.co.jp>
Signed-off-by: Jeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>

authored by

Isaku Yamahata and committed by
Ingo Molnar
642e0c88 e849c3e9

+17
+16
drivers/xen/events.c
··· 586 586 rebind_irq_to_cpu(irq, tcpu); 587 587 } 588 588 589 + int resend_irq_on_evtchn(unsigned int irq) 590 + { 591 + int masked, evtchn = evtchn_from_irq(irq); 592 + struct shared_info *s = HYPERVISOR_shared_info; 593 + 594 + if (!VALID_EVTCHN(evtchn)) 595 + return 1; 596 + 597 + masked = sync_test_and_set_bit(evtchn, s->evtchn_mask); 598 + sync_set_bit(evtchn, s->evtchn_pending); 599 + if (!masked) 600 + unmask_evtchn(evtchn); 601 + 602 + return 1; 603 + } 604 + 589 605 static void enable_dynirq(unsigned int irq) 590 606 { 591 607 int evtchn = evtchn_from_irq(irq);
+1
include/xen/events.h
··· 31 31 void unbind_from_irqhandler(unsigned int irq, void *dev_id); 32 32 33 33 void xen_send_IPI_one(unsigned int cpu, enum ipi_vector vector); 34 + int resend_irq_on_evtchn(unsigned int irq); 34 35 35 36 static inline void notify_remote_via_evtchn(int port) 36 37 {