From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756232AbcIFUVp (ORCPT ); Tue, 6 Sep 2016 16:21:45 -0400 Received: from mout.kundenserver.de ([212.227.17.13]:58843 "EHLO mout.kundenserver.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755384AbcIFUVm (ORCPT ); Tue, 6 Sep 2016 16:21:42 -0400 From: Arnd Bergmann To: Dan Carpenter Cc: Martyn Welch , Manohar Vanga , Greg Kroah-Hartman , devel@driverdev.osuosl.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH] vme: fake: fix build for 64-bit dma_addr_t Date: Tue, 06 Sep 2016 22:21:34 +0200 Message-ID: <5736688.67m7yoLKgW@wuerfel> User-Agent: KMail/5.1.3 (Linux/4.4.0-34-generic; KDE/5.18.0; x86_64; ; ) In-Reply-To: <20160906193925.GC4218@mwanda> References: <20160906130013.1616803-1-arnd@arndb.de> <20160906193925.GC4218@mwanda> MIME-Version: 1.0 Content-Transfer-Encoding: 7Bit Content-Type: text/plain; charset="us-ascii" X-Provags-ID: V03:K0:U7TrwESIv5KPATP8vvdIdoTx2l/KgL+r76rh09JNSb7r5VE/7US hqdXt7ZH28g81M/ZXNTOHPHQB0zrW9PJNTyuSV2x6lgG12YFnV0jm7p7haYF7j7iQQSS69H rE22avrA2ehVynIt9eWyEOvxHlrhcWcevS8yvlY1yiquoiSR4AmD2tShAPkKeKiiyy64G44 r0voxfVjHKXP5w7g3OWNg== X-UI-Out-Filterresults: notjunk:1;V01:K0:7bigFyadQEo=:Jj9Jiubhl9aQyuZmvgwwri RX7SPqeuT+Bgsbhqa8Au8SnsQ/3yXBPBHUA8rdBCoWrbbKun7fdeNVd+Zl9oNL+1TT7bl5574 sba+AVofp8+niZrBK2NpNhXBLf4cS7sqEOYW1DHWhwqYffVnnQ+fHddlxXwxVB+kNqLInC9dG H9ZCvCYnwbIC3phlC6mLCJtJ7rIbyPFMmjJEywf2BUUu8n4JEEm8+6qYD/MoBGYKt5uQDRShi E2Z1bvo2F0btTN5kh8CwMfujk4TBENMBvz3YWlR+VSU8tOMmrOzLQNUh+OFVyTvPNkRnZJ9W6 7NgxkBXQRJS9cxgDgu67JOUsnzCob28S0TzvBF7X1bk3+2rCYb3lFYyOHUDN9/n9GEQfOTvnK BRKde3PhCpoualbpM5jxQCqMCmtDmM2x0gOYImUI9954C53Y5REKBwJT2/SmQ0dnGke5Kfy5I 2xCHUJOnb0R4cJ0AnIw4ntdwbYaUuWaXBO5tDy2JqRNpLLrkOVN6cylVxGz+B5jLJIdKLNADK c0AX+Vi8WfMGPVM/PvMdKf9gZWVeaFdGqAELoFLIWSuibuuMfrffi+xUZQSDwdXEzrhOTOvlB 4q7gURKlZaOQXYizYn6NwaBvuXlHj7+NvNHVF/3wEPJMPQ06BjwqiL7PJ3x7rt6kwRelLUhRf 1BlFGumjR03UMFzqVD3B9WWuVdttizs8mxmoZYTuI5oqHjoIwhcWr0kHB+/zaE3FsUWCeeay6 h1Tu0zwIQ7B4NZy7 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Tuesday, September 6, 2016 10:39:25 PM CEST Dan Carpenter wrote: > On Tue, Sep 06, 2016 at 02:59:41PM +0200, Arnd Bergmann wrote: > > casting between dma_addr_t and a pointer is generally tricky, > > as they might not be the same size and almost never point into > > the same address space. With 32-bit ARM systems and LPAE, we > > get this warning for the vme_fake driver that stores a pointer > > in a dma_addr_t variable: > > > > drivers/vme/bridges/vme_fake.c: In function 'fake_slave_set': > > drivers/vme/bridges/vme_fake.c:204:29: error: assignment makes pointer from integer without a cast [-Werror=int-conversion] > > > > To make this clearer while fixing the warning, I'm adding > > a set of helper functions for the type conversion. > > > > Signed-off-by: Arnd Bergmann > > --- > > drivers/vme/bridges/vme_fake.c | 26 ++++++++++++++++++-------- > > 1 file changed, 18 insertions(+), 8 deletions(-) > > > > diff --git a/drivers/vme/bridges/vme_fake.c b/drivers/vme/bridges/vme_fake.c > > index 7ef298b289f4..ebf35d305321 100644 > > --- a/drivers/vme/bridges/vme_fake.c > > +++ b/drivers/vme/bridges/vme_fake.c > > @@ -48,7 +48,7 @@ struct fake_slave_window { > > int enabled; > > unsigned long long vme_base; > > unsigned long long size; > > - dma_addr_t buf_base; > > + void *buf_base; > > This shouldn't be u64? (I don't know the answer). I changed it to 'void *' because it gets accessed as a pointer in kernel space. It gets passed through the vme core code in a dma_addr_t, but it seemed easier to do the conversion at the time it gets passed in and out rather than the time it gets accessed. An alternative that would work equally well is to make it uintptr_t. Arnd