diff options
| author | Thomas Gleixner <tglx@linutronix.de> | 2011-03-21 12:09:35 +0100 |
|---|---|---|
| committer | Clark Williams <williams@redhat.com> | 2012-02-15 10:32:30 -0600 |
| commit | b880ce1fcff925e18a884c9c7acd1fcbdcf9d3ee (patch) | |
| tree | 38ab76194c113bcca5f042b8e79b1fd3dded7ebd /kernel | |
| parent | 9dcaf67be9708b126cad758e60e3424239b7a1d3 (diff) | |
sched: Create schedule_preempt_disabled()
Get rid of the ever repeating:
preempt_enable_no_resched();
schedule();
preempt_disable();
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Diffstat (limited to 'kernel')
| -rw-r--r-- | kernel/sched.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/kernel/sched.c b/kernel/sched.c index 6b3239590d5a..465fd119d3b2 100644 --- a/kernel/sched.c +++ b/kernel/sched.c @@ -4456,6 +4456,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) |
