diff options
author | Nickle Wang <nicklew@nvidia.com> | 2023-07-03 20:20:28 +0800 |
---|---|---|
committer | mergify[bot] <37929162+mergify[bot]@users.noreply.github.com> | 2023-07-06 13:25:15 +0000 |
commit | 98ab6e8718de5fabb3ecbc3e8e87e72782d47170 (patch) | |
tree | 0e30082d51592f8af38e53339725fa557d47d277 | |
parent | af8859bce2ffa8d72d8fb30149a0ef6423a8cc47 (diff) | |
download | edk2-98ab6e8718de5fabb3ecbc3e8e87e72782d47170.tar.gz |
RedfishPkg/RedfishRestExDxe: fix CPU exception in RedfishRestExDxe
RedfishRestExDxe driver failed to uninstall service binding protocol
when driver binding stop is called. Application drivers may still
use RedfishRestExDxe after it is disconnected in system.
Signed-off-by: Nickle Wang <nicklew@nvidia.com>
Cc: Abner Chang <abner.chang@amd.com>
Cc: Igor Kulchytskyy <igork@ami.com>
Cc: Nick Ramirez <nramirez@nvidia.com>
Reviewed-by: Abner Chang <abner.chang@amd.com>
-rw-r--r-- | RedfishPkg/RedfishRestExDxe/RedfishRestExDriver.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/RedfishPkg/RedfishRestExDxe/RedfishRestExDriver.c b/RedfishPkg/RedfishRestExDxe/RedfishRestExDriver.c index ad65ae213a..7036aed426 100644 --- a/RedfishPkg/RedfishRestExDxe/RedfishRestExDriver.c +++ b/RedfishPkg/RedfishRestExDxe/RedfishRestExDriver.c @@ -3,6 +3,7 @@ Copyright (c) 2019, Intel Corporation. All rights reserved.<BR>
(C) Copyright 2020 Hewlett Packard Enterprise Development LP<BR>
+ Copyright (c) 2023, NVIDIA CORPORATION & AFFILIATES. All rights reserved.
SPDX-License-Identifier: BSD-2-Clause-Patent
@@ -57,6 +58,7 @@ RestExDestroyChildEntryInHandleBuffer ( ChildHandleBuffer = ((RESTEX_DESTROY_CHILD_IN_HANDLE_BUF_CONTEXT *)Context)->ChildHandleBuffer;
if (!NetIsInHandleBuffer (Instance->ChildHandle, NumberOfChildren, ChildHandleBuffer)) {
+ RemoveEntryList (&Instance->Link);
return EFI_SUCCESS;
}
@@ -563,7 +565,7 @@ RedfishRestExDriverBindingStop ( );
}
- if ((NumberOfChildren == 0) && IsListEmpty (&RestExSb->RestExChildrenList)) {
+ if (IsListEmpty (&RestExSb->RestExChildrenList)) {
gBS->UninstallProtocolInterface (
NicHandle,
&gEfiRestExServiceBindingProtocolGuid,
|