hc
2024-01-05 071106ecf68c401173c58808b1cf5f68cc50d390
kernel/include/linux/context_tracking_state.h
....@@ -23,28 +23,33 @@
2323 };
2424
2525 #ifdef CONFIG_CONTEXT_TRACKING
26
-extern struct static_key_false context_tracking_enabled;
26
+extern struct static_key_false context_tracking_key;
2727 DECLARE_PER_CPU(struct context_tracking, context_tracking);
2828
29
-static inline bool context_tracking_is_enabled(void)
29
+static __always_inline bool context_tracking_enabled(void)
3030 {
31
- return static_branch_unlikely(&context_tracking_enabled);
31
+ return static_branch_unlikely(&context_tracking_key);
3232 }
3333
34
-static inline bool context_tracking_cpu_is_enabled(void)
34
+static __always_inline bool context_tracking_enabled_cpu(int cpu)
3535 {
36
- return __this_cpu_read(context_tracking.active);
36
+ return context_tracking_enabled() && per_cpu(context_tracking.active, cpu);
3737 }
3838
39
-static inline bool context_tracking_in_user(void)
39
+static inline bool context_tracking_enabled_this_cpu(void)
40
+{
41
+ return context_tracking_enabled() && __this_cpu_read(context_tracking.active);
42
+}
43
+
44
+static __always_inline bool context_tracking_in_user(void)
4045 {
4146 return __this_cpu_read(context_tracking.state) == CONTEXT_USER;
4247 }
4348 #else
4449 static inline bool context_tracking_in_user(void) { return false; }
45
-static inline bool context_tracking_active(void) { return false; }
46
-static inline bool context_tracking_is_enabled(void) { return false; }
47
-static inline bool context_tracking_cpu_is_enabled(void) { return false; }
50
+static inline bool context_tracking_enabled(void) { return false; }
51
+static inline bool context_tracking_enabled_cpu(int cpu) { return false; }
52
+static inline bool context_tracking_enabled_this_cpu(void) { return false; }
4853 #endif /* CONFIG_CONTEXT_TRACKING */
4954
5055 #endif