diff options
Diffstat (limited to 'kernel/sched/core.c')
-rw-r--r-- | kernel/sched/core.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/kernel/sched/core.c b/kernel/sched/core.c index 2b037f195473..010d578118d6 100644 --- a/kernel/sched/core.c +++ b/kernel/sched/core.c | |||
@@ -3904,7 +3904,7 @@ void __noreturn do_task_dead(void) | |||
3904 | 3904 | ||
3905 | static inline void sched_submit_work(struct task_struct *tsk) | 3905 | static inline void sched_submit_work(struct task_struct *tsk) |
3906 | { | 3906 | { |
3907 | if (!tsk->state || tsk_is_pi_blocked(tsk)) | 3907 | if (!tsk->state) |
3908 | return; | 3908 | return; |
3909 | 3909 | ||
3910 | /* | 3910 | /* |
@@ -3920,6 +3920,9 @@ static inline void sched_submit_work(struct task_struct *tsk) | |||
3920 | preempt_enable_no_resched(); | 3920 | preempt_enable_no_resched(); |
3921 | } | 3921 | } |
3922 | 3922 | ||
3923 | if (tsk_is_pi_blocked(tsk)) | ||
3924 | return; | ||
3925 | |||
3923 | /* | 3926 | /* |
3924 | * If we are going to sleep and we have plugged IO queued, | 3927 | * If we are going to sleep and we have plugged IO queued, |
3925 | * make sure to submit it to avoid deadlocks. | 3928 | * make sure to submit it to avoid deadlocks. |