1 /* SPDX-License-Identifier: GPL-2.0 */ 2 #ifndef __ASM_UM_HARDIRQ_H 3 #define __ASM_UM_HARDIRQ_H 4 5 #include <linux/cache.h> 6 #include <linux/threads.h> 7 8 #define __ARCH_IRQ_EXIT_IRQS_DISABLED 1 9 10 typedef struct { 11 unsigned int __softirq_pending; 12 #if IS_ENABLED(CONFIG_SMP) 13 unsigned int irq_resched_count; 14 unsigned int irq_call_count; 15 #endif 16 } ____cacheline_aligned irq_cpustat_t; 17 18 DECLARE_PER_CPU_SHARED_ALIGNED(irq_cpustat_t, irq_stat); 19 20 #define __ARCH_IRQ_STAT 21 22 #define inc_irq_stat(member) this_cpu_inc(irq_stat.member) 23 24 #include <linux/irq.h> 25 26 static inline void ack_bad_irq(unsigned int irq) 27 { 28 pr_crit("unexpected IRQ trap at vector %02x\n", irq); 29 } 30 31 #endif /* __ASM_UM_HARDIRQ_H */ 32