Loading arch/x86/include/asm/apic.h +6 −0 Original line number Diff line number Diff line Loading @@ -644,6 +644,12 @@ static inline void entering_ack_irq(void) entering_irq(); } static inline void ipi_entering_ack_irq(void) { ack_APIC_irq(); irq_enter(); } static inline void exiting_irq(void) { irq_exit(); Loading arch/x86/kernel/irq_work.c +2 −8 Original line number Diff line number Diff line Loading @@ -10,12 +10,6 @@ #include <asm/apic.h> #include <asm/trace/irq_vectors.h> static inline void irq_work_entering_irq(void) { irq_enter(); ack_APIC_irq(); } static inline void __smp_irq_work_interrupt(void) { inc_irq_stat(apic_irq_work_irqs); Loading @@ -24,14 +18,14 @@ static inline void __smp_irq_work_interrupt(void) __visible void smp_irq_work_interrupt(struct pt_regs *regs) { irq_work_entering_irq(); ipi_entering_ack_irq(); __smp_irq_work_interrupt(); exiting_irq(); } __visible void smp_trace_irq_work_interrupt(struct pt_regs *regs) { irq_work_entering_irq(); ipi_entering_ack_irq(); trace_irq_work_entry(IRQ_WORK_VECTOR); __smp_irq_work_interrupt(); trace_irq_work_exit(IRQ_WORK_VECTOR); Loading arch/x86/kernel/smp.c +6 −13 Original line number Diff line number Diff line Loading @@ -170,8 +170,7 @@ static int smp_stop_nmi_callback(unsigned int val, struct pt_regs *regs) asmlinkage __visible void smp_reboot_interrupt(void) { ack_APIC_irq(); irq_enter(); ipi_entering_ack_irq(); stop_this_cpu(NULL); irq_exit(); } Loading Loading @@ -265,12 +264,6 @@ __visible void smp_reschedule_interrupt(struct pt_regs *regs) */ } static inline void smp_entering_irq(void) { ack_APIC_irq(); irq_enter(); } __visible void smp_trace_reschedule_interrupt(struct pt_regs *regs) { /* Loading @@ -279,7 +272,7 @@ __visible void smp_trace_reschedule_interrupt(struct pt_regs *regs) * scheduler_ipi(). This is OK, since those functions are allowed * to nest. */ smp_entering_irq(); ipi_entering_ack_irq(); trace_reschedule_entry(RESCHEDULE_VECTOR); __smp_reschedule_interrupt(); trace_reschedule_exit(RESCHEDULE_VECTOR); Loading @@ -297,14 +290,14 @@ static inline void __smp_call_function_interrupt(void) __visible void smp_call_function_interrupt(struct pt_regs *regs) { smp_entering_irq(); ipi_entering_ack_irq(); __smp_call_function_interrupt(); exiting_irq(); } __visible void smp_trace_call_function_interrupt(struct pt_regs *regs) { smp_entering_irq(); ipi_entering_ack_irq(); trace_call_function_entry(CALL_FUNCTION_VECTOR); __smp_call_function_interrupt(); trace_call_function_exit(CALL_FUNCTION_VECTOR); Loading @@ -319,14 +312,14 @@ static inline void __smp_call_function_single_interrupt(void) __visible void smp_call_function_single_interrupt(struct pt_regs *regs) { smp_entering_irq(); ipi_entering_ack_irq(); __smp_call_function_single_interrupt(); exiting_irq(); } __visible void smp_trace_call_function_single_interrupt(struct pt_regs *regs) { smp_entering_irq(); ipi_entering_ack_irq(); trace_call_function_single_entry(CALL_FUNCTION_SINGLE_VECTOR); __smp_call_function_single_interrupt(); trace_call_function_single_exit(CALL_FUNCTION_SINGLE_VECTOR); Loading Loading
arch/x86/include/asm/apic.h +6 −0 Original line number Diff line number Diff line Loading @@ -644,6 +644,12 @@ static inline void entering_ack_irq(void) entering_irq(); } static inline void ipi_entering_ack_irq(void) { ack_APIC_irq(); irq_enter(); } static inline void exiting_irq(void) { irq_exit(); Loading
arch/x86/kernel/irq_work.c +2 −8 Original line number Diff line number Diff line Loading @@ -10,12 +10,6 @@ #include <asm/apic.h> #include <asm/trace/irq_vectors.h> static inline void irq_work_entering_irq(void) { irq_enter(); ack_APIC_irq(); } static inline void __smp_irq_work_interrupt(void) { inc_irq_stat(apic_irq_work_irqs); Loading @@ -24,14 +18,14 @@ static inline void __smp_irq_work_interrupt(void) __visible void smp_irq_work_interrupt(struct pt_regs *regs) { irq_work_entering_irq(); ipi_entering_ack_irq(); __smp_irq_work_interrupt(); exiting_irq(); } __visible void smp_trace_irq_work_interrupt(struct pt_regs *regs) { irq_work_entering_irq(); ipi_entering_ack_irq(); trace_irq_work_entry(IRQ_WORK_VECTOR); __smp_irq_work_interrupt(); trace_irq_work_exit(IRQ_WORK_VECTOR); Loading
arch/x86/kernel/smp.c +6 −13 Original line number Diff line number Diff line Loading @@ -170,8 +170,7 @@ static int smp_stop_nmi_callback(unsigned int val, struct pt_regs *regs) asmlinkage __visible void smp_reboot_interrupt(void) { ack_APIC_irq(); irq_enter(); ipi_entering_ack_irq(); stop_this_cpu(NULL); irq_exit(); } Loading Loading @@ -265,12 +264,6 @@ __visible void smp_reschedule_interrupt(struct pt_regs *regs) */ } static inline void smp_entering_irq(void) { ack_APIC_irq(); irq_enter(); } __visible void smp_trace_reschedule_interrupt(struct pt_regs *regs) { /* Loading @@ -279,7 +272,7 @@ __visible void smp_trace_reschedule_interrupt(struct pt_regs *regs) * scheduler_ipi(). This is OK, since those functions are allowed * to nest. */ smp_entering_irq(); ipi_entering_ack_irq(); trace_reschedule_entry(RESCHEDULE_VECTOR); __smp_reschedule_interrupt(); trace_reschedule_exit(RESCHEDULE_VECTOR); Loading @@ -297,14 +290,14 @@ static inline void __smp_call_function_interrupt(void) __visible void smp_call_function_interrupt(struct pt_regs *regs) { smp_entering_irq(); ipi_entering_ack_irq(); __smp_call_function_interrupt(); exiting_irq(); } __visible void smp_trace_call_function_interrupt(struct pt_regs *regs) { smp_entering_irq(); ipi_entering_ack_irq(); trace_call_function_entry(CALL_FUNCTION_VECTOR); __smp_call_function_interrupt(); trace_call_function_exit(CALL_FUNCTION_VECTOR); Loading @@ -319,14 +312,14 @@ static inline void __smp_call_function_single_interrupt(void) __visible void smp_call_function_single_interrupt(struct pt_regs *regs) { smp_entering_irq(); ipi_entering_ack_irq(); __smp_call_function_single_interrupt(); exiting_irq(); } __visible void smp_trace_call_function_single_interrupt(struct pt_regs *regs) { smp_entering_irq(); ipi_entering_ack_irq(); trace_call_function_single_entry(CALL_FUNCTION_SINGLE_VECTOR); __smp_call_function_single_interrupt(); trace_call_function_single_exit(CALL_FUNCTION_SINGLE_VECTOR); Loading