*(.data)                                                        \
        *(.ref.data)                                                    \
        *(.data..shared_aligned) /* percpu related */                   \
-       CPU_KEEP(init.data)                                             \
-       CPU_KEEP(exit.data)                                             \
 -      DEV_KEEP(init.data)                                             \
 -      DEV_KEEP(exit.data)                                             \
        MEM_KEEP(init.data)                                             \
        MEM_KEEP(exit.data)                                             \
        *(.data.unlikely)                                               \
        /* __*init sections */                                          \
        __init_rodata : AT(ADDR(__init_rodata) - LOAD_OFFSET) {         \
                *(.ref.rodata)                                          \
-               CPU_KEEP(init.rodata)                                   \
-               CPU_KEEP(exit.rodata)                                   \
 -              DEV_KEEP(init.rodata)                                   \
 -              DEV_KEEP(exit.rodata)                                   \
                MEM_KEEP(init.rodata)                                   \
                MEM_KEEP(exit.rodata)                                   \
        }                                                               \
                *(.text.hot)                                            \
                *(.text)                                                \
                *(.ref.text)                                            \
-       CPU_KEEP(init.text)                                             \
-       CPU_KEEP(exit.text)                                             \
 -      DEV_KEEP(init.text)                                             \
 -      DEV_KEEP(exit.text)                                             \
        MEM_KEEP(init.text)                                             \
        MEM_KEEP(exit.text)                                             \
                *(.text.unlikely)
  /* init and exit section handling */
  #define INIT_DATA                                                     \
        *(.init.data)                                                   \
-       CPU_DISCARD(init.data)                                          \
 -      DEV_DISCARD(init.data)                                          \
        MEM_DISCARD(init.data)                                          \
        KERNEL_CTORS()                                                  \
        MCOUNT_REC()                                                    \
        *(.init.rodata)                                                 \
        FTRACE_EVENTS()                                                 \
        TRACE_SYSCALLS()                                                \
-       CPU_DISCARD(init.rodata)                                        \
 -      DEV_DISCARD(init.rodata)                                        \
        MEM_DISCARD(init.rodata)                                        \
        CLK_OF_TABLES()                                                 \
        CLKSRC_OF_TABLES()                                              \
  
  #define INIT_TEXT                                                     \
        *(.init.text)                                                   \
-       CPU_DISCARD(init.text)                                          \
 -      DEV_DISCARD(init.text)                                          \
        MEM_DISCARD(init.text)
  
  #define EXIT_DATA                                                     \
        *(.exit.data)                                                   \
-       CPU_DISCARD(exit.data)                                          \
-       CPU_DISCARD(exit.rodata)                                        \
 -      DEV_DISCARD(exit.data)                                          \
 -      DEV_DISCARD(exit.rodata)                                        \
        MEM_DISCARD(exit.data)                                          \
        MEM_DISCARD(exit.rodata)
  
  #define EXIT_TEXT                                                     \
        *(.exit.text)                                                   \
-       CPU_DISCARD(exit.text)                                          \
 -      DEV_DISCARD(exit.text)                                          \
        MEM_DISCARD(exit.text)
  
  #define EXIT_CALL                                                     \
 
  #define ALL_EXIT_SECTIONS EXIT_SECTIONS, ALL_XXXEXIT_SECTIONS
  
  #define DATA_SECTIONS ".data$", ".data.rel$"
 -#define TEXT_SECTIONS ".text$"
 +#define TEXT_SECTIONS ".text$", ".text.unlikely$"
  
  #define INIT_SECTIONS      ".init.*"
- #define CPU_INIT_SECTIONS  ".cpuinit.*"
  #define MEM_INIT_SECTIONS  ".meminit.*"
  
  #define EXIT_SECTIONS      ".exit.*"