summaryrefslogtreecommitdiff
path: root/include/linux/preempt.h
diff options
context:
space:
mode:
authorTony Lindgren <tony@atomide.com>2020-04-21 19:36:03 +0300
committerTony Lindgren <tony@atomide.com>2020-04-21 19:36:03 +0300
commit175ae3ad59ab3459652bd2ae3bbc1785aeba1bf3 (patch)
treec7fd682de61e3c2a6cc3ba0e8881b99fafdf969c /include/linux/preempt.h
parent07bdc492cff6f555538df95e9812fe72e16d154a (diff)
parent90d4d3f4ea45370d482fa609dbae4d2281b4074f (diff)
downloadlinux-175ae3ad59ab3459652bd2ae3bbc1785aeba1bf3.tar.xz
Merge branch 'fixes-v5.7' into fixes
Diffstat (limited to 'include/linux/preempt.h')
-rw-r--r--include/linux/preempt.h30
1 files changed, 30 insertions, 0 deletions
diff --git a/include/linux/preempt.h b/include/linux/preempt.h
index bbb68dba37cc..bc3f1aecaa19 100644
--- a/include/linux/preempt.h
+++ b/include/linux/preempt.h
@@ -322,4 +322,34 @@ static inline void preempt_notifier_init(struct preempt_notifier *notifier,
#endif
+/**
+ * migrate_disable - Prevent migration of the current task
+ *
+ * Maps to preempt_disable() which also disables preemption. Use
+ * migrate_disable() to annotate that the intent is to prevent migration,
+ * but not necessarily preemption.
+ *
+ * Can be invoked nested like preempt_disable() and needs the corresponding
+ * number of migrate_enable() invocations.
+ */
+static __always_inline void migrate_disable(void)
+{
+ preempt_disable();
+}
+
+/**
+ * migrate_enable - Allow migration of the current task
+ *
+ * Counterpart to migrate_disable().
+ *
+ * As migrate_disable() can be invoked nested, only the outermost invocation
+ * reenables migration.
+ *
+ * Currently mapped to preempt_enable().
+ */
+static __always_inline void migrate_enable(void)
+{
+ preempt_enable();
+}
+
#endif /* __LINUX_PREEMPT_H */