From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrew Jones Subject: [PATCH kvm-unit-tests 01/15] devicetree: improve dt_get_bootargs interface Date: Fri, 13 Jan 2017 19:15:19 +0100 Message-ID: <20170113181533.15145-2-drjones@redhat.com> References: <20170113181533.15145-1-drjones@redhat.com> Cc: rkrcmar@redhat.com, pbonzini@redhat.com, lvivier@redhat.com, thuth@redhat.com To: kvm@vger.kernel.org Return-path: Received: from mx1.redhat.com ([209.132.183.28]:58158 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751031AbdAMSPh (ORCPT ); Fri, 13 Jan 2017 13:15:37 -0500 Received: from int-mx14.intmail.prod.int.phx2.redhat.com (int-mx14.intmail.prod.int.phx2.redhat.com [10.5.11.27]) (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 7AAB661B96 for ; Fri, 13 Jan 2017 18:15:38 +0000 (UTC) In-Reply-To: <20170113181533.15145-1-drjones@redhat.com> Sender: kvm-owner@vger.kernel.org List-ID: Don't lie to callers when bootargs wasn't found, they can check for themselves. Also document that when a failure occurs @bootargs will be NULL. Signed-off-by: Andrew Jones --- lib/devicetree.h | 5 +++-- lib/arm/setup.c | 2 +- lib/devicetree.c | 5 ++--- lib/powerpc/setup.c | 2 +- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/lib/devicetree.h b/lib/devicetree.h index 0083587633d4..9a4d910b6450 100644 --- a/lib/devicetree.h +++ b/lib/devicetree.h @@ -202,10 +202,11 @@ extern int dt_get_reg(int fdtnode, int regidx, struct dt_reg *reg); **********************************************************************/ /* - * dt_get_bootargs gets a pointer to /chosen/bootargs + * dt_get_bootargs gets the string pointer from /chosen/bootargs * returns * - zero on success - * - a negative FDT_ERR_* value on failure + * - a negative FDT_ERR_* value on failure, and @bootargs + * will be set to NULL */ extern int dt_get_bootargs(const char **bootargs); diff --git a/lib/arm/setup.c b/lib/arm/setup.c index 68eae91286d6..dc94d312b262 100644 --- a/lib/arm/setup.c +++ b/lib/arm/setup.c @@ -138,6 +138,6 @@ void setup(const void *fdt) io_init(); ret = dt_get_bootargs(&bootargs); - assert(ret == 0); + assert(ret == 0 || ret == -FDT_ERR_NOTFOUND); setup_args_progname(bootargs); } diff --git a/lib/devicetree.c b/lib/devicetree.c index 671c64a2ca51..509649b917cf 100644 --- a/lib/devicetree.c +++ b/lib/devicetree.c @@ -256,11 +256,10 @@ int dt_get_bootargs(const char **bootargs) return node; prop = fdt_get_property(fdt, node, "bootargs", &len); - if (prop) - *bootargs = prop->data; - else if (len < 0 && len != -FDT_ERR_NOTFOUND) + if (!prop) return len; + *bootargs = prop->data; return 0; } diff --git a/lib/powerpc/setup.c b/lib/powerpc/setup.c index d56de36410c7..00969da8f12c 100644 --- a/lib/powerpc/setup.c +++ b/lib/powerpc/setup.c @@ -176,6 +176,6 @@ void setup(const void *fdt) io_init(); ret = dt_get_bootargs(&bootargs); - assert(ret == 0); + assert(ret == 0 || ret == -FDT_ERR_NOTFOUND); setup_args_progname(bootargs); } -- 2.9.3