[PATCH 04/13] kdb: Drop "offset" and "name" args to kdbgetaddrarg()
From: Douglas Anderson
Date: Mon Jun 17 2024 - 20:37:28 EST
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 <dianders@xxxxxxxxxxxx>
---
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