Gitweb:     
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=ffb45122766db220d0bf3d01848d575fbbcb6430
Commit:     ffb45122766db220d0bf3d01848d575fbbcb6430
Parent:     ea07890a680273b25127129fb555aac0d9324bea
Author:     Alexey Dobriyan <[EMAIL PROTECTED]>
AuthorDate: Tue May 8 00:28:41 2007 -0700
Committer:  Linus Torvalds <[EMAIL PROTECTED]>
CommitDate: Tue May 8 11:15:08 2007 -0700

    Simplify kallsyms_lookup()
    
    Several kallsyms_lookup() pass dummy arguments but only need, say, module's
    name.  Make kallsyms_lookup() accept NULLs where possible.
    
    Also, makes picture clearer about what interfaces are needed for all symbol
    resolving business.
    
    Signed-off-by: Alexey Dobriyan <[EMAIL PROTECTED]>
    Cc: Rusty Russell <[EMAIL PROTECTED]>
    Acked-by: Ingo Molnar <[EMAIL PROTECTED]>
    Signed-off-by: Andrew Morton <[EMAIL PROTECTED]>
    Signed-off-by: Linus Torvalds <[EMAIL PROTECTED]>
---
 arch/parisc/kernel/unwind.c |    5 +----
 arch/powerpc/xmon/xmon.c    |    3 +--
 arch/sh64/kernel/unwind.c   |    6 +++---
 fs/proc/base.c              |    5 ++---
 kernel/kallsyms.c           |    6 ++++--
 kernel/kprobes.c            |    4 ++--
 kernel/lockdep.c            |    5 +----
 kernel/module.c             |    6 ++++--
 kernel/time/timer_list.c    |    4 +---
 kernel/time/timer_stats.c   |    4 +---
 10 files changed, 20 insertions(+), 28 deletions(-)

diff --git a/arch/parisc/kernel/unwind.c b/arch/parisc/kernel/unwind.c
index 5f75b3e..89c0370 100644
--- a/arch/parisc/kernel/unwind.c
+++ b/arch/parisc/kernel/unwind.c
@@ -216,11 +216,8 @@ static void unwind_frame_regs(struct unwind_frame_info 
*info)
                /* Handle some frequent special cases.... */
                {
                        char symname[KSYM_NAME_LEN+1];
-                       char *modname;
-                       unsigned long symsize, offset;
 
-                       kallsyms_lookup(info->ip, &symsize, &offset,
-                                       &modname, symname);
+                       kallsyms_lookup(info->ip, NULL, NULL, NULL, symname);
 
                        dbg("info->ip = 0x%lx, name = %s\n", info->ip, symname);
 
diff --git a/arch/powerpc/xmon/xmon.c b/arch/powerpc/xmon/xmon.c
index b481db1..28fdf4f 100644
--- a/arch/powerpc/xmon/xmon.c
+++ b/arch/powerpc/xmon/xmon.c
@@ -1217,7 +1217,6 @@ static void get_function_bounds(unsigned long pc, 
unsigned long *startp,
 {
        unsigned long size, offset;
        const char *name;
-       char *modname;
 
        *startp = *endp = 0;
        if (pc == 0)
@@ -1225,7 +1224,7 @@ static void get_function_bounds(unsigned long pc, 
unsigned long *startp,
        if (setjmp(bus_error_jmp) == 0) {
                catch_memory_errors = 1;
                sync();
-               name = kallsyms_lookup(pc, &size, &offset, &modname, tmpstr);
+               name = kallsyms_lookup(pc, &size, &offset, NULL, tmpstr);
                if (name != NULL) {
                        *startp = pc - offset;
                        *endp = pc - offset + size;
diff --git a/arch/sh64/kernel/unwind.c b/arch/sh64/kernel/unwind.c
index f934f97..1214c78 100644
--- a/arch/sh64/kernel/unwind.c
+++ b/arch/sh64/kernel/unwind.c
@@ -46,15 +46,15 @@ static int lookup_prev_stack_frame(unsigned long fp, 
unsigned long pc,
                      struct pt_regs *regs)
 {
        const char *sym;
-       char *modname, namebuf[128];
-       unsigned long offset, size;
+       char namebuf[128];
+       unsigned long offset;
        unsigned long prologue = 0;
        unsigned long fp_displacement = 0;
        unsigned long fp_prev = 0;
        unsigned long offset_r14 = 0, offset_r18 = 0;
        int i, found_prologue_end = 0;
 
-       sym = kallsyms_lookup(pc, &size, &offset, &modname, namebuf);
+       sym = kallsyms_lookup(pc, NULL, &offset, NULL, namebuf);
        if (!sym)
                return -EINVAL;
 
diff --git a/fs/proc/base.c b/fs/proc/base.c
index a3e77fb..3b4fe21 100644
--- a/fs/proc/base.c
+++ b/fs/proc/base.c
@@ -278,14 +278,13 @@ static int proc_pid_auxv(struct task_struct *task, char 
*buffer)
  */
 static int proc_pid_wchan(struct task_struct *task, char *buffer)
 {
-       char *modname;
        const char *sym_name;
-       unsigned long wchan, size, offset;
+       unsigned long wchan;
        char namebuf[KSYM_NAME_LEN+1];
 
        wchan = get_wchan(task);
 
-       sym_name = kallsyms_lookup(wchan, &size, &offset, &modname, namebuf);
+       sym_name = kallsyms_lookup(wchan, NULL, NULL, NULL, namebuf);
        if (sym_name)
                return sprintf(buffer, "%s", sym_name);
        return sprintf(buffer, "%lu", wchan);
diff --git a/kernel/kallsyms.c b/kernel/kallsyms.c
index f1ea6f6..f66da02 100644
--- a/kernel/kallsyms.c
+++ b/kernel/kallsyms.c
@@ -214,8 +214,10 @@ static unsigned long get_symbol_pos(unsigned long addr,
                        symbol_end = (unsigned long)_etext;
        }
 
-       *symbolsize = symbol_end - symbol_start;
-       *offset = addr - symbol_start;
+       if (symbolsize)
+               *symbolsize = symbol_end - symbol_start;
+       if (offset)
+               *offset = addr - symbol_start;
 
        return low;
 }
diff --git a/kernel/kprobes.c b/kernel/kprobes.c
index 0207045..bee29bd 100644
--- a/kernel/kprobes.c
+++ b/kernel/kprobes.c
@@ -868,13 +868,13 @@ static int __kprobes show_kprobe_addr(struct seq_file 
*pi, void *v)
        struct kprobe *p, *kp;
        const char *sym = NULL;
        unsigned int i = *(loff_t *) v;
-       unsigned long size, offset = 0;
+       unsigned long offset = 0;
        char *modname, namebuf[128];
 
        head = &kprobe_table[i];
        preempt_disable();
        hlist_for_each_entry_rcu(p, node, head, hlist) {
-               sym = kallsyms_lookup((unsigned long)p->addr, &size,
+               sym = kallsyms_lookup((unsigned long)p->addr, NULL,
                                        &offset, &modname, namebuf);
                if (p->pre_handler == aggr_pre_handler) {
                        list_for_each_entry_rcu(kp, &p->list, list)
diff --git a/kernel/lockdep.c b/kernel/lockdep.c
index c1e308a..7f57313 100644
--- a/kernel/lockdep.c
+++ b/kernel/lockdep.c
@@ -340,10 +340,7 @@ static const char *usage_str[] =
 
 const char * __get_key_name(struct lockdep_subclass_key *key, char *str)
 {
-       unsigned long offs, size;
-       char *modname;
-
-       return kallsyms_lookup((unsigned long)key, &size, &offs, &modname, str);
+       return kallsyms_lookup((unsigned long)key, NULL, NULL, NULL, str);
 }
 
 void
diff --git a/kernel/module.c b/kernel/module.c
index 5ee6599..bf4dcca 100644
--- a/kernel/module.c
+++ b/kernel/module.c
@@ -2098,8 +2098,10 @@ static const char *get_ksymbol(struct module *mod,
        if (!best)
                return NULL;
 
-       *size = nextval - mod->symtab[best].st_value;
-       *offset = addr - mod->symtab[best].st_value;
+       if (size)
+               *size = nextval - mod->symtab[best].st_value;
+       if (offset)
+               *offset = addr - mod->symtab[best].st_value;
        return mod->strtab + mod->symtab[best].st_name;
 }
 
diff --git a/kernel/time/timer_list.c b/kernel/time/timer_list.c
index 59df5e8..fe9314a 100644
--- a/kernel/time/timer_list.c
+++ b/kernel/time/timer_list.c
@@ -40,11 +40,9 @@ static void print_name_offset(struct seq_file *m, void *sym)
 {
        unsigned long addr = (unsigned long)sym;
        char namebuf[KSYM_NAME_LEN+1];
-       unsigned long size, offset;
        const char *sym_name;
-       char *modname;
 
-       sym_name = kallsyms_lookup(addr, &size, &offset, &modname, namebuf);
+       sym_name = kallsyms_lookup(addr, NULL, NULL, NULL, namebuf);
        if (sym_name)
                SEQ_printf(m, "%s", sym_name);
        else
diff --git a/kernel/time/timer_stats.c b/kernel/time/timer_stats.c
index 1bc4882..946ed45 100644
--- a/kernel/time/timer_stats.c
+++ b/kernel/time/timer_stats.c
@@ -258,11 +258,9 @@ void timer_stats_update_stats(void *timer, pid_t pid, void 
*startf,
 static void print_name_offset(struct seq_file *m, unsigned long addr)
 {
        char namebuf[KSYM_NAME_LEN+1];
-       unsigned long size, offset;
        const char *sym_name;
-       char *modname;
 
-       sym_name = kallsyms_lookup(addr, &size, &offset, &modname, namebuf);
+       sym_name = kallsyms_lookup(addr, NULL, NULL, NULL, namebuf);
        if (sym_name)
                seq_printf(m, "%s", sym_name);
        else
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to