diff options
author | NeilBrown <neilb@suse.com> | 2017-04-07 10:03:26 +1000 |
---|---|---|
committer | Ingo Molnar <mingo@kernel.org> | 2017-04-11 09:06:32 +0200 |
commit | 717a94b5fc7092afebe9c93791f29b2d8e5d297a (patch) | |
tree | 9a7c56b8c2daac8ea7c0f39f58e4c5aa84615ad3 /kernel/softirq.c | |
parent | 36a4dfc37856cae40e4d864950f768d8b7d4f9f5 (diff) | |
download | linux-717a94b5fc7092afebe9c93791f29b2d8e5d297a.tar.gz linux-717a94b5fc7092afebe9c93791f29b2d8e5d297a.tar.bz2 linux-717a94b5fc7092afebe9c93791f29b2d8e5d297a.zip |
sched/core: Remove 'task' parameter and rename tsk_restore_flags() to current_restore_flags()
It is not safe for one thread to modify the ->flags
of another thread as there is no locking that can protect
the update.
So tsk_restore_flags(), which takes a task pointer and modifies
the flags, is an invitation to do the wrong thing.
All current users pass "current" as the task, so no developers have
accepted that invitation. It would be best to ensure it remains
that way.
So rename tsk_restore_flags() to current_restore_flags() and don't
pass in a task_struct pointer. Always operate on current->flags.
Signed-off-by: NeilBrown <neilb@suse.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Mel Gorman <mgorman@suse.de>
Cc: Michal Hocko <mhocko@kernel.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: linux-kernel@vger.kernel.org
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Diffstat (limited to 'kernel/softirq.c')
-rw-r--r-- | kernel/softirq.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/kernel/softirq.c b/kernel/softirq.c index 744fa611cae0..4e09821f9d9e 100644 --- a/kernel/softirq.c +++ b/kernel/softirq.c @@ -309,7 +309,7 @@ restart: account_irq_exit_time(current); __local_bh_enable(SOFTIRQ_OFFSET); WARN_ON_ONCE(in_interrupt()); - tsk_restore_flags(current, old_flags, PF_MEMALLOC); + current_restore_flags(old_flags, PF_MEMALLOC); } asmlinkage __visible void do_softirq(void) |