summaryrefslogtreecommitdiff
path: root/include/linux/irqflags.h
diff options
context:
space:
mode:
authorPeter Zijlstra <peterz@infradead.org>2020-03-18 14:22:03 +0100
committerThomas Gleixner <tglx@linutronix.de>2020-05-19 15:47:21 +0200
commitc86e9b987cea3dd0209203e714553a47f5d7c6dd (patch)
tree482f9f9344ca9854ab99444ba49dad7fb2df86bf /include/linux/irqflags.h
parent0995a5dfbe49badff78e78761fb66f46579f2f9a (diff)
lockdep: Prepare for noinstr sections
Force inlining and prevent instrumentation of all sorts by marking the functions which are invoked from low level entry code with 'noinstr'. Split the irqflags tracking into two parts. One which does the heavy lifting while RCU is watching and the final one which can be invoked after RCU is turned off. Signed-off-by: Peter Zijlstra <peterz@infradead.org> Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Reviewed-by: Alexandre Chartre <alexandre.chartre@oracle.com> Link: https://lkml.kernel.org/r/20200505134100.484532537@linutronix.de
Diffstat (limited to 'include/linux/irqflags.h')
-rw-r--r--include/linux/irqflags.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/include/linux/irqflags.h b/include/linux/irqflags.h
index f150e69ab81d..d7f7e436c3af 100644
--- a/include/linux/irqflags.h
+++ b/include/linux/irqflags.h
@@ -19,11 +19,13 @@
#ifdef CONFIG_PROVE_LOCKING
extern void lockdep_softirqs_on(unsigned long ip);
extern void lockdep_softirqs_off(unsigned long ip);
+ extern void lockdep_hardirqs_on_prepare(unsigned long ip);
extern void lockdep_hardirqs_on(unsigned long ip);
extern void lockdep_hardirqs_off(unsigned long ip);
#else
static inline void lockdep_softirqs_on(unsigned long ip) { }
static inline void lockdep_softirqs_off(unsigned long ip) { }
+ static inline void lockdep_hardirqs_on_prepare(unsigned long ip) { }
static inline void lockdep_hardirqs_on(unsigned long ip) { }
static inline void lockdep_hardirqs_off(unsigned long ip) { }
#endif