Skip to content

Commit

Permalink
kdb: make "mdr" command repeat
Browse files Browse the repository at this point in the history
[ Upstream commit 1e0ce03 ]

The "mdr" command should repeat (continue) when only Enter/Return
is pressed, so make it do so.

Signed-off-by: Randy Dunlap <rdunlap@infradead.org>
Cc: Daniel Thompson <daniel.thompson@linaro.org>
Cc: Jason Wessel <jason.wessel@windriver.com>
Cc: kgdb-bugreport@lists.sourceforge.net
Signed-off-by: Jason Wessel <jason.wessel@windriver.com>
Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  • Loading branch information
Randy Dunlap authored and Greg Kroah-Hartman committed May 30, 2018
1 parent 4543d30 commit 96239f4
Showing 1 changed file with 21 additions and 6 deletions.
27 changes: 21 additions & 6 deletions kernel/debug/kdb/kdb_main.c
Original file line number Diff line number Diff line change
@@ -1524,6 +1524,7 @@ static int kdb_md(int argc, const char **argv)
int symbolic = 0;
int valid = 0;
int phys = 0;
int raw = 0;

kdbgetintenv("MDCOUNT", &mdcount);
kdbgetintenv("RADIX", &radix);
@@ -1533,9 +1534,10 @@ static int kdb_md(int argc, const char **argv)
repeat = mdcount * 16 / bytesperword;

if (strcmp(argv[0], "mdr") == 0) {
if (argc != 2)
if (argc == 2 || (argc == 0 && last_addr != 0))
valid = raw = 1;
else
return KDB_ARGCOUNT;
valid = 1;
} else if (isdigit(argv[0][2])) {
bytesperword = (int)(argv[0][2] - '0');
if (bytesperword == 0) {
@@ -1571,7 +1573,10 @@ static int kdb_md(int argc, const char **argv)
radix = last_radix;
bytesperword = last_bytesperword;
repeat = last_repeat;
mdcount = ((repeat * bytesperword) + 15) / 16;
if (raw)
mdcount = repeat;
else
mdcount = ((repeat * bytesperword) + 15) / 16;
}

if (argc) {
@@ -1588,7 +1593,10 @@ static int kdb_md(int argc, const char **argv)
diag = kdbgetularg(argv[nextarg], &val);
if (!diag) {
mdcount = (int) val;
repeat = mdcount * 16 / bytesperword;
if (raw)
repeat = mdcount;
else
repeat = mdcount * 16 / bytesperword;
}
}
if (argc >= nextarg+1) {
@@ -1598,8 +1606,15 @@ static int kdb_md(int argc, const char **argv)
}
}

if (strcmp(argv[0], "mdr") == 0)
return kdb_mdr(addr, mdcount);
if (strcmp(argv[0], "mdr") == 0) {
int ret;
last_addr = addr;
ret = kdb_mdr(addr, mdcount);
last_addr += mdcount;
last_repeat = mdcount;
last_bytesperword = bytesperword; // to make REPEAT happy
return ret;
}

switch (radix) {
case 10:

0 comments on commit 96239f4

Please sign in to comment.