Commit 56e2ef8f authored by Ben Dooks's avatar Ben Dooks Committed by Ard Biesheuvel
Browse files

efi: libstub: fix type of fdt 32 and 64bit variables



In update_fdt_memmap() an update_fdt() the fdt values should be
of the fd32_t and fdt64_t types. Make the relevant changes to
remove the following sparse warnings:

drivers/firmware/efi/libstub/fdt.c:97:19: warning: incorrect type in assignment (different base types)
drivers/firmware/efi/libstub/fdt.c:97:19:    expected unsigned long long [usertype] fdt_val64
drivers/firmware/efi/libstub/fdt.c:97:19:    got restricted __be64 [usertype]
drivers/firmware/efi/libstub/fdt.c:157:19: warning: incorrect type in assignment (different base types)
drivers/firmware/efi/libstub/fdt.c:157:19:    expected unsigned long long [usertype] fdt_val64
drivers/firmware/efi/libstub/fdt.c:157:19:    got restricted __be64 [usertype]
drivers/firmware/efi/libstub/fdt.c:163:19: warning: incorrect type in assignment (different base types)
drivers/firmware/efi/libstub/fdt.c:163:19:    expected unsigned int [usertype] fdt_val32
drivers/firmware/efi/libstub/fdt.c:163:19:    got restricted __be32 [usertype]
drivers/firmware/efi/libstub/fdt.c:169:19: warning: incorrect type in assignment (different base types)
drivers/firmware/efi/libstub/fdt.c:169:19:    expected unsigned int [addressable] [usertype] fdt_val32
drivers/firmware/efi/libstub/fdt.c:169:19:    got restricted __be32 [usertype]
drivers/firmware/efi/libstub/fdt.c:175:19: warning: incorrect type in assignment (different base types)
drivers/firmware/efi/libstub/fdt.c:175:19:    expected unsigned int [addressable] [usertype] fdt_val32
drivers/firmware/efi/libstub/fdt.c:175:19:    got restricted __be32 [usertype]

Signed-off-by: default avatarBen Dooks <ben.dooks@codethink.co.uk>
Signed-off-by: default avatarArd Biesheuvel <ardb@kernel.org>
parent 77dd8ada
Loading
Loading
Loading
Loading
+6 −6
Original line number Diff line number Diff line
@@ -32,8 +32,8 @@ static efi_status_t update_fdt(void *orig_fdt, unsigned long orig_fdt_size,
{
	int node, num_rsv;
	int status;
	u32 fdt_val32;
	u64 fdt_val64;
	fdt32_t fdt_val32;
	fdt64_t fdt_val64;

	/* Do some checks on provided FDT, if it exists: */
	if (orig_fdt) {
@@ -100,13 +100,13 @@ static efi_status_t update_fdt(void *orig_fdt, unsigned long orig_fdt_size,
	if (status)
		goto fdt_set_fail;

	fdt_val64 = U64_MAX; /* placeholder */
	fdt_val64 = cpu_to_fdt64(U64_MAX); /* placeholder */

	status = fdt_setprop_var(fdt, node, "linux,uefi-mmap-start", fdt_val64);
	if (status)
		goto fdt_set_fail;

	fdt_val32 = U32_MAX; /* placeholder */
	fdt_val32 = cpu_to_fdt32(U32_MAX); /* placeholder */

	status = fdt_setprop_var(fdt, node, "linux,uefi-mmap-size", fdt_val32);
	if (status)
@@ -147,8 +147,8 @@ static efi_status_t update_fdt(void *orig_fdt, unsigned long orig_fdt_size,
static efi_status_t update_fdt_memmap(void *fdt, struct efi_boot_memmap *map)
{
	int node = fdt_path_offset(fdt, "/chosen");
	u64 fdt_val64;
	u32 fdt_val32;
	fdt64_t fdt_val64;
	fdt32_t fdt_val32;
	int err;

	if (node < 0)