From 830ce1f69238136c0197858242f16cf44e0d6cb9 Mon Sep 17 00:00:00 2001
From: hc <hc@nodka.com>
Date: Fri, 01 Nov 2024 03:09:37 +0000
Subject: [PATCH] gpio config
---
kernel/include/linux/hardirq.h | 18 ++++++++++++++++++
1 files changed, 18 insertions(+), 0 deletions(-)
diff --git a/kernel/include/linux/hardirq.h b/kernel/include/linux/hardirq.h
index 754f67a..955b6ce 100644
--- a/kernel/include/linux/hardirq.h
+++ b/kernel/include/linux/hardirq.h
@@ -7,6 +7,7 @@
#include <linux/lockdep.h>
#include <linux/ftrace_irq.h>
#include <linux/vtime.h>
+#include <asm-generic/irq_pipeline.h>
#include <asm/hardirq.h>
extern void synchronize_irq(unsigned int irq);
@@ -122,6 +123,7 @@
#define nmi_enter() \
do { \
+ irq_pipeline_nmi_enter(); \
__nmi_enter(); \
lockdep_hardirq_enter(); \
rcu_nmi_enter(); \
@@ -147,6 +149,22 @@
rcu_nmi_exit(); \
lockdep_hardirq_exit(); \
__nmi_exit(); \
+ irq_pipeline_nmi_exit(); \
} while (0)
+static inline bool start_irq_flow(void)
+{
+ return !irqs_pipelined() || in_pipeline();
+}
+
+static inline bool on_pipeline_entry(void)
+{
+ return irqs_pipelined() && in_pipeline();
+}
+
+static inline bool in_hard_irq(void)
+{
+ return irqs_pipelined() ? in_pipeline() : in_irq();
+}
+
#endif /* LINUX_HARDIRQ_H */
--
Gitblit v1.6.2