Every caller to kdbgetaddrarg() didn't care about the "offset" and "name" returned by the function. Some passed NULL and some passed the address of a bogus local variable that was never looked at. Drop the arguments.
Signed-off-by: Douglas Anderson <diand...@chromium.org> --- kernel/debug/kdb/kdb_bp.c | 5 +---- kernel/debug/kdb/kdb_bt.c | 4 +--- kernel/debug/kdb/kdb_main.c | 37 ++++++++-------------------------- kernel/debug/kdb/kdb_private.h | 4 ++-- 4 files changed, 12 insertions(+), 38 deletions(-) diff --git a/kernel/debug/kdb/kdb_bp.c b/kernel/debug/kdb/kdb_bp.c index 372025cf1ca3..98659f7dd744 100644 --- a/kernel/debug/kdb/kdb_bp.c +++ b/kernel/debug/kdb/kdb_bp.c @@ -279,8 +279,6 @@ static int kdb_bp(int argc, const char **argv) int i, bpno; kdb_bp_t *bp, *bp_check; int diag; - char *symname = NULL; - long offset = 0ul; int nextarg; kdb_bp_t template = {0}; @@ -299,8 +297,7 @@ static int kdb_bp(int argc, const char **argv) } nextarg = 1; - diag = kdbgetaddrarg(argc, argv, &nextarg, &template.bp_addr, - &offset, &symname); + diag = kdbgetaddrarg(argc, argv, &nextarg, &template.bp_addr); if (diag) return diag; if (!template.bp_addr) diff --git a/kernel/debug/kdb/kdb_bt.c b/kernel/debug/kdb/kdb_bt.c index 10b454554ab0..af86744c1e2f 100644 --- a/kernel/debug/kdb/kdb_bt.c +++ b/kernel/debug/kdb/kdb_bt.c @@ -130,7 +130,6 @@ kdb_bt(int argc, const char **argv) int btaprompt = 1; int nextarg; unsigned long addr; - long offset; /* Prompt after each proc in bta */ kdbgetintenv("BTAPROMPT", &btaprompt); @@ -205,8 +204,7 @@ kdb_bt(int argc, const char **argv) } else { if (argc) { nextarg = 1; - diag = kdbgetaddrarg(argc, argv, &nextarg, &addr, - &offset, NULL); + diag = kdbgetaddrarg(argc, argv, &nextarg, &addr); if (diag) return diag; kdb_show_stack(kdb_current_task, (void *)addr); diff --git a/kernel/debug/kdb/kdb_main.c b/kernel/debug/kdb/kdb_main.c index 88121334d189..74db5c0cc5ad 100644 --- a/kernel/debug/kdb/kdb_main.c +++ b/kernel/debug/kdb/kdb_main.c @@ -532,16 +532,12 @@ static int kdb_check_regs(void) * regs - Register state at time of KDB entry * Outputs: * *value - receives the value of the address-expression - * *offset - receives the offset specified, if any - * *name - receives the symbol name, if any * *nextarg - index to next unparsed argument in argv[] * Returns: * zero is returned on success, a kdb diagnostic code is * returned on error. */ -int kdbgetaddrarg(int argc, const char **argv, int *nextarg, - unsigned long *value, long *offset, - char **name) +int kdbgetaddrarg(int argc, const char **argv, int *nextarg, unsigned long *value) { unsigned long addr; unsigned long off = 0; @@ -615,12 +611,8 @@ int kdbgetaddrarg(int argc, const char **argv, int *nextarg, (*nextarg)++; - if (name) - *name = symname; if (value) *value = addr; - if (offset && name && *name) - *offset = addr - symtab.sym_start; if ((*nextarg > argc) && (symbol == '\0')) @@ -664,9 +656,6 @@ int kdbgetaddrarg(int argc, const char **argv, int *nextarg, if (!positive) off = -off; - if (offset) - *offset += off; - if (value) *value += off; @@ -1116,14 +1105,10 @@ int kdb_parse(const char *cmdstr) */ { unsigned long value; - char *name = NULL; - long offset; int nextarg = 0; - if (kdbgetaddrarg(0, (const char **)argv, &nextarg, - &value, &offset, &name)) { + if (kdbgetaddrarg(0, (const char **)argv, &nextarg, &value)) return KDB_NOTFOUND; - } kdb_printf("%s = ", argv[0]); kdb_symbol_print(value, NULL, KDB_SP_DEFAULT); @@ -1593,7 +1578,6 @@ static int kdb_md(int argc, const char **argv) char fmtchar, fmtstr[64]; unsigned long addr; unsigned long word; - long offset = 0; bool nosect = false; bool symbolic = false; bool valid = false; @@ -1656,8 +1640,7 @@ static int kdb_md(int argc, const char **argv) if (argc) { unsigned long val; int diag, nextarg = 1; - diag = kdbgetaddrarg(argc, argv, &nextarg, &addr, - &offset, NULL); + diag = kdbgetaddrarg(argc, argv, &nextarg, &addr); if (diag) return diag; if (argc > nextarg+2) @@ -1793,7 +1776,6 @@ static int kdb_mm(int argc, const char **argv) { int diag; unsigned long addr; - long offset = 0; unsigned long contents; int nextarg; int width; @@ -1805,13 +1787,13 @@ static int kdb_mm(int argc, const char **argv) return KDB_ARGCOUNT; nextarg = 1; - diag = kdbgetaddrarg(argc, argv, &nextarg, &addr, &offset, NULL); + diag = kdbgetaddrarg(argc, argv, &nextarg, &addr); if (diag) return diag; if (nextarg > argc) return KDB_ARGCOUNT; - diag = kdbgetaddrarg(argc, argv, &nextarg, &contents, NULL, NULL); + diag = kdbgetaddrarg(argc, argv, &nextarg, &contents); if (diag) return diag; @@ -1837,7 +1819,6 @@ static int kdb_go(int argc, const char **argv) unsigned long addr; int diag; int nextarg; - long offset; if (raw_smp_processor_id() != kdb_initial_cpu) { kdb_printf("go must execute on the entry cpu, " @@ -1847,8 +1828,7 @@ static int kdb_go(int argc, const char **argv) } if (argc == 1) { nextarg = 1; - diag = kdbgetaddrarg(argc, argv, &nextarg, - &addr, &offset, NULL); + diag = kdbgetaddrarg(argc, argv, &nextarg, &addr); if (diag) return diag; } else if (argc) { @@ -2043,14 +2023,13 @@ static int kdb_ef(int argc, const char **argv) { int diag; unsigned long addr; - long offset; int nextarg; if (argc != 1) return KDB_ARGCOUNT; nextarg = 1; - diag = kdbgetaddrarg(argc, argv, &nextarg, &addr, &offset, NULL); + diag = kdbgetaddrarg(argc, argv, &nextarg, &addr); if (diag) return diag; show_regs((struct pt_regs *)addr); @@ -2547,7 +2526,7 @@ static int kdb_per_cpu(int argc, const char **argv) if (argc < 1 || argc > 3) return KDB_ARGCOUNT; - diag = kdbgetaddrarg(argc, argv, &nextarg, &symaddr, NULL, NULL); + diag = kdbgetaddrarg(argc, argv, &nextarg, &symaddr); if (diag) return diag; diff --git a/kernel/debug/kdb/kdb_private.h b/kernel/debug/kdb/kdb_private.h index 548fd4059bf9..1f685d9f16f9 100644 --- a/kernel/debug/kdb/kdb_private.h +++ b/kernel/debug/kdb/kdb_private.h @@ -105,8 +105,8 @@ extern int kdb_putword(unsigned long, unsigned long, size_t); extern int kdbgetularg(const char *, unsigned long *); extern int kdbgetu64arg(const char *, u64 *); extern char *kdbgetenv(const char *); -extern int kdbgetaddrarg(int, const char **, int*, unsigned long *, - long *, char **); +extern int kdbgetaddrarg(int argc, const char **argv, int *nextarg, + unsigned long *value); extern int kdbgetsymval(const char *, kdb_symtab_t *); extern int kdbnearsym(unsigned long, kdb_symtab_t *); extern char *kdb_strdup(const char *str, gfp_t type); -- 2.45.2.627.g7a2c4fd464-goog _______________________________________________ Kgdb-bugreport mailing list Kgdb-bugreport@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/kgdb-bugreport