diff options
author | Mike Galbraith <umgwanakikbuti@gmail.com> | 2016-02-17 06:02:59 +0300 |
---|---|---|
committer | Ben Hutchings <ben@decadent.org.uk> | 2016-02-27 17:28:49 +0300 |
commit | 34bce1998711e65b8a7ef37eb92641cdc368587a (patch) | |
tree | 239a217a5e90727d57dbcf6a428ea12a3d3a330f /fs/freevxfs/Kconfig | |
parent | feae3ca2e5e1a8f44aa6290255d3d9709985d0b2 (diff) | |
download | linux-34bce1998711e65b8a7ef37eb92641cdc368587a.tar.xz |
sched: fix __sched_setscheduler() vs load balancing race
__sched_setscheduler() may release rq->lock in pull_rt_task() as a task is
being changed rt -> fair class. load balancing may sneak in, move the task
behind __sched_setscheduler()'s back, which explodes in switched_to_fair()
when the passed but no longer valid rq is used. Tell can_migrate_task() to
say no if ->pi_lock is held.
@stable: Kernels that predate SCHED_DEADLINE can use this simple (and tested)
check in lieu of backport of the full 18 patch mainline treatment.
Signed-off-by: Mike Galbraith <umgwanakikbuti@gmail.com>
[bwh: Backported to 3.2:
- Adjust numbering in the comment
- Adjust filename]
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
Cc: Byungchul Park <byungchul.park@lge.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Willy Tarreau <w@1wt.eu>
Diffstat (limited to 'fs/freevxfs/Kconfig')
0 files changed, 0 insertions, 0 deletions