From efe441a0a3ad852b7f6921898775ed57f83f15d9 Mon Sep 17 00:00:00 2001
From: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Date: Wed, 3 Jan 2024 09:07:20 +0100
Subject: [PATCH] smbios: smbios.h should not import ofnode.h

The smbios.h include does not use any definitions from ofnode.h.
So don't include it.

As DECLARE_GLOBAL_DATA_PTR is no longer defined via dm/of.h we need to
add it to efi_smbios.c.

Add now missing includes to smbios-parser.c.

Remove a superfluous check comparing the sizes of the SMBIOS 2.1 and SMBIOS
3.0 anchors.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
---
 include/smbios.h            | 6 +-----
 lib/efi_loader/efi_smbios.c | 3 +++
 lib/smbios-parser.c         | 3 +++
 3 files changed, 7 insertions(+), 5 deletions(-)

diff --git a/include/smbios.h b/include/smbios.h
index 49de32fec2..b507b9d9d7 100644
--- a/include/smbios.h
+++ b/include/smbios.h
@@ -8,7 +8,7 @@
 #ifndef _SMBIOS_H_
 #define _SMBIOS_H_
 
-#include <dm/ofnode.h>
+#include <linux/types.h>
 
 /* SMBIOS spec version implemented */
 #define SMBIOS_MAJOR_VER	3
@@ -80,10 +80,6 @@ struct __packed smbios3_entry {
 	u64 struct_table_address;
 };
 
-/* These two structures should use the same amount of 16-byte-aligned space */
-static_assert(ALIGN(16, sizeof(struct smbios_entry)) ==
-	      ALIGN(16, sizeof(struct smbios3_entry)));
-
 /* BIOS characteristics */
 #define BIOS_CHARACTERISTICS_PCI_SUPPORTED	(1 << 7)
 #define BIOS_CHARACTERISTICS_UPGRADEABLE	(1 << 11)
diff --git a/lib/efi_loader/efi_smbios.c b/lib/efi_loader/efi_smbios.c
index eb6d2ba43c..b2ec1f7919 100644
--- a/lib/efi_loader/efi_smbios.c
+++ b/lib/efi_loader/efi_smbios.c
@@ -13,6 +13,9 @@
 #include <mapmem.h>
 #include <smbios.h>
 #include <linux/sizes.h>
+#include <asm/global_data.h>
+
+DECLARE_GLOBAL_DATA_PTR;
 
 const efi_guid_t smbios3_guid = SMBIOS3_TABLE_GUID;
 
diff --git a/lib/smbios-parser.c b/lib/smbios-parser.c
index 4a3732bcf2..e1180efae1 100644
--- a/lib/smbios-parser.c
+++ b/lib/smbios-parser.c
@@ -5,8 +5,11 @@
 
 #define LOG_CATEGORY	LOGC_BOOT
 
+#include <errno.h>
 #include <smbios.h>
+#include <string.h>
 #include <tables_csum.h>
+#include <linux/kernel.h>
 
 const struct smbios_entry *smbios_entry(u64 address, u32 size)
 {
-- 
2.39.5