summaryrefslogtreecommitdiff
path: root/src/drivers
diff options
context:
space:
mode:
authorAngel Pons <th3fanbus@gmail.com>2021-06-28 17:36:53 +0200
committerPatrick Georgi <pgeorgi@google.com>2021-07-01 07:38:00 +0000
commita37701afa373dbe35f307614779f43183fd53151 (patch)
treeff5adc0b147deb933387733c9601703bc16edd58 /src/drivers
parentb977c1ade30e8d3d3301f186f91c8646675dd889 (diff)
SMBIOS: Introduce `smbios_full_table_len` function
Introduce the `smbios_full_table_len` function to consolidate table length calculation. The case where the length of a table equals the length of the structure happens when a table has no strings. Change-Id: Ibc60075e82eb66b5d0b7132b16da000b153413f9 Signed-off-by: Angel Pons <th3fanbus@gmail.com> Reviewed-on: https://review.coreboot.org/c/coreboot/+/55909 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Tim Wawrzynczak <twawrzynczak@chromium.org> Reviewed-by: Michał Żygowski <michal.zygowski@3mdeb.com>
Diffstat (limited to 'src/drivers')
-rw-r--r--src/drivers/elog/elog.c2
-rw-r--r--src/drivers/wifi/generic/smbios.c2
2 files changed, 2 insertions, 2 deletions
diff --git a/src/drivers/elog/elog.c b/src/drivers/elog/elog.c
index 48b9dc365f..97555bc3f2 100644
--- a/src/drivers/elog/elog.c
+++ b/src/drivers/elog/elog.c
@@ -626,7 +626,7 @@ int elog_smbios_write_type15(unsigned long *current, int handle)
t->log_type_descriptors = 0;
t->log_type_descriptor_length = 2;
- const int len = sizeof(*t);
+ const int len = smbios_full_table_len(&t->header, t->eos);
*current += len;
return len;
}
diff --git a/src/drivers/wifi/generic/smbios.c b/src/drivers/wifi/generic/smbios.c
index e8936be386..7c697ad68f 100644
--- a/src/drivers/wifi/generic/smbios.c
+++ b/src/drivers/wifi/generic/smbios.c
@@ -28,7 +28,7 @@ static int smbios_write_intel_wifi(struct device *dev, int *handle, unsigned lon
/* Intel wifi driver expects this string to be in the table 0x85. */
t->str = smbios_add_string(t->eos, "KHOIHGIUCCHHII");
- const int len = t->length + smbios_string_table_len(t->eos);
+ const int len = smbios_full_table_len(&t->header, t->eos);
*current += len;
*handle += 1;
return len;