From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S936435AbcCQRC0 (ORCPT ); Thu, 17 Mar 2016 13:02:26 -0400 Received: from mout.kundenserver.de ([212.227.126.133]:57749 "EHLO mout.kundenserver.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S933172AbcCQRCW (ORCPT ); Thu, 17 Mar 2016 13:02:22 -0400 From: Arnd Bergmann To: Sinan Kaya Cc: Robin Murphy , linux-arm-kernel@lists.infradead.org, timur@codeaurora.org, cov@codeaurora.org, nwatters@codeaurora.org, Catalin Marinas , Will Deacon , Andrew Morton , Max Filippov , Joe Perches , "Suthikulpanit, Suravee" , Jisheng Zhang , Dean Nelson , "Suzuki K. Poulose" , Marek Szyprowski , linux-kernel@vger.kernel.org Subject: Re: [PATCH] arm64: dma-mapping: fix dma_to_phys API for IOMMU attached devices Date: Thu, 17 Mar 2016 18:01:23 +0100 Message-ID: <17085043.8Me19Fq1r8@wuerfel> User-Agent: KMail/4.11.5 (Linux/3.16.0-10-generic; KDE/4.11.5; x86_64; ; ) In-Reply-To: <56EADD0C.4040201@codeaurora.org> References: <1458229833-4886-1-git-send-email-okaya@codeaurora.org> <3165610.Gdh8F6ejPI@wuerfel> <56EADD0C.4040201@codeaurora.org> MIME-Version: 1.0 Content-Transfer-Encoding: 7Bit Content-Type: text/plain; charset="us-ascii" X-Provags-ID: V03:K0:ztj6IG3gjRw+Bll73sGDY4+pUtecYOToZ9J/iuvxQV0LtiUJkl0 2xggggz62mxImCUiVbjfLg59VD+JhA1keuX3o5rrA2SFejxFg+nN4hPRrVqFfBCebCYakKf hFc2fQpcAbLIijCxrmhZZM5b38hVUbggKmSMGHZ607Jvlr7NDGGA0Y3hd7GhxD+m07+GbrI Ly84HsNlqfklTijjNZqQw== X-UI-Out-Filterresults: notjunk:1;V01:K0:v5gRMx0lF50=:UIdhOgEXykgnJCp45GUukA RLaCMcHS0T/OPCsdCY0RHZXRM3s34dJAWu1ghAG9D2JUyjneepZTi5SVxOVQY2wERPCreXvYr z35juzWu0WBk1688DXSPJfevued5SmMSXlgAYc3dVP0mKn1VPNEFWMVoHzN155+M04Eg+TL96 Rq3we+UAK6Yz+dKVZjT+iNKAmbvQHIUL7UYcI5O4EUDTzUWQQ/ICm9E/pZtUX5UVQKQFkAuCz qFYyp8zQZqbBkw/7Ofnob2hXjuXCZhMluHNJqYwsEaNDkGNNgVqVZ/z0wwe1DO7Gxdj74bMAh 6TtPs1nGCbWop+5LnyT9X+VlsY9zOTT0VkBTeZXU1nFPg5tw7PAXNzOIx20CxKxOjoJtPsTOH 0zNAMBwT2Y3/vcDShEJHmV3sLyTogFzu3x7CZ8mPKAhVqTj1LFVAuTu+u8bTkmbK32WNOp2PK 7dzAZzvYL3lLYWanjC13q9Y70U0ATLXAoI4SS21NzD7Z4sJ5ShBCtElB7zRifqmvss3nRvnNS 7Ly09tcXu+gD9uzVcFFsyhoBDdp5oQ4HkVLQCqNdD1wntihvZfY7/uprw700o9S6Iz6sVgnkp BRlQ2aM4f9v7uKDNO0T+EqQbFBquotVZ/MJQAnYbGNtg1iKAjLNhmQwbSF3Z9O/kTIYdMl6to aNSuM625kAmn1etK0tt1bGthM/Fw6k4FNu5RHtjetKK0woo2yY5Dcdl10PcjIjT4iMzxBv0xW YVU03tULtyRoxQ34 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Thursday 17 March 2016 12:36:28 Sinan Kaya wrote: > > The first solution that comes to my mind is to implement a weak function in > swiotlb.c with these contents > > dma_addr_t __weak swio_phys_to_dma(struct device *dev, phys_addr_t paddr) > { > return paddr; > } > > > phys_addr_t __weak swio_dma_to_phys(struct device *dev, dma_addr_t daddr) > { > return daddr; > } > > then clean up all the duplicates in dma-mapping.h for all ARCHs that have > identical code. > > For others move the implementation to some source file. > > Sounds ok to me, but I'd prefer using a macro instead of a __weak symbol: #ifndef swiotlb_phys_to_dma static inline dma_addr_t swiotlb_phys_to_dma(struct device *dev, phys_addr_t paddr) { return paddr; } #endif and then let the architectures that override it provide a self-referencing macro: #define swiotlb_phys_to_dma swiotlb_phys_to_dma Also note swiotlb instead of swio, to match the existing naming. Arnd