summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--OvmfPkg/SmbiosPlatformDxe/SmbiosPlatformDxe.c30
1 files changed, 14 insertions, 16 deletions
diff --git a/OvmfPkg/SmbiosPlatformDxe/SmbiosPlatformDxe.c b/OvmfPkg/SmbiosPlatformDxe/SmbiosPlatformDxe.c
index 6d73173aa5..757bec879e 100644
--- a/OvmfPkg/SmbiosPlatformDxe/SmbiosPlatformDxe.c
+++ b/OvmfPkg/SmbiosPlatformDxe/SmbiosPlatformDxe.c
@@ -95,21 +95,32 @@ SmbiosTableLength (
/**
Install all structures from the given SMBIOS structures block
- @param Smbios SMBIOS protocol
@param TableAddress SMBIOS tables starting address
**/
EFI_STATUS
InstallAllStructures (
- IN EFI_SMBIOS_PROTOCOL *Smbios,
IN UINT8 *TableAddress
)
{
+ EFI_SMBIOS_PROTOCOL *Smbios;
EFI_STATUS Status;
SMBIOS_STRUCTURE_POINTER SmbiosTable;
EFI_SMBIOS_HANDLE SmbiosHandle;
BOOLEAN NeedSmbiosType0;
+ //
+ // Find the SMBIOS protocol
+ //
+ Status = gBS->LocateProtocol (
+ &gEfiSmbiosProtocolGuid,
+ NULL,
+ (VOID**)&Smbios
+ );
+ if (EFI_ERROR (Status)) {
+ return Status;
+ }
+
SmbiosTable.Raw = TableAddress;
if (SmbiosTable.Raw == NULL) {
return EFI_INVALID_PARAMETER;
@@ -176,22 +187,9 @@ SmbiosTablePublishEntry (
)
{
EFI_STATUS Status;
- EFI_SMBIOS_PROTOCOL *Smbios;
SMBIOS_TABLE_ENTRY_POINT *EntryPointStructure;
UINT8 *SmbiosTables;
- //
- // Find the SMBIOS protocol
- //
- Status = gBS->LocateProtocol (
- &gEfiSmbiosProtocolGuid,
- NULL,
- (VOID**)&Smbios
- );
- if (EFI_ERROR (Status)) {
- return Status;
- }
-
Status = EFI_NOT_FOUND;
//
// Add Xen or QEMU SMBIOS data if found
@@ -204,7 +202,7 @@ SmbiosTablePublishEntry (
}
if (SmbiosTables != NULL) {
- Status = InstallAllStructures (Smbios, SmbiosTables);
+ Status = InstallAllStructures (SmbiosTables);
//
// Free SmbiosTables if allocated by Qemu (i.e., NOT by Xen):