|
@@ -3246,6 +3246,18 @@ asmlinkage void __sched schedule(void)
|
|
|
}
|
|
|
EXPORT_SYMBOL(schedule);
|
|
|
|
|
|
+/**
|
|
|
+ * schedule_preempt_disabled - called with preemption disabled
|
|
|
+ *
|
|
|
+ * Returns with preemption disabled. Note: preempt_count must be 1
|
|
|
+ */
|
|
|
+void __sched schedule_preempt_disabled(void)
|
|
|
+{
|
|
|
+ preempt_enable_no_resched();
|
|
|
+ schedule();
|
|
|
+ preempt_disable();
|
|
|
+}
|
|
|
+
|
|
|
#ifdef CONFIG_MUTEX_SPIN_ON_OWNER
|
|
|
|
|
|
static inline bool owner_running(struct mutex *lock, struct task_struct *owner)
|