git: fdf08ac1e9f9 - main - smbios: Print an error on unexpected entry point length on identify
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Fri, 07 Mar 2025 16:44:42 UTC
The branch main has been updated by olce:
URL: https://cgit.FreeBSD.org/src/commit/?id=fdf08ac1e9f9baac4fcf4af8f3bf7a34d3ea0009
commit fdf08ac1e9f9baac4fcf4af8f3bf7a34d3ea0009
Author: Olivier Certner <olce@FreeBSD.org>
AuthorDate: 2025-03-03 10:12:33 +0000
Commit: Olivier Certner <olce@FreeBSD.org>
CommitDate: 2025-03-07 16:42:46 +0000
smbios: Print an error on unexpected entry point length on identify
This helps figuring out quickly why no SMBIOS device appears in this case.
MFC after: 2 weeks
Sponsored by: The FreeBSD Foundation
---
sys/dev/smbios/smbios.c | 9 +++++++--
1 file changed, 7 insertions(+), 2 deletions(-)
diff --git a/sys/dev/smbios/smbios.c b/sys/dev/smbios/smbios.c
index 733384b3614e..67443d75c8fa 100644
--- a/sys/dev/smbios/smbios.c
+++ b/sys/dev/smbios/smbios.c
@@ -86,7 +86,7 @@ smbios_identify (driver_t *driver, device_t parent)
device_t child;
vm_paddr_t addr = 0;
size_t map_size = sizeof(*eps);
- int length;
+ uint8_t length;
if (!device_is_alive(parent))
return;
@@ -148,8 +148,13 @@ smbios_identify (driver_t *driver, device_t parent)
if (length == 0x1e && map_size == sizeof(*eps) &&
eps->major_version == 2 && eps->minor_version == 1)
length = map_size;
- else
+ else {
+ printf("smbios: %s-bit Entry Point: Invalid length: "
+ "Got %hhu, expected %zu\n",
+ map_size == sizeof(*eps3) ? "64" : "32",
+ length, map_size);
goto unmap_return;
+ }
}
child = BUS_ADD_CHILD(parent, 5, "smbios", DEVICE_UNIT_ANY);