diff --git a/cmd/smbios.c b/cmd/smbios.c
index e2d82be..66f6b76 100644
--- a/cmd/smbios.c
+++ b/cmd/smbios.c
@@ -142,7 +142,7 @@
 			 entry3->major_ver, entry3->minor_ver, entry3->doc_rev);
 		table = (void *)(uintptr_t)entry3->struct_table_address;
 		size = entry3->length;
-		table_maximum_size = entry3->max_struct_size;
+		table_maximum_size = entry3->table_maximum_size;
 	} else if (!memcmp(entry, smbios_sig, sizeof(smbios_sig) - 1)) {
 		struct smbios_entry *entry2 = entry;
 
diff --git a/drivers/misc/qfw_smbios.c b/drivers/misc/qfw_smbios.c
index a898cb4..c3e8c31 100644
--- a/drivers/misc/qfw_smbios.c
+++ b/drivers/misc/qfw_smbios.c
@@ -90,7 +90,7 @@
 		entry->length = sizeof(struct smbios3_entry);
 		entry->major_ver = entry2->major_ver;
 		entry->minor_ver = entry2->minor_ver;
-		entry->max_struct_size = entry2->struct_table_length;
+		entry->table_maximum_size = entry2->struct_table_length;
 	} else {
 		ret = -ENOENT;
 		goto out;
diff --git a/include/smbios.h b/include/smbios.h
index e2b7f69..3df8827 100644
--- a/include/smbios.h
+++ b/include/smbios.h
@@ -75,7 +75,7 @@
 	/** @reserved: reserved */
 	u8 reserved;
 	/** maximum size of SMBIOS table */
-	u32 max_struct_size;
+	u32 table_maximum_size;
 	/** @struct_table_address: 64-bit physical starting address */
 	u64 struct_table_address;
 };
diff --git a/lib/efi_loader/efi_tcg2.c b/lib/efi_loader/efi_tcg2.c
index b5d4aa7..b07e009 100644
--- a/lib/efi_loader/efi_tcg2.c
+++ b/lib/efi_loader/efi_tcg2.c
@@ -1098,7 +1098,7 @@
 	 */
 	event_size = sizeof(struct smbios_handoff_table_pointers2) +
 		     FIELD_SIZEOF(struct efi_configuration_table, guid) +
-		     entry->max_struct_size;
+		     entry->table_maximum_size;
 	event = calloc(1, event_size);
 	if (!event) {
 		ret = EFI_OUT_OF_RESOURCES;
@@ -1113,7 +1113,7 @@
 	smbios_copy = (struct smbios_header *)((uintptr_t)&event->table_entry[0].table);
 	memcpy(&event->table_entry[0].table,
 	       (void *)((uintptr_t)entry->struct_table_address),
-	       entry->max_struct_size);
+	       entry->table_maximum_size);
 
 	smbios_prepare_measurement(entry, smbios_copy);
 
diff --git a/lib/efi_loader/smbiosdump.c b/lib/efi_loader/smbiosdump.c
index f0b9018..2f0b91a 100644
--- a/lib/efi_loader/smbiosdump.c
+++ b/lib/efi_loader/smbiosdump.c
@@ -329,7 +329,7 @@
 			return EFI_LOAD_ERROR;
 		}
 		table = (void *)(uintptr_t)smbios3_anchor->struct_table_address;
-		len = smbios3_anchor->max_struct_size;
+		len = smbios3_anchor->table_maximum_size;
 	} else {
 		struct smbios_entry *smbios_anchor;
 		int r;
@@ -469,7 +469,7 @@
 
 	smbios3_anchor = get_config_table(&smbios3_guid);
 	if (smbios3_anchor) {
-		size = 0x20 + smbios3_anchor->max_struct_size;
+		size = 0x20 + smbios3_anchor->table_maximum_size;
 		ret = bs->allocate_pool(EFI_LOADER_DATA, size, (void **)&buf);
 		if (ret != EFI_SUCCESS) {
 			error(u"Out of memory\n");
@@ -480,7 +480,7 @@
 		memcpy(buf, smbios3_anchor, smbios3_anchor->length);
 		memcpy(buf + 0x20,
 		       (void *)(uintptr_t)smbios3_anchor->struct_table_address,
-		       smbios3_anchor->max_struct_size);
+		       smbios3_anchor->table_maximum_size);
 
 		smbios3_anchor = (struct smbios3_entry *)buf;
 		smbios3_anchor->struct_table_address = 0x20;
diff --git a/lib/smbios-parser.c b/lib/smbios-parser.c
index 0d1ac78..9a62b3c 100644
--- a/lib/smbios-parser.c
+++ b/lib/smbios-parser.c
@@ -230,7 +230,7 @@
 	void *table_end;
 	struct smbios_header *header;
 
-	table_end = (void *)((u8 *)smbios_copy + entry->max_struct_size);
+	table_end = (void *)((u8 *)smbios_copy + entry->table_maximum_size);
 
 	for (i = 0; i < ARRAY_SIZE(smbios_filter_tables); i++) {
 		header = smbios_copy;
diff --git a/lib/smbios.c b/lib/smbios.c
index 327f78c..c83af73 100644
--- a/lib/smbios.c
+++ b/lib/smbios.c
@@ -615,7 +615,7 @@
 	se->minor_ver = SMBIOS_MINOR_VER;
 	se->doc_rev = 0;
 	se->entry_point_rev = 1;
-	se->max_struct_size = len;
+	se->table_maximum_size = len;
 	se->struct_table_address = table_addr;
 	se->checksum = table_compute_checksum(se, sizeof(struct smbios3_entry));
 	unmap_sysmem(se);
