]> www.pilppa.org Git - linux-2.6-omap-h63xx.git/commitdiff
x86/brk: make the brk reservation symbols inaccessible from C
authorJeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>
Sun, 15 Mar 2009 06:19:38 +0000 (23:19 -0700)
committerJeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>
Tue, 17 Mar 2009 19:56:52 +0000 (12:56 -0700)
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>
arch/x86/include/asm/setup.h

index 61b126b97885954a3008ede83fa33f11efc50df9..fbf0521eeed887c20a7b487aa10b9d815849f0ef 100644 (file)
@@ -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__  */