[U-Boot,v2,2/4] fdtdec: only create phandle if caller wants it in fdtdec_add_reserved_memory()
diff mbox series

Message ID 20191022190428.14868-2-heiko@sntech.de
State Superseded
Delegated to: Simon Glass
Headers show
Series
  • [U-Boot,v2,1/4] fdtdec: protect against another NULL phandlep in fdtdec_add_reserved_memory()
Related show

Commit Message

Heiko Stuebner Oct. 22, 2019, 7:04 p.m. UTC
From: Heiko Stuebner <heiko.stuebner@theobroma-systems.com>

The phandlep pointer returning the phandle to the caller is optional
and if it is not set when calling fdtdec_add_reserved_memory() it is
highly likely that the caller is not interested in a phandle to the
created reserved-memory area and really just wants that area added.

So just don't create a phandle in that case.

Signed-off-by: Heiko Stuebner <heiko.stuebner@theobroma-systems.com>
---
changes in v2:
- update function comment

 include/fdtdec.h |  2 +-
 lib/fdtdec.c     | 16 +++++++++-------
 2 files changed, 10 insertions(+), 8 deletions(-)

Comments

Simon Glass Oct. 30, 2019, 1:48 a.m. UTC | #1
On Tue, 22 Oct 2019 at 13:04, Heiko Stuebner <heiko@sntech.de> wrote:
>
> From: Heiko Stuebner <heiko.stuebner@theobroma-systems.com>
>
> The phandlep pointer returning the phandle to the caller is optional
> and if it is not set when calling fdtdec_add_reserved_memory() it is
> highly likely that the caller is not interested in a phandle to the
> created reserved-memory area and really just wants that area added.
>
> So just don't create a phandle in that case.
>
> Signed-off-by: Heiko Stuebner <heiko.stuebner@theobroma-systems.com>
> ---
> changes in v2:
> - update function comment
>
>  include/fdtdec.h |  2 +-
>  lib/fdtdec.c     | 16 +++++++++-------
>  2 files changed, 10 insertions(+), 8 deletions(-)

Reviewed-by: Simon Glass <sjg@chromium.org>

Patch
diff mbox series

diff --git a/include/fdtdec.h b/include/fdtdec.h
index 54509a25ad..fe8e7770ec 100644
--- a/include/fdtdec.h
+++ b/include/fdtdec.h
@@ -1078,7 +1078,7 @@  static inline int fdtdec_set_phandle(void *blob, int node, uint32_t phandle)
  * @param basename	base name of the node to create
  * @param carveout	information about the carveout region
  * @param phandlep	return location for the phandle of the carveout region
- *			can be NULL
+ *			can be NULL if no phandle should be added
  * @return 0 on success or a negative error code on failure
  */
 int fdtdec_add_reserved_memory(void *blob, const char *basename,
diff --git a/lib/fdtdec.c b/lib/fdtdec.c
index d7c3684145..c841aafa2a 100644
--- a/lib/fdtdec.c
+++ b/lib/fdtdec.c
@@ -1393,13 +1393,15 @@  int fdtdec_add_reserved_memory(void *blob, const char *basename,
 	if (node < 0)
 		return node;
 
-	err = fdt_generate_phandle(blob, &phandle);
-	if (err < 0)
-		return err;
-
-	err = fdtdec_set_phandle(blob, node, phandle);
-	if (err < 0)
-		return err;
+	if (phandlep) {
+		err = fdt_generate_phandle(blob, &phandle);
+		if (err < 0)
+			return err;
+
+		err = fdtdec_set_phandle(blob, node, phandle);
+		if (err < 0)
+			return err;
+	}
 
 	/* store one or two address cells */
 	if (na > 1)