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 40CEEC77B7F for ; Tue, 16 May 2023 06:18:03 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id CC606280003; Tue, 16 May 2023 02:18:02 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id C7704900002; Tue, 16 May 2023 02:18:02 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id B3E75280003; Tue, 16 May 2023 02:18:02 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0012.hostedemail.com [216.40.44.12]) by kanga.kvack.org (Postfix) with ESMTP id A4846900002 for ; Tue, 16 May 2023 02:18:02 -0400 (EDT) Received: from smtpin16.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay05.hostedemail.com (Postfix) with ESMTP id 701864147A for ; Tue, 16 May 2023 06:18:02 +0000 (UTC) X-FDA: 80795112804.16.2704DB2 Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by imf30.hostedemail.com (Postfix) with ESMTP id AC21F80009 for ; Tue, 16 May 2023 06:18:00 +0000 (UTC) Authentication-Results: imf30.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b="tucX/9Zx"; spf=pass (imf30.hostedemail.com: domain of rppt@kernel.org designates 139.178.84.217 as permitted sender) smtp.mailfrom=rppt@kernel.org; dmarc=pass (policy=none) header.from=kernel.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1684217880; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=xOwLb+YKkVqzq/Yd6Z9Dt4xXsxGtiUBBsQYDaWFUVYg=; b=fKjQvs+vWyrh75yW4mCxtw880TzmonbEhuu2viHxYzooBxSfj6QGUJIV2y62JnUm7NAfKy Gd178e/FGd1OwS2SyzOtWkHwEGWXdJE38z5dzCZUF4BOxka7scoEsucK/gUGqw//Jzcc7W HYrTXXWjnH6/ac6nlXxsttlk9U1A9f4= ARC-Authentication-Results: i=1; imf30.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b="tucX/9Zx"; spf=pass (imf30.hostedemail.com: domain of rppt@kernel.org designates 139.178.84.217 as permitted sender) smtp.mailfrom=rppt@kernel.org; dmarc=pass (policy=none) header.from=kernel.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1684217880; a=rsa-sha256; cv=none; b=NRhalStyXJd4Iesywc5wW5fRCHAZamLf5229Ax77RGT4KIWUEO3FCMBRs4Taw/zwc/k3WP 7u4UxyiZeunV5dzdA/sNTr2f2/c9Nu5V556eFnWysDLAVGh+nxaurmJwBVQzBdhierSemy oxjEpzvVu//fYp2FbYRY0feMU9FXG3I= Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id B5CF463078; Tue, 16 May 2023 06:17:59 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id AB929C433D2; Tue, 16 May 2023 06:17:55 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1684217879; bh=KGg4vNFKC0FHIdj1tqnZudinSZ5tBcJNQhXldA3DVwM=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=tucX/9Zxs0lVyiGplSICMROFhdeDetrKuUXJMpSR2R+9RV28i4yXXv3AMOD2Eexor y8PucAdUocbnJ9rFAAN8JOPT7FVfyKxNdfm9Tjh9DGB2RybETdbMSW8irHElPlLLtQ IgT9un164z+io7Mbe6pQLxYZ35jaA7rw0CeHTalN5vY+vVCfpYPY5IVuywb8W9KBKL smL2zzlSrPXxAcoEVAhrjcJeyUbM4Y2YB9ykBCzBcTTAAzybu9gGy22J1qFQmu7eL4 BhGPqUQqg+XNH4Njk2xk7X+y4T9dcs/85/GuMO/VTBfvCF/MQwO7y58lfPUdQGQKb+ wMRqU04Rs72Gw== Date: Tue, 16 May 2023 09:17:51 +0300 From: Mike Rapoport To: Baoquan He Cc: linux-kernel@vger.kernel.org, linux-arch@vger.kernel.org, linux-mm@kvack.org, arnd@arndb.de, christophe.leroy@csgroup.eu, hch@infradead.org, agordeev@linux.ibm.com, wangkefeng.wang@huawei.com, schnelle@linux.ibm.com, David.Laight@aculab.com, shorne@gmail.com, willy@infradead.org, deller@gmx.de Subject: Re: [PATCH v5 RESEND 04/17] mm/ioremap: Define generic_ioremap_prot() and generic_iounmap() Message-ID: References: <20230515090848.833045-1-bhe@redhat.com> <20230515090848.833045-5-bhe@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20230515090848.833045-5-bhe@redhat.com> X-Rspam-User: X-Rspamd-Server: rspam01 X-Rspamd-Queue-Id: AC21F80009 X-Stat-Signature: jgdwy1z5pcdw8i9c4uh883wo9to7i8f5 X-HE-Tag: 1684217880-375968 X-HE-Meta: U2FsdGVkX1+pJfLnKYqyxYoqL9NNotNFkuhgPx56hf1EHlYKzpI8T7b7z/Q6jFoLUk5DJdO20Dln7bf8Dx5fx5ZA74q0lCdNrcxvV24nrUSlAl2mt6gc/MfYkDhhBCnnN4PY0SEL+Q8NdKqxnjbhx2KoTD1tOo0WDhMkhy8nMxwVVFrjGrS8Kpl0DSvylI+4fWZ8gZ4LWKy8P1kklmtCElNivA+SURQx7+tdo2h2HVReN0lVjZAP1JiUgjKMOWnUplTZnvGKZqQydLCx2K9NPiInWf/26mxTRdyd2g3FDJZJOeSz4q7PK0vmJZBD12RE3BrHZw2h3gfjVfB6ooC+H3ECo6oN+TqFTuiRDUL1mtRZerqdqDwu97UDUNKdCRpNj4t7mbi4GWBWqewwi452xKIBsO82wM3Ixwp0H7MzaiSlZ9MuhAKGLYL1+4VMzwCD8j5Zqk6mFI3HLRGfMha5XfX8r0twItflKU8vsJnQ1p2IXX8ITAUxQqkM0Rd0nAnrScLIrhwXdepM3YfZhPfaGue8PrnbLAinXifIRDhe1onu82mk8jy1vie/sKHoTSMrHSal0Wz92L3lUXQ0MAsA4J6CsJ2Lc5TR6DqXB7yVIAQlcauu0eqVwkwp4NCGewhgdzNdDNuKkGkVdeE4IZY02zBwujoYATM7CGkE6rAol5w6AKSb7TR6dq1HvtMIYYce8rz7DgtIANz5J+oY+ZhX5oo8j+Em6kSO5Q8thdMStMJeMa+EAIIv6ywRG8zF7iv4D/3pTS6OojjzNKkJPrpvItQL/2SPaI4e7P3odWCU0pVzZvAfQszCmnMVt1DQ0sRmPTTuP6XIgj1ewphWMn4bysUS504l7ksDFdVaPyqHaQn7JK9nIDI7kzaIQqPQDIAsB9UF4R1m2Ug2A0ehTckgcH+vSc5xcJyrVkCEzdQfYY7DpOWt9QSAeZhiJVeoOavKGvELX9Gh5aRTZXK6zO+ MjdvrCIR 1AgiTqmW9w2rD5ybLwUCDJzbjaAwY2T7Qm3jtzcVfGw9hc7P7OXKJP33qvLzK3V0Xwis53qVlKACoxVdiJb9oYP6bWe5JG5XzO+7229MqV9Olrm4uPmCmTnjPpy3HQ61T3Hf6cx67IHqG3HDcwbATPzgrqCXX99uCsvLGQThMcTigaotLzpdAzxhN1L1eSCtGo3lwj2nwDdS1DZEGpgMFjWX8IMC6KDybJBREBgKFhkdtvNcC9e8HNMQAUJxMDQ0yOWGRmdKdbp25cRXp41nIY4pFmiZ2XHaw9tMoK5O+18HfEhDJhDGB9qg/Ezpx63Ii+8QinQXbFGOf4tVuRG36OJXb7Ev5rJzvMqZr8wg2bRPo3+29yMmQZjqHXVbWqA8z1MgBr+tPfLkFB5aFWWeEsteslv6qT9JywIkhqpbTfJyk1qD5Tj4viWImjqejraapg15LWjFDZhK/zpss7SVOXGvD1BAqVoYTwHml 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 Mon, May 15, 2023 at 05:08:35PM +0800, Baoquan He wrote: > From: Christophe Leroy > > Define a generic version of ioremap_prot() and iounmap() that > architectures can call after they have performed the necessary > alteration to parameters and/or necessary verifications. > > Signed-off-by: Christophe Leroy > Signed-off-by: Baoquan He Reviewed-by: Mike Rapoport (IBM) > --- > include/asm-generic/io.h | 4 ++++ > mm/ioremap.c | 22 ++++++++++++++++------ > 2 files changed, 20 insertions(+), 6 deletions(-) > > diff --git a/include/asm-generic/io.h b/include/asm-generic/io.h > index 587e7e9b9a37..a7ca2099ba19 100644 > --- a/include/asm-generic/io.h > +++ b/include/asm-generic/io.h > @@ -1073,9 +1073,13 @@ static inline bool iounmap_allowed(void *addr) > } > #endif > > +void __iomem *generic_ioremap_prot(phys_addr_t phys_addr, size_t size, > + pgprot_t prot); > + > void __iomem *ioremap_prot(phys_addr_t phys_addr, size_t size, > unsigned long prot); > void iounmap(volatile void __iomem *addr); > +void generic_iounmap(volatile void __iomem *addr); > > static inline void __iomem *ioremap(phys_addr_t addr, size_t size) > { > diff --git a/mm/ioremap.c b/mm/ioremap.c > index 8652426282cc..db6234b9db59 100644 > --- a/mm/ioremap.c > +++ b/mm/ioremap.c > @@ -11,8 +11,8 @@ > #include > #include > > -void __iomem *ioremap_prot(phys_addr_t phys_addr, size_t size, > - unsigned long prot) > +void __iomem *generic_ioremap_prot(phys_addr_t phys_addr, size_t size, > + pgprot_t prot) > { > unsigned long offset, vaddr; > phys_addr_t last_addr; > @@ -28,7 +28,7 @@ void __iomem *ioremap_prot(phys_addr_t phys_addr, size_t size, > phys_addr -= offset; > size = PAGE_ALIGN(size + offset); > > - if (!ioremap_allowed(phys_addr, size, prot)) > + if (!ioremap_allowed(phys_addr, size, pgprot_val(prot))) > return NULL; > > area = get_vm_area_caller(size, VM_IOREMAP, > @@ -38,17 +38,22 @@ void __iomem *ioremap_prot(phys_addr_t phys_addr, size_t size, > vaddr = (unsigned long)area->addr; > area->phys_addr = phys_addr; > > - if (ioremap_page_range(vaddr, vaddr + size, phys_addr, > - __pgprot(prot))) { > + if (ioremap_page_range(vaddr, vaddr + size, phys_addr, prot)) { > free_vm_area(area); > return NULL; > } > > return (void __iomem *)(vaddr + offset); > } > + > +void __iomem *ioremap_prot(phys_addr_t phys_addr, size_t size, > + unsigned long prot) > +{ > + return generic_ioremap_prot(phys_addr, size, __pgprot(prot)); > +} > EXPORT_SYMBOL(ioremap_prot); > > -void iounmap(volatile void __iomem *addr) > +void generic_iounmap(volatile void __iomem *addr) > { > void *vaddr = (void *)((unsigned long)addr & PAGE_MASK); > > @@ -58,4 +63,9 @@ void iounmap(volatile void __iomem *addr) > if (is_vmalloc_addr(vaddr)) > vunmap(vaddr); > } > + > +void iounmap(volatile void __iomem *addr) > +{ > + generic_iounmap(addr); > +} > EXPORT_SYMBOL(iounmap); > -- > 2.34.1 > > -- Sincerely yours, Mike.