linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* Re: [PATCH] efi: Fix warning of int-to-pointer-cast on x86 32-bit builds
  2015-10-22 17:28 [PATCH] efi: Fix warning of int-to-pointer-cast on x86 32-bit builds Taku Izumi
@ 2015-10-22  8:33 ` Ard Biesheuvel
  2015-10-23  0:39   ` Izumi, Taku
  0 siblings, 1 reply; 3+ messages in thread
From: Ard Biesheuvel @ 2015-10-22  8:33 UTC (permalink / raw)
  To: Taku Izumi
  Cc: linux-tip-commits, linux-kernel, mingo.kernel.org, matt.fleming,
	kamezawa.hiroyu


> On 22 okt. 2015, at 19:28, Taku Izumi <izumi.taku@jp.fujitsu.com> wrote:
> 
> commit-0f96a99 introduces the following warning message:
> 
>  drivers/firmware/efi/fake_mem.c:186:20: warning: cast to pointer
>  from integer of different size [-Wint-to-pointer-cast]
> 
> new_memmap_phy was defined as a u64 value and casted to void*.
> This causes a warning of int-to-pointer-cast on x86 32-bit
> environment.
> 
> This patch changes the type of "new_memmap_phy" variable
> from "u64" into "phys_addr_t" to avoid it.

This assumes sizeof(void*) == sizeof(phys_addr_t), which is not always true, e.g., on 32-bit ARM (whose UEFI support is in development but not yet merged) with LPAE enabled.

Could we use unsigned long instead?

Ard.


> Reported-by: Ingo Molnar <mingo@kernel.org>
> Signed-off-by: Taku Izumi <izumi.taku@jp.fujitsu.com>
> ---
> drivers/firmware/efi/fake_mem.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/firmware/efi/fake_mem.c b/drivers/firmware/efi/fake_mem.c
> index 32bcb14..b65bc07 100644
> --- a/drivers/firmware/efi/fake_mem.c
> +++ b/drivers/firmware/efi/fake_mem.c
> @@ -59,7 +59,7 @@ void __init efi_fake_memmap(void)
>    u64 start, end, m_start, m_end, m_attr;
>    int new_nr_map = memmap.nr_map;
>    efi_memory_desc_t *md;
> -    u64 new_memmap_phy;
> +    phys_addr_t new_memmap_phy;
>    void *new_memmap;
>    void *old, *new;
>    int i;
> -- 
> 1.8.3.1
> 

^ permalink raw reply	[flat|nested] 3+ messages in thread

* [PATCH] efi: Fix warning of int-to-pointer-cast on x86 32-bit builds
@ 2015-10-22 17:28 Taku Izumi
  2015-10-22  8:33 ` Ard Biesheuvel
  0 siblings, 1 reply; 3+ messages in thread
From: Taku Izumi @ 2015-10-22 17:28 UTC (permalink / raw)
  To: linux-tip-commits, linux-kernel, mingo.kernel.org
  Cc: ard.biesheuvel, matt.fleming, kamezawa.hiroyu, Taku Izumi

commit-0f96a99 introduces the following warning message:

  drivers/firmware/efi/fake_mem.c:186:20: warning: cast to pointer
  from integer of different size [-Wint-to-pointer-cast]

new_memmap_phy was defined as a u64 value and casted to void*.
This causes a warning of int-to-pointer-cast on x86 32-bit
environment.

This patch changes the type of "new_memmap_phy" variable
from "u64" into "phys_addr_t" to avoid it.

Reported-by: Ingo Molnar <mingo@kernel.org>
Signed-off-by: Taku Izumi <izumi.taku@jp.fujitsu.com>
---
 drivers/firmware/efi/fake_mem.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/firmware/efi/fake_mem.c b/drivers/firmware/efi/fake_mem.c
index 32bcb14..b65bc07 100644
--- a/drivers/firmware/efi/fake_mem.c
+++ b/drivers/firmware/efi/fake_mem.c
@@ -59,7 +59,7 @@ void __init efi_fake_memmap(void)
 	u64 start, end, m_start, m_end, m_attr;
 	int new_nr_map = memmap.nr_map;
 	efi_memory_desc_t *md;
-	u64 new_memmap_phy;
+	phys_addr_t new_memmap_phy;
 	void *new_memmap;
 	void *old, *new;
 	int i;
-- 
1.8.3.1


^ permalink raw reply related	[flat|nested] 3+ messages in thread

* RE: [PATCH] efi: Fix warning of int-to-pointer-cast on x86 32-bit builds
  2015-10-22  8:33 ` Ard Biesheuvel
@ 2015-10-23  0:39   ` Izumi, Taku
  0 siblings, 0 replies; 3+ messages in thread
From: Izumi, Taku @ 2015-10-23  0:39 UTC (permalink / raw)
  To: Ard Biesheuvel
  Cc: linux-tip-commits, linux-kernel, mingo.kernel.org, matt.fleming,
	Kamezawa, Hiroyuki

Dear Ard,

> > commit-0f96a99 introduces the following warning message:
> >
> >  drivers/firmware/efi/fake_mem.c:186:20: warning: cast to pointer
> >  from integer of different size [-Wint-to-pointer-cast]
> >
> > new_memmap_phy was defined as a u64 value and casted to void*.
> > This causes a warning of int-to-pointer-cast on x86 32-bit
> > environment.
> >
> > This patch changes the type of "new_memmap_phy" variable
> > from "u64" into "phys_addr_t" to avoid it.
> 
> This assumes sizeof(void*) == sizeof(phys_addr_t), which is not always true, e.g., on 32-bit ARM (whose UEFI support is
> in development but not yet merged) with LPAE enabled.
> 
> Could we use unsigned long instead?

  Okay. I'll update my patch.

Sincerely,
Taku Izumi

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2015-10-23  0:39 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-10-22 17:28 [PATCH] efi: Fix warning of int-to-pointer-cast on x86 32-bit builds Taku Izumi
2015-10-22  8:33 ` Ard Biesheuvel
2015-10-23  0:39   ` Izumi, Taku

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).