aboutsummaryrefslogtreecommitdiff
path: root/lib/smbios-parser.c
diff options
context:
space:
mode:
authorHeinrich Schuchardt <heinrich.schuchardt@canonical.com>2023-12-26 11:22:28 +0100
committerHeinrich Schuchardt <heinrich.schuchardt@canonical.com>2024-01-09 10:09:09 +0100
commitdc2fe5d84ea1f285fa0ad1052deee742c8f593e3 (patch)
treecb7af2f219c4842dfab8fae2340c98d3b691b515 /lib/smbios-parser.c
parente3db8d60becb9842eb382d78863dd6f3d3756009 (diff)
lib: smbios: verify_checksum() is duplicate
The function verify_checksum() duplicates what table_compute_checksum() does. Replace it. table_compute_checksum() is always compiled. Fixes: 415eab0655a8 ("smbios: add parsing API") Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com> Reviewed-by: Simon Glass <sjg@chromium.org> Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Diffstat (limited to 'lib/smbios-parser.c')
-rw-r--r--lib/smbios-parser.c18
1 files changed, 2 insertions, 16 deletions
diff --git a/lib/smbios-parser.c b/lib/smbios-parser.c
index b578c30840..4a3732bcf2 100644
--- a/lib/smbios-parser.c
+++ b/lib/smbios-parser.c
@@ -6,21 +6,7 @@
#define LOG_CATEGORY LOGC_BOOT
#include <smbios.h>
-
-static inline int verify_checksum(const struct smbios_entry *e)
-{
- /*
- * Checksums for SMBIOS tables are calculated to have a value, so that
- * the sum over all bytes yields zero (using unsigned 8 bit arithmetic).
- */
- u8 *byte = (u8 *)e;
- u8 sum = 0;
-
- for (int i = 0; i < e->length; i++)
- sum += byte[i];
-
- return sum;
-}
+#include <tables_csum.h>
const struct smbios_entry *smbios_entry(u64 address, u32 size)
{
@@ -32,7 +18,7 @@ const struct smbios_entry *smbios_entry(u64 address, u32 size)
if (memcmp(entry->anchor, "_SM_", 4))
return NULL;
- if (verify_checksum(entry))
+ if (table_compute_checksum(entry, entry->length))
return NULL;
return entry;