+ struct param *param;
+
+ 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;
+ }
+
+ if (!config->ipmi_bootdev_mailbox &&
+ platform->ipmi_mailbox_original_config) {
+ param = param_list_get_param(platform->params,
+ "petitboot,bootdevs");
+ /* Restore old boot order if unmodified */
+ if (!param->modified) {
+ param_list_set(platform->params, "petitboot,bootdevs",
+ platform->ipmi_mailbox_original_config,
+ false);
+ param->modified = false;
+ config_populate_bootdev(config, platform->params);
+ }
+ platform->clear_ipmi_boot_mailbox(platform);
+ talloc_free(platform->ipmi_mailbox_original_config);
+ platform->ipmi_mailbox_original_config = NULL;
+ }