linux/arch/alpha/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
..
.gitignore alpha: .gitignore vmlinux.lds 2009-01-15 16:39:40 -08:00
Makefile alpha: Don't force -Werror. 2011-04-17 14:41:30 -07:00
alpha_ksyms.c
asm-offsets.c CRED: Separate task security context from task_struct 2008-11-14 10:39:16 +11:00
binfmt_loader.c alpha: binfmt_aout fix 2009-05-02 15:36:10 -07:00
console.c
core_apecs.c
core_cia.c
core_irongate.c
core_lca.c Fix common misspellings 2011-03-31 11:26:23 -03:00
core_marvel.c arch/alpha/kernel: Add kmalloc NULL tests 2009-11-30 15:38:19 -05:00
core_mcpcia.c alpha: Remove set but unused variables. 2011-04-17 14:41:30 -07:00
core_polaris.c
core_t2.c alpha: use single HAE window on T2 core logic (gamma, sable) 2010-10-26 16:52:12 -07:00
core_titan.c arch/alpha/kernel: Add kmalloc NULL tests 2009-11-30 15:38:19 -05:00
core_tsunami.c
core_wildfire.c
entry.S alpha: switch osf_sigprocmask() to use of sigprocmask() 2010-09-27 12:19:53 -07:00
err_common.c
err_ev6.c alpha: Use static const char * const where possible 2010-09-18 23:06:17 -04:00
err_ev7.c alpha: titan and marvel build fixes 2009-05-02 15:36:10 -07:00
err_impl.h alpha: titan and marvel build fixes 2009-05-02 15:36:10 -07:00
err_marvel.c Fix common misspellings 2011-03-31 11:26:23 -03:00
err_titan.c alpha: Remove set but unused variables. 2011-04-17 14:41:30 -07:00
es1888.c
gct.c
head.S alpha: convert to use __HEAD and HEAD_TEXT macros. 2009-04-26 09:20:38 -07:00
init_task.c alpha: use .data.init_task instead of .data.init_thread. 2009-09-24 17:16:22 -07:00
io.c
irq.c alpha: Use generic show_interrupts() 2011-03-29 14:47:58 +02:00
irq_alpha.c alpha: Fix RTC interrupt setup. 2011-04-17 14:41:30 -07:00
irq_i8259.c alpha: Convert to new irq function names 2011-03-29 14:47:58 +02:00
irq_impl.h alpha: i8259, alcor, jensen wildfire: Convert irq_chip 2011-03-02 14:57:55 -05:00
irq_pyxis.c alpha: Convert to new irq function names 2011-03-29 14:47:58 +02:00
irq_srm.c alpha: Convert to new irq function names 2011-03-29 14:47:58 +02:00
machvec_impl.h alpha: use single HAE window on T2 core logic (gamma, sable) 2010-10-26 16:52:12 -07:00
module.c
osf_sys.c clean statfs-like syscalls up 2011-03-14 09:15:28 -04:00
pc873xx.c alpha: Detect Super IO chip, no IDE on Avanti, enable EPP19 2010-06-15 14:19:08 -04:00
pc873xx.h alpha: Detect Super IO chip, no IDE on Avanti, enable EPP19 2010-06-15 14:19:08 -04:00
pci-noop.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
pci-sysfs.c alpha: remove unnecessary cast from void* in assignment. 2010-09-18 23:06:17 -04:00
pci.c resource/PCI: mark struct resource as const 2010-02-22 16:16:57 -08:00
pci_impl.h alpha: AGP update (fixes compile failure) 2009-09-24 07:21:06 -07:00
pci_iommu.c alpha: remove dma64_addr_t usage 2010-10-27 18:03:17 -07:00
perf_event.c perf: Dynamic pmu types 2010-12-16 11:36:43 +01:00
process.c alpha: fix usp value in multithreaded coredumps 2010-09-25 14:38:13 -07:00
proto.h Fix call to replaced SuperIO functions 2010-08-31 22:45:31 -04:00
ptrace.c ptrace: change signature of arch_ptrace() 2010-10-27 18:03:10 -07:00
setup.c alpha: Remove set but unused variables. 2011-04-17 14:41:30 -07:00
signal.c Fix up more fallout form alpha signal cleanups 2010-09-30 08:37:38 -07:00
smc37c93x.c alpha: Remove set but unused variables. 2011-04-17 14:41:30 -07:00
smc37c669.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
smp.c sched: Provide scheduler_ipi() callback in response to smp_send_reschedule() 2011-04-14 08:52:32 +02:00
srm_env.c alpha: remove unnecessary cast from void* in assignment. 2010-09-18 23:06:17 -04:00
srmcons.c
sys_alcor.c alpha: Convert to new irq function names 2011-03-29 14:47:58 +02:00
sys_cabriolet.c alpha: Convert to new irq function names 2011-03-29 14:47:58 +02:00
sys_dp264.c alpha: Convert to new irq function names 2011-03-29 14:47:58 +02:00
sys_eb64p.c alpha: Convert to new irq function names 2011-03-29 14:47:58 +02:00
sys_eiger.c alpha: Convert to new irq function names 2011-03-29 14:47:58 +02:00
sys_jensen.c alpha: Convert to new irq function names 2011-03-29 14:47:58 +02:00
sys_marvel.c alpha: Convert to new irq function names 2011-03-29 14:47:58 +02:00
sys_miata.c PCI: alpha: use generic pci_swizzle_interrupt_pin() 2009-01-07 11:12:53 -08:00
sys_mikasa.c alpha: Convert to new irq function names 2011-03-29 14:47:58 +02:00
sys_nautilus.c alpha: nautilus - fix hang on boot 2009-01-15 16:39:40 -08:00
sys_noritake.c alpha: Convert to new irq function names 2011-03-29 14:47:58 +02:00
sys_rawhide.c alpha: Convert to new irq function names 2011-03-29 14:47:58 +02:00
sys_ruffian.c arch/alpha/kernel/sys_ruffian.c: Use DIV_ROUND_CLOSEST 2009-11-30 15:37:25 -05:00
sys_rx164.c alpha: Convert to new irq function names 2011-03-29 14:47:58 +02:00
sys_sable.c alpha: Convert to new irq function names 2011-03-29 14:47:58 +02:00
sys_sio.c alpha: Detect Super IO chip, no IDE on Avanti, enable EPP19 2010-06-15 14:19:08 -04:00
sys_sx164.c
sys_takara.c alpha: Convert to new irq function names 2011-03-29 14:47:58 +02:00
sys_titan.c alpha: Convert to new irq function names 2011-03-29 14:47:58 +02:00
sys_wildfire.c alpha: Remove set but unused variables. 2011-04-17 14:41:30 -07:00
systbls.S alpha: Wire up syscalls new to 2.6.39 2011-05-13 19:16:11 -04:00
time.c alpha: convert to clocksource_register_hz 2011-05-13 19:16:10 -04:00
traps.c alpha: kill big kernel lock 2010-09-18 23:06:18 -04:00
vmlinux.lds.S extable, core_kernel_data(): Make sure all archs define _sdata 2011-05-20 08:56:56 +02:00