/* * x86 specific code for irq_work * * Copyright (C) 2010 Red Hat, Inc., Peter Zijlstra <pzijlstr@redhat.com> */#include <linux/kernel.h>#include <linux/irq_work.h>#include <linux/hardirq.h>#include <asm/apic.h>voidsmp_irq_work_interrupt(structpt_regs*regs){irq_enter();ack_APIC_irq();inc_irq_stat(apic_irq_work_irqs);irq_work_run();irq_exit();}voidarch_irq_work_raise(void){#ifdef CONFIG_X86_LOCAL_APICif(!cpu_has_apic)return;apic->send_IPI_self(IRQ_WORK_VECTOR);apic_wait_icr_idle();#endif}