
This gives warnings with 64-bit compilation at present. Fix these up.
Note that this is a placeholder patch while we wait for this patch to be applied:
https://patchwork.ozlabs.org/patch/660592/
Signed-off-by: Simon Glass sjg@chromium.org ---
arch/x86/include/asm/smbios.h | 2 +- arch/x86/lib/smbios.c | 20 ++++++++++---------- 2 files changed, 11 insertions(+), 11 deletions(-)
diff --git a/arch/x86/include/asm/smbios.h b/arch/x86/include/asm/smbios.h index 623a703..fd13f2d 100644 --- a/arch/x86/include/asm/smbios.h +++ b/arch/x86/include/asm/smbios.h @@ -221,7 +221,7 @@ static inline void fill_smbios_header(void *table, int type, * @handle: the structure's handle, a unique 16-bit number * @return: size of the structure */ -typedef int (*smbios_write_type)(u32 *addr, int handle); +typedef int (*smbios_write_type)(ulong *addr, int handle);
/** * write_smbios_table() - Write SMBIOS table diff --git a/arch/x86/lib/smbios.c b/arch/x86/lib/smbios.c index 9f30550..c338b82 100644 --- a/arch/x86/lib/smbios.c +++ b/arch/x86/lib/smbios.c @@ -69,7 +69,7 @@ static int smbios_string_table_len(char *start) return len + 1; }
-static int smbios_write_type0(u32 *current, int handle) +static int smbios_write_type0(ulong *current, int handle) { struct smbios_type0 *t = (struct smbios_type0 *)*current; int len = sizeof(struct smbios_type0); @@ -98,7 +98,7 @@ static int smbios_write_type0(u32 *current, int handle) return len; }
-static int smbios_write_type1(u32 *current, int handle) +static int smbios_write_type1(ulong *current, int handle) { struct smbios_type1 *t = (struct smbios_type1 *)*current; int len = sizeof(struct smbios_type1); @@ -114,7 +114,7 @@ static int smbios_write_type1(u32 *current, int handle) return len; }
-static int smbios_write_type2(u32 *current, int handle) +static int smbios_write_type2(ulong *current, int handle) { struct smbios_type2 *t = (struct smbios_type2 *)*current; int len = sizeof(struct smbios_type2); @@ -132,7 +132,7 @@ static int smbios_write_type2(u32 *current, int handle) return len; }
-static int smbios_write_type3(u32 *current, int handle) +static int smbios_write_type3(ulong *current, int handle) { struct smbios_type3 *t = (struct smbios_type3 *)*current; int len = sizeof(struct smbios_type3); @@ -152,7 +152,7 @@ static int smbios_write_type3(u32 *current, int handle) return len; }
-static int smbios_write_type4(u32 *current, int handle) +static int smbios_write_type4(ulong *current, int handle) { struct smbios_type4 *t = (struct smbios_type4 *)*current; int len = sizeof(struct smbios_type4); @@ -185,7 +185,7 @@ static int smbios_write_type4(u32 *current, int handle) return len; }
-static int smbios_write_type32(u32 *current, int handle) +static int smbios_write_type32(ulong *current, int handle) { struct smbios_type32 *t = (struct smbios_type32 *)*current; int len = sizeof(struct smbios_type32); @@ -198,7 +198,7 @@ static int smbios_write_type32(u32 *current, int handle) return len; }
-static int smbios_write_type127(u32 *current, int handle) +static int smbios_write_type127(ulong *current, int handle) { struct smbios_type127 *t = (struct smbios_type127 *)*current; int len = sizeof(struct smbios_type127); @@ -224,7 +224,7 @@ static smbios_write_type smbios_write_funcs[] = { u32 write_smbios_table(u32 addr) { struct smbios_entry *se; - u32 tables; + ulong tables; int len = 0; int max_struct_size = 0; int handle = 0; @@ -235,7 +235,7 @@ u32 write_smbios_table(u32 addr) /* 16 byte align the table address */ addr = ALIGN(addr, 16);
- se = (struct smbios_entry *)addr; + se = (struct smbios_entry *)(uintptr_t)addr; memset(se, 0, sizeof(struct smbios_entry));
addr += sizeof(struct smbios_entry); @@ -244,7 +244,7 @@ u32 write_smbios_table(u32 addr)
/* populate minimum required tables */ for (i = 0; i < ARRAY_SIZE(smbios_write_funcs); i++) { - int tmp = smbios_write_funcs[i](&addr, handle++); + int tmp = smbios_write_funcs[i]((ulong *)&addr, handle++); max_struct_size = max(max_struct_size, tmp); len += tmp; }