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
cgroups: add cpu_relax() calls in css_tryget() and cgroup_clear_css_refs()
[safe/jmp/linux-2.6]
/
kernel
/
kallsyms.c
diff --git
a/kernel/kallsyms.c
b/kernel/kallsyms.c
index
2fc2581
..
7b8b0f2
100644
(file)
--- a/
kernel/kallsyms.c
+++ b/
kernel/kallsyms.c
@@
-53,14
+53,6
@@
static inline int is_kernel_inittext(unsigned long addr)
return 0;
}
return 0;
}
-static inline int is_kernel_extratext(unsigned long addr)
-{
- if (addr >= (unsigned long)_sextratext
- && addr <= (unsigned long)_eextratext)
- return 1;
- return 0;
-}
-
static inline int is_kernel_text(unsigned long addr)
{
if (addr >= (unsigned long)_stext && addr <= (unsigned long)_etext)
static inline int is_kernel_text(unsigned long addr)
{
if (addr >= (unsigned long)_stext && addr <= (unsigned long)_etext)
@@
-80,8
+72,7
@@
static int is_ksym_addr(unsigned long addr)
if (all_var)
return is_kernel(addr);
if (all_var)
return is_kernel(addr);
- return is_kernel_text(addr) || is_kernel_inittext(addr) ||
- is_kernel_extratext(addr);
+ return is_kernel_text(addr) || is_kernel_inittext(addr);
}
/* expand a compressed symbol data into the resulting uncompressed string,
}
/* expand a compressed symbol data into the resulting uncompressed string,
@@
-185,7
+176,7
@@
static unsigned long get_symbol_pos(unsigned long addr,
high = kallsyms_num_syms;
while (high - low > 1) {
high = kallsyms_num_syms;
while (high - low > 1) {
- mid =
(low + high
) / 2;
+ mid =
low + (high - low
) / 2;
if (kallsyms_addresses[mid] <= addr)
low = mid;
else
if (kallsyms_addresses[mid] <= addr)
low = mid;
else
@@
-233,10
+224,11
@@
static unsigned long get_symbol_pos(unsigned long addr,
int kallsyms_lookup_size_offset(unsigned long addr, unsigned long *symbolsize,
unsigned long *offset)
{
int kallsyms_lookup_size_offset(unsigned long addr, unsigned long *symbolsize,
unsigned long *offset)
{
+ char namebuf[KSYM_NAME_LEN];
if (is_ksym_addr(addr))
return !!get_symbol_pos(addr, symbolsize, offset);
if (is_ksym_addr(addr))
return !!get_symbol_pos(addr, symbolsize, offset);
- return !!module_address_lookup(addr, symbolsize, offset, NULL);
+ return !!module_address_lookup(addr, symbolsize, offset, NULL
, namebuf
);
}
/*
}
/*
@@
-251,8
+243,6
@@
const char *kallsyms_lookup(unsigned long addr,
unsigned long *offset,
char **modname, char *namebuf)
{
unsigned long *offset,
char **modname, char *namebuf)
{
- const char *msym;
-
namebuf[KSYM_NAME_LEN - 1] = 0;
namebuf[0] = 0;
namebuf[KSYM_NAME_LEN - 1] = 0;
namebuf[0] = 0;
@@
-268,11
+258,8
@@
const char *kallsyms_lookup(unsigned long addr,
}
/* see if it's in a module */
}
/* see if it's in a module */
- msym = module_address_lookup(addr, symbolsize, offset, modname);
- if (msym)
- return strncpy(namebuf, msym, KSYM_NAME_LEN - 1);
-
- return NULL;
+ return module_address_lookup(addr, symbolsize, offset, modname,
+ namebuf);
}
int lookup_symbol_name(unsigned long addr, char *symname)
}
int lookup_symbol_name(unsigned long addr, char *symname)
@@
-317,17
+304,24
@@
int sprint_symbol(char *buffer, unsigned long address)
char *modname;
const char *name;
unsigned long offset, size;
char *modname;
const char *name;
unsigned long offset, size;
-
char namebuf[KSYM_NAME_LEN]
;
+
int len
;
- name = kallsyms_lookup(address, &size, &offset, &modname,
namebuf
);
+ name = kallsyms_lookup(address, &size, &offset, &modname,
buffer
);
if (!name)
return sprintf(buffer, "0x%lx", address);
if (!name)
return sprintf(buffer, "0x%lx", address);
+ if (name != buffer)
+ strcpy(buffer, name);
+ len = strlen(buffer);
+ buffer += len;
+
if (modname)
if (modname)
-
return sprintf(buffer, "%s+%#lx/%#lx [%s]", name, offset
,
- size, modname);
+
len += sprintf(buffer, "+%#lx/%#lx [%s]"
,
+
offset,
size, modname);
else
else
- return sprintf(buffer, "%s+%#lx/%#lx", name, offset, size);
+ len += sprintf(buffer, "+%#lx/%#lx", offset, size);
+
+ return len;
}
/* Look up a kernel symbol and print it to the kernel messages. */
}
/* Look up a kernel symbol and print it to the kernel messages. */
@@
-484,11
+478,7
@@
static const struct file_operations kallsyms_operations = {
static int __init kallsyms_init(void)
{
static int __init kallsyms_init(void)
{
- struct proc_dir_entry *entry;
-
- entry = create_proc_entry("kallsyms", 0444, NULL);
- if (entry)
- entry->proc_fops = &kallsyms_operations;
+ proc_create("kallsyms", 0444, NULL, &kallsyms_operations);
return 0;
}
__initcall(kallsyms_init);
return 0;
}
__initcall(kallsyms_init);