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);