Message ID | 20230503-virt-to-pfn-v6-4-rc1-v2-0-0948d38bddab@linaro.org |
---|---|
Headers |
Return-Path: <linux-kernel-owner@vger.kernel.org> Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:b0ea:0:b0:3b6:4342:cba0 with SMTP id b10csp1259346vqo; Mon, 22 May 2023 00:11:17 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ4bo/qHAEdwLqOszDqAAPNwqE8zV1lgr5M/TfdDMbVeO54lSazitWTsGpsOHbD0/xY8/4yu X-Received: by 2002:a17:903:124b:b0:1ae:a44:841c with SMTP id u11-20020a170903124b00b001ae0a44841cmr11339411plh.42.1684739476997; Mon, 22 May 2023 00:11:16 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1684739476; cv=none; d=google.com; s=arc-20160816; b=0750mToe/+zLg5Egpef+6gBqKWcDbRYc/+6hndgDHSiHwtOgr5ULFJUCjp+j+WdSpZ JcBnO/NzyURisOIC8kGqRky3j6cKy9BGf4TSadw6GZJlKpdQxli3ZJqD17Cqv0Sqx+4E mOMuj7X9aUff67pkBGvopeGLKb1tGNbIv/IV0ZVDXABP+lzzVbRmYekfTpev4CYzTpWL 8IoaLKEa/qh+MGYuL6qA6yA+3num2Ekxoh3Nc5taawglwmJ/BATxomK8lweYbQhEdxob /Ai5P36d9XSALHDgQxBDyTNjNRSNbb9S6RwJlH5itWCthk6NP6BULHXlzFd6j8Dr6Ixy JD5A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:content-transfer-encoding:mime-version :message-id:date:subject:from:dkim-signature; bh=DNPIoJfZfpcGl/mQazzDBrBG+IwcTg57IBktWiArhPQ=; b=WApXSLwYJpSy5LKg8cBAMl3zQIacko9UbDPlgWWRLBkB48ae0yCBb6Bumg9EXcDjyl fd/CUTMVU9UFrL8IPaffNkF9d5hd13kdW8wyLuXbVx0w/vwRAOE9oFIq75WE9vId5Q9t /O5YZg5/j9jTG4lUac2PG3qSh9OUKShcrWsBw1FT3keOWurqtLCKf4GMwtZmaLdYbkqW dTfFNAKZeYIcJ+WOHNfkJZ72KTfsuPFItsSUmT9NfYfr+ibhirb8LsM3HB7c7NOBtqu3 ISKz1m1eUa+gwaoj944xIGYmJTTm8VsYcgZUoFYzHJyATuqsiKcIOa3LUfSxrFCzkVXW GKiQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=pIqcidzj; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id 19-20020a630113000000b0051ba2ec8320si4236075pgb.353.2023.05.22.00.11.02; Mon, 22 May 2023 00:11:16 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=pIqcidzj; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230384AbjEVHAr (ORCPT <rfc822;cscallsign@gmail.com> + 99 others); Mon, 22 May 2023 03:00:47 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:34396 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229571AbjEVHAp (ORCPT <rfc822;linux-kernel@vger.kernel.org>); Mon, 22 May 2023 03:00:45 -0400 Received: from mail-lj1-x22d.google.com (mail-lj1-x22d.google.com [IPv6:2a00:1450:4864:20::22d]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id D1559B0 for <linux-kernel@vger.kernel.org>; Mon, 22 May 2023 00:00:39 -0700 (PDT) Received: by mail-lj1-x22d.google.com with SMTP id 38308e7fff4ca-2af1822b710so49531591fa.1 for <linux-kernel@vger.kernel.org>; Mon, 22 May 2023 00:00:39 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1684738838; x=1687330838; h=cc:to:content-transfer-encoding:mime-version:message-id:date :subject:from:from:to:cc:subject:date:message-id:reply-to; bh=DNPIoJfZfpcGl/mQazzDBrBG+IwcTg57IBktWiArhPQ=; b=pIqcidzjihloELcSapvhUCdnCghhcpBL2z4Vy8JgtA966JDSY312p2dVKBOQ887aSw iguakCpNf3PAfmBeVFG328fxAK11pvXM+PvDUbTHylH/hm1FSSCCnD8N/8h6iQFuwJ5y H8GY0LcLORdHC5DWSKK8EH9jD0Ig/05kq1+WW7S9ttVR5Fd0Y/jSle8a0wHXD7YRJ+Cs sAJaQdm83yOAPswPwxgYXGgvxSwmGSS04/eVSBl9irnWrWsWRK60eOp0aUH7UWXPRdM/ G0pv8uq3cbgyQoNm1TQZrmZpElktwAayLPsULCSW5WYxFgMFezsJ3clVgheXjkOI2PQd ldFg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1684738838; x=1687330838; h=cc:to:content-transfer-encoding:mime-version:message-id:date :subject:from:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=DNPIoJfZfpcGl/mQazzDBrBG+IwcTg57IBktWiArhPQ=; b=OvAmKh/QEPuGjI70RznkKm933BZgVB18vXZgQZeZCm8y23NbXnkdqHBb/ByeQ9Ww5w hs/6kXpOrefVCsxLgKG+P+yZbc79UMnmG2XMVSRKXO8cjT0Byi/m7tV4BTSuCjx2Xppj dpbm6PMW7CYU13/RxnA2XmpiunrwdimznMizidkT3+OqezD8rvwt7+9IOipWiJAXXGRW /KFAUeHOMmC/QcWXFc0MOXN4Dh877qdnHe4zD+aDgaBQvTJI8p1xy45j5QtoiPDe0tJt qs6oRKAPDa9T30QFt1NIDHq5eaB7beBIi8mQEZtXUqCqI+faaWZIcDR4+LCAtN0+Mzyk AdMQ== X-Gm-Message-State: AC+VfDw7VfnFLNs59AAtm8aCbrN43PpVOjkDX4htt+tpG2Lne7zdQku7 4KSCn/NgxsBk0E4OgUhhPgpudP+u9ODYf21cwRs= X-Received: by 2002:a2e:b04d:0:b0:29f:58c6:986e with SMTP id d13-20020a2eb04d000000b0029f58c6986emr3023170ljl.52.1684738837975; Mon, 22 May 2023 00:00:37 -0700 (PDT) Received: from [127.0.1.1] ([85.235.12.238]) by smtp.gmail.com with ESMTPSA id q4-20020a2e8744000000b002adb98fdf81sm1010187ljj.7.2023.05.22.00.00.36 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 22 May 2023 00:00:37 -0700 (PDT) From: Linus Walleij <linus.walleij@linaro.org> Subject: [PATCH v2 00/12] arch: Make virt_to_pfn into a static inline Date: Mon, 22 May 2023 09:00:35 +0200 Message-Id: <20230503-virt-to-pfn-v6-4-rc1-v2-0-0948d38bddab@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit X-B4-Tracking: v=1; b=H4sIABMTa2QC/4WOOw6DMBBEr4JcZ5H5OZAq94gojD+wUmSjNbGIE HePIVWqlG80TzMbC4bQBHbLNkYmYkDvEpSXjKlJutEA6sSs5GXFG15BRFpg8TBbB1FADaQKqG1 zrTrTasE1S+ogg4GBpFPTIf86+dcho1/rUZ7JWFzPD48+8YRh8fQ+L8XiSP+sxwI4CFWLrtXKd qq9P9FJ8rmnkfX7vn8ACYaVheYAAAA= To: Andrew Morton <akpm@linux-foundation.org>, Geert Uytterhoeven <geert@linux-m68k.org>, Vineet Gupta <vgupta@kernel.org>, Catalin Marinas <catalin.marinas@arm.com>, Will Deacon <will@kernel.org>, Arnd Bergmann <arnd@arndb.de>, Russell King <linux@armlinux.org.uk>, Greg Ungerer <gerg@linux-m68k.org> Cc: linux-mm@vger.kernel.org, linux-kernel@vger.kernel.org, linux-m68k@lists.linux-m68k.org, linux-snps-arc@lists.infradead.org, linux-fsdevel@vger.kernel.org, linux-cifs@vger.kernel.org, samba-technical@lists.samba.org, linux-arm-kernel@lists.infradead.org, linux-arch@vger.kernel.org, Linus Walleij <linus.walleij@linaro.org>, Alexandre Ghiti <alexghiti@rivosinc.com>, Tom Talpey <tom@talpey.com> X-Mailer: b4 0.12.1 X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_NONE, SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: <linux-kernel.vger.kernel.org> X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1766577381435234868?= X-GMAIL-MSGID: =?utf-8?q?1766577381435234868?= |
Series |
arch: Make virt_to_pfn into a static inline
|
|
Message
Linus Walleij
May 22, 2023, 7 a.m. UTC
This is an attempt to harden the typing on virt_to_pfn()
and pfn_to_virt().
Making virt_to_pfn() a static inline taking a strongly typed
(const void *) makes the contract of a passing a pointer of that
type to the function explicit and exposes any misuse of the
macro virt_to_pfn() acting polymorphic and accepting many types
such as (void *), (unitptr_t) or (unsigned long) as arguments
without warnings.
For symmetry, we do the same with pfn_to_virt().
The problem with this inconsistent typing was pointed out by
Russell King:
https://lore.kernel.org/linux-arm-kernel/YoJDKJXc0MJ2QZTb@shell.armlinux.org.uk/
And confirmed by Andrew Morton:
https://lore.kernel.org/linux-mm/20220701160004.2ffff4e5ab59a55499f4c736@linux-foundation.org/
So the recognition of the problem is widespread.
These platforms have been chosen as initial conversion targets:
- ARC
- ARM
- ARM64/Aarch64
- asm-generic (including for example x86)
- m68k
The idea is that if this goes in, it will block further misuse
of the function signatures due to the large compile coverage,
and then I can go in and fix the remaining platforms on a
one-by-one basis.
Some of the patches have been circulated before but were not
picked up by subsystem maintainers, so now the arch tree is
target for this series.
It has passed zeroday builds after a lot of iterations in my
personal tree, but there could be some randconfig outliers.
The To/Cc list would be too long if I include all the minor
patches maintainers, so I have trimmed it down to the mailing
lists since these people certainly have received the patches
before.
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
---
Changes in v2:
- Fix some "void * x" into "void *x" in generic page accessors and
in m68k.
- Collected a few ACKs
- All build tests appear to pass!
- Added Andrew Mortin to To: line to see what he thinks
- Link to v1: https://lore.kernel.org/r/20230503-virt-to-pfn-v6-4-rc1-v1-0-6c4698dcf9c8@linaro.org
---
Linus Walleij (12):
fs/proc/kcore.c: Pass a pointer to virt_addr_valid()
m68k: Pass a pointer to virt_to_pfn() virt_to_page()
ARC: init: Pass a pointer to virt_to_pfn() in init
riscv: mm: init: Pass a pointer to virt_to_page()
cifs: Pass a pointer to virt_to_page()
cifs: Pass a pointer to virt_to_page() in cifsglob
netfs: Pass a pointer to virt_to_page()
arm64: vdso: Pass (void *) to virt_to_page()
asm-generic/page.h: Make pfn accessors static inlines
ARM: mm: Make virt_to_pfn() a static inline
arm64: memory: Make virt_to_pfn() a static inline
m68k/mm: Make pfn accessors static inlines
arch/arc/mm/init.c | 2 +-
arch/arm/common/sharpsl_param.c | 2 +-
arch/arm/include/asm/delay.h | 2 +-
arch/arm/include/asm/io.h | 2 +-
arch/arm/include/asm/memory.h | 17 ++++++++++++-----
arch/arm/include/asm/page.h | 4 ++--
arch/arm/include/asm/pgtable.h | 2 +-
arch/arm/include/asm/proc-fns.h | 2 --
arch/arm/include/asm/sparsemem.h | 2 +-
arch/arm/include/asm/uaccess-asm.h | 2 +-
arch/arm/include/asm/uaccess.h | 2 +-
arch/arm/kernel/asm-offsets.c | 2 +-
arch/arm/kernel/entry-armv.S | 2 +-
arch/arm/kernel/entry-common.S | 2 +-
arch/arm/kernel/entry-v7m.S | 2 +-
arch/arm/kernel/head-nommu.S | 3 +--
arch/arm/kernel/head.S | 2 +-
arch/arm/kernel/hibernate.c | 2 +-
arch/arm/kernel/suspend.c | 2 +-
arch/arm/kernel/tcm.c | 2 +-
arch/arm/kernel/vmlinux-xip.lds.S | 3 +--
arch/arm/kernel/vmlinux.lds.S | 3 +--
arch/arm/mach-berlin/platsmp.c | 2 +-
arch/arm/mach-keystone/keystone.c | 2 +-
arch/arm/mach-omap2/sleep33xx.S | 2 +-
arch/arm/mach-omap2/sleep43xx.S | 2 +-
arch/arm/mach-omap2/sleep44xx.S | 2 +-
arch/arm/mach-pxa/gumstix.c | 2 +-
arch/arm/mach-rockchip/sleep.S | 2 +-
arch/arm/mach-sa1100/pm.c | 2 +-
arch/arm/mach-shmobile/headsmp-scu.S | 2 +-
arch/arm/mach-shmobile/headsmp.S | 2 +-
arch/arm/mach-socfpga/headsmp.S | 2 +-
arch/arm/mach-spear/spear.h | 2 +-
arch/arm/mm/cache-fa.S | 1 -
arch/arm/mm/cache-v4wb.S | 1 -
arch/arm/mm/dma-mapping.c | 2 +-
arch/arm/mm/dump.c | 2 +-
arch/arm/mm/init.c | 2 +-
arch/arm/mm/kasan_init.c | 1 -
arch/arm/mm/mmu.c | 2 +-
arch/arm/mm/physaddr.c | 2 +-
arch/arm/mm/pmsa-v8.c | 2 +-
arch/arm/mm/proc-v7.S | 2 +-
arch/arm/mm/proc-v7m.S | 2 +-
arch/arm/mm/pv-fixup-asm.S | 2 +-
arch/arm64/include/asm/memory.h | 9 ++++++++-
arch/arm64/kernel/vdso.c | 2 +-
arch/m68k/include/asm/mcf_pgtable.h | 4 ++--
arch/m68k/include/asm/page_mm.h | 11 +++++++++--
arch/m68k/include/asm/page_no.h | 11 +++++++++--
arch/m68k/include/asm/sun3_pgtable.h | 4 ++--
arch/m68k/mm/mcfmmu.c | 3 ++-
arch/m68k/mm/motorola.c | 4 ++--
arch/m68k/mm/sun3mmu.c | 2 +-
arch/m68k/sun3/dvma.c | 2 +-
arch/m68k/sun3x/dvma.c | 2 +-
arch/riscv/mm/init.c | 4 ++--
drivers/memory/ti-emif-sram-pm.S | 2 +-
fs/cifs/cifsglob.h | 2 +-
fs/cifs/smbdirect.c | 2 +-
fs/netfs/iterator.c | 2 +-
fs/proc/kcore.c | 2 +-
include/asm-generic/page.h | 12 ++++++++++--
64 files changed, 109 insertions(+), 80 deletions(-)
---
base-commit: ac9a78681b921877518763ba0e89202254349d1b
change-id: 20230503-virt-to-pfn-v6-4-rc1-4f5739e8d60d
Best regards,