RedfishPkg: fix config handler driver issues

Bug fix:
- function stack fault
- config handler driver requires the dependency of Redfish Credential
  Protocol
- incorrect caller id installation when failed to perform init()
- fix typo

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>
This commit is contained in:
Nickle Wang 2023-03-27 22:34:43 +08:00 committed by mergify[bot]
parent 0cd7542a69
commit e3aba976f6
2 changed files with 8 additions and 6 deletions

View File

@ -2,6 +2,7 @@
The common code of EDKII Redfish Configuration Handler driver.
(C) Copyright 2021 Hewlett Packard Enterprise Development LP<BR>
Copyright (c) 2023, NVIDIA CORPORATION & AFFILIATES. All rights reserved.
SPDX-License-Identifier: BSD-2-Clause-Patent
@ -9,7 +10,7 @@
#include "RedfishConfigHandlerCommon.h"
REDFISH_CONFIG_DRIVER_DATA gRedfishConfigData; // Only one Redfish service supproted
REDFISH_CONFIG_DRIVER_DATA gRedfishConfigData; // Only one Redfish service supported
// on platform for the BIOS
// Redfish configuration.
EFI_EVENT gEndOfDxeEvent = NULL;
@ -34,7 +35,7 @@ RedfishConfigOnEndOfDxe (
Status = gCredential->StopService (gCredential, ServiceStopTypeSecureBootDisabled);
if (EFI_ERROR (Status) && (Status != EFI_UNSUPPORTED)) {
DEBUG ((DEBUG_ERROR, "Redfish credential protocol faied to stop service on EndOfDxe: %r", Status));
DEBUG ((DEBUG_ERROR, "Redfish credential protocol failed to stop service on EndOfDxe: %r", Status));
}
//
@ -62,7 +63,7 @@ RedfishConfigOnExitBootService (
Status = gCredential->StopService (gCredential, ServiceStopTypeExitBootService);
if (EFI_ERROR (Status) && (Status != EFI_UNSUPPORTED)) {
DEBUG ((DEBUG_ERROR, "Redfish credential protocol faied to stop service on ExitBootService: %r", Status));
DEBUG ((DEBUG_ERROR, "Redfish credential protocol failed to stop service on ExitBootService: %r", Status));
}
}
@ -225,7 +226,7 @@ RedfishConfigHandlerInitialization (
UINTN NumberOfHandles;
EDKII_REDFISH_CONFIG_HANDLER_PROTOCOL *ConfigHandler;
UINTN Index;
UINT32 Id;
UINT32 *Id;
Status = gBS->LocateHandleBuffer (
ByProtocol,
@ -257,6 +258,7 @@ RedfishConfigHandlerInitialization (
Status = ConfigHandler->Init (ConfigHandler, &gRedfishConfigData.RedfishServiceInfo);
if (EFI_ERROR (Status) && (Status != EFI_ALREADY_STARTED)) {
DEBUG ((DEBUG_ERROR, "ERROR: Failed to init Redfish config handler %p.\n", ConfigHandler));
continue;
}
//

View File

@ -4,6 +4,7 @@
#
# Copyright (c) 2019, Intel Corporation. All rights reserved.<BR>
# (C) Copyright 2021 Hewlett Packard Enterprise Development LP<BR>
# Copyright (c) 2023, NVIDIA CORPORATION & AFFILIATES. All rights reserved.
#
# SPDX-License-Identifier: BSD-2-Clause-Patent
#
@ -56,5 +57,4 @@
gEfiEndOfDxeEventGroupGuid ## CONSUMES ## Event
[Depex]
TRUE
gEdkIIRedfishCredentialProtocolGuid