aboutsummaryrefslogtreecommitdiffstats
path: root/src/interface/efi
diff options
context:
space:
mode:
authorMichael Brown <mcb30@ipxe.org>2018-03-26 11:31:41 +0100
committerMichael Brown <mcb30@ipxe.org>2018-03-26 11:31:41 +0100
commit331ac451e7bcbe49f8fad16f5b6ea5330c9c169b (patch)
treeedbc901a5458147388a3c1e4573e9676adb91fed /src/interface/efi
parentbaaf50017d1a5e7a5a029a00e1f90ecfcb4336f5 (diff)
downloadipxe-331ac451e7bcbe49f8fad16f5b6ea5330c9c169b.tar.gz
[efi] Release SNP devices before starting SAN boot image
Release SNP devices to allow the SAN booted image to use our EFI_SIMPLE_NETWORK_PROTOCOL instance, and to ensure that the image is started at TPL_APPLICATION. Signed-off-by: Michael Brown <mcb30@ipxe.org>
Diffstat (limited to 'src/interface/efi')
-rw-r--r--src/interface/efi/efi_block.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/interface/efi/efi_block.c b/src/interface/efi/efi_block.c
index c6445ab6c..91f830a11 100644
--- a/src/interface/efi/efi_block.c
+++ b/src/interface/efi/efi_block.c
@@ -638,6 +638,9 @@ static int efi_block_boot ( unsigned int drive, const char *filename ) {
goto err_sandev_find;
}
+ /* Release SNP devices */
+ efi_snp_release();
+
/* Connect all possible protocols */
efi_block_connect ( sandev );
@@ -673,6 +676,7 @@ static int efi_block_boot ( unsigned int drive, const char *filename ) {
bs->FreePool ( handles );
err_locate_file_systems:
+ efi_snp_claim();
err_sandev_find:
return rc;
}