From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752113AbbJWIkR (ORCPT ); Fri, 23 Oct 2015 04:40:17 -0400 Received: from mail-wi0-f181.google.com ([209.85.212.181]:34090 "EHLO mail-wi0-f181.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750847AbbJWIkO (ORCPT ); Fri, 23 Oct 2015 04:40:14 -0400 Date: Fri, 23 Oct 2015 10:40:09 +0200 From: Ingo Molnar To: Taku Izumi Cc: linux-tip-commits@vger.kernel.org, linux-kernel@vger.kernel.org, mingo.kernel.org@gmail.com, ard.biesheuvel@linaro.org, matt.fleming@intel.com, kamezawa.hiroyu@jp.fujitsu.com Subject: Re: [PATCH v2] efi: Fix warning of int-to-pointer-cast on x86 32-bit builds Message-ID: <20151023084009.GA21631@gmail.com> References: <1445593826-4578-1-git-send-email-izumi.taku@jp.fujitsu.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1445593826-4578-1-git-send-email-izumi.taku@jp.fujitsu.com> User-Agent: Mutt/1.5.23 (2014-03-12) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org * Taku Izumi 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 "ulong" to avoid it. > > v1 -> v2: > - change the type of "new_memmap_phy" from phys_addr_t > into ulong according to Ard's comment > > Reported-by: Ingo Molnar > Signed-off-by: Taku Izumi > --- > 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..1f483b4 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; > + ulong new_memmap_phy; > void *new_memmap; > void *old, *new; > int i; Sight, this just makes the code outright buggy in another place. Please don't just try to 'avoid a warning', that's the wrong mindset! You need to look at how the various values are used, what their natural types are, how they are used in other places, and accordingly fix the code. Thanks, Ingo