arm64: zynqmp: Simplify boot_target variable composition

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>
lime2-spi
Michal Simek 6 years ago
parent 0678941ae5
commit 0478b0b9b6
  1. 16
      board/xilinx/zynqmp/zynqmp.c

@ -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);

Loading…
Cancel
Save