From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755076AbdLURP6 (ORCPT ); Thu, 21 Dec 2017 12:15:58 -0500 Received: from mail-oi0-f67.google.com ([209.85.218.67]:41174 "EHLO mail-oi0-f67.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753559AbdLURPl (ORCPT ); Thu, 21 Dec 2017 12:15:41 -0500 X-Google-Smtp-Source: ACJfBouy/gVuX/xC+BfP+qWUatkIEdDFcaB7410auORxRtl3mSOq/lLytFYKdiE0My0ZN6qdy1yxqqyh8tYWRvao2Rk= MIME-Version: 1.0 In-Reply-To: <689442a126b5446e846e5d5af340e51c@AcuMS.aculab.com> References: <20171221161529.3462263-1-arnd@arndb.de> <689442a126b5446e846e5d5af340e51c@AcuMS.aculab.com> From: Arnd Bergmann Date: Thu, 21 Dec 2017 18:15:40 +0100 X-Google-Sender-Auth: 3n8G5Pi4a35m9dGASV3ODFGykos Message-ID: Subject: Re: [PATCH v2] virt: vbox: use %pap format for printing resource_size_t To: David Laight Cc: Hans de Goede , Greg Kroah-Hartman , Joe Perches , Larry Finger , "linux-kernel@vger.kernel.org" Content-Type: text/plain; charset="UTF-8" Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Thu, Dec 21, 2017 at 6:02 PM, David Laight wrote: > From: Arnd Bergmann >> Sent: 21 December 2017 16:15 >> >> resource_size_t may be larger than pointers depending on configuration, >> so we can run into this build warning: >> >> drivers/virt/vboxguest/vboxguest_linux.c: In function 'vbg_pci_probe': >> drivers/virt/vboxguest/vboxguest_linux.c:295:4: error: cast to pointer from integer of different size >> [-Werror=int-to-pointer-cast] >> drivers/virt/vboxguest/vboxguest_linux.c:367:4: error: cast to pointer from integer of different size >> [-Werror=int-to-pointer-cast] >> >> This uses the special %pap to print the address by reference. >> >> Fixes: 0ba002bc4393 ("virt: Add vboxguest driver for Virtual Box Guest integration") >> Signed-off-by: Arnd Bergmann >> --- >> v2: Use %pap instead of the %rR that was just as incorrect, as >> pointed out by Joe Perches. >> --- >> drivers/virt/vboxguest/vboxguest_linux.c | 8 ++++---- >> 1 file changed, 4 insertions(+), 4 deletions(-) >> >> diff --git a/drivers/virt/vboxguest/vboxguest_linux.c b/drivers/virt/vboxguest/vboxguest_linux.c >> index d045aa51ce03..82e280d38cc2 100644 >> --- a/drivers/virt/vboxguest/vboxguest_linux.c >> +++ b/drivers/virt/vboxguest/vboxguest_linux.c >> @@ -291,8 +291,8 @@ static int vbg_pci_probe(struct pci_dev *pci, const struct pci_device_id *id) >> >> vmmdev = devm_ioremap(dev, mmio, mmio_len); >> if (!vmmdev) { >> - vbg_err("vboxguest: Error ioremap failed; MMIO addr=%p size=%d\n", >> - (void *)mmio, (int)mmio_len); >> + vbg_err("vboxguest: Error ioremap failed; MMIO addr=%pap size=%pap\n", >> + &mmio, &mmio_len); > > Are you sure about the type of mmio_len? > While the argument to devm_ioremap() is of type resource_size_t it seems > extremely unlikely that the actual value will exceed 2^32. > Using a 64bit type for the length on 32bit systems will generate horrid code. > > I can't see the code in my tree to check. I made sure the type matches. I thought about changing it to size_t and using %zd, but decided that it didn't matter. Arnd