Oleg Nesterov
fae5fa44f1
signals: fix /sbin/init protection from unwanted signals
...
The global init has a lot of long standing problems with the unhandled fatal
signals.
- The "is_global_init(current)" check in get_signal_to_deliver()
protects only the main thread. Sub-thread can dequee the fatal
signal and shutdown the whole thread group except the main thread.
If it dequeues SIGSTOP /sbin/init will be stopped, this is not
right too. Note that we can't use is_global_init(->group_leader),
this breaks exec and this can't solve other problems we have.
- Even if afterwards ignored, the fatal signals sets SIGNAL_GROUP_EXIT
on delivery. This breaks exec, has other bad implications, and this
is just wrong.
Introduce the new SIGNAL_UNKILLABLE flag to fix these problems. It also helps
to solve some other problems addressed by the subsequent patches.
Currently we use this flag for the global init only, but it could also be used
by kthreads and (perhaps) by the sub-namespace inits.
Signed-off-by: Oleg Nesterov <oleg@tv-sign.ru>
Acked-by: "Eric W. Biederman" <ebiederm@xmission.com>
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:37 -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
x86: add a simple backtrace test module
2008-01-30 13:33:08 +01:00
bounds.c
Add kbuild.h that contains common definitions for kbuild users
2008-04-29 08:06:29 -07:00
capability.c
Add 64-bit capability support to the kernel
2008-02-05 09:44:20 -08:00
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
Add scaled time to taskstats based process accounting
2007-10-18 14:37:28 -07:00
dma.c
kernel: use non-racy method for proc entries creation
2008-04-29 08:06:22 -07:00
exec_domain.c
whitespace fixes: execution domains
2007-10-18 14:37:26 -07:00
exit.c
signals: do_group_exit(): use signal_group_exit() more consistently
2008-04-30 08:29:33 -07:00
extable.c
module: Don't report discarded init pages as kernel text.
2008-01-29 17:13:18 +11:00
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
ITIMER_REAL: convert to use struct pid
2008-02-08 09:22:29 -08:00
kallsyms.c
kernel: use non-racy method for proc entries creation
2008-04-29 08:06:22 -07:00
Kconfig.hz
sched: high-res preemption tick
2008-01-25 21:08:29 +01:00
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
is_power_of_2: kernel/kfifo.c
2007-07-16 09:05:50 -07:00
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
Kobject: convert remaining kobject_unregister() to kobject_put()
2008-01-24 20:40:40 -08:00
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
[PATCH] lockdep: more chains
2006-12-07 08:39:43 -08:00
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
kernel: remove fastcall in kernel/*
2008-02-08 09:22:31 -08:00
mutex-debug.h
[PATCH] lockdep: better lock debugging
2006-07-03 15:27:01 -07:00
mutex.c
kernel: remove fastcall in kernel/*
2008-02-08 09:22:31 -08:00
mutex.h
[PATCH] lockdep: prove mutex locking correctness
2006-07-03 15:27:04 -07:00
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
kernel: remove fastcall in kernel/*
2008-02-08 09:22:31 -08:00
pid_namespace.c
kernel: fix integer as NULL pointer warnings
2008-04-28 17:29:18 -07:00
pm_qos_params.c
pm qos infrastructure and interface
2008-02-05 09:44:22 -08:00
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
Preempt-RCU: implementation
2008-01-25 21:08:24 +01:00
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
Preempt-RCU: implementation
2008-01-25 21:08:24 +01:00
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
Don't operate with pid_t in rtmutex tester
2008-02-08 09:22:41 -08:00
rtmutex-debug.h
[PATCH] lockdep: better lock debugging
2006-07-03 15:27:01 -07:00
rtmutex-tester.c
Driver core: change sysdev classes to use dynamic kobject names
2008-01-24 20:40:40 -08:00
rtmutex.c
hrtimer: more hrtimer_init_sleeper() fallout.
2008-02-13 15:45:36 +01:00
rtmutex.h
[PATCH] lockdep: better lock debugging
2006-07-03 15:27:01 -07:00
rtmutex_common.h
Don't operate with pid_t in rtmutex tester
2008-02-08 09:22:41 -08:00
rwsem.c
sched: mark rwsem functions as __sched for wchan/profiling
2007-12-18 15:21:13 +01:00
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: high-res preemption tick
2008-01-25 21:08:29 +01:00
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
make seccomp zerocost in schedule
2007-07-16 09:05:50 -07:00
semaphore.c
Improve semaphore documentation
2008-04-17 10:43:01 -04:00
signal.c
signals: fix /sbin/init protection from unwanted signals
2008-04-30 08:29:37 -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
spinlock: lockbreak cleanup
2008-01-30 13:31:20 +01:00
srcu.c
make srcu_readers_active() static
2008-02-06 10:41:02 -08:00
stacktrace.c
[PATCH] lockdep: stacktrace subsystem, core
2006-07-03 15:27:02 -07:00
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
timerfd: new timerfd API
2008-02-05 09:44:07 -08:00
sysctl.c
sysctl: add the ->permissions callback on the ctl_table_root
2008-04-29 08:06:23 -07:00
sysctl_check.c
constify tables in kernel/sysctl_check.c
2008-02-08 09:22:31 -08:00
taskstats.c
kernel/taskstats.c: fix bogus nlmsg_free()
2007-11-14 18:45:44 -08:00
test_kprobes.c
kprobes: kretprobe user entry-handler
2008-02-06 10:41:11 -08:00
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
Add scaled time to taskstats based process accounting
2007-10-18 14:37:28 -07:00
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
Isolate the UTS namespace's domainname and hostname back
2007-11-29 09:24:53 -08:00
wait.c
kernel: remove fastcall in kernel/*
2008-02-08 09:22:31 -08:00
workqueue.c
cleanup_workqueue_thread: remove the unneeded "cpu" parameter
2008-04-29 08:06:11 -07:00