aboutsummaryrefslogtreecommitdiff
path: root/arch/x86
diff options
context:
space:
mode:
authorJeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>2009-03-14 23:19:38 -0700
committerJeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>2009-03-17 12:56:52 -0700
commit0b1c723d0bd199300a1a2de57a46000d17577498 (patch)
treefbc5ae907b8bc9053ab3fc1f8a83c1bd938d2094 /arch/x86
parent60ac98213914cc615c67e84bfb964aa95a080d13 (diff)
x86/brk: make the brk reservation symbols inaccessible from C
Impact: bulletproofing, clarification The brk reservation symbols are just there to document the amount of space reserved by brk users in the final vmlinux file. Their addresses are irrelevent, and using their addresses will cause certain havok. Name them ".brk.NAME", which is a valid asm symbol but C can't reference it; it also highlights their special role in the symbol table. Signed-off-by: Jeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>
Diffstat (limited to 'arch/x86')
-rw-r--r--arch/x86/include/asm/setup.h10
1 files changed, 5 insertions, 5 deletions
diff --git a/arch/x86/include/asm/setup.h b/arch/x86/include/asm/setup.h
index 61b126b9788..fbf0521eeed 100644
--- a/arch/x86/include/asm/setup.h
+++ b/arch/x86/include/asm/setup.h
@@ -116,13 +116,13 @@ void *extend_brk(size_t size, size_t align);
* executable.)
*/
#define RESERVE_BRK(name,sz) \
- static void __section(.discard) __used \
+ static void __section(.discard) __used \
__brk_reservation_fn_##name##__(void) { \
asm volatile ( \
".pushsection .brk_reservation,\"aw\",@nobits;" \
- "__brk_reservation_" #name "__:" \
+ ".brk." #name ":" \
" 1:.skip %c0;" \
- " .size __brk_reservation_" #name "__, . - 1b;" \
+ " .size .brk." #name ", . - 1b;" \
" .popsection" \
: : "i" (sz)); \
}
@@ -141,9 +141,9 @@ void __init x86_64_start_reservations(char *real_mode_data);
#else
#define RESERVE_BRK(name,sz) \
.pushsection .brk_reservation,"aw",@nobits; \
-__brk_reservation_##name##__: \
+.brk.name: \
1: .skip sz; \
- .size __brk_reservation_##name##__,.-1b; \
+ .size .brk.name,.-1b; \
.popsection
#endif /* __ASSEMBLY__ */
#endif /* __KERNEL__ */