From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 44266C433EF for ; Tue, 24 May 2022 14:47:43 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S237332AbiEXOrk (ORCPT ); Tue, 24 May 2022 10:47:40 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:57388 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229967AbiEXOrh (ORCPT ); Tue, 24 May 2022 10:47:37 -0400 Received: from mout.kundenserver.de (mout.kundenserver.de [212.227.17.13]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 798127628D for ; Tue, 24 May 2022 07:47:36 -0700 (PDT) Received: from mail-yw1-f180.google.com ([209.85.128.180]) by mrelayeu.kundenserver.de (mreue109 [213.165.67.113]) with ESMTPSA (Nemesis) id 1MBDvU-1nzXho2Lza-00Cm85 for ; Tue, 24 May 2022 16:47:34 +0200 Received: by mail-yw1-f180.google.com with SMTP id 00721157ae682-2ff7b90e635so118482687b3.5 for ; Tue, 24 May 2022 07:47:34 -0700 (PDT) X-Gm-Message-State: AOAM533Ps7IurWXHDrwPho2KXyWrsqIGTgJWJv0+iZn0XBwKD0TDbGzr p0OoWpI94DOT6jIwHHfCZ6wwGUCePP+6uB/ABIw= X-Google-Smtp-Source: ABdhPJztaIcIMWnqLP/suBLoexCji+3v0BT7iVjvVWSzoaliWtH4kcQa4bC92SqaCbiMIbBetuCzXWl9S2aiwfoPNdk= X-Received: by 2002:a81:ad7:0:b0:2e6:84de:3223 with SMTP id 206-20020a810ad7000000b002e684de3223mr29295789ywk.209.1653403653308; Tue, 24 May 2022 07:47:33 -0700 (PDT) MIME-Version: 1.0 References: <20220519082552.117736-1-wangkefeng.wang@huawei.com> <20220519082552.117736-5-wangkefeng.wang@huawei.com> <4c848b48-6ddf-664a-6296-d85ab49a694d@huawei.com> In-Reply-To: <4c848b48-6ddf-664a-6296-d85ab49a694d@huawei.com> From: Arnd Bergmann Date: Tue, 24 May 2022 16:47:16 +0200 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: [PATCH v3 4/6] mm: ioremap: Add arch_ioremap/iounmap() To: Kefeng Wang Cc: Arnd Bergmann , Catalin Marinas , Will Deacon , Andrew Morton , Linux ARM , Linux Kernel Mailing List , Linux-MM , Christoph Hellwig , Anshuman Khandual Content-Type: text/plain; charset="UTF-8" X-Provags-ID: V03:K1:kaTJBZ5VHVv+NdGJG/YeK5ApS4Sya1LuUUGGg2m8W8ROVcuexuz mzAlGBdLjM4+B0qBThXwatOhfoPVfwvZXxFcMmSW4WkphVwb0eaEBaXD9kCbL6QRpaUIZHT KNDZ3Lur3qPx5Fa4VaVPgy0oqA5nQuwGCaqOh9C1BIx5vJB0X5K2rr0iF52cU/tTCAja5CX 9bspYoWfmlvs8hBpZjP/A== X-UI-Out-Filterresults: notjunk:1;V03:K0:F8JyZP6UEVA=:km8znRQULAmSfpTaexmwYS HGn8jL8RJsWWZdpd1Vj40HYPWaPCwY0FAq7lLcBD9gBdCLAnezRLW9VzxfzllIxZttI3s+h95 SD1TP9ECo9qYI/pEYnZcp7G2J2FBVeBeunRfgyrdx9xhnq8m0CM1Jsb+TCeEKVgZNh/fdd3HS sKLBKsIpm9k3zqR1nE7DTXeGxvtA7rVp7YBTzFeXeDICqmt4gy2Sd8zoeMG8d+k+Eob6z1GNv w3SBTxRNRpfhOuuPMvAW2YseeuVmh2mR0mQdS6eG4Bn3TOuceseai57dj6wpKcXgL93lbktkt xv13y1VOuWBM2BeoGUFk4DlRtnIHjxNkDKomwGEQEu2v7kMRw5dDEmU7925bmVVx6BNa8ZnN+ DdkKEfkIpWLGytuesVoaAOs1zgcS4az2QswKdlVMtPBiRw6jQcsM+KRp/N7r5FuzSUFuD7rI8 KZZ4YDZelKigOJK/XOKmsWghuKMmNyCttaUd2mo5NqyxjZeBTbM+XUQ83gpRJl/WqgXPVlpmH s1yGG2olO+8hwakr6k2QHpw+/lIZoBRRw7do7SUdzqT5bWIP3uwdVlrf5tzngmetJKBBT5cw/ fe8z5m0zildzxZGhsbVMsJQ46tNb2tVNeK9P4+kp38Ige+Jm5pEsmLJdgyq8m2/7TgGyiCIxU tVZkzeiwtXnXEzQmaLjVxpFV/q7nwfL9aIePymVQNRKeH8+IWbX3RC/tzcOdzoLmflsDn4wVl ciS5ryir/lI2bvjXUBmktjRg65N2dwHWzEt2ho2+xcn3h0jpjmgs0ZPXrrAOB6gvWFmDqWd4t 8la0ytXB7ay4r4zYel7di4yPtCffM4gSaLHlAK5XG9bOkrG+l7V6k40IP4CQ3QPb6FfQ92Zb1 UvlV5ee/FF5WKvJ6csaA== Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Tue, May 24, 2022 at 4:32 PM Kefeng Wang wrote: > On 2022/5/24 20:37, Arnd Bergmann wrote: > > On Thu, May 19, 2022 at 10:25 AM Kefeng Wang wrote: > >> Add special hook for architecture to verify or setup addr, size > >> or prot when ioremap() or iounmap(), which will make the generic > >> ioremap more useful. > >> > >> arch_ioremap() return a pointer, > >> - IS_ERR means return an error > >> - NULL means continue to remap > >> - a non-NULL, non-IS_ERR pointer is directly returned > >> arch_iounmap() return a int value, > >> - 0 means continue to vunmap > >> - error code means skip vunmap and return directly > >> > >> Signed-off-by: Kefeng Wang > > I don't really like interfaces that mix error pointers and NULL pointer > > returns. > > > > Would it be possible to have a special error code other than NULL > > for the fallback case? > > I don't find a good error code, maybe ENOTSUPP, any better suggestion? I had another look at the resulting arm64 function, and it appears that you never actually return a non-error pointer here. If I didn't miss anything, I think the best way would be to change the return type to just indicate success or an error code, and drop the case of returning the actual result, and changing the function name accordingly. Would that work, or do you actually require returning an __iomem token from somewhere else? Arnd From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 363ABC433F5 for ; Tue, 24 May 2022 14:49:00 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:Cc:To:Subject:Message-ID:Date:From: In-Reply-To:References:MIME-Version:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=wIjlC7zbLk8zB7BnR980PcsXq0jbBCTAopaKOTzK3zw=; b=YFdcV0XjY+e1ur 0cWJmu/DAdwy6/WDBIGeUpdZUWz/98eEmf6UwvK2/pkc/QljKHP5QSdvzfyKn2sf18EnvFdQTguPe RkzL7HXYTeLdX29M7ewX6nkTMdK2xGdw0ZBK8jmHQQN6G1f++JEgiFrG2jBYrqji+oSiS0kAK/fx1 OlzKe+nt+OeoMjkTVbM2nhkFCknFh0YnRe1K8Fl0Z5bsCiloxeG+y3mSE1XgYNdOIFA44sWI+GL0U gxHpSZjh5SyBNcu0PyzyPso5g2fHr3QJR8/HBHMdnKsi5V0W/MCTqGdfYLH45HUmo15IbvmqznKTU UFopH8XG51jjtpNct7TA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1ntVp3-008JMb-Vc; Tue, 24 May 2022 14:47:46 +0000 Received: from mout.kundenserver.de ([212.227.17.24]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1ntVp0-008JKw-Ra for linux-arm-kernel@lists.infradead.org; Tue, 24 May 2022 14:47:44 +0000 Received: from mail-yw1-f174.google.com ([209.85.128.174]) by mrelayeu.kundenserver.de (mreue107 [213.165.67.113]) with ESMTPSA (Nemesis) id 1N7hw4-1npPLf3Br8-014ibS for ; Tue, 24 May 2022 16:47:37 +0200 Received: by mail-yw1-f174.google.com with SMTP id 00721157ae682-2fee010f509so184127727b3.11 for ; Tue, 24 May 2022 07:47:34 -0700 (PDT) X-Gm-Message-State: AOAM531lokvpirjM3CZMeoPXFPvAUAQdfI31Cs1pqodzlGBWlr/1HF7V yGgjbMFREeu0+HdjfKsxUD1hlH29Ic++p4lZoC0= X-Google-Smtp-Source: ABdhPJztaIcIMWnqLP/suBLoexCji+3v0BT7iVjvVWSzoaliWtH4kcQa4bC92SqaCbiMIbBetuCzXWl9S2aiwfoPNdk= X-Received: by 2002:a81:ad7:0:b0:2e6:84de:3223 with SMTP id 206-20020a810ad7000000b002e684de3223mr29295789ywk.209.1653403653308; Tue, 24 May 2022 07:47:33 -0700 (PDT) MIME-Version: 1.0 References: <20220519082552.117736-1-wangkefeng.wang@huawei.com> <20220519082552.117736-5-wangkefeng.wang@huawei.com> <4c848b48-6ddf-664a-6296-d85ab49a694d@huawei.com> In-Reply-To: <4c848b48-6ddf-664a-6296-d85ab49a694d@huawei.com> From: Arnd Bergmann Date: Tue, 24 May 2022 16:47:16 +0200 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: [PATCH v3 4/6] mm: ioremap: Add arch_ioremap/iounmap() To: Kefeng Wang Cc: Arnd Bergmann , Catalin Marinas , Will Deacon , Andrew Morton , Linux ARM , Linux Kernel Mailing List , Linux-MM , Christoph Hellwig , Anshuman Khandual X-Provags-ID: V03:K1:zLinL3qV4t901jTOl1Wlj5LL4Sk5fxV+sPKqF5L5dEFQvXnBv+Z Ag5lMVDk0CGoF1QvBgcWw8KAuOcGTH5sdUDtUxGOCmttuTgyhnMFNJOrx0wbMKhPMcIwNN/ aG+5JQOyomYf6As9ah65pWuG8TZ77NnoKQVR3/79e/FdHT6c47nsVH5iwMiGIrGM2h/wYyP 21V/nJBAJPJIo2BkI2XsA== X-UI-Out-Filterresults: notjunk:1;V03:K0:R4S4c/MFEDs=:S7Gkd/jz9TlpXyCPaCsCQ2 UhUT1xIVau7bYCBcVmmfGAnHuTLpTXWraoEl4WbxTWfyQxvjJIZ5yg17rFDnNlVAt6UcqX4t1 p9dVvWcuwZhzyV+pBHLUcZxIWE89EjolqC7D48gMmp7oD63eA5FXvDcag3monWeiGgCT5dnwf n844uWFYgFUXwIf31mFZpFoGA0j2NxKrlt6rlkY89kfTiJIVyY45BkEw+TDDjDYzwLQPDZ/N6 RaTGBEJWE+Ayg53HoRSJGKKuVF+VQ8V9I2WfMKCxOC5FhC+U40lxAc2skpP8k0X0dAgw49cB6 YdGLW8ZUlvlpaJ15i/OZWVrbEod35ny3CyYpev7tW/vVkLW6YBapRjRbcWNoyLx1Ad0Z2Q2Cb wjrEwsrfwupGOgInMJzPc1Sf86jV74kqSc453Y04TqYyYF5rjmgbJgT/FcNrZJyHsKcrUgeP9 egNA/W6hb8oigBKy8XAh/PaBMlMaqt1Rka+Wm6a0uG9L5X92DHak8Hf433R1jDYCRh/g3Gw3W JLphq58J5fi8Dpcfa26Wsc1vtUwupZ9jlEDI9AjUc6rdInyKLcOHZCvuyKYFJc0aTTZTwInoS giO4vISyShVnsOlakmoHYZH4S/K6a35ePPe7k25zC+prJPpRbVKObI5/irLHAcp4xP/MKLrkX BWKXV72erc8iPbKTGNQAzSQyAQkZHkID5CSRQE2Gsv4kEgYEFNfOBzR5zLnHVONP1fvshdWie rJ659CRtfUXVk+o295O7gZzPmOVBecJxtLkRU1OnQ71O94ns60wc9XvXgDtJlHT5itCCzcxRF pGFGdxyUre1MP5h26Zia22UR02dkTKxSzzvgc3w3/x0Ubp+iEHpgaVkLYVrKR5PuYRdC5ppog GLnA1AqMhdIlluRRz2BQ== X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20220524_074743_212495_FF4BA885 X-CRM114-Status: GOOD ( 23.24 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org On Tue, May 24, 2022 at 4:32 PM Kefeng Wang wrote: > On 2022/5/24 20:37, Arnd Bergmann wrote: > > On Thu, May 19, 2022 at 10:25 AM Kefeng Wang wrote: > >> Add special hook for architecture to verify or setup addr, size > >> or prot when ioremap() or iounmap(), which will make the generic > >> ioremap more useful. > >> > >> arch_ioremap() return a pointer, > >> - IS_ERR means return an error > >> - NULL means continue to remap > >> - a non-NULL, non-IS_ERR pointer is directly returned > >> arch_iounmap() return a int value, > >> - 0 means continue to vunmap > >> - error code means skip vunmap and return directly > >> > >> Signed-off-by: Kefeng Wang > > I don't really like interfaces that mix error pointers and NULL pointer > > returns. > > > > Would it be possible to have a special error code other than NULL > > for the fallback case? > > I don't find a good error code, maybe ENOTSUPP, any better suggestion? I had another look at the resulting arm64 function, and it appears that you never actually return a non-error pointer here. If I didn't miss anything, I think the best way would be to change the return type to just indicate success or an error code, and drop the case of returning the actual result, and changing the function name accordingly. Would that work, or do you actually require returning an __iomem token from somewhere else? Arnd _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel