]> git.ozlabs.org Git - petitboot/commitdiff
discover/device-handler: Disable safe mode warning on reinit
authorSamuel Mendoza-Jonas <sam@mendozajonas.com>
Wed, 23 Aug 2017 01:05:58 +0000 (11:05 +1000)
committerSamuel Mendoza-Jonas <sam@mendozajonas.com>
Tue, 29 Aug 2017 04:11:24 +0000 (14:11 +1000)
If a user pressed "Rescan Devices" in safe mode the reinit would
complete successfully, but the big warning that safe mode is active
would remain. On reinit clear the safe_mode flag properly.

This has no functional change aside from clearing the UI warning - the
IPMI override remains active until cleared or a successful boot occurs.

Signed-off-by: Samuel Mendoza-Jonas <sam@mendozajonas.com>
(cherry picked from commit b9b5fa357e5921eb752e62f7146339007d9f767f)

discover/device-handler.c

index f1a392f4edca19e66762b51f8817d5b7bd89d045..33e3c8cfdf03e99e699efe391b973a0337ad34c6 100644 (file)
@@ -18,6 +18,7 @@
 #include <process/process.h>
 #include <url/url.h>
 #include <i18n/i18n.h>
+#include <pb-config/pb-config.h>
 
 #include <sys/sysmacros.h>
 #include <sys/types.h>
@@ -367,6 +368,7 @@ void device_handler_reinit(struct device_handler *handler)
 {
        struct discover_boot_option *opt, *tmp;
        struct ramdisk_device *ramdisk;
+       struct config *config;
        unsigned int i;
 
        device_handler_cancel_default(handler);
@@ -405,6 +407,14 @@ void device_handler_reinit(struct device_handler *handler)
 
        set_env_variables(config_get());
 
+       /* If the safe mode warning was active disable it now */
+       if (config_get()->safe_mode) {
+               config = config_copy(handler, config_get());
+               config->safe_mode = false;
+               config_set(config);
+               discover_server_notify_config(handler->server, config);
+       }
+
        device_handler_reinit_sources(handler);
 }