diff --git a/NetworkPkg/Ip6Dxe/Ip6Impl.c b/NetworkPkg/Ip6Dxe/Ip6Impl.c index a4bfd0f9a3..5fbb81cd2a 100644 --- a/NetworkPkg/Ip6Dxe/Ip6Impl.c +++ b/NetworkPkg/Ip6Dxe/Ip6Impl.c @@ -61,7 +61,6 @@ EfiIp6GetModeData ( return EFI_INVALID_PARAMETER; } - OldTpl = gBS->RaiseTPL (TPL_CALLBACK); IpInstance = IP6_INSTANCE_FROM_PROTOCOL (This); IpSb = IpInstance->Service; IpIf = IpInstance->Interface; @@ -70,6 +69,8 @@ EfiIp6GetModeData ( return EFI_INVALID_PARAMETER; } + OldTpl = gBS->RaiseTPL (TPL_CALLBACK); + if (Ip6ModeData != NULL) { // // IsStarted is "whether the EfiIp6Configure has been called". diff --git a/NetworkPkg/SnpDxe/Get_status.c b/NetworkPkg/SnpDxe/Get_status.c index 14b678fd36..2097fbcbaa 100644 --- a/NetworkPkg/SnpDxe/Get_status.c +++ b/NetworkPkg/SnpDxe/Get_status.c @@ -216,12 +216,12 @@ SnpUndi32GetStatus ( Snp = EFI_SIMPLE_NETWORK_DEV_FROM_THIS (This); - OldTpl = gBS->RaiseTPL (TPL_CALLBACK); - if (Snp == NULL) { return EFI_DEVICE_ERROR; } + OldTpl = gBS->RaiseTPL (TPL_CALLBACK); + switch (Snp->Mode.State) { case EfiSimpleNetworkInitialized: break; diff --git a/NetworkPkg/SnpDxe/Transmit.c b/NetworkPkg/SnpDxe/Transmit.c index e2c7467b86..7947cde436 100644 --- a/NetworkPkg/SnpDxe/Transmit.c +++ b/NetworkPkg/SnpDxe/Transmit.c @@ -287,12 +287,12 @@ SnpUndi32Transmit ( Snp = EFI_SIMPLE_NETWORK_DEV_FROM_THIS (This); - OldTpl = gBS->RaiseTPL (TPL_CALLBACK); - if (Snp == NULL) { return EFI_DEVICE_ERROR; } + OldTpl = gBS->RaiseTPL (TPL_CALLBACK); + switch (Snp->Mode.State) { case EfiSimpleNetworkInitialized: break;