summaryrefslogtreecommitdiffstats
path: root/discover
diff options
context:
space:
mode:
authorGe Song <ge.song@hxt-semitech.com>2018-08-02 17:29:38 +0000
committerSamuel Mendoza-Jonas <sam@mendozajonas.com>2018-08-07 11:30:36 +1000
commitb5ab295d9cbddd1570d05471528f4d2ad7abae07 (patch)
treefd5fd05a243ded9c8cc738d8566a5deef6944d36 /discover
parentdb0ea9230e5d0c7ffe1febc6096395cb306eca7d (diff)
downloadtalos-petitboot-b5ab295d9cbddd1570d05471528f4d2ad7abae07.tar.gz
talos-petitboot-b5ab295d9cbddd1570d05471528f4d2ad7abae07.zip
discover/powerpc: Rearange save_config
Rearange update_config and save_config so that update_config only operates on the platform params list. Signed-off-by: Ge Song <ge.song@hxt-semitech.com> [Split from a larger patch and cleaned up] Signed-off-by: Geoff Levand <geoff@infradead.org> Signed-off-by: Samuel Mendoza-Jonas <sam@mendozajonas.com>
Diffstat (limited to 'discover')
-rw-r--r--discover/platform-powerpc.c25
1 files changed, 11 insertions, 14 deletions
diff --git a/discover/platform-powerpc.c b/discover/platform-powerpc.c
index d7bd949..c7432fb 100644
--- a/discover/platform-powerpc.c
+++ b/discover/platform-powerpc.c
@@ -680,7 +680,7 @@ static void update_bootdev_config(struct platform_powerpc *platform,
talloc_free(boot_str);
}
-static int update_config(struct platform_powerpc *platform,
+static void update_config(struct platform_powerpc *platform,
struct config *config, struct config *defaults)
{
char *tmp = NULL;
@@ -698,14 +698,6 @@ static int update_config(struct platform_powerpc *platform,
val = tmp = talloc_asprintf(platform, "%d",
config->autoboot_timeout_sec);
- if (config->ipmi_bootdev == IPMI_BOOTDEV_INVALID &&
- platform->clear_ipmi_bootdev) {
- platform->clear_ipmi_bootdev(platform,
- config->ipmi_bootdev_persistent);
- config->ipmi_bootdev = IPMI_BOOTDEV_NONE;
- config->ipmi_bootdev_persistent = false;
- }
-
update_string_config(platform, "petitboot,timeout", val);
if (tmp)
talloc_free(tmp);
@@ -732,8 +724,6 @@ static int update_config(struct platform_powerpc *platform,
update_network_config(platform, config);
update_bootdev_config(platform, config);
-
- return write_nvram(platform);
}
static void set_ipmi_bootdev(struct config *config, enum ipmi_bootdev bootdev,
@@ -1154,15 +1144,22 @@ static int save_config(struct platform *p, struct config *config)
{
struct platform_powerpc *platform = to_platform_powerpc(p);
struct config *defaults;
- int rc;
+
+ if (config->ipmi_bootdev == IPMI_BOOTDEV_INVALID &&
+ platform->clear_ipmi_bootdev) {
+ platform->clear_ipmi_bootdev(platform,
+ config->ipmi_bootdev_persistent);
+ config->ipmi_bootdev = IPMI_BOOTDEV_NONE;
+ config->ipmi_bootdev_persistent = false;
+ }
defaults = talloc_zero(platform, struct config);
config_set_defaults(defaults);
- rc = update_config(platform, config, defaults);
+ update_config(platform, config, defaults);
talloc_free(defaults);
- return rc;
+ return write_nvram(platform);
}
static void pre_boot(struct platform *p, const struct config *config)
OpenPOWER on IntegriCloud