aboutsummaryrefslogtreecommitdiff
path: root/sys/dev/ipmi/ipmi_smbios.c
diff options
context:
space:
mode:
Diffstat (limited to 'sys/dev/ipmi/ipmi_smbios.c')
-rw-r--r--sys/dev/ipmi/ipmi_smbios.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/sys/dev/ipmi/ipmi_smbios.c b/sys/dev/ipmi/ipmi_smbios.c
index b30328e3e616..29aa74127041 100644
--- a/sys/dev/ipmi/ipmi_smbios.c
+++ b/sys/dev/ipmi/ipmi_smbios.c
@@ -150,7 +150,7 @@ static void
ipmi_smbios_probe(struct ipmi_get_info *info)
{
#ifdef ARCH_MAY_USE_EFI
- struct uuid efi_smbios;
+ efi_guid_t efi_smbios = EFI_TABLE_SMBIOS;
void *addr_efi;
#endif
struct smbios_eps *header;
@@ -161,15 +161,16 @@ ipmi_smbios_probe(struct ipmi_get_info *info)
bzero(info, sizeof(struct ipmi_get_info));
#ifdef ARCH_MAY_USE_EFI
- efi_smbios = (struct uuid)EFI_TABLE_SMBIOS;
if (!efi_get_table(&efi_smbios, &addr_efi))
addr = (vm_paddr_t)addr_efi;
#endif
+#if defined(__amd64__) || defined(__i386__)
if (addr == 0)
/* Find the SMBIOS table header. */
addr = bios_sigsearch(SMBIOS_START, SMBIOS_SIG, SMBIOS_LEN,
SMBIOS_STEP, SMBIOS_OFF);
+#endif
if (addr == 0)
return;
@@ -190,8 +191,8 @@ ipmi_smbios_probe(struct ipmi_get_info *info)
/* Now map the actual table and walk it looking for an IPMI entry. */
table = pmap_mapbios(header->structure_table_address,
header->structure_table_length);
- smbios_walk_table(table, header->number_structures, smbios_ipmi_info,
- info);
+ smbios_walk_table(table, header->number_structures,
+ header->structure_table_length, smbios_ipmi_info, info);
/* Unmap everything. */
pmap_unmapbios(table, header->structure_table_length);