summaryrefslogtreecommitdiffstats
path: root/NetworkPkg
diff options
context:
space:
mode:
Diffstat (limited to 'NetworkPkg')
-rw-r--r--NetworkPkg/SnpDxe/Snp.c6
-rw-r--r--NetworkPkg/SnpDxe/SnpDxe.inf2
2 files changed, 6 insertions, 2 deletions
diff --git a/NetworkPkg/SnpDxe/Snp.c b/NetworkPkg/SnpDxe/Snp.c
index 95361c3cd3..09d6c8fc99 100644
--- a/NetworkPkg/SnpDxe/Snp.c
+++ b/NetworkPkg/SnpDxe/Snp.c
@@ -32,6 +32,10 @@ SnpNotifyExitBootServices (
//
PxeShutdown (Snp);
PxeStop (Snp);
+
+ // Since BeforeExitBootServices is run on each call, close event
+ // to prevent reentry.
+ gBS->CloseEvent (Event);
}
/**
@@ -655,7 +659,7 @@ SimpleNetworkDriverStart (
TPL_CALLBACK,
SnpNotifyExitBootServices,
Snp,
- &gEfiEventExitBootServicesGuid,
+ &gEfiEventBeforeExitBootServicesGuid,
&Snp->ExitBootServicesEvent
);
if (EFI_ERROR (Status)) {
diff --git a/NetworkPkg/SnpDxe/SnpDxe.inf b/NetworkPkg/SnpDxe/SnpDxe.inf
index d16f1888b3..e1afd46dfe 100644
--- a/NetworkPkg/SnpDxe/SnpDxe.inf
+++ b/NetworkPkg/SnpDxe/SnpDxe.inf
@@ -65,7 +65,7 @@
NetLib
[Guids]
- gEfiEventExitBootServicesGuid ## SOMETIMES_CONSUMES ## Event
+ gEfiEventBeforeExitBootServicesGuid ## SOMETIMES_CONSUMES ## Event
[Protocols]
gEfiSimpleNetworkProtocolGuid ## BY_START