diff options
| author | Takashi Iwai <tiwai@suse.de> | 2013-12-16 15:53:52 +0100 |
|---|---|---|
| committer | Takashi Iwai <tiwai@suse.de> | 2013-12-16 15:53:52 +0100 |
| commit | d09476018bee39495d6ece7a2e069de29a9c0ed5 (patch) | |
| tree | 866fff4323f94681e6b423f269f0549df0a34066 /kernel/cpuset.c | |
| parent | 337bb336b95bd7884fa3a194eafbdf52a0216b2e (diff) | |
| parent | afdcd431cebe3498db9aa963c780fdd5099917ec (diff) | |
Merge branch 'for-linus' into for-next
Diffstat (limited to 'kernel/cpuset.c')
| -rw-r--r-- | kernel/cpuset.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/kernel/cpuset.c b/kernel/cpuset.c index 6bf981e13c43..4772034b4b17 100644 --- a/kernel/cpuset.c +++ b/kernel/cpuset.c @@ -1033,8 +1033,10 @@ static void cpuset_change_task_nodemask(struct task_struct *tsk, need_loop = task_has_mempolicy(tsk) || !nodes_intersects(*newmems, tsk->mems_allowed); - if (need_loop) + if (need_loop) { + local_irq_disable(); write_seqcount_begin(&tsk->mems_allowed_seq); + } nodes_or(tsk->mems_allowed, tsk->mems_allowed, *newmems); mpol_rebind_task(tsk, newmems, MPOL_REBIND_STEP1); @@ -1042,8 +1044,10 @@ static void cpuset_change_task_nodemask(struct task_struct *tsk, mpol_rebind_task(tsk, newmems, MPOL_REBIND_STEP2); tsk->mems_allowed = *newmems; - if (need_loop) + if (need_loop) { write_seqcount_end(&tsk->mems_allowed_seq); + local_irq_enable(); + } task_unlock(tsk); } |
