From nobody Wed Sep 10 01:09:09 2025 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id CF7C42FAC09; Mon, 8 Sep 2025 11:11:56 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=205.220.165.32 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1757329918; cv=fail; b=kAvAL3neR2W4+uOV8yc9vrUNyjq2/tKUKA+1yW7H9dF+LRqReB4T9AATZpgnPuqKbcrndTHp6r+sXZ1b05AZ2vxyl2Mxi1fMnuL6UGq6ComA7f1cXyZhNbJ1m7onIFsZAIPUKuAONxQ+IULG43Jc0mUhhfUISmsyNmRmpCE1QXg= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1757329918; c=relaxed/simple; bh=ZlUtdYAF+ZnmoqxPK7rGYj0njnwXbMri69ZNafrs6sM=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=S4Q1j+hL0NBhI9Rt0/69ZSJGF+yacr7T4pDJ0a+3+19/aewzvnZwlKSRn2UGmd2BJRED7TJVPxRecWETKWd+fbA9+hMmWMggyGrPAWWrlWbuyug7tHnuEm5N1ojqlAJslMfDJ6b8cofpbYCqjHkhusG7unRng26Vsu3ca8q8HV8= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com; spf=pass smtp.mailfrom=oracle.com; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b=pTWjqNgl; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=e1AzVsJt; arc=fail smtp.client-ip=205.220.165.32 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oracle.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b="pTWjqNgl"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="e1AzVsJt" Received: from pps.filterd (m0333521.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 588AnmpV003050; Mon, 8 Sep 2025 11:11:05 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s= corp-2025-04-25; bh=nxkWlLtokqabHXHmPgkp4TNnmeCCeD6Mtfl16z2oXcc=; b= pTWjqNglTCTy7j/M0BMReHiExAwTMq/BUjraeXmurBCCEFUfP2AD0A8kZ64AMoJj +SVHiW8aUqjQPyrCb73ohyiv5vla1RrnMOt1AqMhCmU5lkJB/fc6dMXQT4ao5lYr MRUbic3R709UBmn4h0Pz5l4A6jMfnQHBioSfOhoI+GyChp9qIGqKzmK//eyGuxkc 58i++N6SflsCaYqEillTQiJvoYM4TePItB/SIgB3pk7K5dawdxUBxO9wkVeeL8Y7 P6ZQRWjwAYZFTv0SsD7ieXeFRctUKNfZfIt3cZlIU3UHiFBzxrr4XJf19+j5fphd 8TilnmD+aHdnX5YV0ZyE2g== Received: from phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta01.appoci.oracle.com [138.1.114.2]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 491wqug0y7-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 08 Sep 2025 11:11:05 +0000 (GMT) Received: from pps.filterd (phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (8.18.1.2/8.18.1.2) with ESMTP id 5889pgY1033216; Mon, 8 Sep 2025 11:11:04 GMT Received: from nam12-mw2-obe.outbound.protection.outlook.com (mail-mw2nam12on2067.outbound.protection.outlook.com [40.107.244.67]) by phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 490bd91qp6-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 08 Sep 2025 11:11:04 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=cfgo9grdJ7Fl4noiOGY1Qf2JzdpQtR62DxvMOdHmLJGoRS+KWXmKUx7Vwgozg/WC/D7Qw3mijNCzBOy/15OUrSsrdnWyLVl3Qo3Re4Yb2s0772rSJyWJPE4mR9geigT8PX7zczt029hmkOoOXrbnbGg52x/QamrztZfgnyK53X2xKrHzI8h1g1nZ+HK4kIohu2webg6k37Zxhf4+RY+JtpG3wodejrmS3o1WuHVEEhlry6Hz/Pnekqk9NFMwb0EH0g1LkSxscZJhBiNzPOkBxOKrd0a4PRU5AGmyma04eyimR79CqZNYoQrschRWf11Oy+CZqCHkvZdGwbechy/mgA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=nxkWlLtokqabHXHmPgkp4TNnmeCCeD6Mtfl16z2oXcc=; b=iPSl/QtqFakGlWViy5y2iKrbmvimr86G51HOL8ow6ZAf7YzlQitGfLU8UsV9ue7nECbWuK1k2QEqomLT3Fn5e9qND0sJPyQ2E++S0J1lM0s62NLjSTQuLivzFKJGVDZxaTWhV7Z9RLN5Yo3fKX9BpN+/eSh+qFWe6Ly2np9rLTflMFMhTrE47BW2BiTls+UE4NubHLVMLTxak8ddYd+rfL2onltcDVahZEEbQIWTpj76zHX9+m7xvUqDCa0HvRTE9fEEsPh4gHTpvmjp9GVhCrmx0j32bV7qxlP9ftrTpDCwl2PlD3VtgS/WaFYiXK1TuXIGez/VKJeF8DmrMDk8Yw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com; dkim=pass header.d=oracle.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=nxkWlLtokqabHXHmPgkp4TNnmeCCeD6Mtfl16z2oXcc=; b=e1AzVsJt+0dOed4WAXOvEIVD09BY4AjbutrbLBAowineErab/VUawQW9NLY1cSZ7WRGYx8w5Jnn7YQwhjXjlR1JqO2fUae6YbTrbPYdoXhriCbY1RQqtoF7remh/JD3hw3zLTWIF71k08FR+yK1AwvjU7rmaEw3oCB9DXlgzGH8= Received: from DM4PR10MB8218.namprd10.prod.outlook.com (2603:10b6:8:1cc::16) by DS7PR10MB7155.namprd10.prod.outlook.com (2603:10b6:8:e0::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9094.19; Mon, 8 Sep 2025 11:11:00 +0000 Received: from DM4PR10MB8218.namprd10.prod.outlook.com ([fe80::2650:55cf:2816:5f2]) by DM4PR10MB8218.namprd10.prod.outlook.com ([fe80::2650:55cf:2816:5f2%5]) with mapi id 15.20.9094.018; Mon, 8 Sep 2025 11:11:00 +0000 From: Lorenzo Stoakes To: Andrew Morton Cc: Jonathan Corbet , Matthew Wilcox , Guo Ren , Thomas Bogendoerfer , Heiko Carstens , Vasily Gorbik , Alexander Gordeev , Christian Borntraeger , Sven Schnelle , "David S . Miller" , Andreas Larsson , Arnd Bergmann , Greg Kroah-Hartman , Dan Williams , Vishal Verma , Dave Jiang , Nicolas Pitre , Muchun Song , Oscar Salvador , David Hildenbrand , Konstantin Komarov , Baoquan He , Vivek Goyal , Dave Young , Tony Luck , Reinette Chatre , Dave Martin , James Morse , Alexander Viro , Christian Brauner , Jan Kara , "Liam R . Howlett" , Vlastimil Babka , Mike Rapoport , Suren Baghdasaryan , Michal Hocko , Hugh Dickins , Baolin Wang , Uladzislau Rezki , Dmitry Vyukov , Andrey Konovalov , Jann Horn , Pedro Falcato , linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org, linux-fsdevel@vger.kernel.org, linux-csky@vger.kernel.org, linux-mips@vger.kernel.org, linux-s390@vger.kernel.org, sparclinux@vger.kernel.org, nvdimm@lists.linux.dev, linux-cxl@vger.kernel.org, linux-mm@kvack.org, ntfs3@lists.linux.dev, kexec@lists.infradead.org, kasan-dev@googlegroups.com, Jason Gunthorpe Subject: [PATCH 01/16] mm/shmem: update shmem to use mmap_prepare Date: Mon, 8 Sep 2025 12:10:32 +0100 Message-ID: <2f84230f9087db1c62860c1a03a90416b8d7742e.1757329751.git.lorenzo.stoakes@oracle.com> X-Mailer: git-send-email 2.51.0 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: GV3PEPF00002E6C.SWEP280.PROD.OUTLOOK.COM (2603:10a6:158:401::3a) To DM4PR10MB8218.namprd10.prod.outlook.com (2603:10b6:8:1cc::16) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DM4PR10MB8218:EE_|DS7PR10MB7155:EE_ X-MS-Office365-Filtering-Correlation-Id: ccf6c11b-ef4b-4c70-d1f0-08ddeec86458 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|7416014|376014|1800799024; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?BR7ynvARSQMr1+FUu3jrob4/k1ne7Q5d1qYvOac3Zy45BbVlmfASMuLMULB6?= =?us-ascii?Q?jEPmF01wvkNyKCD2lCF5vGbsPgYfihivi+0+4LAFEQlZFslvpdhf/eAncS6N?= =?us-ascii?Q?JS6ydfJgIeulxaQfhaAFk2+miiBkEnY5y4ypGu02r1DBtPk/6+EhxvefhDdd?= =?us-ascii?Q?/gvfjkNpy73DQKGQKywtCPO4eqa0/jy1D8sMJE2wyQ0VuqrXo4reoXnejWY4?= =?us-ascii?Q?3bzBYf5eohKgLvliPOzeKQga962PQnfwJdf331PknEHyVu/ZL0vaElZ8ZWvJ?= =?us-ascii?Q?9NIr1JyBGSswAT8si9T2K13wuUJrWqFs8OeQle6BKnTGtkIM60I3Lus6eIoN?= =?us-ascii?Q?GAEcXLw/9Qi38ikImPvJcHowhkkQtaoMmf7SgKo/tq3pEO2MxPM9qoeqpCqh?= =?us-ascii?Q?evrw75YWwzQTMOutX/2cfJywvtF4cZ3N1twvMX+P4r/i3/zb4x6b0C/c+ONA?= =?us-ascii?Q?drhMGgFHZvJqrQd7J1GuDhhJLJmqqqq21pifDQDkOHmJqdnT5VvTLgRIcmAe?= =?us-ascii?Q?LyFWxhlfe38R+BbbepA6KQAE4Qm90Uml8XAy0ItxaT/HYk5+mPRwGIkthqds?= =?us-ascii?Q?Si7A9w+YDqyaykPHCVkLE6ZTmk++xnxDRWGJ9uHrnSBzhICLKvXNNPMWruav?= =?us-ascii?Q?irA9+4gmD0v9CiUEei231wzjao1xCpU/7o+jnEXIZpVRcEUE56mj+NupFiLv?= =?us-ascii?Q?yusI/hk0UTBwYxrJ5YY2lXftjiKKKU968VyNFw8N+r9uXE1yNmtgCAYEBMY3?= =?us-ascii?Q?fjUriEa3BwsMVy9tAGpLTX8mp7pQg7QWpTNnmbLUSVOjXz5jW5ki1y4+fklV?= =?us-ascii?Q?0rYUdYrtcRNH/RZvm3v1IFsR2E0vDDUrbbJAQJEyO77erpxUjx/Y2Te1Gtpj?= =?us-ascii?Q?qiv+t0qQ2a3aUQ5f0Y+X4KYbyb7RSOGK/2IEt23CM9uE+4jCF8VkYOUWFgsB?= =?us-ascii?Q?zhvDfkG2EsOZelaWaDNcIMsWtViG0UNf7AKX9DCuHSC3Uv83j8cDG94/E+WA?= =?us-ascii?Q?wp16JVjRykP5yJhMnzzC2V3uSd1lSLVboIqjdxXMDggTTZOJyrjPC5G8Vt0H?= =?us-ascii?Q?7E/Djan4bX+o8JGsO3kNuJ+RVYga3anj0BV6iZwjaigdw9RVyW94HLca8Mec?= =?us-ascii?Q?5hbyqa5YGvb2EztGNhesuH6gOhpnI+vvaWVNSR2nnNeB9hF1SiOISeBlJMnB?= =?us-ascii?Q?Qa+8EhCaCAbIVpScgMbH50U3ZTOUBOAWnSuiE/9icZ1ADEJvrJIsvVYRCfFl?= =?us-ascii?Q?op4BVXTZpZodiMaucc6PSlXU+BVh+8Xv8+FnikvFoLxOLsKAKxo5IppY14r1?= =?us-ascii?Q?aOGtvQoy1skP0iTJY0jtByu5g4W6yw2zdpN5LkoGvtk8tCSFCmoMOkHFEzlZ?= =?us-ascii?Q?LVdukttSxRGgkCgxcfpWz7tWand60cx+hcBtxqeF4ASbslCHgcJWMvIxgZiD?= =?us-ascii?Q?/SDgJ0ciqWo=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM4PR10MB8218.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(7416014)(376014)(1800799024);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?Pja1TxKi7l6ZSWS4o7vPyxg5weYKmbz/b8u4IuWoOgBqlKzXB/qhD3tBWT4Y?= =?us-ascii?Q?lanQVFQABnTqh4rED3gT6z6xVIvkQjR1JPMmqT/06UllNvXrS458VkCQBwnp?= =?us-ascii?Q?Bb5N2TfuRxFi/CFmZbShC/IdHm8lPLSax9BAqJPkTelMcPsVJTefoNeBOaT2?= =?us-ascii?Q?5ab3E817FWfwXSxUduJYHIvb2CY0YBZMxAYM2kcHWrIPtq6Q++sK4nPquGNM?= =?us-ascii?Q?+2vH3Jm66pEKdRVYtIoVCNVekFD8jBea6Xe3CU1x7ya6rpKpVOzanj3ae0cp?= =?us-ascii?Q?iM2RtxSY/T4h+61kAwsXCqP7hz93KVE+wgDVmd3QkxRFtCEnmgrsFXuBquaN?= =?us-ascii?Q?ztZ92K9yDGIWBPafEUNizRDLmhaDpvI4EaYCKR4JnSUp6ObQMsCPSSb3OcR9?= =?us-ascii?Q?BRoaOUCeyZ/elQUvi5FQIlMTt22AEP5TWUUIJx06KR5QKQ5kqg/J6cB4VuVb?= =?us-ascii?Q?bcALeMwKLfekBb+w3fnOyYAB4AA4jwaJkoCpyAZ1EML5Wwk2ZSopUn+QSW7T?= =?us-ascii?Q?krwYyaXTwkxbzfC6PxMpo4RbP/NGDLtQKdo9VX8xG3oEv+6whzjWi7+9yK9/?= =?us-ascii?Q?kSdWoI8Q50a1nZ+VIlATMaPlWjqLqlHidf7ajeNUu84fUFZ+gymqPjCbZVoR?= =?us-ascii?Q?cXAwBATHusgDRWhsjVu+tL2ZESzCcxGuf04rhnmYlH4CeCEvffi24PQNfjxp?= =?us-ascii?Q?6JPLTJVRX6wD+6v8aq4cpYjOY4/dK7Mj5VU2kgp0FkKLWL/w1ZViQSmI7O1s?= =?us-ascii?Q?tpty5bS1JAZ+qp1Yv6uthCa9b3Xu/KVjTV64mOagTfIoNp52ud+YyovNGNxJ?= =?us-ascii?Q?LX+wdlvJsrfPBfx8jImXmSFEN0KALAtvX3bHyTDwdrW1lqU3ZMQKs+8YfPSe?= =?us-ascii?Q?jmCbiGCauCcEdFsXrQ5qBJK68VQIujd7YFN0rwO69iq2ArNczwKmJqsonylk?= =?us-ascii?Q?UIA3W1/gVWSBxAhx4ZRDFLTbWUCQ8A3yHOj34IOdNvgTM0rzs0lJR96CIj0p?= =?us-ascii?Q?IKpBiHOIyovhvl8FJ2uOT8GsKLb9b9EVd1HabkQAenZOYSNr3AvG7mXWB8xO?= =?us-ascii?Q?ulnRM+8ibj3GAX6hPa134qHhjvPfHwfnT837czi8f2BsdB5DldLyU+LmWLXq?= =?us-ascii?Q?QicgoUNcK+lVGtL1MVODCD/uY5i80oeYm7qJiA6bcBpPpNWrbKE267y3Xmas?= =?us-ascii?Q?j/YnPnBJM5HiR1zAxtDXqSrCHDrDjM8BjAlfKzKlCSz+l4Q4+Ve3ShzvPTCU?= =?us-ascii?Q?NJ0D3Em5VlRS6XkDJbiYYRbo+EZCnfyvoG0OnztrssoBfkzZHMiJUh/PhXWv?= =?us-ascii?Q?AJD4eJF1oeTIzUt1het1zaN8IXj8pvX0+MBMaGonuFnuozFXdnYZWJqM20OA?= =?us-ascii?Q?t1Rysf6VTRMKfbMSOoyzkM+XSiakvE9ojV/LvPI/bRBdQqu+Qpwhy23Lh4Qx?= =?us-ascii?Q?mwHnJ60YuzUYCCgZgZLFZvp+mHeJdblivWvIzd3jsVLiHvQq78L1iA/pt3Yf?= =?us-ascii?Q?pi7WblDNhaFssno1QkM6Wbtp0brapbdZ4JyDjy0U2uBf7hUkLvqOalALQf0N?= =?us-ascii?Q?TYVhZx3/v12+1EDGVjItiT2TrvOlAruCaXrvrAVs0cTIxtSFVOpyYKPyBHRs?= =?us-ascii?Q?Kw=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: THxy0ycnOeEkIJeyRaJNGlYvg6iTHobA6f3is7vtimPZv6yt67XYizRB11Y0NfvFn4aQw7U2YWzKRSiNuUUvSt5w7ot+YjpE0TIPf9oZqtKdjfRDEPQr+F3n6pPs73w3CHPl9RRdpnD1/B6GjMs1mL/yFTB+nfEGlK0KAzE9DS8l4jV8PLncGwHAdd8H7tOutmD0rFiUCuQlLlCPZgqswzFQYY6lMkmUk1+c0v3qtlKuxBBRs38HBT1KN4thfo05dbuNdI+NQzgbSZaodvZkEpdfJ/rBC9ltwoe56YWYK/EoXekwDJVZse1hGtxMsYnhLBzQqOj3qqsvBIV7Ljo7ug4D7CXo62PRMN7H7rnriozWU3MPVpHiFxSm5TY/ScTz6hUfutSLo/2z1VcFzsIQw3MRwYqcYltG4al1oHHPv4fRWIseBWFKS4/WOg6dGdtfIpiFsMPCbnIPtBXPbVSPJPM2JZ8RffkY6qywWyiZSMSyUnNcteibv3mTdXH78eubqsTx75gGbLN2BadCm1SfZidTM4PPXtfkkEcqG0Epd1ZktmiZ+GuasggGzvAwIKDqfeh2IShcL8yjwinNzuBOc/hfnReidcOW/peDyV9qKS0= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: ccf6c11b-ef4b-4c70-d1f0-08ddeec86458 X-MS-Exchange-CrossTenant-AuthSource: DM4PR10MB8218.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Sep 2025 11:11:00.1571 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: F4AfiIVndAhCLSNE8/w2A5pKQ7FbsLnm+aYHKeILUUBLnfy8OBLkjsgVmjA6ihsz2GP7gAMlB11Ph+58xKuqhD7171iq9E66/OSqQuuPjgI= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS7PR10MB7155 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1117,Hydra:6.1.9,FMLib:17.12.80.40 definitions=2025-09-08_04,2025-09-08_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 spamscore=0 mlxscore=0 phishscore=0 bulkscore=0 mlxlogscore=999 malwarescore=0 adultscore=0 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2508110000 definitions=main-2509080113 X-Proofpoint-GUID: eMaQcRY5YrymYflPJmfuu1hOjJSP-law X-Authority-Analysis: v=2.4 cv=Tu/mhCXh c=1 sm=1 tr=0 ts=68beb9c9 cx=c_pps a=XiAAW1AwiKB2Y8Wsi+sD2Q==:117 a=XiAAW1AwiKB2Y8Wsi+sD2Q==:17 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=wKuvFiaSGQ0qltdbU6+NXLB8nM8=:19 a=Ol13hO9ccFRV9qXi2t6ftBPywas=:19 a=xqWC_Br6kY4A:10 a=yJojWOMRYYMA:10 a=GoEa3M9JfhUA:10 a=yPCof4ZbAAAA:8 a=hKknKL_MvJZ0P6Ka4G4A:9 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwOTA4MDExMCBTYWx0ZWRfXxcWBAqawFrf+ IoNIcEcIcu0gNxFvVGSK5XpxK3s70oeoYSini7hPlswT93wzMKb5SHHHK1wkVhSaiTJ2Mb0I6Bt Xsf1tyQkbDyTerflPV6DKx6kdNJqAC0ZbVJ+Z5OtH8l89mWDDsMXOFDru0j+2TX0i3GPh2VPZEw Ua4Ou70U9SvgoqBLyNXv8xNBBggaXkk2zzLUod9ZA0ZJCHWByvlMb43HwpolVR7WZ7dl76T16A0 gNRaPvi7+or5zAI6ED6GAFOiztKbmcdrZpR+PJleqUi8JjYidmxAwokwXrUFx1fvQObhrKn6G4n E8TnqD6p8j0noa6xk41S5FKNdIEU+6hw5UKYK/ApqN+S8pTzaHk0hjF60FMncQJHl9zupnVTxt1 1uB70jas X-Proofpoint-ORIG-GUID: eMaQcRY5YrymYflPJmfuu1hOjJSP-law Content-Type: text/plain; charset="utf-8" This simply assigns the vm_ops so is easily updated - do so. Signed-off-by: Lorenzo Stoakes Reviewed-by: Baolin Wang Reviewed-by: David Hildenbrand --- mm/shmem.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/mm/shmem.c b/mm/shmem.c index 29e1eb690125..cfc33b99a23a 100644 --- a/mm/shmem.c +++ b/mm/shmem.c @@ -2950,16 +2950,17 @@ int shmem_lock(struct file *file, int lock, struct = ucounts *ucounts) return retval; } =20 -static int shmem_mmap(struct file *file, struct vm_area_struct *vma) +static int shmem_mmap_prepare(struct vm_area_desc *desc) { + struct file *file =3D desc->file; struct inode *inode =3D file_inode(file); =20 file_accessed(file); /* This is anonymous shared memory if it is unlinked at the time of mmap = */ if (inode->i_nlink) - vma->vm_ops =3D &shmem_vm_ops; + desc->vm_ops =3D &shmem_vm_ops; else - vma->vm_ops =3D &shmem_anon_vm_ops; + desc->vm_ops =3D &shmem_anon_vm_ops; return 0; } =20 @@ -5229,7 +5230,7 @@ static const struct address_space_operations shmem_ao= ps =3D { }; =20 static const struct file_operations shmem_file_operations =3D { - .mmap =3D shmem_mmap, + .mmap_prepare =3D shmem_mmap_prepare, .open =3D shmem_file_open, .get_unmapped_area =3D shmem_get_unmapped_area, #ifdef CONFIG_TMPFS --=20 2.51.0 From nobody Wed Sep 10 01:09:09 2025 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 0DD8C2FB988; Mon, 8 Sep 2025 11:11:54 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=205.220.165.32 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1757329916; cv=fail; b=NA9a6SGPx1mWcdKsRWixieR4jR9vJ6bALR7ijcN3emxLVs7KleW+VQcHfGEBvYF6e7Koixwzq/eSHLBDzPgXj1PieRUD7i8xCDMABiPPqqF42gCgnsPSjZq7c8WQyNlrYdWHXEpUBc5UHd7PIk3jyBintP38JgOrIKDObDX1MzY= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1757329916; c=relaxed/simple; bh=NBIyB9KVUHGIsYQqz6oqhBya3h3lS6LB/FcAXqDhyFI=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=eU2gUBZ9OdFfR3lp+h9m5Gq6hfCGIcHhDOqV+BqfCQ08q/pFCvmzo7itHiXPFbIDAdPdXWqYJEYQFC0tDlfFIAda3OixQy8dLQgoLZYbpFTsPjyfQDAwB6jGJeNbUdpU0qwuOibi8awCYA577fzyGzQrKWQ33nC0cYZp4mcQF2I= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com; spf=pass smtp.mailfrom=oracle.com; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b=kU2yOKOJ; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=AnwfP8MJ; arc=fail smtp.client-ip=205.220.165.32 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oracle.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b="kU2yOKOJ"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="AnwfP8MJ" Received: from pps.filterd (m0246629.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 588AAtR7006140; Mon, 8 Sep 2025 11:11:10 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s= corp-2025-04-25; bh=awbeTVBELcexcVcF6uO1PpXHm35opz8jWAHuvNO18vs=; b= kU2yOKOJnhQf7MAebGmMt0UDxgJrvKHTVq31xHCT6VxdJ83V2mAAJnrvR3LJ290u /pQKpLuvO8fALpPj6Wdmfwp4btetMO7CBNQSRwZBW7xaOLezgF0p7tBgDB47s3r5 fPD4y7m3UxPRlH85s1SCRz3zPt3pu0elf/7w0YDNsQ9ND2C2eU/ptpy5PptCUXxb d5dAfx8AbGePlfCKdAS5U4ieGZU04COhxORhCMEYEQZFwc1ECuGXAalTsTAw0Xwk nlRQPn4J9KdbJMyM+vXIjxjb/aeBSbYcaQ4btwMuLCADaxIkVLvUeH6pWA6gFdJA lM2sITt+HvP/uTuBFarYNw== Received: from phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta03.appoci.oracle.com [138.1.37.129]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 491w5402we-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 08 Sep 2025 11:11:09 +0000 (GMT) Received: from pps.filterd (phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (8.18.1.2/8.18.1.2) with ESMTP id 5889wZ07012806; Mon, 8 Sep 2025 11:11:08 GMT Received: from nam10-bn7-obe.outbound.protection.outlook.com (mail-bn7nam10on2066.outbound.protection.outlook.com [40.107.92.66]) by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 490bd895ur-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 08 Sep 2025 11:11:08 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=Z6XVtZ/d7lI+HIyN1gUcj4MLF0wh1jFqQKJJjflIpEHKwSaZlXmiJr5sfdg0mEi3ViEsCvOHXBHHlQV8oefGV7HeHEqNy8Jv8iewSroi/8DmsgcAJHzwBL0hWsvqCpQpH27uw8ZDNMeNJU2T8f8zn6pUR8mVKa+7Fv7zpjLRSuyMThfba+wn1rclo8OdUEeuvN9s/UM/KfzB4zuk/PII4OK1JJxmmwi2JVa9Rmb79TatzbeuVPqpa9r+s84SoA/Np91bRVz9Z20CqSZQEWUT7ozlIDj9KQs6E1yZECfPKoPdujSoTFtkSZz1z5fuBZFswhExCZZ/1nL2Qc69Tkqdng== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=awbeTVBELcexcVcF6uO1PpXHm35opz8jWAHuvNO18vs=; b=YlPADDnToVWz1N3JYDZT6q0KtLU1FHbkxk7sAGGCPSLdbVAggiE+K+rnRgnVZ923KP0KyP1jlpnxnmUZO8LNJugpm4cXqwGNL5QQpZj3tIzW3nS+hJ3bVsNyUfxrkmlAx1++PRKy7NwTXFnMU+6EOm6gI1J6tJVHjmS4/vzn7+mmvoBKovbyhCf3Ut9jmBcUoFGvd/W8u+nvo3kCgadeeo55TTtAqOTdYaJP9eMQvNUZBcmgCD3JZ9rslBbXxdIgIl8xKS3jfCcmZKr288wG6bLkwTa+ZkApreK17oz//+aS7PXM5YuQ55Vklr5RzN9yLkWAzxQYBaSFgagnR42vmw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com; dkim=pass header.d=oracle.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=awbeTVBELcexcVcF6uO1PpXHm35opz8jWAHuvNO18vs=; b=AnwfP8MJhUvwBSCCJl1GIG06igEdKKlAZmYMOa/t26H4xf6CaLtr5v0v/BeqIiekZ6J8U1KaO9DIv9C8RQZSXh9WzEmlnbUel9HtQKiMeD9VbQvvyR2DjE5CyzvpEUoJax/zMXtXBZCcoOIrRWXhzRaV2f56HidzADwBm0SpoQo= Received: from DM4PR10MB8218.namprd10.prod.outlook.com (2603:10b6:8:1cc::16) by DS7PR10MB7155.namprd10.prod.outlook.com (2603:10b6:8:e0::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9094.19; Mon, 8 Sep 2025 11:11:05 +0000 Received: from DM4PR10MB8218.namprd10.prod.outlook.com ([fe80::2650:55cf:2816:5f2]) by DM4PR10MB8218.namprd10.prod.outlook.com ([fe80::2650:55cf:2816:5f2%5]) with mapi id 15.20.9094.018; Mon, 8 Sep 2025 11:11:05 +0000 From: Lorenzo Stoakes To: Andrew Morton Cc: Jonathan Corbet , Matthew Wilcox , Guo Ren , Thomas Bogendoerfer , Heiko Carstens , Vasily Gorbik , Alexander Gordeev , Christian Borntraeger , Sven Schnelle , "David S . Miller" , Andreas Larsson , Arnd Bergmann , Greg Kroah-Hartman , Dan Williams , Vishal Verma , Dave Jiang , Nicolas Pitre , Muchun Song , Oscar Salvador , David Hildenbrand , Konstantin Komarov , Baoquan He , Vivek Goyal , Dave Young , Tony Luck , Reinette Chatre , Dave Martin , James Morse , Alexander Viro , Christian Brauner , Jan Kara , "Liam R . Howlett" , Vlastimil Babka , Mike Rapoport , Suren Baghdasaryan , Michal Hocko , Hugh Dickins , Baolin Wang , Uladzislau Rezki , Dmitry Vyukov , Andrey Konovalov , Jann Horn , Pedro Falcato , linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org, linux-fsdevel@vger.kernel.org, linux-csky@vger.kernel.org, linux-mips@vger.kernel.org, linux-s390@vger.kernel.org, sparclinux@vger.kernel.org, nvdimm@lists.linux.dev, linux-cxl@vger.kernel.org, linux-mm@kvack.org, ntfs3@lists.linux.dev, kexec@lists.infradead.org, kasan-dev@googlegroups.com, Jason Gunthorpe Subject: [PATCH 02/16] device/dax: update devdax to use mmap_prepare Date: Mon, 8 Sep 2025 12:10:33 +0100 Message-ID: <85681b9c085ee723f6ad228543c300b029d49cbc.1757329751.git.lorenzo.stoakes@oracle.com> X-Mailer: git-send-email 2.51.0 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: GVZP280CA0009.SWEP280.PROD.OUTLOOK.COM (2603:10a6:150:273::7) To DM4PR10MB8218.namprd10.prod.outlook.com (2603:10b6:8:1cc::16) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DM4PR10MB8218:EE_|DS7PR10MB7155:EE_ X-MS-Office365-Filtering-Correlation-Id: afc6a53d-aa10-4426-a225-08ddeec86750 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|7416014|376014|1800799024; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?VxL0hQqurvRuWcS2twQ7RUQESiR/LviSJ++zc2Fsi0ObiuDI7NvX4lXml+tX?= =?us-ascii?Q?pI5YXpd2uSioqJCSgemfMWDnMD0m/e9R8YQxBiJfqrNErRSlWGv7kTpu9n1Q?= =?us-ascii?Q?/GlUWPtY85YV0BLwPPYbi4py0z3gAi6vbiQ/JGUsmh9RrzdrebhZnSDlz99N?= =?us-ascii?Q?tNLntJ3gTNbwkBCT1xPYLTQETFQ7K6pZtvFYoHE+SEEfeYNxYCVGcQJ2E9bf?= =?us-ascii?Q?RIQ5IbgTnTxnwds/ZX+Db2MHQnLC1TVOZHiEv5qWgXufIfPjo4+Bvnkbaj07?= =?us-ascii?Q?UtA/9XDIy0JX7mXZ5XxKGcVRUWcQHAq6uTkL4znOxflQMgWobzaD1/x1bgS7?= =?us-ascii?Q?ZYgiJ8K9IfGZycJRJ8M67Y9q3Evl3t347TNWu8ANWM7xHdHHedB0+5lJPHee?= =?us-ascii?Q?LsX37XNnaYLtLDHpByVfuO+WOe/z8NJhuyHGDw6kuayomlzG/od42Z9j/V7/?= =?us-ascii?Q?R6L+hsMaZzYfqg7O2JqeJ0QN9ywOLVOLe2yOBVEB1QRMlv8MlPs5ZFlXSlet?= =?us-ascii?Q?boR7xnRWZZpUrLq2Fo32rsm8Bxu608m9xY/c2T5KiYE04gLWOIHfZV8TxdP0?= =?us-ascii?Q?e8pwpsj+fx6IWmdFNzhsBlFdzJw5RqXTwQnPM+bt4BQsWi4GkugTYHKt7cHm?= =?us-ascii?Q?sI2HZcVrhia934j5jnvZJ3JNAWc7xpf+JPxD9JbKKuZf8cdS0YsZJCT6wH5x?= =?us-ascii?Q?6OQUao3G70Ft2wwEZgbnV5XXxLcZ2NKvtrZ5bTMkgUSLbc83Yl5JudaxAMYV?= =?us-ascii?Q?UIZHtUOiha06R7qh/ON7iQaFbhfE0bBxpow0yUdW+c9N7oyT5/2F+xJuuCPh?= =?us-ascii?Q?+TXilrR+2Y2CshG10tZr+1LHWSm0NIwD0CITonuH+9uZZRtreDulyqoxuoH7?= =?us-ascii?Q?26xqq1tdu1E2bxN3lF72x0oq42NZPa3Mlyw1LmFYTblfXC+5os9ycfKVbidB?= =?us-ascii?Q?5KLT7cBwzjczrLZFn9ttxMhaoEFGFB3LRcUN0i/gRlmLN0VO9NnpdPJ1YhxJ?= =?us-ascii?Q?SRHocoxVVmAC56jO0ZFSFzpL57LGkbJ9c890+RKIs7/RQSh7dC68ql1jWMoH?= =?us-ascii?Q?4Yc66uLonW4qNpzfZH0ZwYIMQWRbww0GQWmGN0IfUhOSbmr6i7Uq7DRtofgN?= =?us-ascii?Q?9FB0MhLJDoygZ2lqqFBUMHAQc9xWz0UPFkIoTzV844Z7D40cfgJU3BYnmNnm?= =?us-ascii?Q?/eD10NOVJ1e7iWVBsMjABADvzwJsemyuB29N4EDSvhKbiUObuHtVr1qP9jlT?= =?us-ascii?Q?vtqTkqAoFt3f/m/98b/Biq0jZh3YOAK4ddVSZOR8VeKhAVoEDJ1VnGeU6DBe?= =?us-ascii?Q?hL/W9C79SCGhf2Hs/YKluMDwnnwV6Jtz09+koS9DlLagNc3RN9DtEyCIhpF/?= =?us-ascii?Q?vQ/23gXOr/Q1XtGWZyg6ysw6N9OWQIsvw8PhPy5qnuzFPdefvssZxGYnjkDc?= =?us-ascii?Q?ZWkFdttN9fw=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM4PR10MB8218.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(7416014)(376014)(1800799024);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?DDzW0cYlpXg2M3JVdX5mcaWfqUFqOnUAN/nJNGiOEQp06IfwuiCeXs5v0tbO?= =?us-ascii?Q?gpf2f+cliKWd2kNstmMNiQPLvRgO5pxkuQUa22t0yvK43WJyHLOdXJxf80P3?= =?us-ascii?Q?oGipZA442teFUnukouuPbdM1pakLnpWQef9v4gqIh3O+yRBhePRlMTzTZ3RH?= =?us-ascii?Q?0pZNHW9enBiRHooxbeHiJojGqjf84XfohHjImh/UnoNC14H5G78aoha0VUOM?= =?us-ascii?Q?zdJsdGxmiZ2vIxVSh1/zipOceL3sJiwj+gpLKzyG4n1ZnVtfkm762NAThy3d?= =?us-ascii?Q?kZzC0FZjfC6T2hKWMhyqvjSfeJaD6pANf42FOguj6NIY99mC4sb8jyExJhYP?= =?us-ascii?Q?SuhmOUvHAKA5NNQvSbSO9eQp3Enc2U+Izsw1fzcaOjSGuwyd9zwc132PBFmH?= =?us-ascii?Q?kETzMnTbcdUfXQQuGuovjxGJ1wVuDamEjtUeW9HdijyZh+2r2v9L2qIXA4Hw?= =?us-ascii?Q?2FgPt0YgnA3zbMbXpkkTv/VCqPDA2sPdDqM2gGFCTx8R7vvZxA3HEgp11xZk?= =?us-ascii?Q?fCRrtCaWyq8/AahtRSk7DUNcJcaWH3OCY7ev6TZXH6BwfnBBT8+UZ8ZDrUCq?= =?us-ascii?Q?2YzbY+stHPz8J7sfY2gCNCyAqVRQDN53LMUngIli7W7urzkPO3yelzYqEXU0?= =?us-ascii?Q?9rPLLyk4y1Pv/2APVhf3dEcQ0s1fMkSQDBrFGe69Th49LDitf7yR6DxR4958?= =?us-ascii?Q?6byARW3iwdCwxsp3MHRGDTCCGyTBYII0QXwF5p/DU1tBvsWuaNUq93gmMX9H?= =?us-ascii?Q?ilhYxOg6AUZ/clNsxpfjvmf8zoAX9gCKIIfhV6FnHwRvJUvToCN9M6Dv4UnC?= =?us-ascii?Q?7LxztoOhmfN7GPU+s8QeJ+OeFfADzNy3er0YU0kra8HyhRQTmmGiCpvIegpi?= =?us-ascii?Q?S1F95Vq1voelBytHsOGMRsWawZuFoOLIRrsesHH61mRocx99wppzdI6vvhua?= =?us-ascii?Q?WUYSvxqOPAj7kwWbvqdhXZLyguYAXCTu2dwXtKjiw5AQGlvWxnb0NKFaU+EM?= =?us-ascii?Q?JFHNsarvmeWPnOjC+LrCsr/IKF4NF/qPvKDiBc2YlmQWLTwjEh5mcUehihX8?= =?us-ascii?Q?bdnfA9g/k+uBzjn5fAwYw/yE+dP6Y2TlQNwyrDEclMjqxdQ+mwxUPQ+LFjaG?= =?us-ascii?Q?ZHFKAXBRqPHmJXrE+xHD6lI33hb22Nv+gm6RiGOgN6XSmNQoAacGw/l2oxVY?= =?us-ascii?Q?OOvhyWH60eRKgOth/XDAEXvWaIs2W8RQH6NX5Fzehc+HMcAV+nrQHBUokEnQ?= =?us-ascii?Q?AS8B9wgqLOaWdY/z92EBNUTOfFwI5YYsuD2U0U8doVqveS7PmjyzvKaz38Sb?= =?us-ascii?Q?EgajjFJFeAp6pMham7CFohUs+g8vsx8IseZJzpvGV7wUlEqIiqLE6qdohBMZ?= =?us-ascii?Q?d6QdXsrcaIZvLVcfdKsWufFyAX7JQjwPzdYrzvzDJdjwrtjZp4WZTjW2H1FE?= =?us-ascii?Q?L2AxYixKNDjwt0ZQTtiutVhL0dz4TUI63zKbBeeIO//pSLEpP2f05Cu7ZgrE?= =?us-ascii?Q?mbSZ0qpdOHZSvGB7Ofwx9AXNnqWdR4F5+2JY781BXPnDQTT1IweRrNLPtHbh?= =?us-ascii?Q?VXJAzd0tmhp/NsCtFfzpnzl46MR1V2SBzp4KhG/cTI17slyYOV82oJMiRx7d?= =?us-ascii?Q?hA=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: PxBQRqBeEwcNQuSXHVCvkPw00ofA6nq9b7MMN8ldE/Jip6jHZOaeEUA0Azn7uC+7F/tztvPaSUzu7GM8J49rgmP3T7stGyI8AJ4+gu7q6EJeXMbt3/5VyEPQsTkONWoDX13D3UVeYJvQYtSjdmFTCzVpVmpULKBKWNQJTyvPgJlRegqH4dLQCeaVkMfqxNyvJPntgxjilR7plg6PEMJbWWZ2N9hxf58/C8gXJj4WI/YAuBPwfeCrhBFJU/vlBONIVjcgL7qFaHGnQtKiirIgyzWP9r+9B6zT2k+hAn4bcfWrTQA41yVhTRY2IupvvH6QHVL4d8NuRUdomHclD8rMptkAdjHog9I3YhMgp1ODBZ1n/0/1XJRVQPMAn8Cbfg4HHPYqwcdObp4c+t6X3ctKDJQZzO+gIH+qBjJfPTvLOEHqjECc3a/z7cPWhsr2zKzviEatciOWi3MREP/gD3Ugc0cj091gNQ7TyxAWdrs5VIo7Tojl83er5R7OYbawriFqA/wlmVXuHPuSABKqAj9xAz5l4V3S4HkqoVRqvLfECuhRJOpg1Gp1rdNuKkk3G3hnGbK4iXRHRta1RRZh445q0komoA5+HVewdpj3h8qRLf4= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: afc6a53d-aa10-4426-a225-08ddeec86750 X-MS-Exchange-CrossTenant-AuthSource: DM4PR10MB8218.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Sep 2025 11:11:05.2504 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: wW6wx7x1JBYBYm1WaxcsWr0ODQiHwSWDjgBXRYTdT7NzxwytoisqkhcpZsECD+qHe45UKEX03cyDfcC2PJE2ccA2ioGR84jAV0D6eWV/KY8= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS7PR10MB7155 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1117,Hydra:6.1.9,FMLib:17.12.80.40 definitions=2025-09-08_04,2025-09-08_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 malwarescore=0 spamscore=0 mlxscore=0 mlxlogscore=999 adultscore=0 phishscore=0 bulkscore=0 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2508110000 definitions=main-2509080113 X-Authority-Analysis: v=2.4 cv=M5RNKzws c=1 sm=1 tr=0 ts=68beb9cd b=1 cx=c_pps a=WeWmnZmh0fydH62SvGsd2A==:117 a=WeWmnZmh0fydH62SvGsd2A==:17 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=wKuvFiaSGQ0qltdbU6+NXLB8nM8=:19 a=Ol13hO9ccFRV9qXi2t6ftBPywas=:19 a=xqWC_Br6kY4A:10 a=yJojWOMRYYMA:10 a=GoEa3M9JfhUA:10 a=yPCof4ZbAAAA:8 a=2q_dOInNKJsfLPmpoRAA:9 X-Proofpoint-GUID: nWMTSo2gYJisiimMjz3mVaXPLgAwpEJi X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwOTA4MDEwMyBTYWx0ZWRfX47RYoZs8SGPC tD2gT3HsjJUG3Igiev6xVBz1w27w99r/f2h7ihYDyEs1vLzwc/rjeww7mMHIzclU7qOiV2PNez7 SQRDe/zhAZLdjq+pn+uVJFLXkCTfbQVUGuRJQb+gTZ87Z4RYnSzdkL2ZegqvLU8FE5z+ghtC1Wy czE7zcDzYfqt/eFKot2OLPFHVs+X/+C6e0xY+Py/CqVHRs93nTrcrlmX371uKvAhuerevk2XfKn Q+R4una0osXA1cNYUjG+F6NCofFn/8dm2R7beUUXBbFMHLuqSCQtWQchW4uLxOFO/EberVbQi6e ouPtN2lUbwxl0Qusp22zry1AyjGFcr4QlXdzOy3AO7GdweBQvEE1K6L9Vj7BV2FlhtSZhWgvnm6 8Ak2r4hw X-Proofpoint-ORIG-GUID: nWMTSo2gYJisiimMjz3mVaXPLgAwpEJi Content-Type: text/plain; charset="utf-8" The devdax driver does nothing special in its f_op->mmap hook, so straightforwardly update it to use the mmap_prepare hook instead. Signed-off-by: Lorenzo Stoakes Acked-by: David Hildenbrand --- drivers/dax/device.c | 32 +++++++++++++++++++++----------- 1 file changed, 21 insertions(+), 11 deletions(-) diff --git a/drivers/dax/device.c b/drivers/dax/device.c index 2bb40a6060af..c2181439f925 100644 --- a/drivers/dax/device.c +++ b/drivers/dax/device.c @@ -13,8 +13,9 @@ #include "dax-private.h" #include "bus.h" =20 -static int check_vma(struct dev_dax *dev_dax, struct vm_area_struct *vma, - const char *func) +static int __check_vma(struct dev_dax *dev_dax, vm_flags_t vm_flags, + unsigned long start, unsigned long end, struct file *file, + const char *func) { struct device *dev =3D &dev_dax->dev; unsigned long mask; @@ -23,7 +24,7 @@ static int check_vma(struct dev_dax *dev_dax, struct vm_a= rea_struct *vma, return -ENXIO; =20 /* prevent private mappings from being established */ - if ((vma->vm_flags & VM_MAYSHARE) !=3D VM_MAYSHARE) { + if ((vm_flags & VM_MAYSHARE) !=3D VM_MAYSHARE) { dev_info_ratelimited(dev, "%s: %s: fail, attempted private mapping\n", current->comm, func); @@ -31,15 +32,15 @@ static int check_vma(struct dev_dax *dev_dax, struct vm= _area_struct *vma, } =20 mask =3D dev_dax->align - 1; - if (vma->vm_start & mask || vma->vm_end & mask) { + if (start & mask || end & mask) { dev_info_ratelimited(dev, "%s: %s: fail, unaligned vma (%#lx - %#lx, %#lx)\n", - current->comm, func, vma->vm_start, vma->vm_end, + current->comm, func, start, end, mask); return -EINVAL; } =20 - if (!vma_is_dax(vma)) { + if (!file_is_dax(file)) { dev_info_ratelimited(dev, "%s: %s: fail, vma is not DAX capable\n", current->comm, func); @@ -49,6 +50,13 @@ static int check_vma(struct dev_dax *dev_dax, struct vm_= area_struct *vma, return 0; } =20 +static int check_vma(struct dev_dax *dev_dax, struct vm_area_struct *vma, + const char *func) +{ + return __check_vma(dev_dax, vma->vm_flags, vma->vm_start, vma->vm_end, + vma->vm_file, func); +} + /* see "strong" declaration in tools/testing/nvdimm/dax-dev.c */ __weak phys_addr_t dax_pgoff_to_phys(struct dev_dax *dev_dax, pgoff_t pgof= f, unsigned long size) @@ -285,8 +293,9 @@ static const struct vm_operations_struct dax_vm_ops =3D= { .pagesize =3D dev_dax_pagesize, }; =20 -static int dax_mmap(struct file *filp, struct vm_area_struct *vma) +static int dax_mmap_prepare(struct vm_area_desc *desc) { + struct file *filp =3D desc->file; struct dev_dax *dev_dax =3D filp->private_data; int rc, id; =20 @@ -297,13 +306,14 @@ static int dax_mmap(struct file *filp, struct vm_area= _struct *vma) * fault time. */ id =3D dax_read_lock(); - rc =3D check_vma(dev_dax, vma, __func__); + rc =3D __check_vma(dev_dax, desc->vm_flags, desc->start, desc->end, filp, + __func__); dax_read_unlock(id); if (rc) return rc; =20 - vma->vm_ops =3D &dax_vm_ops; - vm_flags_set(vma, VM_HUGEPAGE); + desc->vm_ops =3D &dax_vm_ops; + desc->vm_flags |=3D VM_HUGEPAGE; return 0; } =20 @@ -377,7 +387,7 @@ static const struct file_operations dax_fops =3D { .open =3D dax_open, .release =3D dax_release, .get_unmapped_area =3D dax_get_unmapped_area, - .mmap =3D dax_mmap, + .mmap_prepare =3D dax_mmap_prepare, .fop_flags =3D FOP_MMAP_SYNC, }; =20 --=20 2.51.0 From nobody Wed Sep 10 01:09:09 2025 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 5926D2FABE0; Mon, 8 Sep 2025 11:11:53 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=205.220.177.32 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1757329915; cv=fail; b=dYUecssYFRD3BhU4OkIENBlRyA28riFGimfe/KtunEgyqisOm+cz+vgMoZ21qFj1aA9NONKS0WGSxo/S/ajDXmFlkRSO2DaGJbAnFEOuWtQDJTlMNlqQ9OGC5Y/tDg3JUWwpaH8hP7vCFdyc5vrfGQ60yej3lSxEBvb6WVeOysI= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1757329915; c=relaxed/simple; bh=Rad96xmPOPuAVUJU+GDHPHqUSOF25+W3DPFkIhSETEQ=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=rEltznDt5CQjuzXHsXpk3DD8O1AjcpOX0x478Q2ZI7gv9AlshOlIYwmISuSySh1OSUkuNLMLydIZF+dFLstzb2+DJO/EEZJyGr6mb4SZkHB6dpQbuOIn8rhDan4Ry5Fb71HAMuauIXpuVMHBPmP23t2r0LRAO/VABX9UN94uIK8= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com; spf=pass smtp.mailfrom=oracle.com; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b=M9CtjXIZ; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=mwLqEXZp; arc=fail smtp.client-ip=205.220.177.32 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oracle.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b="M9CtjXIZ"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="mwLqEXZp" Received: from pps.filterd (m0246632.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 588AslGp014174; Mon, 8 Sep 2025 11:11:16 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s= corp-2025-04-25; bh=pL1MLIyM+lpD3P2VKweUt4QE5E6fudtOt5d2EzeVtWY=; b= M9CtjXIZEvdTrUmgIaMXVEftkPxdq8hM/KSr78E6SX7JblCDsLL/yQpg67fSUTZT 4l6ZQmXAK8/bGQo4TFKCuHNGHcoKuYAP9j/vchFgzJluDSx4T50T033Dr2PnoQPt 5m3YO8+CnXlUm+EnpG9lrqZ0Eh3d987m/Tc+lH/2Tzh/xfXuvshqRM3dkpxvwJXH rXTVUwdcVTgNQOZxp/WEU2NUzsw3QNt5RwKn0FR8UBKTMW/V8hlAv/3EBlShF28F jOra2Xbj9uXo9GDoTuAamYmjLO0L5uKSiIYIU0adyaj3ifUIdWGzf40Re4V5bCtB U4X0Ygi/i6Ii2nfkH1hrGA== Received: from phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta01.appoci.oracle.com [138.1.114.2]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 491wt5g0xv-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 08 Sep 2025 11:11:16 +0000 (GMT) Received: from pps.filterd (phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (8.18.1.2/8.18.1.2) with ESMTP id 5889Z6Rk032941; Mon, 8 Sep 2025 11:11:14 GMT Received: from nam10-bn7-obe.outbound.protection.outlook.com (mail-bn7nam10on2056.outbound.protection.outlook.com [40.107.92.56]) by phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 490bd91qvw-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 08 Sep 2025 11:11:14 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=JcuWATvRbXHpFV7MkTNlLvLjeu55leBwCPqqOsNK1PPAELDNWsg73k5OWpza21dIN970SvHDV/0PD0RykH/J6fFWFEUH6TsVQ4f8f4a+XCPe+FVjKBk2zO/IrT/HBsnm4NnDM/HR5I7g2c4Z1rglgG6XGs2cfRpRE1KAUKV15/PFdEJnp80Dl+A2OS3Cda7PQa+cth9Mm0jAHygsMuWFmzF0FfDd0PNw0370BZVOlp6PShk+Ih3SGwcL6906peRaIE3aFA27nCc3w4lqYD4lVhMY+r2kXdakCTqjx/tYi64r3AYzoyLOWLw80s4FZ9+hPv7yW4Kg3H2G+Zm05ARh7A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=pL1MLIyM+lpD3P2VKweUt4QE5E6fudtOt5d2EzeVtWY=; b=HMFs+uQztcVlhTTqVRtodFOXwL5DqR6AObQoCp4Zt8hwt7ZlWWuipBGdl79h4qfwHjjRuUShjq4ymPpXwYux6UC6RZhCMiqsjMvtTK3zOKhC+VtW+XaabrTH7p51Ur2q5bJCl6aEI/qQPsWaIcZy2pwBzi6+D3xCKNPPLtgG6q2WmnTODGEN0uSi7sP5vaacV5Y9jBNMZjNB8fZwmTn8vKLLCo20N+wAOxAV+2Lgy1Ou5C4PjrvaXubm6Rnk8e4oS1D8g4jmzsvwYniN/kHxRaKCyJ9SkJAIjl5MvRZpYRWfcMWduIYqCMpkKiIq6XgZXM3ag9gD5GGbb5laI/cdWA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com; dkim=pass header.d=oracle.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=pL1MLIyM+lpD3P2VKweUt4QE5E6fudtOt5d2EzeVtWY=; b=mwLqEXZpfmFV1rwUFuoki84C4iL2D9dR80tPFrcFKKISddizVOea4a6yTjMpgnZsEwbofnAUcA2DbRrCLCZxxYqjlCfcc6j5hQrRnk7onBI5YsJyFn1EQmQ3KfN6U+RzXyGx20TlV2OyEwe1iPk/Nd2S22Ffq/moE0YpRR3z1dw= Received: from DM4PR10MB8218.namprd10.prod.outlook.com (2603:10b6:8:1cc::16) by DS7PR10MB7155.namprd10.prod.outlook.com (2603:10b6:8:e0::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9094.19; Mon, 8 Sep 2025 11:11:09 +0000 Received: from DM4PR10MB8218.namprd10.prod.outlook.com ([fe80::2650:55cf:2816:5f2]) by DM4PR10MB8218.namprd10.prod.outlook.com ([fe80::2650:55cf:2816:5f2%5]) with mapi id 15.20.9094.018; Mon, 8 Sep 2025 11:11:09 +0000 From: Lorenzo Stoakes To: Andrew Morton Cc: Jonathan Corbet , Matthew Wilcox , Guo Ren , Thomas Bogendoerfer , Heiko Carstens , Vasily Gorbik , Alexander Gordeev , Christian Borntraeger , Sven Schnelle , "David S . Miller" , Andreas Larsson , Arnd Bergmann , Greg Kroah-Hartman , Dan Williams , Vishal Verma , Dave Jiang , Nicolas Pitre , Muchun Song , Oscar Salvador , David Hildenbrand , Konstantin Komarov , Baoquan He , Vivek Goyal , Dave Young , Tony Luck , Reinette Chatre , Dave Martin , James Morse , Alexander Viro , Christian Brauner , Jan Kara , "Liam R . Howlett" , Vlastimil Babka , Mike Rapoport , Suren Baghdasaryan , Michal Hocko , Hugh Dickins , Baolin Wang , Uladzislau Rezki , Dmitry Vyukov , Andrey Konovalov , Jann Horn , Pedro Falcato , linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org, linux-fsdevel@vger.kernel.org, linux-csky@vger.kernel.org, linux-mips@vger.kernel.org, linux-s390@vger.kernel.org, sparclinux@vger.kernel.org, nvdimm@lists.linux.dev, linux-cxl@vger.kernel.org, linux-mm@kvack.org, ntfs3@lists.linux.dev, kexec@lists.infradead.org, kasan-dev@googlegroups.com, Jason Gunthorpe Subject: [PATCH 03/16] mm: add vma_desc_size(), vma_desc_pages() helpers Date: Mon, 8 Sep 2025 12:10:34 +0100 Message-ID: X-Mailer: git-send-email 2.51.0 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: GVX0EPF00014AFD.SWEP280.PROD.OUTLOOK.COM (2603:10a6:158:401::312) To DM4PR10MB8218.namprd10.prod.outlook.com (2603:10b6:8:1cc::16) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DM4PR10MB8218:EE_|DS7PR10MB7155:EE_ X-MS-Office365-Filtering-Correlation-Id: 54edb3c3-9a1e-4bf9-f9c1-08ddeec86a09 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|7416014|376014|1800799024; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?SNDLVudx6MAZQrdjunK0yS3T3zcxM7Pg44l6N5JB5ZC6Zl17rigKA5mNqYUg?= =?us-ascii?Q?3WtkNJuYBNcqhcD/gKi5BBrRL7tBDYJRUsKbHMAueGBpM31RjxfIdY0hv4fj?= =?us-ascii?Q?ardp1BC/PI8Zm5s9bpAvC7Tl93xOROeiCQyEx8PExSZZaGln3hKtfwAgLQxy?= =?us-ascii?Q?HhjKWWVRe413ZAqkuwaFq+aQWoXN9D9ILCPsDOkBRG282ggt4VrpuntFAmBT?= =?us-ascii?Q?KFr6QL4kpqS8GPhqTE/rrjfSG7dYcu0sj7li9rRmHwy9yKtxFMxbCxUZJaSn?= =?us-ascii?Q?Hb1ZKM0RyAY5xqEwsVz1DLQbx0yKBLkNe78hkEwmApS2cXnNCz3dP/Y3Oa0s?= =?us-ascii?Q?LoRPzTMG7hyBKthGiiu7wTjnpri15BoehmNnzPqp0n5fDjVfA0WmptpO3Vuu?= =?us-ascii?Q?8BoaCmiTZvu0o6ExXlpMW1PhbIinCaNjvMuXTuCTVtEtJGYcyOyxUUvJTeuC?= =?us-ascii?Q?5HR3t0McBdnkmOK/ek+J3PHcvtsq6J6yTQc9+s6HU168aYVOEG+P0yUCgwIW?= =?us-ascii?Q?7FknKl8AXA6Esl6Zn9U5ixe38UpM2KDdCTnhACWX49Sxqa44EJfGEhYIA5ce?= =?us-ascii?Q?ZaZ17a4S2aFLGCL+t+kXfteXzV0ux+H569ucX1mBKYWhwt4z4C1x2EGheE4j?= =?us-ascii?Q?KMPQ4DfcgzoNLIEiXuqkAjyySYDbeMIxhhwT3ZPfkpxHu8t7E2wSyXUlmcan?= =?us-ascii?Q?PH1NmqzltzWI95XYKvzbHvWeZSDOCrLin3UM6+YAIx5i7bDEL0LN56xqN6Ed?= =?us-ascii?Q?2EqNDlO1zccNqEqhwWRxuvKVe3xNyZU0eX+jP9BPEpr+MGZ55jg2ulaTiR+w?= =?us-ascii?Q?CIRdBeyi/F7Vlcg/3Zdhr5dhbAYliHOvP8VogU8EQRFaHiunnSrX5sfvSB+Z?= =?us-ascii?Q?XJdSdaymGcZh8RwYQrdvs0z8qlKCDl8OhaYbsdzVLOkYqCewab55iYiwmokO?= =?us-ascii?Q?F7P7KVM38TPmqviQ0VHNjJlXrXgeLnpoY8RrTeh7g4vCQinkm5wdhb0u97Bq?= =?us-ascii?Q?j6MQNDwknG/Blc+iwNiX86xVXGZNJBPX6ns1C+JIQCpqtHsMK0iVO/xyqIJo?= =?us-ascii?Q?mtVjWPdFm2S36yBYAvBFbvXycZI3c8Gs7qBEyfnnqDXfeSTkRaaprlcvUnEW?= =?us-ascii?Q?cNWLTinWaDNoi32vXH3OhbElYm2mVVFFtyVSzKtrmDVDl7/V7TSWl/kxbtrY?= =?us-ascii?Q?Iq65TL/kDB1c4pQikYy1eVJmJ3yZr0YMWAaRaQKdl4uh+VKZ9pBl0PYJZ6V4?= =?us-ascii?Q?KTnhCFbSF7hZnc+58g8+07x45OT+V6awg093wD0mbDnIYygs7CvAsKW6HzII?= =?us-ascii?Q?fsYHvVyCxhpSdg4r7Bnacrl7Qd2CT0vMboGT90s/MvSt4MKaGMPemTjpIMCs?= =?us-ascii?Q?jwJIU1E3z7rExzst8mQKeDiVe7i8iATFrm3aRpqhGDdTCDZE61jWmSqDoonh?= =?us-ascii?Q?RaiPlcpN2EI=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM4PR10MB8218.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(7416014)(376014)(1800799024);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?QyyOY5pB7CUNFSAz5ub2y1JjcVjSUsIXj+wjciDDkC1CSHTjvyhWhf2Ygoxr?= =?us-ascii?Q?eZ29wwMi00CvHBiZFNQ99Lm2581tl5fB7fKTwLfiiVNEK2oWbEL9RACjtcDI?= =?us-ascii?Q?YIiJ8BhQMSY9xT+/rrdyUH80STLUiLbFDe05SugcZ0VO52Mquxpg2dC/MOBe?= =?us-ascii?Q?1MI9zSlKqdZETlQ7WSQ0Y9J45t6smIjNMuHRU7E/JJ5BUILws/uZQ0DWbbNg?= =?us-ascii?Q?EUCGP0gXPK2YBdwx+RhvkwvK6bpFK/osIxPkkbwTrKxC/M/4DuPn1fe5aZ/j?= =?us-ascii?Q?8H8hF8pulqseILBaIJOXB7XoCpj02aP7Qi8RU4jHTVy3VU5jys2pmP1yCUwp?= =?us-ascii?Q?pFn1k2JY7WYecOn5JI8FmX5z64fsur6NpiQ19CTlkGkdnaTb2kbq2tC7SWBK?= =?us-ascii?Q?KIi6TMyqxHozfXs2wioBFl60ByJ2O0kWgL1zAMGnVBdLyqxDEHCNE+Sn25zu?= =?us-ascii?Q?WWcnsBbcjYQk4gS1ppQ/RUHpaud0p9fhKvDzoa/v1t+pO94QMdJqwCh3Cw79?= =?us-ascii?Q?hZn5tRDr8vDe4jUMtYDquW+DBapkWwO7KWKLnSyqkdinXvccp8FPzXCcsnYd?= =?us-ascii?Q?5QXOohMa0d1KzXBckBKJ61YkzUue+lwu5Den9ZH4FBJeK6LuyV6h6rlPVCRh?= =?us-ascii?Q?fWNb0zX5VioS7YjmA1/FcubSEikxqw3c6iElrOtIcatR7go3wgWl3ykIL3go?= =?us-ascii?Q?Ny1IE4UL/6oSJQlfXSrYQ2PwDZpoTfrku0er1p9nzhWGOePwdQ5KJfZNS9Ok?= =?us-ascii?Q?B/nCjN93P+yjswgtjX532NMUfPcsXpPdUDRxI9/Z7YgukMqdCa02wQOGnDxp?= =?us-ascii?Q?m6IptCfRaWm8l/xrRhoO8VMZ4CIjIBo1sSnmNHcN8LPkWaVP5L953DdSYHdT?= =?us-ascii?Q?5h5gDduVWvWRJJUNLoEEvWvWhPEEvXrQ8q9qqk5xzIaiuTD7yWAqbmwigYWD?= =?us-ascii?Q?bq7pdNJFXtJGD74MlWNU7oJPyFZ4N/ozNHXKW+mqg5U4j1puAOw5Enm1d1fZ?= =?us-ascii?Q?0vFMmGQGpK5tlJh+saQY+kKM7xuzg+BHVrLYYnsy/hMAWwpBJjHeQlOYtnmG?= =?us-ascii?Q?d/NajV1WBqon2sbFfESyXlY5gCbf2kVOkmatF42B/7biw29TZtaY4F3mFyM1?= =?us-ascii?Q?K/rMu/k/IgLcNder1YXU7SQ/ckiwCFDLkk6YM9d2l2WdKKbHohNTFV43YQXL?= =?us-ascii?Q?CBQ+3FeUxoad9Lt2uAt1e0dt0fDHA7GakMMWvzvnUOrIkmb3cCHWRZm9s7fi?= =?us-ascii?Q?8HJ90LhvaIPXVsSV4N0bDXM9iErZq3GFY5IxNx6xkY7MntW/5DXu2bnPTq+s?= =?us-ascii?Q?SilCp0JilF8lOBoSlnPes8eSUqxMC5kQg4342UZD7DNv1LUzVV19JhRn0wV4?= =?us-ascii?Q?Haz9SWpy8EKco8U7Oh3moRogkbABp4wYCYU/JjiSqPmz5wa87uXOSows1H7j?= =?us-ascii?Q?1Z9p+9/6bHFptOapivptbD8rDQodXQ5ygJDoKxTo+VpEzEQb9TZQM+2Reft9?= =?us-ascii?Q?aNjtpzEjCpk8/LkW5k8MAy+fqrhDdIr+uhPubfvu8XRbgJztuSrMXPAZoKDO?= =?us-ascii?Q?cgeGfLWa2jiiF6scvaCEZF1TEWxD8JOkMQNBnKR/J5I+E8og5ZE87ftf3ELN?= =?us-ascii?Q?XQ=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: 979jk3DC0p+Euz+Q5WuZdxfrlrJBxp9SKqNgYfbDAgS9m16p9m3RTexZm0lyA+EgkOFcd1h6wkBiB3AL8M5eckU6Xa/oifDUt4AVd+BfRII+FhDN+rcYOX7i5RFgVzKDFkq3L0Hc8frPyYWWmQ0vL/CHlbCT+CrHRfmxxwbX+FIPOm6iGl6h6z8mU7+46ibIOC3X1dOqhrT7wQDxuPcwdwtkjx8vzpAnPLUBBR/Ytw9evUdEBhT0VqeDq2YW773QQuIwO7PPdBvqJeUerY4zssS3uQFj6pSTVLzK99yb52o+mwNMOfmbDmsp10Im+Doi6LAt0y6wBcoMFy8oOcaStj3OcMv7oqNfn+7Wr1kDBMnbOLQvRo4R3yOSgJU2hx8JeMyyFAK+9oZQ2shqtMHzVUinzcjNqZtQ9ukAfM9NgZCSb9HVjooSenQokK09+rIGcWE93xgbjz4v3byXrggrLCIOlhhQkEbfsi05u7kCLsrU2BEDBRZlYCM2eGf5Fuzm4ZFmx+XZVYYYUdSdG4g8pR42qa0N8eiyDy8SF783E1OagynMXix5OKu77ljoyrEcMuknnXsmN5VJ04R+UIrfdYSYWUcykFiVzTHyc189wa4= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 54edb3c3-9a1e-4bf9-f9c1-08ddeec86a09 X-MS-Exchange-CrossTenant-AuthSource: DM4PR10MB8218.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Sep 2025 11:11:09.8190 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: f445uCyFEgj8OPD+QrAAOCzazPsZAgT8Byb/SdjUE/Za0oBj6TWUEWnfC9otb7i9guMfVfotP93s+H8Y4QyEBy4DedIsIZRlwFMQy1ywOlM= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS7PR10MB7155 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1117,Hydra:6.1.9,FMLib:17.12.80.40 definitions=2025-09-08_04,2025-09-08_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 spamscore=0 mlxscore=0 phishscore=0 bulkscore=0 mlxlogscore=999 malwarescore=0 adultscore=0 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2508110000 definitions=main-2509080113 X-Authority-Analysis: v=2.4 cv=ON0n3TaB c=1 sm=1 tr=0 ts=68beb9d4 cx=c_pps a=XiAAW1AwiKB2Y8Wsi+sD2Q==:117 a=XiAAW1AwiKB2Y8Wsi+sD2Q==:17 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=wKuvFiaSGQ0qltdbU6+NXLB8nM8=:19 a=Ol13hO9ccFRV9qXi2t6ftBPywas=:19 a=xqWC_Br6kY4A:10 a=yJojWOMRYYMA:10 a=GoEa3M9JfhUA:10 a=yPCof4ZbAAAA:8 a=V8PVCHvh7cpLA54rH4kA:9 X-Proofpoint-ORIG-GUID: MxsvUtBHi9mFrD-wWuHOlDcMemcF5f8r X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwOTA4MDExMSBTYWx0ZWRfX1QuTjSbsFxLp VDanheOUKBZctKh84pRijwY3sdZx2yje6fYOSPV2qVl3RhZ0aWvgoKN+uSIpt3pssbSBPs2CuR+ JnDEf/CV4oznseFUDIPf3JDNGlSL8PwUxEcsRpahxz2qCQtbgzSMGUv290TJx7jY+VwDxWnsgvH T0p7Bhew0oRgoCK9TYgSWScuxdvG0uHDd969vZNu80i0dL+lAMokuLQiRVKhmc5H1i6Lj9Ai8Oc JykTLcGtxDcsBfOHuMQaAAfTDJ8dCwAWJF8HBRmSuOM93WL/Np1qFmX55Lj1t0Im2KrxbLC5Dwb KkdwZLb7gGjj0MVXWcXFZ6k6dbSzWsZ6VuOYmWT6odYtsJX878NEsxqXJ69xf4a+sUU/Jxlvo89 L+NZIUfq X-Proofpoint-GUID: MxsvUtBHi9mFrD-wWuHOlDcMemcF5f8r Content-Type: text/plain; charset="utf-8" It's useful to be able to determine the size of a VMA descriptor range used on f_op->mmap_prepare, expressed both in bytes and pages, so add helpers for both and update code that could make use of it to do so. Signed-off-by: Lorenzo Stoakes --- fs/ntfs3/file.c | 2 +- include/linux/mm.h | 10 ++++++++++ mm/secretmem.c | 2 +- 3 files changed, 12 insertions(+), 2 deletions(-) diff --git a/fs/ntfs3/file.c b/fs/ntfs3/file.c index c1ece707b195..86eb88f62714 100644 --- a/fs/ntfs3/file.c +++ b/fs/ntfs3/file.c @@ -304,7 +304,7 @@ static int ntfs_file_mmap_prepare(struct vm_area_desc *= desc) =20 if (rw) { u64 to =3D min_t(loff_t, i_size_read(inode), - from + desc->end - desc->start); + from + vma_desc_size(desc)); =20 if (is_sparsed(ni)) { /* Allocate clusters for rw map. */ diff --git a/include/linux/mm.h b/include/linux/mm.h index a6bfa46937a8..9d4508b20be3 100644 --- a/include/linux/mm.h +++ b/include/linux/mm.h @@ -3560,6 +3560,16 @@ static inline unsigned long vma_pages(const struct v= m_area_struct *vma) return (vma->vm_end - vma->vm_start) >> PAGE_SHIFT; } =20 +static inline unsigned long vma_desc_size(struct vm_area_desc *desc) +{ + return desc->end - desc->start; +} + +static inline unsigned long vma_desc_pages(struct vm_area_desc *desc) +{ + return vma_desc_size(desc) >> PAGE_SHIFT; +} + /* Look up the first VMA which exactly match the interval vm_start ... vm_= end */ static inline struct vm_area_struct *find_exact_vma(struct mm_struct *mm, unsigned long vm_start, unsigned long vm_end) diff --git a/mm/secretmem.c b/mm/secretmem.c index 60137305bc20..62066ddb1e9c 100644 --- a/mm/secretmem.c +++ b/mm/secretmem.c @@ -120,7 +120,7 @@ static int secretmem_release(struct inode *inode, struc= t file *file) =20 static int secretmem_mmap_prepare(struct vm_area_desc *desc) { - const unsigned long len =3D desc->end - desc->start; + const unsigned long len =3D vma_desc_size(desc); =20 if ((desc->vm_flags & (VM_SHARED | VM_MAYSHARE)) =3D=3D 0) return -EINVAL; --=20 2.51.0 From nobody Wed Sep 10 01:09:09 2025 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 09DAF2FE04B; Mon, 8 Sep 2025 11:11:59 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=205.220.177.32 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1757329921; cv=fail; b=S0+tvP8K+uRcY3Z4DaRyOb4Tn6eMtg+pkhf6N5ll1CccWQtmuw384QvitaVyM0RwNIAGLSs0Tjrz55dgGIyuzhLClxnvDiP4F8DOgTBHwfvW3gz0HKeOi/fIPKokSL4tF/FzlYWeymot9HyK0yGkVUy1s2KLbmF0UsV2wT8Xxwo= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1757329921; c=relaxed/simple; bh=J10OU/nmpmWQqdbJ1X4Z8WnqeEZWNgK0Y5+JtK53Xbw=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=HKfqq4AfD7pMQw+keKhwXMG4wsVniY1UUsl+wEMJmgkm2lrA6Gf4dnwz74oM+VMxQsnAe5POcWeP33G/jo6F5Gijm7pxTCJUdtJzsCc8eYo0FuubTlVQdZn+Yub+y9LmWfk2YdgJE7NfdtjYt0QiE4x+tV7cVHHJmMaNBygJsIw= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com; spf=pass smtp.mailfrom=oracle.com; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b=Gf8lKJ9a; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=vzrz2EmK; arc=fail smtp.client-ip=205.220.177.32 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oracle.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b="Gf8lKJ9a"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="vzrz2EmK" Received: from pps.filterd (m0246631.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 5889ikUk000876; Mon, 8 Sep 2025 11:11:19 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s= corp-2025-04-25; bh=d7YPdWDqyMfkok0uo2o07M2LPJvl3/okVukz+dZHq+E=; b= Gf8lKJ9aoNSsmHbhDHn/vmDH65agTishM5+EzdA4ldWsDlug1CU0XkIaphumOrum FXircP9pQ4N499ly6JEsG/dUWXXlTBaKYJiBaGOlHhMbYcNTj1PMEzacqOkhFX7U Dtq9hOAx5MKa0UUrAWIp4DvZ1CRC1PGZsFfWKb/Xh0bniuYbl8E53EMqbkf1rIom a6aTDkfOZhXUZxGbv1QzRXlDXUiXuWDoJ05S+FiCQMVksjX1QMT/YeyaUf0WDZjh dyYAkL9dZMwV8iLJprm5j0S7/TpaWuyl9PWX1IMZaDlLNHiyo/8djUMvBC6Ntr7S sGMxzdoQqQ8+SBVYUGQo5w== Received: from phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta02.appoci.oracle.com [147.154.114.232]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 491vsc04s8-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 08 Sep 2025 11:11:19 +0000 (GMT) Received: from pps.filterd (phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (8.18.1.2/8.18.1.2) with ESMTP id 5889R7vw030624; Mon, 8 Sep 2025 11:11:18 GMT Received: from nam10-bn7-obe.outbound.protection.outlook.com (mail-bn7nam10on2049.outbound.protection.outlook.com [40.107.92.49]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 490bd819s9-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 08 Sep 2025 11:11:18 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=RTJ04iY5FW0LWFtQNXZIc8h4OvnNY34uBxFA6MC/2cilKT8rbrMELVI5P5qyw3NuV6l2VZuIkBFG2lXm+a7lIEY4FJLsF0MhMXhVHxVv9QfaLLc2feTNb+KY1FHpTAhx8xVUBkf1D6CDOrFQ0o6LK2iJCpxV2ivVjQKQyeTVPzBzE3UxsZ/MbBW+aR/CcN7BkA84VVR0mwLlnqzL1SxXp1d8koWnPM0pXVZXg5Fw8ZMc1/dkwZmi3d1Qx9warMR9hBfh5VH0Bg5PSsNeouf7M1+p6D3r70pODI0EBYDfQZJ19iOhoP5lBkw89zRA2Ip9jQ7LxE8PsMRY3WzIeBFpew== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=d7YPdWDqyMfkok0uo2o07M2LPJvl3/okVukz+dZHq+E=; b=p4uY3DNbXBmFWbN8SrcOBkgP2DZZvjNfUg+8Dn7NkIh3n621cCBJix51TyyAteFjTV+IHkl2hDuDI9A3b8q9vlqWPmZ2oj9MTOHbtr0UVUyOSQ8ueQDLMifiYw4zuSMZfpl2BnLLX2dj+3YszVU8njKwzY4a61wE8OWXT82Vk0oVXBirDBIu9GZMyHuint15oNDdNeeu4CphAAY3isUXydH+31rEOBz5JlAx6hxBNvv3hK9OgxXRZNyRURdRKwnqbeAnopRj3YV8Pfcdfg75G+6GTxtf/eN2i8RHNzPhZXMPmogf9A+rvgiwWIATuCzacZHESpwB3HlYz0vETS7Apw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com; dkim=pass header.d=oracle.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=d7YPdWDqyMfkok0uo2o07M2LPJvl3/okVukz+dZHq+E=; b=vzrz2EmKnI9okEfxuc7JT7/ilxMfIyr44XBff5PanPzjzPK9PRE5iHZqGDqY5ygIAW0I2eWbTddRuh8CDcQ50cYjAvui9kM0LwwYBmCrqo/FAHWYiAMEFgAEcmQyk3/h0nd8Nr/gVujXByTGkX4D4ypz/5nMIbZXbkYQl3oXy24= Received: from DM4PR10MB8218.namprd10.prod.outlook.com (2603:10b6:8:1cc::16) by DS7PR10MB7155.namprd10.prod.outlook.com (2603:10b6:8:e0::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9094.19; Mon, 8 Sep 2025 11:11:14 +0000 Received: from DM4PR10MB8218.namprd10.prod.outlook.com ([fe80::2650:55cf:2816:5f2]) by DM4PR10MB8218.namprd10.prod.outlook.com ([fe80::2650:55cf:2816:5f2%5]) with mapi id 15.20.9094.018; Mon, 8 Sep 2025 11:11:14 +0000 From: Lorenzo Stoakes To: Andrew Morton Cc: Jonathan Corbet , Matthew Wilcox , Guo Ren , Thomas Bogendoerfer , Heiko Carstens , Vasily Gorbik , Alexander Gordeev , Christian Borntraeger , Sven Schnelle , "David S . Miller" , Andreas Larsson , Arnd Bergmann , Greg Kroah-Hartman , Dan Williams , Vishal Verma , Dave Jiang , Nicolas Pitre , Muchun Song , Oscar Salvador , David Hildenbrand , Konstantin Komarov , Baoquan He , Vivek Goyal , Dave Young , Tony Luck , Reinette Chatre , Dave Martin , James Morse , Alexander Viro , Christian Brauner , Jan Kara , "Liam R . Howlett" , Vlastimil Babka , Mike Rapoport , Suren Baghdasaryan , Michal Hocko , Hugh Dickins , Baolin Wang , Uladzislau Rezki , Dmitry Vyukov , Andrey Konovalov , Jann Horn , Pedro Falcato , linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org, linux-fsdevel@vger.kernel.org, linux-csky@vger.kernel.org, linux-mips@vger.kernel.org, linux-s390@vger.kernel.org, sparclinux@vger.kernel.org, nvdimm@lists.linux.dev, linux-cxl@vger.kernel.org, linux-mm@kvack.org, ntfs3@lists.linux.dev, kexec@lists.infradead.org, kasan-dev@googlegroups.com, Jason Gunthorpe Subject: [PATCH 04/16] relay: update relay to use mmap_prepare Date: Mon, 8 Sep 2025 12:10:35 +0100 Message-ID: <9cfe531c6d250665dfae940afdb54c9bd2e9ba37.1757329751.git.lorenzo.stoakes@oracle.com> X-Mailer: git-send-email 2.51.0 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: GVZP280CA0070.SWEP280.PROD.OUTLOOK.COM (2603:10a6:150:270::8) To DM4PR10MB8218.namprd10.prod.outlook.com (2603:10b6:8:1cc::16) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DM4PR10MB8218:EE_|DS7PR10MB7155:EE_ X-MS-Office365-Filtering-Correlation-Id: c78eb9e8-a209-46a2-5a6b-08ddeec86ccd X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|7416014|376014|1800799024; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?LLSiYGdlDciKDcXSdWjWBlSBbNuJbEb2CBA9AAdRBwQFkdBc+DQkqwx0XFVy?= =?us-ascii?Q?S6sQONFFfXMvkK6gigmg21HMK9hGOkaXkN303UOVFku33QYXFK5Hd7nBJAPL?= =?us-ascii?Q?82K1GRD853mLJa5QjWWycBdAESpJAtYypccS1zN60ERh+H5a7p21pBSIFVCd?= =?us-ascii?Q?eQC31HZwBtd51s5/mMeBubesFKrx1Bu1bc3lK52z/dDCbjtI6xsYfoS2ewJA?= =?us-ascii?Q?/jd6M5e5cClHqjmIP5GVgSi9R9650g+6as8kW/FfxE2OUVznfTKOT+L3Qm4t?= =?us-ascii?Q?Eh+JRXXA+ylOPRDxjlhei073vEV0HOWp1zD3puSVJ1giUOfPip3BUtCY0JHc?= =?us-ascii?Q?3udK04jA15iux06CnQz4m0eOtLZesP+zHxRMOK6m0rfcRMy1uYmhg3TYp3cI?= =?us-ascii?Q?YQbHgNVAeyNflFgP0e2IrjV+FWOwd6zgBjAaOnlOO3iLy2VKplCF5jNUHZ69?= =?us-ascii?Q?nAYz9kohyjme1W3RBBQH1b4x4t8SttiF2Y7Uoawc/J46rzbLkqV3VFzQmzCR?= =?us-ascii?Q?m30sJ5JwGCZBZ4oWytv4yGjjlitJk2ECqWw0Vhyvm689WaOFiSyTqIEvWcGy?= =?us-ascii?Q?+ZH+jNKP1Dgg+I5JHTWwpqHQY7ChPDgN5NEa0ocXER6HHibVZOrYd/UgjyQn?= =?us-ascii?Q?8XImwCabGVT/T6Dv9BNte8Osu4/Ig/dGisLapIufkDZMza3peK49CJQKdZVx?= =?us-ascii?Q?MnnKRsu3bqWE7bvvl8FYMc4wQhfQyYuoVwOtCPeXkmM+eWkLL1ZY+oBYLz8b?= =?us-ascii?Q?CG56jjxfJybDGkoZs4fH/YY+IxYuWok/mOygg4d8Y84DMhBgux9l36BuAaFZ?= =?us-ascii?Q?moI/X6lFPmYbNzPfVc1ptHQClblpYdAYy8/aHg7WHDWew9qLz9MGcvIczvSe?= =?us-ascii?Q?UgyVpD5VA7ABCL2bd8GhlpcWvRibd+y7juw2TVeM+gaf0Fwqrlm9Qsgekfh4?= =?us-ascii?Q?U1eyqPTkzRu6fhYofupymz08nuLfJbSUVw7FGKuA3Vh2bhPzzrOp84o9E4wW?= =?us-ascii?Q?eoFrUKAnvzynn3c7C3e6dRaGitiAu3rqsdRFmbwciCHOweehHyHBwU8dgHjN?= =?us-ascii?Q?DnESsZWFhS+Zh6c4NQbvomNmp2ADs+iXDTpZKcz41jSDiVSRzVypMNc9MwyK?= =?us-ascii?Q?WPHfTYpsJA6SizN+9y4emw4rnEvVK0RoLGL6w2oQ6y0eROb/ypFHrd9hfaAW?= =?us-ascii?Q?B5QApeLho1g1z+iren6bBOhc6u4Wd0Bc60BvnntquGNZb429N8jup4um1Wjo?= =?us-ascii?Q?TFCoVa8X66L73xPQwkGCEh57JhR2rSl9WHgFo7g66/Uiavy3buxVJ88fYcYK?= =?us-ascii?Q?81oeQK3RItjh6kTSjQMGfkFfH5JsK7dpi7prFeHXragM17j/mPXiqhongOhM?= =?us-ascii?Q?1wH60GuV/6cM935Z2448pvIxQ2p3EVclhwOPHaCktdnCVWKnvPVe0v7K0Nk3?= =?us-ascii?Q?MfJ8wnBRgR8=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM4PR10MB8218.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(7416014)(376014)(1800799024);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?p8EFCYtmQrp2GuagZRYbfoY4/lvYqGCg4ZqKwrr7u4ZvifwrEBwjZUwFt0kT?= =?us-ascii?Q?PzhuxOMA0QMBV4tlyoj5teEJJQBbSDgorUl71EZH3ucKM7jCRMxVQAh/MIef?= =?us-ascii?Q?UMxZMEULZEwNbnmMV92M8SgZN1BmeDNKLdJIqQYoIWndlZSPcW9DEnMkTIv4?= =?us-ascii?Q?n3Xy0u5Ks4SQfS/QgoV1USx0sCB8SPUuxpMYGPPZipQ6GGUr3+HUYz188eTS?= =?us-ascii?Q?IX+3fjvZZCc16/RtwpKhPoIfT3SGWSjw+W1iGqXwGmKppLcPmpNnb9y+ohQi?= =?us-ascii?Q?mn0Rfb8JrCPXRIbyhQByo/aODJSGz260HyDPqp6g/M+JZpgOk4pzG89iRM/G?= =?us-ascii?Q?Cmqbaj3nZ3gy0APU7kEvH+4gzcBjzZXtzq7PBbjuSkk8DoPlltN/OJSUMSNx?= =?us-ascii?Q?CsxfzLm43SCqeSAf1JA8z8Fnaw00qreIdSCYmhlIoVa1JWwwY6MTbknxcn/U?= =?us-ascii?Q?jpslbg9VY5H3Vs0CFObwoDLVQX1fPrdZZLZ7ceXUbse30nWuWtri7shPXYxk?= =?us-ascii?Q?AHY5QCpq48NUT0/zdOqIyfeFSrqgxgWMfmu5ZfnbTCv2g3tED3xE90t4rCYQ?= =?us-ascii?Q?xh0Wfxm7lAQIylXHGVVuOqNjQnQKIUTy5AA1Z2noxlH4W5phi/xmWF7uLlXY?= =?us-ascii?Q?ZTP8VGlWuQVkHGj8eKcdMFcGEx04Dcsm4TsI7Fj1kGCKveix8acSzyG8fxml?= =?us-ascii?Q?dDVPMa4byHaCfcy6zId7ugFYby69I9IdfWvAe5rnylwgPBktBA/Lf2rBIjLJ?= =?us-ascii?Q?Je5CgJxgLCOjgXUvNQb34UlWL5RDrb5/+Xv+uENNfU17snIGpxlfAGXbLWQu?= =?us-ascii?Q?GRMCML+q964TpqzThJRA2V0Cm4Zu8iBchWcGL730uu2dUiyaFK2r+4k5AwBD?= =?us-ascii?Q?kHVMTXMSu1zvrSyLklYMkWhpeHfhCjxQ4Psi2eKrH29vzHkmQxjzv42YnX+u?= =?us-ascii?Q?I6oDhKqvXZ4FkpM8bowiDnhMsC2lLOhgKLzKW7W7PoRiQEklWIuciocNiodR?= =?us-ascii?Q?QR1V+Y24KVrJVwZovAWMZ7Ro9V67qii6iYE5I7XSkUMXY9+bsAOhMi0e4g9k?= =?us-ascii?Q?j4P8ibgL1mGLhYuYinuSHejI36wrkFtRiSSZERGTDyNGXHh9voqfRmBgC/kj?= =?us-ascii?Q?mn36dPCkIX5ncpRqVk1isKqGSteLxWqPcyzn9FhjVKSVSNeOMLbpwkzihViB?= =?us-ascii?Q?zq00IRHmWNVAykUxucdIgxJ2V8ISHgzVld4l8BliDDbONQKGKZXuuM8uGpg/?= =?us-ascii?Q?0S6lCTxCiLrkVTFqTVgP70RA5AjOCXr9aYb0px8ixToYxL8fPGbgC7tU6jpq?= =?us-ascii?Q?EtLCi5dZhKkPsHVOBhURIq3M2ZFlVfPifs36gEC9HN5EoVLvY4slPnsc7uYV?= =?us-ascii?Q?py2tjopYrGud7CXfa8S4uuZyIKUJi3nDaafxMk61P0QpPOrOuaCTBsT0RvXj?= =?us-ascii?Q?jDSB1FU5noM+zvFh7L2Rx5IQNzViV64eWDo9nQ4TcMbAzZppibNlY0d0XrpM?= =?us-ascii?Q?9OpVGHl+zQrtzhX7vAwjimVDLrzn1r1xtVnWPWnjEratw5EPSuk2r/n8Ng3n?= =?us-ascii?Q?6H/sWBKXAFwEleg2yssHYvd6Wwd8M4wPGLFgvfmpWHEbr7ce+OHUNbUWpeY2?= =?us-ascii?Q?GA=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: wl+8JTRLpnJ/VkOmvknghVHg4NG4og5Mj1taW0gJ8LL90zFKwQNwNZubRcQud42wJx/aSuMaw9wRmBs86iYQAz13ZJkJTiKNx3AFFTkkzscfFqLLupaTHrXHdhogtM0vrJgULsADEBv7ebizM5zPalafKlQrk4gWA2IohNj4VRj14OPgHsDSDkSXK3urFzA2hl16MbiQHnWM8uqSEXphw/Q9tpq4aLEJaN9RGDrAg+300xenYcT87YEhYRKAKWPkHlMUwNx8Iqur9TPAGUfc+Grc/aIF5/g2d0dgNz+CPg5/GJudYb0sQisWASf7t86fFcV4G0EZlInCuLV83cfYU/FVx/C3QEZoZ1vEEkzbHHhXJFnpo+wgXWa4fFYN3IYKRnNFuzr1gyBQgsDsdnKi8iNfTAA4HDMi0iW/JmwV6HisW8NL9dP1F/xTOwXj3wkAq1LUVJTJloplzTOQgTyyipdNIIGTGmQhz9sVAuspOmXZKyEGAqHQ09X+RyMyrwEC4jEkRS5mgr1awU360lTub7/zAtVgfIt+jVfUJc6B28rNd0OLkw5gcSxKJUiHTrXHNB6qD3DvJJucnY3+GInoqtJGN73LxXwJCr7JH4D1khU= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: c78eb9e8-a209-46a2-5a6b-08ddeec86ccd X-MS-Exchange-CrossTenant-AuthSource: DM4PR10MB8218.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Sep 2025 11:11:14.4643 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: kIhlpU62yE2fXf7mWg9OHadxGIz8Y9P4bByL0RJzWFxqkWEQVC8m7QR6Bcnxyni07MVpyVgaZEP3LI9L3QOjAFK29lacVWlwwLZcrobpbPU= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS7PR10MB7155 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1117,Hydra:6.1.9,FMLib:17.12.80.40 definitions=2025-09-08_04,2025-09-08_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxlogscore=999 adultscore=0 suspectscore=0 spamscore=0 phishscore=0 bulkscore=0 mlxscore=0 malwarescore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2508110000 definitions=main-2509080113 X-Proofpoint-GUID: Ml0xJwSz5R7HKhiewwZSV5W9c8iTKcW6 X-Proofpoint-ORIG-GUID: Ml0xJwSz5R7HKhiewwZSV5W9c8iTKcW6 X-Authority-Analysis: v=2.4 cv=JvDxrN4C c=1 sm=1 tr=0 ts=68beb9d7 cx=c_pps a=OOZaFjgC48PWsiFpTAqLcw==:117 a=OOZaFjgC48PWsiFpTAqLcw==:17 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=wKuvFiaSGQ0qltdbU6+NXLB8nM8=:19 a=Ol13hO9ccFRV9qXi2t6ftBPywas=:19 a=xqWC_Br6kY4A:10 a=yJojWOMRYYMA:10 a=GoEa3M9JfhUA:10 a=yPCof4ZbAAAA:8 a=kVp6y68UWkg0hX7IE8kA:9 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwOTA4MDA5OSBTYWx0ZWRfX0GffhyinZSpE donWMprIn0Pt0RTRSLdIC8StMXbQ1ISjdeKJgwfQiRfaNCqB5ksnIc3qpSZOB7z7odniElZgyjE Fmki5TqDB8GblvyHUGIfhK1CWLFTR+j5VmVPAFNYa+CfuJ4+najg3KDZDf4SZ/24k8dcKYl0lew 4dLeBYLVTey90/nLLJyFT6I+Az1xX5Q0bQBxNC0RU5CQWpRF7YduFUvZkJJA026pp+laKR8HhfC BHsebVfpXF+EOMd8Yu2nec34jeH6lmvIolAWlBYsdsqIumSRu8lgfMOZF8YDaY4EDh+lzikXrFS 0NPyLGjWx3WeMEqhLf3gQQs1FU/En805crn3Zd9Y3vG33YD1R/V8hvuXA1PEa0075G6wWbhcWah HM9yy4dF Content-Type: text/plain; charset="utf-8" It is relatively trivial to update this code to use the f_op->mmap_prepare hook in favour of the deprecated f_op->mmap hook, so do so. Signed-off-by: Lorenzo Stoakes Reviewed-by: David Hildenbrand --- kernel/relay.c | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/kernel/relay.c b/kernel/relay.c index 8d915fe98198..8866054104fe 100644 --- a/kernel/relay.c +++ b/kernel/relay.c @@ -72,17 +72,17 @@ static void relay_free_page_array(struct page **array) } =20 /** - * relay_mmap_buf: - mmap channel buffer to process address space - * @buf: relay channel buffer - * @vma: vm_area_struct describing memory to be mapped + * relay_mmap_prepare_buf: - mmap channel buffer to process address space + * @desc: describing what to map * * Returns 0 if ok, negative on error * * Caller should already have grabbed mmap_lock. */ -static int relay_mmap_buf(struct rchan_buf *buf, struct vm_area_struct *vm= a) +static int relay_mmap_prepare_buf(struct rchan_buf *buf, + struct vm_area_desc *desc) { - unsigned long length =3D vma->vm_end - vma->vm_start; + unsigned long length =3D vma_desc_size(desc); =20 if (!buf) return -EBADF; @@ -90,9 +90,9 @@ static int relay_mmap_buf(struct rchan_buf *buf, struct v= m_area_struct *vma) if (length !=3D (unsigned long)buf->chan->alloc_size) return -EINVAL; =20 - vma->vm_ops =3D &relay_file_mmap_ops; - vm_flags_set(vma, VM_DONTEXPAND); - vma->vm_private_data =3D buf; + desc->vm_ops =3D &relay_file_mmap_ops; + desc->vm_flags |=3D VM_DONTEXPAND; + desc->private_data =3D buf; =20 return 0; } @@ -749,16 +749,16 @@ static int relay_file_open(struct inode *inode, struc= t file *filp) } =20 /** - * relay_file_mmap - mmap file op for relay files - * @filp: the file - * @vma: the vma describing what to map + * relay_file_mmap_prepare - mmap file op for relay files + * @desc: describing what to map * - * Calls upon relay_mmap_buf() to map the file into user space. + * Calls upon relay_mmap_prepare_buf() to map the file into user space. */ -static int relay_file_mmap(struct file *filp, struct vm_area_struct *vma) +static int relay_file_mmap_prepare(struct vm_area_desc *desc) { - struct rchan_buf *buf =3D filp->private_data; - return relay_mmap_buf(buf, vma); + struct rchan_buf *buf =3D desc->file->private_data; + + return relay_mmap_prepare_buf(buf, desc); } =20 /** @@ -1006,7 +1006,7 @@ static ssize_t relay_file_read(struct file *filp, const struct file_operations relay_file_operations =3D { .open =3D relay_file_open, .poll =3D relay_file_poll, - .mmap =3D relay_file_mmap, + .mmap_prepare =3D relay_file_mmap_prepare, .read =3D relay_file_read, .release =3D relay_file_release, }; --=20 2.51.0 From nobody Wed Sep 10 01:09:09 2025 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id C1B872FC030; Mon, 8 Sep 2025 11:12:06 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=205.220.177.32 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1757329928; cv=fail; b=AaVwzcA26qlYiPkd6MiQWiAjpeJzCbaEerDQPQoJ0hgCRLa68YGxA+t9SNtzc5sWCLD3ZIBOFzeS2q9V2+i9QEN646cxL1wcWm2NEuB86GJfRrarvi8DCewLocchNxANRkw/NxeOFZEj7DNJKrTXLlft4n9Zh1PJzBRVosjRUYo= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1757329928; c=relaxed/simple; bh=47IUW1/9cRgfISDdopw/gejXAPn1glYAhjTzBUmNCNg=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=Et8vQFHhjaQyj4qdVAzZCXMbQQVlGgRqWcW15QVVZAEgqrDM6QZpi54QPFK99qYXvkC+WvEXSfUTeb/fi+e+xUvW66ZARGsSWyOgtxD9+ZeQjb8drNfRIUHxmo+yN20yaiQF3w9Ge622xfULcuvsVddzyfBeloRSQkJqP739CRQ= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com; spf=pass smtp.mailfrom=oracle.com; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b=n99bVbKq; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=UNtIpMqH; arc=fail smtp.client-ip=205.220.177.32 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oracle.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b="n99bVbKq"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="UNtIpMqH" Received: from pps.filterd (m0246632.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 588AsxUN014185; Mon, 8 Sep 2025 11:11:29 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s= corp-2025-04-25; bh=x2m2zJltpI2d75i0wgHzJI3NxuI4tTUMGch3HIo1zkM=; b= n99bVbKq/QgU6sQaCWoof0EwWT8mEUL+0xF2z2jPDM/zVmiz2chsHbJF5dClHPHW bDeoALC9fpcenfbEc6m+Ti/hJKv5gmze6Arh4gw4KEd7B9g2e3F3I8HV0+gg9mE8 /O0pcNwRemBesUezO5ZlCf6OnM3vW0GmlPSUm4Z9zXt8Xn0eeo4E8wT7stHl8vOz YOVynDKxebfSvM8zLcZdNtyzH/HLO0Kr19xqCRdT4xOxFgH8ao7yHtAS/kFF2OMX 70J6DgrOJe2gOridplPK2JHFRQ+U/fRbsQc6OS6I8j7ug4DX3HTcY7iswl3Q+L2y E2wOYYb7gjHLC4YulJgc4Q== Received: from phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta02.appoci.oracle.com [147.154.114.232]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 491wt5g0y4-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 08 Sep 2025 11:11:28 +0000 (GMT) Received: from pps.filterd (phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (8.18.1.2/8.18.1.2) with ESMTP id 5889YAKo030737; Mon, 8 Sep 2025 11:11:27 GMT Received: from nam12-mw2-obe.outbound.protection.outlook.com (mail-mw2nam12on2042.outbound.protection.outlook.com [40.107.244.42]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 490bd819u7-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 08 Sep 2025 11:11:27 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=SgMPXspYgBEw77Lj74oiAKOXqle3cpEOEic5BeQGHDhcGSYfV7lSLzDJvUD1rPvlWkNfGKJaylLSR4Jf7pvJS5ERuRfAKRqbVnvmanEQgb0GIrrbukD1cwLlPWphd+GqbeQrsPZn+XWeG2LY1rhsurmXFH5VAyM8Bh7qG6EidLt1AtZUj3R4d9EqcNWv8cBN0KCxHnIjW0ppck55QAIZyJYpS4l3VheGCeKWSGhigYy9yTRfyFmgyGyfCCRxLPe0Sz6pYK7UKkOfPKBtcUs7k7xrujGNmhJaqS8ld5bdeI7ypUmdrIxxdoG2M6OgzJxRlVZ91mheBVxn4Y4EWuXcDQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=x2m2zJltpI2d75i0wgHzJI3NxuI4tTUMGch3HIo1zkM=; b=Aj/cq0bsC+UtINi+qOtvM6RdYl+A33ZNxXTuBBdCHGP8MzWZ+qpMobotDLu/vbXkN2NGI3mGQyOlf0fDibTrKrFwoKPQ4v2h9HIYJq+VrW3ySwUiaXW/393pKakAyysbyp39+bMH4Mlp+VcM56upIdTfrnTqvIpBcyMKMFGm/YcLhQNgOUmA6oO7dCjRacviUjl8ME5LxlmAh+LvPuYow4iPCJbxqZ6VzFuuQZvyTLXykCRiG9VONFeG5M8gqrox+V1CL4bL25UED++vqPrdeB5abo6YRC91hQjlOdyikdZ2Z47atclObGbFu3nzUgVE1BJvqKNoNqTTFN/gqXa8fw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com; dkim=pass header.d=oracle.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=x2m2zJltpI2d75i0wgHzJI3NxuI4tTUMGch3HIo1zkM=; b=UNtIpMqHRBVmTX+BZiFBxJcZzNc7uTgA4VP9eaxCj9fm14mr82zmHgMUtFAUg6y9Qv4r8yFtOBpeaY2HMSTtenPWJ8SPkK6UC/hIiJZTQE2PV9ErCy79jzhJo1EMqEmdcswlEkS2FCGn1l0FOB1IgSFHUh0NQGIDYvyjFhLhc5A= Received: from DM4PR10MB8218.namprd10.prod.outlook.com (2603:10b6:8:1cc::16) by DS7PR10MB7155.namprd10.prod.outlook.com (2603:10b6:8:e0::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9094.19; Mon, 8 Sep 2025 11:11:19 +0000 Received: from DM4PR10MB8218.namprd10.prod.outlook.com ([fe80::2650:55cf:2816:5f2]) by DM4PR10MB8218.namprd10.prod.outlook.com ([fe80::2650:55cf:2816:5f2%5]) with mapi id 15.20.9094.018; Mon, 8 Sep 2025 11:11:19 +0000 From: Lorenzo Stoakes To: Andrew Morton Cc: Jonathan Corbet , Matthew Wilcox , Guo Ren , Thomas Bogendoerfer , Heiko Carstens , Vasily Gorbik , Alexander Gordeev , Christian Borntraeger , Sven Schnelle , "David S . Miller" , Andreas Larsson , Arnd Bergmann , Greg Kroah-Hartman , Dan Williams , Vishal Verma , Dave Jiang , Nicolas Pitre , Muchun Song , Oscar Salvador , David Hildenbrand , Konstantin Komarov , Baoquan He , Vivek Goyal , Dave Young , Tony Luck , Reinette Chatre , Dave Martin , James Morse , Alexander Viro , Christian Brauner , Jan Kara , "Liam R . Howlett" , Vlastimil Babka , Mike Rapoport , Suren Baghdasaryan , Michal Hocko , Hugh Dickins , Baolin Wang , Uladzislau Rezki , Dmitry Vyukov , Andrey Konovalov , Jann Horn , Pedro Falcato , linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org, linux-fsdevel@vger.kernel.org, linux-csky@vger.kernel.org, linux-mips@vger.kernel.org, linux-s390@vger.kernel.org, sparclinux@vger.kernel.org, nvdimm@lists.linux.dev, linux-cxl@vger.kernel.org, linux-mm@kvack.org, ntfs3@lists.linux.dev, kexec@lists.infradead.org, kasan-dev@googlegroups.com, Jason Gunthorpe Subject: [PATCH 05/16] mm/vma: rename mmap internal functions to avoid confusion Date: Mon, 8 Sep 2025 12:10:36 +0100 Message-ID: <626763f17440bd69a70391b2676e5719c4c6e35f.1757329751.git.lorenzo.stoakes@oracle.com> X-Mailer: git-send-email 2.51.0 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: GVZP280CA0066.SWEP280.PROD.OUTLOOK.COM (2603:10a6:150:270::13) To DM4PR10MB8218.namprd10.prod.outlook.com (2603:10b6:8:1cc::16) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DM4PR10MB8218:EE_|DS7PR10MB7155:EE_ X-MS-Office365-Filtering-Correlation-Id: 0c10ec92-f5c0-4fb2-2e4b-08ddeec86fb7 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|7416014|376014|1800799024; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?fJsAGUh1nw6ES1DR+uvg5v/kp1C9oEl4SvcQN2PZfqXiVeX+BLROh35QqKaj?= =?us-ascii?Q?ypKPPdIT89GpCu2+7cI3OysLnFfoy7o2XI51A+059IvlOsj2VXjlDbCKbU93?= =?us-ascii?Q?mnbxCKC1Lw/1t2f9gP8NeL6cRZlJfQ686SZ2iZPraqVV/SDhHAy7/LfTLwYj?= =?us-ascii?Q?kgMfQgp7TedkIIFV+TDInNWeUPmy/gJXV22ZO47SPhHp94/IYBv9HpiUeusj?= =?us-ascii?Q?PEkJUX+Hw3037DJ/l3dwxOnSOMiIg/21aPZj21NWuNPXCaRDQkQ+Vz+n9t7n?= =?us-ascii?Q?cWtcen+v93f+/nmGs4f8vXaQSolcDA1QdX8qlERJVZllck2GbvA4HNTqcn/p?= =?us-ascii?Q?xglrwpBbifcZ7BDD5E6JU/lXj44FTIIOkzSGz6/zzOloJc13KzWceJAKMy95?= =?us-ascii?Q?y082MVl41MJvuZpX4SlGFE3EjsQOQw1WHzmJjcasH2SOBUB4mpkQW3udpnzq?= =?us-ascii?Q?M8kEE+dd7d3gGDQaUtDmROVo/bgD2PGvjhOKDzQigwYJtGXkp+TLze0yhDiC?= =?us-ascii?Q?lxUYEhoGxW2L65PsJCJoy90FdQgN0rjNCYsWg1KFXgrNT1WGZKqnr8Tkqab0?= =?us-ascii?Q?86rB4GI2OGDOHec7w28Jvg/zwYcjVvcnf1jAlN2SWZXcMAomS3+fgZbzkOAJ?= =?us-ascii?Q?MpJOJLrlko50AfcSmtbX4gr4u6UMNxyn8VA//bmvr6D7OtgMoqoY0qkO2xxL?= =?us-ascii?Q?9nQt0xy9KUL792K0KCLEtMHbyAiGjjPJRKJkm7Pyqr8aezZOCoVvSmolG3ZO?= =?us-ascii?Q?Ta5eEgYc7RJpWpVao0PG2+AVe4BqmUae9HkknJCeDcBWD+YRwgr/OBB6Sg84?= =?us-ascii?Q?p5NvawyYDliaSPEN5LXbOGTLFypvbA/lCdZPhb489TR/B1XombS6cfUbw4TJ?= =?us-ascii?Q?aINqAnGJdcUsqdC1X2//RVe7Htj5eUP1gYJYPgjunLbcfSabK6I80099zOxi?= =?us-ascii?Q?TsK3QMNnzdGM78Ma/9SBCxcSn9QyaVzP+Ob/pQuOjbTM1PV2xWsnP7MqRvKm?= =?us-ascii?Q?8zXXnwCdEO/JKo//RLo07hYc3VoZKhlLYZcdH9mXWXvD5UDU6CfUiJbO/Fri?= =?us-ascii?Q?m500iDuq6RJA8Q1Eq0pJcIkibIIxpAC7C6htgIf3xhQRNCzclb7VnLl+xPiR?= =?us-ascii?Q?hGX6LG0s9B22gfGl9/FQdqbAeBpwbzGZBpRQ+M09e9yPjHWh5/kR4lp6M2Jv?= =?us-ascii?Q?cgIkjI1rs1huwyLC+TUoml/iF/CE8b2ZXSJNmEVN2+PHqEG2MfHe4D5efvFo?= =?us-ascii?Q?S7zd65kWlPAY3Ox1ZuW9nTEi9H5gNSB6G2CbjZzrLaiGAObRZCFO8NFUisiZ?= =?us-ascii?Q?Q7ZaRenOi2vjr7648n6sFBE1HdnJhFSXayXRIOh/YuNML4MckNlwEoYsBb5h?= =?us-ascii?Q?SEnLi0KGJXw3LmNwzUOM82Eh6KQWHywllcLy2lg1Fn33Uc6dmfoSSuZi/Myi?= =?us-ascii?Q?yucabGIYMKU=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM4PR10MB8218.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(7416014)(376014)(1800799024);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?rKvOKsWwfnBbzUGAEQsFgQM+oSFe0wOZtRRVLk63mwoWPr04ufCK5LgDCVDA?= =?us-ascii?Q?fTLMbe7LCIM36Fy/MI4RqYRyaZbFAirbZUJiy7NaG9+s7f41pnoio5cMh5Ee?= =?us-ascii?Q?kHhBBKUvMcCDPhX0n8QS4Uskv3IJvUfVLu4ypYTIw61zL6qk8/wSGvpmuQ8F?= =?us-ascii?Q?jh9vyUwv8IFgmazGZUiZN0RRHFT7j++Qz5NhqU05oUSyX2H5fohsrgr3P8fU?= =?us-ascii?Q?AXgzEBYzb8QtzyYzPy6+BQBsDQv7DiQXId5lZUhf8myQjQLCuQdhvRC3c+Ak?= =?us-ascii?Q?r/VRYjYEatIQNujk3raPBkB1JcVPmmXmEZg2nqfYqcKZDR3xGn5UAjEvqOOX?= =?us-ascii?Q?mjOCXlyPdRY/ZQLL4lAu3R70R587sU94kL/eodBaEfBvDMoQY4xN+r2NWLX1?= =?us-ascii?Q?Wh6jxcE9S9rQBjak+sL0UdXt0WD/V41T3K5mvLAHdQLAt5yu58P+ywGVI7GE?= =?us-ascii?Q?0jt5Oi3NM8WBUHr8pc21OWz4oSacd2xObt2PF+Xcj8R2xm1mr4KyXz+IrHQZ?= =?us-ascii?Q?9zN4LxF26/5JNjQr6JkBFoBl/fmvO3tNpXZMsDV3tpPwbyrAU8aoMRzpiME4?= =?us-ascii?Q?O5ZI3Naw6agbkk333zXH0Zx1lf9CTx336kmMDw8CdgBVFn0gEvehKi1CR8Oo?= =?us-ascii?Q?pmval2sY25ZmhB4BKkGEjUmP9e/CEb1+0JOvE51+havXOWCS7zOgqsKctxbP?= =?us-ascii?Q?gRz2uFMWZYvBNS093eTLxMEyGyzYJiGI/VYzPaBzWylxGWvdQHWfARca0WL9?= =?us-ascii?Q?NRPy1mdxuoBV134lEgPhvBCGZK1yGOky2bZd0pWKirFHetLgtenNJp4nr0C7?= =?us-ascii?Q?TCWVBSCAPfYxHMKVByd5lRIDcW1aNl0Fu/5J9WNXVq5f6Z69axOOyeftqkg+?= =?us-ascii?Q?LbwGLGFQNKENzXv2BknNxtz0fJWFqj7BBChJLxTuU5F26eW0z5R9eKEBLcvg?= =?us-ascii?Q?pQJr1fIycOYVNtWzRUbDXgmZSHRYQp/9UDVmeodQXlpLTTKYtZD3GlChesRm?= =?us-ascii?Q?VSyIgsqAaEZgK0QN39l6xQ7/jkXjPp6e54p02SLJA9NDbRVFx9ris6gfXL6W?= =?us-ascii?Q?4vwpJfybyDcSQeRsePlAYFxafo2bo9gpCjzfRjjmMZkTAqILLRkMOo6v0zqu?= =?us-ascii?Q?dBsO3scdTb11k/0oFGxbuzR+c80Lm4w7Zbhrc47z27kNzMSB2+13FDFGhSxW?= =?us-ascii?Q?8P9FszPr3Mufn9I7GpEJot6kP8vacHzj2xRfKiA1Ps2xEDARJaLdOExSPiL1?= =?us-ascii?Q?SdpIsr7KCJreYBJ1mTLq9xkYXXg00zTKFRXe4PdgFAN4TyKULkkDLthJOQFz?= =?us-ascii?Q?CpPPAwF0RfxCnOfTDw7P6vCx88m20OMITSHQx7fUmf9nortmqsI1sUqX0ymU?= =?us-ascii?Q?TPmJ2mEPVeP9OEtEiBtpMZmKqsq2+PtqmWZ2d5p2rzErnLcTrYFYZbbc+j1Y?= =?us-ascii?Q?X9sSZI+ysfd2tHvTla0+4ww2DOwX2LaXGYgcOMZjTfFZwNKQvnjwg4qnNIpg?= =?us-ascii?Q?gg/8ytkJla0S59RqrmYWygo7c6jmLwrCekpOu+A1Uz1fz5XF084wLldC/mZn?= =?us-ascii?Q?NzXg0WO6C9V0o2QkJ4EmPOtgqgE8bSmlyIqxTo5Id/LQKsCeX4pXJ+7Xxpof?= =?us-ascii?Q?YA=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: ETNn+vKgGRj90fn3dMMOx9eJA/r8WsgB6S73gV7qGDaKsKL8AiANDihkvqn0vZOkVSM20a6wXUA+aHY0xFjFVIp+ElqLlyKL5mI4gbZ/QmUdhCrxsNeY2yqBhsYnoHQM9iWNe+SVPpa8hi69esRgg5FW2IfXLblkylEuNbKjbpi0xAfxrVeKkpsMI4mpF+acyDHKsZxHThYiCUHt5+HlPr7xxuBl8z4xylKNMKnyEsICzv3+2g8NzHlrrBNrR1DxyAzGRLj3KNWB4PuGLomGMh5c3aSXZhuzmqj+PXCZT4wC3iTFNrNwI7BPvF4ojgZkq4a9CpyyhABjOclnJDETenonTRJQ4mtAgd9BJlCHaC38ceFh6vfZgPzZbbz2PjeVbmqhJzpgCa7vlpKJwEMcoH4kyqph6CbTseXdca7D4c22Zx7a4w3LWlQzRvcW6SYJaARZkCVRDSzoD9xxWqc5peTuQtQm/xVkrpW9vzXHp+nIj8tok8NZJ7cuma/k85neWU3TX8+Yc4ad31FBXilZbFrxL41CcMY/AkG+tzDMymOo6SCPKbR8IOwct5qIppYERoDgcCT+q9CvPQlu8H415iLIcSfIBcoaU1SvvHQsXRw= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 0c10ec92-f5c0-4fb2-2e4b-08ddeec86fb7 X-MS-Exchange-CrossTenant-AuthSource: DM4PR10MB8218.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Sep 2025 11:11:19.3409 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: U2Vl/xtGhpYFsq1Ij+9X6Y7AYlb7G7KWPeB2udVVZG61jAp2LnTghDVLywtDg8Mc27J+exFjrucAJfTcYwUjHS6/ZVWpc8AhCqGxp8cHRDE= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS7PR10MB7155 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1117,Hydra:6.1.9,FMLib:17.12.80.40 definitions=2025-09-08_04,2025-09-08_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxlogscore=999 adultscore=0 suspectscore=0 spamscore=0 phishscore=0 bulkscore=0 mlxscore=0 malwarescore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2508110000 definitions=main-2509080113 X-Authority-Analysis: v=2.4 cv=ON0n3TaB c=1 sm=1 tr=0 ts=68beb9e0 cx=c_pps a=OOZaFjgC48PWsiFpTAqLcw==:117 a=OOZaFjgC48PWsiFpTAqLcw==:17 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=wKuvFiaSGQ0qltdbU6+NXLB8nM8=:19 a=Ol13hO9ccFRV9qXi2t6ftBPywas=:19 a=xqWC_Br6kY4A:10 a=yJojWOMRYYMA:10 a=GoEa3M9JfhUA:10 a=yPCof4ZbAAAA:8 a=QQqg7_2JtjZtJ-DplxwA:9 X-Proofpoint-ORIG-GUID: L2muTcunIzeSwfBYBqVKynE-73PpkFBr X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwOTA4MDExMSBTYWx0ZWRfX6vRX62kU8AH0 M+2FTXHRaAwsI3/2A2UG197wggf3oMkgtO3jJJxS+gcqmeDvSq7u+rWBhMgkN9A2T5Or1IVAIdM zXusAALak8PFXWFr3kvbriLoT8LnOKFkIBz5i/sDvCHmiiG2B8x3q4knpgPcWt85NsmlzqswhrB d3iWVMVD7jFljznS5Tl5O/EI5s1nKiM+UEvTMNUj08ZRZV3fYClO2cwMrVROYNF2gjQ0mv17mya Cq6zsmLYgC4HPGmp8dYjaOJy2F1UctejYCIEh7Zk3XpYlR2mPbwrrYo9d0cvdtxZxHYtCL8XqdZ 9B2t0wGgY2ByVO9oWh6jG77XdQm3eYmgXzc0QCCa3cFzfribPkyJHhvDIO8RKPpIhtfzl02w0Zm xm9xMmVp X-Proofpoint-GUID: L2muTcunIzeSwfBYBqVKynE-73PpkFBr Content-Type: text/plain; charset="utf-8" Now we have the f_op->mmap_prepare() hook, having a static function called __mmap_prepare() that has nothing to do with it is confusing, so rename the function. Additionally rename __mmap_complete() to __mmap_epilogue(), as we intend to provide a f_op->mmap_complete() callback. Signed-off-by: Lorenzo Stoakes --- mm/vma.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/mm/vma.c b/mm/vma.c index abe0da33c844..0efa4288570e 100644 --- a/mm/vma.c +++ b/mm/vma.c @@ -2329,7 +2329,7 @@ static void update_ksm_flags(struct mmap_state *map) } =20 /* - * __mmap_prepare() - Prepare to gather any overlapping VMAs that need to = be + * __mmap_prelude() - Prepare to gather any overlapping VMAs that need to = be * unmapped once the map operation is completed, check limits, account map= ping * and clean up any pre-existing VMAs. * @@ -2338,7 +2338,7 @@ static void update_ksm_flags(struct mmap_state *map) * * Returns: 0 on success, error code otherwise. */ -static int __mmap_prepare(struct mmap_state *map, struct list_head *uf) +static int __mmap_prelude(struct mmap_state *map, struct list_head *uf) { int error; struct vma_iterator *vmi =3D map->vmi; @@ -2515,13 +2515,13 @@ static int __mmap_new_vma(struct mmap_state *map, s= truct vm_area_struct **vmap) } =20 /* - * __mmap_complete() - Unmap any VMAs we overlap, account memory mapping + * __mmap_epilogue() - Unmap any VMAs we overlap, account memory mapping * statistics, handle locking and finalise the VMA. * * @map: Mapping state. * @vma: Merged or newly allocated VMA for the mmap()'d region. */ -static void __mmap_complete(struct mmap_state *map, struct vm_area_struct = *vma) +static void __mmap_epilogue(struct mmap_state *map, struct vm_area_struct = *vma) { struct mm_struct *mm =3D map->mm; vm_flags_t vm_flags =3D vma->vm_flags; @@ -2649,7 +2649,7 @@ static unsigned long __mmap_region(struct file *file,= unsigned long addr, =20 map.check_ksm_early =3D can_set_ksm_flags_early(&map); =20 - error =3D __mmap_prepare(&map, uf); + error =3D __mmap_prelude(&map, uf); if (!error && have_mmap_prepare) error =3D call_mmap_prepare(&map); if (error) @@ -2675,11 +2675,11 @@ static unsigned long __mmap_region(struct file *fil= e, unsigned long addr, if (have_mmap_prepare) set_vma_user_defined_fields(vma, &map); =20 - __mmap_complete(&map, vma); + __mmap_epilogue(&map, vma); =20 return addr; =20 - /* Accounting was done by __mmap_prepare(). */ + /* Accounting was done by __mmap_prelude(). */ unacct_error: if (map.charged) vm_unacct_memory(map.charged); --=20 2.51.0 From nobody Wed Sep 10 01:09:09 2025 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id D88EA30102A; Mon, 8 Sep 2025 11:12:14 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=205.220.165.32 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1757329936; cv=fail; b=J4xhfi0kurgBTXSNov97OGk7gtQ2dw0ao8v1VODaSeVNhod+3kQWS3IPgJpxvmJ4p4M1jR39/H3AM6HIm7c1Mfmq1gVL2fV7Xjeg/L3o9ZE5lX6byCT4Kf4uOobg5ZALedwPwbO2xOh1gxiyJE0iFZcoxFXjuK+rYoWpowfdE9U= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1757329936; c=relaxed/simple; bh=enCnQSD9RzbsWjmgQOFegeun6cdCecWUSprgeaFXIOw=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=eLb6xdSxKw5dtF2YzfXOA/MJgSW/YQ74PCOJAlztVBklbDHIspqHJQbjcFP8620VBDGJTHthk8rkbsX8yncEHe9obyMSkCCe7bJrEY4FwqHg9LowQr7GPYN8fVghVTaARNHRNi8u1mVHfZQ3rXGtJBFSAHJRVG+T4+dBDl263pI= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com; spf=pass smtp.mailfrom=oracle.com; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b=fDuJDT+n; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=ZawzBEQz; arc=fail smtp.client-ip=205.220.165.32 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oracle.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b="fDuJDT+n"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="ZawzBEQz" Received: from pps.filterd (m0246627.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 588B4rqf011813; Mon, 8 Sep 2025 11:11:30 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s= corp-2025-04-25; bh=gz57yfJVYY55pJ8jX/B7xvolXutyen8mtTxHeZc/2Gk=; b= fDuJDT+nPnVPJey7Qj1/xrbabu7j1JnaUggcCj5vSPmupMaBA91zD2p4Vd+1l3/7 tQYYiA7yChvvNE8R4UpDpyWN7Q2l8lTP6e/pIPs7WplgaqJWLyle8EU5r3s5Ss6f d/yXynDRzwGMrqpfUtbvTFVgisG8bCrChmAt2QLlERkuPSyjnjb0eEpBI9Kf+Xtz tpSxp5XSsN83nbnnqPZQRhZ8NZqwiQIwgqH9XWMLha2zJjlxxeCfEqoo5avaaxx4 IQe1N61Eajn5mLT017tzyhu3iCbi+S4439kH/QDZI7QhGijSZupN0xREjXmkSQiU rDbPmW28ax/JQL4NHQFj5w== Received: from phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta02.appoci.oracle.com [147.154.114.232]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 491wxvg07b-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 08 Sep 2025 11:11:29 +0000 (GMT) Received: from pps.filterd (phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (8.18.1.2/8.18.1.2) with ESMTP id 5889YAKq030737; Mon, 8 Sep 2025 11:11:29 GMT Received: from nam12-mw2-obe.outbound.protection.outlook.com (mail-mw2nam12on2042.outbound.protection.outlook.com [40.107.244.42]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 490bd819u7-2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 08 Sep 2025 11:11:29 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=JMrYllM/A166ZcyRvZMqjT1V+2L3KnAWQQs5Uxc5zvFbN+VxRwGdDXHdfcuCsgL+ZYIbfG22aA4Obnhmctq2xzKDZtdrq7wEN2dhE+L+7m3C+UIcPymK4rF4s/9peFUpQmHAFs8aZb0Lcx91YuyRo9ShRaAUeJwyqQ0La0084ertC9M1sNIXKjllyv34NxepF0IhzCUCJvZKNbTBpWbCfYlEZKtRkYwtDjnpvkjwY1KpyAALg2pmTciqXNVP1QbkbYurEuRuRCQ42F2W5ShDEdX/3QBKJNNAb8QsBv8WmbjX9P516C9JD2sKd6kC4ZWcybEtJWmbDmalyFD3I3sWBA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=gz57yfJVYY55pJ8jX/B7xvolXutyen8mtTxHeZc/2Gk=; b=JC6Wy2jwbOBwD5JR+F2fMyqvqQHAIJ77IW3G9AIbsNlbRqnqT49w2nuApkrt/R1gI8trN5MeFWpe1vY0s2wvqicvCgqfQ7zZ2l9fA8wQItXquLEu0HhHE2NAyLrxzgtBUEDAuaBwzH60T8zy83fVvXSjMOyrw7rEEW96dB5Kn0eYUjJ8/g6DU4zm3d6kxyKv8NiHt6xOBGmdUAQGkZeUxkOdSg1njYMt0Y+LNpzdCuHuT2LYUBRCrFdkEyQenkpnN8pX0lgoMYEDkoxKtQnRHBfBID+HrBqWPLPI+o8H5vRPjKVFc51GrIMw1AE0hhbpzLFi4Yej6xxzUCGzNcLK+Q== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com; dkim=pass header.d=oracle.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=gz57yfJVYY55pJ8jX/B7xvolXutyen8mtTxHeZc/2Gk=; b=ZawzBEQzgBI1khjFqC8LYX03Vya+jK3flgGk8duNdcYhqlC36Vs5AJ7tRSZlwWm1HmWjZGZTNNYA/aU7XFVq97liWnKcogN0MQE6y2jPqF1GbbntZ7TFDQCAPjxHuU8zR9aEHPxCAYEIh6pgzMRme5YIsMCyo1L0LxyXy8rMajQ= Received: from DM4PR10MB8218.namprd10.prod.outlook.com (2603:10b6:8:1cc::16) by DS7PR10MB7155.namprd10.prod.outlook.com (2603:10b6:8:e0::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9094.19; Mon, 8 Sep 2025 11:11:23 +0000 Received: from DM4PR10MB8218.namprd10.prod.outlook.com ([fe80::2650:55cf:2816:5f2]) by DM4PR10MB8218.namprd10.prod.outlook.com ([fe80::2650:55cf:2816:5f2%5]) with mapi id 15.20.9094.018; Mon, 8 Sep 2025 11:11:23 +0000 From: Lorenzo Stoakes To: Andrew Morton Cc: Jonathan Corbet , Matthew Wilcox , Guo Ren , Thomas Bogendoerfer , Heiko Carstens , Vasily Gorbik , Alexander Gordeev , Christian Borntraeger , Sven Schnelle , "David S . Miller" , Andreas Larsson , Arnd Bergmann , Greg Kroah-Hartman , Dan Williams , Vishal Verma , Dave Jiang , Nicolas Pitre , Muchun Song , Oscar Salvador , David Hildenbrand , Konstantin Komarov , Baoquan He , Vivek Goyal , Dave Young , Tony Luck , Reinette Chatre , Dave Martin , James Morse , Alexander Viro , Christian Brauner , Jan Kara , "Liam R . Howlett" , Vlastimil Babka , Mike Rapoport , Suren Baghdasaryan , Michal Hocko , Hugh Dickins , Baolin Wang , Uladzislau Rezki , Dmitry Vyukov , Andrey Konovalov , Jann Horn , Pedro Falcato , linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org, linux-fsdevel@vger.kernel.org, linux-csky@vger.kernel.org, linux-mips@vger.kernel.org, linux-s390@vger.kernel.org, sparclinux@vger.kernel.org, nvdimm@lists.linux.dev, linux-cxl@vger.kernel.org, linux-mm@kvack.org, ntfs3@lists.linux.dev, kexec@lists.infradead.org, kasan-dev@googlegroups.com, Jason Gunthorpe Subject: [PATCH 06/16] mm: introduce the f_op->mmap_complete, mmap_abort hooks Date: Mon, 8 Sep 2025 12:10:37 +0100 Message-ID: X-Mailer: git-send-email 2.51.0 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: GV3P280CA0109.SWEP280.PROD.OUTLOOK.COM (2603:10a6:150:8::12) To DM4PR10MB8218.namprd10.prod.outlook.com (2603:10b6:8:1cc::16) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DM4PR10MB8218:EE_|DS7PR10MB7155:EE_ X-MS-Office365-Filtering-Correlation-Id: 74baa32d-14b9-4652-2874-08ddeec8720f X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|7416014|376014|1800799024; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?PapI3ih3wfP/hwTk7s3JRJlxQhA5lIreStn38Tr6jtkbBkrBmA+I3BhG24PY?= =?us-ascii?Q?hlyN6im5qtfIAoEHdYPallM7qmBwnT6DyI/d/ISSaVK8suafxGKpgj8kij8Q?= =?us-ascii?Q?ePPhSpBFla1gRVWL1+9qXGgAo8lJt2RzxUSWDYPX57MJOnOf+hfGIkHminCl?= =?us-ascii?Q?LPJVwILriZ3kLYZOx6bmKBzaYWC3+eilcPPmK0g++RVA+D/F9DN5qOwmJGjm?= =?us-ascii?Q?nfiVky5OAiUg2YoRD059lS6YSoIjWj5r0gYgsERRcptHAhXv3YpEfRBm6zNn?= =?us-ascii?Q?j8U4KzbAYzPKFOCPAWj5rv4v/OjktZ0BMG/0NzMCa9DHL0F93aRiNZo3gIm7?= =?us-ascii?Q?RxHpghtQbuhIrr9evj+yWTKTHIHyn+LYOETXwPFv36ltJcIyoriyfPmGBipt?= =?us-ascii?Q?F1Vzh8SAQd26MaktQYw40Q88SzLGl+kvSZcd9G1OEwu0lWO0wOYw5+i0fKq2?= =?us-ascii?Q?VLd2x8WOJl6vMO1C8QgK7iI4RxKNhcqspRGR+Jj/RlmEFZzlp97SpOM+Q0q1?= =?us-ascii?Q?6bDQ1ThhFgejKIOPVg/QEhxc55lldqZRIWK6E3XdgL9IVHieRmc/F2T+WVkw?= =?us-ascii?Q?cGbCV19yoFrad0xBVNr+mNrb3diQYDUuuxY62EZ8iAm0otYsMq9+alNEnRgD?= =?us-ascii?Q?SJ9HMwZRLzid61OaHMQRpK/JIxlm7rD4DFcJXSpeDdzSaSelOtlq57nV5UFd?= =?us-ascii?Q?uTWcRbdXHr4ap0EJVWx5x7yF9NVKnvyrPhODUt7HjRk5Cn7vCcx4ho3Vte7M?= =?us-ascii?Q?hwV5v8UJPih0XjN7Hw+9NdWW78oWQzBKD2cNsU/QiONpN3kMlSQEOrLsg9zw?= =?us-ascii?Q?SgDKwe/QWmk/3xYkrjDWCLdabIcamwWtaSMYBgivA3xG2yvJJhBmOwz9UzsC?= =?us-ascii?Q?x/76NseTGv3qMdwr7NR3CzTOw+HJSPVsEqnA/yU5eIz+wStZif0K99zl2tj3?= =?us-ascii?Q?1mz8u7lr/lVX7gsami7ceMlCO8wVpTy1+fMIm5+/jV4lZX6ImEANif0yMAsk?= =?us-ascii?Q?xKef+pRvV4PnbwpIvhVF7U91k/RtXKTejzdtGvbpw86B0oayQihIdGY600/w?= =?us-ascii?Q?kNcgWUTYPkw1YUHk2Vu+XTfRf26I79ARpLtZoC569g4Ycm9naB2D9snvurRh?= =?us-ascii?Q?yri211Zf3NbW6YBzeU5poXyZlC0diWbPAlnt85NPQa62txJOA7Axm7NLpQLa?= =?us-ascii?Q?7kFVIRIqnYFkXjtNVt9JArMncXFmjf/fonLVdd/c/+cVMa1un1OA70T6en3C?= =?us-ascii?Q?lv0CW1ISnlyQxYY38W6JHG36zaxW1XVPBc2nqLPJ1wOTHuzI8fLvt68XAGaK?= =?us-ascii?Q?c9KfwFwKQV9VfnJH8+4G4DeHQpnazPW/B43Y9OP59DM3vm5+UqnCVi+2o5Wi?= =?us-ascii?Q?N/Tepa0N4FsAcNs6qv5LKOSgbN+pwSHarvPljF30k/2K4oBDbZlE9Ro4ZwHr?= =?us-ascii?Q?BkkAO3VOsZ4=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM4PR10MB8218.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(7416014)(376014)(1800799024);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?FxU5UYO7kXrfnI3hOgTgwgkbsueVDESCUfWbtlG7qn1BgUlMHnTQ7N/0wBY7?= =?us-ascii?Q?xVXK5eXHr4iyQBzVzIECH1xyq6EBQv1GkpiJbdTaE7cxgK+ibew0Xa1CFhmG?= =?us-ascii?Q?QsHYK8pPWaccHqmQVLL0G/W/n5SrXm+0ZmG/I9tVQDgaQ4H274MnShHqtx7a?= =?us-ascii?Q?KqDNCyKRXaouvveP+0JjCf+/0eDZzwjUx/aGwlicnSLJYDlIO7LMnho2BUPw?= =?us-ascii?Q?KNrUvygp5zAHZXO/3I+/gmmTgAPXIdL5zIGuodnz82bpqgOi8qvfB/os8fCP?= =?us-ascii?Q?jvpkJUvqvQ3UCLtZFkEuhqmIqb39NwXpFEAapEDWWhtNN2Zqyr/DObYzexeh?= =?us-ascii?Q?J+yRCAflY4tfBsd4ZGaFQVsKoYiayhoyplASW4fHzzzWoMEhan87CGy3zJ7P?= =?us-ascii?Q?UfH126nLEzNLaIdFzmldxHqJz1CCWXRhoynUusMxun4dWxmhMaBgXDLhS0Lp?= =?us-ascii?Q?42d22ndCdZlaMD9PVF3Ci/V63SkF+t3Fw6hL//SbZ4VwuC4einwhNBIuqWT+?= =?us-ascii?Q?uADtgkJt2YEHvGLGcTmfQHB6iPO7gWCAtKSTYS3IRrLCa8YZpNQxBEXDMBst?= =?us-ascii?Q?W6co3fXCMVkUIj+iUmiIdJ9t1Z1zcvuoc91MjvzVSb3ybOqwt3tA06DV1Pdy?= =?us-ascii?Q?BfeLH03WzYmLAVMAPLs2fppc7/cOyfIzU9ah8dml5cFJBoxcWKPBPjhRfzrc?= =?us-ascii?Q?BHXHCof59doEOPc6veQ7KANtLWeLkCtSGUPSubhoiyVodjkxwi1xq6dgarg9?= =?us-ascii?Q?crfPpzdJOpom1uIXqTFYi8DywstsHDFu3iVJPvRJTE/skdWCsP8ZsuYByt4P?= =?us-ascii?Q?YsabMiI+bOwuPlu4SbsbcGTHgEJ7fBcn597uSPU8+mmE733K8Kq+rN2Dn1hx?= =?us-ascii?Q?i3YKEGKk0BH1JLn2lEiTcpZoVRKOZIP8AOHNYWYuqft5qPjbXCympf+dbESP?= =?us-ascii?Q?scySfQ+KIUh9AlOa/Oce0ozR6u/iw632U0cAvhGoKN+xRLMjxHocJsrDXjtC?= =?us-ascii?Q?vh4keXoO/Oki7jAUTsKb7goTVP4qKaZGkdhrUdzmxXEcRztuqBUcMwn0DuL1?= =?us-ascii?Q?MEMIMaBx2cS6hq3TLf5JxtonVQv2zZwtfxJhEjDpMw4gL9S76lkY8+puEdfZ?= =?us-ascii?Q?CSJIDb1m+xXRkYawIALMcHGm9ZQs+Du99yD8VLbwTXW4HZpZkuqjMXTQaK3d?= =?us-ascii?Q?2pzeUILrWXbMfYh2h2Alu0wcHeJ4MSKRFsQR9N02bupPMYLq6woL+00vnBSW?= =?us-ascii?Q?Q1EIDTM00ICoKtPZ7iJ4AuQvT5aT1xWq9KdzgZ3VFie1ckufwdojz41+mn34?= =?us-ascii?Q?VM9/NZSE6vFWCgw7i8KAtG+03jFJ/z0ECmlHNhHuOPPunI7UOZFuv9rUwefo?= =?us-ascii?Q?X599zwi+4ZZzrCQ+5M82v96hjBxDzgQXKNcIaWCoXV8WRG1s1LmY+lvP1eIl?= =?us-ascii?Q?2DiW8JvQNFQbxB2l9D1VGsvWZnaA71gOA/sQxI8y4CVhCl5oWsbpj7ZZtTT7?= =?us-ascii?Q?Yq6DqSnQWlK9XbLiv5InL/UqdB9ONO28wtst+6n/60+WHK6J3xDlAPbcLT+i?= =?us-ascii?Q?ZLEKLuNvJj/jQ199t/LFRCa7m6Au3tRn5e+1ynlNqNDUbaiSc8I66eLBkDXt?= =?us-ascii?Q?Zw=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: WnrOlYLz/f+X6tlwZZe9Xbx1ljZ8UF5HA053hMUxHwbavlaAiB0yvTZ6iWRv3eDhjvMpBGxkdwNHouSAoNqRImjfsz1gJePAEw4IJGrld5pEevNKPnKNalv+AZk4A1XMj7hi3K2Tx6veYejB2rlS0omGTwqxIBYGvUAog5zfCG8kR6qRYwiU8QSyMibs/aEqh5Dd/vsAFlOOrn3vrWhV3K8kfYn7nC5pGwsCZxsgBuh3SEMKnTFt1Pk2f3ZYvBjgBYg35Qxr1H5GJ1Ve05WyiFD9YcFcp/1NmdpJZtj1N89JrN102CSKMJpxDK3rA00g1VsxMge7BnpK2XjYfEZvn9Pf6Dl88hOyok7zV3KbMiGoMz+tLTaFXRT+ktQLY/+X7bLLcXFQ51J/+KI05BxxfK4b0ibLC3hUyomzJmZ1aUeitR61dKG1VKruM/eipkMGboIMPU6bU/OKAfsgicwiDvtBF4Jh2nZiXOamDjoWUj2vAa5I7LF3dIVe5KSu5SeZU8qE1HPOIfGXW2FCcp3huA9NiO7M3az34yYOjpR4EaUSqqLhrlkr/bLVPg8MiOdaB1aAuTKPZEBlFWuRwCEykBu2hEULA/Thv6GkElW5Pbw= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 74baa32d-14b9-4652-2874-08ddeec8720f X-MS-Exchange-CrossTenant-AuthSource: DM4PR10MB8218.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Sep 2025 11:11:23.1969 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: HEfUt+WLT6K830b4BPLo5FFlXo/xY+utzfEXkzFVJVqYPqpLJ6lM6Z9dRu3gEscgqdsCwTP24CJBeEFEKs4DfMO/tSFVggVOr0rLqTOnLqs= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS7PR10MB7155 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1117,Hydra:6.1.9,FMLib:17.12.80.40 definitions=2025-09-08_04,2025-09-08_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxlogscore=999 adultscore=0 suspectscore=0 spamscore=0 phishscore=0 bulkscore=0 mlxscore=0 malwarescore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2508110000 definitions=main-2509080113 X-Proofpoint-ORIG-GUID: mIuJGnVRsnBd8VCQcrLcHpOnvb_4QPFS X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwOTA4MDExMiBTYWx0ZWRfX9DcKhCnnoTH6 TD3TSn6lmASdwnVKxrIiUTNsIbeiAh062HBKf+oHbkUM2kHTQVaKeX5omrX7H3FSqkl886O9DBL Ej7A3nVf9gKRAOXMhUrubPJPu5EgGDznV3gKncc3VQB4g27qj5GrNchCTyelXEv0kZk/s4+mWHu Jj/ngn+5AshATyKaVCllspaKYF6bX90y9mBV9Bs+ez6ikC9vfcTUrA11H+oYFiVr/OBUnzQUEKO k+d3Ais8E8agIO8DWtz0raYzZE/41afeHtre1kzBv/mox6enLA2G6WyycbxpOxkrUTqEG1hhcXp Ocxg58NEXl2Pm8WSQFwjbrEgRyHIdeuMqC/tgTzzZkRmwnDN9A49eqDkdZFHdskrpm5ISSyRTan r+AByrq1 X-Authority-Analysis: v=2.4 cv=MIFgmNZl c=1 sm=1 tr=0 ts=68beb9e2 cx=c_pps a=OOZaFjgC48PWsiFpTAqLcw==:117 a=OOZaFjgC48PWsiFpTAqLcw==:17 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=wKuvFiaSGQ0qltdbU6+NXLB8nM8=:19 a=Ol13hO9ccFRV9qXi2t6ftBPywas=:19 a=xqWC_Br6kY4A:10 a=yJojWOMRYYMA:10 a=GoEa3M9JfhUA:10 a=yPCof4ZbAAAA:8 a=ADFhEmSlnIQLkT-ZH0EA:9 X-Proofpoint-GUID: mIuJGnVRsnBd8VCQcrLcHpOnvb_4QPFS Content-Type: text/plain; charset="utf-8" We have introduced the f_op->mmap_prepare hook to allow for setting up a VMA far earlier in the process of mapping memory, reducing problematic error handling paths, but this does not provide what all drivers/filesystems need. In order to supply this, and to be able to move forward with removing f_op->mmap altogether, introduce f_op->mmap_complete. This hook is called once the VMA is fully mapped and everything is done, however with the mmap write lock and VMA write locks held. The hook is then provided with a fully initialised VMA which it can do what it needs with, though the mmap and VMA write locks must remain held throughout. It is not intended that the VMA be modified at this point, attempts to do so will end in tears. This allows for operations such as pre-population typically via a remap, or really anything that requires access to the VMA once initialised. In addition, a caller may need to take a lock in mmap_prepare, when it is possible to modify the VMA, and release it on mmap_complete. In order to handle errors which may arise between the two operations, f_op->mmap_abort is provided. This hook should be used to drop any lock and clean up anything before the VMA mapping operation is aborted. After this point the VMA will not be added to any mapping and will not exist. We also add a new mmap_context field to the vm_area_desc type which can be used to pass information pertinent to any locks which are held or any state which is required for mmap_complete, abort to operate correctly. We also update the compatibility layer for nested filesystems which currently still only specify an f_op->mmap() handler so that it correctly invokes f_op->mmap_complete as necessary (note that no error can occur between mmap_prepare and mmap_complete so mmap_abort will never be called in this case). Also update the VMA tests to account for the changes. Signed-off-by: Lorenzo Stoakes --- include/linux/fs.h | 4 ++ include/linux/mm_types.h | 5 ++ mm/util.c | 18 +++++-- mm/vma.c | 82 ++++++++++++++++++++++++++++++-- tools/testing/vma/vma_internal.h | 31 ++++++++++-- 5 files changed, 129 insertions(+), 11 deletions(-) diff --git a/include/linux/fs.h b/include/linux/fs.h index 594bd4d0521e..bb432924993a 100644 --- a/include/linux/fs.h +++ b/include/linux/fs.h @@ -2195,6 +2195,10 @@ struct file_operations { int (*uring_cmd_iopoll)(struct io_uring_cmd *, struct io_comp_batch *, unsigned int poll_flags); int (*mmap_prepare)(struct vm_area_desc *); + int (*mmap_complete)(struct file *, struct vm_area_struct *, + const void *context); + void (*mmap_abort)(const struct file *, const void *vm_private_data, + const void *context); } __randomize_layout; =20 /* Supports async buffered reads */ diff --git a/include/linux/mm_types.h b/include/linux/mm_types.h index cf759fe08bb3..052db1f31fb3 100644 --- a/include/linux/mm_types.h +++ b/include/linux/mm_types.h @@ -793,6 +793,11 @@ struct vm_area_desc { /* Write-only fields. */ const struct vm_operations_struct *vm_ops; void *private_data; + /* + * A user-defined field, value will be passed to mmap_complete, + * mmap_abort. + */ + void *mmap_context; }; =20 /* diff --git a/mm/util.c b/mm/util.c index 248f877f629b..f5bcac140cb9 100644 --- a/mm/util.c +++ b/mm/util.c @@ -1161,17 +1161,26 @@ int __compat_vma_mmap_prepare(const struct file_ope= rations *f_op, err =3D f_op->mmap_prepare(&desc); if (err) return err; + set_vma_from_desc(vma, &desc); =20 - return 0; + /* + * No error can occur between mmap_prepare() and mmap_complete so no + * need to invoke mmap_abort(). + */ + + if (f_op->mmap_complete) + err =3D f_op->mmap_complete(file, vma, desc.mmap_context); + + return err; } EXPORT_SYMBOL(__compat_vma_mmap_prepare); =20 /** * compat_vma_mmap_prepare() - Apply the file's .mmap_prepare() hook to an - * existing VMA. + * existing VMA and invoke .mmap_complete() if provided. * @file: The file which possesss an f_op->mmap_prepare() hook. - * @vma: The VMA to apply the .mmap_prepare() hook to. + * @vma: The VMA to apply the hooks to. * * Ordinarily, .mmap_prepare() is invoked directly upon mmap(). However, c= ertain * stacked filesystems invoke a nested mmap hook of an underlying file. @@ -1188,6 +1197,9 @@ EXPORT_SYMBOL(__compat_vma_mmap_prepare); * establishes a struct vm_area_desc descriptor, passes to the underlying * .mmap_prepare() hook and applies any changes performed by it. * + * If the relevant hooks are provided, it also invokes .mmap_complete() up= on + * successful completion. + * * Once the conversion of filesystems is complete this function will no lo= nger * be required and will be removed. * diff --git a/mm/vma.c b/mm/vma.c index 0efa4288570e..a0b568fe9e8d 100644 --- a/mm/vma.c +++ b/mm/vma.c @@ -22,6 +22,7 @@ struct mmap_state { /* User-defined fields, perhaps updated by .mmap_prepare(). */ const struct vm_operations_struct *vm_ops; void *vm_private_data; + void *mmap_context; =20 unsigned long charged; =20 @@ -2343,6 +2344,23 @@ static int __mmap_prelude(struct mmap_state *map, st= ruct list_head *uf) int error; struct vma_iterator *vmi =3D map->vmi; struct vma_munmap_struct *vms =3D &map->vms; + struct file *file =3D map->file; + + if (file) { + /* f_op->mmap_complete requires f_op->mmap_prepare. */ + if (file->f_op->mmap_complete && !file->f_op->mmap_prepare) + return -EINVAL; + + /* + * It's not valid to provide an f_op->mmap_abort hook without also + * providing the f_op->mmap_prepare and f_op->mmap_complete hooks it is + * used with. + */ + if (file->f_op->mmap_abort && + (!file->f_op->mmap_prepare || + !file->f_op->mmap_complete)) + return -EINVAL; + } =20 /* Find the first overlapping VMA and initialise unmap state. */ vms->vma =3D vma_find(vmi, map->end); @@ -2595,6 +2613,7 @@ static int call_mmap_prepare(struct mmap_state *map) /* User-defined fields. */ map->vm_ops =3D desc.vm_ops; map->vm_private_data =3D desc.private_data; + map->mmap_context =3D desc.mmap_context; =20 return 0; } @@ -2636,16 +2655,61 @@ static bool can_set_ksm_flags_early(struct mmap_sta= te *map) return false; } =20 +/* + * Invoke the f_op->mmap_complete hook, providing it with a fully initiali= sed + * VMA to operate upon. + * + * The mmap and VMA write locks must be held prior to and after the hook h= as + * been invoked. + */ +static int call_mmap_complete(struct mmap_state *map, struct vm_area_struc= t *vma) +{ + struct file *file =3D map->file; + void *context =3D map->mmap_context; + int error; + size_t len; + + if (!file || !file->f_op->mmap_complete) + return 0; + + error =3D file->f_op->mmap_complete(file, vma, context); + /* The hook must NOT drop the write locks. */ + vma_assert_write_locked(vma); + mmap_assert_write_locked(current->mm); + if (!error) + return 0; + + /* + * If an error occurs, unmap the VMA altogether and return an error. We + * only clear the newly allocated VMA, since this function is only + * invoked if we do NOT merge, so we only clean up the VMA we created. + */ + len =3D vma_pages(vma) << PAGE_SHIFT; + do_munmap(current->mm, vma->vm_start, len, NULL); + return error; +} + +static void call_mmap_abort(struct mmap_state *map) +{ + struct file *file =3D map->file; + void *vm_private_data =3D map->vm_private_data; + + VM_WARN_ON_ONCE(!file || !file->f_op); + file->f_op->mmap_abort(file, vm_private_data, map->mmap_context); +} + static unsigned long __mmap_region(struct file *file, unsigned long addr, unsigned long len, vm_flags_t vm_flags, unsigned long pgoff, struct list_head *uf) { - struct mm_struct *mm =3D current->mm; - struct vm_area_struct *vma =3D NULL; - int error; bool have_mmap_prepare =3D file && file->f_op->mmap_prepare; + bool have_mmap_abort =3D file && file->f_op->mmap_abort; + struct mm_struct *mm =3D current->mm; VMA_ITERATOR(vmi, mm, addr); MMAP_STATE(map, mm, &vmi, addr, len, pgoff, vm_flags, file); + struct vm_area_struct *vma =3D NULL; + bool allocated_new =3D false; + int error; =20 map.check_ksm_early =3D can_set_ksm_flags_early(&map); =20 @@ -2668,8 +2732,12 @@ static unsigned long __mmap_region(struct file *file= , unsigned long addr, /* ...but if we can't, allocate a new VMA. */ if (!vma) { error =3D __mmap_new_vma(&map, &vma); - if (error) + if (error) { + if (have_mmap_abort) + call_mmap_abort(&map); goto unacct_error; + } + allocated_new =3D true; } =20 if (have_mmap_prepare) @@ -2677,6 +2745,12 @@ static unsigned long __mmap_region(struct file *file= , unsigned long addr, =20 __mmap_epilogue(&map, vma); =20 + if (allocated_new) { + error =3D call_mmap_complete(&map, vma); + if (error) + return error; + } + return addr; =20 /* Accounting was done by __mmap_prelude(). */ diff --git a/tools/testing/vma/vma_internal.h b/tools/testing/vma/vma_inter= nal.h index 07167446dcf4..566cef1c0e0b 100644 --- a/tools/testing/vma/vma_internal.h +++ b/tools/testing/vma/vma_internal.h @@ -297,11 +297,20 @@ struct vm_area_desc { /* Write-only fields. */ const struct vm_operations_struct *vm_ops; void *private_data; + /* + * A user-defined field, value will be passed to mmap_complete, + * mmap_abort. + */ + void *mmap_context; }; =20 struct file_operations { int (*mmap)(struct file *, struct vm_area_struct *); int (*mmap_prepare)(struct vm_area_desc *); + void (*mmap_abort)(const struct file *, const void *vm_private_data, + const void *context); + int (*mmap_complete)(struct file *, struct vm_area_struct *, + const void *context); }; =20 struct file { @@ -1471,7 +1480,7 @@ static inline int __compat_vma_mmap_prepare(const str= uct file_operations *f_op, { struct vm_area_desc desc =3D { .mm =3D vma->vm_mm, - .file =3D vma->vm_file, + .file =3D file, .start =3D vma->vm_start, .end =3D vma->vm_end, =20 @@ -1485,13 +1494,21 @@ static inline int __compat_vma_mmap_prepare(const s= truct file_operations *f_op, err =3D f_op->mmap_prepare(&desc); if (err) return err; + set_vma_from_desc(vma, &desc); =20 - return 0; + /* + * No error can occur between mmap_prepare() and mmap_complete so no + * need to invoke mmap_abort(). + */ + + if (f_op->mmap_complete) + err =3D f_op->mmap_complete(file, vma, desc.mmap_context); + + return err; } =20 -static inline int compat_vma_mmap_prepare(struct file *file, - struct vm_area_struct *vma) +static inline int compat_vma_mmap_prepare(struct file *file, struct vm_are= a_struct *vma) { return __compat_vma_mmap_prepare(file->f_op, file, vma); } @@ -1548,4 +1565,10 @@ static inline vm_flags_t ksm_vma_flags(const struct = mm_struct *, const struct fi return vm_flags; } =20 +static inline int do_munmap(struct mm_struct *mm, unsigned long start, siz= e_t len, + struct list_head *uf) +{ + return 0; +} + #endif /* __MM_VMA_INTERNAL_H */ --=20 2.51.0 From nobody Wed Sep 10 01:09:09 2025 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 4BAD83019AA; Mon, 8 Sep 2025 11:12:17 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=205.220.165.32 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1757329938; cv=fail; b=pDWeZp7QiHJI3v5Cdcq50n1bk7XSijjce+HMCYCxyefXn7q/2feebn1WduDUSeKw29P/RLKmRDTXYM48wwbOUIsTk4PLQLh6DyDtW4/leSkpbPcbWJCxnuWNzkHTgbBtbpdpktitPbITemmsGn+V1AKFV1wb5l+zTRhT/t9hwPg= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1757329938; c=relaxed/simple; bh=oonLgxvY8o8RsL3opcQNzfZ2A7+BPrtkNNlwJ3FQNI0=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=bR6LhIlD4pMKqD89pvIa6GA4aB2MrWMcdJxL8PKcAQqtjYSGJEQ0OgjaIn63RgNncqjC4ewY7Z8HgxOZwXxrho/ErEj1MGMFjXW0N7XNbBPn5N1GG6aerej/FhnRG55zAiZakbxTSokojuUi/rUQNrEHRRIItEhyfw6ov8tday0= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com; spf=pass smtp.mailfrom=oracle.com; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b=T9mVqpzP; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=xMh4PKb7; arc=fail smtp.client-ip=205.220.165.32 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oracle.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b="T9mVqpzP"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="xMh4PKb7" Received: from pps.filterd (m0246629.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 588AAfi4006090; Mon, 8 Sep 2025 11:11:37 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s= corp-2025-04-25; bh=vnJGGQpT06A0M5VHOEQAJKcM9q9L5KSz36BgqfA+FY8=; b= T9mVqpzPzMctfBk/RZ/3lZ9nYCu2gGXUgGS5V+y6tE9SM4mlns2QUzkELCNuBnej VSZXPr7W7b2BjQLPPh2Km/esF+2Smez8S/m3rzeFTCjikXVo207m80A9irn39nJ2 T9gKZ/PJAsbLLasZb8XpuvDjiKeo4C6mEx/yYRrHPmexcprYcQQHVpXeXymPBQ5p YuVoWYKuvw18okdJ7GwqVLYG+fyAvyxY1X+sZTBHuORSBNs9N1jm5sKx3/RevhPD KqjWGopK0cQt/h3/yZYc1e20BpSv1QGqsxiIJdwW2FK4/fwzm0nuiYNwsMWtqRxH GR6xdbJ4iq3icegoGOTUEg== Received: from iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta02.appoci.oracle.com [147.154.18.20]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 491w5402x2-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 08 Sep 2025 11:11:37 +0000 (GMT) Received: from pps.filterd (iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (8.18.1.2/8.18.1.2) with ESMTP id 58896IbB025964; Mon, 8 Sep 2025 11:11:35 GMT Received: from nam04-dm6-obe.outbound.protection.outlook.com (mail-dm6nam04on2054.outbound.protection.outlook.com [40.107.102.54]) by iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 490bd81ndq-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 08 Sep 2025 11:11:35 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=Fhhf99VqkfaNkcGT2KhmRzVAt7P71GQGuEilkWqBA2Hzf2ly1uhP6ljDqI8wo57utjmQY8EuwuOjQziOQotxbESmaSlbDZFTtShRNPeJSMNx2CuB52FwthjJlT903VgQZpkqLH2yzv1+IGjQjZbRixL0Asq0q2AKyia9dfkOEuS2IhEdCveaqkn9TPzGjrm67feTC6Ehjz34+JKtMnAWIScU0lCu2sCnT2gYBjVMqzIkJo2vMLrd72SuWQ9PuOsp3Jm+JpkKxZlRlckLaFLpDrw7bVw5vNyrQbhA4/7Cq+DIySmcNWmYqvApeKbmTc1io9lVjC4j8MtF6Gl5O7Qtuw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=vnJGGQpT06A0M5VHOEQAJKcM9q9L5KSz36BgqfA+FY8=; b=zQRkTn79z/UHrk7oq9iA0zc4o43BA1vInmIt5g4hG/kIC0dCNSWs16WJ5Bs5Bz9v1VVQnrgO92FhCuqKjVneoc9+/QXzwgzxsyBT3W0eKrRbltmaXxY909TF9F0Kx3xTI+BxhN0hMt3Z2In2HTmmH4Z3npXp8EJE0x31ZXkmqvKmlAK3KYhs0PmdAi2MraDHhXnYAiAqNirlW6HajuKif1e69CDVSgx+dyfCDWvjtdlCydUbCX76M5mU06PijHpuE1nuBedlNxUHIAo0iXoPeDBTsrzwk7pXqFZKRi3FQzW5lqaL5rniuu0X61KglsLdToq+uYdefgRL5/JIaE7HtA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com; dkim=pass header.d=oracle.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=vnJGGQpT06A0M5VHOEQAJKcM9q9L5KSz36BgqfA+FY8=; b=xMh4PKb71kpTMi/laKtoBA8b6yWahZUjSS+lFwUPJO0LfsfCncD90WxgvA6c/erH4SC1k8/qe2envW1I1m6LePimkEso9JYymwiHNHiymzRdlEbxuoTRfdm1/fVjLJ7xeB5BcS0makUR+Yl46GcBcXO9oMpk9+4+HtCuaOzK/tQ= Received: from DM4PR10MB8218.namprd10.prod.outlook.com (2603:10b6:8:1cc::16) by CY8PR10MB6588.namprd10.prod.outlook.com (2603:10b6:930:57::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9094.19; Mon, 8 Sep 2025 11:11:27 +0000 Received: from DM4PR10MB8218.namprd10.prod.outlook.com ([fe80::2650:55cf:2816:5f2]) by DM4PR10MB8218.namprd10.prod.outlook.com ([fe80::2650:55cf:2816:5f2%5]) with mapi id 15.20.9094.018; Mon, 8 Sep 2025 11:11:27 +0000 From: Lorenzo Stoakes To: Andrew Morton Cc: Jonathan Corbet , Matthew Wilcox , Guo Ren , Thomas Bogendoerfer , Heiko Carstens , Vasily Gorbik , Alexander Gordeev , Christian Borntraeger , Sven Schnelle , "David S . Miller" , Andreas Larsson , Arnd Bergmann , Greg Kroah-Hartman , Dan Williams , Vishal Verma , Dave Jiang , Nicolas Pitre , Muchun Song , Oscar Salvador , David Hildenbrand , Konstantin Komarov , Baoquan He , Vivek Goyal , Dave Young , Tony Luck , Reinette Chatre , Dave Martin , James Morse , Alexander Viro , Christian Brauner , Jan Kara , "Liam R . Howlett" , Vlastimil Babka , Mike Rapoport , Suren Baghdasaryan , Michal Hocko , Hugh Dickins , Baolin Wang , Uladzislau Rezki , Dmitry Vyukov , Andrey Konovalov , Jann Horn , Pedro Falcato , linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org, linux-fsdevel@vger.kernel.org, linux-csky@vger.kernel.org, linux-mips@vger.kernel.org, linux-s390@vger.kernel.org, sparclinux@vger.kernel.org, nvdimm@lists.linux.dev, linux-cxl@vger.kernel.org, linux-mm@kvack.org, ntfs3@lists.linux.dev, kexec@lists.infradead.org, kasan-dev@googlegroups.com, Jason Gunthorpe Subject: [PATCH 07/16] doc: update porting, vfs documentation for mmap_[complete, abort] Date: Mon, 8 Sep 2025 12:10:38 +0100 Message-ID: <1ceb56fec97f891df5070b24344bf2009aca6655.1757329751.git.lorenzo.stoakes@oracle.com> X-Mailer: git-send-email 2.51.0 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: GV3P280CA0105.SWEP280.PROD.OUTLOOK.COM (2603:10a6:150:8::11) To DM4PR10MB8218.namprd10.prod.outlook.com (2603:10b6:8:1cc::16) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DM4PR10MB8218:EE_|CY8PR10MB6588:EE_ X-MS-Office365-Filtering-Correlation-Id: 0ccf734f-a620-4ed8-2e4b-08ddeec87470 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|1800799024|7416014|376014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?XQLsjN9wqtveO+baesXz6UFiyVPW1tjJZOc/oiFKce6wwHS1UX1e5mdNd1lj?= =?us-ascii?Q?XbQdtxUA1SQu+r0yN3cCmyYgoyQdV8UJtILVhOVXC8Ydqs6S7t9LPNdtlVTb?= =?us-ascii?Q?GxGtiF2VARvsEdbcIukZGx9+3+M3hQcb/p69cODDYtJpIYUS2L9+CDxNnBwf?= =?us-ascii?Q?EdwVPy31NGn8r1bJUdvBCmsaq58PBPK4YYgY8/xJG53u2yommDOldAD3bISk?= =?us-ascii?Q?5boQQrm90KmHJjkn5ZhsOGz2KlI4q4r7BgB7Z7qZNWoQRHSJazzj5nANCYAm?= =?us-ascii?Q?tAjtPA/C8g+ebpb8w34XREKiZ7KJSfYW+VMWrA+cuT3Qrq0Io2+IK05q0btf?= =?us-ascii?Q?iB6fe3Z+1xSa+jO0KZxobSc/fTQAZy0EUmxlNT2cXYDV6fYu8mSXyCCg1hIY?= =?us-ascii?Q?RUJuh92HYu8DajM683Eaw2XOzodDHuFeKk19HjbzRtkIvUj7hmz4kaF3xmY1?= =?us-ascii?Q?g2EaRn2ezSqqW4H7p+6eP75bbNerYZdbknqW+mZrgB6Vi8mtlLrX6bEjGWbO?= =?us-ascii?Q?rfPNKdmxUgHOyxDJAYO5UUXnL6jzt2LdiQz5rEDYFbyBWjGgL7JUIxPpiyMb?= =?us-ascii?Q?Qwt4qKzAnhN4qNNDjjDOLcuhDSKnINSi6kXqlsjTYmfmOWCKkm/5ySDEFcX0?= =?us-ascii?Q?uQX+IRJKwNZFrVISoo3cjlKxFwrOpGnfEQqBsm7eA9cox1JEVem/xedUpqGV?= =?us-ascii?Q?idEsBE81F7iptAfDKuHUM2GBE5hwEWaaBkc+wQcRb29Tkz82ezK+wh9z7IiR?= =?us-ascii?Q?pfd7CaiIfRaQg1Q9XnPY5wmBgV8+eU1xjkEMwWOU8XtZT+BajEioFynUYOoH?= =?us-ascii?Q?1U4jnnnF/ddKH0yAYqo9P5pTmBPpg5jCRknPe9mIzXGBDHdn6nhiHEzNuwvw?= =?us-ascii?Q?ahhT9pU35ahZftaDhnktN+1/L5zSVVuUue/109iYA9bsgSBb7DX70vq85FKn?= =?us-ascii?Q?jOokLK+4KjlUd2uEZQP36jP5d2Wr5/q3X/SJjpHo/xUiOpCDeJnqMt6B14dM?= =?us-ascii?Q?pb5lWXf9XSVaB2NBGvi++TsqrrpNW2ceIpmKEXbjwia1B0tP6CjTPs566U7b?= =?us-ascii?Q?rCiejP1JK67RdG90meQBwrO1lETAl19bOfs2FNLUS51Vd8c01nFPhlH1tSqr?= =?us-ascii?Q?5Fbga70qdHm+OdWRd0vN4gy0N011tp/r58DoH0tGONlxvpOC+Mjfl4X9A3pn?= =?us-ascii?Q?dtcenVyrXUCB7nznkbWADcPAueNxw68bKZkfcy8FSa/ap2Vz2pydRuWm/3MU?= =?us-ascii?Q?O+IElvzCrsEkIbWLgh8Ew2VPC15bZpw8n9W4hD7Jv4ld5bK7rqqEldtSPzf+?= =?us-ascii?Q?cdtYAGM4p5AvSFk0hMq+xXZ2FImN/YWH4eiM8vpcTQr3QnrHhnpPEUahP9Wj?= =?us-ascii?Q?KkHZwVE3KlfbsuSlb6CPDQ2m987afH09Hb1TBE0cZ39oUFSBwdPPWHdqJ08n?= =?us-ascii?Q?0LuM2ISQx/A=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM4PR10MB8218.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(7416014)(376014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?yATurTEPMEh68UktbrO0jPBLBcRmsjMNq1z/c7CNk6yxyJDGYAJR0xujTAe/?= =?us-ascii?Q?Ka56AfIVkgO9gP2mdopEJG+VuIKtqcIEMduNYyrgtdRYbmV9XSaElHh4Jcyj?= =?us-ascii?Q?KwDA52rkmCEYMl3qDT5SytGt82IVD4kVYN/R5n/dOZhEDqe8cYoPa4frZjDy?= =?us-ascii?Q?pnXtOMmqDZXSNRs56Hj4EyQFhspE37nO4Y7A/RGr9fJf9rXlhSBcthg+O1bD?= =?us-ascii?Q?TR8gdvZsUS1MYfqMNW3oE8cYSv9ES6fjzE9vBPB0US6OHGIjnREP3fq7Klc6?= =?us-ascii?Q?zb2OwtgSR2TcM79csEEeGym0BNqly43b+OgQBSkiIgxBTMC9C7N2lSHRnpqo?= =?us-ascii?Q?D5h512pZzBpZY69CfJ5mARy5w6ju0QOn/hPpbG2eIH8yb9TWHNpF+WZq5M7e?= =?us-ascii?Q?ifYXIxD5EUo/sYH3MjAxfZhERMNxmV+SfUUR4lSqFhUswZmBBBvGzn4ekG77?= =?us-ascii?Q?HPwv4XkYOcOW3ue0ZhxSOgC/5/qB1rlOmy5LjXV4L5BITx7QsOzBXZBffPFl?= =?us-ascii?Q?VHdJsICHWG4nmvEJ5K+DYHIwqgSOiSo0aJjKjEVIrmqyP6LrCwi7R9ld1jUG?= =?us-ascii?Q?8ffwqBCWW+FOF6WYYTQObTz+m9Z0fgikq9Qpme9ElZ5g/rxowqb0WRLE3Fy1?= =?us-ascii?Q?6SUPogtpf2avSLKGyNEuMfXLtRMsJJH5FN3WWufrSnP/PntbaEecY/fJ5dJB?= =?us-ascii?Q?F80oVldsrKW9uG9o2Wiymc8xvbOChmmxsJHpvaIQMK1QF1EiNcICXc5IH5mC?= =?us-ascii?Q?sY+cZHB4q89y1VzgcBF9biFyyZjjjKybE7SWB5k+8NYV4PEP9/g/3RDXCNM8?= =?us-ascii?Q?79r/KmrufHV6Ielb5xrD5GnT+zBxJpkbEtm4iEk5JXOMB1JXH+DQ7N46jpIz?= =?us-ascii?Q?2vU+eNxswkIxOFF35ibyXmB69z3B1xHKwRZMjgY0/NBYJ7tvURZxONPZ9V6E?= =?us-ascii?Q?qNyLf4dEtVH3z40jc2eOMs+8v1J07PzMZvHmlDcyvq4e5FfffDKMMFy931eK?= =?us-ascii?Q?e2gukl9CaSEgDvzElXTL9ndabMY8wWmgVQQUwca9WAYbuvOTxV0w7JuhAoqf?= =?us-ascii?Q?3Fm9DFtdH37tw00MitOOdYdUtdrmJdWDtYJP6hVXHV90LhcKsG4L4xLm6qCG?= =?us-ascii?Q?hUwQjgFOjr82yZVTYdOi/5daLXkBsSPYto8lu8vw3KNHyJKV7k8VlozKMrdx?= =?us-ascii?Q?1ELNIX/YxN3oBI2+jiuzoGYkj/wkBwhHVqBSgK2vbl7fWqNovBOaZCOxvnLs?= =?us-ascii?Q?iR2cOpAelijzasdXS14MT6W+w6Cp8RZqrQQrHaj6CTJUgxKm9mrCpelyjBVq?= =?us-ascii?Q?TQxBnQmqgauPqN/UFZZt0n3efo+VSEJjTp8SO7eQpIx61ssb3i5Ma/rn7Y+h?= =?us-ascii?Q?LChHsKFRFDpspmzqC579zZV4vU5/FljRhH2UzZ4V/dlZyPW0TrWr6m696gYT?= =?us-ascii?Q?8/e3XOWj9Y7V68Q5z1X0IUqMh5uinDlJc+CCTbM1yGHp5/qI0W+DtEMbf9B1?= =?us-ascii?Q?Wt0V/5nOlWP05Odms6oYoj5AGtg4pqQKmKM+H61xVAG4T/BIyPGY9ZUzxLt8?= =?us-ascii?Q?zSWjWAHrnaGb5wySnPVH5EXGYQe7S732j7T+B/X7AsAJFEnkcn6cM5J27dYs?= =?us-ascii?Q?Vg=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: JvKpr1uRDCcfpS4ASWxFLTFADJ1rBS52KXAF7aA9r7wSm8RqPwd8SWIwxe8mPnIJJb68yAcZL7pBnl6zBdTl9/RHtR5UifN7APyQKLmnXr081Y6BKBvs1bIFs+zecCmNrK7Szyini1MbEjQLpMTP9oJ1lkVAvti62h6ZzJen5bWCJMLJSLUB6/7V7blz1c9C2375THJgLIghbBkmE/WHEduyFU0eabX1SVePlrc6RiuA81mDchFPGaNd3X+dpVLC4WMGipJaHd7zSf2zpiusnd0WLxQEBhOCCSBPFe55YuwdSDeT1f2q/2qhabDyp/NQXCG3oM2BL9Bfng2Qmmc9/LOO3e/gfkBNqM2IIf/lpPCyPcgfoVcLPrib12km6SWrMMHQnuBesWVCOWzndTD6KExAFO66xmXIZwuWOiY0oAgaJsJTUyUld8FNWEDyVLbIlmzDfxhaZ8dF81Of0b/GKFKi/kUS0P1SWAVmDN1/DVfrBFb7xepPuaZ5SR8P0Pz6ZhNx99H8zctvIHt95u1cEEelhRYQ9JTVdWRvJIb4AW+DE/hNnigC1NMISZaCxNZPAYHB8AihDbotibYYDrItLvgnNUxCEdSMxLjazRKK5k4= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 0ccf734f-a620-4ed8-2e4b-08ddeec87470 X-MS-Exchange-CrossTenant-AuthSource: DM4PR10MB8218.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Sep 2025 11:11:27.2699 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: rcHEHzwEReXjOMRoGf1X1IjswNxJBifalAxWOm9ABxCNeh9Us+sXjAOLB4QzMKEc9P0NHH+wybQGmqP1a43CIGO8rDdBYEYiYWYhkOelPtk= X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY8PR10MB6588 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1117,Hydra:6.1.9,FMLib:17.12.80.40 definitions=2025-09-08_04,2025-09-08_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 spamscore=0 phishscore=0 suspectscore=0 mlxscore=0 adultscore=0 bulkscore=0 malwarescore=0 mlxlogscore=999 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2508110000 definitions=main-2509080113 X-Authority-Analysis: v=2.4 cv=M5RNKzws c=1 sm=1 tr=0 ts=68beb9e9 b=1 cx=c_pps a=e1sVV491RgrpLwSTMOnk8w==:117 a=e1sVV491RgrpLwSTMOnk8w==:17 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=wKuvFiaSGQ0qltdbU6+NXLB8nM8=:19 a=Ol13hO9ccFRV9qXi2t6ftBPywas=:19 a=xqWC_Br6kY4A:10 a=yJojWOMRYYMA:10 a=GoEa3M9JfhUA:10 a=yPCof4ZbAAAA:8 a=yN9NYRaSLP7fF4NI21cA:9 cc=ntf awl=host:13602 X-Proofpoint-GUID: suP55U1FubN7XOgQWlJxxZ7KV3hgSlpe X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwOTA4MDEwMyBTYWx0ZWRfXwHBlRMELhmh9 g4PtbsWFo8Tq844N8CfJRSlOKKLWzAA0pzdl3m0miCS8iUGv/JZxbI+Nc5dWOMVKztgBo/8m/Zg QBbbqgooMgXnA6mMR8OKFo0piCj9EciBUAEoQULonZcvM06RLaGPL0qnEMMks7jv65fuCw7wtse SqhM8p3mwoe7xtzKYIUZoki6y4UrlSDOfxlK5a8YFvG2zs7VIAFjbqSjb+58AuUTEvwSWzM6zQ3 Rs6zBY/gpzhVdojOaCwjO+NnSiXOovBdFs+Z7B0dubUFZbsGCFmYZTKEaxFsTOXVu40/reYyUFG NUWdKTQnfGFtvw+PnV0TyUO2f/de54d6fHKB4/iACB+Wcw1dK9bZf2d3xy8cErxqYzmYFiO2bkC S7ss7xGBEfcwR5NqWOd2U7tA1Hcaxw== X-Proofpoint-ORIG-GUID: suP55U1FubN7XOgQWlJxxZ7KV3hgSlpe Content-Type: text/plain; charset="utf-8" We have introduced the mmap_complete() and mmap_abort() callbacks, which work in conjunction with mmap_prepare(), so describe what they used for. We update both the VFS documentation and the porting guide. Signed-off-by: Lorenzo Stoakes --- Documentation/filesystems/porting.rst | 9 +++++++ Documentation/filesystems/vfs.rst | 35 +++++++++++++++++++++++++++ 2 files changed, 44 insertions(+) diff --git a/Documentation/filesystems/porting.rst b/Documentation/filesyst= ems/porting.rst index 85f590254f07..abc1b8c95d24 100644 --- a/Documentation/filesystems/porting.rst +++ b/Documentation/filesystems/porting.rst @@ -1285,3 +1285,12 @@ rather than a VMA, as the VMA at this stage is not y= et valid. The vm_area_desc provides the minimum required information for a filesystem to initialise state upon memory mapping of a file-backed region, and output parameters for the file system to set this state. + +In nearly all cases, this is all that is required for a filesystem. Howeve= r, +should there be a need to operate on the newly inserted VMA, the mmap_comp= lete() +can be specified to do so. + +Additionally, if mmap_prepare() and mmap_complete() are specified, mmap_ab= ort() +may also be provided which is invoked if the mapping fails between mmap_pr= epare +and mmap_complete(). It is only valid to specify mmap_abort() if both other +hooks are provided. diff --git a/Documentation/filesystems/vfs.rst b/Documentation/filesystems/= vfs.rst index 486a91633474..172d36a13e13 100644 --- a/Documentation/filesystems/vfs.rst +++ b/Documentation/filesystems/vfs.rst @@ -1114,6 +1114,10 @@ This describes how the VFS can manipulate an open fi= le. As of kernel int (*uring_cmd_iopoll)(struct io_uring_cmd *, struct io_comp_batch *, unsigned int poll_flags); int (*mmap_prepare)(struct vm_area_desc *); + int (*mmap_complete)(struct file *, struct vm_area_struct *, + const void *context); + void (*mmap_abort)(const struct file *, const void *vm_private_data, + const void *context); }; =20 Again, all methods are called without any locks being held, unless @@ -1236,6 +1240,37 @@ otherwise noted. file-backed memory mapping, most notably establishing relevant private state and VMA callbacks. =20 +``mmap_complete`` + If mmap_prepare is provided, will be invoked after the mapping is fully + established, with the mmap and VMA write locks held. + + It is useful for prepopulating VMAs before they may be accessed by + users. + + The hook MUST NOT release either the VMA or mmap write locks. This is + asserted by the mmap logic. + + If an error is returned by the hook, the VMA is unmapped and the + mmap() operation fails with that error. + + It is not valid to specify this hook if mmap_prepare is not also + specified, doing so will result in an error upon mapping. + +``mmap_abort`` + If mmap_prepare() and mmap_complete() are provided, then mmap_abort + may also be provided, which will be invoked if the mapping operation + fails between the two calls. + + This is important, because mmap_prepare may succeed, but some other part + of the mapping operation may fail before mmap_complete can be called. + + This allows a caller to acquire locks in mmap_prepare with certainty + that the locks will be released by either mmap_abort or mmap_complete no + matter what happens. + + It is not valid to specify this unless mmap_prepare and mmap_complete + are both specified, doing so will result in an error upon mapping. + Note that the file operations are implemented by the specific filesystem in which the inode resides. When opening a device node (character or block special) most filesystems will call special --=20 2.51.0 From nobody Wed Sep 10 01:09:09 2025 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 43C772FD1D8; Mon, 8 Sep 2025 11:12:15 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=205.220.177.32 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1757329937; cv=fail; b=g924AnMKc18JYHWyBreaZnlcqOZMRy2G7AXHF+C8x/9UAUYRD4a8twZxzBKTFvl9vJzWLxiyNJuU/e2vMn29dEzJ4pffhYj9Y/Abrf6dFPVvlBgua99T8zyUWqliwkv+2IOAKOwSgexiUvyA+rMHLfXqtrfb8Jw9ftkowx1VQr0= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1757329937; c=relaxed/simple; bh=TfxrawM7mat7dNNfoO8iGJivlQ5cRmI8BqVq3zYc6JI=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=LLSjwvIRDNGkYf+J+6Hc6Lp9VEUTxlGaNravgssyYblYedemmgEAQtu8K58C7Lcucs9PYDRuhOoim2C5T75W5SdMbgjbJ/iTBYCgos+FxF42BFSBqBpIQQzVqKdOhVf6XSqOpCx/HzuwTgd/rgzrvHQLFap9Pjx77cgiwdfL5eA= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com; spf=pass smtp.mailfrom=oracle.com; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b=JIDNbyO1; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=O+jE08CZ; arc=fail smtp.client-ip=205.220.177.32 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oracle.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b="JIDNbyO1"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="O+jE08CZ" Received: from pps.filterd (m0246631.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 5889ic7g000817; Mon, 8 Sep 2025 11:11:38 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s= corp-2025-04-25; bh=3Vzt7N0rvfnL0nFRJzJ9pTiHwoRpZgf5xB5+X6M5R3g=; b= JIDNbyO1xBJAigw8bQexz5WRxprv2mZqaFG1Y57m9bXy3wkrbtKBWU+cqm+CA1by DXBqPsB+mAeluwj/6X8mGWjvbQxAn/ceudkdu9gAt9Q/Wrg5Q7BqlmfBzCS2SKdj Tp0h9IVWiEILl9VI4wslLOkQpzh4RUEs32KVbnk85/BxfCLx9FL7YqWf7WEFqe0T tmpmViIPfYYusqOZ8/frv7id34yF0jgbKsEtXhDSkcscHufFmPY/6ZlLQaT9Cxtw O2541/AjLj/c5islf9Cr89p2ZHdp5946IOdYyX515C/Qc0pB0cJ1TKg1MLdtXeal a5MjCl0voAQzvgcZDnSdIg== Received: from iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta02.appoci.oracle.com [147.154.18.20]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 491vsc04sp-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 08 Sep 2025 11:11:38 +0000 (GMT) Received: from pps.filterd (iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (8.18.1.2/8.18.1.2) with ESMTP id 58896IbD025964; Mon, 8 Sep 2025 11:11:37 GMT Received: from nam04-dm6-obe.outbound.protection.outlook.com (mail-dm6nam04on2054.outbound.protection.outlook.com [40.107.102.54]) by iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 490bd81ndq-2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 08 Sep 2025 11:11:37 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=wu5j2xDC4qC++kSOQa3EfTSUa8S2BDHjHFKaUdOvkloJMUmGKk+1ot0RyvlTNTtYoQ8CSUkS3lll1TpO8+MCUNN4HiAHJydyBD4TSMRgRHcseJTG7LQ84/5oaIGAIfdI42QjHfR9TQ5DoPr+hnjmZL4HmxYRJ8JNtQTDSevK8/CTBoxa3F0noUs6k/XO9406Rhe6e5zpGCuUaksduhUlu1fDe07HX6B3shkWz130hpBCx38nZltICRYhym4a78VRYbji++QZm5m1cJEy6lCAsoU2jldDsb/BIKyb1vhLEKLDNRMyvDcfdnkNRoDxGyW/wmaHX6uPgvMBPLRc6co2Hw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=3Vzt7N0rvfnL0nFRJzJ9pTiHwoRpZgf5xB5+X6M5R3g=; b=IIlew/KAKupw3ZxjQEJtJwxlHTYktVSp5x4pFPg+8ImpAvmVlp2k+TyFu4mv7gAMaCVSzHEAX/yA+WNzAuz7Eg5bKdGJ9A/HFfCd6f0WFdHn0TVdCgg+XNLrMNryJk2UiNOf8yxtPmogoE93BMCWs9We/IPvyDaJFzaYBJr1uQhGALMlDtNPLAQUYtMa8C2Va0UadSNfKq8ps0TT29f4TWLf2lxS3EnNgNuZeRlFY+kF/X5pnJr1/fPwhLRAHdMWnGSf3VXXJZMsyRKLcrUmz3rVeuGuXwR0NJSzUSkzKQ4SiO8E/0D2czE3o1lMk9bGzyLY3+ojak+TLVzAsi2kYw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com; dkim=pass header.d=oracle.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=3Vzt7N0rvfnL0nFRJzJ9pTiHwoRpZgf5xB5+X6M5R3g=; b=O+jE08CZ3pOHmeF+NGY4EEw1KuhLDMT0TM88UvZhvcyp8XzbQfySXcc5/opVze7zbPUm9D+Zh41SnhiiBV4yKYWv2inHiW4qWmB4Adr5xoYBcgvyXgP0ChpBX+mJdv3PPQaM9tx1M6zV3xp/KXOEASZxwfRPqS7IRlHuOUZ9CeA= Received: from DM4PR10MB8218.namprd10.prod.outlook.com (2603:10b6:8:1cc::16) by CY8PR10MB6588.namprd10.prod.outlook.com (2603:10b6:930:57::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9094.19; Mon, 8 Sep 2025 11:11:32 +0000 Received: from DM4PR10MB8218.namprd10.prod.outlook.com ([fe80::2650:55cf:2816:5f2]) by DM4PR10MB8218.namprd10.prod.outlook.com ([fe80::2650:55cf:2816:5f2%5]) with mapi id 15.20.9094.018; Mon, 8 Sep 2025 11:11:32 +0000 From: Lorenzo Stoakes To: Andrew Morton Cc: Jonathan Corbet , Matthew Wilcox , Guo Ren , Thomas Bogendoerfer , Heiko Carstens , Vasily Gorbik , Alexander Gordeev , Christian Borntraeger , Sven Schnelle , "David S . Miller" , Andreas Larsson , Arnd Bergmann , Greg Kroah-Hartman , Dan Williams , Vishal Verma , Dave Jiang , Nicolas Pitre , Muchun Song , Oscar Salvador , David Hildenbrand , Konstantin Komarov , Baoquan He , Vivek Goyal , Dave Young , Tony Luck , Reinette Chatre , Dave Martin , James Morse , Alexander Viro , Christian Brauner , Jan Kara , "Liam R . Howlett" , Vlastimil Babka , Mike Rapoport , Suren Baghdasaryan , Michal Hocko , Hugh Dickins , Baolin Wang , Uladzislau Rezki , Dmitry Vyukov , Andrey Konovalov , Jann Horn , Pedro Falcato , linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org, linux-fsdevel@vger.kernel.org, linux-csky@vger.kernel.org, linux-mips@vger.kernel.org, linux-s390@vger.kernel.org, sparclinux@vger.kernel.org, nvdimm@lists.linux.dev, linux-cxl@vger.kernel.org, linux-mm@kvack.org, ntfs3@lists.linux.dev, kexec@lists.infradead.org, kasan-dev@googlegroups.com, Jason Gunthorpe Subject: [PATCH 08/16] mm: add remap_pfn_range_prepare(), remap_pfn_range_complete() Date: Mon, 8 Sep 2025 12:10:39 +0100 Message-ID: <895d7744c693aa8744fd08e0098d16332dfb359c.1757329751.git.lorenzo.stoakes@oracle.com> X-Mailer: git-send-email 2.51.0 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: GVZP280CA0005.SWEP280.PROD.OUTLOOK.COM (2603:10a6:150:273::6) To DM4PR10MB8218.namprd10.prod.outlook.com (2603:10b6:8:1cc::16) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DM4PR10MB8218:EE_|CY8PR10MB6588:EE_ X-MS-Office365-Filtering-Correlation-Id: 25ed2911-d7d3-4903-4a3e-08ddeec8773d X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|1800799024|7416014|376014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?SSVDyZraWoKOZNRwpkvuLo1FZMSufQM3+IZXNC5QuHYXTN/ARtmVZTqv4x0E?= =?us-ascii?Q?Bx2/Um6d8tkbDFAetYv+ajM68bAwVCCZ+oBPeATJJc/WE08Sf1/bBWKhnMIl?= =?us-ascii?Q?AB+KzbRxQ7RaZiBmz5RrNcYdT+IjbqAy8rMt9TPJdYLWwWqOQWejsYz8I8Lj?= =?us-ascii?Q?zYXlz1i7qE9i8jw1cAekeWN+HZg38SXF1JH+Yn4v07V4gmqyz46a5jjJwV7X?= =?us-ascii?Q?hotwchVGksOownYIQQLbT+U1YKXJ+CmC0SLw/mjJho/cwlIlrC0aQ2JhuZcJ?= =?us-ascii?Q?ba0FHR4kBeDkg5IBu6R/xw4NFVfVnnvKSw+w5mdcscLB8wnyL152mnBKkSKc?= =?us-ascii?Q?13nhk1CjKQ9NdkH0ja/6bpwaGs3ch2b2Bgh3F+L3PExiusngHhQyaOheT/Qs?= =?us-ascii?Q?9klw7B+fZYTLesnUPq9iDYLiwHeXxReKLn8CTu6FiX4z/QrRrR7ZLwJkEdSt?= =?us-ascii?Q?lXhwgIOFeUCwCGJZ/8nY4MIm5GeMbB2At/E5YBk7KA9LJDqyxSaACCExSosb?= =?us-ascii?Q?4Lz04u3vy7tP9lkuWcHWwf4UpOlTSE+BBWxVaEKlqMi2wKsy+Kef6Sm5gD4W?= =?us-ascii?Q?YU51/wypksh5FcZdL5LDu0VCoz9lM24/sP0ByCMnQxtvUz1DqP+cX7R2hol9?= =?us-ascii?Q?CBYqCLnZu1fU3cPTZFPcFHRS+6LgePg00RCRg1LxPAS/T+bGkfhvKbtRO+qd?= =?us-ascii?Q?7UyCLbREnHFp7ESpLXTjScZ2YbfH/EXbpOGfsS4Dqj5ucJY8gEeO4cFYzh43?= =?us-ascii?Q?AYLROK75/cOn+YtxvmgrjrU2RMThAboAh1P+L3wSPpgzCr7hDaH7mR183Jvt?= =?us-ascii?Q?8j89QMXppQPzv0DefeF/RNU0x7ghhSzd6kmr4wA4q+uhnfaS1mn0/CakNbqx?= =?us-ascii?Q?1DSnTIf0R/2/nLI6FJMxXoRPovSihKRAlSnmg7SD7JfLHv+Jkkj4pOwngkZi?= =?us-ascii?Q?3MDnOnLYxtUR7E6P5YRVyUfzPw1buA3Irqfefi0FAnXHtJQ3gCNaZbuNNrRk?= =?us-ascii?Q?EOn9g+MYTD7oqHycczAjKdkLwAI25Ved00R+Fun47cv9tjtwLevPEICrkf6D?= =?us-ascii?Q?MGTxWSmyGT6bU9RPLF3z8Bweo90vkJwor5oKoxitWjvY5AejSCHW+qg+Jfnc?= =?us-ascii?Q?EhMFZk7AUh6Wff//M4Or4ZRoFIZrnD6MgcHKJJkQxZASNPrgA+UEun/g4gY8?= =?us-ascii?Q?ztuvhz5wHuR92ysfUZINkR24+n+1fN1LasmKq1YQI/p/9QF4WDIeFTnEClxG?= =?us-ascii?Q?gnL4QXuCM4/hNp8XuGC1oNewfSrQncl7ZOIrJKWzqfmHZTO2x5beao6goiQT?= =?us-ascii?Q?PiqfkBU7LIoyTZheMAj3UM0/JJ/SNJvCqqmRus8kpJ4IQ1VytVb7XKHRiPte?= =?us-ascii?Q?4ZMClo0GJJLCMdAyBwCae0A40SMX5DXe+WXRlzNyRdUtDydDMVRAN36LiDJz?= =?us-ascii?Q?XDiRyVUf3ao=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM4PR10MB8218.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(7416014)(376014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?vKUSiOEfe263YAibwe8mSpQ37NSj8AmSS+2iyffZKM156OaXirhrChgK6axL?= =?us-ascii?Q?TpWjmfqNaH5jw14Q/+T3A4BVgw9f2I6RrWZwMT+OuJo3EOg1IDyqkJOVdcju?= =?us-ascii?Q?H9dmpoudYCEDiDkzWxBU8vTqdWdv0XjbIMZYAqDmQ5z6xe82K0GqPPcGjzs9?= =?us-ascii?Q?WTJK01Q6ip3uCaa9jng4kvAD2aQ0jVvZdR/tj7FX9szheooSv4MXa2oOmBRO?= =?us-ascii?Q?svaYlW0wpbntAhzJfkhQa8B1edzppqhoo48f7OoCvxTDFMSeENiL8A3nwMTw?= =?us-ascii?Q?Tdz140Ro1MLGJDJEHNSsaiW2UDSQKZuF130e1tFoiZDT8E+vnuHCHFlVh8vZ?= =?us-ascii?Q?2u+Hd2DyqWOuSkNj3/neIHGG9VkNtmQ2gdd4LWpL4A07t2JMqKdq2nmKkhVT?= =?us-ascii?Q?/w0M6uHBPl/ythPLC1kDvqTZEfPhBIsnKs5mRRc7Atse+lhiloaihAc/S8uF?= =?us-ascii?Q?4reLnFtUysxg0biuFDZeWEYZpYpw4+ojV2Q5AdTjgNaEMwWP6DXuzIR0G2X8?= =?us-ascii?Q?x+S7iUcAs6ZU2sBwQUBGdsNSnQhnr3nPTk7MHa1KkiMV1fT9TDXJccjh59px?= =?us-ascii?Q?gBEXxGPNHTxjsD6z18GNKZnYhsKAOWGxvWN5BAK5K0d+jLUVS4Vthg553t7h?= =?us-ascii?Q?lKa8iuUhVoHj8cgV5NgZbT5puUjNV/fRh3ZtmHFZ57fHnhm8M2uMCIrN3Zqr?= =?us-ascii?Q?o5OIOTdrwQ2MAsoXBuDtVsGtg0242LFG/eHFIeLP85HRkkIujBmRxuhU9HPE?= =?us-ascii?Q?qfkuq2DKwysi75++GySpq/xUd6qlECPUQgRqPCh0yJo2JUMFu3/r9gR4PhUB?= =?us-ascii?Q?7psSwGxf2q6j7VMePHQ+Kfml1Nx2jTkFCuJwghuqUfgeggoX0qBo3Wij3oh6?= =?us-ascii?Q?3IDUmdWju3YA0PC4igMbr7ec8GB/U59bykEaQoDPcmbmYRLtS42S/GTzG0kP?= =?us-ascii?Q?y/wN6Nust+68Q+swTo83mRmauWmGEe2FIoaLkEQsc5lLPF2fMyS5ea7gFCFe?= =?us-ascii?Q?zRoTh4lzeSJz/4yfYNkGf+ezqBdjFem41hgNC3EeaU2y43hUVkJUKoTI6onM?= =?us-ascii?Q?rJIFtnsz7DevpT72zw01phPOjIhZtSI3xE8jGWJkmJD2GEwedBVKbUk6QOgl?= =?us-ascii?Q?G6TJfEf8AhPnBHC4F4dXCiL7sVJGKHcjtlPnqEmDoI8Jo2jZaTdzNOC6RM7r?= =?us-ascii?Q?MTBgJtokpdwlQxXclIxenRzvKlehrVjqIWShRJk8Jl5EQYzgrLD9UHqy6V7X?= =?us-ascii?Q?bmTYM7FVV08dIWQo4gwAIDARkYUuY5UsWR4B7OK8vwHvjuIZlMbP8Nsakk/G?= =?us-ascii?Q?/uPRlFyiBjHFKlrno1spkbzciWW44WI77YQhdG5nHba00yjEdkyeVTWiPuRd?= =?us-ascii?Q?28KVnlbNtQzAyJRofkeBsHcw9i/6feKwUVwSxTXcxupW9dqL0IF/LxdHB5+Q?= =?us-ascii?Q?LHCDSecJDj7kHl3rgOsjvq+n6GkdVUjotUVqzk8NqyRu9eQXXxgRhbAPOPAq?= =?us-ascii?Q?vacJT8DaFrzYNY13lSfRYZ6Jvhq15HK7p80qDQaHSKB8yfR8Yv3yPD2ogUdi?= =?us-ascii?Q?xtk35wuhGGfUzq+XOhbV11MuHMsrZLaPs3T5OoB5JjMUg6jItPboh5aw6A9P?= =?us-ascii?Q?TQ=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: yQ+q2qz4ym/VYkdnBDlOsw66E3LrlPeErgv+PTGHZ/Fbqh6fAoaAGl1OKTRChDM6eV63jAQy700sLcJYJl6Icil6npomG/nLfH1XvfXAzbjb61wdIvUe6mtd91hXq8DbqMQyzDqk6RPWrlm/vh/Fd314MGpTsUcJIbo4MF7/Alu3lAwumiX7MV7Pq1M2bRVo/soHdkvklPoFjzUawCV8ONiK9P7l5Y7qfj8Q2vGFm/it9wS8ywqKGK4CVYqUGOt+f5D9iSLKdTgLzWKkGhpfZPXcerPVHybGQu5+ytn7+Y1m1bEvjvxfQf4CrtoCurwplEKg4r7tb01MqvpZe8Kq5b0PkEGhtdfAEBr0R9iZiVgdyJZpajAZCb+qkV78VDgkMEruppfERsvX9DfpkWpA1wvk9TU3kwRCHIOxZlGVYSxtoy5SkyrvbPif1pFeb3zH07IrAiOIAqTL5XP0czhBAVajavQIhfXTWzNg4asiArfV2XZqTlpg9wPUpyeI2piH7ysUtGcaU2XdDc1qT7bi5YXyDElQ0wgM3YEgyz+YDHCx8B4DHcvQGf2gNzjLmhTfVc8icaglv5CWn3jiKHUWHWaqNglsBOVazGGqiSth//w= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 25ed2911-d7d3-4903-4a3e-08ddeec8773d X-MS-Exchange-CrossTenant-AuthSource: DM4PR10MB8218.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Sep 2025 11:11:31.9657 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: qkrATbXW+RH0SBb99JJn+l9imk66zLEqqTu1jPsU2/g2r/d9zhXiJ7vYqpCPYZBVosTl7UGzJPV8oMOED61yqYvajm7w+vMHzcGd5V2MIkA= X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY8PR10MB6588 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1117,Hydra:6.1.9,FMLib:17.12.80.40 definitions=2025-09-08_04,2025-09-08_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 spamscore=0 phishscore=0 suspectscore=0 mlxscore=0 adultscore=0 bulkscore=0 malwarescore=0 mlxlogscore=999 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2508110000 definitions=main-2509080113 X-Proofpoint-GUID: YNAAYCP9oSKjhnlMfUodmkwn7TRHaWSz X-Proofpoint-ORIG-GUID: YNAAYCP9oSKjhnlMfUodmkwn7TRHaWSz X-Authority-Analysis: v=2.4 cv=JvDxrN4C c=1 sm=1 tr=0 ts=68beb9ea b=1 cx=c_pps a=e1sVV491RgrpLwSTMOnk8w==:117 a=e1sVV491RgrpLwSTMOnk8w==:17 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=wKuvFiaSGQ0qltdbU6+NXLB8nM8=:19 a=Ol13hO9ccFRV9qXi2t6ftBPywas=:19 a=xqWC_Br6kY4A:10 a=yJojWOMRYYMA:10 a=GoEa3M9JfhUA:10 a=yPCof4ZbAAAA:8 a=biaX2fR5Clc4S6gQdq0A:9 cc=ntf awl=host:13602 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwOTA4MDA5OSBTYWx0ZWRfX7FIlJSg02feA QqF1ewx680a7CQGiSlwqoPkq51O5o520peFitnmatmKMCHMe1lraFKCqUnJPOrIWXUZICb/aLtK T6OS2KDTHyy9OOM/J+Qc7i13FklhjG4uNkVKkpGw6tfBn1b0IJTwNIRIU7zZxSduwwYNmdOVWZK /FpPdKFRfxNPWkX8cGyLQfopmYG5pPQyrTB/di563zpAbbXKyFG/My0TdtjtZ5lNsWmAAu7MLe8 HurXnsCbomjWXe+Q1SjHG+MTaWqw1KoeXZyy9ogS+wF6BoB4RV79Qn8SG7fHARo0XDGZ+grzGo5 3XWI3oxttwD2JJq70fh1W/meri2ONn5hvxN2De68Y8GFKWcQZeyctn8ahoZql8hV8z/e9AHtqfC PKst2Wh7PwIKxuYyyd16qSER9eNxrA== Content-Type: text/plain; charset="utf-8" We need the ability to split PFN remap between updating the VMA and performing the actual remap, in order to do away with the legacy f_op->mmap hook. To do so, update the PFN remap code to provide shared logic, and also make remap_pfn_range_notrack() static, as its one user, io_mapping_map_user() was removed in commit 9a4f90e24661 ("mm: remove mm/io-mapping.c"). Then, introduce remap_pfn_range_prepare(), which accepts VMA descriptor and PFN parameters, and remap_pfn_range_complete() which accepts the same parameters as remap_pfn_rangte(). remap_pfn_range_prepare() will set the cow vma->vm_pgoff if necessary, so it must be supplied with a correct PFN to do so. If the caller must hold locks to be able to do this, those locks should be held across the operation, and mmap_abort() should be provided to revoke the lock should an error arise. While we're here, also clean up the duplicated #ifdef __HAVE_PFNMAP_TRACKING check and put into a single #ifdef/#else block. Signed-off-by: Lorenzo Stoakes --- include/linux/mm.h | 25 +++++++-- mm/memory.c | 128 ++++++++++++++++++++++++++++----------------- 2 files changed, 102 insertions(+), 51 deletions(-) diff --git a/include/linux/mm.h b/include/linux/mm.h index 9d4508b20be3..0f59bf14cac3 100644 --- a/include/linux/mm.h +++ b/include/linux/mm.h @@ -489,6 +489,21 @@ extern unsigned int kobjsize(const void *objp); */ #define VM_SPECIAL (VM_IO | VM_DONTEXPAND | VM_PFNMAP | VM_MIXEDMAP) =20 +/* + * Physically remapped pages are special. Tell the + * rest of the world about it: + * VM_IO tells people not to look at these pages + * (accesses can have side effects). + * VM_PFNMAP tells the core MM that the base pages are just + * raw PFN mappings, and do not have a "struct page" associated + * with them. + * VM_DONTEXPAND + * Disable vma merging and expanding with mremap(). + * VM_DONTDUMP + * Omit vma from core dump, even when VM_IO turned off. + */ +#define VM_REMAP_FLAGS (VM_IO | VM_PFNMAP | VM_DONTEXPAND | VM_DONTDUMP) + /* This mask prevents VMA from being scanned with khugepaged */ #define VM_NO_KHUGEPAGED (VM_SPECIAL | VM_HUGETLB) =20 @@ -3611,10 +3626,12 @@ unsigned long change_prot_numa(struct vm_area_struc= t *vma, =20 struct vm_area_struct *find_extend_vma_locked(struct mm_struct *, unsigned long addr); -int remap_pfn_range(struct vm_area_struct *, unsigned long addr, - unsigned long pfn, unsigned long size, pgprot_t); -int remap_pfn_range_notrack(struct vm_area_struct *vma, unsigned long addr, - unsigned long pfn, unsigned long size, pgprot_t prot); +int remap_pfn_range(struct vm_area_struct *vma, unsigned long addr, + unsigned long pfn, unsigned long size, pgprot_t pgprot); +void remap_pfn_range_prepare(struct vm_area_desc *desc, unsigned long pfn); +int remap_pfn_range_complete(struct vm_area_struct *vma, unsigned long add= r, + unsigned long pfn, unsigned long size, pgprot_t pgprot); + int vm_insert_page(struct vm_area_struct *, unsigned long addr, struct pag= e *); int vm_insert_pages(struct vm_area_struct *vma, unsigned long addr, struct page **pages, unsigned long *num); diff --git a/mm/memory.c b/mm/memory.c index d9de6c056179..f6234c54047f 100644 --- a/mm/memory.c +++ b/mm/memory.c @@ -2900,8 +2900,27 @@ static inline int remap_p4d_range(struct mm_struct *= mm, pgd_t *pgd, return 0; } =20 +static int get_remap_pgoff(vm_flags_t vm_flags, unsigned long addr, + unsigned long end, unsigned long vm_start, unsigned long vm_end, + unsigned long pfn, pgoff_t *vm_pgoff_p) +{ + /* + * There's a horrible special case to handle copy-on-write + * behaviour that some programs depend on. We mark the "original" + * un-COW'ed pages by matching them up with "vma->vm_pgoff". + * See vm_normal_page() for details. + */ + if (is_cow_mapping(vm_flags)) { + if (addr !=3D vm_start || end !=3D vm_end) + return -EINVAL; + *vm_pgoff_p =3D pfn; + } + + return 0; +} + static int remap_pfn_range_internal(struct vm_area_struct *vma, unsigned l= ong addr, - unsigned long pfn, unsigned long size, pgprot_t prot) + unsigned long pfn, unsigned long size, pgprot_t prot, bool set_vma) { pgd_t *pgd; unsigned long next; @@ -2912,32 +2931,17 @@ static int remap_pfn_range_internal(struct vm_area_= struct *vma, unsigned long ad if (WARN_ON_ONCE(!PAGE_ALIGNED(addr))) return -EINVAL; =20 - /* - * Physically remapped pages are special. Tell the - * rest of the world about it: - * VM_IO tells people not to look at these pages - * (accesses can have side effects). - * VM_PFNMAP tells the core MM that the base pages are just - * raw PFN mappings, and do not have a "struct page" associated - * with them. - * VM_DONTEXPAND - * Disable vma merging and expanding with mremap(). - * VM_DONTDUMP - * Omit vma from core dump, even when VM_IO turned off. - * - * There's a horrible special case to handle copy-on-write - * behaviour that some programs depend on. We mark the "original" - * un-COW'ed pages by matching them up with "vma->vm_pgoff". - * See vm_normal_page() for details. - */ - if (is_cow_mapping(vma->vm_flags)) { - if (addr !=3D vma->vm_start || end !=3D vma->vm_end) - return -EINVAL; - vma->vm_pgoff =3D pfn; + if (set_vma) { + err =3D get_remap_pgoff(vma->vm_flags, addr, end, + vma->vm_start, vma->vm_end, + pfn, &vma->vm_pgoff); + if (err) + return err; + vm_flags_set(vma, VM_REMAP_FLAGS); + } else { + VM_WARN_ON_ONCE((vma->vm_flags & VM_REMAP_FLAGS) =3D=3D VM_REMAP_FLAGS); } =20 - vm_flags_set(vma, VM_IO | VM_PFNMAP | VM_DONTEXPAND | VM_DONTDUMP); - BUG_ON(addr >=3D end); pfn -=3D addr >> PAGE_SHIFT; pgd =3D pgd_offset(mm, addr); @@ -2957,11 +2961,10 @@ static int remap_pfn_range_internal(struct vm_area_= struct *vma, unsigned long ad * Variant of remap_pfn_range that does not call track_pfn_remap. The cal= ler * must have pre-validated the caching bits of the pgprot_t. */ -int remap_pfn_range_notrack(struct vm_area_struct *vma, unsigned long addr, - unsigned long pfn, unsigned long size, pgprot_t prot) +static int remap_pfn_range_notrack(struct vm_area_struct *vma, unsigned lo= ng addr, + unsigned long pfn, unsigned long size, pgprot_t prot, bool set_vma) { - int error =3D remap_pfn_range_internal(vma, addr, pfn, size, prot); - + int error =3D remap_pfn_range_internal(vma, addr, pfn, size, prot, set_vm= a); if (!error) return 0; =20 @@ -2974,6 +2977,18 @@ int remap_pfn_range_notrack(struct vm_area_struct *v= ma, unsigned long addr, return error; } =20 +void remap_pfn_range_prepare(struct vm_area_desc *desc, unsigned long pfn) +{ + /* + * We set addr=3DVMA start, end=3DVMA end here, so this won't fail, but we + * check it again on complete and will fail there if specified addr is + * invalid. + */ + get_remap_pgoff(desc->vm_flags, desc->start, desc->end, + desc->start, desc->end, pfn, &desc->pgoff); + desc->vm_flags |=3D VM_REMAP_FLAGS; +} + #ifdef __HAVE_PFNMAP_TRACKING static inline struct pfnmap_track_ctx *pfnmap_track_ctx_alloc(unsigned lon= g pfn, unsigned long size, pgprot_t *prot) @@ -3002,23 +3017,9 @@ void pfnmap_track_ctx_release(struct kref *ref) pfnmap_untrack(ctx->pfn, ctx->size); kfree(ctx); } -#endif /* __HAVE_PFNMAP_TRACKING */ =20 -/** - * remap_pfn_range - remap kernel memory to userspace - * @vma: user vma to map to - * @addr: target page aligned user address to start at - * @pfn: page frame number of kernel physical memory address - * @size: size of mapping area - * @prot: page protection flags for this mapping - * - * Note: this is only safe if the mm semaphore is held when called. - * - * Return: %0 on success, negative error code otherwise. - */ -#ifdef __HAVE_PFNMAP_TRACKING -int remap_pfn_range(struct vm_area_struct *vma, unsigned long addr, - unsigned long pfn, unsigned long size, pgprot_t prot) +static int remap_pfn_range_track(struct vm_area_struct *vma, unsigned long= addr, + unsigned long pfn, unsigned long size, pgprot_t prot, bool set_vma) { struct pfnmap_track_ctx *ctx =3D NULL; int err; @@ -3044,7 +3045,7 @@ int remap_pfn_range(struct vm_area_struct *vma, unsig= ned long addr, return -EINVAL; } =20 - err =3D remap_pfn_range_notrack(vma, addr, pfn, size, prot); + err =3D remap_pfn_range_notrack(vma, addr, pfn, size, prot, set_vma); if (ctx) { if (err) kref_put(&ctx->kref, pfnmap_track_ctx_release); @@ -3054,11 +3055,44 @@ int remap_pfn_range(struct vm_area_struct *vma, uns= igned long addr, return err; } =20 +/** + * remap_pfn_range - remap kernel memory to userspace + * @vma: user vma to map to + * @addr: target page aligned user address to start at + * @pfn: page frame number of kernel physical memory address + * @size: size of mapping area + * @prot: page protection flags for this mapping + * + * Note: this is only safe if the mm semaphore is held when called. + * + * Return: %0 on success, negative error code otherwise. + */ +int remap_pfn_range(struct vm_area_struct *vma, unsigned long addr, + unsigned long pfn, unsigned long size, pgprot_t prot) +{ + return remap_pfn_range_track(vma, addr, pfn, size, prot, + /* set_vma =3D */true); +} + +int remap_pfn_range_complete(struct vm_area_struct *vma, unsigned long add= r, + unsigned long pfn, unsigned long size, pgprot_t prot) +{ + /* With set_vma =3D false, the VMA will not be modified. */ + return remap_pfn_range_track(vma, addr, pfn, size, prot, + /* set_vma =3D */false); +} #else int remap_pfn_range(struct vm_area_struct *vma, unsigned long addr, unsigned long pfn, unsigned long size, pgprot_t prot) { - return remap_pfn_range_notrack(vma, addr, pfn, size, prot); + return remap_pfn_range_notrack(vma, addr, pfn, size, prot, /* set_vma =3D= */true); +} + +int remap_pfn_range_complete(struct vm_area_struct *vma, unsigned long add= r, + unsigned long pfn, unsigned long size, pgprot_t prot) +{ + return remap_pfn_range_notrack(vma, addr, pfn, size, prot, + /* set_vma =3D */false); } #endif EXPORT_SYMBOL(remap_pfn_range); --=20 2.51.0 From nobody Wed Sep 10 01:09:09 2025 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 958E1302747; Mon, 8 Sep 2025 11:12:21 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=205.220.165.32 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1757329943; cv=fail; b=s4ouIUaH6fxdRFCiJdd2TrMlpRylBc2KbIJIik4q8HR3ZB6y4CqpMB3EWcE5uU/Exq7Cz+kBVUfk82CilhJSVfvrciTakDpQTtUAbp8HSVKAcW5f6n2pQ/8OyNSoknI7ej9SpUgplFuPluqo3y43nAwg4BG6dq0LKfAy9+3+y70= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1757329943; c=relaxed/simple; bh=A7TDHdh5heh3Dkl5KD1X4HdmGrZjvspdIK6GkwMMFMk=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=N+6fFTlM0l9K1IS+NLUAYI2H0J4kie+7xZgQGNR8gmdLZf0ZDoJ/QqE20cRCOz5ubLQ3eIklJ98qLsZeU1IzpYruU9DkunKqzuEHeVbOJ6fV0i4BMp8suhQ1bFIrInzXYEDZuRVGIhXNczhpLIpSLgoMxcXdWxW9lEyV/ULarVg= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com; spf=pass smtp.mailfrom=oracle.com; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b=mljG+8VA; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=QlJyRUnY; arc=fail smtp.client-ip=205.220.165.32 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oracle.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b="mljG+8VA"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="QlJyRUnY" Received: from pps.filterd (m0246627.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 588B4tN9011866; Mon, 8 Sep 2025 11:11:42 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s= corp-2025-04-25; bh=jFeM+IklPleV0gR6/nJieTKITDf0dbD9LUtd2DY72B4=; b= mljG+8VA0Ug0vViUJusk5h4k9s8NwFO9S/NZ+4DKJ1KgfGfgUrjjISipsXcKuryP laVC4Zuaxih9HalPszNQJLI546EsHTxMe8AIWNm4SwDPOgz5YNRCO0O468XQh2By mr+QuJMLBRc1MGCE+f6VpQYRsBwyb2RqRqD6z0UDKXMVMMTOIFY2wJ4qM0xGpZgv +14OFW7EntFgk6FUee/ATwjbxhvYf1aMRDBKrIvRBufbjsI8dQc5D2oI6PO5hXNH h/c5pC5y0Hm4Kau/xrtH6VAdrtqSs+y+iIclgGRthYQCzdp1DgFSrXn/j6Pg1cGJ Nl1I8ceyjIzpSzJzVi5OCA== Received: from iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta02.appoci.oracle.com [147.154.18.20]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 491wxvg07s-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 08 Sep 2025 11:11:41 +0000 (GMT) Received: from pps.filterd (iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (8.18.1.2/8.18.1.2) with ESMTP id 588B6G9D026049; Mon, 8 Sep 2025 11:11:40 GMT Received: from nam04-dm6-obe.outbound.protection.outlook.com (mail-dm6nam04on2051.outbound.protection.outlook.com [40.107.102.51]) by iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 490bd81nkj-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 08 Sep 2025 11:11:40 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=RFPNoUAytJA5B0UpPrDVa1wpeWVL506QF8M+iQQQpxLYL/Iiex6NlTFw/cV3Q6EZpMX9TSn4/BteN5raGi+I38FpuG/2YuTwptnMYUW2VQRdqXcBAaV00d5KM4xbhekpcdOzxSHPBs0pCQd/NQpSA3FhsCPH3Z8G8GsXml8ZOdufsP3Le/T8zbdkJWpfjFFRxWymAi/vUtlJSviNjtXpLrMgNkA3h2u5GIVxEsnr8F+PguNveY0pq5lxIcViLU8y5C3FTlFrOdbErO0LZs6bXZ1T7RCJNCppm0QrqyfDahsQBWrhfvDUrFNvw/a9OrEOJwb9ZLPPvoAhqtlEDqiWKg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=jFeM+IklPleV0gR6/nJieTKITDf0dbD9LUtd2DY72B4=; b=tYksr4y3Oe9byJJyCpOGKBvY7z71zvKxg4AR4a+X8jC2dp3erseEI1qWEQvzr7YWUs1oVCuflJbr35W9/L9fyzeyAnH0Fok4MoigIocGghvfds/zKPRK+2L7bPSkpmxD+jCUdH8W+Z9WFeW8M79QpcYa5+7OkcE26HOqYPcU3Ut5AKwhOdgbBWeBVRiKAGimolbiu7U5yOOKEqvNe+XnJOGRsmHvb314l1SRbup11WBq7taE2MTtm3aemQ1B8xrRogSXe4jMgZCFNGbiBxzk7iNXrfBMY71rSjZmlFs42YYolIJIdy8HeEvUyyja21+zwj5npVrs7imtxcNtZE9lDg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com; dkim=pass header.d=oracle.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=jFeM+IklPleV0gR6/nJieTKITDf0dbD9LUtd2DY72B4=; b=QlJyRUnYDXeXYxX8ukI1sEZFxCT8Z8oZO7NEaBokfkNT6x2iEF/JPV0TdcEVQSZLuxunAh6h3Gc/NPYLLJ0GVyYK5SoNXL6EmpJRGHPHQQiYFrZM0U4msIRTp3trL9ASMVsU25HdfI9I2vuQZQX86H+GYXG92RTZ3AtEl/M1r2A= Received: from DM4PR10MB8218.namprd10.prod.outlook.com (2603:10b6:8:1cc::16) by CY8PR10MB6588.namprd10.prod.outlook.com (2603:10b6:930:57::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9094.19; Mon, 8 Sep 2025 11:11:36 +0000 Received: from DM4PR10MB8218.namprd10.prod.outlook.com ([fe80::2650:55cf:2816:5f2]) by DM4PR10MB8218.namprd10.prod.outlook.com ([fe80::2650:55cf:2816:5f2%5]) with mapi id 15.20.9094.018; Mon, 8 Sep 2025 11:11:36 +0000 From: Lorenzo Stoakes To: Andrew Morton Cc: Jonathan Corbet , Matthew Wilcox , Guo Ren , Thomas Bogendoerfer , Heiko Carstens , Vasily Gorbik , Alexander Gordeev , Christian Borntraeger , Sven Schnelle , "David S . Miller" , Andreas Larsson , Arnd Bergmann , Greg Kroah-Hartman , Dan Williams , Vishal Verma , Dave Jiang , Nicolas Pitre , Muchun Song , Oscar Salvador , David Hildenbrand , Konstantin Komarov , Baoquan He , Vivek Goyal , Dave Young , Tony Luck , Reinette Chatre , Dave Martin , James Morse , Alexander Viro , Christian Brauner , Jan Kara , "Liam R . Howlett" , Vlastimil Babka , Mike Rapoport , Suren Baghdasaryan , Michal Hocko , Hugh Dickins , Baolin Wang , Uladzislau Rezki , Dmitry Vyukov , Andrey Konovalov , Jann Horn , Pedro Falcato , linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org, linux-fsdevel@vger.kernel.org, linux-csky@vger.kernel.org, linux-mips@vger.kernel.org, linux-s390@vger.kernel.org, sparclinux@vger.kernel.org, nvdimm@lists.linux.dev, linux-cxl@vger.kernel.org, linux-mm@kvack.org, ntfs3@lists.linux.dev, kexec@lists.infradead.org, kasan-dev@googlegroups.com, Jason Gunthorpe Subject: [PATCH 09/16] mm: introduce io_remap_pfn_range_prepare, complete Date: Mon, 8 Sep 2025 12:10:40 +0100 Message-ID: <68b2571de694e883b8ffd6cdc0448849ae67b683.1757329751.git.lorenzo.stoakes@oracle.com> X-Mailer: git-send-email 2.51.0 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: GVZP280CA0055.SWEP280.PROD.OUTLOOK.COM (2603:10a6:150:271::12) To DM4PR10MB8218.namprd10.prod.outlook.com (2603:10b6:8:1cc::16) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DM4PR10MB8218:EE_|CY8PR10MB6588:EE_ X-MS-Office365-Filtering-Correlation-Id: 097ccb31-adda-4479-90f3-08ddeec87a1b X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|1800799024|7416014|376014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?URu94y6dwJpUkpHAiK1ZCCnSPW48zOKrETiE+/IP4+p07IgigUmquLdvrXVw?= =?us-ascii?Q?u2tV02kA9Iwo/VNMyh095x7eaPb55PsRxQ+hYvnQovIzyE5Q6ZwDoGdNKLpu?= =?us-ascii?Q?e4BDey9gQLXdMIH8Q0t4YyHwbV7SuDn/XOk0btJF/DG00Yv1+3+gywYilfbP?= =?us-ascii?Q?Bgxqs0mhrQEpD+D8HwVauUBCLGjkbhMWgPHxVDKnCj/m6G4TAzlrMk0lSzuL?= =?us-ascii?Q?zuR3vBrS5l5Cv5UMPVTSKDAqfQsYKJ/UH4ARmo09YIbDrLFpWYGkmc5vit9g?= =?us-ascii?Q?PSKJWyHrQ5HoMCIgJh0u4cOwBAzRhsBNsQl+iqodtArP/RkjjsZU8QArbdqd?= =?us-ascii?Q?msgVJIw8YZSIG4ZvuK/t2iFIK0+B7+rKeJBe/TBw+/RqqLDMkZj6tJ5mbVyQ?= =?us-ascii?Q?UYIwJe2KjhcKwpKmHxAw3powkc7JitDMOawY65QoWvYVAjUaM+kUiRykyvS+?= =?us-ascii?Q?GNcBCHYDJF7duwHwZH7F3zRDcC4bHi57vyNS9YkyuN8blPu5F0XElBSMFrvL?= =?us-ascii?Q?WonDW8VIoUl1hoCIk6DSxtOOHqKybAncGzpGiDFOCJZt5be+QA7zwplg/8GI?= =?us-ascii?Q?QAQ191wZz5jit9jaf3O1dpUVFEZ9my7TtLGk0SA7VNsLnjYMshEK0fF6ZMav?= =?us-ascii?Q?q86cc1GyJSIaWYR6j5UdxNP2DtPhoWnvY/+ROPld947KV1By2ZOSBxuV8sFS?= =?us-ascii?Q?LyMR981vHTci//+2e11rCj7zMEggfUdHhLjs7r1mPc9mgVakXkZHHMJjMAv3?= =?us-ascii?Q?ocvRHJAYd9G5p02ct8cjVwnWyXuZw1n6VRj9WC3ZMVsJjMWlI6brSWgSyQoF?= =?us-ascii?Q?NZCRKVu2TvW19i3WxhlxRkgiVnwxJj91kcxZH4NEGv2NMBRmZ5s2YaQ2+RP6?= =?us-ascii?Q?0v4Y7FjFah635ghRFFdtfIfiTEBpGbCRsl0Oultz1kpoMvc9xKjfmhatEi+h?= =?us-ascii?Q?ALala/q58uBcxq5kIBibVhgLGAoUju6m9FDg46Rf4a4+RvbuZb/+Xbhyj078?= =?us-ascii?Q?893STAd9EtOLJLGTWjJ17NRz1tcB0KFbscKz7+Fphd8p6jPZ5Y3qU9ritQH1?= =?us-ascii?Q?h1tD/khjn+TYM+nv1aHccUWE3e5jipdhvIgbQ6ffHoh2yRHnpQnlOnxlS+H5?= =?us-ascii?Q?kaKM0KeeDtx3X3070R18eT746zgSS/Ol6+hV91MvSZBex+wPaOBqNkbWeuGu?= =?us-ascii?Q?CFrLHMwxAMUsihFPAWlpPjpAAHHYgFV4AmJP02PW7A/V6OhhlTTC+uRJ+yz/?= =?us-ascii?Q?NtwDgLvbdmhPRAYJqugwCtjKfIB+u5GlJXt88D88a1Yv/5CPJ/aWH+/301mN?= =?us-ascii?Q?KszYFS+AQPiXlAwzDiEezmk5WherlpqVVD51sX7AGJgubevyuGkuA8/5GMEu?= =?us-ascii?Q?H7aaNH+H6rfAk/UAVXaKvvk/xA39l349H/UngVOkZskiRhzzoIIhc0mO6mDz?= =?us-ascii?Q?gi3Om8Gu2pU=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM4PR10MB8218.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(7416014)(376014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?SWGRzDC+FFLFwQEpOhMnHeXYj3bRGqvtxAL7zyQxTrC+oYeY1b0ElNWnaroL?= =?us-ascii?Q?mBHl4FnJs2bZ0/bkfjf7P06nKq1DuEspRyp09TSVJJ1M5kWOdaGPO9BoP6cE?= =?us-ascii?Q?UngC5uD1ueBRzKtNo2ydVliF6cc8Vc2DYsJ/Px86E6xeJE7nCzXG2/z7IYsb?= =?us-ascii?Q?tFYnwju+fsr2XgLPBM9LbYnpijY83wWe2XI4sJSTzIvBDQmZo90MOIrfPvMI?= =?us-ascii?Q?GPqshr/EISrKJtkLBhtZjTCCFV1tXmBPQAKpoqVdYfi2C92lSJWcZDlNvYgp?= =?us-ascii?Q?WsJAVIwlRYb1OOASbLJXJkp18LqNHZZoi9V/eOTDM1an6eS6xcXCl+y99oJ2?= =?us-ascii?Q?8vOfUrb89BixgQfx7AkEmKv7VPrEthgF3Ef7dk24Ii3AbhuSzmxq105oqZPD?= =?us-ascii?Q?FayISTA8P/QFnPeF5TECOl2jOOX9ms5gXz8cRF+aAD2sCa2NGpum5+mRfW4y?= =?us-ascii?Q?tx/hZjD05mUFpcVYVA6tSCoVZ5rKh9rfIqCrSuwR/iQ2yHaDxPvsK2/uOIxL?= =?us-ascii?Q?SaxS4bP8sWsqIR0GVf6MMq1++A99ab7dJBSNSl50w5NXseCTRBOFWMg1JqpE?= =?us-ascii?Q?e8QCble2YkCcrft2ONNvn92CR/IBa9Akf3y6UTUlepeZvniuxFXTKq3giRiK?= =?us-ascii?Q?sMKJHKZcLvJu9alDYSeqfEhsSGr1w2pmPpJubP6qT9O1rMLDL+IiMR8w5YZN?= =?us-ascii?Q?kSsdYdveoo1lnkHkSaxtKgykyP+6yzpIT0oRUr/P0k51FS4ujoFTURZad3Pb?= =?us-ascii?Q?6Cg9Q0YX9INtaZIZDgeJL9vt+GWAnALecrpouvsmy/cPqGmW6PSfRr83DjTz?= =?us-ascii?Q?KrIHIHpuCcDu9WxojmKGFDltS61Xy33RDowkDnp7xq+l/kbzM7wNcHWi/uJI?= =?us-ascii?Q?XgyAM70Q4/B/waXoSmyMwZcnqW8StosssunJ2crYzEoBdOazKsBbXr3xwi5n?= =?us-ascii?Q?mvJbanJwAAr4oJeoLMO/1s7vXqUUIHPKEH5x0cg94w7unYSaMFOlc6qW2pQW?= =?us-ascii?Q?df2JFzi7YDPS0AOc51pk0IuhFbzVKWhOar90bIIDFZrLymt7CJ4Ds7+KMFIo?= =?us-ascii?Q?ABRr5tGoGf7f+8nIa+nD/ptmU+4WeoY6i98oeM35Zx9L5mceo4biKWDUW6KW?= =?us-ascii?Q?6T9Oo8Pic6aKPBjBa1JXdq9IsUULEZManqWCZjUYMJH04JDbCfkIpb1bzJqJ?= =?us-ascii?Q?te22d6vIH3Um27x7PChmxIcDqBogkzU1Ylod2RAV4ST/FV6eVOKenT9ni425?= =?us-ascii?Q?VHBGQ1uwwkTZoJnsiAaMF0I9akxCPzxS8CPTGLJ9c4V5TZHzmrcbqpnR0ntp?= =?us-ascii?Q?Y5wd2iVWZVqvniTXZZBI/sxUtwUgK26CW2XfNBaabwPCEuAKm/28z+54SnWR?= =?us-ascii?Q?7cU1ecojyTtKjPZSs/qWgMU7oq+dBDtKXtxP4MWqTXXfcaJgB6W7y7ZtOyn1?= =?us-ascii?Q?rBenrXJZ09H+8StFZS9HpyNn6e788UPcCrZucewKY63NLT7Lb/uj56U4jNKC?= =?us-ascii?Q?68q8pvZUmDtjaVi9kbAm6FLTgyIAwGkB+dSSSdcgEraSd1BASEpNVGO2LYf6?= =?us-ascii?Q?6FvHtbHPNLJy9RoNiSwxRz0tg0wWd88KsRqkOwHXwB8ayiKRS4s3DTnVapQR?= =?us-ascii?Q?Qw=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: x9JUtJoUqEDI2FJ/cTKKOiMuU1ChK29OlvIoWihoEnUP8/GyPV1TF0IDdrnHU641L+was9O59FJ2CrSVlo97+RVHP6bQdEfdvsw7g8qqFrdkho+oKjMohBSOiuSuCtgv/A9I797OjJdXd027D6H2cOGkn91zctO4u8OUlitij4kwX2cdNPOEjQk1eCgwUqaO93c8VwckeR3fJvR3GxdHmTzsuQ/+dF+xTpW8pXaSXVja/XjeV4AWOURvG8gR+TI4ybruxFGZODMfF9EaDynzbnobfOXgzu2w48Z+/1EmKteoM0wFW8Sf83jgJH1I/R08TKfdmED3FNE24fqW13oeG82YGMLh3ah5VgUFdQpCewkEUNeYNVuEpxdxvbTdtnn+c70faiQ6RdaEr20JI/ko62/fxOboiaj67r5MWyzlXXENBbMppRhCDIg0NEmbqeWRfZ2S/hmbHIkwOUHhssVFNaMV/4uW6kbev4tpaGv2ITVl62lyZ3Xdu5/3VBskbwfkX/0k+3g3IwI+eU/9gZrL/Zb+XhDkb0ZVya9fZWY4AjuViFdHlVPKHzQMwMZAPOCwHskn1bBPyKD6iCt2YbS9mmdjunAOc+JsfKAUdU2un5U= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 097ccb31-adda-4479-90f3-08ddeec87a1b X-MS-Exchange-CrossTenant-AuthSource: DM4PR10MB8218.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Sep 2025 11:11:36.7753 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: FZvmJ+NDJoteXYzZMfNTZNTQlcYP9tIbldcwnEsjoUlR3DPsT5E/gfBY/1E8E8F4g8W7KWrIui7ZcttEkiOgYc4+fNR0iDluEOvOibEIqqI= X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY8PR10MB6588 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1117,Hydra:6.1.9,FMLib:17.12.80.40 definitions=2025-09-08_04,2025-09-08_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 spamscore=0 phishscore=0 suspectscore=0 mlxscore=0 adultscore=0 bulkscore=0 malwarescore=0 mlxlogscore=999 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2508110000 definitions=main-2509080113 X-Proofpoint-ORIG-GUID: nKFGd1X3n5saloJ_nqdHoji6ovMgfWna X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwOTA4MDExMiBTYWx0ZWRfX4p5uW7hd/ViC 7n7ZE7j+T5GJCVyUqYzEZ6Ip74jKnEsnGqe3eeFaE2xv2r2M4FBi0QnPgjetAmpJeGC70eJN3pF DebpZD5Dhkn1VurkTM7nl/DEYJSz8FoNSS68xSeBVVPYN2IjFGkUr4AWlWAJiUQvPli/eBXfJRx UPhcGfugqd2T5ECfl0cikkkAGTDZAwnuqav1m/ENm3/syYtUi7Aax2o9BbAuZHmdUPU1M9tNlli Mdj+5X/4OllWX7Tr2iBamOpJBj5GyRzprmhLBdcy4SIGwTZBl8WFhItTwylQWwsZldjydFTrcOu UGK5NQRiGQ6HVxiJWE/+QDiVqMrRjzgTYT5yZ0w4h8OvV4apJdvzkz4FT44F5Szeqh3qx9EbuDl 18L4oS3xaHlCTNhRQIkRqP0SHlbcQw== X-Authority-Analysis: v=2.4 cv=MIFgmNZl c=1 sm=1 tr=0 ts=68beb9ed b=1 cx=c_pps a=e1sVV491RgrpLwSTMOnk8w==:117 a=e1sVV491RgrpLwSTMOnk8w==:17 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=wKuvFiaSGQ0qltdbU6+NXLB8nM8=:19 a=Ol13hO9ccFRV9qXi2t6ftBPywas=:19 a=xqWC_Br6kY4A:10 a=yJojWOMRYYMA:10 a=GoEa3M9JfhUA:10 a=yPCof4ZbAAAA:8 a=8VW42N-dlZBHzYBeMqgA:9 cc=ntf awl=host:13602 X-Proofpoint-GUID: nKFGd1X3n5saloJ_nqdHoji6ovMgfWna Content-Type: text/plain; charset="utf-8" We introduce the io_remap*() equivalents of remap_pfn_range_prepare() and remap_pfn_range_complete() to allow for I/O remapping utilising f_op->mmap_prepare and f_op->mmap_complete hooks. We have to make some architecture-specific changes for those architectures which define customised handlers. Signed-off-by: Lorenzo Stoakes --- arch/csky/include/asm/pgtable.h | 5 +++++ arch/mips/alchemy/common/setup.c | 28 +++++++++++++++++++++++++--- arch/mips/include/asm/pgtable.h | 10 ++++++++++ arch/sparc/include/asm/pgtable_32.h | 29 +++++++++++++++++++++++++---- arch/sparc/include/asm/pgtable_64.h | 29 +++++++++++++++++++++++++---- include/linux/mm.h | 18 ++++++++++++++++++ 6 files changed, 108 insertions(+), 11 deletions(-) diff --git a/arch/csky/include/asm/pgtable.h b/arch/csky/include/asm/pgtabl= e.h index 5a394be09c35..c83505839a06 100644 --- a/arch/csky/include/asm/pgtable.h +++ b/arch/csky/include/asm/pgtable.h @@ -266,4 +266,9 @@ void update_mmu_cache_range(struct vm_fault *vmf, struc= t vm_area_struct *vma, #define io_remap_pfn_range(vma, vaddr, pfn, size, prot) \ remap_pfn_range(vma, vaddr, pfn, size, prot) =20 +/* default io_remap_pfn_range_prepare can be used. */ + +#define io_remap_pfn_range_complete(vma, addr, pfn, size, prot) \ + remap_pfn_range_complete(vma, addr, pfn, size, prot) + #endif /* __ASM_CSKY_PGTABLE_H */ diff --git a/arch/mips/alchemy/common/setup.c b/arch/mips/alchemy/common/se= tup.c index a7a6d31a7a41..a4ab02776994 100644 --- a/arch/mips/alchemy/common/setup.c +++ b/arch/mips/alchemy/common/setup.c @@ -94,12 +94,34 @@ phys_addr_t fixup_bigphys_addr(phys_addr_t phys_addr, p= hys_addr_t size) return phys_addr; } =20 -int io_remap_pfn_range(struct vm_area_struct *vma, unsigned long vaddr, - unsigned long pfn, unsigned long size, pgprot_t prot) +static unsigned long calc_pfn(unsigned long pfn, unsigned long size) { phys_addr_t phys_addr =3D fixup_bigphys_addr(pfn << PAGE_SHIFT, size); =20 - return remap_pfn_range(vma, vaddr, phys_addr >> PAGE_SHIFT, size, prot); + return phys_addr >> PAGE_SHIFT; +} + +int io_remap_pfn_range(struct vm_area_struct *vma, unsigned long vaddr, + unsigned long pfn, unsigned long size, pgprot_t prot) +{ + return remap_pfn_range(vma, vaddr, calc_pfn(pfn, size), size, prot); } EXPORT_SYMBOL(io_remap_pfn_range); + +void io_remap_pfn_range_prepare(struct vm_area_desc *desc, unsigned long p= fn, + unsigned long size) +{ + remap_pfn_range_prepare(desc, calc_pfn(pfn, size)); +} +EXPORT_SYMBOL(io_remap_pfn_range_prepare); + +int io_remap_pfn_range_complete(struct vm_area_struct *vma, + unsigned long addr, unsigned long pfn, unsigned long size, + pgprot_t prot) +{ + return remap_pfn_range_complete(vma, addr, calc_pfn(pfn, size), + size, prot); +} +EXPORT_SYMBOL(io_remap_pfn_range_complete); + #endif /* CONFIG_MIPS_FIXUP_BIGPHYS_ADDR */ diff --git a/arch/mips/include/asm/pgtable.h b/arch/mips/include/asm/pgtabl= e.h index ae73ecf4c41a..6a8964f55a31 100644 --- a/arch/mips/include/asm/pgtable.h +++ b/arch/mips/include/asm/pgtable.h @@ -607,6 +607,16 @@ phys_addr_t fixup_bigphys_addr(phys_addr_t addr, phys_= addr_t size); int io_remap_pfn_range(struct vm_area_struct *vma, unsigned long vaddr, unsigned long pfn, unsigned long size, pgprot_t prot); #define io_remap_pfn_range io_remap_pfn_range + +void io_remap_pfn_range_prepare(struct vm_area_desc *desc, unsigned long p= fn, + unsigned long size); +#define io_remap_pfn_range_prepare io_remap_pfn_range_prepare + +int io_remap_pfn_range_complete(struct vm_area_struct *vma, + unsigned long addr, unsigned long pfn, unsigned long size, + pgprot_t prot); +#define io_remap_pfn_range_complete io_remap_pfn_range_complete + #else #define fixup_bigphys_addr(addr, size) (addr) #endif /* CONFIG_MIPS_FIXUP_BIGPHYS_ADDR */ diff --git a/arch/sparc/include/asm/pgtable_32.h b/arch/sparc/include/asm/p= gtable_32.h index 7c199c003ffe..cfd764afc107 100644 --- a/arch/sparc/include/asm/pgtable_32.h +++ b/arch/sparc/include/asm/pgtable_32.h @@ -398,9 +398,7 @@ __get_iospace (unsigned long addr) int remap_pfn_range(struct vm_area_struct *, unsigned long, unsigned long, unsigned long, pgprot_t); =20 -static inline int io_remap_pfn_range(struct vm_area_struct *vma, - unsigned long from, unsigned long pfn, - unsigned long size, pgprot_t prot) +static inline unsigned long calc_io_remap_pfn(unsigned long pfn) { unsigned long long offset, space, phys_base; =20 @@ -408,10 +406,33 @@ static inline int io_remap_pfn_range(struct vm_area_s= truct *vma, space =3D GET_IOSPACE(pfn); phys_base =3D offset | (space << 32ULL); =20 - return remap_pfn_range(vma, from, phys_base >> PAGE_SHIFT, size, prot); + return phys_base >> PAGE_SHIFT; +} + +static inline int io_remap_pfn_range(struct vm_area_struct *vma, + unsigned long from, unsigned long pfn, + unsigned long size, pgprot_t prot) +{ + return remap_pfn_range(vma, from, calc_io_remap_pfn(pfn), size, prot); } #define io_remap_pfn_range io_remap_pfn_range =20 +static inline void io_remap_pfn_range_prepare(struct vm_area_desc *desc, u= nsigned long pfn, + unsigned long size) +{ + remap_pfn_range_prepare(desc, calc_io_remap_pfn(pfn)); +} +#define io_remap_pfn_range_prepare io_remap_pfn_range_prepare + +static inline int io_remap_pfn_range_complete(struct vm_area_struct *vma, + unsigned long addr, unsigned long pfn, unsigned long size, + pgprot_t prot) +{ + return remap_pfn_range_complete(vma, addr, calc_io_remap_pfn(pfn), + size, prot); +} +#define io_remap_pfn_range_complete io_remap_pfn_range_complete + #define __HAVE_ARCH_PTEP_SET_ACCESS_FLAGS #define ptep_set_access_flags(__vma, __address, __ptep, __entry, __dirty) \ ({ \ diff --git a/arch/sparc/include/asm/pgtable_64.h b/arch/sparc/include/asm/p= gtable_64.h index 669cd02469a1..b8000ce4b59f 100644 --- a/arch/sparc/include/asm/pgtable_64.h +++ b/arch/sparc/include/asm/pgtable_64.h @@ -1084,9 +1084,7 @@ static inline int arch_unmap_one(struct mm_struct *mm, return 0; } =20 -static inline int io_remap_pfn_range(struct vm_area_struct *vma, - unsigned long from, unsigned long pfn, - unsigned long size, pgprot_t prot) +static inline unsigned long calc_io_remap_pfn(unsigned long pfn) { unsigned long offset =3D GET_PFN(pfn) << PAGE_SHIFT; int space =3D GET_IOSPACE(pfn); @@ -1094,10 +1092,33 @@ static inline int io_remap_pfn_range(struct vm_area= _struct *vma, =20 phys_base =3D offset | (((unsigned long) space) << 32UL); =20 - return remap_pfn_range(vma, from, phys_base >> PAGE_SHIFT, size, prot); + return phys_base >> PAGE_SHIFT; +} + +static inline int io_remap_pfn_range(struct vm_area_struct *vma, + unsigned long from, unsigned long pfn, + unsigned long size, pgprot_t prot) +{ + return remap_pfn_range(vma, from, calc_io_remap_pfn(pfn), size, prot); } #define io_remap_pfn_range io_remap_pfn_range =20 +static inline void io_remap_pfn_range_prepare(struct vm_area_desc *desc, u= nsigned long pfn, + unsigned long size) +{ + return remap_pfn_range_prepare(desc, calc_io_remap_pfn(pfn)); +} +#define io_remap_pfn_range_prepare io_remap_pfn_range_prepare + +static inline int io_remap_pfn_range_complete(struct vm_area_struct *vma, + unsigned long addr, unsigned long pfn, unsigned long size, + pgprot_t prot) +{ + return remap_pfn_range_complete(vma, addr, calc_io_remap_pfn(pfn), + size, prot); +} +#define io_remap_pfn_range_complete io_remap_pfn_range_complete + static inline unsigned long __untagged_addr(unsigned long start) { if (adi_capable()) { diff --git a/include/linux/mm.h b/include/linux/mm.h index 0f59bf14cac3..d96840262498 100644 --- a/include/linux/mm.h +++ b/include/linux/mm.h @@ -3673,6 +3673,24 @@ static inline int io_remap_pfn_range(struct vm_area_= struct *vma, } #endif =20 +#ifndef io_remap_pfn_range_prepare +static inline void io_remap_pfn_range_prepare(struct vm_area_desc *desc, u= nsigned long pfn, + unsigned long size) +{ + return remap_pfn_range_prepare(desc, pfn); +} +#endif + +#ifndef io_remap_pfn_range_complete +static inline int io_remap_pfn_range_complete(struct vm_area_struct *vma, + unsigned long addr, unsigned long pfn, unsigned long size, + pgprot_t prot) +{ + return remap_pfn_range_complete(vma, addr, pfn, size, + pgprot_decrypted(prot)); +} +#endif + static inline vm_fault_t vmf_error(int err) { if (err =3D=3D -ENOMEM) --=20 2.51.0 From nobody Wed Sep 10 01:09:09 2025 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id B52C4302CC0; Mon, 8 Sep 2025 11:12:23 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=205.220.165.32 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1757329945; cv=fail; b=Yb6iAby1Qm6wzfmOHrGr/OxexBJCZxuE2Ib4g2PZwkDZtPU7d4AcjXoBHKdgcYKGnVYYt/nSXzRE1A4YE6PeG1UHjTpNzk00RMNCGRZq8su/HBa5sEButlvknls3sblCwwjG6UjJGV6iY3bY84DlFdOh2bp3rp9c0nYrwBCqtVc= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1757329945; c=relaxed/simple; bh=XF7OdNlnLr+HIpF35fSOeJRZnnSd/9+Ez/dyRsZcbLE=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=RpRhspvcVCD31SeGfa/7do2sNBL/+Q3FkQIvURWby9RU/U28YzI2FdwPxIdsUMYlAYAFFGsbV/DxU0mkJe3bothH4DmfEfzD0IHTwc2QQP6MVAe5paORssUktIVnutn0/780QGdkuDyEGcinybuUpz5Gx+Qe2+QDyrbOS9VqUfo= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com; spf=pass smtp.mailfrom=oracle.com; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b=o+wigU1s; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=FWihO1Wg; arc=fail smtp.client-ip=205.220.165.32 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oracle.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b="o+wigU1s"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="FWihO1Wg" Received: from pps.filterd (m0333521.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 588ApExe005225; Mon, 8 Sep 2025 11:11:45 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s= corp-2025-04-25; bh=0FyF7ochlZG4iwLKtmoWolNE4EO847Xqh6CTV1s03MU=; b= o+wigU1sHCE40MF5FnYfeGHrkE/hnT3+3hdyCPCf9FaXjfOcS08jnh/iMjoG5rs8 7bQnj9vidIxMKhwhyu/d+fYv9U8tLc85j8W2qKopSR+Jf86WFCsGj/d+FtlnPffO 4cuImt53T5rtLjcXRDekGbhsPUGkTtCbMgQ74jnPFuS4qd2ayuGdny9zJrgTlmB9 C8/jqBfwrL8Q0lwQSkaxXqNUeg8I6iCOBM7IJzu2akbmewxcVUvkf/GkJIiIUmtw J+bNLyaMJ+NbP4h46n2ml5kOfJOc0E4IC76NdLs0O6AJW6wBqMW5TUTJzCzCOCGQ M9Q/cFi66DXfZvMpwQU4Ag== Received: from phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta01.appoci.oracle.com [138.1.114.2]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 491wqug10a-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 08 Sep 2025 11:11:44 +0000 (GMT) Received: from pps.filterd (phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (8.18.1.2/8.18.1.2) with ESMTP id 588ABIFQ032942; Mon, 8 Sep 2025 11:11:44 GMT Received: from nam04-dm6-obe.outbound.protection.outlook.com (mail-dm6nam04on2074.outbound.protection.outlook.com [40.107.102.74]) by phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 490bd91rc5-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 08 Sep 2025 11:11:44 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=KR5PnD71NbzbIWLIOEz2esRvtUsEBLx2RaG+xqD+dSPYrpbNA4+jR9cDNBcjYuLIsDRtWhSY4tccJ6l0M4WwqKXWkJpFsmKAsvdfebeV/sgs+pwYQlKqsHbeQNEW6Fht7rn+u60eKBl4Ad4L/GOroz39CBY0GK4Hogy8PEXC/SmKsn9XvI0HZZKDv1d3LjncjEKRx7qqeO6uKRgMQ39d/OqbYzIOZ8YppzxIJAkZyeQvQD5f0sJas2RPHffXTKm4i7yG0mvN3Rn4Q3OMIRJAdMT02opNtA8xQ+sFDHkypUzK4CqD6bhkHeg9F4p5EUQhN+AWcY7PVKKbzb75Ooybtg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=0FyF7ochlZG4iwLKtmoWolNE4EO847Xqh6CTV1s03MU=; b=juuWvP9l0JSCYQTKRTl1Ae5CZ8ODuVZM3xp4C3Perhmjf8eZsaYHEZsFVM9ey0BZFWo0heDMBDG4QNn0U/THEDAQqj/u2iixPUqgCKxYs8/G0RF051kj0if5Papp1YNZMBJYOLZBecQPtJ6n8+GjBMfbf1u7lwLv6MvJU7JKFUNxrp24+d0q7aw1bqkSxuDa0h5ub6yBb+fDiXXf/83fpWQwFJWWcS266Jwo7xawpHGHJMhRGaqJJcydFf0fiZqi1W2KgZus1oc6Ycxcr7aq3scnUJ499HeKKGW2VvRzX2s7PmSTFGuNCAAdhBvg5c4yZgHvwZjp+0ZJGbdDLDVXog== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com; dkim=pass header.d=oracle.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=0FyF7ochlZG4iwLKtmoWolNE4EO847Xqh6CTV1s03MU=; b=FWihO1WgOngpLBBjibeGZ8YP7fYn+1gd8M6cpRlFfYuEDplTLC+g8r16cVhoaNYY0GQmpok70YeilEuqcdYpCTm1hWthvxFSXEiRvO1bTGLLaLDDWOdFSC6a9kJ/QL9bsn7/oKX6e5oIDMYdRSMi5LR4qr91pTP/aUnY9yoD+xA= Received: from DM4PR10MB8218.namprd10.prod.outlook.com (2603:10b6:8:1cc::16) by CY8PR10MB6588.namprd10.prod.outlook.com (2603:10b6:930:57::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9094.19; Mon, 8 Sep 2025 11:11:40 +0000 Received: from DM4PR10MB8218.namprd10.prod.outlook.com ([fe80::2650:55cf:2816:5f2]) by DM4PR10MB8218.namprd10.prod.outlook.com ([fe80::2650:55cf:2816:5f2%5]) with mapi id 15.20.9094.018; Mon, 8 Sep 2025 11:11:40 +0000 From: Lorenzo Stoakes To: Andrew Morton Cc: Jonathan Corbet , Matthew Wilcox , Guo Ren , Thomas Bogendoerfer , Heiko Carstens , Vasily Gorbik , Alexander Gordeev , Christian Borntraeger , Sven Schnelle , "David S . Miller" , Andreas Larsson , Arnd Bergmann , Greg Kroah-Hartman , Dan Williams , Vishal Verma , Dave Jiang , Nicolas Pitre , Muchun Song , Oscar Salvador , David Hildenbrand , Konstantin Komarov , Baoquan He , Vivek Goyal , Dave Young , Tony Luck , Reinette Chatre , Dave Martin , James Morse , Alexander Viro , Christian Brauner , Jan Kara , "Liam R . Howlett" , Vlastimil Babka , Mike Rapoport , Suren Baghdasaryan , Michal Hocko , Hugh Dickins , Baolin Wang , Uladzislau Rezki , Dmitry Vyukov , Andrey Konovalov , Jann Horn , Pedro Falcato , linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org, linux-fsdevel@vger.kernel.org, linux-csky@vger.kernel.org, linux-mips@vger.kernel.org, linux-s390@vger.kernel.org, sparclinux@vger.kernel.org, nvdimm@lists.linux.dev, linux-cxl@vger.kernel.org, linux-mm@kvack.org, ntfs3@lists.linux.dev, kexec@lists.infradead.org, kasan-dev@googlegroups.com, Jason Gunthorpe Subject: [PATCH 10/16] mm/hugetlb: update hugetlbfs to use mmap_prepare, mmap_complete Date: Mon, 8 Sep 2025 12:10:41 +0100 Message-ID: <346e2d1e768a2e5bf344c772cfbb0cd1d6f2fd15.1757329751.git.lorenzo.stoakes@oracle.com> X-Mailer: git-send-email 2.51.0 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: GV2PEPF0000383E.SWEP280.PROD.OUTLOOK.COM (2603:10a6:144:1:0:5:0:13) To DM4PR10MB8218.namprd10.prod.outlook.com (2603:10b6:8:1cc::16) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DM4PR10MB8218:EE_|CY8PR10MB6588:EE_ X-MS-Office365-Filtering-Correlation-Id: 380e77bd-4326-47a2-50a1-08ddeec87c3e X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|1800799024|7416014|376014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?CUDkJbjFSXXwajluoDLhcytUkvUwjL4RL3EzyRi7Gubk+NheKN5Z1JP1iWl8?= =?us-ascii?Q?HxqvoBhHSzeQyuhJD979lYHsAcmHiUcAdCqh3h7gEqBPv+jaYosRFx+OxkfE?= =?us-ascii?Q?P/P1K5d2Z+P0HoaSgovN8Y809hDkT/XMCUqPOQ4a5neQ3x9/oNman3m1eCkT?= =?us-ascii?Q?kx+WErp1C/PRFPPt17AqUSrGZLywaW3m1PYYfyIoD/5Qk0CSdN47Nzsxw8ho?= =?us-ascii?Q?TSqPN/BLHx1VVyed3BEj5AmxZeNqvfW/U9jX708WBay7uxiNP0Zw5hbq89Zr?= =?us-ascii?Q?WtSPFg4+WRzKva0056NLxb+DaCcLnLNYw42UIanjpW9uy4U398S8bVA48OdN?= =?us-ascii?Q?q9k0sXO7urMK996l3ASuG8STlvPnY8OizgDJLdd8K6PCN0/VaqDqXzVgt2i+?= =?us-ascii?Q?Bny5ydavyZVA2k4jmbCkV8cHjbub/Ks0kpICpG4k4N1Dzwu9xFn3pgEZdPuQ?= =?us-ascii?Q?xgY+LSbJFL7EW4CuzVrmrUOc/9bgLsHlmqcrNwIKilz++XLt2I9v1VQtwkiN?= =?us-ascii?Q?zfowH/EOeXhip88IjilHGjjDVtGBiOH+qTbMVaEYT6DFcA6Er8k4UhcC2qEn?= =?us-ascii?Q?IK7CpK4gWjmrUePT2+ZREY+PYvlZCLxk6/Tc2dBpzc/n0AvA0v9PeT/gC2eN?= =?us-ascii?Q?/oeS0DUeofpx9GiKL2ZIXatrUHrvPtdtVbj87+9CNIxrEAUQ272rOohm57LF?= =?us-ascii?Q?L4euGhxV7V7fQhhrVxl0CCTJkcQ2RRG13UdLO7BWliqklloE6Xo1kekcbNEh?= =?us-ascii?Q?Do4ueMgBF/R6w/wVVNp0SO37nEdFgHoc26zYXaxLdpevy/GezJnUr3MJ5vaN?= =?us-ascii?Q?PUZ8VVWaRS8wI4EIybuqRjdrP6Z3IO+PzCDsuZrsytFUvP/Pkk7f3V5wIawl?= =?us-ascii?Q?poglRFu5INHxB1Vd1Omq3l0rtml3+cLjnr/66X0PZZb4AcoQi6q4mixYtUF9?= =?us-ascii?Q?XvdN9iBil/KqwIMN3FuV9LISNTr504CVi3rBFvi8iE9mQhzLJqd2XH1XXb4X?= =?us-ascii?Q?uCnup0mrQhw5J6to/33n0FGMAbr/O+wcNSc/uIYcHblqQL2Le5FDRIRjieG7?= =?us-ascii?Q?7qbXRcgtUacOJmPsUnk3F5jplZJr9r+6XzPb3QuFV3k43aRHEGLf+E52PzUQ?= =?us-ascii?Q?pEcE6iITjHsfvDAwxBBDoMqN/moSjE01ffX3WdYvcyTaPNQdbptndrayK3qO?= =?us-ascii?Q?AWqDXzd0Wy/FBzOgUSP3Ud3qR3n1y5CQJdNd4/hlr8kE3VfGbkSI5U16BaQC?= =?us-ascii?Q?8tRzPnGximtXW4itbVA+rJto0VWGbEcfEhMpbEpOaAC1AcdaHgU7vPyG5uZn?= =?us-ascii?Q?+Ig6/UvGeWe9Rksp0h/jTrnO4IsSZc7ql1gkS3GUXBURnrHDWuC/JndWywS0?= =?us-ascii?Q?7Bb9hLFj/xY1Kiu/RBrcMZSv1p+l5F0+XXowh/hrPMQgi5t3A8WdxGwLRYgj?= =?us-ascii?Q?iAR3kmTnNIg=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM4PR10MB8218.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(7416014)(376014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?kIn2VnlRTJFXv8olI3wu+VQC3/pw8+yoKT4DRLkSqjiMvn3ldVRl6r0BC9HW?= =?us-ascii?Q?/KXbZFzw1eovMtQnaSMDM9JGpgNBG0FCFbfjzSYr8vctSoAvoBVAcvHiFJaK?= =?us-ascii?Q?sbZCmKRklnG/oa9hq4YyVyVkkM7n2XmNyQj6uO3elXR/vSGgnsnZXUsFdDhU?= =?us-ascii?Q?AAzZN9NVQ7hugsotkTlwsTpMxMd/tKznYoIaMvq0D5HpEd8OC//Hu9LbFBvM?= =?us-ascii?Q?9Pwg49YEtiDQ4QIJedGsCPtcbEr/da++1c02nHvYEVbnz35QFrjBvVaaRa7n?= =?us-ascii?Q?3ZwVQYyRCOEtYAn4s8o7sN5pKOcrvDYrW0XtIuaQmnSkl+RgyA1v80BCrVVr?= =?us-ascii?Q?Y+5vjXaEoD2CAdSiXASXjMrdHd29l+iXjyvLIC1W85Eu9+U0kQPP2+8yS9JU?= =?us-ascii?Q?Q3GNQ0i9PGfw6I6bjdCsS4iBdAJpj77P5xeP0OkkqVZqsYf4toDhaVajx5zF?= =?us-ascii?Q?byXzFmTKjrK3TAtUsRRmLQuMyxKLv3F51xzLIWt1j9z36T9OlrM8Clq6w1no?= =?us-ascii?Q?FmmGlC/we9cwXyHBWoS7sZ3/lcokRvnXUcbCGuz39OHxL22JNgOorWe2pKOU?= =?us-ascii?Q?zMxtb4Cvg/w85H94WwJg1IaXEVq50bYETgcM9/Ev37z1vVWBDFLKBL8qoXTJ?= =?us-ascii?Q?QDUaiwk/qRisREfAeBCoUU+SO00wLrYdq1sFBCIQLD3vUtl8Fe877Q2ZcwPF?= =?us-ascii?Q?S2MQtqpFYLC8+CTPafsMSj12IQQm3ccT71N9W9p0ieVYWsD8nOIYh+I8nz/N?= =?us-ascii?Q?X9TcWUFjFBXI0fTNnEQmJlKyYikGOwNXolovRZ/PRgY8UhqTah0uk2hV1zeE?= =?us-ascii?Q?0al0TXhQyZAsqu+ES0It8u39AgcjN+PXbvx6u4fA7+LonQmTS23fzzbcjzEU?= =?us-ascii?Q?xtAYMJFsPAdrI/0JNrGFlL0Pmga2ZPoP7ni72YRhg7n/53gB3MqcWOUxrERn?= =?us-ascii?Q?675KcAF9TfrhQzHmuTheo8ZS1WkUgCCubTE1ynRSTPlmGB9hchezs8JD1wOL?= =?us-ascii?Q?JOWh5U+3tOzPPr6i/qkMihSybIpgFKVg5nLsqX3MwgdrR+nneHxvYjzTdobz?= =?us-ascii?Q?L/baQ4qqhDgkglc3UUDAV/4X1/aL6qoIG7sJkbDGLyCgi0mG18YLqxvo5O3W?= =?us-ascii?Q?v4dxUmzAy6ofPVuO+umGb4t9AqEWmWYLc388asyTzqaIlU7yS8JszZ9Z9Kp7?= =?us-ascii?Q?AQm+/m0rYYLpQ0SrRWKPorzJoA/eF+xQnMrLmB81FW9zQrIy+9IY86PDrSSB?= =?us-ascii?Q?+D7KVJnmf9DQvakqIMcE3N8oYbL6xBScnJbhrXOnDZ4uaoaGJFyPXdGxMFJS?= =?us-ascii?Q?Gmk5rb7wgUlZ9kmPRSmJUCyaQjMfzAasYIGi3/1lolfJSgObqY5ZPmf4RPfo?= =?us-ascii?Q?S6vQ9Y5mxmGZ0TKrGFWROrHT/QwpqPfUo86YWkXhLkB5+XoAzQfFXWBFURZn?= =?us-ascii?Q?6KmCZlVq8HlJqx5KFaxyawCvsspe91pOPTdS7UWugHRU4UHUkJ/dFElVJ8AI?= =?us-ascii?Q?YYNo7imhduXhv5UpykZsmNijlIKjuDrz9q+TfOv4VjDelAKfdsNFmwbxq9hF?= =?us-ascii?Q?tk+nzqHGyfR+8oF4J2yvvrDeWrQSSuYbEjiLLX3H/lfMSijyLoqDhu9p9hKx?= =?us-ascii?Q?3A=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: d42Qgxc9LsnqVO5LoTvL4taZE/IUPZz+m+bWffF2YxClSv2xfA6EZZnXVYXxANtFUd4rGEoTWhWlGnPXh4ZE9T4QGiXO5SPF4pB5eylkdYXHzuLnpxicjEpSVvVucgb5W4YTETg6X3EmK6IoLG9/rub38/+503D9I8P88bVP2m7OkR5zFDnL44Ql6/3IQq2YMcvO+nItBfu7Mh9RCzaSpHHnQZ7Y/gbmw8YS/5vlJaPlP8WKAgh17rSP5+XjOUUcEuSj25InZ4K7gnU+0gDJeHjkBx/M5WMxmSvs2HAiyfH/gBxj/q1SWdFOFsxoXYiMCNEd2/0igtio4jN3nsZdX9Ma/Qx/Td/A+WT3oCyglkAHpCHzHf935TxTT4bXFJzOanzFnqDvrbmb3yta6BtW7It5MtCevrJakLsG4tKHhv2KHZCS7XGjLIwGdxdtJyLHjfeUVfeneYSm5jw8IR2f8wIg8e3yAdtLw/8nI/gNMCQh99hb4FyKlI+hR/l0aKOd8DTTxbABDM8vrGZeQlO45BB3HrCkYjYuR9FCuUqv5W9Oc1v9Uq4ezdJawfj3Pt9jcYMMHw+k/oNfWBXZRWFOrCcMftHXFfO4EjlG4QH9f84= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 380e77bd-4326-47a2-50a1-08ddeec87c3e X-MS-Exchange-CrossTenant-AuthSource: DM4PR10MB8218.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Sep 2025 11:11:40.3603 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: /+kZOaFkcXSLeyjsxPUJ6ejSDWk8Cm73bUpl8fUWfjnMoIuxMRQGgceiw5JeoBVuoQowJn9pvPadVYMgB3XoaR2x8+AucSxiuFf+tFDjfF8= X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY8PR10MB6588 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1117,Hydra:6.1.9,FMLib:17.12.80.40 definitions=2025-09-08_04,2025-09-08_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 spamscore=0 mlxscore=0 phishscore=0 bulkscore=0 mlxlogscore=999 malwarescore=0 adultscore=0 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2508110000 definitions=main-2509080113 X-Proofpoint-GUID: 0sByKBS-NHv3PhEfDJVBVhI8VWl_5b4l X-Authority-Analysis: v=2.4 cv=Tu/mhCXh c=1 sm=1 tr=0 ts=68beb9f1 cx=c_pps a=XiAAW1AwiKB2Y8Wsi+sD2Q==:117 a=XiAAW1AwiKB2Y8Wsi+sD2Q==:17 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=wKuvFiaSGQ0qltdbU6+NXLB8nM8=:19 a=Ol13hO9ccFRV9qXi2t6ftBPywas=:19 a=xqWC_Br6kY4A:10 a=yJojWOMRYYMA:10 a=GoEa3M9JfhUA:10 a=yPCof4ZbAAAA:8 a=p3grG-4SqU5JK2rJE7oA:9 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwOTA4MDExMCBTYWx0ZWRfX45OhzuneqV6s wPg1Yo5C5HU7WyZliA5kfQzwGzwcX2zFLhgRvOrBRPL0LOZ0eut9KRIfD5c9g9nfHlADp/oDZES CRbTqjzKqm5XQFM9HiMV7ebzTPy3B2aTcpuKozhRlWPbNN5AYRP6tnHL4dxHzyfrJDIH6PQczGW G2nfw2fST6LgrGbfcOFuQKYxvZw4K8tkS2Nd5p+ZS/7M9J0EOiit+z32AwGZc9Of8m7lAhClqq0 CuKRVz+Wz2RUC+1TRqc8tv1ds6kML3LlOdgvrwaGIa/TbfbYdfZUckoEuMgJ4NnBVhk5S5heqSX 7/9Y650f7oy1vj2wTQpe2Oa/4lHHIi2Maq9fqhajyz2TdZnEuesm2x1sMjZ0Jm4WqAlX/Az5DOP TMros7+T X-Proofpoint-ORIG-GUID: 0sByKBS-NHv3PhEfDJVBVhI8VWl_5b4l Content-Type: text/plain; charset="utf-8" We can now update hugetlb to make sure of the new .mmap_prepare() hook, by deferring the reservation of pages until the VMA is fully established and handle this in the f_op->mmap_complete() hook. We hold the VMA write lock throughout so we can't race with faults. rmap can discover the VMA, but this should not cause a problem. Signed-off-by: Lorenzo Stoakes --- fs/hugetlbfs/inode.c | 86 ++++++++++++++++++++++++-------------------- 1 file changed, 47 insertions(+), 39 deletions(-) diff --git a/fs/hugetlbfs/inode.c b/fs/hugetlbfs/inode.c index 3cfdf4091001..46d1ddc654c2 100644 --- a/fs/hugetlbfs/inode.c +++ b/fs/hugetlbfs/inode.c @@ -96,39 +96,14 @@ static const struct fs_parameter_spec hugetlb_fs_parame= ters[] =3D { #define PGOFF_LOFFT_MAX \ (((1UL << (PAGE_SHIFT + 1)) - 1) << (BITS_PER_LONG - (PAGE_SHIFT + 1))) =20 -static int hugetlbfs_file_mmap(struct file *file, struct vm_area_struct *v= ma) +static int hugetlb_file_mmap_complete(struct file *file, struct vm_area_st= ruct *vma, + const void *context) { struct inode *inode =3D file_inode(file); - loff_t len, vma_len; - int ret; struct hstate *h =3D hstate_file(file); - vm_flags_t vm_flags; - - /* - * vma address alignment (but not the pgoff alignment) has - * already been checked by prepare_hugepage_range. If you add - * any error returns here, do so after setting VM_HUGETLB, so - * is_vm_hugetlb_page tests below unmap_region go the right - * way when do_mmap unwinds (may be important on powerpc - * and ia64). - */ - vm_flags_set(vma, VM_HUGETLB | VM_DONTEXPAND); - vma->vm_ops =3D &hugetlb_vm_ops; - - /* - * page based offset in vm_pgoff could be sufficiently large to - * overflow a loff_t when converted to byte offset. This can - * only happen on architectures where sizeof(loff_t) =3D=3D - * sizeof(unsigned long). So, only check in those instances. - */ - if (sizeof(unsigned long) =3D=3D sizeof(loff_t)) { - if (vma->vm_pgoff & PGOFF_LOFFT_MAX) - return -EINVAL; - } - - /* must be huge page aligned */ - if (vma->vm_pgoff & (~huge_page_mask(h) >> PAGE_SHIFT)) - return -EINVAL; + vm_flags_t vm_flags =3D vma->vm_flags; + loff_t len, vma_len; + int ret =3D 0; =20 vma_len =3D (loff_t)(vma->vm_end - vma->vm_start); len =3D vma_len + ((loff_t)vma->vm_pgoff << PAGE_SHIFT); @@ -139,9 +114,6 @@ static int hugetlbfs_file_mmap(struct file *file, struc= t vm_area_struct *vma) inode_lock(inode); file_accessed(file); =20 - ret =3D -ENOMEM; - - vm_flags =3D vma->vm_flags; /* * for SHM_HUGETLB, the pages are reserved in the shmget() call so skip * reserving here. Note: only for SHM hugetlbfs file, the inode @@ -151,20 +123,55 @@ static int hugetlbfs_file_mmap(struct file *file, str= uct vm_area_struct *vma) vm_flags |=3D VM_NORESERVE; =20 if (hugetlb_reserve_pages(inode, - vma->vm_pgoff >> huge_page_order(h), - len >> huge_page_shift(h), vma, - vm_flags) < 0) + vma->vm_pgoff >> huge_page_order(h), + len >> huge_page_shift(h), vma, + vm_flags) < 0) { + ret =3D -ENOMEM; goto out; + } =20 - ret =3D 0; if (vma->vm_flags & VM_WRITE && inode->i_size < len) i_size_write(inode, len); + out: inode_unlock(inode); - return ret; } =20 +static int hugetlbfs_file_mmap_prepare(struct vm_area_desc *desc) +{ + struct file *file =3D desc->file; + struct hstate *h =3D hstate_file(file); + + /* + * vma address alignment (but not the pgoff alignment) has + * already been checked by prepare_hugepage_range. If you add + * any error returns here, do so after setting VM_HUGETLB, so + * is_vm_hugetlb_page tests below unmap_region go the right + * way when do_mmap unwinds (may be important on powerpc + * and ia64). + */ + desc->vm_flags |=3D VM_HUGETLB | VM_DONTEXPAND; + desc->vm_ops =3D &hugetlb_vm_ops; + + /* + * page based offset in vm_pgoff could be sufficiently large to + * overflow a loff_t when converted to byte offset. This can + * only happen on architectures where sizeof(loff_t) =3D=3D + * sizeof(unsigned long). So, only check in those instances. + */ + if (sizeof(unsigned long) =3D=3D sizeof(loff_t)) { + if (desc->pgoff & PGOFF_LOFFT_MAX) + return -EINVAL; + } + + /* must be huge page aligned */ + if (desc->pgoff & (~huge_page_mask(h) >> PAGE_SHIFT)) + return -EINVAL; + + return 0; +} + /* * Called under mmap_write_lock(mm). */ @@ -1219,7 +1226,8 @@ static void init_once(void *foo) =20 static const struct file_operations hugetlbfs_file_operations =3D { .read_iter =3D hugetlbfs_read_iter, - .mmap =3D hugetlbfs_file_mmap, + .mmap_prepare =3D hugetlbfs_file_mmap_prepare, + .mmap_complete =3D hugetlb_file_mmap_complete, .fsync =3D noop_fsync, .get_unmapped_area =3D hugetlb_get_unmapped_area, .llseek =3D default_llseek, --=20 2.51.0 From nobody Wed Sep 10 01:09:09 2025 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 292F12FE05A; Mon, 8 Sep 2025 11:12:36 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=205.220.165.32 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1757329957; cv=fail; b=oKOW0kTVaaJp0w/SJzlTV2OqAdk9PCdMVcywg/3S2cdTtXYfzm5hDe0C3LEfgzr6ChujEFFBi+VO1COo8rjoU0lU9WUc+IM4WhARqdYGuK1wEGcKUbn370qvYYhRykEMdhKKS/nV21761Ddvl6I8pZtWzG9kcFBwekR1SOxuSrU= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1757329957; c=relaxed/simple; bh=YGuy3dgyC5qrieRE/17cLO9dFZEXyCLUdQLgF3NTl9A=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=hd88NI3ta15RQEi9ZRVmKYBlC1itx9aDrTuG4M8kLYZcfA4S15lPsn8hKv40UtENqYZ6SgSvJjuQYubeKF/2krss/RZoou6h3BGL8h3IMYM+wcwc4FmHFfJIQQLEqksM8Bds9ZPWlezB9H1z/soi5kNkjVp2cbHLcXsuNpT5zhI= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com; spf=pass smtp.mailfrom=oracle.com; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b=MGu1i1x0; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=PzGYFjAG; arc=fail smtp.client-ip=205.220.165.32 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oracle.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b="MGu1i1x0"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="PzGYFjAG" Received: from pps.filterd (m0246627.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 588B4vAu011881; Mon, 8 Sep 2025 11:11:50 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s= corp-2025-04-25; bh=k7NHmK2TGD4XyjTbCZb+2z7qPiXM07rCkbATVrKOnt0=; b= MGu1i1x0oe/kLbKirRIWgG4j0eYbEZkkTjoTcNNN8OxhWUKOjB7yb1AR2FBdi/0y 49/7Fv1QUq3fg38yWbyLrrDDzALcSnoUuy4Upb5NpFXZgfMdCGar4+Sf2xehmNy/ 9OZ/hWW6SCdAyVsLnlzGXcMPZmlGkMjp9l39/b6/5RTlmHfB3k22GrWAtrKVmZpF kvoYpmmHkvDZ7L23Z3X0JkON8oqzK4COMxsk5Guzh7ZzPalUcZLIZaIvCAAov2OE wd0/Zr2exo7OCBAPGD0ckc/SvPbBBDO0Jb8qLhiNtO8puPxF/am+SFMO7YxZAtBH K3FbC9ckY5GVdkBrA7dt8Q== Received: from iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta03.appoci.oracle.com [130.35.103.27]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 491wxvg082-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 08 Sep 2025 11:11:50 +0000 (GMT) Received: from pps.filterd (iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (8.18.1.2/8.18.1.2) with ESMTP id 588B6gso002971; Mon, 8 Sep 2025 11:11:49 GMT Received: from nam04-mw2-obe.outbound.protection.outlook.com (mail-mw2nam04on2085.outbound.protection.outlook.com [40.107.101.85]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 490bdej0mg-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 08 Sep 2025 11:11:48 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=WYKG2DWBifR/ciQVhxKj7JukVxxGI4D1BW/VzYj6kJaNlF/nkygPm0HO1v7+n7+Ce9RH3/GyxnDHgyg/cAoq6LPMeoIp0pxyJ6FFPIc9Do/kdSuGpC0WXhy6BKt/dTZ9xEtLrNUCszBc5OuXMA4pcM0vCnCR0Kga4k1oSi3aE+VERjVJjCSRf9KG3vDIUbCp4OV95p9oqZOjnDHdCXD5F8TX+9bmpcsn0gCssqCNvGUOts5txIP2BSTgiBzUe0aDklY77wqV9WvEkvrIzOO9GDMZob9UbnPcAqyIQlvSFunDLJs4CfbE/8cEewc98P8eV2zj9jYSuOLbr1Gt8g1Jcw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=k7NHmK2TGD4XyjTbCZb+2z7qPiXM07rCkbATVrKOnt0=; b=vLWYVv3VOhS4HePtKiJ7ADKQEwTu7mtlh3R3avBA5sdyj20cb5WXpB+PyhBU2/zkOES6Xci9wq3IanYuTMfrlt4IdiUEeM9YeB/UBYgpLhPyGYhQc1blnjQtc1wXWsfA4JlYOf7U39g+UVReP6toXadGf1vm0Nl/nsEWQiZr5bG6HBL8RaX6Lt2PcW3XasMUngn2zRsHwIRBNwaVH9BEYABzwibH6t8jVHGxzgajUuyALJrRwHue2yoMOOMcTXw7jSm9QC0LV6MyJxNOg8jxQqPWmF20Y+LWqOFjynvC9IChss3XG4fDutCXW7uK7VzKXK5HyVYgdjll95ZpcbksOQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com; dkim=pass header.d=oracle.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=k7NHmK2TGD4XyjTbCZb+2z7qPiXM07rCkbATVrKOnt0=; b=PzGYFjAGBfdMxNu8mFiS1wp4KtoNHpBu7zeqp+P6+kQq5yAPCDhciTA3vhsDgoTnumeCdnsaHO+f1Whas7JSOke/6KVFnde8mmQ+A+QHojdOmyrXMnst6x9tnsyxmlsvZzuk6pwhadER8Msk6Lxyr5qJ115yxrMmbIVfVtXUGJA= Received: from DM4PR10MB8218.namprd10.prod.outlook.com (2603:10b6:8:1cc::16) by CY8PR10MB6588.namprd10.prod.outlook.com (2603:10b6:930:57::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9094.19; Mon, 8 Sep 2025 11:11:44 +0000 Received: from DM4PR10MB8218.namprd10.prod.outlook.com ([fe80::2650:55cf:2816:5f2]) by DM4PR10MB8218.namprd10.prod.outlook.com ([fe80::2650:55cf:2816:5f2%5]) with mapi id 15.20.9094.018; Mon, 8 Sep 2025 11:11:44 +0000 From: Lorenzo Stoakes To: Andrew Morton Cc: Jonathan Corbet , Matthew Wilcox , Guo Ren , Thomas Bogendoerfer , Heiko Carstens , Vasily Gorbik , Alexander Gordeev , Christian Borntraeger , Sven Schnelle , "David S . Miller" , Andreas Larsson , Arnd Bergmann , Greg Kroah-Hartman , Dan Williams , Vishal Verma , Dave Jiang , Nicolas Pitre , Muchun Song , Oscar Salvador , David Hildenbrand , Konstantin Komarov , Baoquan He , Vivek Goyal , Dave Young , Tony Luck , Reinette Chatre , Dave Martin , James Morse , Alexander Viro , Christian Brauner , Jan Kara , "Liam R . Howlett" , Vlastimil Babka , Mike Rapoport , Suren Baghdasaryan , Michal Hocko , Hugh Dickins , Baolin Wang , Uladzislau Rezki , Dmitry Vyukov , Andrey Konovalov , Jann Horn , Pedro Falcato , linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org, linux-fsdevel@vger.kernel.org, linux-csky@vger.kernel.org, linux-mips@vger.kernel.org, linux-s390@vger.kernel.org, sparclinux@vger.kernel.org, nvdimm@lists.linux.dev, linux-cxl@vger.kernel.org, linux-mm@kvack.org, ntfs3@lists.linux.dev, kexec@lists.infradead.org, kasan-dev@googlegroups.com, Jason Gunthorpe Subject: [PATCH 11/16] mm: update mem char driver to use mmap_prepare, mmap_complete Date: Mon, 8 Sep 2025 12:10:42 +0100 Message-ID: X-Mailer: git-send-email 2.51.0 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: GV3P280CA0001.SWEP280.PROD.OUTLOOK.COM (2603:10a6:150:b::31) To DM4PR10MB8218.namprd10.prod.outlook.com (2603:10b6:8:1cc::16) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DM4PR10MB8218:EE_|CY8PR10MB6588:EE_ X-MS-Office365-Filtering-Correlation-Id: fcfe828b-becb-4615-f25e-08ddeec87ed1 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|1800799024|7416014|376014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?iMQ9qGjGMi98GjmHDoGtFTNN4m3aTohUbyYNITytG21SJ+G0gRbj0uCmci6d?= =?us-ascii?Q?eVZCMmHaijml9C47VoVQW28K7fYD5ag7B7DbxVKmBCcjIWgmqnKQ/XFMLSIY?= =?us-ascii?Q?XPRixbOUUjSqQjkfG9Y/8LHnyqwOBGKeBpJhAuFe2LZeH7u5L/GXJyV5hUT7?= =?us-ascii?Q?v8xwM7ZNMTNOqyDCKw7xMN5//UlKvLVuRgKpgWTDSOJLMmiUQiyiFJc5WD+M?= =?us-ascii?Q?wSalo/KZxDpj/7cOWmU5SlhEhOYujpuMrv/r4+noUKFsvaoipr6lqfqaWL8S?= =?us-ascii?Q?+G/WNUfOoGxWwC0i/glmhYbkR7X1OobvoIlI7mJxqm9vHbMG2x4nDyAXC5at?= =?us-ascii?Q?lHPQ9MHM8P6HsnSd5SQN/PTBqFsiWDmuEQ8wZuVJoGclkA2IkQQKrQXAWhoH?= =?us-ascii?Q?xfYSR4/iGv6BNzBV+PqR/oEEdbSZX9/H+1SGEyKrOe3/esViFFmPzKYVqysN?= =?us-ascii?Q?vkLuykZmA6bftwgwiN++eMQOCRL3L51xordzQtjoRPr6fmnxYhsZtCOzyomj?= =?us-ascii?Q?/dkkjxQ9m70EW+7fiVtNxWVgQ3WojJL6NJZHS3eC3za7oWMg//REuGxuVUrZ?= =?us-ascii?Q?TnIenjY7QZg6D3uLqczZiot/U3daA663xSUi3pvl5ctDbDE5b5u2y4D5VfcU?= =?us-ascii?Q?JD5SN3JwSR7Gic9YzoBZQvRit5+46Prm2s042wDp2tjsyWdCpTSAzb+Wk+B1?= =?us-ascii?Q?kLtiLfUT0QvFnjcVVob8W6t+o6r/dMxoLXSGx1b5ij7t/kc0HrE0mcAttA1V?= =?us-ascii?Q?NKh35ugpb6fDMS4OjSzQggafOGALlEcJjtQueOMZT6Nog6qjEq/35HiDp1Mb?= =?us-ascii?Q?wrx1ESQQ1E0IgRZkN1JdKSfrXSdIfkxabsibGAn1p3uLGhvpbWh4aJcDXKTy?= =?us-ascii?Q?UVBtI4D4FLSCIWUVfE23LEg/WDP+wSI3T05gRwDLghjbiEr02dLJ1hBboyCz?= =?us-ascii?Q?gqUjk8TnMm96Upiiqz0TQlb1eQrcpRS9agK8xV64ZTNUN6yQM4C+0Z0P9v1C?= =?us-ascii?Q?jnl6LnpjmJcoH+rA9oeOlNzkLpSL6vqi9PHHVUpiPUXi2zxYSd1BNeHS2J+8?= =?us-ascii?Q?/MB4JdVfQzjgnBkejyBsdw/Zqx9PT9NTUIlf2wq3zym6elc0nxuatiJMqMZC?= =?us-ascii?Q?xRFTuDMGbZs0luYWEWlPFuDs+RbSiQ14jRkBYt7e88oeZqSstAVfydHSGUHC?= =?us-ascii?Q?mvM/l69VzewNvMnqom5YVAkcZszH986NBWbKC0xqeW6vT3y+EtVSxyaHE5LF?= =?us-ascii?Q?BL5c+YjKry3dawfBb+/vP/9K7IVZKO0Au0lkS4vs+npE7pr/AZqRAUrmxeaS?= =?us-ascii?Q?kfusjR465QkZesl7sThkyF076bF6pgbC+TawOopGDkE34XfckdOKLDHzQEf9?= =?us-ascii?Q?WBKWcRDj0L0RqirXZBUZxpmSJVeLqp/CNk7W1ayxxbnJ6H8WEMk1KkXfoy/o?= =?us-ascii?Q?8dRZanw/o6c=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM4PR10MB8218.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(7416014)(376014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?1bu40oP5Kqyx2XA0E0PCK8Qp0eo+KAUFmvAZCP/8OqsXicRaJsLrENwgcJsG?= =?us-ascii?Q?VllBu9lZsy5wsOS2nr3RRCZE3ar/q9pHS1Pbu7IXx7aiBOeQmkBYwIZegCii?= =?us-ascii?Q?TM4o4gireISGXIRrE9WRFSXzg6aJaRIehA+FyUcjMdkxZdzM1rv3QEebpPj1?= =?us-ascii?Q?YhbDE1pLAEU6x+6bMZKjJ4A7bnytPiW3auVkjzyhbf+SekfAEhioyrwoRfsd?= =?us-ascii?Q?Bs/EoxoRPkF11VBFdq+HbYZqQgFW2j6xvdlcBxDcfjlR2UOgu0BRJVGU1Jjn?= =?us-ascii?Q?JhBdH/9xo3+y3W/DpE2Nl6HhO2P2xsJGG1f0qEUxc2Wfu4Zz8vGZpWlPrd+0?= =?us-ascii?Q?9RhrvC1mmyQ6Ho0uCb9Jd4D8VnmQb1e8oGU4/4OZcAWnkbaJNFrPR/2pr7E7?= =?us-ascii?Q?jAB9vzILrdWOCmbwqxxY26lVp+dMODnZcduUFlmhSUDnTenuSd+bhY9EX4OH?= =?us-ascii?Q?2jXQzbfFQRqPs3B6+R6gl2XYS/LV2ylDF0bW0MY8RHxrMc3ZWOeGDihQW2wz?= =?us-ascii?Q?/7iiFJ/ReXinHtzlMuiWM5O2NSCIVjx2pPRkbAXnhTObYO9G/qa+bE2ApWpD?= =?us-ascii?Q?0iK64XL66OGxI/uRXZe52tXYk8pXrqifcW5qA38zqHLxcGSSJyaKDpY8jMqi?= =?us-ascii?Q?+Ium9vaZJRd31k9g7w7k+ME6XUrs7xcf+WRQq1TsYlVuSc8HnCh3sfZPXAB7?= =?us-ascii?Q?8YZfPgVThXTRp7PwHcaFh1bLhtpv+lFSQ2jEd1N1RG809WkG1alR2IyswyON?= =?us-ascii?Q?kGzwVqbN8oZRsdYbGRX30qXdGitu/kKRYYam/bfJ8ze05S3NWCB69nnPa46y?= =?us-ascii?Q?+5nOGhOMBozZY250QUoqpyq15nS8q4tvOnCg0u0GEYpbFzFeRsNvgpEPvLGD?= =?us-ascii?Q?OrF7W1BXkwMYS8vgBN2DZ/WPhI0UHCkaU1Q+8wuWaso7ECoY8eYmEF/UvDVE?= =?us-ascii?Q?qvOnqzfyTo/trvGz5dnOPmDKcoapaeX7HFAg665whs7QY6fMMlSy3kYkwG46?= =?us-ascii?Q?Mz0GQuQlN9gUanzkPnUd35mVbx2oSY3G1DyrbeXnSkLfjeu2UWt999Gjy5ys?= =?us-ascii?Q?kmyzY/s7FuFiFpxXMzV2Uok4i7nQ2IdGjUarqi8QmfNX1yPAmdbERLs7FqOT?= =?us-ascii?Q?A+HVCq4TROJPI3TosdEsL7d209q0uG09L+Rp3g/QL6C9glVl11l8h3Zb9Bli?= =?us-ascii?Q?SOtqb3FldRNgu2VoEPAi+jc+ioNUWuhpMegEE7dnx1+pEh57sC7h0WyNd3l8?= =?us-ascii?Q?cWuNRGJXntoUlup9S4AHiyi74dMvS8+LLxqLao3V/7pcWLJJEUnuzvzvdPb3?= =?us-ascii?Q?M1GN3WDhu53wwctcSpW2znfJLU7zpJOdNCSt7JUAIbXmxs4rA8LE88GnC14c?= =?us-ascii?Q?f6vwqANOp0U4dsbj9apwrlDB327FL6gJWxzgNs7Wnp5Bmuih+O6eSAua0cfy?= =?us-ascii?Q?+hx02ck5WPZ6tizbc57ogYmsqtF+5lo8SW8aqctXmy0ckA4TQBpPYeAopsex?= =?us-ascii?Q?nYUKDCH2s/dNUYQ4j0HUv/ckkN2H6t6zjZz2q2+lo0gwXluGpd/wYaHdnZRn?= =?us-ascii?Q?Gyo3gCQOsdVi3ejytilDY8AXMTpC4OPANT7dts7TgaZ2hzeFnHe/EIcuBoyT?= =?us-ascii?Q?KA=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: 39ds6jMpw8XEX80pcReOAYTvIWijnHzaYeeU3/xnkn1Cw8yCOeC9rGP9qllZ8dq5JS54IA7yhFOXvdYjpkWZ+P+kXwg26DwMtUZzccoU8VlW1xuveP0DWGURN7duI8K6sA5X3gWuJTL5cyuXEtszMFWh9hpBODeujDCayzoV3dBH6XaTcpUtLD5oEzBfk36CIMoah6pHxSJX/kBBILZhdCL1nXxptfSksiV3Cwp8eDlNLIHvNO7t2OqpsqNmSRNrD8l3A51pEs+45Yi9tJaa8imqLKlK45XSgsreT/jVJjQCHF4AiA70/wOegMLQngsldUnjuRoUWR89shrYvuYuZFhBPlHRUOZ6eASJXqaGOJK3vQSlPl906RER3IeAbYNSpWtv0mH+8KWlp96iXvolIzNPFJ0c3CcEfc0CF9qaJVdSBoPWaSzJ0cVEQ2vM6zeLtaianXIbsvPDRXc8f6nsPZSxXXSUSLm7sEHLkibTRZiodX51nBY3gXOye0ZZiHTjrDRhOeoyny/uoWoSFcTOqLSSv4vdPBiOtgOUjJR1iy5EIjHHdiIE/oozeIUpG6Xi4GrrAWEGsNzxAam8NJg536wRtv1PNMunYQMKhVieeDg= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: fcfe828b-becb-4615-f25e-08ddeec87ed1 X-MS-Exchange-CrossTenant-AuthSource: DM4PR10MB8218.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Sep 2025 11:11:44.6848 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: kctUhkmvvPmaaQfkU0eAizRW7EnFGEYaPPUSA2Kn9CnC1Zo/4HQMTy74mrW+sbpQ+rcrr5Hbrg/qMAoIUB6JtVsxFx9Y8IhY2Rc2JwjN6fQ= X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY8PR10MB6588 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1117,Hydra:6.1.9,FMLib:17.12.80.40 definitions=2025-09-08_04,2025-09-08_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 spamscore=0 adultscore=0 suspectscore=0 bulkscore=0 mlxscore=0 mlxlogscore=999 phishscore=0 malwarescore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2508110000 definitions=main-2509080113 X-Proofpoint-ORIG-GUID: WfnurNvUuBii38BfUaBm5S7040SPU2x3 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwOTA4MDExMiBTYWx0ZWRfX60SlbKjBoEyV agpN2Dr8no/FBukqvsuj/zIaGThb7GCOIcucTt9So4KmFaJ/cpnQ9pgGXSnohDBvLN9YuFYFoaj XinSOSZ41FH5fZetAreFypYVeiF2gLAUKzPaRHqjGxYFfKpPbrxs9nLRWv9ZMqneOKISKIJPPIb F5CJnznG8D/lIXRP524iYPXGZpv7PaON+Y65KjkYHAlzriJiZsV9k91nBRF0dLNLLCj3jRGBvNl SkGwb2XJNrVPo6M8vEcupSDTKSvtMcRWUls4qtRZDvwiQD5oV6XSv6gSFqBm6eXPQFampvd+kml sY1y/LwdH/ROk5ijqJv/XfQzgPUcidl2ljoUEWUrzfPiNx6cJ06VTMEl3QfKMf7m9HiP+pcShlV M5LmyD2thP39+rWUwd4/QgPk7+YJCg== X-Authority-Analysis: v=2.4 cv=MIFgmNZl c=1 sm=1 tr=0 ts=68beb9f6 b=1 cx=c_pps a=qoll8+KPOyaMroiJ2sR5sw==:117 a=qoll8+KPOyaMroiJ2sR5sw==:17 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=wKuvFiaSGQ0qltdbU6+NXLB8nM8=:19 a=Ol13hO9ccFRV9qXi2t6ftBPywas=:19 a=xqWC_Br6kY4A:10 a=yJojWOMRYYMA:10 a=GoEa3M9JfhUA:10 a=yPCof4ZbAAAA:8 a=7X8Cq549UNVAXTOeWE0A:9 cc=ntf awl=host:12069 X-Proofpoint-GUID: WfnurNvUuBii38BfUaBm5S7040SPU2x3 Content-Type: text/plain; charset="utf-8" Update the mem char driver (backing /dev/mem and /dev/zero) to use f_op->mmap_prepare, f_op->mmap_complete hooks rather than the deprecated f_op->mmap hook. The /dev/zero implementation has a very unique and rather concerning characteristic in that it converts MAP_PRIVATE mmap() mappings anonymous when they are, in fact, not. The new f_op->mmap_prepare() can support this, but rather than introducing a helper function to perform this hack (and risk introducing other users), simply set desc->vm_op to NULL here and add a comment describing what's going on. We also introduce shmem_zero_setup_desc() to allow for the shared mapping case via an f_op->mmap_prepare() hook, and generalise the code between this and shmem_zero_setup(). Signed-off-by: Lorenzo Stoakes --- drivers/char/mem.c | 80 +++++++++++++++++++++++----------------- include/linux/shmem_fs.h | 3 +- mm/shmem.c | 40 ++++++++++++++++---- 3 files changed, 81 insertions(+), 42 deletions(-) diff --git a/drivers/char/mem.c b/drivers/char/mem.c index 34b815901b20..b57ed104d302 100644 --- a/drivers/char/mem.c +++ b/drivers/char/mem.c @@ -304,13 +304,13 @@ static unsigned zero_mmap_capabilities(struct file *f= ile) } =20 /* can't do an in-place private mapping if there's no MMU */ -static inline int private_mapping_ok(struct vm_area_struct *vma) +static inline int private_mapping_ok(struct vm_area_desc *desc) { - return is_nommu_shared_mapping(vma->vm_flags); + return is_nommu_shared_mapping(desc->vm_flags); } #else =20 -static inline int private_mapping_ok(struct vm_area_struct *vma) +static inline int private_mapping_ok(struct vm_area_desc *desc) { return 1; } @@ -322,46 +322,54 @@ static const struct vm_operations_struct mmap_mem_ops= =3D { #endif }; =20 -static int mmap_mem(struct file *file, struct vm_area_struct *vma) +static int mmap_mem_complete(struct file *file, struct vm_area_struct *vma, + const void *context) { size_t size =3D vma->vm_end - vma->vm_start; - phys_addr_t offset =3D (phys_addr_t)vma->vm_pgoff << PAGE_SHIFT; + + if (remap_pfn_range_complete(vma, + vma->vm_start, + vma->vm_pgoff, + size, + vma->vm_page_prot)) + return -EAGAIN; + + return 0; +} + +static int mmap_mem_prepare(struct vm_area_desc *desc) +{ + size_t size =3D vma_desc_size(desc); + phys_addr_t offset =3D (phys_addr_t)desc->pgoff << PAGE_SHIFT; =20 /* Does it even fit in phys_addr_t? */ - if (offset >> PAGE_SHIFT !=3D vma->vm_pgoff) + if (offset >> PAGE_SHIFT !=3D desc->pgoff) return -EINVAL; =20 /* It's illegal to wrap around the end of the physical address space. */ if (offset + (phys_addr_t)size - 1 < offset) return -EINVAL; =20 - if (!valid_mmap_phys_addr_range(vma->vm_pgoff, size)) + if (!valid_mmap_phys_addr_range(desc->pgoff, size)) return -EINVAL; =20 - if (!private_mapping_ok(vma)) + if (!private_mapping_ok(desc)) return -ENOSYS; =20 - if (!range_is_allowed(vma->vm_pgoff, size)) + if (!range_is_allowed(desc->pgoff, size)) return -EPERM; =20 - if (!phys_mem_access_prot_allowed(file, vma->vm_pgoff, size, - &vma->vm_page_prot)) + if (!phys_mem_access_prot_allowed(desc->file, desc->pgoff, size, + &desc->page_prot)) return -EINVAL; =20 - vma->vm_page_prot =3D phys_mem_access_prot(file, vma->vm_pgoff, - size, - vma->vm_page_prot); - - vma->vm_ops =3D &mmap_mem_ops; + desc->page_prot =3D phys_mem_access_prot(desc->file, desc->pgoff, + size, + desc->page_prot); + desc->vm_ops =3D &mmap_mem_ops; =20 /* Remap-pfn-range will mark the range VM_IO */ - if (remap_pfn_range(vma, - vma->vm_start, - vma->vm_pgoff, - size, - vma->vm_page_prot)) { - return -EAGAIN; - } + remap_pfn_range_prepare(desc, desc->pgoff); return 0; } =20 @@ -501,14 +509,18 @@ static ssize_t read_zero(struct file *file, char __us= er *buf, return cleared; } =20 -static int mmap_zero(struct file *file, struct vm_area_struct *vma) +static int mmap_prepare_zero(struct vm_area_desc *desc) { #ifndef CONFIG_MMU return -ENOSYS; #endif - if (vma->vm_flags & VM_SHARED) - return shmem_zero_setup(vma); - vma_set_anonymous(vma); + if (desc->vm_flags & VM_SHARED) + return shmem_zero_setup_desc(desc); + /* + * This is a highly unique situation where we mark a MAP_PRIVATE mapping + * of /dev/zero anonymous, despite it not being. + */ + desc->vm_ops =3D NULL; return 0; } =20 @@ -526,10 +538,11 @@ static unsigned long get_unmapped_area_zero(struct fi= le *file, { if (flags & MAP_SHARED) { /* - * mmap_zero() will call shmem_zero_setup() to create a file, - * so use shmem's get_unmapped_area in case it can be huge; - * and pass NULL for file as in mmap.c's get_unmapped_area(), - * so as not to confuse shmem with our handle on "/dev/zero". + * mmap_prepare_zero() will call shmem_zero_setup() to create a + * file, so use shmem's get_unmapped_area in case it can be + * huge; and pass NULL for file as in mmap.c's + * get_unmapped_area(), so as not to confuse shmem with our + * handle on "/dev/zero". */ return shmem_get_unmapped_area(NULL, addr, len, pgoff, flags); } @@ -632,7 +645,8 @@ static const struct file_operations __maybe_unused mem_= fops =3D { .llseek =3D memory_lseek, .read =3D read_mem, .write =3D write_mem, - .mmap =3D mmap_mem, + .mmap_prepare =3D mmap_mem_prepare, + .mmap_complete =3D mmap_mem_complete, .open =3D open_mem, #ifndef CONFIG_MMU .get_unmapped_area =3D get_unmapped_area_mem, @@ -668,7 +682,7 @@ static const struct file_operations zero_fops =3D { .write_iter =3D write_iter_zero, .splice_read =3D copy_splice_read, .splice_write =3D splice_write_zero, - .mmap =3D mmap_zero, + .mmap_prepare =3D mmap_prepare_zero, .get_unmapped_area =3D get_unmapped_area_zero, #ifndef CONFIG_MMU .mmap_capabilities =3D zero_mmap_capabilities, diff --git a/include/linux/shmem_fs.h b/include/linux/shmem_fs.h index 0e47465ef0fd..5b368f9549d6 100644 --- a/include/linux/shmem_fs.h +++ b/include/linux/shmem_fs.h @@ -94,7 +94,8 @@ extern struct file *shmem_kernel_file_setup(const char *n= ame, loff_t size, unsigned long flags); extern struct file *shmem_file_setup_with_mnt(struct vfsmount *mnt, const char *name, loff_t size, unsigned long flags); -extern int shmem_zero_setup(struct vm_area_struct *); +int shmem_zero_setup(struct vm_area_struct *vma); +int shmem_zero_setup_desc(struct vm_area_desc *desc); extern unsigned long shmem_get_unmapped_area(struct file *, unsigned long = addr, unsigned long len, unsigned long pgoff, unsigned long flags); extern int shmem_lock(struct file *file, int lock, struct ucounts *ucounts= ); diff --git a/mm/shmem.c b/mm/shmem.c index cfc33b99a23a..7f402e438af0 100644 --- a/mm/shmem.c +++ b/mm/shmem.c @@ -5905,14 +5905,9 @@ struct file *shmem_file_setup_with_mnt(struct vfsmou= nt *mnt, const char *name, } EXPORT_SYMBOL_GPL(shmem_file_setup_with_mnt); =20 -/** - * shmem_zero_setup - setup a shared anonymous mapping - * @vma: the vma to be mmapped is prepared by do_mmap - */ -int shmem_zero_setup(struct vm_area_struct *vma) +static struct file *__shmem_zero_setup(unsigned long start, unsigned long = end, vm_flags_t vm_flags) { - struct file *file; - loff_t size =3D vma->vm_end - vma->vm_start; + loff_t size =3D end - start; =20 /* * Cloning a new file under mmap_lock leads to a lock ordering conflict @@ -5920,7 +5915,17 @@ int shmem_zero_setup(struct vm_area_struct *vma) * accessible to the user through its mapping, use S_PRIVATE flag to * bypass file security, in the same way as shmem_kernel_file_setup(). */ - file =3D shmem_kernel_file_setup("dev/zero", size, vma->vm_flags); + return shmem_kernel_file_setup("dev/zero", size, vm_flags); +} + +/** + * shmem_zero_setup - setup a shared anonymous mapping + * @vma: the vma to be mmapped is prepared by do_mmap + */ +int shmem_zero_setup(struct vm_area_struct *vma) +{ + struct file *file =3D __shmem_zero_setup(vma->vm_start, vma->vm_end, vma-= >vm_flags); + if (IS_ERR(file)) return PTR_ERR(file); =20 @@ -5932,6 +5937,25 @@ int shmem_zero_setup(struct vm_area_struct *vma) return 0; } =20 +/** + * shmem_zero_setup_desc - same as shmem_zero_setup, but determined by VMA + * descriptor for convenience. + * @desc: Describes VMA + * Returns: 0 on success, or error + */ +int shmem_zero_setup_desc(struct vm_area_desc *desc) +{ + struct file *file =3D __shmem_zero_setup(desc->start, desc->end, desc->vm= _flags); + + if (IS_ERR(file)) + return PTR_ERR(file); + + desc->vm_file =3D file; + desc->vm_ops =3D &shmem_anon_vm_ops; + + return 0; +} + /** * shmem_read_folio_gfp - read into page cache, using specified page alloc= ation flags. * @mapping: the folio's address_space --=20 2.51.0 From nobody Wed Sep 10 01:09:09 2025 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 44FC23043A1; Mon, 8 Sep 2025 11:12:35 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=205.220.177.32 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1757329957; cv=fail; b=JIV8+kCVo7Ezh70LvpBUFO77iZ7WietEDuqwlAghgyM52juBkvjYahl2udiGCasiyRbEBUzkbisTNq8Te/qtz3wETCeTnAcWxo6ztqHNFMiteQJMvLMt/KR6oFZg/TR5XtLG3xyWKBo/YmJFLdx4DAZ+cN6h3VWB9Re9wjLU7+o= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1757329957; c=relaxed/simple; bh=bFrXutpBdWcvaBp6/EHUkQ3D1+dYtEpDoNMRn6zo1Uo=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=NZSQ/iV/3vXRvVi+9N4h/LB6nHaIgWJnDHSwI6i8mQOCkIKkw4eriAU3z4epeWsg6TxBpa5qxw61upCMDT7pAGXGRND/eGdi1b3EpuHwp2n/F11BoKYZKq5bvSwpzNqD/GAUXmFgq4JpVK9z4V1Ep/Jhj6HVF/9GFvUBLIsnXpY= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com; spf=pass smtp.mailfrom=oracle.com; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b=V2ELfmPU; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=kaNCp8a8; arc=fail smtp.client-ip=205.220.177.32 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oracle.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b="V2ELfmPU"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="kaNCp8a8" Received: from pps.filterd (m0333520.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 588B9NC9008176; Mon, 8 Sep 2025 11:11:59 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s= corp-2025-04-25; bh=9v/S0HijuZx48o0CV+CH9/1aWShLqW/UqAjNwlpndr8=; b= V2ELfmPU2kY/LUCNvzouSkcKBlKHVNkj3Ui8Fq5fscRnhAVIPU17McfztqFD+/qF wyI9s0snYYFRnXY2fuWqa4miH4Opd9QHTY+PURAtg/mP4XmK+DkPY5a6HE7Ir+jY KVb397+xRqjPJ6V+TrwFp4Y7EbaN1wrrTmK+kfr41a8/iv5apimJ2lJ3N6qIgVQs szWc1+YdTuS9fIV9FdabOA4zJi1tBHJfm1pqjhzGkgXsnUIBdzS6EDcFRhHdJXfl VwvNXQCqiIlzQ3a/y4h57PHAsrgmSSK3iggFwQffIzmRaGfPukif8dvLur9/7xUP FAuqts23rAEWOEKfWAvJ0w== Received: from iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta03.appoci.oracle.com [130.35.103.27]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 491x16g04h-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 08 Sep 2025 11:11:58 +0000 (GMT) Received: from pps.filterd (iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (8.18.1.2/8.18.1.2) with ESMTP id 588AV27I002883; Mon, 8 Sep 2025 11:11:57 GMT Received: from nam04-mw2-obe.outbound.protection.outlook.com (mail-mw2nam04on2088.outbound.protection.outlook.com [40.107.101.88]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 490bdej0pt-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 08 Sep 2025 11:11:57 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=H5b3v8Fqla5Op8JSTQKU1rTpLCQUs/vZ6Lq1l1bAyjLkyxockwR/cp7+Q2K1slXKmUb5Irk92LC3MA11mM4eI+UvsGz71/fux63JemtoGhcZpg70EbetUDF5XVR+Eg1BCPm3jOyMd/amzFUknLewdfsIXfQXjIl9SXmvFdYNo4CSIOc8EGiDd4ZKOR+4cwF/Up9rrKhAJsL9A36wnqbz0cjWFEgiFJhqlqWmltOu9dYOJfnHmZ2Y/L+7VpaS22zqM23IFEVfEX0p+jOKY7SFMfbgw8BDQBVDi3oX72dSpg9Wg/dJ3tPjwJqyJn6ml/cUqPhpfJcngFFiItRMYpuvsg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=9v/S0HijuZx48o0CV+CH9/1aWShLqW/UqAjNwlpndr8=; b=Y8Z/18NLFaiQdW3Tz/Kqn7XRlpHh4nEFs/KOMfyEH+rOPgTUoRdtyj5E9elejhZwdTubhmijP+5L/TOAynDD6SgWKFOPKsA76v8uYm3dWZrOlbpSNYe/L8GbtrX1q5ERK/Irjw2v8+Xhnaezl/r+qEx8Ms+vvISh1mEjJ2MpLi8eD+fhZ3yMKYAqP/DlvbDyZbiXm1MrFeFJMCnLJLdwJJcBMe1T/b5AgFS1TDVRoLlIYHmH5x7Vxfz3ZBcyf0N6p+qgJNFINiYeo75XCCZy3xJ6dDXFUeusC082mtEs5xKuJZscnPwkrg3NG+0Q7SYjweJW7R9XLRuRkpfsCZCLmQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com; dkim=pass header.d=oracle.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=9v/S0HijuZx48o0CV+CH9/1aWShLqW/UqAjNwlpndr8=; b=kaNCp8a8JGqXKwH4BQ+uxVi1BKupXTjR1nSLJTnlokQ9rIAim1KZBT1oUZNsTLskQAWz6c9SpD5t0gnUwQ/to5FewrgJgqh5M4SVDLlXRRuv7ZK1rZ70kM0wJqh3nKzPm+BYg/xQl0l3O0ddPt7D4v5nJdH+iHmIBGZSXJLkLhA= Received: from DM4PR10MB8218.namprd10.prod.outlook.com (2603:10b6:8:1cc::16) by CY8PR10MB6588.namprd10.prod.outlook.com (2603:10b6:930:57::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9094.19; Mon, 8 Sep 2025 11:11:48 +0000 Received: from DM4PR10MB8218.namprd10.prod.outlook.com ([fe80::2650:55cf:2816:5f2]) by DM4PR10MB8218.namprd10.prod.outlook.com ([fe80::2650:55cf:2816:5f2%5]) with mapi id 15.20.9094.018; Mon, 8 Sep 2025 11:11:47 +0000 From: Lorenzo Stoakes To: Andrew Morton Cc: Jonathan Corbet , Matthew Wilcox , Guo Ren , Thomas Bogendoerfer , Heiko Carstens , Vasily Gorbik , Alexander Gordeev , Christian Borntraeger , Sven Schnelle , "David S . Miller" , Andreas Larsson , Arnd Bergmann , Greg Kroah-Hartman , Dan Williams , Vishal Verma , Dave Jiang , Nicolas Pitre , Muchun Song , Oscar Salvador , David Hildenbrand , Konstantin Komarov , Baoquan He , Vivek Goyal , Dave Young , Tony Luck , Reinette Chatre , Dave Martin , James Morse , Alexander Viro , Christian Brauner , Jan Kara , "Liam R . Howlett" , Vlastimil Babka , Mike Rapoport , Suren Baghdasaryan , Michal Hocko , Hugh Dickins , Baolin Wang , Uladzislau Rezki , Dmitry Vyukov , Andrey Konovalov , Jann Horn , Pedro Falcato , linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org, linux-fsdevel@vger.kernel.org, linux-csky@vger.kernel.org, linux-mips@vger.kernel.org, linux-s390@vger.kernel.org, sparclinux@vger.kernel.org, nvdimm@lists.linux.dev, linux-cxl@vger.kernel.org, linux-mm@kvack.org, ntfs3@lists.linux.dev, kexec@lists.infradead.org, kasan-dev@googlegroups.com, Jason Gunthorpe Subject: [PATCH 12/16] mm: update resctl to use mmap_prepare, mmap_complete, mmap_abort Date: Mon, 8 Sep 2025 12:10:43 +0100 Message-ID: X-Mailer: git-send-email 2.51.0 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: GVZP280CA0006.SWEP280.PROD.OUTLOOK.COM (2603:10a6:150:273::12) To DM4PR10MB8218.namprd10.prod.outlook.com (2603:10b6:8:1cc::16) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DM4PR10MB8218:EE_|CY8PR10MB6588:EE_ X-MS-Office365-Filtering-Correlation-Id: eed5b1b8-e6ea-4d3f-dd40-08ddeec880a7 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|1800799024|7416014|376014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?smSZkV50Tz4r5m+JGVasLtnD63A381c4uH2h22Bxp9UUpvC3pDTXFFJQO9/B?= =?us-ascii?Q?j9kLMJIEa5H60C04DZu0Zm7zxBImu25m99AD7sB1diap0sR30WwWRVBKp33E?= =?us-ascii?Q?p0Ik2jY0+z4GTCcgvCzrhJ9U9IJjJ/exaF4NakR2KlXlAvN9JhHmfqcUuz6z?= =?us-ascii?Q?MonsJBbaitHdjgxMc79jXGMwoCd5+jqCFNGIWQkxV7mHrv4GSPkdQeNjF8h2?= =?us-ascii?Q?b3RYf5zZ3WZIqlig6jkxjL6StIjA324G8PgO3eib2drg+4tLt5L7Qk+9hJLD?= =?us-ascii?Q?SixXLZIXnmkgY5YzOXPV76If7tsz+Kg5OQylGPuqup5YNt+vmDJstQ9x+T79?= =?us-ascii?Q?rOclpFysbMdRBYXWY5hQiDFWUIDK3rAJrp0tdgZiryNiItVa2C/YVI2iMBFk?= =?us-ascii?Q?DzrBPuAuXJQpgo9yPx2u0Ozh7pfY+VZ/aGu3RbtHFTQZmjjwGRUbfUqyLvja?= =?us-ascii?Q?DlLLjgcq8D6VcPiUFMvDMvtnXucNHn9I2nCGLQ98fhNsDwh4pI1IIZ1kVDRK?= =?us-ascii?Q?rWzdQ/5PxrasSmpIAoiulfsoker/8QbvnMqOwNzym6zs+E7xJLSPB0owNKqz?= =?us-ascii?Q?AcpL0dXTagX7+yLXttAoLZoAoh+hq80zNs/YKj0B6nX//FOBIQC//XufHPXY?= =?us-ascii?Q?pX+KEHU93J92Br6WG6XNSwnPRhNZHu4BH66zyori7jalk5z7MU8zpjIa0Zo8?= =?us-ascii?Q?Gz5AolD4yRgCMEfGeCMqGGOaoP3e7NXXWVBgDxewbh85Ebavpmcl1Hv77Uml?= =?us-ascii?Q?0XgAm/cvq+hLyc1mZzxKB51t3Uj9TagDunQPmUkVujO0BvJharJlx445dxIY?= =?us-ascii?Q?XaQZwq2ahXBkFeAyngLAk+r305+wKa+Vve1K2vjWqOSDY3N+TN/LJ12jKAsQ?= =?us-ascii?Q?9HSbxAXsx560x+DP0BTrg53d+9em6+Iemz9lDs7z5PVWUyhOVAiC5gA5jaeA?= =?us-ascii?Q?pWJ0RuYcwPSDta8BU8UitfEjFgJBOYI9NrqYb4yzdwwjLUEQfeR5TOLjLn2F?= =?us-ascii?Q?rEo1Fjj+byX5P7oNzG2mY2ffA10aSV7aX7TSdIoHG1lU4JXYYoZIghhw4UNN?= =?us-ascii?Q?238AarrQlL8AI4Y4BTLAtYs5hy0sVBQNBrshHBhoK8COa8F4qUv2VkEJpCPn?= =?us-ascii?Q?fsv+kQpjoQmKAYTkhT/+u5Rf8Un8hMUn9qe3IleBIN1kdZjPTNpkG5ZfpAdL?= =?us-ascii?Q?9Zxutq5jaBI7B4eE3JDwQsh/p/vNxstjkcX8eFU/WD3fxmQj8bWj7DBuoxjS?= =?us-ascii?Q?vLCSPdMpQY0cBHj+6zIiPHB+Am89UcyUQVTSF5eNMwA7Gw8SwYM/kUShKtvZ?= =?us-ascii?Q?jpwDxpB9ZqKn8rMqELN8FH04AzvFpgV2sklXrj2khfCjF6TsKjLj5pZkeyht?= =?us-ascii?Q?gWKWnC+JZzjCeFHbI0biCBVheTp6q4meUBSlsu6yzSfjxj1xlnWK6e33BtoJ?= =?us-ascii?Q?7u37vjPlI3o=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM4PR10MB8218.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(7416014)(376014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?tba97pnUb3SXA8JlAETIHZjtb+G7nlp5yNiCayFMmCheIScmbwH0TubckHQl?= =?us-ascii?Q?4p56xnkTk4hu4FAZTcsVP0sxpv8vHxWYR1doL8wByCCwPS3Sk2MMXI2/ApfJ?= =?us-ascii?Q?wTjUiO+/HgnJPQSCMtVR2inLtz250S16Ur4N/9aHgmJiGllXRT+FaDLbUVFF?= =?us-ascii?Q?NenBEo5QTZy0W5Zn0xBNCknqYujN61DeOENduZ+G45TNcE5MTG1J1+OfUB/i?= =?us-ascii?Q?JFTWQ+oZoKLJ1z+VMcFq2iOgZjizBsshoKF7q2aZzK3dBaBMIrlWb/Qb26P7?= =?us-ascii?Q?kaT3X/9OdS6uGKRM5uDC6xM8NlxEqC6G6jS0CYcEGY9eZZpOdO0XlNqSTwax?= =?us-ascii?Q?Qu9IjgLZvggH8EJXI8N+qolSRbcQzFD4bDP3v/40O6P+XDBsDCUmMHluxD3P?= =?us-ascii?Q?rbYG3inM6x0LX6hN4J0UcKcnvziY8qo/08PLNz2GY4q07BThdkqQlhNmKUd9?= =?us-ascii?Q?SFWrnGLVwPUXVj9tHhhIuAi+INcl5t1/G4/2mhJ8Oa0+qn5aIc6hrYxrxkGG?= =?us-ascii?Q?jCeB381JL0fAofo4snS9pmjJ3qe5aZBJ2nak89i6W2Utt/iw1FaUPkj2otmO?= =?us-ascii?Q?EulHT8uyWAaX1E7daV4EfXocOQqa4IeYWHbekCtnFkaaTXHYn5pzsMKMKDLg?= =?us-ascii?Q?uk5KhA7eeobAbEXZ0xgjiH2T0prSFtVZ/BFDK+nA/S5rgZAjXrBehzEmkq5Q?= =?us-ascii?Q?4q0447QQvQIOCbq3/IWMMUatdJiFjTeqV8Kxlmb8o8exRDmVASA6XzFf6l7t?= =?us-ascii?Q?6fVjtpKAVhGnptC0mMlGKXg7iGasPWcyIB958gJtf+u2nYcdwuNRvpghjUrN?= =?us-ascii?Q?5D4R4HkJIR7vBrOpJa5x0K9hIWJGsa2QKweVpLjleEdvHNjqja4O8kGAUlNs?= =?us-ascii?Q?McHCq/43cQg99uwEZ2p2PRfcM8Y8AW9/TvIBYoKRAlGm38z39bV79B17PHet?= =?us-ascii?Q?yqGKP5k7kZqKZaDpGUgODnnbDI+K+sjXuW6xFLHybVTg16FQ7DVmXepv5Ms3?= =?us-ascii?Q?kUbGF+LdsJJh3FwMY8nFWY3AkhQL6Nu8gWuI0eUQ14JHROY5rN6lfdtgmIFL?= =?us-ascii?Q?5zERDZS6yLrSMIoBPjE6S++lfvu+0OMKSp7Qfy19EC351Q6odYZb9YsLlewM?= =?us-ascii?Q?fgYagqgVUqCfQfW96TegbEk/Pbcq79ZgKtHfyuFlCFvFtmY/DOs34V4mRK8S?= =?us-ascii?Q?tAZXchLCqDnlxY1ogKghN2OubZjdKF5grlYcYXjRYaLT68Q163h2711EGUqW?= =?us-ascii?Q?2VI5DVCTJi7lXJjk3xVtrNePDT+iqEuuLNliqIS6Dr/l1ZP28ZzkSts8CENo?= =?us-ascii?Q?MHir+BXETraFQtC2xgnu3lf2S7IcbhIY0H8EpEOa1zMxS3Njusu5n3MmBxLs?= =?us-ascii?Q?Vk14Zf6SR+q5XnVMKZEFEyY/FtYW4s1BF5nw9A8Gjy+/eDevwwwQ+7LrKQOc?= =?us-ascii?Q?px4syMKnD5atEH932iOZhoa5JWPWb16vMTt81vnFzSV7vXOrt8ffLb3E0WLg?= =?us-ascii?Q?sCXfzqZnOvsiuG3fZMXeroBmETmTtE8Ul5aDN1hpHL1R5k/ucsIo6SV/v4xo?= =?us-ascii?Q?RFo7Wtaj3r9qIJ7pK5l4yWeGfVrZWTuzND7Wz0F7SJ+7fYV7ilOtFAPy1o02?= =?us-ascii?Q?hw=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: 4sPCf1Z/h5aFVxNUI3t1Co4pPqv0ZaLESmGpPe/2AqyXEhVeJ2Pgi29ODvWrVpvH2+QA5norv282ffyFzV44QCrlIq7hR+g9K5gIvoA0kkMckRp/BIbNt0UzESr6vdtg2iAY2+JLIikGypO7vAwbuWoCNMKrxebIUp86L+8+Er5ZKjZiCp6c3yI8s5oToeH4VqV5Au31N/DnNl+lUPOAsX7d0bIO85LbFPT9vgwAFauJT+5TfrgH8Ee8fCntX1ySI+gr69/t8FAuoe74Qrxx1Aek7hLslrqc1fhoHaxnOPWu/J4/bTXab+ftFBrCkOC7MrUpJcCL7G4ZVq37os6AfJ9HNLuC1zUbfngDtjDmLW9ivRpRDwDSZqE+Z/J4wJ88DlX7Am5OqtNBGkOV8090MRNcy3+c54e7zUDjHrn8+Esp7hh0R/UTQBj8aCUyDzEJqyWwQ8867FeWDNJBd0oFEeDnvfvLdos1a1Eyfj8s3EKDlapyzhsz//PVMeWULxVEe7kzzaIa1p9tsYw0vBnldo08fKr3CpHf3YS+vd+J0OrgKsaUDcCbL3aRkmeYF5T28iu2+92U8BkL5LQImk3xffz4BP7WL5RjEB/BZpuCamo= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: eed5b1b8-e6ea-4d3f-dd40-08ddeec880a7 X-MS-Exchange-CrossTenant-AuthSource: DM4PR10MB8218.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Sep 2025 11:11:47.7638 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: MkD8+sCiAxO0EG56FY/W61YI/t5QnwZniGkk/Uz8TKh77S8jhoHgqz8UJnNBljgZwKBXucX9Er8rdVL68gKdKm/NsjEBICwDjJbmWdN27aA= X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY8PR10MB6588 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1117,Hydra:6.1.9,FMLib:17.12.80.40 definitions=2025-09-08_04,2025-09-08_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 spamscore=0 adultscore=0 suspectscore=0 bulkscore=0 mlxscore=0 mlxlogscore=999 phishscore=0 malwarescore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2508110000 definitions=main-2509080113 X-Authority-Analysis: v=2.4 cv=ULPdHDfy c=1 sm=1 tr=0 ts=68beb9fe b=1 cx=c_pps a=qoll8+KPOyaMroiJ2sR5sw==:117 a=qoll8+KPOyaMroiJ2sR5sw==:17 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=wKuvFiaSGQ0qltdbU6+NXLB8nM8=:19 a=Ol13hO9ccFRV9qXi2t6ftBPywas=:19 a=xqWC_Br6kY4A:10 a=yJojWOMRYYMA:10 a=GoEa3M9JfhUA:10 a=yPCof4ZbAAAA:8 a=myPxDGlX7jRLdnKhP7EA:9 cc=ntf awl=host:12069 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwOTA4MDExMiBTYWx0ZWRfX1IzPi2/mzBSH NQLTB73zSYiMOqMev356n6xD93bUFENUh4Uj0WLSsNVj+FY+1Za4Y0O4c8AEhD4hSI11JQOFuks rEJ3JXYNz90+mz8LaFWbBm13ECQJSKBhcClWyctfxS8idUmD5avu0Kc5Gz4OzSobJztwxIpELtZ 2vUuPOOI/YsOFbOKM81shVVuIEngO3S4pWCXYXssYI2u99xorw2JmRyo9MAlTYwmQjLY61z1uZA bTMfsT681ov0Us2wAh0PdNSS8iRPp/ZMCGWzvLWCCAvaTJ0hLnbbr7enzzp7QOKoJKvTXcM/9R5 XAaAGeqVmD0Y55oTaTtJ6CXshkGYxCvpEUuSyOHn19mBtFBEIfKB5Aj/huIwhK7ygK/s6LOqWdZ h+yKbHhzxdJPeDegLfkQkhb0CrV+cA== X-Proofpoint-GUID: 62qJ_PJK6dKNARN2HkIbo2Fmi-nXKqvL X-Proofpoint-ORIG-GUID: 62qJ_PJK6dKNARN2HkIbo2Fmi-nXKqvL Content-Type: text/plain; charset="utf-8" resctl uses remap_pfn_range(), but holds a mutex over the operation. Therefore, establish the mutex in mmap_prepare(), release it in mmap_complete() and release it in mmap_abort() should the operation fail. Otherwise, we simply make use of the remap_pfn_range_[prepare/complete]() remap PFN range variants in an ordinary way. Signed-off-by: Lorenzo Stoakes --- fs/resctrl/pseudo_lock.c | 56 +++++++++++++++++++++++++++++++--------- 1 file changed, 44 insertions(+), 12 deletions(-) diff --git a/fs/resctrl/pseudo_lock.c b/fs/resctrl/pseudo_lock.c index 87bbc2605de1..6d18ffde6a94 100644 --- a/fs/resctrl/pseudo_lock.c +++ b/fs/resctrl/pseudo_lock.c @@ -995,7 +995,8 @@ static const struct vm_operations_struct pseudo_mmap_op= s =3D { .mremap =3D pseudo_lock_dev_mremap, }; =20 -static int pseudo_lock_dev_mmap(struct file *filp, struct vm_area_struct *= vma) +static int pseudo_lock_dev_mmap_complete(struct file *filp, struct vm_area= _struct *vma, + const void *context) { unsigned long vsize =3D vma->vm_end - vma->vm_start; unsigned long off =3D vma->vm_pgoff << PAGE_SHIFT; @@ -1004,6 +1005,40 @@ static int pseudo_lock_dev_mmap(struct file *filp, s= truct vm_area_struct *vma) unsigned long physical; unsigned long psize; =20 + rdtgrp =3D filp->private_data; + plr =3D rdtgrp->plr; + + physical =3D __pa(plr->kmem) >> PAGE_SHIFT; + psize =3D plr->size - off; + + memset(plr->kmem + off, 0, vsize); + + if (remap_pfn_range_complete(vma, vma->vm_start, physical + vma->vm_pgoff, + vsize, vma->vm_page_prot)) { + mutex_unlock(&rdtgroup_mutex); + return -EAGAIN; + } + + mutex_unlock(&rdtgroup_mutex); + return 0; +} + +static void pseudo_lock_dev_mmap_abort(const struct file *filp, + const void *vm_private_data, + const void *context) +{ + mutex_unlock(&rdtgroup_mutex); +} + +static int pseudo_lock_dev_mmap_prepare(struct vm_area_desc *desc) +{ + unsigned long vsize =3D vma_desc_size(desc); + unsigned long off =3D desc->pgoff << PAGE_SHIFT; + struct file *filp =3D desc->file; + struct pseudo_lock_region *plr; + struct rdtgroup *rdtgrp; + unsigned long psize; + mutex_lock(&rdtgroup_mutex); =20 rdtgrp =3D filp->private_data; @@ -1031,7 +1066,6 @@ static int pseudo_lock_dev_mmap(struct file *filp, st= ruct vm_area_struct *vma) return -EINVAL; } =20 - physical =3D __pa(plr->kmem) >> PAGE_SHIFT; psize =3D plr->size - off; =20 if (off > plr->size) { @@ -1043,7 +1077,7 @@ static int pseudo_lock_dev_mmap(struct file *filp, st= ruct vm_area_struct *vma) * Ensure changes are carried directly to the memory being mapped, * do not allow copy-on-write mapping. */ - if (!(vma->vm_flags & VM_SHARED)) { + if (!(desc->vm_flags & VM_SHARED)) { mutex_unlock(&rdtgroup_mutex); return -EINVAL; } @@ -1053,15 +1087,11 @@ static int pseudo_lock_dev_mmap(struct file *filp, = struct vm_area_struct *vma) return -ENOSPC; } =20 - memset(plr->kmem + off, 0, vsize); + /* No CoW allowed so don't need to specify pfn. */ + remap_pfn_range_prepare(desc, 0); + desc->vm_ops =3D &pseudo_mmap_ops; =20 - if (remap_pfn_range(vma, vma->vm_start, physical + vma->vm_pgoff, - vsize, vma->vm_page_prot)) { - mutex_unlock(&rdtgroup_mutex); - return -EAGAIN; - } - vma->vm_ops =3D &pseudo_mmap_ops; - mutex_unlock(&rdtgroup_mutex); + /* mutex will be release in mmap_complete or mmap_abort. */ return 0; } =20 @@ -1071,7 +1101,9 @@ static const struct file_operations pseudo_lock_dev_f= ops =3D { .write =3D NULL, .open =3D pseudo_lock_dev_open, .release =3D pseudo_lock_dev_release, - .mmap =3D pseudo_lock_dev_mmap, + .mmap_prepare =3D pseudo_lock_dev_mmap_prepare, + .mmap_complete =3D pseudo_lock_dev_mmap_complete, + .mmap_abort =3D pseudo_lock_dev_mmap_abort, }; =20 int rdt_pseudo_lock_init(void) --=20 2.51.0 From nobody Wed Sep 10 01:09:09 2025 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 100BD304BCC; Mon, 8 Sep 2025 11:12:38 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=205.220.177.32 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1757329960; cv=fail; b=LiQRqHNK5F/YDdV9itXYoDaqzUbxZHoFp7wSdR0yMl8j710iEbd9JLR3r/9zMUGr1zShbcVwEAU++PXQ+nXCgA/7hNdTlNw5CX0a/Xu868BOqVaWL0zLzExS2kOhHTMMcna9BQ7/Sg6YFV+HQQEqgUlpIl+vpFoa1gAOoPO3VFc= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1757329960; c=relaxed/simple; bh=lOOnlkVP+5SjgwSlSEINdbeeE03SrmTb8iJeiepZeK4=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=bKCCX4TnoOAYSrlUYU/+C6mGeepYWwTfaLx1zp7pcK+iI/67ai5T5kADtk2nzXOcgFrVFEqsKL3fvyY4ZYiaFwUODx0bl72NHnjPbBgUQflo8xHtZUyDq3B3TnbpgmFora0X3EqUq7/ioeXxLET+pezv2oGX0LaWFOdpP3+6Do4= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com; spf=pass smtp.mailfrom=oracle.com; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b=YJj8F0Da; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=FQqqNdy+; arc=fail smtp.client-ip=205.220.177.32 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oracle.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b="YJj8F0Da"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="FQqqNdy+" Received: from pps.filterd (m0246631.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 5889ie4P000837; Mon, 8 Sep 2025 11:12:00 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s= corp-2025-04-25; bh=JPxPeBWd5XW/9bcprIBGU2m+T/kb3G1NVDwRoRlwiWU=; b= YJj8F0DaHapDAXigcbTGX3iXc1iAOJMRlWQ16zW7n0m79XAZt2shGK2sL21wLIyP +tB5DMf/JE1o5UTLkR2KmajJ8EnkEMMfVkkruf7GAYJ/IHcrkiHsNrjqF+eRrPgM rFlrCjTRU31pXB3cE3fzV9RtC1zxOX6lUtgCa1/xRyiElgVBkL0LmTP0VdQHaVfO H+K/WQitkXR28NndYJ92bwEhPsQ7PNz8DBh850BdAZu9ImZZfhNZefNq956TTPVZ 5QhRfVMZ+Wm+JQ4naq2K0qrMPlQpH/rBDsw+F0VjbR1lLE/skVEd3smcYbTWxxT5 w6bcrDmGtsAXnIirw3U8aw== Received: from iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta03.appoci.oracle.com [130.35.103.27]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 491vsc04u1-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 08 Sep 2025 11:11:59 +0000 (GMT) Received: from pps.filterd (iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (8.18.1.2/8.18.1.2) with ESMTP id 588AV27K002883; Mon, 8 Sep 2025 11:11:59 GMT Received: from nam04-mw2-obe.outbound.protection.outlook.com (mail-mw2nam04on2088.outbound.protection.outlook.com [40.107.101.88]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 490bdej0pt-2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 08 Sep 2025 11:11:59 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=LPfYbFKwOSu2OQ01ET23l6P0cuY2WTkfHxPUB/G/kgsm8kTZN3olyksJvOeMJfigVr6qEUSiEEBw9v5us64iIb/k+8lEb8xTgODIdrRmP+Xoxgdau9zEt8coM/bFOvHF1P4c9xb9KflD+xHQJAM73hLrXTitGFUhNcmnoDE0bhYncQeKYZOx3NlYs82x2KUh6VIS6UOMVB4QFOS89bhANhv37+5Xx7wds/0peDVEAZqZb8ow4YwoS1r+M+Em2on68xl6n8gbmmhFGIgI0CQfz9hKtZxRi63f7ZdgMHtpGUmyTSs9HDZPKeQdQsZcnciDbL7um4uYar60g+Fv4bvtpw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=JPxPeBWd5XW/9bcprIBGU2m+T/kb3G1NVDwRoRlwiWU=; b=UUX+meXG6/0WM6oybPWAKdgBuooYQ+J90OJkvib0jdCqu7ZWG3Vu1YepsiFWYqEOYdEEdSpi7+my64kfy+H6ChTiCiuuPnfsdG/NWefDBLf35fKkA+T3UhSa2YW6rilso9Y9mOrIn66hunn1uaRe8zeXvsXhdnCuXWz7sv6z6EhDEP0uJs1gbckzZzqVVmu9NXLiqFSAPJMZ7KxveUSBWnFYp79gAvgZoeG0UHBgGREiRHHMebsw9rRGnDPhCp6SM1deaM0fSrkO7ZG0taj7avECJ/bMXO44cQDxMDrQshBFnlVP7WKhhDOKu4Q3wnprlof/p273rjlRvskgFC/W9g== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com; dkim=pass header.d=oracle.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=JPxPeBWd5XW/9bcprIBGU2m+T/kb3G1NVDwRoRlwiWU=; b=FQqqNdy+q+YMXnyKepQR6ksyVhlClbg7EJn6Y1XZYI4egUaMtvfC+tmnMN3MkrL2wUfgAytAtl9UY0kntxjwJ8GBmd4RtnChctPd9rw/4/uXyQrnIqfydD3dVbTsnDpMWz8VZCC/GO/svWbt0i+rJ9tRZcWxAAcBsl/IhFzC7GU= Received: from DM4PR10MB8218.namprd10.prod.outlook.com (2603:10b6:8:1cc::16) by CY8PR10MB6588.namprd10.prod.outlook.com (2603:10b6:930:57::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9094.19; Mon, 8 Sep 2025 11:11:50 +0000 Received: from DM4PR10MB8218.namprd10.prod.outlook.com ([fe80::2650:55cf:2816:5f2]) by DM4PR10MB8218.namprd10.prod.outlook.com ([fe80::2650:55cf:2816:5f2%5]) with mapi id 15.20.9094.018; Mon, 8 Sep 2025 11:11:50 +0000 From: Lorenzo Stoakes To: Andrew Morton Cc: Jonathan Corbet , Matthew Wilcox , Guo Ren , Thomas Bogendoerfer , Heiko Carstens , Vasily Gorbik , Alexander Gordeev , Christian Borntraeger , Sven Schnelle , "David S . Miller" , Andreas Larsson , Arnd Bergmann , Greg Kroah-Hartman , Dan Williams , Vishal Verma , Dave Jiang , Nicolas Pitre , Muchun Song , Oscar Salvador , David Hildenbrand , Konstantin Komarov , Baoquan He , Vivek Goyal , Dave Young , Tony Luck , Reinette Chatre , Dave Martin , James Morse , Alexander Viro , Christian Brauner , Jan Kara , "Liam R . Howlett" , Vlastimil Babka , Mike Rapoport , Suren Baghdasaryan , Michal Hocko , Hugh Dickins , Baolin Wang , Uladzislau Rezki , Dmitry Vyukov , Andrey Konovalov , Jann Horn , Pedro Falcato , linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org, linux-fsdevel@vger.kernel.org, linux-csky@vger.kernel.org, linux-mips@vger.kernel.org, linux-s390@vger.kernel.org, sparclinux@vger.kernel.org, nvdimm@lists.linux.dev, linux-cxl@vger.kernel.org, linux-mm@kvack.org, ntfs3@lists.linux.dev, kexec@lists.infradead.org, kasan-dev@googlegroups.com, Jason Gunthorpe Subject: [PATCH 13/16] mm: update cramfs to use mmap_prepare, mmap_complete Date: Mon, 8 Sep 2025 12:10:44 +0100 Message-ID: X-Mailer: git-send-email 2.51.0 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: GVX0EPF00014AE6.SWEP280.PROD.OUTLOOK.COM (2603:10a6:158:401::30e) To DM4PR10MB8218.namprd10.prod.outlook.com (2603:10b6:8:1cc::16) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DM4PR10MB8218:EE_|CY8PR10MB6588:EE_ X-MS-Office365-Filtering-Correlation-Id: 4b0e2d6c-d9bf-495e-a9e6-08ddeec88260 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|1800799024|7416014|376014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?7hYqVzYwkQW1Fu7g4eCuGn/tAgTIB6ETKMjje/cGAvjTGSn0UiG8ds3PUcec?= =?us-ascii?Q?6YLKxH0tsYgeLQEXxTZO2DsOYEwyAZMnTWgmNyp5Y1+AJ3OSUG6z7Sep+cxt?= =?us-ascii?Q?aX6W2wTRzJrG3WfXCKZuiCXsp8UKdeMq42nCdKcKPfDQvUQDyQmA7O15vowe?= =?us-ascii?Q?+2U39oi52WclyJviiuYN6qavmi9lvkbLCTmRRDt7A7hKXvWkb3g1nvlQqMSv?= =?us-ascii?Q?fnnfcmkQipuO6zN5UzOiuIEw3hcPtw79HTywirYUGfQ2/UBOd8pQHndGSfQ3?= =?us-ascii?Q?2ZTotKYKm9HGFW+R+AiyQmfNZ4MfC6GMj7w1iuDFFikXchxbZNajp3ujiKsv?= =?us-ascii?Q?/drk7swhDJeonNUOrFVrJQH20SJvxc6Fn7+XLreciD7IceTNWN37iau9US6H?= =?us-ascii?Q?pJ4U5mufyi9en+u0tQj0XCMgfLoXIerr/c6s9yCEs0Q/nGnU9Pwr5ICBylZU?= =?us-ascii?Q?N99VXvut7z2hI0spO92hQJcuuODfON9sMwfT7nNn3ovi/zOPSolqjW4MPPrX?= =?us-ascii?Q?s+VhJQwt7YZjUdJgyb7jnae4Ru6vlvOaVwAIChbQJo39AyW1pw03Ki9Egx57?= =?us-ascii?Q?WQbl96o6wnwox7VOBVbHF08YJjMDbKOIoFcdHTJvEm3DSkZPPDzfUN7y7dmd?= =?us-ascii?Q?SD6+N18qSpyepeeVhg4KC8QOGtON1SOkKGyOGZ2GP97MoaY4YnXUBiq4CySk?= =?us-ascii?Q?wfZlyOgFKt8M69ru9C3aMWmvwiYF03nsG5OUDacoxaUXZboYMETlCafjdx0C?= =?us-ascii?Q?h3zPxzjDkIENz1LEA+kLgWvfVEoeG7O44z5L4OyHSqQ1V10YkEKwE4F29PFM?= =?us-ascii?Q?ngNfL9xb9zU7Xx154h1AlQFolCQIUKXYwdV8yo6HWdPyISxo6pqYAb7TsQx+?= =?us-ascii?Q?e55QbFuF8MbQxWWLCN/nuWMCzzuS82867Agx4MFSbv2CcL5Y0onWD4NTDj69?= =?us-ascii?Q?XPYAhixe6Yygg2hmj+L7DfAZwSKhGXRVMVcZWGAoLMaBSiH7sZCCfbmrFFpR?= =?us-ascii?Q?5o9utFK+FeqYkaCVYNGu44jy//u+scrGVFgOV/33T97ftoz//IirkZoGjInx?= =?us-ascii?Q?KCYWl2hPXiJ6W3pxUYaljoz1T9+6MpMid8HOYkLPxblO4jTtj7LF9s7qEC1W?= =?us-ascii?Q?i/6TPZw9OFdzekJTuvyIt4EToBOVQnos7b7armxJeu9KvC/cuAB4Efy3SdsU?= =?us-ascii?Q?fe702eM9NdkvkR2qaRYF9PInSi+Xu2JtyDUg/5frZ0nDsXvxjw2mBqTDI7W2?= =?us-ascii?Q?9Dg224TZj6JLHj4Ix2KJajhG7JPpAoc/Rdt+1/40Yw7rGkRlgYMxFTlY1k4o?= =?us-ascii?Q?K+1Fnw3c1KaISeeLONbk/J5q2DpyjNMRHRyHLzTHdeKEQjNm5xYzhl14RAsr?= =?us-ascii?Q?3YW4AVX2+zoUf+yxafJIPVZRDJgk6NyM7NnvViLMSI91ev8EWD3dS1+ox+hJ?= =?us-ascii?Q?NMRjIBTyaVw=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM4PR10MB8218.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(7416014)(376014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?rg1xChbgsoNYSkpqMdZR4ZHq9Bs5BL4fll0TWh5ah6u/D6Whh0Ff36CxIuhA?= =?us-ascii?Q?GUPXX1w09AdytIEtK/21Mw0MbcfPXkOd69gHcBRbbhn6OSM4PTzxjivrSMQI?= =?us-ascii?Q?L5K+z4Nyvw+A1g2Mh8q7t94kfNGxyolfySAH9KgZ6EhNC66zyHykq20YZ4jL?= =?us-ascii?Q?j3+F0WJ7EK27QCO4JNpRLZhGx9kWxQvxfb+5dOcvB67yZijuPZy63o/Fz3+E?= =?us-ascii?Q?zGG4nIx9BgluvI5jSalSoIC6A9y5rTwb8c1HJ8PHkdEv9XWtqKBwT018Vf8a?= =?us-ascii?Q?NHigfQ35ZN/dz4/YTHtivu/Hm2Uf45OXHcsaJr97su8hTTR72smkAv9wQcdK?= =?us-ascii?Q?3Pt4eYVnPH/V96Cg7x+MvDRb6qNUWYmOnviuuWYZ7lX3hYxKTCVR1R3EBjtW?= =?us-ascii?Q?ghwLm1RAQRd9nMW6WSKJtVO1iUYCvv89hKmsna0sKFvwA2Ge9NKf2exYpmPg?= =?us-ascii?Q?5NkTay/Ep+dORsnwx9ylHw5acLIJkns/6O0Dk9WiXzEfSJ9nV5qj99/e3Ubz?= =?us-ascii?Q?Ia7g7C4bWtfXpuZ536p5nnqfZMqr8iGHI/TmXz4qQo593gFrxXW4hFKoW0K4?= =?us-ascii?Q?r0Dv61jdaYmWo33/JJnPlGHVW5mZZqOpMLGKPOvDPlsnuGAxcXh8ciNW6WmO?= =?us-ascii?Q?bCN9fHwuHWUHvXXYrcg4jP/fxfhYhArw7uxiG3xH+gyzcxNRuzFbL+C6N/Ms?= =?us-ascii?Q?ZWW2fXDUYBeMXWb5LrK2XRDqrOlYyK3lg1N7vev+/zLecVuEGK04K0GpDwYl?= =?us-ascii?Q?5NdjfyF79Dghc7nG4Hw/bLHhLNsWqhhLSuOMmhkXulYab1dFc5RqC0GHU+83?= =?us-ascii?Q?xzu9L8uQQg0+2i0Jub6je/DXc8M1c2N+LbBOZd3Cq4ZimHFNGVyQc6/RRlHL?= =?us-ascii?Q?8w4CVLubjLF9P7goRwhejEYVrvDQ1zZUwzf3tx+RtXHibLICjjwhw8j7V0qT?= =?us-ascii?Q?EVn8wwPn+4DYlT2qmUjPI/XgOEsiFXYMQ1r0QTIOSE1t9C4BpTPDaxjAGVdL?= =?us-ascii?Q?OrupTB4t1j4nkAzv5Nd76M9axS0w3RtIqhRP0HG0+562jAQjGTjUYcZ1nWlV?= =?us-ascii?Q?vD92mbOCsWKGQQMdp3K6EtTXv9HTWMJFuBtEOX/2y1Jh5lMWJPuHhX9D0+A1?= =?us-ascii?Q?onO+HW5uxriM+ez0df8Qwlpb8/YyMo8KFQfvRwaVHD5U4xb5UTo5+jhdE9Ot?= =?us-ascii?Q?E+nk2tshDY/4EzlIykAyqmkEQLX3ADgGb6E78ssmivFoGtbK2ayeuwOmPvbE?= =?us-ascii?Q?F4ElprKWO+QJAd+luYsFq1qlLp7dGaxooxgtrTpl4V/No02kEQvp36YeCAgt?= =?us-ascii?Q?zjYDi4dBCd7z6MlwB8AdRT6+hTdiwUUQV8cXw6Kn6v/VPOMp1KCcU3TGrE9d?= =?us-ascii?Q?uGUspaC6+9SdtW6xqCm/b5gnf7dHMzOLnXiSAXTvnbDVdqiJUPhAZfTk1uQL?= =?us-ascii?Q?vg04ZF6RunN0I9CfAVmWXwZvMTqJgU6/OKmkoYI83/uXI9q99KFs1tydRDwV?= =?us-ascii?Q?+9cHRJoJbGVsk7UDTlWFFNEzHjsEcbSqvVUPMPT/d32L9FUUmtix9GzbzSSD?= =?us-ascii?Q?B1HXhu0G4pF9QRgIAyOq7qd1qParsbcFgyIVdMwjMNWzvP4K+AhBXhg1hkDJ?= =?us-ascii?Q?iw=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: ABeGlWF6xHtGRVC8mPESV5myPZDIR+3ogZyQwpeBZ8mjpOy3W21WHkirP7QOCmvpAJtiHjvYycExxOouFDCZs6ueEb0Uqw1GkaVWEINr8nT6Q5rKKP5xywl9k2SHB9S3FWI/2yyqI/F2X4J9B3LlOWaQMyDgznEEv8Xxl/G9dnkmoayWaMJiThhilXL/cC5bGDqICqDDzH+YnN7vvDjW/fVlEXidnyyEAz8NGrqJE9e1qWYlCZv/Tw7bdSNlXhcGuv/NC339EVqiXnMJ8vuu/xB7yeUujYsOWu9J0QT5pdT4foBTrovksj8K+kgbbpK9aDQxiltJxi6T3oZSLfKQiK0kkBUCgv5Gl9OZtn9CPJk/DRyGv0rWmxQmaPCNjT92nrK323k2Vnk2BMo4naYHxhZVvSI4mHRQIOLD3OZxc/ib+fOQOI7aV6Qo7EJkJzsnItxbMO4p0tnh4F+1qRuZDmiTGrURIJXC6jwEoPtuSk51Nxc+WCW3sTjq4YJx2rfrB4ePAtfBo5tUqWoZw+1HzeANjfPTlqn+PBqDvzisuydn+nh4FQ3bVYhZUD5pVm9O778PfVsqZwyMs2d6QWHetfnJDFyaFPuk/U/aD3XfUzw= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 4b0e2d6c-d9bf-495e-a9e6-08ddeec88260 X-MS-Exchange-CrossTenant-AuthSource: DM4PR10MB8218.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Sep 2025 11:11:50.6477 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: INZeDwcqc+q583ip/JQP+RfjyCL9j26JrgxIVNKdqo6rRTnfscMJkY+K+ZwR6bN563+QAweexju0hf35Fcx2ALOWwdkSgQdSDoiVOrnXZ/A= X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY8PR10MB6588 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1117,Hydra:6.1.9,FMLib:17.12.80.40 definitions=2025-09-08_04,2025-09-08_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 spamscore=0 adultscore=0 suspectscore=0 bulkscore=0 mlxscore=0 mlxlogscore=999 phishscore=0 malwarescore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2508110000 definitions=main-2509080113 X-Proofpoint-GUID: jwboypc346e2vPYckrVwE6789gb8XU0B X-Proofpoint-ORIG-GUID: jwboypc346e2vPYckrVwE6789gb8XU0B X-Authority-Analysis: v=2.4 cv=JvDxrN4C c=1 sm=1 tr=0 ts=68beb9ff b=1 cx=c_pps a=qoll8+KPOyaMroiJ2sR5sw==:117 a=qoll8+KPOyaMroiJ2sR5sw==:17 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=wKuvFiaSGQ0qltdbU6+NXLB8nM8=:19 a=Ol13hO9ccFRV9qXi2t6ftBPywas=:19 a=xqWC_Br6kY4A:10 a=yJojWOMRYYMA:10 a=GoEa3M9JfhUA:10 a=yPCof4ZbAAAA:8 a=mb0LTnrAWyJ-Fku-QCsA:9 cc=ntf awl=host:12069 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwOTA4MDA5OSBTYWx0ZWRfXzwpQ7sVeC24p abgwCkfa2Dye8w5uJ5v+VS9nKyqDGhKfF97EW/wIFSNqS6MuiMCuSKiMkxsaSeWGlajbiWYizFU Gat4MsrC3vXYxh2G8RdRDHkkbU5xOvbr9aiPM5KysOpXJM0datPotuTbUiZO9co0M1tYa9vYVW8 UOVcwoD6sartzQ1A7jHFtu90es+cOMwN3vj5vI0VAHV9SZ4/cVm1WYXtmjASnLUOqtIcYfJG7r6 sdvEx+6manxNpJ2T1tS9MT/1oLAEemmfkptC4GfU1yWBDc+CEIEhv6MmyJF17+8PxoYwvd9wozX soxzCSA7UaMkBpaISR3KGAkLhfyKZKNDaRysJHxLfzBzaD6+jmnQ0IAB9DwPJdPvX7KKBbas22L lpvUE10t7YThK/Ljey1R2j/azB4GHw== Content-Type: text/plain; charset="utf-8" We thread the state through the mmap_context, allowing for both PFN map and mixed mapped pre-population. Signed-off-by: Lorenzo Stoakes --- fs/cramfs/inode.c | 134 +++++++++++++++++++++++++++++++--------------- 1 file changed, 92 insertions(+), 42 deletions(-) diff --git a/fs/cramfs/inode.c b/fs/cramfs/inode.c index b002e9b734f9..11a11213304d 100644 --- a/fs/cramfs/inode.c +++ b/fs/cramfs/inode.c @@ -59,6 +59,12 @@ static const struct address_space_operations cramfs_aops; =20 static DEFINE_MUTEX(read_mutex); =20 +/* How should the mapping be completed? */ +enum cramfs_mmap_state { + NO_PREPOPULATE, + PREPOPULATE_PFNMAP, + PREPOPULATE_MIXEDMAP, +}; =20 /* These macros may change in future, to provide better st_ino semantics. = */ #define OFFSET(x) ((x)->i_ino) @@ -342,34 +348,89 @@ static bool cramfs_last_page_is_shared(struct inode *= inode) return memchr_inv(tail_data, 0, PAGE_SIZE - partial) ? true : false; } =20 -static int cramfs_physmem_mmap(struct file *file, struct vm_area_struct *v= ma) +static int cramfs_physmem_mmap_complete(struct file *file, struct vm_area_= struct *vma, + const void *context) { struct inode *inode =3D file_inode(file); struct cramfs_sb_info *sbi =3D CRAMFS_SB(inode->i_sb); - unsigned int pages, max_pages, offset; unsigned long address, pgoff =3D vma->vm_pgoff; - char *bailout_reason; - int ret; + unsigned int pages, offset; + enum cramfs_mmap_state mmap_state =3D (enum cramfs_mmap_state)context; + int ret =3D 0; =20 - ret =3D generic_file_readonly_mmap(file, vma); - if (ret) - return ret; + if (mmap_state =3D=3D NO_PREPOPULATE) + return 0; + + offset =3D cramfs_get_block_range(inode, pgoff, &pages); + address =3D sbi->linear_phys_addr + offset; =20 /* * Now try to pre-populate ptes for this vma with a direct * mapping avoiding memory allocation when possible. */ =20 + if (mmap_state =3D=3D PREPOPULATE_PFNMAP) { + /* + * The entire vma is mappable. remap_pfn_range() will + * make it distinguishable from a non-direct mapping + * in /proc//maps by substituting the file offset + * with the actual physical address. + */ + ret =3D remap_pfn_range_complete(vma, vma->vm_start, address >> PAGE_SHI= FT, + pages * PAGE_SIZE, vma->vm_page_prot); + } else { + /* + * Let's create a mixed map if we can't map it all. + * The normal paging machinery will take care of the + * unpopulated ptes via cramfs_read_folio(). + */ + int i; + + for (i =3D 0; i < pages && !ret; i++) { + vm_fault_t vmf; + unsigned long off =3D i * PAGE_SIZE; + + vmf =3D vmf_insert_mixed(vma, vma->vm_start + off, + address + off); + if (vmf & VM_FAULT_ERROR) + ret =3D vm_fault_to_errno(vmf, 0); + } + } + + if (!ret) + pr_debug("mapped %pD[%lu] at 0x%08lx (%u/%lu pages) " + "to vma 0x%08lx, page_prot 0x%llx\n", file, + pgoff, address, pages, vma_pages(vma), vma->vm_start, + (unsigned long long)pgprot_val(vma->vm_page_prot)); + return ret; +} + +static int cramfs_physmem_mmap_prepare(struct vm_area_desc *desc) +{ + struct file *file =3D desc->file; + struct inode *inode =3D file_inode(file); + struct cramfs_sb_info *sbi =3D CRAMFS_SB(inode->i_sb); + unsigned int pages, max_pages, offset, mapped_pages; + unsigned long address, pgoff =3D desc->pgoff; + enum cramfs_mmap_state mmap_state; + char *bailout_reason; + int ret; + + ret =3D generic_file_readonly_mmap_prepare(desc); + if (ret) + return ret; + /* Could COW work here? */ bailout_reason =3D "vma is writable"; - if (vma->vm_flags & VM_WRITE) + if (desc->vm_flags & VM_WRITE) goto bailout; =20 max_pages =3D (inode->i_size + PAGE_SIZE - 1) >> PAGE_SHIFT; bailout_reason =3D "beyond file limit"; if (pgoff >=3D max_pages) goto bailout; - pages =3D min(vma_pages(vma), max_pages - pgoff); + mapped_pages =3D vma_desc_pages(desc); + pages =3D min(mapped_pages, max_pages - pgoff); =20 offset =3D cramfs_get_block_range(inode, pgoff, &pages); bailout_reason =3D "unsuitable block layout"; @@ -391,41 +452,23 @@ static int cramfs_physmem_mmap(struct file *file, str= uct vm_area_struct *vma) goto bailout; } =20 - if (pages =3D=3D vma_pages(vma)) { - /* - * The entire vma is mappable. remap_pfn_range() will - * make it distinguishable from a non-direct mapping - * in /proc//maps by substituting the file offset - * with the actual physical address. - */ - ret =3D remap_pfn_range(vma, vma->vm_start, address >> PAGE_SHIFT, - pages * PAGE_SIZE, vma->vm_page_prot); + if (mapped_pages =3D=3D pages) + mmap_state =3D PREPOPULATE_PFNMAP; + else + mmap_state =3D PREPOPULATE_MIXEDMAP; + desc->mmap_context =3D (void *)mmap_state; + + if (mmap_state =3D=3D PREPOPULATE_PFNMAP) { + /* No CoW allowed, so no need to provide PFN. */ + remap_pfn_range_prepare(desc, 0); } else { - /* - * Let's create a mixed map if we can't map it all. - * The normal paging machinery will take care of the - * unpopulated ptes via cramfs_read_folio(). - */ - int i; - vm_flags_set(vma, VM_MIXEDMAP); - for (i =3D 0; i < pages && !ret; i++) { - vm_fault_t vmf; - unsigned long off =3D i * PAGE_SIZE; - vmf =3D vmf_insert_mixed(vma, vma->vm_start + off, - address + off); - if (vmf & VM_FAULT_ERROR) - ret =3D vm_fault_to_errno(vmf, 0); - } + desc->vm_flags |=3D VM_MIXEDMAP; } =20 - if (!ret) - pr_debug("mapped %pD[%lu] at 0x%08lx (%u/%lu pages) " - "to vma 0x%08lx, page_prot 0x%llx\n", file, - pgoff, address, pages, vma_pages(vma), vma->vm_start, - (unsigned long long)pgprot_val(vma->vm_page_prot)); - return ret; + return 0; =20 bailout: + desc->mmap_context =3D (void *)NO_PREPOPULATE; pr_debug("%pD[%lu]: direct mmap impossible: %s\n", file, pgoff, bailout_reason); /* Didn't manage any direct map, but normal paging is still possible */ @@ -434,9 +477,15 @@ static int cramfs_physmem_mmap(struct file *file, stru= ct vm_area_struct *vma) =20 #else /* CONFIG_MMU */ =20 -static int cramfs_physmem_mmap(struct file *file, struct vm_area_struct *v= ma) +static int cramfs_physmem_mmap_prepare(struct vm_area_desc *desc) { - return is_nommu_shared_mapping(vma->vm_flags) ? 0 : -ENOSYS; + return is_nommu_shared_mapping(desc->vm_flags) ? 0 : -ENOSYS; +} + +static int cramfs_physmem_mmap_complete(struct file *file, + struct vm_area_struct *vma) +{ + return 0; } =20 static unsigned long cramfs_physmem_get_unmapped_area(struct file *file, @@ -474,7 +523,8 @@ static const struct file_operations cramfs_physmem_fops= =3D { .llseek =3D generic_file_llseek, .read_iter =3D generic_file_read_iter, .splice_read =3D filemap_splice_read, - .mmap =3D cramfs_physmem_mmap, + .mmap_prepare =3D cramfs_physmem_mmap_prepare, + .mmap_complete =3D cramfs_physmem_mmap_complete, #ifndef CONFIG_MMU .get_unmapped_area =3D cramfs_physmem_get_unmapped_area, .mmap_capabilities =3D cramfs_physmem_mmap_capabilities, --=20 2.51.0 From nobody Wed Sep 10 01:09:09 2025 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 429703054D5; Mon, 8 Sep 2025 11:12:44 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=205.220.165.32 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1757329966; cv=fail; b=pE5scbWtFnOuW6depyYM2mQV1cpCezEUNTkzer4tdG7VeGex6jsvMKlynFXvHBsv1lHP1C9k1Ei7T9Qyi5w3q7oulaKMbyPfep+loMixFOYeXv/NL8LGp00pys4A4W5EIX8ExlBdGK701Ucoxev7kKVJ3k0eSvGeZabzJrGTwnc= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1757329966; c=relaxed/simple; bh=IFnuN2dUY0JZfvz159EotMEvyltngveIXsw/CW5vu8U=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=RH7p6k32PcAJh/LUcUgf3zJKcFfWgjd72ql8mM6EUX9MtxAWXHS4y14j1ZWOSeWIXapAkHTAQ8NgQIK1m+ZEnCBG8oKZ3WyC42F3uKvFKQ005ErvH3W958fgr3lsuSdXPhr4KOrD8YSogUCF39GqUfSc2ri2zwEkKR5PqZtOb7Q= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com; spf=pass smtp.mailfrom=oracle.com; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b=nS4/dgSm; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=Pai6d2wD; arc=fail smtp.client-ip=205.220.165.32 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oracle.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b="nS4/dgSm"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="Pai6d2wD" Received: from pps.filterd (m0246629.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 588AAtRC006140; Mon, 8 Sep 2025 11:12:02 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s= corp-2025-04-25; bh=D+bpbz/XEdoOaD7LAAFqLvV2lRa6jeLRy5YT4ab+R0c=; b= nS4/dgSmJ9phkEQJQ0zvw+kVfjuFIT/sM0DipKa+A+GCVvbBDNe+7JUEOZ81jEf/ Fg1VBVYrThgijajxgvXUQRqkolc4iPDGckfENG5CoLM/s98Liqv9JKEqwOe1a8LK ZHwYvihY/+YILyZJdiseAE5mX1zZLCRyU9sZyY/yBxkf0pfGTOqeO6PXPLHu+xU7 1gI3C3U40N21fBvlpqXI+DeTkNLmRc30Vmg9kpGMKqMcQRwHczi0X3XACfWjhooj 6EincTNC7jWTA+Xi2WSMTd7XbMTgMiWFqrU0RfaESMSGci/0KDFs5+OjNng4q5d4 EWbQPVwYA0NIxGptQrxocg== Received: from iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta03.appoci.oracle.com [130.35.103.27]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 491w5402xx-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 08 Sep 2025 11:12:02 +0000 (GMT) Received: from pps.filterd (iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (8.18.1.2/8.18.1.2) with ESMTP id 588AV27M002883; Mon, 8 Sep 2025 11:12:00 GMT Received: from nam04-mw2-obe.outbound.protection.outlook.com (mail-mw2nam04on2088.outbound.protection.outlook.com [40.107.101.88]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 490bdej0pt-3 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 08 Sep 2025 11:12:00 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=wkhVU5Jv21tzlvyDNuWRXXqt3a6DIIXgLzIYvo40iJ8wEoVuv/gLpdpX6aYBAslxTeB9ERkz2FQnVyElcCEwT5EfsDikKHnvrpiAXLYluQ+/udZPbFiQAm4HTxXm6+lc0HSlso9hqaEoWA5H5NlsHiPY/8zi775NmWfhiXPIo7c7sjwX0izjY/sBa6z1ajO4K70aw/WnJ1EmflqHbEw+/OE911XtP5YuEHkPenrX0YCZ9AwJaCrOl+iCWiTmZ78Ymp1NETOEJ+AaCdAdINAjT4Knn9o5jIju4k1AA+BIsstUPkndfjKwQ7O970pE4b8hsCZShBA865DxX+GGdSwO6g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=D+bpbz/XEdoOaD7LAAFqLvV2lRa6jeLRy5YT4ab+R0c=; b=oxcJxcCpD08AUgS7aB081NYsj7n+z99pQmjehxp45olEUUvPXySk2fJBmudBCJEx9q3ZiSbGO4+0uRfsLZvrCGBA1amlb3eIlb2KiPQgZ7BZ37sCdVvtaNV5hNrT0Sflo1wioSVz4EA+jB3LMyF96kMxg+lePyayytuvh16j8L1rMUHZgT0U3oP+ndMNSw27U5zPJYUCx1ZMfdFlXJhHndR8frYaSWH2jDUvwLOpLdMB7y3CizcXFyc8j+v+0kKrZ/FGGwli4solfx3ZrfFyc99oTbHZrYUorfPeHtxS5DWs/qDntPwBEwBck9MHKfJZ10IYagqzwUF5herwPhZwnw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com; dkim=pass header.d=oracle.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=D+bpbz/XEdoOaD7LAAFqLvV2lRa6jeLRy5YT4ab+R0c=; b=Pai6d2wDXziDWB2yncVYGJjKZLeoAq4Fr+Qk23G01f+pTMul8mEFMRzGwYfjIBPsnKr4uAtN+zyelFmnAjwEpekE+gX0gB8Y6l72V7mPMFmwccVIiGUP36IqHs0bcNXYhjsWel3TQaxV6ZOcux7NYfIiCw73+LpQXw9+80LwZMk= Received: from DM4PR10MB8218.namprd10.prod.outlook.com (2603:10b6:8:1cc::16) by CY8PR10MB6588.namprd10.prod.outlook.com (2603:10b6:930:57::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9094.19; Mon, 8 Sep 2025 11:11:54 +0000 Received: from DM4PR10MB8218.namprd10.prod.outlook.com ([fe80::2650:55cf:2816:5f2]) by DM4PR10MB8218.namprd10.prod.outlook.com ([fe80::2650:55cf:2816:5f2%5]) with mapi id 15.20.9094.018; Mon, 8 Sep 2025 11:11:54 +0000 From: Lorenzo Stoakes To: Andrew Morton Cc: Jonathan Corbet , Matthew Wilcox , Guo Ren , Thomas Bogendoerfer , Heiko Carstens , Vasily Gorbik , Alexander Gordeev , Christian Borntraeger , Sven Schnelle , "David S . Miller" , Andreas Larsson , Arnd Bergmann , Greg Kroah-Hartman , Dan Williams , Vishal Verma , Dave Jiang , Nicolas Pitre , Muchun Song , Oscar Salvador , David Hildenbrand , Konstantin Komarov , Baoquan He , Vivek Goyal , Dave Young , Tony Luck , Reinette Chatre , Dave Martin , James Morse , Alexander Viro , Christian Brauner , Jan Kara , "Liam R . Howlett" , Vlastimil Babka , Mike Rapoport , Suren Baghdasaryan , Michal Hocko , Hugh Dickins , Baolin Wang , Uladzislau Rezki , Dmitry Vyukov , Andrey Konovalov , Jann Horn , Pedro Falcato , linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org, linux-fsdevel@vger.kernel.org, linux-csky@vger.kernel.org, linux-mips@vger.kernel.org, linux-s390@vger.kernel.org, sparclinux@vger.kernel.org, nvdimm@lists.linux.dev, linux-cxl@vger.kernel.org, linux-mm@kvack.org, ntfs3@lists.linux.dev, kexec@lists.infradead.org, kasan-dev@googlegroups.com, Jason Gunthorpe Subject: [PATCH 14/16] fs/proc: add proc_mmap_[prepare, complete] hooks for procfs Date: Mon, 8 Sep 2025 12:10:45 +0100 Message-ID: <81d1c8ba935dffa6f0a82a5a5ecab6e80f90e6c0.1757329751.git.lorenzo.stoakes@oracle.com> X-Mailer: git-send-email 2.51.0 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: GVYP280CA0032.SWEP280.PROD.OUTLOOK.COM (2603:10a6:150:f9::12) To DM4PR10MB8218.namprd10.prod.outlook.com (2603:10b6:8:1cc::16) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DM4PR10MB8218:EE_|CY8PR10MB6588:EE_ X-MS-Office365-Filtering-Correlation-Id: 899f12fc-cf09-4d60-18b7-08ddeec88467 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|1800799024|7416014|376014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?XZ30NbbafGroP4mhBMd7BB93CREFdQ9dafNxNkS1l2a8KQ5SAfUTPISP6Eqy?= =?us-ascii?Q?vGhXGHD3VCVtpqKBc9jluW9SzDpROYPg+puVTZB6JR2g8KjU+lb3UA8t8UML?= =?us-ascii?Q?B/n7ZQDetbQvg71ouRHhpZHJKwQ5I+KMVuPjZM/Nr0KHyfLkt3q9ABC/mMoB?= =?us-ascii?Q?tFomjBdiV2Jf7gjtpEvgHmqdKn1N/mGQmRksK4aOnJHqEEW5Ro0pa/TJ+gys?= =?us-ascii?Q?Tpi8lvPEdcCMihw3tuH9NWQbzBJ4Gw3QpdieeO3sg1iy6l2RNLKiUdA2QFM/?= =?us-ascii?Q?rHPc0XbirkHwf0oEkk7pnoJVqq3MsaEy3D3f3mEzhlziBtvBF/rpR3EvH+Vb?= =?us-ascii?Q?hd7KkJMjEfm/JcUi8DJIzD/RigXVchyBt4//2ajfpJWU3zpqJjuvp2galm8j?= =?us-ascii?Q?dm+r2y6KNc9RxeStLWZHhNIzExrd9/1mC67NhdXBDfudXKKF0QSO8ydE4nS5?= =?us-ascii?Q?ujS79gouXOzwOPFseRiK/eSRWgbFzjKgm+R4WtInTaBEVQL6Y1eWIFpA7dYw?= =?us-ascii?Q?xjl8itvlXnAgwr4rh1obCCrHmzBKLxadYYK3n1Hs69udFMgB+U7wibJHtMUI?= =?us-ascii?Q?pldhuP9z+kCSircuL/ExDDG3jQDD8l+34iQMs2x2uEheuGocg4Y6KwP5ARQ3?= =?us-ascii?Q?I9SD65UYw8HQuSsJjmu+1gaB/LnKOx9hKUhJWViMaD9JmHo0ZU4B0UwIKjB4?= =?us-ascii?Q?UUDh84l+G1UgYn5upCqX4JvkOOBQ+kiGnTXilvjCVxuS4CiBqdAOXq/CaIFm?= =?us-ascii?Q?KHt6C5R1NqJHih0GO4rUa8AzHbY9yn81IuxGdhWXbBkNgP87ti9S8OCE1K3l?= =?us-ascii?Q?rkrnoAVYyh9y1kqXYPWdtOUOniTe01//yP6NXX7QU125iqhqIH1IG/Q9vyDT?= =?us-ascii?Q?l6X5Iq5cUruddw7WA39KRIuXJYKcKljK7ucfK2c5DRRF85TcXAiApM0ENuRK?= =?us-ascii?Q?9pGukzz23HVF6pBlMCW4jorzLrWv7JSY4KDg4Mp9iKT2r6GSSl+ZPKOXF8tg?= =?us-ascii?Q?+13PtGBnFeb5He0Qr0ljqeuispXC7LAn6UjiIy/XL5sGbqlKj7I46dGlUduo?= =?us-ascii?Q?P/ig6845iexA2ABFvfmX4WEhq9MGQGn2xgxs8yZUx+fM6K9nOSmlDJmPeVWa?= =?us-ascii?Q?SU+PIdEGnpBtozQtuv4jECXFZzcsIxy9hBq4t91k01T0pHJe1U093QYbnGD6?= =?us-ascii?Q?NVvigGX5oA3i1bXPVb+BxHMXUphXTT3OrgP0HCgSxY5TysGDkyMh5tgjLhFm?= =?us-ascii?Q?h1iLzQisZ8oAEShgwn3rESm9A35foftyGJMHozBp52Cs97Qs8siR1JuEanCK?= =?us-ascii?Q?9t7U7okue2CGqRSjm+bti+N/4ajHfEPpEAA4NguxYafgaeFpjpPUha5GZ3LI?= =?us-ascii?Q?I3i5ilCqdQc2oic5QmD+Xd05ST+nXlj9te6MuZKsIBkOuKeoLk3hybyAyZ4n?= =?us-ascii?Q?JPJZYeRs7so=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM4PR10MB8218.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(7416014)(376014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?ZrVBvfjed+t/wJSQ6vtDZLXDpptcD4TwJ71wHqy4pHsGa7D4yUYot+CtPr/9?= =?us-ascii?Q?tdUCOIpHBP4y1RlCGceSQuZ7oDD7gpSmklsBFjp0iV6IJ8owAmmcX7i68Z3+?= =?us-ascii?Q?jq38aIWADUlJ4f6bOX09AGAWPBUmxXvNaqi5Q7m/MdCpHmCK453dFz1QkAUC?= =?us-ascii?Q?1gImaDrxoDUpvEDfJJuyLBkzZVanXwxThG71TUFkwYYNzElbKLftBDEVo0mT?= =?us-ascii?Q?PhOpBLYuQatlsZne54roGeBqakP6/2uRfWs2XlvtsoEsG4yqT+SqTXZALXsV?= =?us-ascii?Q?zGWmXIk1umDQxAEy2MAwj1PnIbS/4M2yGfSXUn7o38z/sz23llxzi9vpGDPi?= =?us-ascii?Q?Fb5Li4jFIKFNJvMqOCD5Xz/VVoVYT+4vGWDGozc9OhULIW2yt+il9RvcRC5n?= =?us-ascii?Q?RTVm4Bs1YnOfHDzzZ7z32zKSnplNZ4CpZWK0ei3iNcUcNAxguQq+kXgXMBDJ?= =?us-ascii?Q?zEVVKiQjY77dZVApzBDFVRuAfdvHYP3fmUt7BDCa/AKte60Ju3HoaCMMRK7o?= =?us-ascii?Q?WCAAV4UANi5aDFQkSkPffeREBNzOoRK0I1tj7C71QVRnCXFVDaaOR6Tr+5P4?= =?us-ascii?Q?8wMfgFz0e7NKDQu78AzelVBeNRvtjxuKcf8AlHb4A1bpAhxO7Dd9Opb1MUiA?= =?us-ascii?Q?BEj4rEGvtMbqdzj1cFSA0tOWh9SSuKsPjtjT5KKW12VFmiR0LowR5lsPNxr0?= =?us-ascii?Q?ZnoiNK/71RFkMFI0Yn4jsX6nnEgOcnoT0uYoMZy7ZynF1nNwlCr3ODaUTQJP?= =?us-ascii?Q?GEylTF1ywLRkRQjLjjyyDXI/fbpASI6pIunGaElc8WY/cpixuhCNygWvi92m?= =?us-ascii?Q?Rw+9qbLEB565k7JYaSEZSrh/yw7/vQhl1MpMS8GSrShe9IsXXeyrhxyZZR17?= =?us-ascii?Q?dDpNwCZBfrA7dGbq5fHwNwwqKEM7CVruwHO71nB3SGekalukfG1r+M04a3jl?= =?us-ascii?Q?EG9gaeBPZQRQHXIhfsRnA7SCA3pgqYijQHAzo1+IhfE+PAQSbHzBBgOWWjAz?= =?us-ascii?Q?x2IRR7/iAZmWhZ9LDSy8N0wvBcgcfqY/nv+gABFIST6I5xp6S/6HC8e/LAqT?= =?us-ascii?Q?hZD9ZYoKtKdrW+4cwh3BG8W3tRjnPYpoWhwSmL/26zDRndxT5/s6FfFey86C?= =?us-ascii?Q?otVthygJIDMYJausGWUwVzKEdUue3+YONc+4fGUgBlfBNbgaiHLmGpWRYDQ5?= =?us-ascii?Q?njM8Dfi0/8tkuGMhwoVOQ2Ih+FsxOULog+vgHiy00BktIa1kvKqsYPcgU30B?= =?us-ascii?Q?zwqr6g9WaK/ZHQK3BNdcGaVlGo5Y9GYGRsg3/LjrnNyxqae2hGl2eBZUgN3Q?= =?us-ascii?Q?Ths74w1js2xX9++PMquqM7I44BAida34200sZxuzK03sxMRC5W+2lSgAe4vW?= =?us-ascii?Q?Wt7M2qZYkmwPactiSOZcrsQ6/oFV798Ep5OUmfWuhDy1QNomVgNfL3b9MC9Q?= =?us-ascii?Q?OilG7GDxLOOgocu8PqfQRVSE3vJpZhL94G865Zn8BWF7nfXnsPMqecHdoWC3?= =?us-ascii?Q?yNn2Lv+vsr1+K4Z3BUggZsVlH7LJaefLX8QVlBdGo3JcbTQOy94Q2K+GtqMc?= =?us-ascii?Q?OlK/0wLW07ImjckHlX/LM2zAJtn/yKFvVI5r4GiVkP4RUCst/cTsYtt4pCAv?= =?us-ascii?Q?DA=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: VgULIEbYXUJne80QErnAPLxdNl1wPJVc4xzLYnZQquIlp7CoCB3PuqiRbj0MZUPw2KBDoRWg8gmCXJ99xNWMFRgjoQn91xAqa7N1VbLuLvuUdlpS8RUEc6/TnaGr/hV3MYtMXqGX+FqkwlSh+K8fHsfwd/UCP08/pFurua2vUV88N935tD0KbwhVNr6a4eCoM1FkOmzCO3xPEGyCvfvqvnQwXec0JiU0UDHDbhHoQw5PqCnOFUoz90eQvwTYmNvS+fkQV47Jq8KWjlg55wVKKDR0IrqwW7QfbybUPWlrqbjTEk0m3TTEFWQV8pZ+fyNUiTCKI59FfRetLek92KAebrkGIymsi0i/ESlnah6t+Vcgoz7a4cbXFFBHNx+X6fZnxcwGzwkhPZZd9epnm+WgKUs5dPGYTDNPUyrNGQRZgno/AgzUI2IVpfWtheWb0dNwTR+zllCzfPDpN7Xag1us78aqACC1qhWgO9cXys299TC3bMT55qvZY3Hlzhe7RSk09NREhO6pCE04WS4daX0pUGmVSXDqU5Tb3i0tG0xPgw6Qt/abaWOHxN4bwKTlG8R5OWiMmZFN/ecGDB7hKgjT/xAX2jnHr/OjvSMvTaBi1Ok= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 899f12fc-cf09-4d60-18b7-08ddeec88467 X-MS-Exchange-CrossTenant-AuthSource: DM4PR10MB8218.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Sep 2025 11:11:54.0802 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 4BJ9agbVsjr2ieAvOd77ssaKPp7TcbPODqxvX+/tbrXE1iLProwCCdEMSvLrlB1zcOHglvahaR1SGI7eK7SnGAHFYnC3jMQz1uAGj90HkOw= X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY8PR10MB6588 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1117,Hydra:6.1.9,FMLib:17.12.80.40 definitions=2025-09-08_04,2025-09-08_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 spamscore=0 adultscore=0 suspectscore=0 bulkscore=0 mlxscore=0 mlxlogscore=999 phishscore=0 malwarescore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2508110000 definitions=main-2509080113 X-Authority-Analysis: v=2.4 cv=M5RNKzws c=1 sm=1 tr=0 ts=68beba02 b=1 cx=c_pps a=qoll8+KPOyaMroiJ2sR5sw==:117 a=qoll8+KPOyaMroiJ2sR5sw==:17 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=wKuvFiaSGQ0qltdbU6+NXLB8nM8=:19 a=Ol13hO9ccFRV9qXi2t6ftBPywas=:19 a=xqWC_Br6kY4A:10 a=yJojWOMRYYMA:10 a=GoEa3M9JfhUA:10 a=yPCof4ZbAAAA:8 a=-GIxZWhuOg30-HT1v9gA:9 cc=ntf awl=host:12069 X-Proofpoint-GUID: r0nroLL-q_QDpQPDbGD_YPcSiOcqKRmg X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwOTA4MDEwMyBTYWx0ZWRfXxcVdzVUvsLiT HanA/yCV0k/w7k1II9LbdRwafr99qxtRmmaq20EMKyc+Kx7xNJzB+LF6kVoeKXEtCaZpjxZt3Cq n5dJ2+LsimibYPC+DyqV0WuHrXCbFuyCgcfW6Yfob2b+Bj8R9cJBwTKzv9/sUaY/EN8u0Fqbfnp gf4gS6usjvQfUxOn0T85BT+6pL5HuJ2QnBmGUwi/9mZmxSIBPfPTAqDgjXerr4IleAEVpf0QAG1 msFa6gZaW+1uC2eiPAzrj+Iakyr58vVf0pZdwADfCIOWOaPWHIPQbC4C2Oh6FWDqhPNKktAlp2c d203JzXSZNI/IE9TdcHV7rrDsvX9hp9F4j5LLP0dF2/40JCtFUM7Dh9y1DIBM1wUccy8gKHWQAH s9pyceSuP0NYpzZQnQouTdGkbRousg== X-Proofpoint-ORIG-GUID: r0nroLL-q_QDpQPDbGD_YPcSiOcqKRmg Content-Type: text/plain; charset="utf-8" By adding these hooks we enable procfs implementations to be able to use the .mmap_prepare, .mmap_complete hooks rather than the deprecated .mmap hook. We treat this as if it were any other nested mmap hook and utilise the .mmap_prepare compatibility layer if necessary. Signed-off-by: Lorenzo Stoakes --- fs/proc/inode.c | 13 ++++++++++--- include/linux/proc_fs.h | 5 +++++ 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/fs/proc/inode.c b/fs/proc/inode.c index 129490151be1..d031267e2e4a 100644 --- a/fs/proc/inode.c +++ b/fs/proc/inode.c @@ -414,9 +414,16 @@ static long proc_reg_compat_ioctl(struct file *file, u= nsigned int cmd, unsigned =20 static int pde_mmap(struct proc_dir_entry *pde, struct file *file, struct = vm_area_struct *vma) { - __auto_type mmap =3D pde->proc_ops->proc_mmap; - if (mmap) - return mmap(file, vma); + const struct file_operations f_op =3D { + .mmap =3D pde->proc_ops->proc_mmap, + .mmap_prepare =3D pde->proc_ops->proc_mmap_prepare, + .mmap_complete =3D pde->proc_ops->proc_mmap_complete, + }; + + if (f_op.mmap) + return f_op.mmap(file, vma); + else if (f_op.mmap_prepare) + return __compat_vma_mmap_prepare(&f_op, file, vma); return -EIO; } =20 diff --git a/include/linux/proc_fs.h b/include/linux/proc_fs.h index f139377f4b31..3573192f813d 100644 --- a/include/linux/proc_fs.h +++ b/include/linux/proc_fs.h @@ -47,6 +47,11 @@ struct proc_ops { long (*proc_compat_ioctl)(struct file *, unsigned int, unsigned long); #endif int (*proc_mmap)(struct file *, struct vm_area_struct *); + int (*proc_mmap_prepare)(struct vm_area_desc *); + int (*proc_mmap_complete)(struct file *, struct vm_area_struct *, + const void *context); + void (*proc_mmap_abort)(const struct file *, const void *vm_private_data, + const void *context); unsigned long (*proc_get_unmapped_area)(struct file *, unsigned long, uns= igned long, unsigned long, unsigned long); } __randomize_layout; =20 --=20 2.51.0 From nobody Wed Sep 10 01:09:09 2025 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id CEBDD3054C9; Mon, 8 Sep 2025 11:12:43 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=205.220.177.32 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1757329966; cv=fail; b=jfGx0T1Q/zkaoF9WVBVd2R8Zh37W18Y1Xgxmz30IbAxpUkx2Gqn4l4jaW6Ce8opdhK23RJwX3XDI1bQMc5LN7xZan2fEJrDdBt8lVdq3WHln4732sHJyJtUi2WupNq2qi9mQ4AI9Ma7TR1x3vkiN89jZBodq+Hx2JSeLkrXVZhI= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1757329966; c=relaxed/simple; bh=yXA5D/w7hxblrJN507b/ggzD1SFekBq4lqbF6mrV/7I=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=JvopPUcycuXN8gd/nADfEkWB1Sbwy9Lr/EAlAIoYux4K9NktXYwUgUj2x9tYsnabruF3ImO3jZUTOAlhIJqzdaZobb254ezeHFte3hWm05uCiCHJ0n3ZoRd08F7uPI+nA9pedsUeDGHYMWtQPzq8JubGez2bUBjmBcp6b99Lzyg= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com; spf=pass smtp.mailfrom=oracle.com; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b=L6SAtgzW; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=Bq47YZ1h; arc=fail smtp.client-ip=205.220.177.32 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oracle.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b="L6SAtgzW"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="Bq47YZ1h" Received: from pps.filterd (m0333520.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 588B9FOQ008065; Mon, 8 Sep 2025 11:12:03 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s= corp-2025-04-25; bh=9asM2VWDRlwAf2y5E9FZCCSijbXu0rYS4DVguFpaS3U=; b= L6SAtgzWpeRixpKUqALNRMuyfxnqYec915+06+/GY70ylzzA82J6dkPcVbFhYk+x Dx4Q25y6tuCjuRmy/V0DZjapUlQPZUvx7R3UUW+p1b/bOWOeurhOumtQdc4Qvh83 Gv1Ag0KZUwFd5oNivpviK106D5PtYu1YAUTZvwDZ2orOH3PDEY6V2AY9zV6w4+XU 7lzZKKkx3ZRzS0rk30soGZ0NTPQ9lmVIyvsD3JQqp/iGSyPwfRBfrEJk07CsMI8v nMSoF3l35fYNQjTalyq6HyWuujbld4KrMy+wcSUzxXwW9rYvoH7DQ1rJF3ru9d03 RWbjI9AeRd4k8t+VaLEjOw== Received: from iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta03.appoci.oracle.com [130.35.103.27]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 491x16g04v-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 08 Sep 2025 11:12:02 +0000 (GMT) Received: from pps.filterd (iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (8.18.1.2/8.18.1.2) with ESMTP id 588AV27O002883; Mon, 8 Sep 2025 11:12:02 GMT Received: from nam04-mw2-obe.outbound.protection.outlook.com (mail-mw2nam04on2088.outbound.protection.outlook.com [40.107.101.88]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 490bdej0pt-4 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 08 Sep 2025 11:12:01 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=pxe0lcKK58jL0bDVPBbHE+hfL5tLDtZnH6qhG5ysyPJbIfRCFyjLjdcE1wUoE2+qtyBx5WtIZfRGnmaJODbjX2R4TGbjcsQpdFjs19jmMfBXceoxIJHAQt7MfFmEL3dsZT33NUcTB5Lz+b96QrOf8hYs/now0P8QMmroKs7A2fKjkzliR47eXbkK+ZbGsf8ZxE1Yz2KjAaC/kKJl6Vb2dN4A2kahL72QwRcEHSR3DiFfznUm9raOKHHHxwY7imf1DQY+s2VcC0xFKxKYqCnJDScE1H/4BXA8gGAt7jYJFcprwmn55/WZOq1sJbGM5vC1NOVPiSUTtSEYNAnr627/Eg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=9asM2VWDRlwAf2y5E9FZCCSijbXu0rYS4DVguFpaS3U=; b=l24JlOTnu56gqY9wE4Q7ZcM00Sj2+87+z8u60cC8KHsfetXn3CM6DsDpfH7RFPXYKUN/PhDqQQbPECVyrn683CueXe6NswalAf/jSMgA0Bo1jeCbcYVvm2UxWp5n8cCJAwzvJWkAFeDT9J3Lp75faL1uYefrFYKGfSGrxoIEAk80ZJ3gF0LceXwDUc+sAft5TU+aynD4u+kxeKn3trxQjFFhdXkKUZ9f13sQIdeehYWKgXhJWVMiOp2dq0gv2WR0iCrJ97O2bTRQtsE3vUmmw4jZ+WmGqGRhPp4dt1Lz6jE0WaoSDPj7TOb5zSgzyWBqo/8DJX/0LlMt2IhInifP4A== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com; dkim=pass header.d=oracle.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=9asM2VWDRlwAf2y5E9FZCCSijbXu0rYS4DVguFpaS3U=; b=Bq47YZ1hNm6ADcUpGdYATu8QDPO9IvqiTZW4i7KYplmGwvr6is4EfAini2mMid5mNrNSjEdyQkNm2Ot5f8Ti+eOU+eCEAH0l0mwu6He/q1pBHv3mkcd2PccQs/7lXKtSaWaXHsGcPDVK96sKReXPrgShcjVUIG5pu6xssFgEJ44= Received: from DM4PR10MB8218.namprd10.prod.outlook.com (2603:10b6:8:1cc::16) by CY8PR10MB6588.namprd10.prod.outlook.com (2603:10b6:930:57::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9094.19; Mon, 8 Sep 2025 11:11:57 +0000 Received: from DM4PR10MB8218.namprd10.prod.outlook.com ([fe80::2650:55cf:2816:5f2]) by DM4PR10MB8218.namprd10.prod.outlook.com ([fe80::2650:55cf:2816:5f2%5]) with mapi id 15.20.9094.018; Mon, 8 Sep 2025 11:11:57 +0000 From: Lorenzo Stoakes To: Andrew Morton Cc: Jonathan Corbet , Matthew Wilcox , Guo Ren , Thomas Bogendoerfer , Heiko Carstens , Vasily Gorbik , Alexander Gordeev , Christian Borntraeger , Sven Schnelle , "David S . Miller" , Andreas Larsson , Arnd Bergmann , Greg Kroah-Hartman , Dan Williams , Vishal Verma , Dave Jiang , Nicolas Pitre , Muchun Song , Oscar Salvador , David Hildenbrand , Konstantin Komarov , Baoquan He , Vivek Goyal , Dave Young , Tony Luck , Reinette Chatre , Dave Martin , James Morse , Alexander Viro , Christian Brauner , Jan Kara , "Liam R . Howlett" , Vlastimil Babka , Mike Rapoport , Suren Baghdasaryan , Michal Hocko , Hugh Dickins , Baolin Wang , Uladzislau Rezki , Dmitry Vyukov , Andrey Konovalov , Jann Horn , Pedro Falcato , linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org, linux-fsdevel@vger.kernel.org, linux-csky@vger.kernel.org, linux-mips@vger.kernel.org, linux-s390@vger.kernel.org, sparclinux@vger.kernel.org, nvdimm@lists.linux.dev, linux-cxl@vger.kernel.org, linux-mm@kvack.org, ntfs3@lists.linux.dev, kexec@lists.infradead.org, kasan-dev@googlegroups.com, Jason Gunthorpe Subject: [PATCH 15/16] fs/proc: update vmcore to use .proc_mmap_[prepare, complete] Date: Mon, 8 Sep 2025 12:10:46 +0100 Message-ID: X-Mailer: git-send-email 2.51.0 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: GV2PEPF000045C5.SWEP280.PROD.OUTLOOK.COM (2603:10a6:158:401::43c) To DM4PR10MB8218.namprd10.prod.outlook.com (2603:10b6:8:1cc::16) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DM4PR10MB8218:EE_|CY8PR10MB6588:EE_ X-MS-Office365-Filtering-Correlation-Id: 33aecccd-afde-4120-3332-08ddeec88628 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|1800799024|7416014|376014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?J6+7xWhKy+OZtKrDTRAhweZAWCAa4JBv8oYYIUz/zVcMfqsT97YQ9LPTV4dF?= =?us-ascii?Q?BWZVl7zhOE4BDsVDSVt5aXH0RAQdqC3WpEHay1iNsxO9I3gw2x/bXzhvUJDM?= =?us-ascii?Q?bDfrxl/2Smd7Wjm5t9hdHXckygPFf5goCvnyUgJOGaaCJ5SEQXUFaznNCAIL?= =?us-ascii?Q?dph/+rZQRnhLZHnMpb/Zai8Ga891OYjCN30L3b3F2Tk13SUe6EjY4gn/6tjL?= =?us-ascii?Q?cDmFToawtcLjX583AkdPqn5D9VN7+Rr21rmGciRGU9jhgsDxfq4aMbab5c7g?= =?us-ascii?Q?8a5WzJI7cw6uFpqtJEGhDI0XzajTCMB7RwYJzrfAO8XvVdzvIursfjqO9TtJ?= =?us-ascii?Q?ATMbKjpeFIYLj8GzNjFRFTdpQSFeF1klhan44huKxOPYH/My5Cy3y9Wq8jlK?= =?us-ascii?Q?0idEexeMZqUJZNC/DWNiny1p+ugEbamsN3+tpN6fenb5ivojt/aNljkFDpCA?= =?us-ascii?Q?wjUDYxEc7MBprrK6j7svU7UW6XRYC+411VTas60lJyAcV6gEcJns47k2i0R/?= =?us-ascii?Q?4QVezqN+VevQCXn5DkY+5Le543vyIwtLsNiCfzDOrySiebNEfSFsE1dSsw/x?= =?us-ascii?Q?W+Nd+dTW3sCIM0CDq7yqqXLMeYchzjkAh5uSWUw0fbajugxbK3cQBQzm/ic4?= =?us-ascii?Q?BFlrOgsgpY16JEmNzw3nkOquQRMK3snoFHrYy1ZYPlHJW+dR9EgKDEQjPFyU?= =?us-ascii?Q?PuWGiKvSv3sHCbJKWRDn36G6xMEzFG+bNlSdutTDLX6Wf8jEzbxM/whCmeKz?= =?us-ascii?Q?wQ80qM3KUq2OYwHQmJl2oo53gl2/uxXT0jKqUJGpYk8sc91UJkf17RNobB0Z?= =?us-ascii?Q?J6anipe3ykhAF0YUJjrUmY1ojuo0RhNxTrVQRThjWkTZck4iydF2rq6DUPG7?= =?us-ascii?Q?ukdFug4amxyKKDapUWALgkUQF70xYOVpIE80gwLRt1c8N76Ww3ibk5Vg+hRP?= =?us-ascii?Q?PSHYEJfwwdqwi28g6QhrwXRIv295w4VXxmn7dFaOf2aJOCSWKisAz8XwUC0f?= =?us-ascii?Q?SPF5q6dYBdof3Zca3OV13cWaLjnRIBi1vTuXJlGrVvu07huLAl8sC7e6nzHI?= =?us-ascii?Q?Erm46TW668uAnVUBE6ydTyjnNFhj2s6OkMHQUfVr1/uOXsPIJTscaWUFHbzb?= =?us-ascii?Q?ug8tlhEct9YdYYSLf8sOIukuZiJHQqLIGxrfi427KTNnsc1odCSMu42TqCGE?= =?us-ascii?Q?wc4P9m/HjnXgbQ54fJCRsBLamwgRaSCOKK+nt2sHBqlGbWUBAiSrsX/l7V57?= =?us-ascii?Q?iLktXAnzdmFbEO7JO2GWB4WS083q8Hj37p7byE2VImZaXLWS0WL9f45oacwt?= =?us-ascii?Q?v+5yQ0HFjULm/x+H/9X/GAUuJpTlCRLBCTLqyecgonWpOG0gmrcBfqwTcPR+?= =?us-ascii?Q?1ydP7E+B2b9ucwprq1+ot4+HszTGHS1B1e0wpNpsKEGDacXJsA=3D=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM4PR10MB8218.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(7416014)(376014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?dMdbthi245slViN9ff0ep8Cw9SE+ChVjFrZiGbsfLxdnqB3d/WyT2vY9argq?= =?us-ascii?Q?Qg5SHjJX9/IKdiQHlZBPthpC3e0ZIHfgCMflyf+nNZ4B0xAuHioeNUtY71G8?= =?us-ascii?Q?67PKaimX1wif4fG/VZiRvj3lMMyrbogQuRQSAdSOMzWdZv4jltejqtQN1K0u?= =?us-ascii?Q?HgAH+/enhzgCVI9ionIZKSfcPqrvxH3YkhrRjQnJrOr0SerlGPk6a6ZFdR9R?= =?us-ascii?Q?T/9d7iT0qgqO+1i9u/Z9Cpthm3W6XEQJcXWpZ6tJhije8ll6l3BbMTH+W2vz?= =?us-ascii?Q?QBfJwT3Yr6mgznh1x+tJ2zFucIpt5Ww6F6JwhiEZqvXkLcOM60XmY9X18iMi?= =?us-ascii?Q?Np1MbG0+kOPdBr9PqqGhKeg5x20+dFiiAhbZK0Ju8vmZ67KMVPypl1JZcyh/?= =?us-ascii?Q?DTIwyBlM/0a4Ru86522IG9zNnInuvRAoE7wTzFptsZKlReCs1zsGsqUIH3bT?= =?us-ascii?Q?2XCUuWZXZFOKIZH4NPkdPOewWrShgZ9liZ8xTMYi4HHljR6fYyZagaP50Cps?= =?us-ascii?Q?0DbQTiOa6Ds7dTsnPSRR/6jZbD7wtSiCQRMgnlrCGl/xF4dqEPjj3psdzNdl?= =?us-ascii?Q?mq+qyE5CXpDaL6RryFkeiLkT0HO1yLqUmuB2No3K7CxyoX8Az1RwngY3ZF7e?= =?us-ascii?Q?TwMGA46XXb/MTmiEo+jArt/LndiOkMpJN0Sw6YpRd9BH+xZYVhQfYeEEgEwi?= =?us-ascii?Q?8x4nZDKHdg0t3Q6hkwRSGc1dUD3y0MYpuWDrUxbfrujAiDpyllj3F6rP4WNz?= =?us-ascii?Q?3nW95198TrHeaEFDI7v3ZyO7QD0BfnB/rRr7qsBEEIfryUMn8lOw9X/eCzes?= =?us-ascii?Q?SvvnCvAncvqc7nsVvdHlIxil/JUdTWvfcAIFwNvLxLXGRyhnrGE3UGPViYau?= =?us-ascii?Q?uqvq89uw7efGY7eNzN3VOARAHsM80srLClCwnvOG8yuaLEk8o8HZrAZcjeLN?= =?us-ascii?Q?l9BgrRFfZF959cidKpaq1lFNCmc6rS7iDCPIevE+wpxAijBw4h7ypyDqMWA7?= =?us-ascii?Q?Hwa842dV9HEPmdyeTc/gMyTo6n1ep70FfyWMKs9Fp32qRj3v+R851QD55W8e?= =?us-ascii?Q?QHW6nXW4rjrXtNohTAqb7LJxTKjN5zH4IZcbk/3TJ6ppB3Ck/lkzvfEaW/Rd?= =?us-ascii?Q?NNysQvjpq9T4V5V8YURp7pAtIWNtXNJ793LIO1DdiKfbnvjni3uk0UQWg24n?= =?us-ascii?Q?mY9WjT6g3zYgFjQM1dYlCPthGGg2vtj/ZwOfWWKdXveLv6MD+l7qQK4RF3js?= =?us-ascii?Q?KaFWwsL/GNX+DpA9U6nZ5h3oSzc12JFNxX/M/L5jJR/yZ2S8Zl4TpaaU5V46?= =?us-ascii?Q?W9eUN2hMZd6u2vyRaf9Zx/1wBJYtn+12kqbO3bk7u/G9iKw0nD0rn2BwKOi2?= =?us-ascii?Q?jU/kSz+PxLBDxePx/j002srMsVH5AemAd4wLcyxbXgqOxWMp6TaKfOaHeeAH?= =?us-ascii?Q?U2XZiRHO7t43DOW6dE29s3z5JPVezogafEVrSjPKbRreM7In44h1odtlseez?= =?us-ascii?Q?l+emOqmhuLrZAjydBA/5MrNurHrAnDmQhRFZN/j+VZa3aeY3USgkY6aWYFSv?= =?us-ascii?Q?IG4T8X4yn4Q/IiR/YIforQrbIag8WhRQfUS7Zo8cePoV5vkqNL3HVmdSvRiY?= =?us-ascii?Q?KA=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: ATkHRw6NCP5C2yLP2XmSyBj4RTX0SHrpbKGUolh6laP+OAdaWTZ2d6CDR9kXAp+QRsjByxt1dfR+9J8GYEmCSlUsDW/S2MLLBUFkDyMfeoK6Zb6IiVLq+gQBDHfyeuZsq04Jeo6jC9UPiFGAYYfPoz3W3/ZBtLVvjAnihugYu9nzIGljv96q7nCDmPsBLBk+DO1OIX08Yiwt9p+I80DLSSmspvd1U9tL0k1iT99IrQzwHZnvjvfG+ivtLllqDE8pGO8VhJic0c6+gQdqhw2W/FZYk9DpefKnXMf6FGoX/vqOSiKwk/KPg2tXISat3TCQOtgUXMRIRcSmkEo1YEL8/s/aJ9g+0eIsaa9QHcnwko7msWms/5Ei+dYYZ9w36pcb8Nrx8ygc6viiXd9x6sx3P0MxFpi5TmoetSuZ0vHa4T0ev6f0N7xHBDcAUowf1gMjZgmnxdyqhQ50V8CW4m2z/dCHWk3fTjgWaG/6qymH7D01sJgEOywCxVOyd49p5mR61dMTQPvwFtBfEYOhys1dMmW4PtOBk2/hYXLJqpq/5jsfvO6EkT6Xjo5F5FM2So4RMDc3QXO0S+KJQJtUGpmu7NMEALfEL6pe7Bk2HZDX9kM= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 33aecccd-afde-4120-3332-08ddeec88628 X-MS-Exchange-CrossTenant-AuthSource: DM4PR10MB8218.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Sep 2025 11:11:56.9731 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: LcGDe7YYM9HAc2SIjswdnKOU65zwG1OrIFhdRXWixGfzOM20U9ZIX4+jB8aMedqOwHkZPJQxkhdTIeu9afUY/kXBqVjxvqYgHf5go0y/Dhg= X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY8PR10MB6588 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1117,Hydra:6.1.9,FMLib:17.12.80.40 definitions=2025-09-08_04,2025-09-08_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 spamscore=0 adultscore=0 suspectscore=0 bulkscore=0 mlxscore=0 mlxlogscore=999 phishscore=0 malwarescore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2508110000 definitions=main-2509080113 X-Authority-Analysis: v=2.4 cv=ULPdHDfy c=1 sm=1 tr=0 ts=68beba02 b=1 cx=c_pps a=qoll8+KPOyaMroiJ2sR5sw==:117 a=qoll8+KPOyaMroiJ2sR5sw==:17 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=wKuvFiaSGQ0qltdbU6+NXLB8nM8=:19 a=Ol13hO9ccFRV9qXi2t6ftBPywas=:19 a=xqWC_Br6kY4A:10 a=yJojWOMRYYMA:10 a=GoEa3M9JfhUA:10 a=yPCof4ZbAAAA:8 a=jqFLf27dcFbTZjay-QcA:9 cc=ntf awl=host:12069 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwOTA4MDExMiBTYWx0ZWRfX0Mg91RQ2ip+d xQnyiFuGSlRAyLF5+XPE7YmKr6dLT/yuF09MpIQGD0PBNm4xN0Pa1L0j1mz0+R4qAPEOijyQph4 4OxwFyzOwixKj5rGtDGZtYoltZc3lWQevUF7u/8goKLKXh9fr8MKqabGcg0uny0OdK3LSNJj4YM 3yizMCvYMcWD+555fEE1r24LUVsf18ktmgiJATQCgqMbl6O/JOfxCp3rQaPG3OajqKNe5KN9OLI 5Sw0iJjs2OUMsWpRBuJPRW7q+4aye3YQ3LXvff5TMCsT52YrdipOQqG7dUbF/+f7Nbju7NZcHkY JjBTLQDwRFq4ttOKwe+o82bEelDGWOcUvoiNh7OLvHWIfZIyZaPE2a+Nv385J9gE+NTCmvQqr9k E2UvaWr3RIktlRnvMEL8ZQNO14b9EQ== X-Proofpoint-GUID: yd6O2lKPmsnWMZUvkW2ngacxHj0kFT1m X-Proofpoint-ORIG-GUID: yd6O2lKPmsnWMZUvkW2ngacxHj0kFT1m Content-Type: text/plain; charset="utf-8" Now are able to use mmap_prepare, complete callbacks for procfs implementations, update the vmcore implementation accordingly. As part of this change, we must also update remap_vmalloc_range_partial() to optionally not update VMA flags. Other than then remap_vmalloc_range() wrapper, vmcore is the only user of this function so we can simply go ahead and add a parameter. Signed-off-by: Lorenzo Stoakes --- arch/s390/kernel/crash_dump.c | 6 ++-- fs/proc/vmcore.c | 53 +++++++++++++++++++++++++---------- include/linux/vmalloc.h | 10 +++---- mm/vmalloc.c | 16 +++++++++-- 4 files changed, 59 insertions(+), 26 deletions(-) diff --git a/arch/s390/kernel/crash_dump.c b/arch/s390/kernel/crash_dump.c index d4839de8ce9d..44d7902f7e41 100644 --- a/arch/s390/kernel/crash_dump.c +++ b/arch/s390/kernel/crash_dump.c @@ -186,7 +186,7 @@ static int remap_oldmem_pfn_range_kdump(struct vm_area_= struct *vma, =20 if (pfn < oldmem_data.size >> PAGE_SHIFT) { size_old =3D min(size, oldmem_data.size - (pfn << PAGE_SHIFT)); - rc =3D remap_pfn_range(vma, from, + rc =3D remap_pfn_range_complete(vma, from, pfn + (oldmem_data.start >> PAGE_SHIFT), size_old, prot); if (rc || size =3D=3D size_old) @@ -195,7 +195,7 @@ static int remap_oldmem_pfn_range_kdump(struct vm_area_= struct *vma, from +=3D size_old; pfn +=3D size_old >> PAGE_SHIFT; } - return remap_pfn_range(vma, from, pfn, size, prot); + return remap_pfn_range_complete(vma, from, pfn, size, prot); } =20 /* @@ -220,7 +220,7 @@ static int remap_oldmem_pfn_range_zfcpdump(struct vm_ar= ea_struct *vma, from +=3D size_hsa; pfn +=3D size_hsa >> PAGE_SHIFT; } - return remap_pfn_range(vma, from, pfn, size, prot); + return remap_pfn_range_complete(vma, from, pfn, size, prot); } =20 /* diff --git a/fs/proc/vmcore.c b/fs/proc/vmcore.c index f188bd900eb2..5e4e19c38d5e 100644 --- a/fs/proc/vmcore.c +++ b/fs/proc/vmcore.c @@ -254,7 +254,7 @@ int __weak remap_oldmem_pfn_range(struct vm_area_struct= *vma, unsigned long size, pgprot_t prot) { prot =3D pgprot_encrypted(prot); - return remap_pfn_range(vma, from, pfn, size, prot); + return remap_pfn_range_complete(vma, from, pfn, size, prot); } =20 /* @@ -308,7 +308,7 @@ static int vmcoredd_mmap_dumps(struct vm_area_struct *v= ma, unsigned long dst, tsz =3D min(offset + (u64)dump->size - start, (u64)size); buf =3D dump->buf + start - offset; if (remap_vmalloc_range_partial(vma, dst, buf, 0, - tsz)) + tsz, /* set_vma=3D */false)) return -EFAULT; =20 size -=3D tsz; @@ -588,24 +588,40 @@ static int vmcore_remap_oldmem_pfn(struct vm_area_str= uct *vma, return ret; } =20 -static int mmap_vmcore(struct file *file, struct vm_area_struct *vma) +static int mmap_prepare_vmcore(struct vm_area_desc *desc) { - size_t size =3D vma->vm_end - vma->vm_start; - u64 start, end, len, tsz; - struct vmcore_range *m; + size_t size =3D vma_desc_size(desc); + u64 start, end; =20 - start =3D (u64)vma->vm_pgoff << PAGE_SHIFT; + start =3D (u64)desc->pgoff << PAGE_SHIFT; end =3D start + size; =20 if (size > vmcore_size || end > vmcore_size) return -EINVAL; =20 - if (vma->vm_flags & (VM_WRITE | VM_EXEC)) + if (desc->vm_flags & (VM_WRITE | VM_EXEC)) return -EPERM; =20 - vm_flags_mod(vma, VM_MIXEDMAP, VM_MAYWRITE | VM_MAYEXEC); - vma->vm_ops =3D &vmcore_mmap_ops; + desc->vm_flags |=3D VM_MIXEDMAP | VM_REMAP_FLAGS; + desc->vm_flags &=3D ~(VM_MAYWRITE | VM_MAYEXEC); + desc->vm_ops =3D &vmcore_mmap_ops; + + /* + * No need for remap_pfn_range_prepare() as we ensure non-CoW by + * clearing VM_MAYWRITE. + */ + + return 0; +} + +static int mmap_complete_vmcore(struct file *file, struct vm_area_struct *= vma, + const void *context) +{ + size_t size =3D vma->vm_end - vma->vm_start; + u64 start, len, tsz; + struct vmcore_range *m; =20 + start =3D (u64)vma->vm_pgoff << PAGE_SHIFT; len =3D 0; =20 if (start < elfcorebuf_sz) { @@ -613,8 +629,8 @@ static int mmap_vmcore(struct file *file, struct vm_are= a_struct *vma) =20 tsz =3D min(elfcorebuf_sz - (size_t)start, size); pfn =3D __pa(elfcorebuf + start) >> PAGE_SHIFT; - if (remap_pfn_range(vma, vma->vm_start, pfn, tsz, - vma->vm_page_prot)) + if (remap_pfn_range_complete(vma, vma->vm_start, pfn, tsz, + vma->vm_page_prot)) return -EAGAIN; size -=3D tsz; start +=3D tsz; @@ -664,7 +680,7 @@ static int mmap_vmcore(struct file *file, struct vm_are= a_struct *vma) tsz =3D min(elfcorebuf_sz + elfnotes_sz - (size_t)start, size); kaddr =3D elfnotes_buf + start - elfcorebuf_sz - vmcoredd_orig_sz; if (remap_vmalloc_range_partial(vma, vma->vm_start + len, - kaddr, 0, tsz)) + kaddr, 0, tsz, /* set_vma =3D*/false)) goto fail; =20 size -=3D tsz; @@ -701,7 +717,13 @@ static int mmap_vmcore(struct file *file, struct vm_ar= ea_struct *vma) return -EAGAIN; } #else -static int mmap_vmcore(struct file *file, struct vm_area_struct *vma) +static int mmap_prepare_vmcore(struct vm_area_desc *desc) +{ + return -ENOSYS; +} + +static int mmap_complete_vmcore(struct file *file, struct vm_area_struct *= vma, + const void *context) { return -ENOSYS; } @@ -712,7 +734,8 @@ static const struct proc_ops vmcore_proc_ops =3D { .proc_release =3D release_vmcore, .proc_read_iter =3D read_vmcore, .proc_lseek =3D default_llseek, - .proc_mmap =3D mmap_vmcore, + .proc_mmap_prepare =3D mmap_prepare_vmcore, + .proc_mmap_complete =3D mmap_complete_vmcore, }; =20 static u64 get_vmcore_size(size_t elfsz, size_t elfnotesegsz, diff --git a/include/linux/vmalloc.h b/include/linux/vmalloc.h index eb54b7b3202f..588810e571aa 100644 --- a/include/linux/vmalloc.h +++ b/include/linux/vmalloc.h @@ -215,12 +215,12 @@ extern void *vmap(struct page **pages, unsigned int c= ount, void *vmap_pfn(unsigned long *pfns, unsigned int count, pgprot_t prot); extern void vunmap(const void *addr); =20 -extern int remap_vmalloc_range_partial(struct vm_area_struct *vma, - unsigned long uaddr, void *kaddr, - unsigned long pgoff, unsigned long size); +int remap_vmalloc_range_partial(struct vm_area_struct *vma, + unsigned long uaddr, void *kaddr, unsigned long pgoff, + unsigned long size, bool set_vma); =20 -extern int remap_vmalloc_range(struct vm_area_struct *vma, void *addr, - unsigned long pgoff); +int remap_vmalloc_range(struct vm_area_struct *vma, void *addr, + unsigned long pgoff); =20 int vmap_pages_range(unsigned long addr, unsigned long end, pgprot_t prot, struct page **pages, unsigned int page_shift); diff --git a/mm/vmalloc.c b/mm/vmalloc.c index 4249e1e01947..877b557b2482 100644 --- a/mm/vmalloc.c +++ b/mm/vmalloc.c @@ -4528,6 +4528,7 @@ long vread_iter(struct iov_iter *iter, const char *ad= dr, size_t count) * @kaddr: virtual address of vmalloc kernel memory * @pgoff: offset from @kaddr to start at * @size: size of map area + * @set_vma: If true, update VMA flags * * Returns: 0 for success, -Exxx on failure * @@ -4540,7 +4541,7 @@ long vread_iter(struct iov_iter *iter, const char *ad= dr, size_t count) */ int remap_vmalloc_range_partial(struct vm_area_struct *vma, unsigned long = uaddr, void *kaddr, unsigned long pgoff, - unsigned long size) + unsigned long size, bool set_vma) { struct vm_struct *area; unsigned long off; @@ -4566,6 +4567,10 @@ int remap_vmalloc_range_partial(struct vm_area_struc= t *vma, unsigned long uaddr, return -EINVAL; kaddr +=3D off; =20 + /* If we shouldn't modify VMA flags, vm_insert_page() mustn't. */ + if (!set_vma && !(vma->vm_flags & VM_MIXEDMAP)) + return -EINVAL; + do { struct page *page =3D vmalloc_to_page(kaddr); int ret; @@ -4579,7 +4584,11 @@ int remap_vmalloc_range_partial(struct vm_area_struc= t *vma, unsigned long uaddr, size -=3D PAGE_SIZE; } while (size > 0); =20 - vm_flags_set(vma, VM_DONTEXPAND | VM_DONTDUMP); + if (set_vma) + vm_flags_set(vma, VM_DONTEXPAND | VM_DONTDUMP); + else + VM_WARN_ON_ONCE((vma->vm_flags & (VM_DONTEXPAND | VM_DONTDUMP)) !=3D + (VM_DONTEXPAND | VM_DONTDUMP)); =20 return 0; } @@ -4603,7 +4612,8 @@ int remap_vmalloc_range(struct vm_area_struct *vma, v= oid *addr, { return remap_vmalloc_range_partial(vma, vma->vm_start, addr, pgoff, - vma->vm_end - vma->vm_start); + vma->vm_end - vma->vm_start, + /* set_vma=3D */ true); } EXPORT_SYMBOL(remap_vmalloc_range); =20 --=20 2.51.0 From nobody Wed Sep 10 01:09:10 2025 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 418A6306B09; Mon, 8 Sep 2025 11:12:48 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=205.220.165.32 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1757329970; cv=fail; b=jULylylTiZw6o5W0Tv72i0aR2e79Mfuu2m2exnyd182uzQPguaNcXZkFHI/Tl0oLBk5iYm8eh64kMAdjR4DXOg+JInzLbm1eYpzlBWsRhNgdmh3h0/AGrvRnhitD7R8uMK7v/6YWgaAjQFpXGvluB4ilqihHvdAnibviKqDAKio= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1757329970; c=relaxed/simple; bh=OGrzoRbDm/+E/1r3AqUf2P5DD7NwH/BfUV1Y9MSdcPU=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=fUGYSiOzUoRUuXqHXB1/jotCAHd7IV8gpUVdMSaXVBMTs60OxQ5CtrZkO5y/BZEgNkDLchO+KwHmqcDaXwdzbBjc7fcJFYQNxKjJZMMSFFNtsjSRkSpRAOe+lGoYnZKPctPbUowMWV+mwPH4PGcyEpbl7b7jqoil/vbRXiC6qA4= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com; spf=pass smtp.mailfrom=oracle.com; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b=PKD50LKh; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=TQqsS+Qf; arc=fail smtp.client-ip=205.220.165.32 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oracle.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b="PKD50LKh"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="TQqsS+Qf" Received: from pps.filterd (m0246617.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 5887cZV8006025; Mon, 8 Sep 2025 11:12:05 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s= corp-2025-04-25; bh=rrU7Gj0t4LKSDiZl7UfV3TRzFIOJd64sRRswb7EXhX0=; b= PKD50LKh1GJkUovMDWRaTUTWW5FwNdJ4PRcjXWqmyxhCSxdmn0/hlaDl1y8h8XVb ttu2ArFaX58Em8Mp0lL4lWwrxWqnHFrvo27Pgszlg33UVZlf7LHPf2uXvD7v+gT0 qWl1B/+yxzhJHkyfS5Sa71Ho03AUfasN85jkHVgMr4H5gVEnx9XSwZTpBvSTL0xj CbhvNBCz0YvR5DGJfib9BlUmbiO92YH38ACg4+ifz0ekUIj2NMB/lNolP5zPt5QI 1H3ZLsjCWreTC4T2R1r3bMUolnw2fkXUwxn1E5tqCazK6SHbIp7UGEIUvgSVzZ8U hOX2kvWZuJYLb/tIm0YjZQ== Received: from iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta01.appoci.oracle.com [130.35.100.223]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 491txb8c9w-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 08 Sep 2025 11:12:05 +0000 (GMT) Received: from pps.filterd (iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (8.18.1.2/8.18.1.2) with ESMTP id 5889MPM9038804; Mon, 8 Sep 2025 11:12:04 GMT Received: from ph7pr06cu001.outbound.protection.outlook.com (mail-westus3azon11010010.outbound.protection.outlook.com [52.101.201.10]) by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 490bd81qh8-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 08 Sep 2025 11:12:04 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=Nl9BEUgb9L/tzha6fT+8dr/iLZYxxtFsnNS7+PbjwhjxAe1xpKdW4BTW6tv2/KxN2hAQ43GbYE3otQVdxhcAntMslv2Ubqxmr3Q9Gvw3conEiwcFYJ4zy0OHuKacumveatFWIudVFztYumxNOlF4q+QP80KDtePNrS9N5aGtrn76LBn4n+iCA9ECYR0EfedN0YU0rsNbJZ2aWoyyoSTBPJu1aj5Vg9HkY5uS18QDJk4hsNNTkfMzkZe9cH+fS9rwTd0osO18+VilVLGfyo4Vlyf+NT66aSBaP7Ki9Tth/kkYp+PYRWL1RNYMX1yPDZ823H1eVV3uBzGy/2IUYV5tog== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=rrU7Gj0t4LKSDiZl7UfV3TRzFIOJd64sRRswb7EXhX0=; b=oeDPNubkvaXE0TulTAmsuNMqpi5QNSrWG3iPw0Mzf+FUmq5pc6fG9q82tdw6X7zjXubVAny/MRZ8nhY3+4Frtwxid04i18kQuoihyebRqsgZodRtuomgHqFsKm72ODWuVnftJ6BPxefZrrk7OZKhkaoCJh5pALhg4favjnQIjCuPHEjFG+JZcmQ/Ukli768ywiMyQF+sjIRsK44JoSR7uYVwP1pjDZL7QDmW85ln0ZcJyevsOYU7ktuQeqnIIQUF2lnqHxCT5WqLyecQNdR1niZttg/Bs4QitZo2vLePSnLLzOYnx6a808OogLXe1mR8xAp3INJQMDmT0f09jEXzFg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com; dkim=pass header.d=oracle.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=rrU7Gj0t4LKSDiZl7UfV3TRzFIOJd64sRRswb7EXhX0=; b=TQqsS+Qf+p0iceuYgMrIa9qeSMunulUjyydOn4qXMtiQbSTw5oMCjFbOeZ3HvHz42a5THSy6gX2lts+hPVHA21CHohsg18rm0xiL0f2L/5i7xUniGePJmvZYNtReybb51BDlxU9I1WRSECwWk0tRV0c5BHYsLoM4jD/791rLpJQ= Received: from DM4PR10MB8218.namprd10.prod.outlook.com (2603:10b6:8:1cc::16) by CH3PR10MB6833.namprd10.prod.outlook.com (2603:10b6:610:150::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9094.22; Mon, 8 Sep 2025 11:11:59 +0000 Received: from DM4PR10MB8218.namprd10.prod.outlook.com ([fe80::2650:55cf:2816:5f2]) by DM4PR10MB8218.namprd10.prod.outlook.com ([fe80::2650:55cf:2816:5f2%5]) with mapi id 15.20.9094.018; Mon, 8 Sep 2025 11:11:59 +0000 From: Lorenzo Stoakes To: Andrew Morton Cc: Jonathan Corbet , Matthew Wilcox , Guo Ren , Thomas Bogendoerfer , Heiko Carstens , Vasily Gorbik , Alexander Gordeev , Christian Borntraeger , Sven Schnelle , "David S . Miller" , Andreas Larsson , Arnd Bergmann , Greg Kroah-Hartman , Dan Williams , Vishal Verma , Dave Jiang , Nicolas Pitre , Muchun Song , Oscar Salvador , David Hildenbrand , Konstantin Komarov , Baoquan He , Vivek Goyal , Dave Young , Tony Luck , Reinette Chatre , Dave Martin , James Morse , Alexander Viro , Christian Brauner , Jan Kara , "Liam R . Howlett" , Vlastimil Babka , Mike Rapoport , Suren Baghdasaryan , Michal Hocko , Hugh Dickins , Baolin Wang , Uladzislau Rezki , Dmitry Vyukov , Andrey Konovalov , Jann Horn , Pedro Falcato , linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org, linux-fsdevel@vger.kernel.org, linux-csky@vger.kernel.org, linux-mips@vger.kernel.org, linux-s390@vger.kernel.org, sparclinux@vger.kernel.org, nvdimm@lists.linux.dev, linux-cxl@vger.kernel.org, linux-mm@kvack.org, ntfs3@lists.linux.dev, kexec@lists.infradead.org, kasan-dev@googlegroups.com, Jason Gunthorpe Subject: [PATCH 16/16] kcov: update kcov to use mmap_prepare, mmap_complete Date: Mon, 8 Sep 2025 12:10:47 +0100 Message-ID: <65136c2b1b3647c31bc123a7227263a99112fd44.1757329751.git.lorenzo.stoakes@oracle.com> X-Mailer: git-send-email 2.51.0 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: GV2PEPF000045C8.SWEP280.PROD.OUTLOOK.COM (2603:10a6:158:401::43e) To DM4PR10MB8218.namprd10.prod.outlook.com (2603:10b6:8:1cc::16) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DM4PR10MB8218:EE_|CH3PR10MB6833:EE_ X-MS-Office365-Filtering-Correlation-Id: 1af812b6-463a-4d2e-e89e-08ddeec887e6 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|7416014|376014|1800799024; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?OWqiUldvhKBL7HdIckIfZ29a05cGOTneZkUaPtLzRF4Irh4Rar+xgKgk7dNM?= =?us-ascii?Q?wxBjm4GOfQzJks0TQ8uZpkA5qGJRsON/h88XOQsnc2rXzRz9gnGLe5YLn3NW?= =?us-ascii?Q?Ou94NRITPo7Jto6yUuQD2zDMYhX9YqtKNLjcyZNlJtJ/W2Ss1MWBSRedWQLr?= =?us-ascii?Q?J62R2R4aSmXcJmH2FadIW2xZWV5UF9OVPPx6mjsN80ndeAxPoz4cmJ9ciSXj?= =?us-ascii?Q?iyewxkkuPIGSYq4K6CTMTa5nEmE5b3KhBjQ6Z/0wT2EtCRp7+MDMZs5VQ97I?= =?us-ascii?Q?N9IlxuRHu1ykmvDK4fuyDzbmTHsLB5/M/U/h4qTMPa203DGH0dZc3iw23Paj?= =?us-ascii?Q?5/8Dv7DRdFEPOPklSduDeudVKzram0xUPsH3A5Zo59CA5MORQbXkg1+QeKvQ?= =?us-ascii?Q?y6+eyDqmJq81WNt4+9VS3jMUW8DM5y6YrwOLh1BE7yJ6zei8biMvg1TQerZF?= =?us-ascii?Q?qJ5upNuqPZdspujeRjdt9kn674JPiY6VWS+TN1bvzh+87Ei4KioizO/3TJqt?= =?us-ascii?Q?sQDzzvVs7c09Gqfb4aoIU3qgWt2vVx6XRzuTF+7xW1rQXy8BheUYJfyB+3mS?= =?us-ascii?Q?H+UeAqHUqPvjxKodwMOZOV1sGgYSoNOl3gUnmqMMmmIeDwDwvktr4rAyxCOC?= =?us-ascii?Q?eAyCJQQlaR86znUHg4+C3aHzaaKX5GXwBXtYxQwWeGU/ekAJid75vN3BriDK?= =?us-ascii?Q?SccvHNC7AreGpXQAyApCEpCF+XkuCE8deDqMJLovGXBrSRv9YkKV17t5W7wq?= =?us-ascii?Q?fzpnxjj/yS23SsCL8inDIzw4t0YDTF7X5aq1PMgSlw8RVBdf793Oz/T2Mhac?= =?us-ascii?Q?J5HEHrE6zkBqAx5zyG2BRL5BdbaqobV7kNrQG7gJSAxWQS6A09jV8+0qLJdf?= =?us-ascii?Q?r3S6LlXWJB6Dyrko8FrtpDBQ8/jYV3Q+vOlnVTqYe5nmNDG5x7GTtuo9hMvB?= =?us-ascii?Q?RrWlMvPgtW0kNnjCmQB7hXFZonHsDEuA+1L1Pz+P62zrhPqPFjuNttiUGll5?= =?us-ascii?Q?gDGbkVdNtIOIbz9DIzLaYAtu3k9VBEUCsc9uB7wFpxxW0xuLPYvXW/cOABzX?= =?us-ascii?Q?RzLM0ndErJjlxCSBTXm9iXWGv5wIgSJcPIKMLbVJmJUDHsLqMPiHMTumls6r?= =?us-ascii?Q?0OwmGkcIkifhuF9ItkVtJKpcZWMA+uNQAnSLWr8j5QytCUYXtedFbecR1kU+?= =?us-ascii?Q?8N7DfKkbM7koiCwQ1IuUTb4FRPI2Outf5SCpo+x5Fh1jOWEyo4fWkepBIDEt?= =?us-ascii?Q?bPRcvw0zXG5N2RWxyhNruJYetchx1je/yDqUJtLShQYZ3A5YZmtbtwmUdEZP?= =?us-ascii?Q?Mjr3XJi5C5E9YioZygwNMkQyBAF8UmAOUV4GCHAeanOPeYcmeuOWrvqCiFlw?= =?us-ascii?Q?y/Ov4vI9rUeNuZSLwc9Shw6NUKI3I9k8LP7+CCL1FlGXtLhFvb2za1FUElAO?= =?us-ascii?Q?9c0gqe9lZYc=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM4PR10MB8218.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(7416014)(376014)(1800799024);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?6EVMaKWGZ2TgKRZ5Z12+nrHzRCWQB8PXLowwr6GvfpZbhCD89/LCGpQxxm8A?= =?us-ascii?Q?dA/RG6gAxxAVbKy4MX46lEhGQw2P4iAbBsHYeBf6PPohqhz+wJudW1I05grU?= =?us-ascii?Q?oDbdvG8x6GRFNUetxUyVEQYZrq0dBoNMYpK40R6fEcMNf1wsN3Oe8vJMpucV?= =?us-ascii?Q?/rmDCtZ9rHD51EDocxX3u53pFbswLaBzV2mxWwj+0XGTCTQJejt2t7smhb81?= =?us-ascii?Q?cNEtp8astpPFFe5k7WW/86gURFVrSu7hzEIhMkTNiINWErhZn1iU92galDiO?= =?us-ascii?Q?XMUvPOKpN/wOfuGeQ1zHDm7D8QYz4nzYGX0RzYgPqQ+kSTVybeRqJKjVISbj?= =?us-ascii?Q?H8TLdVbYoTM4AcCtJM45nadc3GlpTMeJcbZ6byKRmeVc++iFcO6qyJZwUdz+?= =?us-ascii?Q?0ZDM1NBg/rmy54I5G03BzJu9YqUK7foEd2vOHlWFeXyGJfm8Mz8K1VPAFJvN?= =?us-ascii?Q?dBXUYVf6XbQu88EzJkN7CRJu+wJ6pNZ//jrwvbHxSinp9YYzu3l1QRhxMBB0?= =?us-ascii?Q?b+OHtO9p/c+fjyv1qIFdhrfUYY0DCCe+9dpy6NGzYd8h+cz7wLEBjEMqHip1?= =?us-ascii?Q?uO/2TUDGQPoUuvj0ST5xkvqAkXAxdKCpcIQVILu9DpjW/8YzAWQOPbxI6uz9?= =?us-ascii?Q?sT+DxQWp6tKazB9fkUxA1z6iZ0o0IpVjftvIOL/7ARBYk+BlN5GEZEENNET+?= =?us-ascii?Q?74kwY0AnCZeo+bXJkPZGRX051wlclR6XqoQWB0quyGraWyWJh2PH1HFff/1P?= =?us-ascii?Q?azPokFHWOoyO2t33R9bDvSmhCrcpL8qML0pQTS+HTRZt+dlPFkllpPqF2N4K?= =?us-ascii?Q?ML5moXdfQmgbgyIbSvYPH37SkP7qxTvpOb5wd+L+YLru9NjvzO/ywNwEQZhN?= =?us-ascii?Q?8V1dnJH6psAoOd4ExmfNRZ4L+iq0o2zbcOZC4tmxLGLP3I3ovciJGfxTAgQx?= =?us-ascii?Q?PhzZIDORXgcJ1XC5SQaD7iBTng2Q0+UYTJHJJ7MGgaXaWQG1w+e5tJfQpfh9?= =?us-ascii?Q?E34AZKbiJgHGw39NyffZ+io6MqR84+eyU/JA0Mxnk8l4Qaws/nrj0CgtUTEg?= =?us-ascii?Q?f7lZ5PwJn4DInRiWX2HvzenixV1Qkl2lcJMtO869hoOpDVZga/wS6JHuXgDe?= =?us-ascii?Q?YjebA/6ah+oKsmXjdETNu2JEVAK1VEghghVVFvEpNvLKU3HXNh3naG2As8pE?= =?us-ascii?Q?YTIrThkyOU1nJarhwLXJ/bm7XEMJ7PLjGpfcO608k74Qf8HqjT2bQ7rT5ztM?= =?us-ascii?Q?cwJTo1mVzmdr/Zu0ei3JHKRLKfoFFrYr75CA3vaZOF4076HN313+wpZN6UVk?= =?us-ascii?Q?8dbQvGNaA6HdI4Rd6xNUy51cnxYWWRGUic2rKppLFkzpfEJalrKWY9gX9rIn?= =?us-ascii?Q?Tlf18o3hMITBeUs5/GzjxKi3n1elCCb2sXup77Kf+r1/HY8xLzNNd0tJsTFP?= =?us-ascii?Q?85NMJsCVA2AEeqO6Jn/Hnr2ZgWAyfpSqzvQaGxaE6voScn1FqEexWuvCAdoZ?= =?us-ascii?Q?hyqcqWitift0VDpBj9BiEZldertHX7FYad6kjr/GHZ5BrStS2xJ4gwC78PKe?= =?us-ascii?Q?EOlHCsOuP6/5716vkW+UfviIx4X+MDc+/SEc/YOs38o3HyVc8xVbjrlGkcA3?= =?us-ascii?Q?tQ=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: 0cwjF6p6dcadMenFwCcZNrWBHPNOr95I145Qu84FUm5IN6lQFMe3GvS4WVVrHme/d7Jfno/mEQrqbn1dP8xt5k6sh4fd0rN6ymWW/Hmz124FUaz4p7MOZyRLM6CnsPs8fC2gVga+AZY9KREpIPSgsEDOtjjstJCYHaX/gPZjFjN8FNPBsS0PeS8fGoZkPOzYvgigEDxTwoN6c/zMc21xcKMYAFuswVphVoMXYQdd8NwL/QJHdB1wvSp+p8slL8bpVqrYjvU2evZslICEzJSd4skZGr2vC4XtAadV23G0CYudQxHJC4al5kKyDeLW77MeqQvuAe5ij0/X1Ki7cbO+/6P4owp2fo7IZ1hopmdpVqPAa0iMotIJVmS12BopQTImD43d2SjLZbiDQT3B47Jfi02FortfqAZuLTdm1w+A5I1Tu/rcYLiz+u88lcS52rgXPMqVpM0i3weud9ZBh68E09nrJHdRBeZ5ZkpWzvuwATAP/JPtI61WT7xfAYA8hbW5m6i1GIo6dOLW0YHgipUYtjt6qs3ps/Xux1iNf44bWV8bobmb6KW1WSag+VkUmZzwqco7UC83sX1wmxH16NjtPQXcysCsfKhAjoqcVIiqiRE= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 1af812b6-463a-4d2e-e89e-08ddeec887e6 X-MS-Exchange-CrossTenant-AuthSource: DM4PR10MB8218.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Sep 2025 11:11:59.9192 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: QhwY9Xg4eAtm7gFfhci8nMSmTyw+BcF2YJapov90EkODIVceFwND2lqdR6yjRt7KK/aiYYWvtnpHCyzCeImnTzK9REoPPcEpqAI+FxVxLKE= X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH3PR10MB6833 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1117,Hydra:6.1.9,FMLib:17.12.80.40 definitions=2025-09-08_04,2025-09-08_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxscore=0 bulkscore=0 suspectscore=0 mlxlogscore=999 adultscore=0 spamscore=0 phishscore=0 malwarescore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2508110000 definitions=main-2509080113 X-Proofpoint-GUID: 2GrThVDMJNCORHm69RF8CnnnXNhgTntd X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwOTA4MDA3NCBTYWx0ZWRfXyWTJ0gANiQ3N XMIx6Hlc4hpj+PKzG8u0VmuX8PTumIjSYER++6tPxQA4zaAUUXi9PNxy52EvsiDu0juBbh3YsyK v3o5zjQXTCeqzCKFOmmW60ZH9H0J2vW/rQrCcwI4a+xCQXtm4QZltA3q3IxrXfCsKYLCEstCYgW SR+D/5CjTVnGUg7r31/Lgh/zjciqKEYpVSl0xpIbZWQr7oWwkRYhTynzE5RmkZnnDoyfTriQjDo yBA5i2/cBTzuDjpW1CMN21xtCqszrfeSdptTkHzfmIhNgARFZtEPrhK5LR4MqGZO+LYv+h7SI2O y9Ju/0iYqUT5OfydfnzA+tl2AzYV9yQS3wJCNuzj6uNFxX+xNCnG73MekwXId4ZZakjYQOOTMWD 7XE5342getsChZLswMXrKMS9WxztJQ== X-Authority-Analysis: v=2.4 cv=Z8HsHGRA c=1 sm=1 tr=0 ts=68beba05 b=1 cx=c_pps a=zPCbziy225d3KhSqZt3L1A==:117 a=zPCbziy225d3KhSqZt3L1A==:17 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=wKuvFiaSGQ0qltdbU6+NXLB8nM8=:19 a=Ol13hO9ccFRV9qXi2t6ftBPywas=:19 a=xqWC_Br6kY4A:10 a=yJojWOMRYYMA:10 a=GoEa3M9JfhUA:10 a=yPCof4ZbAAAA:8 a=SrMRxt1Jfw9yMncY4tEA:9 cc=ntf awl=host:12068 X-Proofpoint-ORIG-GUID: 2GrThVDMJNCORHm69RF8CnnnXNhgTntd Content-Type: text/plain; charset="utf-8" Now we have the capacity to set up the VMA in f_op->mmap_prepare and then later, once the VMA is established, insert a mixed mapping in f_op->mmap_complete, do so for kcov. We utilise the context desc->mmap_context field to pass context between mmap_prepare and mmap_complete to conveniently provide the size over which the mapping is performed. Also note that we intentionally set VM_MIXEDMAP ahead of time so upon mmap_complete being invoked, vm_insert_page() does not adjust VMA flags. Signed-off-by: Lorenzo Stoakes --- kernel/kcov.c | 40 ++++++++++++++++++++++++++++------------ 1 file changed, 28 insertions(+), 12 deletions(-) diff --git a/kernel/kcov.c b/kernel/kcov.c index 1d85597057e1..53c8bcae54d0 100644 --- a/kernel/kcov.c +++ b/kernel/kcov.c @@ -484,23 +484,40 @@ void kcov_task_exit(struct task_struct *t) kcov_put(kcov); } =20 -static int kcov_mmap(struct file *filep, struct vm_area_struct *vma) +static int kcov_mmap_prepare(struct vm_area_desc *desc) { - int res =3D 0; - struct kcov *kcov =3D vma->vm_file->private_data; - unsigned long size, off; - struct page *page; + struct kcov *kcov =3D desc->file->private_data; + unsigned long size; unsigned long flags; + int res =3D 0; =20 spin_lock_irqsave(&kcov->lock, flags); size =3D kcov->size * sizeof(unsigned long); - if (kcov->area =3D=3D NULL || vma->vm_pgoff !=3D 0 || - vma->vm_end - vma->vm_start !=3D size) { + if (kcov->area =3D=3D NULL || desc->pgoff !=3D 0 || + vma_desc_size(desc) !=3D size) { res =3D -EINVAL; goto exit; } spin_unlock_irqrestore(&kcov->lock, flags); - vm_flags_set(vma, VM_DONTEXPAND); + + desc->vm_flags |=3D VM_DONTEXPAND | VM_MIXEDMAP; + desc->mmap_context =3D (void *)size; + + return 0; +exit: + spin_unlock_irqrestore(&kcov->lock, flags); + return res; +} + +static int kcov_mmap_complete(struct file *file, struct vm_area_struct *vm= a, + const void *context) +{ + struct kcov *kcov =3D file->private_data; + unsigned long size =3D (unsigned long)context; + struct page *page; + unsigned long off; + int res; + for (off =3D 0; off < size; off +=3D PAGE_SIZE) { page =3D vmalloc_to_page(kcov->area + off); res =3D vm_insert_page(vma, vma->vm_start + off, page); @@ -509,10 +526,8 @@ static int kcov_mmap(struct file *filep, struct vm_are= a_struct *vma) return res; } } + return 0; -exit: - spin_unlock_irqrestore(&kcov->lock, flags); - return res; } =20 static int kcov_open(struct inode *inode, struct file *filep) @@ -761,7 +776,8 @@ static const struct file_operations kcov_fops =3D { .open =3D kcov_open, .unlocked_ioctl =3D kcov_ioctl, .compat_ioctl =3D kcov_ioctl, - .mmap =3D kcov_mmap, + .mmap_prepare =3D kcov_mmap_prepare, + .mmap_complete =3D kcov_mmap_complete, .release =3D kcov_close, }; =20 --=20 2.51.0