linux-stable-rt/kernel
Steven Rostedt a2d063ac21 extable, core_kernel_data(): Make sure all archs define _sdata
A new utility function (core_kernel_data()) is used to determine if a
passed in address is part of core kernel data or not. It may or may not
return true for RO data, but this utility must work for RW data.

Thus both _sdata and _edata must be defined and continuous,
without .init sections that may later be freed and replaced by
volatile memory (memory that can be freed).

This utility function is used to determine if data is safe from
ever being freed. Thus it should return true for all RW global
data that is not in a module or has been allocated, or false
otherwise.

Also change core_kernel_data() back to the more precise _sdata condition
and document the function.

Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
Acked-by: Ralf Baechle <ralf@linux-mips.org>
Acked-by: Hirokazu Takata <takata@linux-m32r.org>
Cc: Richard Henderson <rth@twiddle.net>
Cc: Ivan Kokshaysky <ink@jurassic.park.msu.ru>
Cc: Matt Turner <mattst88@gmail.com>
Cc: Geert Uytterhoeven <geert@linux-m68k.org>
Cc: Roman Zippel <zippel@linux-m68k.org>
Cc: linux-m68k@lists.linux-m68k.org
Cc: Kyle McMartin <kyle@mcmartin.ca>
Cc: Helge Deller <deller@gmx.de>
Cc: JamesE.J.Bottomley <jejb@parisc-linux.org>
Link: http://lkml.kernel.org/r/1305855298.1465.19.camel@gandalf.stny.rr.com
Signed-off-by: Ingo Molnar <mingo@elte.hu>
----
 arch/alpha/kernel/vmlinux.lds.S   |    1 +
 arch/m32r/kernel/vmlinux.lds.S    |    1 +
 arch/m68k/kernel/vmlinux-std.lds  |    2 ++
 arch/m68k/kernel/vmlinux-sun3.lds |    1 +
 arch/mips/kernel/vmlinux.lds.S    |    1 +
 arch/parisc/kernel/vmlinux.lds.S  |    3 +++
 kernel/extable.c                  |   12 +++++++++++-
 7 files changed, 20 insertions(+), 1 deletion(-)
2011-05-20 08:56:56 +02:00
..
debug
events Merge branch 'core-rcu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2011-05-19 18:14:34 -07:00
gcov
irq Merge branch 'irq-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2011-05-19 17:30:15 -07:00
power PM: Allow drivers to allocate memory from .prepare() callbacks safely 2011-05-17 23:26:00 +02:00
time Merge branch 'timers-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2011-05-19 17:45:08 -07:00
trace Merge branches 'sched-core-for-linus' and 'sched-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2011-05-19 17:41:22 -07:00
.gitignore
Kconfig.freezer
Kconfig.hz
Kconfig.locks
Kconfig.preempt
Makefile hw breakpoints: Move to kernel/events/ 2011-05-03 15:26:43 +02:00
acct.c
async.c
audit.c
audit.h
audit_tree.c
audit_watch.c
auditfilter.c
auditsc.c
backtracetest.c
bounds.c
capability.c Cache user_ns in struct cred 2011-05-13 11:45:33 -07:00
cgroup.c cgroup,rcu: convert call_rcu(__free_css_id_cb) to kfree_rcu() 2011-05-07 22:50:47 -07:00
cgroup_freezer.c
compat.c
configs.c
cpu.c
cpuset.c
crash_dump.c
cred.c Cache user_ns in struct cred 2011-05-13 11:45:33 -07:00
delayacct.c
dma.c
elfcore.c
exec_domain.c
exit.c ptrace: Prepare to fix racy accesses on task breakpoints 2011-04-25 17:28:24 +02:00
extable.c extable, core_kernel_data(): Make sure all archs define _sdata 2011-05-20 08:56:56 +02:00
fork.c sched: Remove unused parameters from sched_fork() and wake_up_new_task() 2011-05-12 09:36:37 +02:00
freezer.c Freezer: Use SMP barriers 2011-05-17 23:19:17 +02:00
futex.c
futex_compat.c
groups.c
hrtimer.c hrtimer: Make lookup table const 2011-05-02 21:37:57 +02:00
hung_task.c watchdog, hung_task_timeout: Add Kconfig configurable default 2011-04-28 09:13:17 +02:00
irq_work.c
itimer.c
jump_label.c
kallsyms.c
kexec.c PM: Remove sysdev suspend, resume and shutdown operations 2011-05-11 21:37:15 +02:00
kfifo.c
kmod.c kmod: always provide usermodehelper_disable() 2011-05-17 23:19:18 +02:00
kprobes.c
ksysfs.c
kthread.c
latencytop.c
lockdep.c lockdep: Remove cmpxchg to update nr_chain_hlocks 2011-04-22 11:06:59 +02:00
lockdep_internals.h
lockdep_proc.c
lockdep_states.h
module.c module: Use binary search in lookup_symbol() 2011-05-19 16:55:27 +09:30
mutex-debug.c
mutex-debug.h
mutex.c sched: Get rid of lock_depth 2011-04-24 13:18:38 +02:00
mutex.h
notifier.c
ns_cgroup.c
nsproxy.c
padata.c
panic.c
params.c params.c: Use new strtobool function to process boolean inputs 2011-05-19 16:55:28 +09:30
pid.c
pid_namespace.c
pm_qos_params.c
posix-cpu-timers.c
posix-timers.c
printk.c
profile.c
ptrace.c ptrace: Prepare to fix racy accesses on task breakpoints 2011-04-25 17:28:24 +02:00
range.c
rcupdate.c rcu: Use WARN_ON_ONCE for DEBUG_OBJECTS_RCU_HEAD warnings 2011-05-05 23:16:57 -07:00
rcutiny.c rcu: optimize rcutiny 2011-05-05 23:16:59 -07:00
rcutiny_plugin.h rcu: Converge TINY_RCU expedited and normal boosting 2011-05-05 23:16:58 -07:00
rcutorture.c rcu: mark rcutorture boosting callback as being on-stack 2011-05-05 23:16:57 -07:00
rcutree.c Revert "rcu: Decrease memory-barrier usage based on semi-formal proof" 2011-05-19 23:25:29 +02:00
rcutree.h Revert "rcu: Decrease memory-barrier usage based on semi-formal proof" 2011-05-19 23:25:29 +02:00
rcutree_plugin.h Revert "rcu: Decrease memory-barrier usage based on semi-formal proof" 2011-05-19 23:25:29 +02:00
rcutree_trace.c Revert "rcu: Decrease memory-barrier usage based on semi-formal proof" 2011-05-19 23:25:29 +02:00
relay.c
res_counter.c
resource.c
rtmutex-debug.c
rtmutex-debug.h
rtmutex-tester.c
rtmutex.c
rtmutex.h
rtmutex_common.h
rwsem.c
sched.c sched: Fix and optimise calculation of the weight-inverse 2011-05-16 11:01:18 +02:00
sched_autogroup.c
sched_autogroup.h
sched_clock.c
sched_cpupri.c
sched_cpupri.h
sched_debug.c sched: Get rid of lock_depth 2011-04-24 13:18:38 +02:00
sched_fair.c sched: Remove unused 'this_best_prio arg' from balance_tasks() 2011-05-04 09:07:21 +02:00
sched_features.h
sched_idletask.c
sched_rt.c Merge branches 'sched-core-for-linus' and 'sched-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2011-05-19 17:41:22 -07:00
sched_stats.h
sched_stoptask.c
seccomp.c
semaphore.c
signal.c
smp.c
softirq.c rcu: move TREE_RCU from softirq to kthread 2011-05-05 23:16:54 -07:00
spinlock.c
srcu.c
stacktrace.c
stop_machine.c
sys.c Merge branch 'driver-core-next' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core-2.6 2011-05-19 18:24:11 -07:00
sys_ni.c
sysctl.c
sysctl_binary.c
sysctl_check.c
taskstats.c
test_kprobes.c
time.c
timeconst.pl
timer.c
tracepoint.c
tsacct.c
uid16.c
up.c
user-return-notifier.c
user.c
user_namespace.c
utsname.c
utsname_sysctl.c
wait.c
watchdog.c kernel/watchdog.c: disable nmi perf event in the error path of enabling watchdog 2011-04-28 11:28:21 -07:00
workqueue.c workqueue: fix deadlock in worker_maybe_bind_and_lock() 2011-04-29 18:08:37 +02:00
workqueue_sched.h