arm64: zynqmp: Simplify boot_target variable composition
authorMichal Simek <michal.simek@xilinx.com>
Wed, 25 Apr 2018 09:10:34 +0000 (11:10 +0200)
committerMichal Simek <michal.simek@xilinx.com>
Fri, 11 May 2018 07:23:43 +0000 (09:23 +0200)
Call calloc for space allocation only at one location and include if/else
to sprintf. This will simplify run time device adding based on id aliases.

Signed-off-by: Michal Simek <michal.simek@xilinx.com>
Reviewed-by: Alexander Graf <agraf@suse.de>
board/xilinx/zynqmp/zynqmp.c

index 911cd52e0c40c51f8820bccff1ffcdc1b70755e3..57c0d93aa1bc86ed8fff26112ca97622e8eae39f 100644 (file)
@@ -453,6 +453,7 @@ int board_late_init(void)
 {
        u32 reg = 0;
        u8 bootmode;
+       int env_targets_len = 0;
        const char *mode;
        char *new_targets;
        char *env_targets;
@@ -529,14 +530,13 @@ int board_late_init(void)
         * and default boot_targets
         */
        env_targets = env_get("boot_targets");
-       if (env_targets) {
-               new_targets = calloc(1, strlen(mode) +
-                                    strlen(env_targets) + 2);
-               sprintf(new_targets, "%s %s", mode, env_targets);
-       } else {
-               new_targets = calloc(1, strlen(mode) + 2);
-               sprintf(new_targets, "%s", mode);
-       }
+       if (env_targets)
+               env_targets_len = strlen(env_targets);
+
+       new_targets = calloc(1, strlen(mode) + env_targets_len + 2);
+
+       sprintf(new_targets, "%s %s", mode,
+               env_targets ? env_targets : "");
 
        env_set("boot_targets", new_targets);