aboutsummaryrefslogtreecommitdiff
path: root/src/arch/x86/smbios.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/arch/x86/smbios.c')
-rw-r--r--src/arch/x86/smbios.c16
1 files changed, 10 insertions, 6 deletions
diff --git a/src/arch/x86/smbios.c b/src/arch/x86/smbios.c
index 72fb0dfb77..89951a10ab 100644
--- a/src/arch/x86/smbios.c
+++ b/src/arch/x86/smbios.c
@@ -42,10 +42,10 @@ static u8 smbios_checksum(u8 *p, u32 length)
}
-int smbios_add_string(char *start, const char *str)
+int smbios_add_string(u8 *start, const char *str)
{
int i = 1;
- char *p = start;
+ char *p = (char *)start;
/*
* Return 0 as required for empty strings.
@@ -71,9 +71,9 @@ int smbios_add_string(char *start, const char *str)
}
}
-int smbios_string_table_len(char *start)
+int smbios_string_table_len(u8 *start)
{
- char *p = start;
+ char *p = (char *)start;
int i, len = 0;
while (*p) {
@@ -81,10 +81,14 @@ int smbios_string_table_len(char *start)
p += i;
len += i;
}
+
+ if (!len)
+ return 2;
+
return len + 1;
}
-static int smbios_cpu_vendor(char *start)
+static int smbios_cpu_vendor(u8 *start)
{
if (cpu_have_cpuid()) {
u32 tmp[4];
@@ -99,7 +103,7 @@ static int smbios_cpu_vendor(char *start)
}
}
-static int smbios_processor_name(char *start)
+static int smbios_processor_name(u8 *start)
{
u32 tmp[13];
const char *str = "Unknown Processor Name";