summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--discover/device-handler.c2
-rw-r--r--discover/platform-powerpc.c15
-rw-r--r--lib/types/types.c12
-rw-r--r--lib/types/types.h2
4 files changed, 16 insertions, 15 deletions
diff --git a/discover/device-handler.c b/discover/device-handler.c
index 3cf7edf..5b7afd0 100644
--- a/discover/device-handler.c
+++ b/discover/device-handler.c
@@ -321,7 +321,7 @@ struct device_handler *device_handler_init(struct discover_server *server,
handler->server = server;
handler->waitset = waitset;
handler->dry_run = dry_run;
- handler->autoboot_enabled = config_get()->autoboot_enabled;
+ handler->autoboot_enabled = config_autoboot_active(config_get());
list_init(&handler->unresolved_boot_options);
diff --git a/discover/platform-powerpc.c b/discover/platform-powerpc.c
index e5c83a0..b5ad682 100644
--- a/discover/platform-powerpc.c
+++ b/discover/platform-powerpc.c
@@ -755,21 +755,8 @@ static void set_ipmi_bootdev(struct config *config, enum ipmi_bootdev bootdev,
config->ipmi_bootdev = bootdev;
config->ipmi_bootdev_persistent = persistent;
- switch (bootdev) {
- case IPMI_BOOTDEV_NONE:
- case IPMI_BOOTDEV_DISK:
- case IPMI_BOOTDEV_NETWORK:
- case IPMI_BOOTDEV_CDROM:
- default:
- break;
- case IPMI_BOOTDEV_SETUP:
- config->autoboot_enabled = false;
- break;
- case IPMI_BOOTDEV_SAFE:
- config->autoboot_enabled = false;
+ if (bootdev == IPMI_BOOTDEV_SAFE)
config->safe_mode = true;
- break;
- }
}
static int read_bootdev_sysparam(const char *name, uint8_t *val)
diff --git a/lib/types/types.c b/lib/types/types.c
index 63045e1..d7f4ead 100644
--- a/lib/types/types.c
+++ b/lib/types/types.c
@@ -75,3 +75,15 @@ enum device_type find_device_type(const char *str)
return DEVICE_TYPE_UNKNOWN;
}
+
+bool config_autoboot_active(const struct config *config)
+{
+ enum ipmi_bootdev bootdev = config->ipmi_bootdev;
+
+ if (!config->autoboot_enabled)
+ return false;
+ if (bootdev == IPMI_BOOTDEV_SETUP || bootdev == IPMI_BOOTDEV_SAFE)
+ return false;
+
+ return true;
+}
diff --git a/lib/types/types.h b/lib/types/types.h
index 13ff7fc..7f4ae1f 100644
--- a/lib/types/types.h
+++ b/lib/types/types.h
@@ -183,4 +183,6 @@ struct config {
bool debug;
};
+bool config_autoboot_active(const struct config *config);
+
#endif /* _TYPES_H */
OpenPOWER on IntegriCloud