summaryrefslogtreecommitdiffstats
path: root/src/interface/efi/efi_bofm.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/interface/efi/efi_bofm.c')
-rw-r--r--src/interface/efi/efi_bofm.c16
1 files changed, 14 insertions, 2 deletions
diff --git a/src/interface/efi/efi_bofm.c b/src/interface/efi/efi_bofm.c
index 8a8489bd8..4982b22cc 100644
--- a/src/interface/efi/efi_bofm.c
+++ b/src/interface/efi/efi_bofm.c
@@ -387,7 +387,7 @@ static struct efi_driver efi_bofm_driver =
* Install EFI BOFM driver
*
*/
-static void efi_bofm_driver_init ( void ) {
+static void efi_bofm_driver_startup ( void ) {
struct efi_driver *efidrv = &efi_bofm_driver;
int rc;
@@ -401,7 +401,19 @@ static void efi_bofm_driver_init ( void ) {
DBGC ( efidrv, "EFIBOFM driver installed\n" );
}
+/**
+ * Shut down EFI BOFM driver
+ *
+ * @v booting System is shutting down for OS boot
+ */
+static void efi_bofm_driver_shutdown ( int booting __unused ) {
+ struct efi_driver *efidrv = &efi_bofm_driver;
+
+ efi_driver_uninstall ( efidrv );
+}
+
/** EFI BOFM startup function */
struct startup_fn startup_bofm __startup_fn ( STARTUP_EARLY ) = {
- .startup = efi_bofm_driver_init,
+ .startup = efi_bofm_driver_startup,
+ .shutdown = efi_bofm_driver_shutdown,
};