diff options
-rw-r--r-- | kernel/debug/kdb/kdb_main.c | 65 |
1 files changed, 0 insertions, 65 deletions
diff --git a/kernel/debug/kdb/kdb_main.c b/kernel/debug/kdb/kdb_main.c index 25908cf2f5d7..cdfc0a7e583e 100644 --- a/kernel/debug/kdb/kdb_main.c +++ b/kernel/debug/kdb/kdb_main.c | |||
@@ -2362,69 +2362,6 @@ static int kdb_pid(int argc, const char **argv) | |||
2362 | return 0; | 2362 | return 0; |
2363 | } | 2363 | } |
2364 | 2364 | ||
2365 | /* | ||
2366 | * kdb_ll - This function implements the 'll' command which follows a | ||
2367 | * linked list and executes an arbitrary command for each | ||
2368 | * element. | ||
2369 | */ | ||
2370 | static int kdb_ll(int argc, const char **argv) | ||
2371 | { | ||
2372 | int diag = 0; | ||
2373 | unsigned long addr; | ||
2374 | long offset = 0; | ||
2375 | unsigned long va; | ||
2376 | unsigned long linkoffset; | ||
2377 | int nextarg; | ||
2378 | const char *command; | ||
2379 | |||
2380 | if (argc != 3) | ||
2381 | return KDB_ARGCOUNT; | ||
2382 | |||
2383 | nextarg = 1; | ||
2384 | diag = kdbgetaddrarg(argc, argv, &nextarg, &addr, &offset, NULL); | ||
2385 | if (diag) | ||
2386 | return diag; | ||
2387 | |||
2388 | diag = kdbgetularg(argv[2], &linkoffset); | ||
2389 | if (diag) | ||
2390 | return diag; | ||
2391 | |||
2392 | /* | ||
2393 | * Using the starting address as | ||
2394 | * the first element in the list, and assuming that | ||
2395 | * the list ends with a null pointer. | ||
2396 | */ | ||
2397 | |||
2398 | va = addr; | ||
2399 | command = kdb_strdup(argv[3], GFP_KDB); | ||
2400 | if (!command) { | ||
2401 | kdb_printf("%s: cannot duplicate command\n", __func__); | ||
2402 | return 0; | ||
2403 | } | ||
2404 | /* Recursive use of kdb_parse, do not use argv after this point */ | ||
2405 | argv = NULL; | ||
2406 | |||
2407 | while (va) { | ||
2408 | char buf[80]; | ||
2409 | |||
2410 | if (KDB_FLAG(CMD_INTERRUPT)) | ||
2411 | goto out; | ||
2412 | |||
2413 | sprintf(buf, "%s " kdb_machreg_fmt "\n", command, va); | ||
2414 | diag = kdb_parse(buf); | ||
2415 | if (diag) | ||
2416 | goto out; | ||
2417 | |||
2418 | addr = va + linkoffset; | ||
2419 | if (kdb_getword(&va, addr, sizeof(va))) | ||
2420 | goto out; | ||
2421 | } | ||
2422 | |||
2423 | out: | ||
2424 | kfree(command); | ||
2425 | return diag; | ||
2426 | } | ||
2427 | |||
2428 | static int kdb_kgdb(int argc, const char **argv) | 2365 | static int kdb_kgdb(int argc, const char **argv) |
2429 | { | 2366 | { |
2430 | return KDB_CMD_KGDB; | 2367 | return KDB_CMD_KGDB; |
@@ -2866,8 +2803,6 @@ static void __init kdb_inittab(void) | |||
2866 | kdb_register_repeat("btt", kdb_bt, "<vaddr>", | 2803 | kdb_register_repeat("btt", kdb_bt, "<vaddr>", |
2867 | "Backtrace process given its struct task address", 0, | 2804 | "Backtrace process given its struct task address", 0, |
2868 | KDB_REPEAT_NONE); | 2805 | KDB_REPEAT_NONE); |
2869 | kdb_register_repeat("ll", kdb_ll, "<first-element> <linkoffset> <cmd>", | ||
2870 | "Execute cmd for each element in linked list", 0, KDB_REPEAT_NONE); | ||
2871 | kdb_register_repeat("env", kdb_env, "", | 2806 | kdb_register_repeat("env", kdb_env, "", |
2872 | "Show environment variables", 0, KDB_REPEAT_NONE); | 2807 | "Show environment variables", 0, KDB_REPEAT_NONE); |
2873 | kdb_register_repeat("set", kdb_set, "", | 2808 | kdb_register_repeat("set", kdb_set, "", |