Oleg Nesterov
34c8f07b9a
signals: handle_stop_signal: don't worry about SIGKILL
...
handle_stop_signal() clears SIGNAL_STOP_DEQUEUED when sig == SIGKILL. Remove
this nasty special case. It was needed to prevent the race with group stop
and exit caused by thread-specific SIGKILL. Now that we use complete_signal()
for private signals too this is not needed, complete_signal() will notice
SIGKILL and abort the soon-to-begin group stop.
Except: the target thread is dead (has PF_EXITING). But in that case we
should not just clear SIGNAL_STOP_DEQUEUED and nothing more. We should either
kill the whole thread group, or silently ignore the signal.
I suspect we are not right wrt zombie leaders, but this is another issue which
and should be fixed separately. Note that this check can't abort the group
stop if it was already started/finished, this check only adds a subtle side
effect if we race with the thread which has already dequeued sig_kernel_stop()
signal and temporary released ->siglock.
Signed-off-by: Oleg Nesterov <oleg@tv-sign.ru>
Cc: Roland McGrath <roland@redhat.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2008-04-30 08:29:36 -07:00
..
irq
kernel: explicitly include required header files under kernel/
2008-04-29 08:06:04 -07:00
power
PM/gxfb: add hook to PM console layer that allows disabling of suspend VT switch
2008-04-28 08:58:36 -07:00
time
kernel: use non-racy method for proc entries creation
2008-04-29 08:06:22 -07:00
.gitignore
Update kernel/.gitignore with new auto-generated files
2008-02-09 23:27:01 -08:00
acct.c
bsd_acct: using task_struct->tgid is not right in pid-namespaces
2008-03-24 19:22:20 -07:00
audit.c
[patch 2/2] Use find_task_by_vpid in audit code
2008-04-28 06:28:30 -04:00
audit.h
[PATCH 1/2] audit: move extern declarations to audit.h
2008-04-28 06:28:04 -04:00
audit_tree.c
Introduce path_put()
2008-02-14 21:13:33 -08:00
auditfilter.c
Merge branch 'audit.b50' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/audit-current
2008-04-29 11:41:22 -07:00
auditsc.c
[PATCH] new predicate - AUDIT_FILETYPE
2008-04-28 06:28:37 -04:00
backtracetest.c
bounds.c
Add kbuild.h that contains common definitions for kbuild users
2008-04-29 08:06:29 -07:00
capability.c
cgroup.c
cgroups: add an owner to the mm_struct
2008-04-29 08:06:10 -07:00
cgroup_debug.c
CGroup API files: move "releasable" to cgroup_debug subsystem
2008-04-29 08:06:09 -07:00
compat.c
generic: reduce stack pressure in sched_affinity
2008-04-19 19:44:59 +02:00
configs.c
kernel: use non-racy method for proc entries creation
2008-04-29 08:06:22 -07:00
cpu.c
simplify cpu_hotplug_begin()/put_online_cpus()
2008-04-29 08:06:11 -07:00
cpuset.c
Cpuset hardwall flag: add a mem_hardwall flag to cpusets
2008-04-29 08:06:11 -07:00
delayacct.c
dma.c
kernel: use non-racy method for proc entries creation
2008-04-29 08:06:22 -07:00
exec_domain.c
exit.c
signals: do_group_exit(): use signal_group_exit() more consistently
2008-04-30 08:29:33 -07:00
extable.c
fork.c
signals: microoptimize the usage of ->curr_target
2008-04-30 08:29:35 -07:00
futex.c
NULL noise: fs/*, mm/*, kernel/*
2008-03-30 14:18:41 -07:00
futex_compat.c
futex_compat __user annotation
2008-03-30 14:18:41 -07:00
hrtimer.c
hrtimer: raise softirq unlocked to avoid circular lock dependency
2008-04-28 22:22:21 +02:00
itimer.c
kallsyms.c
kernel: use non-racy method for proc entries creation
2008-04-29 08:06:22 -07:00
Kconfig.hz
Kconfig.preempt
rcu: move PREEMPT_RCU config option back under PREEMPT
2008-03-10 18:01:20 -07:00
kexec.c
vmcoreinfo: add page flags values
2008-04-28 08:58:23 -07:00
kfifo.c
kgdb.c
kgdb: always use icache flush for sw breakpoints
2008-04-17 20:05:43 +02:00
kmod.c
generic: use new set_cpus_allowed_ptr function
2008-04-19 19:44:58 +02:00
kprobes.c
kprobes: add (un)register_jprobes for batch registration
2008-04-28 08:58:32 -07:00
ksysfs.c
kthread.c
kthread: call wake_up_process() without the lock being held
2008-04-29 08:06:04 -07:00
latencytop.c
kernel: use non-racy method for proc entries creation
2008-04-29 08:06:22 -07:00
lockdep.c
Subject: lockdep: include all lock classes in all_lock_classes
2008-02-25 23:03:02 +01:00
lockdep_internals.h
lockdep_proc.c
kernel: use non-racy method for proc entries creation
2008-04-29 08:06:22 -07:00
Makefile
sysctl: allow embedded targets to disable sysctl_check.c
2008-04-29 08:06:22 -07:00
marker.c
kernel: explicitly include required header files under kernel/
2008-04-29 08:06:04 -07:00
module.c
kernel: Remove unnecessary inclusions of asm/semaphore.h
2008-04-18 22:17:04 -04:00
mutex-debug.c
mutex-debug.h
mutex.c
mutex.h
notifier.c
ipc: re-enable msgmni automatic recomputing msgmni if set to negative
2008-04-29 08:06:13 -07:00
ns_cgroup.c
cgroups: kernel/ns_cgroup.c should #include <linux/nsproxy.h>
2008-04-29 08:06:07 -07:00
nsproxy.c
ipc: sysvsem: refuse clone(CLONE_SYSVSEM|CLONE_NEWIPC)
2008-04-29 08:06:14 -07:00
panic.c
Taint kernel after WARN_ON(condition)
2008-04-29 08:05:59 -07:00
params.c
Add new string functions strict_strto* and convert kernel params to use them
2008-02-08 09:22:41 -08:00
pid.c
pid_namespace.c
kernel: fix integer as NULL pointer warnings
2008-04-28 17:29:18 -07:00
pm_qos_params.c
posix-cpu-timers.c
posix-timers: fix shadowed variables
2008-04-17 12:22:30 +02:00
posix-timers.c
signals: join send_sigqueue() with send_group_sigqueue()
2008-04-30 08:29:36 -07:00
printk.c
isolate ratelimit from printk.c for other use
2008-04-29 08:06:06 -07:00
profile.c
kernel: use non-racy method for proc entries creation
2008-04-29 08:06:22 -07:00
ptrace.c
ptrace: conditionalize compat_ptrace_request
2008-04-28 14:14:36 -07:00
rcuclassic.c
rcupdate.c
rcupdate: fix comment
2008-02-13 16:21:18 -08:00
rcupreempt.c
generic: reduce stack pressure in sched_affinity
2008-04-19 19:44:59 +02:00
rcupreempt_trace.c
rcutorture.c
kernel: explicitly include required header files under kernel/
2008-04-29 08:06:04 -07:00
relay.c
Merge branch 'for-linus' of git://git.kernel.dk/linux-2.6-block
2008-04-29 08:18:03 -07:00
res_counter.c
memcgroup: add the max_usage member on the res_counter
2008-04-29 08:06:10 -07:00
resource.c
kernel: use non-racy method for proc entries creation
2008-04-29 08:06:22 -07:00
rtmutex-debug.c
rtmutex-debug.h
rtmutex-tester.c
rtmutex.c
hrtimer: more hrtimer_init_sleeper() fallout.
2008-02-13 15:45:36 +01:00
rtmutex.h
rtmutex_common.h
rwsem.c
sched.c
CGroups _s64 files: use read_s64/write_s64 in CFS cgroup for rt_runtime file
2008-04-29 08:06:09 -07:00
sched_debug.c
kernel: use non-racy method for proc entries creation
2008-04-29 08:06:22 -07:00
sched_fair.c
sched: debug: show a weight tree
2008-04-19 19:45:00 +02:00
sched_features.h
sched: /debug/sched_features
2008-04-19 19:45:00 +02:00
sched_idletask.c
sched_rt.c
sched: rt-group: optimize dequeue_rt_stack
2008-04-19 19:45:00 +02:00
sched_stats.h
cpumask: use new cpus_scnprintf function
2008-04-19 19:44:59 +02:00
seccomp.c
semaphore.c
Improve semaphore documentation
2008-04-17 10:43:01 -04:00
signal.c
signals: handle_stop_signal: don't worry about SIGKILL
2008-04-30 08:29:36 -07:00
softirq.c
tasklets: execute tasklets in the same order they were queued
2008-04-19 19:44:58 +02:00
softlockup.c
softlockup: fix task state setting
2008-02-29 18:46:53 +01:00
spinlock.c
srcu.c
stacktrace.c
stop_machine.c
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/juhl/trivial
2008-04-21 16:36:46 -07:00
sys.c
k_getrusage: don't take rcu_read_lock()
2008-04-30 08:29:34 -07:00
sys_ni.c
sysctl.c
sysctl: add the ->permissions callback on the ctl_table_root
2008-04-29 08:06:23 -07:00
sysctl_check.c
taskstats.c
test_kprobes.c
time.c
kernel: explicitly include required header files under kernel/
2008-04-29 08:06:04 -07:00
timeconst.pl
timeconst.pl: correct reversal of USEC_TO_HZ and HZ_TO_USEC
2008-02-12 14:29:26 -08:00
timer.c
timers: simplify lockdep handling
2008-04-17 12:22:31 +02:00
tsacct.c
uid16.c
asmlinkage_protect replaces prevent_tail_call
2008-04-10 17:28:26 -07:00
user.c
keys: don't generate user and user session keyrings unless they're accessed
2008-04-29 08:06:17 -07:00
user_namespace.c
eCryptfs: make key module subsystem respect namespaces
2008-04-29 08:06:07 -07:00
utsname.c
kernel: explicitly include required header files under kernel/
2008-04-29 08:06:04 -07:00
utsname_sysctl.c
wait.c
workqueue.c
cleanup_workqueue_thread: remove the unneeded "cpu" parameter
2008-04-29 08:06:11 -07:00