From patchwork Mon Jun 6 07:48:09 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kefeng Wang X-Patchwork-Id: 12870094 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 D1FD6C43334 for ; Mon, 6 Jun 2022 07:40:27 +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:MIME-Version:Message-ID:Date:Subject:CC :To:From:Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:In-Reply-To:References: List-Owner; bh=CHOORnM01VVTl03E0BIxTvXAWeaBGQVrXYmTFKefYpE=; b=cc9vvVjD0xkcrr KtRNto/Qo45wwpNVByUFxFtOfDz0uvUTixN249gPrnBvk3wrncK8Sm5PgbPT4i3mcoZetiye32JEw 9bwA0QMC3Td2qlZgReYxXOryAtqvjsQPgNua8RSmH9DaAPMGIlFtzCgllVxJMW3jO2FYi3zug3Mcr ySJLs+ehBleOIvzXX3g54B8o435+c2lLG8WyzzN3/HysVlu5iSCQvgamB1yPs29AIe86apOWBR1Ph f9sHJ4YeDkg2Mk4oElzU8gLkCIQ00+OY1FtHIUHQ+K6wegNNf6q9CFY7RzzgR0bHEHr+DO56cTkFU FqVVTMgK7NFXYvss9r8g==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1ny7Km-00HWpb-MK; Mon, 06 Jun 2022 07:39:32 +0000 Received: from szxga02-in.huawei.com ([45.249.212.188]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1ny7KC-00HWVi-Hz for linux-arm-kernel@lists.infradead.org; Mon, 06 Jun 2022 07:38:58 +0000 Received: from dggpemm500024.china.huawei.com (unknown [172.30.72.57]) by szxga02-in.huawei.com (SkyGuard) with ESMTP id 4LGlgf4W8DzjXT0; Mon, 6 Jun 2022 15:37:18 +0800 (CST) Received: from dggpemm500001.china.huawei.com (7.185.36.107) by dggpemm500024.china.huawei.com (7.185.36.203) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.24; Mon, 6 Jun 2022 15:38:35 +0800 Received: from localhost.localdomain.localdomain (10.175.113.25) by dggpemm500001.china.huawei.com (7.185.36.107) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.24; Mon, 6 Jun 2022 15:38:35 +0800 From: Kefeng Wang To: , , , , CC: , , , , Kefeng Wang Subject: [PATCH v4 0/6] arm64: Cleanup ioremap() and support ioremap_prot() Date: Mon, 6 Jun 2022 15:48:09 +0800 Message-ID: <20220606074815.139265-1-wangkefeng.wang@huawei.com> X-Mailer: git-send-email 2.35.3 MIME-Version: 1.0 X-Originating-IP: [10.175.113.25] X-ClientProxiedBy: dggems704-chm.china.huawei.com (10.3.19.181) To dggpemm500001.china.huawei.com (7.185.36.107) X-CFilter-Loop: Reflected X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20220606_003856_853602_4DE7BB62 X-CRM114-Status: GOOD ( 10.81 ) 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: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org 1. Enhance generic ioremap to make it more useful. 2. Let's arm64 use GENERIC_IOREMAP to cleanup code. 3. Support HAVE_IOREMAP_PROT on arm64, which enable generic_access_phys(), it is useful when debug(eg, gdb) via access_process_vm device memory infrastructure. v4: - update based on v5.19-rc1 - add generic arch_ioremap/arch_iounmap define, per Andrew Monrton - simply return an int for arch_ioremap and rename arch_ioremap/arch_iounmap to a better name, ioremap_allowed/iounmap_allowed, per Arnd Bergmann - add __force annotation to slince sparse warning in vunmap() Note, 1) after the renaming, the arm's change(patch1) is not the necessary dependence for the following changes, but as a cleanup, still post it here, hope it go in via the arm64 tree with reset of the series directly if no object. 2) the changes in this version only influence on patch4/5, so retain the ack/review. v3: - add cleanup patch to kill ARM's unused arch_iounmap(the naming will be used in GENERIC_IOREMAP) and add comments for arch_ioremap/arch_iounmap hooks, per Anshuman Khandual - collect ack/review v2: - s/addr/phys_addr in ioremap_prot, suggested by Andrew Morton - rename arch_ioremap/iounmap_check to arch_ioremap/iounmap and change return value, per Christoph Hellwig and Andrew Morton - and use 'ifndef arch_ioremap' instead of weak function, per Arnd Bergmann - collect ack/review Kefeng Wang (6): ARM: mm: kill unused runtime hook arch_iounmap() mm: ioremap: Use more sensibly name in ioremap_prot() mm: ioremap: Setup phys_addr of struct vm_struct mm: ioremap: Add ioremap/iounmap_allowed() arm64: mm: Convert to GENERIC_IOREMAP arm64: Add HAVE_IOREMAP_PROT support .../features/vm/ioremap_prot/arch-support.txt | 2 +- arch/arm/include/asm/io.h | 4 +- arch/arm/mm/ioremap.c | 9 +- arch/arm/mm/nommu.c | 9 +- arch/arm64/Kconfig | 2 + arch/arm64/include/asm/io.h | 20 +++-- arch/arm64/include/asm/pgtable.h | 10 +++ arch/arm64/kernel/acpi.c | 2 +- arch/arm64/mm/hugetlbpage.c | 10 --- arch/arm64/mm/ioremap.c | 84 +++---------------- include/asm-generic/io.h | 27 +++++- mm/ioremap.c | 26 ++++-- 12 files changed, 84 insertions(+), 121 deletions(-)