fdtdec: only create phandle if caller wants it in

A patch from »fdtdec: protect against another NULL phandlep in« in state Mainline for u-boot

From: Heiko Stuebner <heiko.stuebner@...> Date: Tue, 8 Oct 2019 01:06:24 +0200

Commit-Message

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@...>

Patch-Comment

changes in v2: - update function comment include/fdtdec.h | 2 +- lib/fdtdec.c | 16 +++++++++------- 2 files changed, 10 insertions(+), 8 deletions(-)

Statistics

  • 10 lines added
  • 8 lines removed

Changes

------------------------------- include/fdtdec.h -------------------------------
index 54509a25ad..fe8e7770ec 100644
@@ -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,
--------------------------------- lib/fdtdec.c ---------------------------------
index d7c3684145..c841aafa2a 100644
@@ -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)
 
 

Recent Patches

About Us

Sed lacus. Donec lectus. Nullam pretium nibh ut turpis. Nam bibendum. In nulla tortor, elementum vel, tempor at, varius non, purus. Mauris vitae nisl nec metus placerat consectetuer.

Read More...