diff options
| author | Heiko Stuebner <[email protected]> | 2019-10-23 16:46:39 +0200 |
|---|---|---|
| committer | Simon Glass <[email protected]> | 2019-11-14 07:09:34 -0600 |
| commit | 357d2ceba0354e29462ac25924f5e42623c22b5b (patch) | |
| tree | f03173ccfa5d3db2b6bb0d738590a9e37467fd39 | |
| parent | 086336a22508affb7567bf6d383642554eda5a56 (diff) | |
fdtdec: only create phandle if caller wants it in fdtdec_add_reserved_memory()
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 <[email protected]>
Reviewed-by: Simon Glass <[email protected]>
| -rw-r--r-- | include/fdtdec.h | 2 | ||||
| -rw-r--r-- | lib/fdtdec.c | 14 |
2 files changed, 9 insertions, 7 deletions
diff --git a/include/fdtdec.h b/include/fdtdec.h index e150975b276..696e0fd024d 100644 --- a/include/fdtdec.h +++ b/include/fdtdec.h @@ -1061,7 +1061,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 38a0cff25ee..61af3472e6a 100644 --- a/lib/fdtdec.c +++ b/lib/fdtdec.c @@ -1339,13 +1339,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; + 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; + err = fdtdec_set_phandle(blob, node, phandle); + if (err < 0) + return err; + } /* store one or two address cells */ if (na > 1) |
