git://ftp.safe.ca
/
safe
/
jmp
/
linux-2.6
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Make irq_*_affinity depend on CONFIG_GENERIC_HARDIRQS too.
[safe/jmp/linux-2.6]
/
kernel
/
kallsyms.c
diff --git
a/kernel/kallsyms.c
b/kernel/kallsyms.c
index
e694afa
..
7b8b0f2
100644
(file)
--- a/
kernel/kallsyms.c
+++ b/
kernel/kallsyms.c
@@
-30,19
+30,20
@@
#define all_var 0
#endif
#define all_var 0
#endif
-extern const unsigned long kallsyms_addresses[];
-extern const u8 kallsyms_names[];
+/* These will be re-linked against their real values during the second link stage */
+extern const unsigned long kallsyms_addresses[] __attribute__((weak));
+extern const u8 kallsyms_names[] __attribute__((weak));
/* tell the compiler that the count isn't in the small data section if the arch
* has one (eg: FRV)
*/
extern const unsigned long kallsyms_num_syms
/* tell the compiler that the count isn't in the small data section if the arch
* has one (eg: FRV)
*/
extern const unsigned long kallsyms_num_syms
-
__attribute__((__section__
(".rodata")));
+
__attribute__((weak, section
(".rodata")));
-extern const u8 kallsyms_token_table[];
-extern const u16 kallsyms_token_index[];
+extern const u8 kallsyms_token_table[]
__attribute__((weak))
;
+extern const u16 kallsyms_token_index[]
__attribute__((weak))
;
-extern const unsigned long kallsyms_markers[];
+extern const unsigned long kallsyms_markers[]
__attribute__((weak))
;
static inline int is_kernel_inittext(unsigned long addr)
{
static inline int is_kernel_inittext(unsigned long addr)
{
@@
-167,6
+168,9
@@
static unsigned long get_symbol_pos(unsigned long addr,
unsigned long symbol_start = 0, symbol_end = 0;
unsigned long i, low, high, mid;
unsigned long symbol_start = 0, symbol_end = 0;
unsigned long i, low, high, mid;
+ /* This kernel should never had been booted. */
+ BUG_ON(!kallsyms_addresses);
+
/* do a binary search on the sorted kallsyms_addresses array */
low = 0;
high = kallsyms_num_syms;
/* do a binary search on the sorted kallsyms_addresses array */
low = 0;
high = kallsyms_num_syms;