linux-stable/kernel
Sasha Levin 788c44ff3d sched/core: Remove false-positive warning from wake_up_process()
commit 119d6f6a3b upstream.

Because wakeups can (fundamentally) be late, a task might not be in
the expected state. Therefore testing against a task's state is racy,
and can yield false positives.

Signed-off-by: Sasha Levin <sasha.levin@oracle.com>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Acked-by: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Mike Galbraith <efault@gmx.de>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: oleg@redhat.com
Fixes: 9067ac85d5 ("wake_up_process() should be never used to wakeup a TASK_STOPPED/TRACED task")
Link: http://lkml.kernel.org/r/1448933660-23082-1-git-send-email-sasha.levin@oracle.com
Signed-off-by: Ingo Molnar <mingo@kernel.org>
[bwh: Backported to 3.2: adjust filename]
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
(cherry picked from commit 0e796c1b57)
Signed-off-by: Willy Tarreau <w@1wt.eu>
2016-01-29 22:12:48 +01:00
..
gcov gcov: fix null-pointer dereference for certain module types 2010-09-20 13:17:53 -07:00
irq random: remove rand_initialize_irq() 2012-10-07 23:41:21 +02:00
power PM / Suspend: Off by one in pm_suspend() 2011-11-26 09:10:33 -08:00
time tick: Cleanup NOHZ per cpu data on cpu down 2013-06-10 11:42:13 +02:00
trace tracing/filter: Do not allow infix to exceed end of string 2015-09-18 13:52:15 +02:00
.gitignore
acct.c bsdacct: fix uid/gid misreporting 2009-12-18 14:03:52 -08:00
async.c Fix a dead loop in async_synchronize_full() 2013-06-10 11:42:26 +02:00
audit_tree.c fix more leaks in audit_tree.c tag_chunk() 2010-01-18 10:19:50 -08:00
audit_watch.c Audit: reorganize struct audit_watch to save 8 bytes 2009-09-24 03:50:25 -04:00
audit.c Audit: send signal info if selinux is disabled 2009-09-24 03:50:26 -04:00
audit.h Fix rule eviction order for AUDIT_DIR 2009-06-24 00:02:38 -04:00
auditfilter.c Audit: clean up all op= output to include string quoting 2009-06-24 00:00:52 -04:00
auditsc.c auditsc: audit_krule mask accesses need bounds checking 2014-06-19 00:26:00 +02:00
backtracetest.c
bounds.c
capability.c security: add cred argument to security_capable() 2015-12-06 00:49:09 +01:00
cgroup_freezer.c Freezer: Fix buggy resume test for tasks frozen with cgroup freezer 2010-04-26 07:41:17 -07:00
cgroup.c cgroup: remove incorrect dget/dput() pair in cgroup_create_dir() 2013-06-10 11:42:26 +02:00
compat.c compat: Make compat_alloc_user_space() incorporate the access_ok() 2010-09-20 13:17:57 -07:00
configs.c
cpu.c PM / Sleep: Fix race between CPU hotplug and freezer 2012-01-12 11:40:11 -08:00
cpuset.c cpuset: add a missing unlock in cpuset_write_resmask() 2011-03-14 14:29:52 -07:00
cred.c cred: copy_process() should clear child->replacement_session_keyring 2012-10-07 23:37:30 +02:00
delayacct.c headers: taskstats_kern.h trim 2009-09-18 09:48:52 -07:00
dma.c
exec_domain.c Get rid of indirect include of fs_struct.h 2009-03-31 23:00:27 -04:00
exit.c block: Fix io_context leak after failure of clone with CLONE_IO 2012-10-07 23:37:22 +02:00
extable.c Merge branch 'tracing-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2009-04-05 11:04:19 -07:00
fork.c epoll: introduce POLLFREE to flush ->signalfd_wqh before kfree() 2012-10-07 23:41:05 +02:00
freezer.c sched: fix nr_uninterruptible accounting of frozen tasks really 2009-07-18 14:19:53 +02:00
futex_compat.c futex: Fix compat_futex to be same as futex for REQUEUE_PI 2009-08-10 15:41:12 +02:00
futex.c futex: Unlock hb->lock in futex_wait_requeue_pi() error path 2014-11-23 10:55:53 +01:00
groups.c kernel/groups.c: fix integer overflow in groups_search 2010-09-20 13:17:54 -07:00
hrtimer.c hrtimer: Allow concurrent hrtimer_start() for self restarting timers 2015-09-18 13:52:07 +02:00
hung_task.c hung_task: fix false positive during vfork 2012-01-06 15:38:03 -08:00
itimer.c itimers: Add tracepoints for itimer 2009-08-29 14:10:07 +02:00
kallsyms.c kallsyms: use new arch_is_kernel_text() 2009-09-23 07:39:30 -07:00
Kconfig.freezer
Kconfig.hz
Kconfig.preempt rcu: provide RCU options on non-preempt architectures too 2008-12-25 09:31:28 +01:00
kexec.c kexec: fix omitting offset in extended crashkernel syntax 2009-07-29 19:10:34 -07:00
kfifo.c kfifo: Use "const" definitions 2009-09-19 13:13:17 -07:00
kgdb.c repair gdbstub to match the gdbserial protocol specification 2011-04-14 16:53:40 -07:00
kmod.c kernel/kmod.c: check for NULL in call_usermodehelper_exec() 2014-05-19 07:53:14 +02:00
kprobes.c kprobes: initialize before using a hlist 2012-01-25 13:53:25 -08:00
ksysfs.c sched: Remove USER_SCHED 2011-02-17 15:37:19 -08:00
kthread.c cpuset: fix the problem that cpuset_mem_spread_node() returns an offline node 2010-04-01 15:58:46 -07:00
latencytop.c latencytop: fix per task accumulator 2010-12-09 13:26:51 -08:00
lockdep_internals.h lockdep: BFS cleanup 2009-07-24 10:53:29 +02:00
lockdep_proc.c seq_file: constify seq_operations 2009-09-23 07:39:29 -07:00
lockdep_states.h lockdep: move state bit definitions around 2009-02-14 23:27:59 +01:00
lockdep.c lockdep: Fix lock_is_held() on recursion 2011-06-23 15:24:06 -07:00
Makefile SLOW_WORK: Move slow_work's proc file to debugfs 2009-12-01 08:20:31 -08:00
module.c module: Fix locking in symbol_put_addr() 2015-12-06 00:49:13 +01:00
mutex-debug.c headers: remove sched.h from interrupt.h 2009-10-11 11:20:58 -07:00
mutex-debug.h mutex: implement adaptive spinning 2009-01-14 18:09:02 +01:00
mutex.c mutex: Fix optimistic spinning vs. BKL 2010-07-05 11:10:31 -07:00
mutex.h mutex: implement adaptive spinning 2009-01-14 18:09:02 +01:00
notifier.c Merge commit 'v2.6.28-rc6' into core/debug 2008-11-26 08:22:50 +01:00
ns_cgroup.c cgroups: let ss->can_attach and ss->attach do whole threadgroups at a time 2009-09-24 07:20:58 -07:00
nsproxy.c nsproxy: extract create_nsproxy() 2009-06-18 13:03:56 -07:00
panic.c Merge branch 'core-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2009-10-08 12:16:35 -07:00
params.c param: fix setting arrays of bool 2009-10-29 08:56:20 +10:30
perf_event.c perf: overflow/perf_count_sw_cpu_clock crashes recent kernels 2011-08-08 10:23:22 -07:00
pid_namespace.c pidns: deny CLONE_PARENT|CLONE_NEWPID combination 2009-09-24 07:21:04 -07:00
pid.c next_pidmap: fix overflow condition 2011-04-22 08:44:25 -07:00
pm_qos_params.c
posix-cpu-timers.c posix-cpu-timers: Fix nanosleep task_struct leak 2013-06-10 11:42:12 +02:00
posix-timers.c posix-timers: Fix stack info leak in timer_create() 2015-05-24 10:10:55 +02:00
printk.c nohz: Fix printk_needs_cpu() return value on offline cpus 2011-01-07 14:43:03 -08:00
profile.c profile: fix stats and data leakage 2010-05-26 14:29:18 -07:00
ptrace.c __ptrace_may_access() should not deny sub-threads 2015-09-18 13:52:05 +02:00
rcupdate.c rcu: Move rcu_barrier() to rcutree 2009-10-07 08:11:20 +02:00
rcutorture.c rcu: Clean up code to address Ingo's checkpatch feedback 2009-09-23 19:46:30 +02:00
rcutree_plugin.h rcu: Remove inline from forward-referenced functions 2009-12-18 14:03:04 -08:00
rcutree_trace.c rcu: Make hot-unplugged CPU relinquish its own RCU callbacks 2009-10-07 08:11:20 +02:00
rcutree.c rcu: Fix note_new_gpnum() uses of ->gpnum 2009-12-18 14:03:01 -08:00
rcutree.h rcu: Remove inline from forward-referenced functions 2009-12-18 14:03:04 -08:00
relay.c relay: prevent integer overflow in relay_open() 2012-03-04 09:49:19 -08:00
res_counter.c memcg: some modification to softlimit under hierarchical memory reclaim. 2009-10-01 16:11:13 -07:00
resource.c kernel/resource.c: fix stack overflow in __reserve_region_with_split() 2013-06-10 11:42:25 +02:00
rtmutex_common.h rt_mutex: add proxy lock routines 2009-04-06 11:14:02 +02:00
rtmutex-debug.c
rtmutex-debug.h
rtmutex-tester.c
rtmutex.c rtmutex: Avoid deadlock in rt_mutex_start_proxy_lock() 2009-08-06 05:50:21 +02:00
rtmutex.h
rwsem.c
sched_clock.c sched: Fix cpu_clock() in NMIs, on !CONFIG_HAVE_UNSTABLE_SCHED_CLOCK 2010-01-22 15:18:30 -08:00
sched_cpupri.c sched: Add new prio to cpupri before removing old prio 2009-08-02 14:26:09 +02:00
sched_cpupri.h cpumask: remove cpumask_t from core 2009-03-30 22:05:17 +10:30
sched_debug.c sched: Remove remaining USER_SCHED code 2011-02-17 15:37:19 -08:00
sched_fair.c sched: Fix signed unsigned comparison in check_preempt_tick() 2012-10-07 23:37:17 +02:00
sched_features.h sched: Remove irq time from available CPU power 2011-02-17 15:37:27 -08:00
sched_idletask.c sched: Fix TASK_WAKING vs fork deadlock 2010-09-20 13:18:09 -07:00
sched_rt.c sched: Do not account irq time to current task 2011-02-17 15:37:26 -08:00
sched_stats.h sched: remove unused fields from struct rq 2009-03-24 23:16:51 +01:00
sched.c sched/core: Remove false-positive warning from wake_up_process() 2016-01-29 22:12:48 +01:00
seccomp.c x86-64: seccomp: fix 32/64 syscall hole 2009-03-02 15:41:30 -08:00
semaphore.c
signal.c kernel/signal.c: use __ARCH_HAS_SA_RESTORER instead of SA_RESTORER 2013-06-10 11:42:22 +02:00
slow-work-debugfs.c SLOW_WORK: Move slow_work's proc file to debugfs 2009-12-01 08:20:31 -08:00
slow-work.c slow-work: use get_ref wrapper instead of directly calling get_ref 2010-08-10 10:20:45 -07:00
slow-work.h SLOW_WORK: Move slow_work's proc file to debugfs 2009-12-01 08:20:31 -08:00
smp.c smp_call_function_many: handle concurrent clearing of mask 2011-03-23 13:16:55 -07:00
softirq.c Fix lockup related to stop_machine being stuck in __do_softirq. 2014-05-19 07:53:11 +02:00
softlockup.c softlockup: Stop spurious softlockup messages due to overflow 2010-04-01 15:58:47 -07:00
spinlock.c locking: Allow arch-inlined spinlocks 2009-08-31 18:08:50 +02:00
srcu.c
stacktrace.c stacktrace: provide save_stack_trace_tsk() weak alias 2008-12-25 11:44:43 +01:00
stop_machine.c cpumask: remove cpumask_t from core 2009-03-30 22:05:17 +10:30
sys_ni.c Merge branch 'master' of /home/davem/src/GIT/linux-2.6/ 2009-09-24 15:13:11 -07:00
sys.c kernel/sys.c: call disable_nonboot_cpus() in kernel_restart() 2013-06-10 11:42:23 +02:00
sysctl_check.c NET: fix oops at bootime in sysctl code 2010-02-09 04:51:02 -08:00
sysctl.c kernel/sysctl.c: fix stable merge error in NOMMU mmap_min_addr 2010-01-18 10:19:49 -08:00
taskstats.c Make TASKSTATS require root access 2011-12-21 13:04:53 -08:00
test_kprobes.c kprobes: add tests for register_kprobes 2009-01-06 15:59:20 -08:00
time.c time: Change jiffies_to_clock_t() argument type to unsigned long 2011-11-07 12:32:28 -08:00
timeconst.pl
timer.c timer: Don't reinitialize the cpu base lock during CPU_UP_PREPARE 2013-06-10 11:42:13 +02:00
tracepoint.c trivial: fix typo "to to" in multiple files 2009-09-21 15:14:55 +02:00
tsacct.c Fix fixpoint divide exception in acct_update_integrals 2009-03-09 08:13:35 -07:00
uid16.c headers: utsname.h redux 2009-09-23 18:13:10 -07:00
up.c smp_call_function_single(): be slightly less stupid, fix #2 2009-01-12 16:04:37 +01:00
user_namespace.c Fix recursive lock in free_uid()/free_user_ns() 2009-02-27 16:26:21 -08:00
user.c kernel/user.c: add lock release annotation on free_user() 2011-02-17 15:37:31 -08:00
utsname_sysctl.c sysctl: remove "struct file *" argument of ->proc_handler 2009-09-24 07:21:04 -07:00
utsname.c utsns: extract creeate_uts_ns() 2009-06-18 13:03:55 -07:00
wait.c locking, sched: Give waitqueue spinlocks their own lockdep classes 2009-08-10 14:43:09 +02:00
workqueue.c usb: Fix deadlock in hid_reset when Dell iDRAC is reset 2012-10-07 23:37:12 +02:00