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 kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 548C4C4332F for ; Wed, 27 Apr 2022 18:20:51 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id E2E6F6B0071; Wed, 27 Apr 2022 14:20:50 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id DDF1F6B0073; Wed, 27 Apr 2022 14:20:50 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id CA8126B0074; Wed, 27 Apr 2022 14:20:50 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (relay.hostedemail.com [64.99.140.26]) by kanga.kvack.org (Postfix) with ESMTP id BBAA56B0071 for ; Wed, 27 Apr 2022 14:20:50 -0400 (EDT) Received: from smtpin03.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id 9C0982570D for ; Wed, 27 Apr 2022 18:20:50 +0000 (UTC) X-FDA: 79403475060.03.9916BAA Received: from mout.kundenserver.de (mout.kundenserver.de [217.72.192.73]) by imf31.hostedemail.com (Postfix) with ESMTP id 1232420052 for ; Wed, 27 Apr 2022 18:20:40 +0000 (UTC) Received: from mail-yw1-f178.google.com ([209.85.128.178]) by mrelayeu.kundenserver.de (mreue106 [213.165.67.113]) with ESMTPSA (Nemesis) id 1MOzfO-1nVYp21TKO-00POHQ for ; Wed, 27 Apr 2022 20:20:48 +0200 Received: by mail-yw1-f178.google.com with SMTP id 00721157ae682-2f7c57ee6feso28592347b3.2 for ; Wed, 27 Apr 2022 11:20:47 -0700 (PDT) X-Gm-Message-State: AOAM531y5Qu5LA9UpkaHFcJllUfgx/OTPD4syBtARMBqXxpxzpiTH1G6 zSU8lu21ZbemidvCpZpjab0TpckS6bHWOZlyPlY= X-Google-Smtp-Source: ABdhPJwvEoSUguhdRwTP+lohWXQtYJ9DDg1Zn7qIjSsaEiGfg1kkd2iKF2q7oFkNsz/JpP2X/5Hv5gVbR3gnWZxOUM4= X-Received: by 2002:a81:2305:0:b0:2f7:dadb:2162 with SMTP id j5-20020a812305000000b002f7dadb2162mr17396473ywj.42.1651083646618; Wed, 27 Apr 2022 11:20:46 -0700 (PDT) MIME-Version: 1.0 References: <20220427121413.168468-1-wangkefeng.wang@huawei.com> <20220427121413.168468-3-wangkefeng.wang@huawei.com> In-Reply-To: <20220427121413.168468-3-wangkefeng.wang@huawei.com> From: Arnd Bergmann Date: Wed, 27 Apr 2022 20:20:30 +0200 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: [PATCH 2/4] mm: ioremap: Add arch_ioremap/iounmap_check() To: Kefeng Wang Cc: Catalin Marinas , Will Deacon , Andrew Morton , Linux ARM , Linux Kernel Mailing List , Linux-MM Content-Type: text/plain; charset="UTF-8" X-Provags-ID: V03:K1:60s0MuqQwqsLSEheGJuP8GyfrikGcccGGKdZEF2HtYsEq/S9Yat RzUg61cESCtP9utoKi75z/fWor2ueR7DORYYjXJV9DJQhBQfBqatmKKPxyH/08pZNCNtyD/ QbHkRnB0s3VcTxdGkjw+AkUstT1z3URXatOJPi9cQVrCPEH5DXGbKbfzlb5H5uMHJUdV9jA v7A9sWqSYlpg6+tW7xnrg== X-UI-Out-Filterresults: notjunk:1;V03:K0:E83wmg3s8jw=:lgo0YYEIRdYbcZv5LaB0hN HmJbfUtxEOxwfwZNBVj4v3eG+Rc9y8l9NZ/BGeh2c0Z88skbuPiO8hlcpgaSkpFj+MdQLTxKr m7YHmp6qqXq/ySMGU0e4VHI8iY2Wo5xZtn89cRMVcp42cC93qh9Z9r5Lj3eoHi0C0CliuI7St fZVAKaBrNMQyeYOHeT7VToSrpeH1LxzxvPQmVnxXz5cMk/yb7zjwpOwIc0ImAa2xNUXPwi3au f+forZZmrYdSgwoC6HgGew2WKA/rx3bWDKU1lE5cHxy1c4NAAVRXxFRjC4DdZHWG9OwuYV3XR qilk5rh+wDyCFJ4qB39hOlt1V/u0KwW872Xj+ebHyAXowUAwx/GbywVA/iWn24eDHt8k6vNql KFz9jHiMGAXntnwyOkQWKUKukPUTq4TrMFi47xyRrhXMRStWuD1zC2jv/Ujiphd4iOZjC7R/1 yxL4TCo2LWxG+hQ6x93zM8jC0P7Uo/ZvfbdmLRU3H0rN8JwSoqekNlzG0nI34PfrLLcd9Ld+N S5jRcmBXjMoIeFF73+YVx8nroFiv+wkgVLo0Mid3orrc52sZNEmSL/2FVi1Kqidxvfv1KCj8V ym828uJXFXJDa9zia6c9Ash4Z6Tgy8zznpDOLjOq/yyfYbHLlvMNDuZ4k8X4EsFzlqiyNVUMr elSQyuIZF4acqZQosp+PG/aTTXTgCyJnVwjBUSOV6u4/f/mHYWPnpAXK2JOjFSkmwtbg6UfnT 5g+6WRIaD65ADodyhX3SwnzHCsPlUyNNoqMYIunEuHOCF6jvLybuSCxjDN57oBLGJJJtH7W06 W4MgJExBpRjfbqZ/Fy/vlAaQnrG2cy9vN0cAsS8GbOwMn6m1Cw= X-Stat-Signature: 7p48cye9jyi3winqddrdjccr1py7eug4 Authentication-Results: imf31.hostedemail.com; dkim=none; spf=none (imf31.hostedemail.com: domain of arnd@arndb.de has no SPF policy when checking 217.72.192.73) smtp.mailfrom=arnd@arndb.de; dmarc=none X-Rspam-User: X-Rspamd-Server: rspam01 X-Rspamd-Queue-Id: 1232420052 X-HE-Tag: 1651083640-561082 X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: On Wed, Apr 27, 2022 at 2:14 PM Kefeng Wang wrote: > @@ -964,6 +964,9 @@ static inline void iounmap(volatile void __iomem *addr) > #elif defined(CONFIG_GENERIC_IOREMAP) > #include > > +bool arch_ioremap_check(phys_addr_t addr, size_t size, unsigned long prot); > +bool arch_iounmap_check(void __iomem *addr); > + > void __iomem *ioremap_prot(phys_addr_t addr, size_t size, unsigned long prot); > void iounmap(volatile void __iomem *addr); > > diff --git a/mm/ioremap.c b/mm/ioremap.c > index 522ef899c35f..d1117005dcc7 100644 > --- a/mm/ioremap.c > +++ b/mm/ioremap.c > @@ -11,6 +11,16 @@ > #include > #include > > +bool __weak arch_ioremap_check(phys_addr_t addr, size_t size, unsigned long prot) > +{ > + return true; > +} > + > +bool __weak arch_iounmap_check(void __iomem *addr) > +{ > + return true; > +} > + I don't really like the weak functions. The normal way to do this in asm-generic headers is to have something like #ifndef arch_ioremap_check static inline bool arch_ioremap_check(phys_addr_t addr, size_t size, unsigned long prot) { return true; } #endif and then in architectures that actually do some checking, have these bits in asm/io.h bool arch_ioremap_check(phys_addr_t addr, size_t size, unsigned long prot); #define arch_ioremap_check arch_ioremap_check (or alternatively an extern declaration, if the implementation is nontrivial) It may be worth pointing out that either way requires including asm-generic/io.h, which most architectures don't. This is probably fine, as only csky, riscv and now arm64 use CONFIG_GENERIC_IOREMAP, and we can probably require that any further architectures using this symbol also have to use asm-generic/io.h. Arnd