From mboxrd@z Thu Jan 1 00:00:00 1970 From: Thomas Huth Subject: Re: [kvm-unit-tests PATCH v3 1/3] arm/arm64: reserve argv[0] for prognam Date: Mon, 13 Jun 2016 13:13:05 +0200 Message-ID: <575E9541.2000901@redhat.com> References: <1465752571-17627-1-git-send-email-drjones@redhat.com> <1465752571-17627-2-git-send-email-drjones@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit Cc: pbonzini@redhat.com, rkrcmar@redhat.com, lvivier@redhat.com To: Andrew Jones , kvm@vger.kernel.org Return-path: Received: from mx1.redhat.com ([209.132.183.28]:55209 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1161049AbcFMLNJ (ORCPT ); Mon, 13 Jun 2016 07:13:09 -0400 Received: from int-mx10.intmail.prod.int.phx2.redhat.com (int-mx10.intmail.prod.int.phx2.redhat.com [10.5.11.23]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 45A0E64076 for ; Mon, 13 Jun 2016 11:13:09 +0000 (UTC) In-Reply-To: <1465752571-17627-2-git-send-email-drjones@redhat.com> Sender: kvm-owner@vger.kernel.org List-ID: On 12.06.2016 19:29, Andrew Jones wrote: > Signed-off-by: Andrew Jones > --- > 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); > } > Reviewed-by: Thomas Huth