Signed-off-by: Andrew Jones <drjones@xxxxxxxxxx> --- arm/selftest.c | 14 +++++++------- arm/spinlock-test.c | 2 +- lib/argv.c | 15 +++++++++++++++ lib/arm/setup.c | 4 ++-- 4 files changed, 25 insertions(+), 10 deletions(-) diff --git a/arm/selftest.c b/arm/selftest.c index 75dc91faab69a..5656f2bb1cc88 100644 --- a/arm/selftest.c +++ b/arm/selftest.c @@ -324,25 +324,25 @@ int main(int argc, char **argv) { report_prefix_push("selftest"); - if (!argc) + if (argc < 2) report_abort("no test specified"); - report_prefix_push(argv[0]); + report_prefix_push(argv[1]); - if (strcmp(argv[0], "setup") == 0) { + if (strcmp(argv[1], "setup") == 0) { - check_setup(argc-1, &argv[1]); + check_setup(argc-2, &argv[2]); - } else if (strcmp(argv[0], "vectors-kernel") == 0) { + } else if (strcmp(argv[1], "vectors-kernel") == 0) { check_vectors(NULL); - } else if (strcmp(argv[0], "vectors-user") == 0) { + } else if (strcmp(argv[1], "vectors-user") == 0) { start_usr(check_vectors, NULL, (unsigned long)thread_stack_alloc()); - } else if (strcmp(argv[0], "smp") == 0) { + } else if (strcmp(argv[1], "smp") == 0) { int cpu; diff --git a/arm/spinlock-test.c b/arm/spinlock-test.c index fd2af9fd2f4d3..6009ba087e4b4 100644 --- a/arm/spinlock-test.c +++ b/arm/spinlock-test.c @@ -69,7 +69,7 @@ int main(int argc, char **argv) { int cpu; - if (argc && strcmp(argv[0], "bad") != 0) { + if (argc > 1 && strcmp(argv[1], "bad") != 0) { lock_ops.lock = gcc_builtin_lock; lock_ops.unlock = gcc_builtin_unlock; } else { diff --git a/lib/argv.c b/lib/argv.c index 62dd1fd4cf980..4f6b4f01c4afe 100644 --- a/lib/argv.c +++ b/lib/argv.c @@ -40,3 +40,18 @@ void setup_args(char *args) __args = args; __setup_args(); } + +void setup_args_prognam(char *args) +{ + int i; + + if (args) { + __args = args; + __setup_args(); + + for (i = __argc; i > 0; --i) + __argv[i] = __argv[i-1]; + } + __argv[0] = NULL; // just reserve for now + ++__argc; +} diff --git a/lib/arm/setup.c b/lib/arm/setup.c index 8c6172ff94106..c27cc8d052f03 100644 --- a/lib/arm/setup.c +++ b/lib/arm/setup.c @@ -22,7 +22,7 @@ extern unsigned long stacktop; extern void io_init(void); -extern void setup_args(const char *args); +extern void setup_args_prognam(const char *args); u32 cpus[NR_CPUS] = { [0 ... NR_CPUS-1] = (~0U) }; int nr_cpus; @@ -124,5 +124,5 @@ void setup(const void *fdt) ret = dt_get_bootargs(&bootargs); assert(ret == 0); - setup_args(bootargs); + setup_args_prognam(bootargs); } -- 2.4.11 -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html