]> err.no Git - linux-2.6/blobdiff - arch/s390/kernel/vmlinux.lds.S
[NET]: prot_inuse cleanups and optimizations
[linux-2.6] / arch / s390 / kernel / vmlinux.lds.S
index f6b16aec32e7dd71bd129ba506fe08202c62660a..936159199346520387f895c7fec5f6ffcba33345 100644 (file)
@@ -2,6 +2,7 @@
  * Written by Martin Schwidefsky (schwidefsky@de.ibm.com)
  */
 
+#include <asm/page.h>
 #include <asm-generic/vmlinux.lds.h>
 
 #ifndef CONFIG_64BIT
@@ -16,6 +17,12 @@ ENTRY(_start)
 jiffies = jiffies_64;
 #endif
 
+PHDRS {
+       text PT_LOAD FLAGS(5);  /* R_E */
+       data PT_LOAD FLAGS(7);  /* RWE */
+       note PT_NOTE FLAGS(0);  /* ___ */
+}
+
 SECTIONS
 {
        . = 0x00000000;
@@ -32,13 +39,16 @@ SECTIONS
 
        _etext = .;             /* End of text section */
 
+       NOTES :text :note
+       BUG_TABLE :text
+
        RODATA
 
 #ifdef CONFIG_SHARED_KERNEL
-       . = ALIGN(1048576);     /* VM shared segments are 1MB aligned */
+       . = ALIGN(0x100000);    /* VM shared segments are 1MB aligned */
 #endif
 
-       . = ALIGN(4096);
+       . = ALIGN(PAGE_SIZE);
        _eshared = .;           /* End of shareable data */
 
        . = ALIGN(16);          /* Exception table */
@@ -48,45 +58,42 @@ SECTIONS
                __stop___ex_table = .;
        }
 
-       NOTES
-       BUG_TABLE
-
        .data : {               /* Data */
                DATA_DATA
                CONSTRUCTORS
        }
 
-       . = ALIGN(4096);
+       . = ALIGN(PAGE_SIZE);
        .data_nosave : {
        __nosave_begin = .;
                *(.data.nosave)
        }
-       . = ALIGN(4096);
+       . = ALIGN(PAGE_SIZE);
        __nosave_end = .;
 
-       . = ALIGN(4096);
+       . = ALIGN(PAGE_SIZE);
        .data.page_aligned : {
                *(.data.idt)
        }
 
-       . = ALIGN(256);
+       . = ALIGN(0x100);
        .data.cacheline_aligned : {
                *(.data.cacheline_aligned)
        }
 
-       . = ALIGN(256);
+       . = ALIGN(0x100);
        .data.read_mostly : {
                *(.data.read_mostly)
        }
        _edata = .;             /* End of data section */
 
-       . = ALIGN(8192);        /* init_task */
+       . = ALIGN(2 * PAGE_SIZE);       /* init_task */
        .data.init_task : {
                *(.data.init_task)
        }
 
        /* will be freed after init */
-       . = ALIGN(4096);        /* Init code and data */
+       . = ALIGN(PAGE_SIZE);   /* Init code and data */
        __init_begin = .;
        .init.text : {
                _sinittext = .;
@@ -104,7 +111,7 @@ SECTIONS
        .init.data : {
                *(.init.data)
        }
-       . = ALIGN(256);
+       . = ALIGN(0x100);
        .init.setup : {
                __setup_start = .;
                *(.init.setup)
@@ -124,7 +131,7 @@ SECTIONS
        SECURITY_INIT
 
 #ifdef CONFIG_BLK_DEV_INITRD
-       . = ALIGN(256);
+       . = ALIGN(0x100);
        .init.ramfs : {
                __initramfs_start = .;
                *(.init.ramfs)
@@ -133,8 +140,8 @@ SECTIONS
        }
 #endif
 
-       PERCPU(4096)
-       . = ALIGN(4096);
+       PERCPU(PAGE_SIZE)
+       . = ALIGN(PAGE_SIZE);
        __init_end = .;         /* freed after init ends here */
 
        /* BSS */