* [PATCH edk2-platforms v1 0/2] Optimize type 9
@ 2020-06-08 14:09 huangming23
2020-06-08 14:09 ` [PATCH edk2-platforms v1 1/2] Silicon/Hisilicon/Smbios: correct coding style issue in " Ming Huang
2020-06-08 14:09 ` [PATCH edk2-platforms v1 2/2] Silicon/Hisilicon/Smbios: Optimize " Ming Huang
0 siblings, 2 replies; 6+ messages in thread
From: huangming23 @ 2020-06-08 14:09 UTC (permalink / raw)
To: devel, leif, ard.biesheuvel
Cc: lidongzhan, huangming23, songdongkuang, wanghuiqiang, qiuliangen,
shenlimei, xiewenyi2
Break down AddSmbiosType9Entry to three funtions for optimizing
Smbios type 9.
Ming Huang (2):
Silicon/Hisilicon/Smbios: correct coding style issue in type 9
Silicon/Hisilicon/Smbios: Optimize type 9
Silicon/Hisilicon/Drivers/Smbios/AddSmbiosType9/AddSmbiosType9.c | 325 +++++++++++---------
1 file changed, 174 insertions(+), 151 deletions(-)
--
2.8.1
^ permalink raw reply [flat|nested] 6+ messages in thread
* [PATCH edk2-platforms v1 1/2] Silicon/Hisilicon/Smbios: correct coding style issue in type 9
2020-06-08 14:09 [PATCH edk2-platforms v1 0/2] Optimize type 9 huangming23
@ 2020-06-08 14:09 ` Ming Huang
2020-06-08 15:41 ` Leif Lindholm
2020-06-08 14:09 ` [PATCH edk2-platforms v1 2/2] Silicon/Hisilicon/Smbios: Optimize " Ming Huang
1 sibling, 1 reply; 6+ messages in thread
From: Ming Huang @ 2020-06-08 14:09 UTC (permalink / raw)
To: devel, leif, ard.biesheuvel
Cc: lidongzhan, huangming23, songdongkuang, wanghuiqiang, qiuliangen,
shenlimei, xiewenyi2
This patch is prepare for optimizing Smbios type 9.
Signed-off-by: Ming Huang <huangming23@huawei.com>
---
Silicon/Hisilicon/Drivers/Smbios/AddSmbiosType9/AddSmbiosType9.c | 286 ++++++++++----------
1 file changed, 146 insertions(+), 140 deletions(-)
diff --git a/Silicon/Hisilicon/Drivers/Smbios/AddSmbiosType9/AddSmbiosType9.c b/Silicon/Hisilicon/Drivers/Smbios/AddSmbiosType9/AddSmbiosType9.c
index 87a06a2..2398c6b 100644
--- a/Silicon/Hisilicon/Drivers/Smbios/AddSmbiosType9/AddSmbiosType9.c
+++ b/Silicon/Hisilicon/Drivers/Smbios/AddSmbiosType9/AddSmbiosType9.c
@@ -1,6 +1,6 @@
/** @file
*
-* Copyright (c) 2015, Hisilicon Limited. All rights reserved.
+* Copyright (c) 2015 - 2020, Hisilicon Limited. All rights reserved.
* Copyright (c) 2015, Linaro Limited. All rights reserved.
*
* SPDX-License-Identifier: BSD-2-Clause-Patent
@@ -14,178 +14,184 @@ extern UINT8 OemGetPcieSlotNumber ();
VOID
EFIAPI
-UpdateSmbiosType9Info(
+UpdateSmbiosType9Info (
IN OUT SMBIOS_TABLE_TYPE9 *Type9Record
)
{
- EFI_STATUS Status;
- UINTN HandleIndex;
- EFI_HANDLE *HandleBuffer;
- UINTN HandleCount;
- EFI_PCI_IO_PROTOCOL *PciIo;
- UINTN SegmentNumber;
- UINTN BusNumber;
- UINTN DeviceNumber;
- UINTN FunctionNumber;
- UINTN Index;
- REPORT_PCIEDIDVID2BMC ReportPcieDidVid[PCIEDEVICE_REPORT_MAX];
-
- GetPciDidVid ((VOID *) ReportPcieDidVid);
-
- Status = gBS->LocateHandleBuffer (
- ByProtocol,
- &gEfiPciIoProtocolGuid,
- NULL,
- &HandleCount,
- &HandleBuffer
- );
- if(EFI_ERROR(Status)) {
- DEBUG((EFI_D_ERROR, " Locate gEfiPciIoProtocol Failed.\n"));
- gBS->FreePool ((VOID *)HandleBuffer);
- return;
+ EFI_STATUS Status;
+ UINTN HandleIndex;
+ EFI_HANDLE *HandleBuffer;
+ UINTN HandleCount;
+ EFI_PCI_IO_PROTOCOL *PciIo;
+ UINTN SegmentNumber;
+ UINTN BusNumber;
+ UINTN DeviceNumber;
+ UINTN FunctionNumber;
+ UINTN Index;
+ REPORT_PCIEDIDVID2BMC ReportPcieDidVid[PCIEDEVICE_REPORT_MAX];
+
+ GetPciDidVid ((VOID *)ReportPcieDidVid);
+
+ Status = gBS->LocateHandleBuffer (
+ ByProtocol,
+ &gEfiPciIoProtocolGuid,
+ NULL,
+ &HandleCount,
+ &HandleBuffer
+ );
+ if (EFI_ERROR (Status)) {
+ DEBUG ((DEBUG_ERROR, " Locate gEfiPciIoProtocol Failed.\n"));
+ gBS->FreePool ((VOID *)HandleBuffer);
+ return;
+ }
+
+ for (HandleIndex = 0; HandleIndex < HandleCount; HandleIndex++) {
+ Status = gBS->HandleProtocol (
+ HandleBuffer[HandleIndex],
+ &gEfiPciIoProtocolGuid,
+ (VOID **)&PciIo
+ );
+ if (EFI_ERROR (Status)) {
+ DEBUG ((DEBUG_ERROR, "[%a]:[%dL] Status : %r\n", __FUNCTION__, __LINE__, Status));
+ continue;
}
- for (HandleIndex = 0; HandleIndex < HandleCount; HandleIndex++) {
- Status = gBS->HandleProtocol (
- HandleBuffer[HandleIndex],
- &gEfiPciIoProtocolGuid,
- (VOID **)&PciIo
- );
- if (EFI_ERROR (Status)) {
- DEBUG((EFI_D_ERROR, "[%a]:[%dL] Status : %r\n", __FUNCTION__, __LINE__, Status));
- continue;
- }
- (VOID)PciIo->GetLocation(PciIo, &SegmentNumber, &BusNumber, &DeviceNumber, &FunctionNumber);
- for(Index = 0; Index < sizeof(ReportPcieDidVid) / sizeof(REPORT_PCIEDIDVID2BMC); Index++){
- if (Type9Record->SlotID == ReportPcieDidVid[Index].Slot + 1) {
- if((BusNumber == ReportPcieDidVid[Index].Bus) && (DeviceNumber == ReportPcieDidVid[Index].Device)) {
- DEBUG((EFI_D_ERROR,"PCIe device plot in slot Seg %d bdf %d %d %d\r\n",SegmentNumber,BusNumber,DeviceNumber,FunctionNumber));
- Type9Record->SegmentGroupNum = SegmentNumber;
- Type9Record->BusNum = BusNumber;
- Type9Record->DevFuncNum = (DeviceNumber << 3) | FunctionNumber;
- Type9Record->CurrentUsage = SlotUsageInUse;
- break;
- }
- }
+ (VOID)PciIo->GetLocation (PciIo, &SegmentNumber, &BusNumber, &DeviceNumber, &FunctionNumber);
+ for (Index = 0; Index < sizeof(ReportPcieDidVid) / sizeof(REPORT_PCIEDIDVID2BMC); Index++) {
+ if (Type9Record->SlotID == ReportPcieDidVid[Index].Slot + 1) {
+ if ((BusNumber == ReportPcieDidVid[Index].Bus) && (DeviceNumber == ReportPcieDidVid[Index].Device)) {
+ DEBUG ((DEBUG_ERROR, "PCIe device plot in slot Seg %d bdf %d %d %d\r\n",
+ SegmentNumber, BusNumber, DeviceNumber, FunctionNumber));
+ Type9Record->SegmentGroupNum = SegmentNumber;
+ Type9Record->BusNum = BusNumber;
+ Type9Record->DevFuncNum = (DeviceNumber << 3) | FunctionNumber;
+ Type9Record->CurrentUsage = SlotUsageInUse;
+ break;
}
+ }
}
- gBS->FreePool ((VOID *)HandleBuffer);
- return;
+ }
+
+ gBS->FreePool ((VOID *)HandleBuffer);
+ return;
}
+
EFI_STATUS
EFIAPI
AddSmbiosType9Entry (
IN EFI_HANDLE ImageHandle,
- IN EFI_SYSTEM_TABLE *SystemTable
+ IN EFI_SYSTEM_TABLE *SystemTable
)
{
- EFI_STATUS Status;
- EFI_SMBIOS_TYPE SmbiosType;
- EFI_SMBIOS_HANDLE SmbiosHandle;
- EFI_SMBIOS_PROTOCOL *Smbios;
- EFI_SMBIOS_TABLE_HEADER *Record;
- SMBIOS_TABLE_TYPE9 *Type9Record;
- SMBIOS_TABLE_TYPE9 *SmbiosRecord = NULL;
- CHAR8 *OptionalStrStart;
-
- UINT8 SmbiosAddType9Number;
- UINT8 Index;
-
- CHAR16 *SlotDesignation = NULL;
- UINTN SlotDesignationStrLen;
-
- Status = gBS->LocateProtocol (
+ EFI_STATUS Status;
+ EFI_SMBIOS_TYPE SmbiosType;
+ EFI_SMBIOS_HANDLE SmbiosHandle;
+ EFI_SMBIOS_PROTOCOL *Smbios;
+ EFI_SMBIOS_TABLE_HEADER *Record;
+ SMBIOS_TABLE_TYPE9 *Type9Record;
+ SMBIOS_TABLE_TYPE9 *SmbiosRecord = NULL;
+ CHAR8 *OptionalStrStart;
+
+ UINT8 SmbiosAddType9Number;
+ UINT8 Index;
+
+ CHAR16 *SlotDesignation = NULL;
+ UINTN SlotDesignationStrLen;
+
+ Status = gBS->LocateProtocol (
&gEfiSmbiosProtocolGuid,
NULL,
(VOID **) &Smbios
);
- if (EFI_ERROR (Status)) {
- DEBUG((EFI_D_ERROR, "[%a]:[%dL] LocateProtocol Failed. Status : %r\n", __FUNCTION__, __LINE__, Status));
- return Status;
+ if (EFI_ERROR (Status)) {
+ DEBUG ((DEBUG_ERROR, "[%a]:[%dL] LocateProtocol Failed. Status : %r\n",
+ __FUNCTION__, __LINE__, Status));
+ return Status;
+ }
+
+ do {
+ SmbiosHandle = SMBIOS_HANDLE_PI_RESERVED;
+ SmbiosType = EFI_SMBIOS_TYPE_SYSTEM_SLOTS;
+ Status = Smbios->GetNext (Smbios, &SmbiosHandle, &SmbiosType, &Record, NULL);
+ if (!EFI_ERROR (Status)) {
+ Status = Smbios->Remove (Smbios, SmbiosHandle);
+ if (EFI_ERROR (Status)) {
+ DEBUG ((DEBUG_ERROR, "[%a]:[%dL] Remove System Slot Failed. Status : %r\n",
+ __FUNCTION__, __LINE__, Status));
+ break;
+ }
}
+ } while (SmbiosHandle != SMBIOS_HANDLE_PI_RESERVED);
- do {
- SmbiosHandle = SMBIOS_HANDLE_PI_RESERVED;
- SmbiosType = EFI_SMBIOS_TYPE_SYSTEM_SLOTS;
- Status = Smbios->GetNext (Smbios, &SmbiosHandle, &SmbiosType, &Record, NULL);
- if (!EFI_ERROR(Status)) {
- Status = Smbios->Remove (Smbios, SmbiosHandle);
- if (EFI_ERROR(Status)) {
- DEBUG((EFI_D_ERROR, "[%a]:[%dL] Remove System Slot Failed. Status : %r\n", __FUNCTION__, __LINE__, Status));
- break;
- }
- }
- } while (SmbiosHandle != SMBIOS_HANDLE_PI_RESERVED);
-
- SmbiosAddType9Number = OemGetPcieSlotNumber();
+ SmbiosAddType9Number = OemGetPcieSlotNumber ();
- for (Index = 0; Index < SmbiosAddType9Number; Index++)
- {
- if (gPcieSlotInfo[Index].Hdr.Type != EFI_SMBIOS_TYPE_SYSTEM_SLOTS)
- {
- continue;
- }
-
- Type9Record = &gPcieSlotInfo[Index];
-
- UpdateSmbiosType9Info (Type9Record);
- SlotDesignation = AllocateZeroPool ((sizeof (CHAR16)) * SMBIOS_STRING_MAX_LENGTH);
- if (NULL == SlotDesignation)
- {
- Status = EFI_OUT_OF_RESOURCES;
- DEBUG((EFI_D_ERROR, "[%a]:[%dL] AllocateZeroPool Failed. Status : %r\n", __FUNCTION__, __LINE__, Status));
-
- goto Exit;
- }
+ for (Index = 0; Index < SmbiosAddType9Number; Index++) {
+ if (gPcieSlotInfo[Index].Hdr.Type != EFI_SMBIOS_TYPE_SYSTEM_SLOTS) {
+ continue;
+ }
- SlotDesignationStrLen = UnicodeSPrint (SlotDesignation, SMBIOS_STRING_MAX_LENGTH - 1, L"PCIE Slot%d", Type9Record->SlotID);
+ Type9Record = &gPcieSlotInfo[Index];
- //
- // Two zeros following the last string.
- //
- SmbiosRecord = AllocateZeroPool(sizeof (SMBIOS_TABLE_TYPE9) + SlotDesignationStrLen + 1 + 1);
- if(NULL == SmbiosRecord)
- {
- Status = EFI_OUT_OF_RESOURCES;
- DEBUG((EFI_D_ERROR, "[%a]:[%dL] AllocateZeroPool Failed. Status : %r\n", __FUNCTION__, __LINE__, Status));
+ UpdateSmbiosType9Info (Type9Record);
+ SlotDesignation = AllocateZeroPool ((sizeof (CHAR16)) * SMBIOS_STRING_MAX_LENGTH);
+ if (SlotDesignation == NULL) {
+ Status = EFI_OUT_OF_RESOURCES;
+ DEBUG ((DEBUG_ERROR, "[%a]:[%dL] AllocateZeroPool Failed. Status : %r\n",
+ __FUNCTION__, __LINE__, Status));
- goto Exit;
- }
+ goto Exit;
+ }
- (VOID)CopyMem(SmbiosRecord, Type9Record, sizeof (SMBIOS_TABLE_TYPE9));
+ SlotDesignationStrLen = UnicodeSPrint (
+ SlotDesignation,
+ SMBIOS_STRING_MAX_LENGTH - 1,
+ L"PCIE Slot%d",
+ Type9Record->SlotID);
+
+ //
+ // Two zeros following the last string.
+ //
+ SmbiosRecord = AllocateZeroPool (sizeof (SMBIOS_TABLE_TYPE9) + SlotDesignationStrLen + 1 + 1);
+ if (SmbiosRecord == NULL) {
+ Status = EFI_OUT_OF_RESOURCES;
+ DEBUG ((DEBUG_ERROR, "[%a]:[%dL] AllocateZeroPool Failed. Status : %r\n",
+ __FUNCTION__, __LINE__, Status));
+
+ goto Exit;
+ }
- SmbiosRecord->Hdr.Length = sizeof (SMBIOS_TABLE_TYPE9);
+ (VOID)CopyMem (SmbiosRecord, Type9Record, sizeof (SMBIOS_TABLE_TYPE9));
- OptionalStrStart = (CHAR8 *)(SmbiosRecord + 1);
- UnicodeStrToAsciiStr(SlotDesignation, OptionalStrStart);
+ SmbiosRecord->Hdr.Length = sizeof (SMBIOS_TABLE_TYPE9);
- //
- // Now we have got the full smbios record, call smbios protocol to add this record.
- //
- SmbiosHandle = SMBIOS_HANDLE_PI_RESERVED;
- Status = Smbios->Add (Smbios, NULL, &SmbiosHandle, (EFI_SMBIOS_TABLE_HEADER *)SmbiosRecord);
- if(EFI_ERROR(Status))
- {
- DEBUG((EFI_D_ERROR, "[%a]:[%dL] Smbios Type09 Table Log Failed! %r \n", __FUNCTION__, __LINE__, Status));
- goto Exit;
- }
+ OptionalStrStart = (CHAR8 *)(SmbiosRecord + 1);
+ UnicodeStrToAsciiStr (SlotDesignation, OptionalStrStart);
- FreePool(SmbiosRecord);
- FreePool(SlotDesignation);
+ //
+ // Now we have got the full smbios record, call smbios protocol to add this record.
+ //
+ SmbiosHandle = SMBIOS_HANDLE_PI_RESERVED;
+ Status = Smbios->Add (Smbios, NULL, &SmbiosHandle, (EFI_SMBIOS_TABLE_HEADER *)SmbiosRecord);
+ if (EFI_ERROR (Status)) {
+ DEBUG ((DEBUG_ERROR, "[%a]:[%dL] Smbios Type09 Table Log Failed! %r \n",
+ __FUNCTION__, __LINE__, Status));
+ goto Exit;
}
- return EFI_SUCCESS;
+ FreePool (SmbiosRecord);
+ FreePool (SlotDesignation);
+ }
+
+ return EFI_SUCCESS;
Exit:
- if(SmbiosRecord != NULL)
- {
- FreePool(SmbiosRecord);
- }
+ if(SmbiosRecord != NULL) {
+ FreePool (SmbiosRecord);
+ }
- if(SlotDesignation != NULL)
- {
- FreePool(SlotDesignation);
- }
+ if(SlotDesignation != NULL) {
+ FreePool (SlotDesignation);
+ }
- return Status;
+ return Status;
}
--
2.8.1
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [PATCH edk2-platforms v1 2/2] Silicon/Hisilicon/Smbios: Optimize type 9
2020-06-08 14:09 [PATCH edk2-platforms v1 0/2] Optimize type 9 huangming23
2020-06-08 14:09 ` [PATCH edk2-platforms v1 1/2] Silicon/Hisilicon/Smbios: correct coding style issue in " Ming Huang
@ 2020-06-08 14:09 ` Ming Huang
2020-06-08 19:09 ` Leif Lindholm
1 sibling, 1 reply; 6+ messages in thread
From: Ming Huang @ 2020-06-08 14:09 UTC (permalink / raw)
To: devel, leif, ard.biesheuvel
Cc: lidongzhan, huangming23, songdongkuang, wanghuiqiang, qiuliangen,
shenlimei, xiewenyi2
Break down AddSmbiosType9Entry to three funtions for optimizing
Smbios type 9.
Signed-off-by: Ming Huang <huangming23@huawei.com>
---
Silicon/Hisilicon/Drivers/Smbios/AddSmbiosType9/AddSmbiosType9.c | 173 +++++++++++---------
1 file changed, 95 insertions(+), 78 deletions(-)
diff --git a/Silicon/Hisilicon/Drivers/Smbios/AddSmbiosType9/AddSmbiosType9.c b/Silicon/Hisilicon/Drivers/Smbios/AddSmbiosType9/AddSmbiosType9.c
index 2398c6b..57e049a 100644
--- a/Silicon/Hisilicon/Drivers/Smbios/AddSmbiosType9/AddSmbiosType9.c
+++ b/Silicon/Hisilicon/Drivers/Smbios/AddSmbiosType9/AddSmbiosType9.c
@@ -75,38 +75,16 @@ UpdateSmbiosType9Info (
return;
}
-EFI_STATUS
-EFIAPI
-AddSmbiosType9Entry (
- IN EFI_HANDLE ImageHandle,
- IN EFI_SYSTEM_TABLE *SystemTable
+STATIC
+VOID
+EmptySmbiosType9 (
+ EFI_SMBIOS_PROTOCOL *Smbios
)
{
EFI_STATUS Status;
EFI_SMBIOS_TYPE SmbiosType;
EFI_SMBIOS_HANDLE SmbiosHandle;
- EFI_SMBIOS_PROTOCOL *Smbios;
EFI_SMBIOS_TABLE_HEADER *Record;
- SMBIOS_TABLE_TYPE9 *Type9Record;
- SMBIOS_TABLE_TYPE9 *SmbiosRecord = NULL;
- CHAR8 *OptionalStrStart;
-
- UINT8 SmbiosAddType9Number;
- UINT8 Index;
-
- CHAR16 *SlotDesignation = NULL;
- UINTN SlotDesignationStrLen;
-
- Status = gBS->LocateProtocol (
- &gEfiSmbiosProtocolGuid,
- NULL,
- (VOID **) &Smbios
- );
- if (EFI_ERROR (Status)) {
- DEBUG ((DEBUG_ERROR, "[%a]:[%dL] LocateProtocol Failed. Status : %r\n",
- __FUNCTION__, __LINE__, Status));
- return Status;
- }
do {
SmbiosHandle = SMBIOS_HANDLE_PI_RESERVED;
@@ -122,76 +100,115 @@ AddSmbiosType9Entry (
}
} while (SmbiosHandle != SMBIOS_HANDLE_PI_RESERVED);
- SmbiosAddType9Number = OemGetPcieSlotNumber ();
+ return;
+}
- for (Index = 0; Index < SmbiosAddType9Number; Index++) {
- if (gPcieSlotInfo[Index].Hdr.Type != EFI_SMBIOS_TYPE_SYSTEM_SLOTS) {
- continue;
- }
+STATIC
+EFI_STATUS
+AddSmbiosType9Record (
+ EFI_SMBIOS_PROTOCOL *Smbios,
+ SMBIOS_TABLE_TYPE9 *Type9Record
+ )
+{
+ EFI_STATUS Status;
+ EFI_SMBIOS_HANDLE SmbiosHandle;
+ SMBIOS_TABLE_TYPE9 *SmbiosRecord;
+ CHAR8 *OptionalStrStart;
+ CHAR16 SlotDesignation[SMBIOS_STRING_MAX_LENGTH];
+ UINTN SlotStrLen;
+
+ SlotStrLen = UnicodeSPrint (
+ SlotDesignation,
+ SMBIOS_STRING_MAX_LENGTH * 2,
+ L"PCIE Slot%d",
+ Type9Record->SlotID);
+
+ //
+ // Two zeros following the last string.
+ //
+ SmbiosRecord = AllocateZeroPool (sizeof (SMBIOS_TABLE_TYPE9) + SlotStrLen + 1 + 1);
+ if (SmbiosRecord == NULL) {
+ DEBUG ((DEBUG_ERROR, "AllocateZeroPool Failed for SmbiosRecord.\n"));
+ return EFI_OUT_OF_RESOURCES;
+ }
- Type9Record = &gPcieSlotInfo[Index];
+ (VOID)CopyMem (SmbiosRecord, Type9Record, sizeof (SMBIOS_TABLE_TYPE9));
+ SmbiosRecord->Hdr.Length = sizeof (SMBIOS_TABLE_TYPE9);
+ OptionalStrStart = (CHAR8 *)(SmbiosRecord + 1);
+ (VOID)UnicodeStrToAsciiStr (SlotDesignation, OptionalStrStart);
- UpdateSmbiosType9Info (Type9Record);
- SlotDesignation = AllocateZeroPool ((sizeof (CHAR16)) * SMBIOS_STRING_MAX_LENGTH);
- if (SlotDesignation == NULL) {
- Status = EFI_OUT_OF_RESOURCES;
- DEBUG ((DEBUG_ERROR, "[%a]:[%dL] AllocateZeroPool Failed. Status : %r\n",
- __FUNCTION__, __LINE__, Status));
+ //
+ // Now we have got the full smbios record, call smbios protocol to add this record.
+ //
+ SmbiosHandle = SMBIOS_HANDLE_PI_RESERVED;
+ Status = Smbios->Add (Smbios, NULL, &SmbiosHandle, (EFI_SMBIOS_TABLE_HEADER *)SmbiosRecord);
+ if (EFI_ERROR (Status)) {
+ DEBUG ((DEBUG_ERROR, "Add Smbios Type09 Failed! %r\n", Status));
+ }
- goto Exit;
- }
+ FreePool (SmbiosRecord);
+ return Status;
+}
- SlotDesignationStrLen = UnicodeSPrint (
- SlotDesignation,
- SMBIOS_STRING_MAX_LENGTH - 1,
- L"PCIE Slot%d",
- Type9Record->SlotID);
-
- //
- // Two zeros following the last string.
- //
- SmbiosRecord = AllocateZeroPool (sizeof (SMBIOS_TABLE_TYPE9) + SlotDesignationStrLen + 1 + 1);
- if (SmbiosRecord == NULL) {
- Status = EFI_OUT_OF_RESOURCES;
- DEBUG ((DEBUG_ERROR, "[%a]:[%dL] AllocateZeroPool Failed. Status : %r\n",
- __FUNCTION__, __LINE__, Status));
+STATIC
+VOID
+HandleSmbiosType9 (
+ EFI_SMBIOS_PROTOCOL *Smbios
+ )
+{
+ EFI_STATUS Status;
+ SMBIOS_TABLE_TYPE9 *Type9Record;
+ UINT8 RecordCount;
+ UINT8 Index;
- goto Exit;
- }
+ RecordCount = OemGetPcieSlotNumber ();
+ if (RecordCount == 0) {
+ return;
+ }
- (VOID)CopyMem (SmbiosRecord, Type9Record, sizeof (SMBIOS_TABLE_TYPE9));
+ EmptySmbiosType9 (Smbios);
+ Status = EFI_SUCCESS;
+ for (Index = 0; Index < RecordCount; Index++) {
+ if (gPcieSlotInfo[Index].Hdr.Type != EFI_SMBIOS_TYPE_SYSTEM_SLOTS) {
+ continue;
+ }
- SmbiosRecord->Hdr.Length = sizeof (SMBIOS_TABLE_TYPE9);
+ Type9Record = &gPcieSlotInfo[Index];
- OptionalStrStart = (CHAR8 *)(SmbiosRecord + 1);
- UnicodeStrToAsciiStr (SlotDesignation, OptionalStrStart);
+ UpdateSmbiosType9Info (Type9Record);
- //
- // Now we have got the full smbios record, call smbios protocol to add this record.
- //
- SmbiosHandle = SMBIOS_HANDLE_PI_RESERVED;
- Status = Smbios->Add (Smbios, NULL, &SmbiosHandle, (EFI_SMBIOS_TABLE_HEADER *)SmbiosRecord);
+ Status = AddSmbiosType9Record (Smbios, Type9Record);
if (EFI_ERROR (Status)) {
- DEBUG ((DEBUG_ERROR, "[%a]:[%dL] Smbios Type09 Table Log Failed! %r \n",
- __FUNCTION__, __LINE__, Status));
- goto Exit;
+ break;
}
-
- FreePool (SmbiosRecord);
- FreePool (SlotDesignation);
}
- return EFI_SUCCESS;
+ return;
+}
-Exit:
- if(SmbiosRecord != NULL) {
- FreePool (SmbiosRecord);
- }
+EFI_STATUS
+EFIAPI
+AddSmbiosType9Entry (
+ IN EFI_HANDLE ImageHandle,
+ IN EFI_SYSTEM_TABLE *SystemTable
+ )
+{
+ EFI_STATUS Status;
+ EFI_SMBIOS_PROTOCOL *Smbios;
- if(SlotDesignation != NULL) {
- FreePool (SlotDesignation);
+ Status = gBS->LocateProtocol (
+ &gEfiSmbiosProtocolGuid,
+ NULL,
+ (VOID **) &Smbios
+ );
+ if (EFI_ERROR (Status)) {
+ DEBUG ((DEBUG_ERROR, "[%a]:[%dL] LocateProtocol Failed. Status : %r\n",
+ __FUNCTION__, __LINE__, Status));
+ return Status;
}
+ HandleSmbiosType9 (Smbios);
+
return Status;
}
--
2.8.1
^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [PATCH edk2-platforms v1 1/2] Silicon/Hisilicon/Smbios: correct coding style issue in type 9
2020-06-08 14:09 ` [PATCH edk2-platforms v1 1/2] Silicon/Hisilicon/Smbios: correct coding style issue in " Ming Huang
@ 2020-06-08 15:41 ` Leif Lindholm
2020-06-09 13:39 ` Ming Huang
0 siblings, 1 reply; 6+ messages in thread
From: Leif Lindholm @ 2020-06-08 15:41 UTC (permalink / raw)
To: Ming Huang
Cc: devel, ard.biesheuvel, lidongzhan, songdongkuang, wanghuiqiang,
qiuliangen, shenlimei, xiewenyi2
On Mon, Jun 08, 2020 at 22:09:56 +0800, Ming Huang wrote:
> This patch is prepare for optimizing Smbios type 9.
How?
The commit message should describe what the patch does.
(Yes, I can see with "git diff -w" that this is mainly
whitespace/indentation fixes and wrapping of long lines, but the
message should state this.)
Also, This patch changes from EFI_D_ERROR to DEBUG_ERROR. This is
absolutely an improvement, but needs to be mentioned in commit
message.
Regards,
Leif
> Signed-off-by: Ming Huang <huangming23@huawei.com>
> ---
> Silicon/Hisilicon/Drivers/Smbios/AddSmbiosType9/AddSmbiosType9.c | 286 ++++++++++----------
> 1 file changed, 146 insertions(+), 140 deletions(-)
>
> diff --git a/Silicon/Hisilicon/Drivers/Smbios/AddSmbiosType9/AddSmbiosType9.c b/Silicon/Hisilicon/Drivers/Smbios/AddSmbiosType9/AddSmbiosType9.c
> index 87a06a2..2398c6b 100644
> --- a/Silicon/Hisilicon/Drivers/Smbios/AddSmbiosType9/AddSmbiosType9.c
> +++ b/Silicon/Hisilicon/Drivers/Smbios/AddSmbiosType9/AddSmbiosType9.c
> @@ -1,6 +1,6 @@
> /** @file
> *
> -* Copyright (c) 2015, Hisilicon Limited. All rights reserved.
> +* Copyright (c) 2015 - 2020, Hisilicon Limited. All rights reserved.
> * Copyright (c) 2015, Linaro Limited. All rights reserved.
> *
> * SPDX-License-Identifier: BSD-2-Clause-Patent
> @@ -14,178 +14,184 @@ extern UINT8 OemGetPcieSlotNumber ();
>
> VOID
> EFIAPI
> -UpdateSmbiosType9Info(
> +UpdateSmbiosType9Info (
> IN OUT SMBIOS_TABLE_TYPE9 *Type9Record
> )
> {
> - EFI_STATUS Status;
> - UINTN HandleIndex;
> - EFI_HANDLE *HandleBuffer;
> - UINTN HandleCount;
> - EFI_PCI_IO_PROTOCOL *PciIo;
> - UINTN SegmentNumber;
> - UINTN BusNumber;
> - UINTN DeviceNumber;
> - UINTN FunctionNumber;
> - UINTN Index;
> - REPORT_PCIEDIDVID2BMC ReportPcieDidVid[PCIEDEVICE_REPORT_MAX];
> -
> - GetPciDidVid ((VOID *) ReportPcieDidVid);
> -
> - Status = gBS->LocateHandleBuffer (
> - ByProtocol,
> - &gEfiPciIoProtocolGuid,
> - NULL,
> - &HandleCount,
> - &HandleBuffer
> - );
> - if(EFI_ERROR(Status)) {
> - DEBUG((EFI_D_ERROR, " Locate gEfiPciIoProtocol Failed.\n"));
> - gBS->FreePool ((VOID *)HandleBuffer);
> - return;
> + EFI_STATUS Status;
> + UINTN HandleIndex;
> + EFI_HANDLE *HandleBuffer;
> + UINTN HandleCount;
> + EFI_PCI_IO_PROTOCOL *PciIo;
> + UINTN SegmentNumber;
> + UINTN BusNumber;
> + UINTN DeviceNumber;
> + UINTN FunctionNumber;
> + UINTN Index;
> + REPORT_PCIEDIDVID2BMC ReportPcieDidVid[PCIEDEVICE_REPORT_MAX];
> +
> + GetPciDidVid ((VOID *)ReportPcieDidVid);
> +
> + Status = gBS->LocateHandleBuffer (
> + ByProtocol,
> + &gEfiPciIoProtocolGuid,
> + NULL,
> + &HandleCount,
> + &HandleBuffer
> + );
> + if (EFI_ERROR (Status)) {
> + DEBUG ((DEBUG_ERROR, " Locate gEfiPciIoProtocol Failed.\n"));
> + gBS->FreePool ((VOID *)HandleBuffer);
> + return;
> + }
> +
> + for (HandleIndex = 0; HandleIndex < HandleCount; HandleIndex++) {
> + Status = gBS->HandleProtocol (
> + HandleBuffer[HandleIndex],
> + &gEfiPciIoProtocolGuid,
> + (VOID **)&PciIo
> + );
> + if (EFI_ERROR (Status)) {
> + DEBUG ((DEBUG_ERROR, "[%a]:[%dL] Status : %r\n", __FUNCTION__, __LINE__, Status));
> + continue;
> }
> - for (HandleIndex = 0; HandleIndex < HandleCount; HandleIndex++) {
> - Status = gBS->HandleProtocol (
> - HandleBuffer[HandleIndex],
> - &gEfiPciIoProtocolGuid,
> - (VOID **)&PciIo
> - );
> - if (EFI_ERROR (Status)) {
> - DEBUG((EFI_D_ERROR, "[%a]:[%dL] Status : %r\n", __FUNCTION__, __LINE__, Status));
> - continue;
> - }
> - (VOID)PciIo->GetLocation(PciIo, &SegmentNumber, &BusNumber, &DeviceNumber, &FunctionNumber);
> - for(Index = 0; Index < sizeof(ReportPcieDidVid) / sizeof(REPORT_PCIEDIDVID2BMC); Index++){
> - if (Type9Record->SlotID == ReportPcieDidVid[Index].Slot + 1) {
> - if((BusNumber == ReportPcieDidVid[Index].Bus) && (DeviceNumber == ReportPcieDidVid[Index].Device)) {
> - DEBUG((EFI_D_ERROR,"PCIe device plot in slot Seg %d bdf %d %d %d\r\n",SegmentNumber,BusNumber,DeviceNumber,FunctionNumber));
> - Type9Record->SegmentGroupNum = SegmentNumber;
> - Type9Record->BusNum = BusNumber;
> - Type9Record->DevFuncNum = (DeviceNumber << 3) | FunctionNumber;
> - Type9Record->CurrentUsage = SlotUsageInUse;
> - break;
> - }
> - }
> + (VOID)PciIo->GetLocation (PciIo, &SegmentNumber, &BusNumber, &DeviceNumber, &FunctionNumber);
> + for (Index = 0; Index < sizeof(ReportPcieDidVid) / sizeof(REPORT_PCIEDIDVID2BMC); Index++) {
> + if (Type9Record->SlotID == ReportPcieDidVid[Index].Slot + 1) {
> + if ((BusNumber == ReportPcieDidVid[Index].Bus) && (DeviceNumber == ReportPcieDidVid[Index].Device)) {
> + DEBUG ((DEBUG_ERROR, "PCIe device plot in slot Seg %d bdf %d %d %d\r\n",
> + SegmentNumber, BusNumber, DeviceNumber, FunctionNumber));
> + Type9Record->SegmentGroupNum = SegmentNumber;
> + Type9Record->BusNum = BusNumber;
> + Type9Record->DevFuncNum = (DeviceNumber << 3) | FunctionNumber;
> + Type9Record->CurrentUsage = SlotUsageInUse;
> + break;
> }
> + }
> }
> - gBS->FreePool ((VOID *)HandleBuffer);
> - return;
> + }
> +
> + gBS->FreePool ((VOID *)HandleBuffer);
> + return;
> }
> +
> EFI_STATUS
> EFIAPI
> AddSmbiosType9Entry (
> IN EFI_HANDLE ImageHandle,
> - IN EFI_SYSTEM_TABLE *SystemTable
> + IN EFI_SYSTEM_TABLE *SystemTable
> )
> {
> - EFI_STATUS Status;
> - EFI_SMBIOS_TYPE SmbiosType;
> - EFI_SMBIOS_HANDLE SmbiosHandle;
> - EFI_SMBIOS_PROTOCOL *Smbios;
> - EFI_SMBIOS_TABLE_HEADER *Record;
> - SMBIOS_TABLE_TYPE9 *Type9Record;
> - SMBIOS_TABLE_TYPE9 *SmbiosRecord = NULL;
> - CHAR8 *OptionalStrStart;
> -
> - UINT8 SmbiosAddType9Number;
> - UINT8 Index;
> -
> - CHAR16 *SlotDesignation = NULL;
> - UINTN SlotDesignationStrLen;
> -
> - Status = gBS->LocateProtocol (
> + EFI_STATUS Status;
> + EFI_SMBIOS_TYPE SmbiosType;
> + EFI_SMBIOS_HANDLE SmbiosHandle;
> + EFI_SMBIOS_PROTOCOL *Smbios;
> + EFI_SMBIOS_TABLE_HEADER *Record;
> + SMBIOS_TABLE_TYPE9 *Type9Record;
> + SMBIOS_TABLE_TYPE9 *SmbiosRecord = NULL;
> + CHAR8 *OptionalStrStart;
> +
> + UINT8 SmbiosAddType9Number;
> + UINT8 Index;
> +
> + CHAR16 *SlotDesignation = NULL;
> + UINTN SlotDesignationStrLen;
> +
> + Status = gBS->LocateProtocol (
> &gEfiSmbiosProtocolGuid,
> NULL,
> (VOID **) &Smbios
> );
> - if (EFI_ERROR (Status)) {
> - DEBUG((EFI_D_ERROR, "[%a]:[%dL] LocateProtocol Failed. Status : %r\n", __FUNCTION__, __LINE__, Status));
> - return Status;
> + if (EFI_ERROR (Status)) {
> + DEBUG ((DEBUG_ERROR, "[%a]:[%dL] LocateProtocol Failed. Status : %r\n",
> + __FUNCTION__, __LINE__, Status));
> + return Status;
> + }
> +
> + do {
> + SmbiosHandle = SMBIOS_HANDLE_PI_RESERVED;
> + SmbiosType = EFI_SMBIOS_TYPE_SYSTEM_SLOTS;
> + Status = Smbios->GetNext (Smbios, &SmbiosHandle, &SmbiosType, &Record, NULL);
> + if (!EFI_ERROR (Status)) {
> + Status = Smbios->Remove (Smbios, SmbiosHandle);
> + if (EFI_ERROR (Status)) {
> + DEBUG ((DEBUG_ERROR, "[%a]:[%dL] Remove System Slot Failed. Status : %r\n",
> + __FUNCTION__, __LINE__, Status));
> + break;
> + }
> }
> + } while (SmbiosHandle != SMBIOS_HANDLE_PI_RESERVED);
>
> - do {
> - SmbiosHandle = SMBIOS_HANDLE_PI_RESERVED;
> - SmbiosType = EFI_SMBIOS_TYPE_SYSTEM_SLOTS;
> - Status = Smbios->GetNext (Smbios, &SmbiosHandle, &SmbiosType, &Record, NULL);
> - if (!EFI_ERROR(Status)) {
> - Status = Smbios->Remove (Smbios, SmbiosHandle);
> - if (EFI_ERROR(Status)) {
> - DEBUG((EFI_D_ERROR, "[%a]:[%dL] Remove System Slot Failed. Status : %r\n", __FUNCTION__, __LINE__, Status));
> - break;
> - }
> - }
> - } while (SmbiosHandle != SMBIOS_HANDLE_PI_RESERVED);
> -
> - SmbiosAddType9Number = OemGetPcieSlotNumber();
> + SmbiosAddType9Number = OemGetPcieSlotNumber ();
>
> - for (Index = 0; Index < SmbiosAddType9Number; Index++)
> - {
> - if (gPcieSlotInfo[Index].Hdr.Type != EFI_SMBIOS_TYPE_SYSTEM_SLOTS)
> - {
> - continue;
> - }
> -
> - Type9Record = &gPcieSlotInfo[Index];
> -
> - UpdateSmbiosType9Info (Type9Record);
> - SlotDesignation = AllocateZeroPool ((sizeof (CHAR16)) * SMBIOS_STRING_MAX_LENGTH);
> - if (NULL == SlotDesignation)
> - {
> - Status = EFI_OUT_OF_RESOURCES;
> - DEBUG((EFI_D_ERROR, "[%a]:[%dL] AllocateZeroPool Failed. Status : %r\n", __FUNCTION__, __LINE__, Status));
> -
> - goto Exit;
> - }
> + for (Index = 0; Index < SmbiosAddType9Number; Index++) {
> + if (gPcieSlotInfo[Index].Hdr.Type != EFI_SMBIOS_TYPE_SYSTEM_SLOTS) {
> + continue;
> + }
>
> - SlotDesignationStrLen = UnicodeSPrint (SlotDesignation, SMBIOS_STRING_MAX_LENGTH - 1, L"PCIE Slot%d", Type9Record->SlotID);
> + Type9Record = &gPcieSlotInfo[Index];
>
> - //
> - // Two zeros following the last string.
> - //
> - SmbiosRecord = AllocateZeroPool(sizeof (SMBIOS_TABLE_TYPE9) + SlotDesignationStrLen + 1 + 1);
> - if(NULL == SmbiosRecord)
> - {
> - Status = EFI_OUT_OF_RESOURCES;
> - DEBUG((EFI_D_ERROR, "[%a]:[%dL] AllocateZeroPool Failed. Status : %r\n", __FUNCTION__, __LINE__, Status));
> + UpdateSmbiosType9Info (Type9Record);
> + SlotDesignation = AllocateZeroPool ((sizeof (CHAR16)) * SMBIOS_STRING_MAX_LENGTH);
> + if (SlotDesignation == NULL) {
> + Status = EFI_OUT_OF_RESOURCES;
> + DEBUG ((DEBUG_ERROR, "[%a]:[%dL] AllocateZeroPool Failed. Status : %r\n",
> + __FUNCTION__, __LINE__, Status));
>
> - goto Exit;
> - }
> + goto Exit;
> + }
>
> - (VOID)CopyMem(SmbiosRecord, Type9Record, sizeof (SMBIOS_TABLE_TYPE9));
> + SlotDesignationStrLen = UnicodeSPrint (
> + SlotDesignation,
> + SMBIOS_STRING_MAX_LENGTH - 1,
> + L"PCIE Slot%d",
> + Type9Record->SlotID);
> +
> + //
> + // Two zeros following the last string.
> + //
> + SmbiosRecord = AllocateZeroPool (sizeof (SMBIOS_TABLE_TYPE9) + SlotDesignationStrLen + 1 + 1);
> + if (SmbiosRecord == NULL) {
> + Status = EFI_OUT_OF_RESOURCES;
> + DEBUG ((DEBUG_ERROR, "[%a]:[%dL] AllocateZeroPool Failed. Status : %r\n",
> + __FUNCTION__, __LINE__, Status));
> +
> + goto Exit;
> + }
>
> - SmbiosRecord->Hdr.Length = sizeof (SMBIOS_TABLE_TYPE9);
> + (VOID)CopyMem (SmbiosRecord, Type9Record, sizeof (SMBIOS_TABLE_TYPE9));
>
> - OptionalStrStart = (CHAR8 *)(SmbiosRecord + 1);
> - UnicodeStrToAsciiStr(SlotDesignation, OptionalStrStart);
> + SmbiosRecord->Hdr.Length = sizeof (SMBIOS_TABLE_TYPE9);
>
> - //
> - // Now we have got the full smbios record, call smbios protocol to add this record.
> - //
> - SmbiosHandle = SMBIOS_HANDLE_PI_RESERVED;
> - Status = Smbios->Add (Smbios, NULL, &SmbiosHandle, (EFI_SMBIOS_TABLE_HEADER *)SmbiosRecord);
> - if(EFI_ERROR(Status))
> - {
> - DEBUG((EFI_D_ERROR, "[%a]:[%dL] Smbios Type09 Table Log Failed! %r \n", __FUNCTION__, __LINE__, Status));
> - goto Exit;
> - }
> + OptionalStrStart = (CHAR8 *)(SmbiosRecord + 1);
> + UnicodeStrToAsciiStr (SlotDesignation, OptionalStrStart);
>
> - FreePool(SmbiosRecord);
> - FreePool(SlotDesignation);
> + //
> + // Now we have got the full smbios record, call smbios protocol to add this record.
> + //
> + SmbiosHandle = SMBIOS_HANDLE_PI_RESERVED;
> + Status = Smbios->Add (Smbios, NULL, &SmbiosHandle, (EFI_SMBIOS_TABLE_HEADER *)SmbiosRecord);
> + if (EFI_ERROR (Status)) {
> + DEBUG ((DEBUG_ERROR, "[%a]:[%dL] Smbios Type09 Table Log Failed! %r \n",
> + __FUNCTION__, __LINE__, Status));
> + goto Exit;
> }
>
> - return EFI_SUCCESS;
> + FreePool (SmbiosRecord);
> + FreePool (SlotDesignation);
> + }
> +
> + return EFI_SUCCESS;
>
> Exit:
> - if(SmbiosRecord != NULL)
> - {
> - FreePool(SmbiosRecord);
> - }
> + if(SmbiosRecord != NULL) {
> + FreePool (SmbiosRecord);
> + }
>
> - if(SlotDesignation != NULL)
> - {
> - FreePool(SlotDesignation);
> - }
> + if(SlotDesignation != NULL) {
> + FreePool (SlotDesignation);
> + }
>
> - return Status;
> + return Status;
> }
>
> --
> 2.8.1
>
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH edk2-platforms v1 2/2] Silicon/Hisilicon/Smbios: Optimize type 9
2020-06-08 14:09 ` [PATCH edk2-platforms v1 2/2] Silicon/Hisilicon/Smbios: Optimize " Ming Huang
@ 2020-06-08 19:09 ` Leif Lindholm
0 siblings, 0 replies; 6+ messages in thread
From: Leif Lindholm @ 2020-06-08 19:09 UTC (permalink / raw)
To: Ming Huang
Cc: devel, ard.biesheuvel, lidongzhan, songdongkuang, wanghuiqiang,
qiuliangen, shenlimei, xiewenyi2
On Mon, Jun 08, 2020 at 22:09:57 +0800, Ming Huang wrote:
> Break down AddSmbiosType9Entry to three funtions for optimizing
> Smbios type 9.
>
> Signed-off-by: Ming Huang <huangming23@huawei.com>
Reviewed-by: Leif Lindholm <leif@nuviainc.com>
> ---
> Silicon/Hisilicon/Drivers/Smbios/AddSmbiosType9/AddSmbiosType9.c | 173 +++++++++++---------
> 1 file changed, 95 insertions(+), 78 deletions(-)
>
> diff --git a/Silicon/Hisilicon/Drivers/Smbios/AddSmbiosType9/AddSmbiosType9.c b/Silicon/Hisilicon/Drivers/Smbios/AddSmbiosType9/AddSmbiosType9.c
> index 2398c6b..57e049a 100644
> --- a/Silicon/Hisilicon/Drivers/Smbios/AddSmbiosType9/AddSmbiosType9.c
> +++ b/Silicon/Hisilicon/Drivers/Smbios/AddSmbiosType9/AddSmbiosType9.c
> @@ -75,38 +75,16 @@ UpdateSmbiosType9Info (
> return;
> }
>
> -EFI_STATUS
> -EFIAPI
> -AddSmbiosType9Entry (
> - IN EFI_HANDLE ImageHandle,
> - IN EFI_SYSTEM_TABLE *SystemTable
> +STATIC
> +VOID
> +EmptySmbiosType9 (
> + EFI_SMBIOS_PROTOCOL *Smbios
> )
> {
> EFI_STATUS Status;
> EFI_SMBIOS_TYPE SmbiosType;
> EFI_SMBIOS_HANDLE SmbiosHandle;
> - EFI_SMBIOS_PROTOCOL *Smbios;
> EFI_SMBIOS_TABLE_HEADER *Record;
> - SMBIOS_TABLE_TYPE9 *Type9Record;
> - SMBIOS_TABLE_TYPE9 *SmbiosRecord = NULL;
> - CHAR8 *OptionalStrStart;
> -
> - UINT8 SmbiosAddType9Number;
> - UINT8 Index;
> -
> - CHAR16 *SlotDesignation = NULL;
> - UINTN SlotDesignationStrLen;
> -
> - Status = gBS->LocateProtocol (
> - &gEfiSmbiosProtocolGuid,
> - NULL,
> - (VOID **) &Smbios
> - );
> - if (EFI_ERROR (Status)) {
> - DEBUG ((DEBUG_ERROR, "[%a]:[%dL] LocateProtocol Failed. Status : %r\n",
> - __FUNCTION__, __LINE__, Status));
> - return Status;
> - }
>
> do {
> SmbiosHandle = SMBIOS_HANDLE_PI_RESERVED;
> @@ -122,76 +100,115 @@ AddSmbiosType9Entry (
> }
> } while (SmbiosHandle != SMBIOS_HANDLE_PI_RESERVED);
>
> - SmbiosAddType9Number = OemGetPcieSlotNumber ();
> + return;
> +}
>
> - for (Index = 0; Index < SmbiosAddType9Number; Index++) {
> - if (gPcieSlotInfo[Index].Hdr.Type != EFI_SMBIOS_TYPE_SYSTEM_SLOTS) {
> - continue;
> - }
> +STATIC
> +EFI_STATUS
> +AddSmbiosType9Record (
> + EFI_SMBIOS_PROTOCOL *Smbios,
> + SMBIOS_TABLE_TYPE9 *Type9Record
> + )
> +{
> + EFI_STATUS Status;
> + EFI_SMBIOS_HANDLE SmbiosHandle;
> + SMBIOS_TABLE_TYPE9 *SmbiosRecord;
> + CHAR8 *OptionalStrStart;
> + CHAR16 SlotDesignation[SMBIOS_STRING_MAX_LENGTH];
> + UINTN SlotStrLen;
> +
> + SlotStrLen = UnicodeSPrint (
> + SlotDesignation,
> + SMBIOS_STRING_MAX_LENGTH * 2,
> + L"PCIE Slot%d",
> + Type9Record->SlotID);
> +
> + //
> + // Two zeros following the last string.
> + //
> + SmbiosRecord = AllocateZeroPool (sizeof (SMBIOS_TABLE_TYPE9) + SlotStrLen + 1 + 1);
> + if (SmbiosRecord == NULL) {
> + DEBUG ((DEBUG_ERROR, "AllocateZeroPool Failed for SmbiosRecord.\n"));
> + return EFI_OUT_OF_RESOURCES;
> + }
>
> - Type9Record = &gPcieSlotInfo[Index];
> + (VOID)CopyMem (SmbiosRecord, Type9Record, sizeof (SMBIOS_TABLE_TYPE9));
> + SmbiosRecord->Hdr.Length = sizeof (SMBIOS_TABLE_TYPE9);
> + OptionalStrStart = (CHAR8 *)(SmbiosRecord + 1);
> + (VOID)UnicodeStrToAsciiStr (SlotDesignation, OptionalStrStart);
>
> - UpdateSmbiosType9Info (Type9Record);
> - SlotDesignation = AllocateZeroPool ((sizeof (CHAR16)) * SMBIOS_STRING_MAX_LENGTH);
> - if (SlotDesignation == NULL) {
> - Status = EFI_OUT_OF_RESOURCES;
> - DEBUG ((DEBUG_ERROR, "[%a]:[%dL] AllocateZeroPool Failed. Status : %r\n",
> - __FUNCTION__, __LINE__, Status));
> + //
> + // Now we have got the full smbios record, call smbios protocol to add this record.
> + //
> + SmbiosHandle = SMBIOS_HANDLE_PI_RESERVED;
> + Status = Smbios->Add (Smbios, NULL, &SmbiosHandle, (EFI_SMBIOS_TABLE_HEADER *)SmbiosRecord);
> + if (EFI_ERROR (Status)) {
> + DEBUG ((DEBUG_ERROR, "Add Smbios Type09 Failed! %r\n", Status));
> + }
>
> - goto Exit;
> - }
> + FreePool (SmbiosRecord);
> + return Status;
> +}
>
> - SlotDesignationStrLen = UnicodeSPrint (
> - SlotDesignation,
> - SMBIOS_STRING_MAX_LENGTH - 1,
> - L"PCIE Slot%d",
> - Type9Record->SlotID);
> -
> - //
> - // Two zeros following the last string.
> - //
> - SmbiosRecord = AllocateZeroPool (sizeof (SMBIOS_TABLE_TYPE9) + SlotDesignationStrLen + 1 + 1);
> - if (SmbiosRecord == NULL) {
> - Status = EFI_OUT_OF_RESOURCES;
> - DEBUG ((DEBUG_ERROR, "[%a]:[%dL] AllocateZeroPool Failed. Status : %r\n",
> - __FUNCTION__, __LINE__, Status));
> +STATIC
> +VOID
> +HandleSmbiosType9 (
> + EFI_SMBIOS_PROTOCOL *Smbios
> + )
> +{
> + EFI_STATUS Status;
> + SMBIOS_TABLE_TYPE9 *Type9Record;
> + UINT8 RecordCount;
> + UINT8 Index;
>
> - goto Exit;
> - }
> + RecordCount = OemGetPcieSlotNumber ();
> + if (RecordCount == 0) {
> + return;
> + }
>
> - (VOID)CopyMem (SmbiosRecord, Type9Record, sizeof (SMBIOS_TABLE_TYPE9));
> + EmptySmbiosType9 (Smbios);
> + Status = EFI_SUCCESS;
> + for (Index = 0; Index < RecordCount; Index++) {
> + if (gPcieSlotInfo[Index].Hdr.Type != EFI_SMBIOS_TYPE_SYSTEM_SLOTS) {
> + continue;
> + }
>
> - SmbiosRecord->Hdr.Length = sizeof (SMBIOS_TABLE_TYPE9);
> + Type9Record = &gPcieSlotInfo[Index];
>
> - OptionalStrStart = (CHAR8 *)(SmbiosRecord + 1);
> - UnicodeStrToAsciiStr (SlotDesignation, OptionalStrStart);
> + UpdateSmbiosType9Info (Type9Record);
>
> - //
> - // Now we have got the full smbios record, call smbios protocol to add this record.
> - //
> - SmbiosHandle = SMBIOS_HANDLE_PI_RESERVED;
> - Status = Smbios->Add (Smbios, NULL, &SmbiosHandle, (EFI_SMBIOS_TABLE_HEADER *)SmbiosRecord);
> + Status = AddSmbiosType9Record (Smbios, Type9Record);
> if (EFI_ERROR (Status)) {
> - DEBUG ((DEBUG_ERROR, "[%a]:[%dL] Smbios Type09 Table Log Failed! %r \n",
> - __FUNCTION__, __LINE__, Status));
> - goto Exit;
> + break;
> }
> -
> - FreePool (SmbiosRecord);
> - FreePool (SlotDesignation);
> }
>
> - return EFI_SUCCESS;
> + return;
> +}
>
> -Exit:
> - if(SmbiosRecord != NULL) {
> - FreePool (SmbiosRecord);
> - }
> +EFI_STATUS
> +EFIAPI
> +AddSmbiosType9Entry (
> + IN EFI_HANDLE ImageHandle,
> + IN EFI_SYSTEM_TABLE *SystemTable
> + )
> +{
> + EFI_STATUS Status;
> + EFI_SMBIOS_PROTOCOL *Smbios;
>
> - if(SlotDesignation != NULL) {
> - FreePool (SlotDesignation);
> + Status = gBS->LocateProtocol (
> + &gEfiSmbiosProtocolGuid,
> + NULL,
> + (VOID **) &Smbios
> + );
> + if (EFI_ERROR (Status)) {
> + DEBUG ((DEBUG_ERROR, "[%a]:[%dL] LocateProtocol Failed. Status : %r\n",
> + __FUNCTION__, __LINE__, Status));
> + return Status;
> }
>
> + HandleSmbiosType9 (Smbios);
> +
> return Status;
> }
>
> --
> 2.8.1
>
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH edk2-platforms v1 1/2] Silicon/Hisilicon/Smbios: correct coding style issue in type 9
2020-06-08 15:41 ` Leif Lindholm
@ 2020-06-09 13:39 ` Ming Huang
0 siblings, 0 replies; 6+ messages in thread
From: Ming Huang @ 2020-06-09 13:39 UTC (permalink / raw)
To: Leif Lindholm
Cc: devel, ard.biesheuvel, lidongzhan, songdongkuang, wanghuiqiang,
qiuliangen, shenlimei, xiewenyi2
在 2020/6/8 23:41, Leif Lindholm 写道:
> On Mon, Jun 08, 2020 at 22:09:56 +0800, Ming Huang wrote:
>> This patch is prepare for optimizing Smbios type 9.
>
> How?
> The commit message should describe what the patch does.
>
> (Yes, I can see with "git diff -w" that this is mainly
> whitespace/indentation fixes and wrapping of long lines, but the
> message should state this.)
>
> Also, This patch changes from EFI_D_ERROR to DEBUG_ERROR. This is
> absolutely an improvement, but needs to be mentioned in commit
> message.
Ok, I will add it in v2.
Thanks,
Ming
>
> Regards,
>
> Leif
>
>> Signed-off-by: Ming Huang <huangming23@huawei.com>
>> ---
>> Silicon/Hisilicon/Drivers/Smbios/AddSmbiosType9/AddSmbiosType9.c | 286 ++++++++++----------
>> 1 file changed, 146 insertions(+), 140 deletions(-)
>>
>> diff --git a/Silicon/Hisilicon/Drivers/Smbios/AddSmbiosType9/AddSmbiosType9.c b/Silicon/Hisilicon/Drivers/Smbios/AddSmbiosType9/AddSmbiosType9.c
>> index 87a06a2..2398c6b 100644
>> --- a/Silicon/Hisilicon/Drivers/Smbios/AddSmbiosType9/AddSmbiosType9.c
>> +++ b/Silicon/Hisilicon/Drivers/Smbios/AddSmbiosType9/AddSmbiosType9.c
>> @@ -1,6 +1,6 @@
>> /** @file
>> *
>> -* Copyright (c) 2015, Hisilicon Limited. All rights reserved.
>> +* Copyright (c) 2015 - 2020, Hisilicon Limited. All rights reserved.
>> * Copyright (c) 2015, Linaro Limited. All rights reserved.
>> *
>> * SPDX-License-Identifier: BSD-2-Clause-Patent
>> @@ -14,178 +14,184 @@ extern UINT8 OemGetPcieSlotNumber ();
>>
>> VOID
>> EFIAPI
>> -UpdateSmbiosType9Info(
>> +UpdateSmbiosType9Info (
>> IN OUT SMBIOS_TABLE_TYPE9 *Type9Record
>> )
>> {
>> - EFI_STATUS Status;
>> - UINTN HandleIndex;
>> - EFI_HANDLE *HandleBuffer;
>> - UINTN HandleCount;
>> - EFI_PCI_IO_PROTOCOL *PciIo;
>> - UINTN SegmentNumber;
>> - UINTN BusNumber;
>> - UINTN DeviceNumber;
>> - UINTN FunctionNumber;
>> - UINTN Index;
>> - REPORT_PCIEDIDVID2BMC ReportPcieDidVid[PCIEDEVICE_REPORT_MAX];
>> -
>> - GetPciDidVid ((VOID *) ReportPcieDidVid);
>> -
>> - Status = gBS->LocateHandleBuffer (
>> - ByProtocol,
>> - &gEfiPciIoProtocolGuid,
>> - NULL,
>> - &HandleCount,
>> - &HandleBuffer
>> - );
>> - if(EFI_ERROR(Status)) {
>> - DEBUG((EFI_D_ERROR, " Locate gEfiPciIoProtocol Failed.\n"));
>> - gBS->FreePool ((VOID *)HandleBuffer);
>> - return;
>> + EFI_STATUS Status;
>> + UINTN HandleIndex;
>> + EFI_HANDLE *HandleBuffer;
>> + UINTN HandleCount;
>> + EFI_PCI_IO_PROTOCOL *PciIo;
>> + UINTN SegmentNumber;
>> + UINTN BusNumber;
>> + UINTN DeviceNumber;
>> + UINTN FunctionNumber;
>> + UINTN Index;
>> + REPORT_PCIEDIDVID2BMC ReportPcieDidVid[PCIEDEVICE_REPORT_MAX];
>> +
>> + GetPciDidVid ((VOID *)ReportPcieDidVid);
>> +
>> + Status = gBS->LocateHandleBuffer (
>> + ByProtocol,
>> + &gEfiPciIoProtocolGuid,
>> + NULL,
>> + &HandleCount,
>> + &HandleBuffer
>> + );
>> + if (EFI_ERROR (Status)) {
>> + DEBUG ((DEBUG_ERROR, " Locate gEfiPciIoProtocol Failed.\n"));
>> + gBS->FreePool ((VOID *)HandleBuffer);
>> + return;
>> + }
>> +
>> + for (HandleIndex = 0; HandleIndex < HandleCount; HandleIndex++) {
>> + Status = gBS->HandleProtocol (
>> + HandleBuffer[HandleIndex],
>> + &gEfiPciIoProtocolGuid,
>> + (VOID **)&PciIo
>> + );
>> + if (EFI_ERROR (Status)) {
>> + DEBUG ((DEBUG_ERROR, "[%a]:[%dL] Status : %r\n", __FUNCTION__, __LINE__, Status));
>> + continue;
>> }
>> - for (HandleIndex = 0; HandleIndex < HandleCount; HandleIndex++) {
>> - Status = gBS->HandleProtocol (
>> - HandleBuffer[HandleIndex],
>> - &gEfiPciIoProtocolGuid,
>> - (VOID **)&PciIo
>> - );
>> - if (EFI_ERROR (Status)) {
>> - DEBUG((EFI_D_ERROR, "[%a]:[%dL] Status : %r\n", __FUNCTION__, __LINE__, Status));
>> - continue;
>> - }
>> - (VOID)PciIo->GetLocation(PciIo, &SegmentNumber, &BusNumber, &DeviceNumber, &FunctionNumber);
>> - for(Index = 0; Index < sizeof(ReportPcieDidVid) / sizeof(REPORT_PCIEDIDVID2BMC); Index++){
>> - if (Type9Record->SlotID == ReportPcieDidVid[Index].Slot + 1) {
>> - if((BusNumber == ReportPcieDidVid[Index].Bus) && (DeviceNumber == ReportPcieDidVid[Index].Device)) {
>> - DEBUG((EFI_D_ERROR,"PCIe device plot in slot Seg %d bdf %d %d %d\r\n",SegmentNumber,BusNumber,DeviceNumber,FunctionNumber));
>> - Type9Record->SegmentGroupNum = SegmentNumber;
>> - Type9Record->BusNum = BusNumber;
>> - Type9Record->DevFuncNum = (DeviceNumber << 3) | FunctionNumber;
>> - Type9Record->CurrentUsage = SlotUsageInUse;
>> - break;
>> - }
>> - }
>> + (VOID)PciIo->GetLocation (PciIo, &SegmentNumber, &BusNumber, &DeviceNumber, &FunctionNumber);
>> + for (Index = 0; Index < sizeof(ReportPcieDidVid) / sizeof(REPORT_PCIEDIDVID2BMC); Index++) {
>> + if (Type9Record->SlotID == ReportPcieDidVid[Index].Slot + 1) {
>> + if ((BusNumber == ReportPcieDidVid[Index].Bus) && (DeviceNumber == ReportPcieDidVid[Index].Device)) {
>> + DEBUG ((DEBUG_ERROR, "PCIe device plot in slot Seg %d bdf %d %d %d\r\n",
>> + SegmentNumber, BusNumber, DeviceNumber, FunctionNumber));
>> + Type9Record->SegmentGroupNum = SegmentNumber;
>> + Type9Record->BusNum = BusNumber;
>> + Type9Record->DevFuncNum = (DeviceNumber << 3) | FunctionNumber;
>> + Type9Record->CurrentUsage = SlotUsageInUse;
>> + break;
>> }
>> + }
>> }
>> - gBS->FreePool ((VOID *)HandleBuffer);
>> - return;
>> + }
>> +
>> + gBS->FreePool ((VOID *)HandleBuffer);
>> + return;
>> }
>> +
>> EFI_STATUS
>> EFIAPI
>> AddSmbiosType9Entry (
>> IN EFI_HANDLE ImageHandle,
>> - IN EFI_SYSTEM_TABLE *SystemTable
>> + IN EFI_SYSTEM_TABLE *SystemTable
>> )
>> {
>> - EFI_STATUS Status;
>> - EFI_SMBIOS_TYPE SmbiosType;
>> - EFI_SMBIOS_HANDLE SmbiosHandle;
>> - EFI_SMBIOS_PROTOCOL *Smbios;
>> - EFI_SMBIOS_TABLE_HEADER *Record;
>> - SMBIOS_TABLE_TYPE9 *Type9Record;
>> - SMBIOS_TABLE_TYPE9 *SmbiosRecord = NULL;
>> - CHAR8 *OptionalStrStart;
>> -
>> - UINT8 SmbiosAddType9Number;
>> - UINT8 Index;
>> -
>> - CHAR16 *SlotDesignation = NULL;
>> - UINTN SlotDesignationStrLen;
>> -
>> - Status = gBS->LocateProtocol (
>> + EFI_STATUS Status;
>> + EFI_SMBIOS_TYPE SmbiosType;
>> + EFI_SMBIOS_HANDLE SmbiosHandle;
>> + EFI_SMBIOS_PROTOCOL *Smbios;
>> + EFI_SMBIOS_TABLE_HEADER *Record;
>> + SMBIOS_TABLE_TYPE9 *Type9Record;
>> + SMBIOS_TABLE_TYPE9 *SmbiosRecord = NULL;
>> + CHAR8 *OptionalStrStart;
>> +
>> + UINT8 SmbiosAddType9Number;
>> + UINT8 Index;
>> +
>> + CHAR16 *SlotDesignation = NULL;
>> + UINTN SlotDesignationStrLen;
>> +
>> + Status = gBS->LocateProtocol (
>> &gEfiSmbiosProtocolGuid,
>> NULL,
>> (VOID **) &Smbios
>> );
>> - if (EFI_ERROR (Status)) {
>> - DEBUG((EFI_D_ERROR, "[%a]:[%dL] LocateProtocol Failed. Status : %r\n", __FUNCTION__, __LINE__, Status));
>> - return Status;
>> + if (EFI_ERROR (Status)) {
>> + DEBUG ((DEBUG_ERROR, "[%a]:[%dL] LocateProtocol Failed. Status : %r\n",
>> + __FUNCTION__, __LINE__, Status));
>> + return Status;
>> + }
>> +
>> + do {
>> + SmbiosHandle = SMBIOS_HANDLE_PI_RESERVED;
>> + SmbiosType = EFI_SMBIOS_TYPE_SYSTEM_SLOTS;
>> + Status = Smbios->GetNext (Smbios, &SmbiosHandle, &SmbiosType, &Record, NULL);
>> + if (!EFI_ERROR (Status)) {
>> + Status = Smbios->Remove (Smbios, SmbiosHandle);
>> + if (EFI_ERROR (Status)) {
>> + DEBUG ((DEBUG_ERROR, "[%a]:[%dL] Remove System Slot Failed. Status : %r\n",
>> + __FUNCTION__, __LINE__, Status));
>> + break;
>> + }
>> }
>> + } while (SmbiosHandle != SMBIOS_HANDLE_PI_RESERVED);
>>
>> - do {
>> - SmbiosHandle = SMBIOS_HANDLE_PI_RESERVED;
>> - SmbiosType = EFI_SMBIOS_TYPE_SYSTEM_SLOTS;
>> - Status = Smbios->GetNext (Smbios, &SmbiosHandle, &SmbiosType, &Record, NULL);
>> - if (!EFI_ERROR(Status)) {
>> - Status = Smbios->Remove (Smbios, SmbiosHandle);
>> - if (EFI_ERROR(Status)) {
>> - DEBUG((EFI_D_ERROR, "[%a]:[%dL] Remove System Slot Failed. Status : %r\n", __FUNCTION__, __LINE__, Status));
>> - break;
>> - }
>> - }
>> - } while (SmbiosHandle != SMBIOS_HANDLE_PI_RESERVED);
>> -
>> - SmbiosAddType9Number = OemGetPcieSlotNumber();
>> + SmbiosAddType9Number = OemGetPcieSlotNumber ();
>>
>> - for (Index = 0; Index < SmbiosAddType9Number; Index++)
>> - {
>> - if (gPcieSlotInfo[Index].Hdr.Type != EFI_SMBIOS_TYPE_SYSTEM_SLOTS)
>> - {
>> - continue;
>> - }
>> -
>> - Type9Record = &gPcieSlotInfo[Index];
>> -
>> - UpdateSmbiosType9Info (Type9Record);
>> - SlotDesignation = AllocateZeroPool ((sizeof (CHAR16)) * SMBIOS_STRING_MAX_LENGTH);
>> - if (NULL == SlotDesignation)
>> - {
>> - Status = EFI_OUT_OF_RESOURCES;
>> - DEBUG((EFI_D_ERROR, "[%a]:[%dL] AllocateZeroPool Failed. Status : %r\n", __FUNCTION__, __LINE__, Status));
>> -
>> - goto Exit;
>> - }
>> + for (Index = 0; Index < SmbiosAddType9Number; Index++) {
>> + if (gPcieSlotInfo[Index].Hdr.Type != EFI_SMBIOS_TYPE_SYSTEM_SLOTS) {
>> + continue;
>> + }
>>
>> - SlotDesignationStrLen = UnicodeSPrint (SlotDesignation, SMBIOS_STRING_MAX_LENGTH - 1, L"PCIE Slot%d", Type9Record->SlotID);
>> + Type9Record = &gPcieSlotInfo[Index];
>>
>> - //
>> - // Two zeros following the last string.
>> - //
>> - SmbiosRecord = AllocateZeroPool(sizeof (SMBIOS_TABLE_TYPE9) + SlotDesignationStrLen + 1 + 1);
>> - if(NULL == SmbiosRecord)
>> - {
>> - Status = EFI_OUT_OF_RESOURCES;
>> - DEBUG((EFI_D_ERROR, "[%a]:[%dL] AllocateZeroPool Failed. Status : %r\n", __FUNCTION__, __LINE__, Status));
>> + UpdateSmbiosType9Info (Type9Record);
>> + SlotDesignation = AllocateZeroPool ((sizeof (CHAR16)) * SMBIOS_STRING_MAX_LENGTH);
>> + if (SlotDesignation == NULL) {
>> + Status = EFI_OUT_OF_RESOURCES;
>> + DEBUG ((DEBUG_ERROR, "[%a]:[%dL] AllocateZeroPool Failed. Status : %r\n",
>> + __FUNCTION__, __LINE__, Status));
>>
>> - goto Exit;
>> - }
>> + goto Exit;
>> + }
>>
>> - (VOID)CopyMem(SmbiosRecord, Type9Record, sizeof (SMBIOS_TABLE_TYPE9));
>> + SlotDesignationStrLen = UnicodeSPrint (
>> + SlotDesignation,
>> + SMBIOS_STRING_MAX_LENGTH - 1,
>> + L"PCIE Slot%d",
>> + Type9Record->SlotID);
>> +
>> + //
>> + // Two zeros following the last string.
>> + //
>> + SmbiosRecord = AllocateZeroPool (sizeof (SMBIOS_TABLE_TYPE9) + SlotDesignationStrLen + 1 + 1);
>> + if (SmbiosRecord == NULL) {
>> + Status = EFI_OUT_OF_RESOURCES;
>> + DEBUG ((DEBUG_ERROR, "[%a]:[%dL] AllocateZeroPool Failed. Status : %r\n",
>> + __FUNCTION__, __LINE__, Status));
>> +
>> + goto Exit;
>> + }
>>
>> - SmbiosRecord->Hdr.Length = sizeof (SMBIOS_TABLE_TYPE9);
>> + (VOID)CopyMem (SmbiosRecord, Type9Record, sizeof (SMBIOS_TABLE_TYPE9));
>>
>> - OptionalStrStart = (CHAR8 *)(SmbiosRecord + 1);
>> - UnicodeStrToAsciiStr(SlotDesignation, OptionalStrStart);
>> + SmbiosRecord->Hdr.Length = sizeof (SMBIOS_TABLE_TYPE9);
>>
>> - //
>> - // Now we have got the full smbios record, call smbios protocol to add this record.
>> - //
>> - SmbiosHandle = SMBIOS_HANDLE_PI_RESERVED;
>> - Status = Smbios->Add (Smbios, NULL, &SmbiosHandle, (EFI_SMBIOS_TABLE_HEADER *)SmbiosRecord);
>> - if(EFI_ERROR(Status))
>> - {
>> - DEBUG((EFI_D_ERROR, "[%a]:[%dL] Smbios Type09 Table Log Failed! %r \n", __FUNCTION__, __LINE__, Status));
>> - goto Exit;
>> - }
>> + OptionalStrStart = (CHAR8 *)(SmbiosRecord + 1);
>> + UnicodeStrToAsciiStr (SlotDesignation, OptionalStrStart);
>>
>> - FreePool(SmbiosRecord);
>> - FreePool(SlotDesignation);
>> + //
>> + // Now we have got the full smbios record, call smbios protocol to add this record.
>> + //
>> + SmbiosHandle = SMBIOS_HANDLE_PI_RESERVED;
>> + Status = Smbios->Add (Smbios, NULL, &SmbiosHandle, (EFI_SMBIOS_TABLE_HEADER *)SmbiosRecord);
>> + if (EFI_ERROR (Status)) {
>> + DEBUG ((DEBUG_ERROR, "[%a]:[%dL] Smbios Type09 Table Log Failed! %r \n",
>> + __FUNCTION__, __LINE__, Status));
>> + goto Exit;
>> }
>>
>> - return EFI_SUCCESS;
>> + FreePool (SmbiosRecord);
>> + FreePool (SlotDesignation);
>> + }
>> +
>> + return EFI_SUCCESS;
>>
>> Exit:
>> - if(SmbiosRecord != NULL)
>> - {
>> - FreePool(SmbiosRecord);
>> - }
>> + if(SmbiosRecord != NULL) {
>> + FreePool (SmbiosRecord);
>> + }
>>
>> - if(SlotDesignation != NULL)
>> - {
>> - FreePool(SlotDesignation);
>> - }
>> + if(SlotDesignation != NULL) {
>> + FreePool (SlotDesignation);
>> + }
>>
>> - return Status;
>> + return Status;
>> }
>>
>> --
>> 2.8.1
>>
>
> .
>
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2020-06-09 13:40 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2020-06-08 14:09 [PATCH edk2-platforms v1 0/2] Optimize type 9 huangming23
2020-06-08 14:09 ` [PATCH edk2-platforms v1 1/2] Silicon/Hisilicon/Smbios: correct coding style issue in " Ming Huang
2020-06-08 15:41 ` Leif Lindholm
2020-06-09 13:39 ` Ming Huang
2020-06-08 14:09 ` [PATCH edk2-platforms v1 2/2] Silicon/Hisilicon/Smbios: Optimize " Ming Huang
2020-06-08 19:09 ` Leif Lindholm
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox