diff options
-rw-r--r-- | arch/ppc/kernel/vmlinux.lds.S | 5 | ||||
-rw-r--r-- | include/asm-generic/sections.h | 2 | ||||
-rw-r--r-- | kernel/kallsyms.c | 11 | ||||
-rw-r--r-- | scripts/kallsyms.c | 24 |
4 files changed, 11 insertions, 31 deletions
diff --git a/arch/ppc/kernel/vmlinux.lds.S b/arch/ppc/kernel/vmlinux.lds.S index 52b64fcbdfc5..8a24bc47eb6c 100644 --- a/arch/ppc/kernel/vmlinux.lds.S +++ b/arch/ppc/kernel/vmlinux.lds.S | |||
@@ -143,11 +143,6 @@ SECTIONS | |||
143 | 143 | ||
144 | . = ALIGN(4096); | 144 | . = ALIGN(4096); |
145 | __init_end = .; | 145 | __init_end = .; |
146 | |||
147 | . = ALIGN(4096); | ||
148 | _sextratext = .; | ||
149 | _eextratext = .; | ||
150 | |||
151 | __bss_start = .; | 146 | __bss_start = .; |
152 | .bss : | 147 | .bss : |
153 | { | 148 | { |
diff --git a/include/asm-generic/sections.h b/include/asm-generic/sections.h index 962cad7cfbbd..8feeae1f2369 100644 --- a/include/asm-generic/sections.h +++ b/include/asm-generic/sections.h | |||
@@ -8,8 +8,6 @@ extern char _data[], _sdata[], _edata[]; | |||
8 | extern char __bss_start[], __bss_stop[]; | 8 | extern char __bss_start[], __bss_stop[]; |
9 | extern char __init_begin[], __init_end[]; | 9 | extern char __init_begin[], __init_end[]; |
10 | extern char _sinittext[], _einittext[]; | 10 | extern char _sinittext[], _einittext[]; |
11 | extern char _sextratext[] __attribute__((weak)); | ||
12 | extern char _eextratext[] __attribute__((weak)); | ||
13 | extern char _end[]; | 11 | extern char _end[]; |
14 | extern char __per_cpu_start[], __per_cpu_end[]; | 12 | extern char __per_cpu_start[], __per_cpu_end[]; |
15 | extern char __kprobes_text_start[], __kprobes_text_end[]; | 13 | extern char __kprobes_text_start[], __kprobes_text_end[]; |
diff --git a/kernel/kallsyms.c b/kernel/kallsyms.c index 7dadc71ce516..f091d13def00 100644 --- a/kernel/kallsyms.c +++ b/kernel/kallsyms.c | |||
@@ -53,14 +53,6 @@ static inline int is_kernel_inittext(unsigned long addr) | |||
53 | return 0; | 53 | return 0; |
54 | } | 54 | } |
55 | 55 | ||
56 | static inline int is_kernel_extratext(unsigned long addr) | ||
57 | { | ||
58 | if (addr >= (unsigned long)_sextratext | ||
59 | && addr <= (unsigned long)_eextratext) | ||
60 | return 1; | ||
61 | return 0; | ||
62 | } | ||
63 | |||
64 | static inline int is_kernel_text(unsigned long addr) | 56 | static inline int is_kernel_text(unsigned long addr) |
65 | { | 57 | { |
66 | if (addr >= (unsigned long)_stext && addr <= (unsigned long)_etext) | 58 | if (addr >= (unsigned long)_stext && addr <= (unsigned long)_etext) |
@@ -80,8 +72,7 @@ static int is_ksym_addr(unsigned long addr) | |||
80 | if (all_var) | 72 | if (all_var) |
81 | return is_kernel(addr); | 73 | return is_kernel(addr); |
82 | 74 | ||
83 | return is_kernel_text(addr) || is_kernel_inittext(addr) || | 75 | return is_kernel_text(addr) || is_kernel_inittext(addr); |
84 | is_kernel_extratext(addr); | ||
85 | } | 76 | } |
86 | 77 | ||
87 | /* expand a compressed symbol data into the resulting uncompressed string, | 78 | /* expand a compressed symbol data into the resulting uncompressed string, |
diff --git a/scripts/kallsyms.c b/scripts/kallsyms.c index 1f11d848532a..8fb87003d5d3 100644 --- a/scripts/kallsyms.c +++ b/scripts/kallsyms.c | |||
@@ -41,7 +41,7 @@ struct sym_entry { | |||
41 | 41 | ||
42 | static struct sym_entry *table; | 42 | static struct sym_entry *table; |
43 | static unsigned int table_size, table_cnt; | 43 | static unsigned int table_size, table_cnt; |
44 | static unsigned long long _text, _stext, _etext, _sinittext, _einittext, _sextratext, _eextratext; | 44 | static unsigned long long _text, _stext, _etext, _sinittext, _einittext; |
45 | static int all_symbols = 0; | 45 | static int all_symbols = 0; |
46 | static char symbol_prefix_char = '\0'; | 46 | static char symbol_prefix_char = '\0'; |
47 | 47 | ||
@@ -99,10 +99,6 @@ static int read_symbol(FILE *in, struct sym_entry *s) | |||
99 | _sinittext = s->addr; | 99 | _sinittext = s->addr; |
100 | else if (strcmp(sym, "_einittext") == 0) | 100 | else if (strcmp(sym, "_einittext") == 0) |
101 | _einittext = s->addr; | 101 | _einittext = s->addr; |
102 | else if (strcmp(sym, "_sextratext") == 0) | ||
103 | _sextratext = s->addr; | ||
104 | else if (strcmp(sym, "_eextratext") == 0) | ||
105 | _eextratext = s->addr; | ||
106 | else if (toupper(stype) == 'A') | 102 | else if (toupper(stype) == 'A') |
107 | { | 103 | { |
108 | /* Keep these useful absolute symbols */ | 104 | /* Keep these useful absolute symbols */ |
@@ -165,18 +161,18 @@ static int symbol_valid(struct sym_entry *s) | |||
165 | * and inittext sections are discarded */ | 161 | * and inittext sections are discarded */ |
166 | if (!all_symbols) { | 162 | if (!all_symbols) { |
167 | if ((s->addr < _stext || s->addr > _etext) | 163 | if ((s->addr < _stext || s->addr > _etext) |
168 | && (s->addr < _sinittext || s->addr > _einittext) | 164 | && (s->addr < _sinittext || s->addr > _einittext)) |
169 | && (s->addr < _sextratext || s->addr > _eextratext)) | ||
170 | return 0; | 165 | return 0; |
171 | /* Corner case. Discard any symbols with the same value as | 166 | /* Corner case. Discard any symbols with the same value as |
172 | * _etext _einittext or _eextratext; they can move between pass | 167 | * _etext _einittext; they can move between pass 1 and 2 when |
173 | * 1 and 2 when the kallsyms data are added. If these symbols | 168 | * the kallsyms data are added. If these symbols move then |
174 | * move then they may get dropped in pass 2, which breaks the | 169 | * they may get dropped in pass 2, which breaks the kallsyms |
175 | * kallsyms rules. | 170 | * rules. |
176 | */ | 171 | */ |
177 | if ((s->addr == _etext && strcmp((char*)s->sym + offset, "_etext")) || | 172 | if ((s->addr == _etext && |
178 | (s->addr == _einittext && strcmp((char*)s->sym + offset, "_einittext")) || | 173 | strcmp((char *)s->sym + offset, "_etext")) || |
179 | (s->addr == _eextratext && strcmp((char*)s->sym + offset, "_eextratext"))) | 174 | (s->addr == _einittext && |
175 | strcmp((char *)s->sym + offset, "_einittext"))) | ||
180 | return 0; | 176 | return 0; |
181 | } | 177 | } |
182 | 178 | ||