Amnon Shiloh
52b3694157
kernel/sys.c: make prctl(PR_SET_MM) generally available
...
The purpose of this patch is to allow privileged processes to set
their own per-memory memory-region fields:
start_code, end_code, start_data, end_data, start_brk, brk,
start_stack, arg_start, arg_end, env_start, env_end.
This functionality is needed by any application or package that needs to
reconstruct Linux processes, that is, to start them in any way other than
by means of an "execve()" from an executable file. This includes:
1. Restoring processes from a checkpoint-file (by all potential
user-level checkpointing packages, not only CRIU's).
2. Restarting processes on another node after process migration.
3. Starting duplicated copies of a running process (for reliability
and high-availablity).
4. Starting a process from an executable format that is not supported
by Linux, thus requiring a "manual execve" by a user-level utility.
5. Similarly, starting a process from a networked and/or crypted
executable that, for confidentiality, licensing or other reasons,
may not be written to the local file-systems.
The code that does that was already included in the Linux kernel by the
CRIU group, in the form of "prctl(PR_SET_MM)", but prior to this was
enclosed within their private "#ifdef CONFIG_CHECKPOINT_RESTORE", which is
normally disabled. The patch removes those ifdefs.
Signed-off-by: Amnon Shiloh <u3557@miso.sublimeip.com>
Cc: Cyrill Gorcunov <gorcunov@openvz.org>
Cc: Pavel Emelyanov <xemul@parallels.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2013-04-30 17:04:09 -07:00
..
cpu
Merge branch 'timers-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
2013-04-30 08:15:40 -07:00
debug
KGDB/KDB fixes and cleanups
2013-03-02 08:31:39 -08:00
events
Merge branch 'perf-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
2013-04-30 07:41:01 -07:00
gcov
kernel/gcov: remove depends on CONFIG_EXPERIMENTAL
2013-01-11 11:39:33 -08:00
irq
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
2013-02-26 20:16:07 -08:00
power
Driver core patches for 3.9-rc1
2013-02-21 12:05:51 -08:00
sched
workqueue: include workqueue info when printing debug dump of a worker task
2013-04-30 17:04:02 -07:00
time
clockevents: Set dummy handler on CPU_DEAD shutdown
2013-04-25 13:57:04 +02:00
trace
Merge branch 'perf-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
2013-04-30 07:41:01 -07:00
.gitignore
kernel/hz.bc: ignore.
2013-04-22 07:09:06 -07:00
acct.c
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
2013-02-26 20:16:07 -08:00
async.c
async: rename and redefine async_func_ptr
2013-03-12 13:59:14 -07:00
audit.c
audit: don't check if kauditd is valid every time
2013-04-29 15:54:26 -07:00
audit.h
audit: remove unnecessary #if CONFIG_AUDIT
2013-04-29 15:54:26 -07:00
audit_tree.c
kernel/audit_tree.c: tree will leak memory when failure occurs in audit_trim_trees()
2013-04-29 15:54:26 -07:00
audit_watch.c
audit: catch possible NULL audit buffers
2013-01-11 14:54:55 -08:00
auditfilter.c
kernel/auditfilter.c: tree and watch will memory leak when failure occurs
2013-04-29 15:54:26 -07:00
auditsc.c
kernel/auditsc.c: use kzalloc instead of kmalloc+memset
2013-04-29 15:54:26 -07:00
backtracetest.c
bounds.c
capability.c
Add file_ns_capable() helper function for open-time capability checking
2013-04-14 10:06:31 -07:00
cgroup.c
Merge branch 'sched-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
2013-04-30 07:43:28 -07:00
cgroup_freezer.c
cgroup: rename ->create/post_create/pre_destroy/destroy() to ->css_alloc/online/offline/free()
2012-11-19 08:13:38 -08:00
compat.c
kernel/compat.c: make do_sysinfo() static
2013-04-30 17:04:03 -07:00
configs.c
context_tracking.c
Merge branch 'sched-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
2013-02-19 18:19:48 -08:00
cpu.c
Merge branch 'smp-hotplug-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
2013-02-19 19:04:55 -08:00
cpu_pm.c
kernel/cpu_pm.c: fix various typos
2012-05-31 17:49:27 -07:00
cpuset.c
Merge branch 'for-3.10' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup
2013-04-29 19:14:20 -07:00
crash_dump.c
cred.c
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace
2012-12-18 10:55:28 -08:00
delayacct.c
cputime: Use accessors to read task cputime stats
2013-01-27 19:23:31 +01:00
dma.c
elfcore.c
exec_domain.c
exit.c
Revert "lockdep: check that no locks held at freeze time"
2013-03-31 11:38:33 -07:00
extable.c
extable: Flip the sorting message
2013-04-15 13:25:16 +02:00
fork.c
Merge branch 'sched-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
2013-04-30 07:43:28 -07:00
freezer.c
freezer: change ptrace_stop/do_signal_stop to use freezable_schedule()
2012-10-26 14:27:49 -07:00
futex.c
futex: fix kernel-doc notation and spello
2013-03-12 20:42:10 -07:00
futex_compat.c
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/signal
2013-02-23 18:50:11 -08:00
groups.c
hrtimer.c
Merge branch 'linus' into timers/core
2013-04-24 20:33:54 +02:00
hung_task.c
irq_work.c
Merge branch 'nohz/printk-v8' into irq/core
2013-02-05 00:48:46 +01:00
itimer.c
jump_label.c
jump_label: Export jump_label_rate_limit()
2012-08-06 19:00:35 +03:00
kallsyms.c
vsprintf: fix %ps on non symbols when using kallsyms
2012-05-29 16:22:32 -07:00
kcmp.c
kcmp: include linux/ptrace.h
2012-12-20 17:40:19 -08:00
Kconfig.freezer
Kconfig.hz
Kconfig.locks
locking: Adjust spin lock inlining Kconfig options
2012-09-13 17:56:13 +02:00
Kconfig.preempt
kexec.c
kexec: Use min() and min_t() to simplify logic
2013-04-30 17:04:07 -07:00
kmod.c
kmod: remove call_usermodehelper_fns()
2013-04-30 17:04:06 -07:00
kprobes.c
kprobes: Fix a double lock bug of kprobe_mutex
2013-04-18 08:58:38 -07:00
ksysfs.c
Merge branch 'core-rcu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
2012-12-11 18:10:49 -08:00
kthread.c
kthread: implement probe_kthread_data()
2013-04-30 17:04:02 -07:00
latencytop.c
lglock.c
brlocks/lglocks: turn into functions
2012-05-29 23:28:41 -04:00
lockdep.c
lockdep: Consolidate bug messages into a single print_lockdep_off() function
2013-04-26 08:37:22 +02:00
lockdep_internals.h
lockdep_proc.c
lockdep: Use KSYM_NAME_LEN'ed buffer for __get_key_name()
2012-10-24 12:39:09 +02:00
lockdep_states.h
Makefile
idle: Provide a generic entry point for the idle code
2013-04-08 17:39:23 +02:00
modsign_certificate.S
MODSIGN: Avoid using .incbin in C source
2012-12-14 13:06:44 +10:30
modsign_pubkey.c
keys: use keyring_alloc() to create module signing keyring
2012-12-20 17:40:21 -08:00
module-internal.h
MODSIGN: Move the magic string to the end of a module and eliminate the search
2012-10-19 17:30:40 -07:00
module.c
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
2013-02-26 20:16:07 -08:00
module_signing.c
MODSIGN: Don't use enum-type bitfields in module signature info block
2012-12-05 11:27:24 +10:30
mutex-debug.c
mutex-debug.h
mutex.c
mutex: Back out architecture specific check for negative mutex count
2013-04-19 09:33:36 +02:00
mutex.h
notifier.c
nsproxy.c
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
2013-02-26 20:16:07 -08:00
padata.c
padata: use __this_cpu_read per-cpu helper
2012-12-06 17:16:23 +08:00
panic.c
dump_stack: implement arch-specific hardware description in task dumps
2013-04-30 17:04:02 -07:00
params.c
pid.c
pid_namespace.c/.h: simplify defines
2013-04-30 17:04:07 -07:00
pid_namespace.c
pid_namespace.c/.h: simplify defines
2013-04-30 17:04:07 -07:00
posix-cpu-timers.c
Merge branch 'timers-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
2013-02-19 19:05:45 -08:00
posix-timers.c
posix-timers: Remove unused variable
2013-04-18 12:51:19 +02:00
printk.c
workqueue: include workqueue info when printing debug dump of a worker task
2013-04-30 17:04:02 -07:00
profile.c
profiling: Remove unused timer hook
2013-01-24 15:37:26 +01:00
ptrace.c
ptrace: add ability to retrieve signals without removing from a queue (v4)
2013-04-30 17:04:05 -07:00
range.c
kernel/range.c: subtract_range: fix the broken phrase issued by printk
2013-04-30 17:04:01 -07:00
rcu.h
rcu: Provide RCU CPU stall warnings for tiny RCU
2013-01-28 22:06:21 -08:00
rcupdate.c
Merge branches 'doctorture.2013.01.29a', 'fixes.2013.01.26a', 'tagcb.2013.01.24a' and 'tiny.2013.01.29b' into HEAD
2013-01-28 22:25:21 -08:00
rcutiny.c
Merge branches 'doctorture.2013.01.29a', 'fixes.2013.01.26a', 'tagcb.2013.01.24a' and 'tiny.2013.01.29b' into HEAD
2013-01-28 22:25:21 -08:00
rcutiny_plugin.h
rcu: Provide RCU CPU stall warnings for tiny RCU
2013-01-28 22:06:21 -08:00
rcutorture.c
rcu: Allow rcutorture to be built at low optimization levels
2013-02-04 12:18:20 -08:00
rcutree.c
Merge branch 'core-rcu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
2013-04-30 07:39:01 -07:00
rcutree.h
Merge branches 'doc.2013.03.12a', 'fixes.2013.03.13a' and 'idlenocb.2013.03.26b' into HEAD
2013-03-26 08:07:38 -07:00
rcutree_plugin.h
Merge branches 'doc.2013.03.12a', 'fixes.2013.03.13a' and 'idlenocb.2013.03.26b' into HEAD
2013-03-26 08:07:38 -07:00
rcutree_trace.c
rcu: Make RCU_FAST_NO_HZ take advantage of numbered callbacks
2013-03-26 08:04:51 -07:00
relay.c
relay: use macro PAGE_ALIGN instead of FIX_SIZE
2013-04-30 17:04:09 -07:00
res_counter.c
res_counter: return amount of charges after res_counter_uncharge()
2012-12-18 15:02:12 -08:00
resource.c
mem hotunplug: fix kfree() of bootmem memory
2013-04-29 15:54:40 -07:00
rtmutex-debug.c
sched/rt: Move rt specific bits into new header file
2013-02-07 20:51:08 +01:00
rtmutex-debug.h
rtmutex-tester.c
locking/rtmutex/tester: Set correct permissions on sysfs files
2013-04-10 14:48:37 +02:00
rtmutex.c
sched/rt: Move rt specific bits into new header file
2013-02-07 20:51:08 +01:00
rtmutex.h
rtmutex_common.h
rwsem.c
lockdep, rwsem: provide down_write_nest_lock()
2013-01-11 14:54:55 -08:00
seccomp.c
seccomp: Make syscall skipping and nr changes more consistent
2012-10-02 21:14:29 +10:00
semaphore.c
semaphore: use `bool' type for semaphore_waiter's up
2013-04-30 17:04:08 -07:00
signal.c
coredump: only SIGKILL should interrupt the coredumping task
2013-04-30 17:04:06 -07:00
smp.c
kernel/smp.c: cleanups
2013-04-30 17:04:03 -07:00
smpboot.c
kthread: Prevent unpark race which puts threads on the wrong cpu
2013-04-12 14:18:43 +02:00
smpboot.h
smpboot: Provide infrastructure for percpu hotplug threads
2012-08-13 17:01:07 +02:00
softirq.c
kernel/smp.c: remove 'priv' of call_single_data
2013-04-30 17:04:03 -07:00
spinlock.c
srcu.c
srcu: use ACCESS_ONCE() to access sp->completed in srcu_read_lock()
2013-02-07 15:19:36 -08:00
stacktrace.c
stop_machine.c
stop_machine: Mark per cpu stopper enabled early
2013-02-26 22:25:17 +01:00
sys.c
kernel/sys.c: make prctl(PR_SET_MM) generally available
2013-04-30 17:04:09 -07:00
sys_ni.c
module: add syscall to load module from fd
2012-12-14 13:05:22 +10:30
sysctl.c
mm: replace hardcoded 3% with admin_reserve_pages knob
2013-04-29 15:54:36 -07:00
sysctl_binary.c
sysctl: fix null checking in bin_dn_node_address()
2013-02-27 19:10:21 -08:00
task_work.c
task_work: task_work_add() should not succeed after exit_task_work()
2012-09-13 16:47:34 +02:00
taskstats.c
taskstats: cgroupstats_user_cmd() may leak on error
2012-10-06 03:05:31 +09:00
test_kprobes.c
kernel/: rename random32() to prandom_u32()
2013-04-29 18:28:42 -07:00
time.c
timekeeping: Use inject_offset in warp_clock
2013-03-15 16:50:20 -07:00
timeconst.bc
kernel: Replace timeconst.pl with a bc script
2013-02-16 23:17:25 +01:00
timer.c
kernel/timer.c: move some non timer related syscalls to kernel/sys.c
2013-04-30 17:04:03 -07:00
tracepoint.c
Tracing updates for Linux 3.10
2013-04-29 13:55:38 -07:00
tsacct.c
cputime: Use accessors to read task cputime stats
2013-01-27 19:23:31 +01:00
uid16.c
up.c
user-return-notifier.c
hlist: drop the node parameter from iterators
2013-02-27 19:10:24 -08:00
user.c
userns: Restrict when proc and sysfs can be mounted
2013-03-27 07:50:08 -07:00
user_namespace.c
userns: Changing any namespace id mappings should require privileges
2013-04-14 18:11:32 -07:00
utsname.c
kernel/utsname.c: fix wrong comment about clone_uts_ns()
2013-02-27 19:10:22 -08:00
utsname_sysctl.c
kernel/utsname_sysctl.c: put get/get_uts() into CONFIG_PROC_SYSCTL code block
2013-02-27 19:10:22 -08:00
wait.c
propagate name change to comments in kernel source
2012-12-06 10:39:54 +01:00
watchdog.c
watchdog: Add comments to explain the watchdog_disabled variable
2013-03-14 08:24:05 +01:00
workqueue.c
workqueue: include workqueue info when printing debug dump of a worker task
2013-04-30 17:04:02 -07:00
workqueue_internal.h
workqueue: include workqueue info when printing debug dump of a worker task
2013-04-30 17:04:02 -07:00