summaryrefslogtreecommitdiff
path: root/arch/um/include/asm/hardirq.h
diff options
context:
space:
mode:
Diffstat (limited to 'arch/um/include/asm/hardirq.h')
-rw-r--r--arch/um/include/asm/hardirq.h19
1 files changed, 13 insertions, 6 deletions
diff --git a/arch/um/include/asm/hardirq.h b/arch/um/include/asm/hardirq.h
index b426796d26fd..8de71752a9b8 100644
--- a/arch/um/include/asm/hardirq.h
+++ b/arch/um/include/asm/hardirq.h
@@ -5,20 +5,27 @@
#include <linux/cache.h>
#include <linux/threads.h>
+#define __ARCH_IRQ_EXIT_IRQS_DISABLED 1
+
typedef struct {
unsigned int __softirq_pending;
+#if IS_ENABLED(CONFIG_SMP)
+ unsigned int irq_resched_count;
+ unsigned int irq_call_count;
+#endif
} ____cacheline_aligned irq_cpustat_t;
-#include <linux/irq_cpustat.h> /* Standard mappings for irq_cpustat_t above */
+DECLARE_PER_CPU_SHARED_ALIGNED(irq_cpustat_t, irq_stat);
+
+#define __ARCH_IRQ_STAT
+
+#define inc_irq_stat(member) this_cpu_inc(irq_stat.member)
+
#include <linux/irq.h>
-#ifndef ack_bad_irq
static inline void ack_bad_irq(unsigned int irq)
{
- printk(KERN_CRIT "unexpected IRQ trap at vector %02x\n", irq);
+ pr_crit("unexpected IRQ trap at vector %02x\n", irq);
}
-#endif
-
-#define __ARCH_IRQ_EXIT_IRQS_DISABLED 1
#endif /* __ASM_UM_HARDIRQ_H */