From nobody Thu Oct 2 10:38:49 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 1BFC932127D; Wed, 17 Sep 2025 19:12:20 +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=1758136342; cv=fail; b=fVMRovU23TR5e8577TTNFrjJSBynmiEhjcKGVrswgEAEIAg8necsnHvX54OcnV38OsciTsPgfLhiUl0tH75Mk/bpdgZaAtGyFc04nRWT9/wRa0IammynUqXohdltXhQ58K73gtkOgqHfSizELjYZTODY3jI5GcwgrZ0ZnXA+C0M= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1758136342; c=relaxed/simple; bh=ytR6yf2SyHa6bIc5ncjNOcjxB21gx3i48EiD6AmT76o=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=IgteHZQIXcrp7CnrNuPk4NNxPuvkuXOBQyh3ZG1Am3Dya1gxxHPMAsZ1YiN5Y49rCoKHQkYxr9ynJYy36yeMsq40GA8so1qK1ShXXOB0APl79cRmbzYcz1WhIRvO9xdx8NPO1waXa3dYnkPYGgKpMuIqrtdWp4MmF5jPfGa7nwA= 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=gQGikju5; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=B9PI/8Pg; 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="gQGikju5"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="B9PI/8Pg" 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 58HEIWYC014420; Wed, 17 Sep 2025 19:11:31 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=pF2eY4Gltm75j9utnrjI+OtFdlruUnTM+YMpT/p1noA=; b= gQGikju5bkeCq0UYl+tX3Rm5bSha8vzmR8O0z1HBwXz1toczPMoMnUyNxc459mH/ qh/FFS3j7PWJpLJ7VcYOXBwzWIa7KKWpvzo+nSx3BUxxiduTwtah2PCBc50cpsU6 zzdgsAE5qpl2aSWzH+pKyhNVm4bf/SzIL6eRWATP7Lu+5+C2b6EQYNjBlyY/yMM7 V9HyAgqZwhWKg/10tvEqerxoD5hoKVubgT0BwjLBtCVmtbgX4nCEuSvNKdMfgMlK RC7JbCaO0/9l7MgA22uLWK54r3s6yf2gJquPV17yFFn86J2HHcSTsdkP+/Awakeg invSY9gdxuQO7OilqPYivQ== Received: from iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta03.appoci.oracle.com [130.35.103.27]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 497fxbt1q9-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 17 Sep 2025 19:11:31 +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 58HIf5xt036751; Wed, 17 Sep 2025 19:11:29 GMT Received: from sn4pr2101cu001.outbound.protection.outlook.com (mail-southcentralusazon11012014.outbound.protection.outlook.com [40.93.195.14]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 494y2e76fp-2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 17 Sep 2025 19:11:29 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=GDpaXKdZEVS0GaKbF/s5DbX2t/CiC2aIEBqXDJgbKpmQNug7+e+AHHiEEIhCcTKtdJVH8p9Fvgh0W+UcEc+doMByl7xYaNRaF79Y2asAzHxF64IxjXcs3S5eMnupdoreHtyyQP7pbwa/4tIT1ieTRMAV5etQgCTre40TyIoUxPtquh81ku6tKMkSvniaTIRApRPTz958ijfffLS3WnSDjpdjWnfaVZfByA4POvxCVJyzvg88x8ItgUemf3dV7ex9wTPvtYyuT2xTSBdO33+68ZCSszxvGb7NL5HUGP/Nhq+hUZuBiuTu8wV7oP6rPxO+K1zq28RcBCjtt/jO4B5S0Q== 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=pF2eY4Gltm75j9utnrjI+OtFdlruUnTM+YMpT/p1noA=; b=HMttLy2mrLJcapM2ymjQpHmxC/1xj095s/A6KsnaDdenOAom9t82LO2YSXakpT73EvqeL6lHanNH1uCzqcKR8gyehJPo1hY8KOc+w5fxDMRrRwvLQE17c8aRKKj3CuxRULfPKNI/7mmTYBw33YxaKavO1wfnQbkGp+sPDb14mhoU0nKyq1RdLVU7Yg93CTTMHhGOm8/uNBOkTkUUx7knjy/qgS/ewwGdW3+PiiwMoZK9Gwkj4oYBM1uqBGPllQaqo7x8lve6cSttnv1URo/cbaki1PHItXoFTvdPMwsLKaEUzGr5Wus3LtHo9X8WDe19zsWxlOCf2BkZbsRHBENNlw== 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=pF2eY4Gltm75j9utnrjI+OtFdlruUnTM+YMpT/p1noA=; b=B9PI/8PgrH4TzB56oRiiaZwioZFvOu9uJTtHzCYEGVY52aC43kJe6ls+kALLJJbr+mNW5EBw94BHvQoGquzvc3BSmUT/80ysfYd4xLrn4eCS639ZnwpXGkSNNh7sf5F7i+SBHOL5Juc97KWOkzTQscTQ9lLa/qTvxriIRC5ES8c= Received: from BL4PR10MB8229.namprd10.prod.outlook.com (2603:10b6:208:4e6::14) by LV8PR10MB7774.namprd10.prod.outlook.com (2603:10b6:408:1e8::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9137.13; Wed, 17 Sep 2025 19:11:24 +0000 Received: from BL4PR10MB8229.namprd10.prod.outlook.com ([fe80::552b:16d2:af:c582]) by BL4PR10MB8229.namprd10.prod.outlook.com ([fe80::552b:16d2:af:c582%3]) with mapi id 15.20.9115.022; Wed, 17 Sep 2025 19:11:24 +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 , iommu@lists.linux.dev, Kevin Tian , Will Deacon , Robin Murphy Subject: [PATCH v4 01/14] mm/shmem: update shmem to use mmap_prepare Date: Wed, 17 Sep 2025 20:11:03 +0100 Message-ID: <86029a4f59733826c8419e48f6ad4000932a6d08.1758135681.git.lorenzo.stoakes@oracle.com> X-Mailer: git-send-email 2.51.0 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: LO4P123CA0548.GBRP123.PROD.OUTLOOK.COM (2603:10a6:600:319::11) To BL4PR10MB8229.namprd10.prod.outlook.com (2603:10b6:208:4e6::14) 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: BL4PR10MB8229:EE_|LV8PR10MB7774:EE_ X-MS-Office365-Filtering-Correlation-Id: 3cbca183-4227-470c-2b8b-08ddf61dfe86 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|376014|366016|1800799024; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?52iC5q+vzCPEfxIT12GjpRo2oqRaxiRq4s3nUfPcMViluo5+REfhab/+tJeT?= =?us-ascii?Q?fh2r+dQKM1nGm9BdZxDcRaMmntlUHkHqHnRMhU94eEfTptz9ri4i4nkIuLik?= =?us-ascii?Q?AoTa76kAXBt+BvnQ3oh2ZipLt2QkklZsHnNE3cSNMETShcyRUDxiq98AWsdn?= =?us-ascii?Q?Ig2HBFEXxpy2ZHxbdi1itDCRHqtdruchW9wWCloKPoTHJMIxK/aCsZe3HC33?= =?us-ascii?Q?tX53R9QE8uqKU0XIgozC5ZVI5tUsoDmVTwNuWMPpfeTb7AYrM4puol8fUvcE?= =?us-ascii?Q?bGdtOKV+lQbErIf3NaD9I61Zh5QQMrHQN5lvvz3p15qN1l9LtFOaOUOTGJ0X?= =?us-ascii?Q?OZL+bu/c2w5c1XVCbRJ3EdqAK+Plwoc1w/fd6wPdA8et+yzIa53BWKBEKtk6?= =?us-ascii?Q?m5IDW27SFOcTWeZdlPi0oRmY4VFTsnDPG15zWLKSYS+B7sE99IK4U+PVgI+f?= =?us-ascii?Q?O6DuTmL9byTut+RwF6gMGhJRN1M9Kgn7SWH0izjKOkY49+/MDJjBPk7Pblfd?= =?us-ascii?Q?P3vfws2XvbJyCwYN+xudU4IKN2NF96Xkrk0sSGWNtWIusvUyi5aistf8LB2C?= =?us-ascii?Q?zoz4nTwc0a48rsiXq2kv/7vI88V8Ia6JDzU1DfwYXXwi4CjNyMIOmIbaLubL?= =?us-ascii?Q?lVT1GED55zKWp0ycEjB4CtMiShQgnbwhGGdaU/xQPSuvU56egrDrSCGVu+tm?= =?us-ascii?Q?mS6EZNEGuXzotJkE1Tmgo2uIcKvO68G3An+DxGff7ECestftl4chzsbMYL2U?= =?us-ascii?Q?N4Kg+wm4oozY65h0ml1SJYeq/ZV9AKqujLYL3nqvMR/ADGsHLSuoBu4GI1IM?= =?us-ascii?Q?GhalAJaXPg8uBXEzlQyAUmI3N+kWZy64vKnmc1TtUoS7HIb5M46cFWqPelMQ?= =?us-ascii?Q?iUk8xKj2+zpb6YPyTayZ3WSwJCabFttYYdk4BaYQgpjA/MYHF4QGLE/ovRw6?= =?us-ascii?Q?xyCAd77lrby5ZsrzRX4fexXRyBXEd+yBga7Rae3ecPfv1wXoLOhmzTlZsucd?= =?us-ascii?Q?SvCpBYmp63eYNUtv5NhYKgSa1Q93I9oksHuqnDoX83pHDXn+9W6XT8mfdkSA?= =?us-ascii?Q?Fs0xcSZe+4+lhGjfS4WP66V3rHH12FSjnpGIfbvQCPZ0kE45U5WQnJepoOkE?= =?us-ascii?Q?m/hmE2ECzT3uz3R0eaIw/h1Lye+xCOoOL6c9zuSoiRewSE/RX08UClKUWIIr?= =?us-ascii?Q?olJc9Sw/663hGvUYfwob9sSa2rFgiRvXVYGRCuiROl37bDqpgROrM2H7r2rt?= =?us-ascii?Q?+OGaXFq+kXuJjPac8kXzRenYY69i+6KkLmLjrQdWnDuwzzxr1jHTl3WUlhxW?= =?us-ascii?Q?Umez2RPZHPk63WrYs+K1JSdvkXJlkSfARdgAVDnaoDkbbt3zFWLfzJx6PTe/?= =?us-ascii?Q?oZYFfQOTARhc5KbiEFjQcnJVscSz1gH659+gBcFlDI0sbB2WGtCLNgxq8kIp?= =?us-ascii?Q?hLLARLmc5EQ=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BL4PR10MB8229.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(7416014)(376014)(366016)(1800799024);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?DvhsD9l26t6Og2y+ryUflNsgMAol/PBpuRkpGrjyI/ZmNV+Arx8AEMTFyE5U?= =?us-ascii?Q?CB9vTAoTTRsOygnhv8LEPweN6BQMGvipxY5eHUsyuxLJCX4fmYnicQkwv51Y?= =?us-ascii?Q?E8IOpXzqAIVpNcb0ufF8T8+28Ttf8hkfQI5AIuu4AoAe+JzgLeu2mZGO3ISv?= =?us-ascii?Q?vBBjdaCThX+NpMJ1280oJzhmk8nk3UBASH5fmEMlQsaGSEqddybH8d0zmA7H?= =?us-ascii?Q?HSjklxpbRGoBoa+cfzWD2ZqFfDE5YrQoCKaQRXJpJgXrrRGI5D8fgdT/38oO?= =?us-ascii?Q?2EYdpvkQWowREMy5wuT5FsOOF98hLlnXOyYAwRjm0cuNlQRHdfMIhTe8w9ng?= =?us-ascii?Q?WTljD3XACjShoZOK80SuJgTRjAbDh9AjzPXoPwbZZkSPfkj+OaGYNsKGdzE7?= =?us-ascii?Q?YarzG5gOxOHkXMlO9fLy+mLP7BBLGR/KZ4gnGmD5Nid6E+XQ/+ZBsRp33HY3?= =?us-ascii?Q?bt/fyXHRcik45Qwec7z6Ajeid+Nn8PLcdLHSRFGwrhoMeOrBk+ZG9kB2EVjX?= =?us-ascii?Q?PQ4D2Fx+8bF/H/AbG5pRY1a23tUV1Y3dl9w9xWu1t+sc7qjs1min+kHI87+d?= =?us-ascii?Q?igezvw3WsWTuMcsfhzNfx+Y6kYWUwy1ji12LuGoteqK/VZeRJBOH/A0d0pn6?= =?us-ascii?Q?yVoGTFCEaIxMM/sBnh5Rx/NwMubWv1RlS3iSSojobVIYQ+3ys4HJhOyAFDad?= =?us-ascii?Q?s2fu+MRA1TiW+3mSM1299UNG9+29R9xgjwwIvp5IXcnduGuW/ZZnrOgStNaZ?= =?us-ascii?Q?W2ptIy4+FFYSGHl8A5kt5ViQ7lW0M++oV0b88AuYjS32MYTbhqlll+7QlLQ5?= =?us-ascii?Q?add24DtkQKqhRs4WYglNkUe/UnRMA2sRN6pmNp9sHHDfYLpfBUBJTnLrJLuU?= =?us-ascii?Q?PShSJc0EgiHS8664Ge1niOh7gCqUmZl8bZQTGoNZWJXHMsPtDxzGZrareQpb?= =?us-ascii?Q?q5gvvdhXTbKtMiFXLlwJGSENwabFuV1WeejlxGetgt0cyRiUjOvstujZJ6x9?= =?us-ascii?Q?RQOkbacPxY6fwZOMjF58/jdsYvEtXn2FU+jZtLoSZQBiebgsn9cyy4OVJlKa?= =?us-ascii?Q?QJ6Wr2k3PCA0H7tmV8u4RssalfWo3wC3q+CmhU6g9hmhodF61BOPtPYwzXRP?= =?us-ascii?Q?f0v1BA+io63aOnIIAbkc9QUVYAtwj3rwKIYthBp04y0N0Mfwv2FhFMrpPiEc?= =?us-ascii?Q?ZanOXP9FDdALw31qBNEU2R7z30C/kRNeeHyQvsvq6viBefayF7KgKISWcfH9?= =?us-ascii?Q?GwPMKn3j3nlZz07EwiC/DQh9oYT5/gIV/SPBZkB28I5Rh2pV/dDMd18sqKSP?= =?us-ascii?Q?WFEXjYR5CSuYDUiVVCbLuCY1eGVuQDbrXCfYULq9N7wXLDk/Id98TEAFxvSi?= =?us-ascii?Q?FtR+TavIJHhcW1/VcX5DMaCk7yKfvUnPKQLZ/I6kXpmFsjbTOt3YJ/Sw5zSQ?= =?us-ascii?Q?LC2QqtyArJohy+Ape0zS8IWJnVUva+hiGSB6zA7FcSNU9KK8Zn2WaOq0N2Rc?= =?us-ascii?Q?GuHjPsLkqCx/Mq00b7vezY+hYcgF0JeTtVA09gRdLupkHDYrEeICDWu97r0p?= =?us-ascii?Q?kqdNlcIF2a+M8vSRdmLwwfJPPgI81HvnYiHnOgSLWjbUWhIA2FQw2gq36G0L?= =?us-ascii?Q?LQ=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: 9ZoLRbCgba+SxrqaDB6ykuDUpK5K52hyksmettEcNGE0VyfnJmUU8LrfKgQSLlXhaVhOA6Cy7Jxg1ilbN1Zxir+23bCKOTRw1MJsliM4xMxHptNFKZ971xiMU7bbKcM9lFmWFAniagSl6UK5xtZQ7kjF2IVZIiJsfy5BPGB5weYMveEeuZFMetUSbfjaJ4/Obk+bs1xhUtq6LuR/IrNmbLcrVle3TCsxKalRLVuwwtU5UP1VVuk37gU509HJv1iEVJTzdQvUqigsF7FKuENhhf7E+/YHGKrJBLvOrqbyZpdj2p+MlHhhRySVzrYq9JWyHWBY0YQI+hGHKe1NcFgOtel4ha3E+Ka63G6ey+BmkE4mDd2qX292aySAKYi2qbnDsFhT20dtZkZNbs/okxSnPJGl4tgqCvWu8bEELsVQIzCaNq1NNwq3A1IiXTv29MAHPV/XWtDlIBSJnt2nld2tZnxwX3MDmdcPUS0yX+29MICDp7sBvs6x830Z6btZ5yKYUczDz1Q5PcgF4fwP426K8MkJeN42l1tX2XEwguu8e6dZweUi2SysjulakBJM5XQ65yKmfKo4IO2Au8M3vYSC9Mn9HWEcTdCFGHjf7qAWRb0= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 3cbca183-4227-470c-2b8b-08ddf61dfe86 X-MS-Exchange-CrossTenant-AuthSource: BL4PR10MB8229.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Sep 2025 19:11:24.1746 (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: YCBuJVFn0lRpqNIfvmCN7HfLqJwDQZ7L7XDeu///hQZU+5U39nLwfGT24/GhGHcqfHq5wkhzGHIpmotqd6tDl4w1x5TjOiCSqomlQy/3OLE= X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV8PR10MB7774 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-17_01,2025-09-17_02,2025-03-28_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 bulkscore=0 mlxscore=0 spamscore=0 adultscore=0 suspectscore=0 malwarescore=0 mlxlogscore=999 phishscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2508110000 definitions=main-2509170187 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwOTE2MDIwMiBTYWx0ZWRfX/H671OResUYu bHhHLYKqGTfsXZaiIkQLayVtc6zOSRPvwBRn12AiyzsOppclp5rHeSeU1QR8UOij8m9SkP+MIFO IIwKhuhoG4mPjAs90vzsH6R4TcJSo/pagjVOy8qIdqtmgSn0bUMv2J80KKrCCNZ7jxJvsno+BNv 2lkZGsNYQrsAW0vfmS8EJ6dfsg8cnhrSkSHcW8wbbnyPASqB13fQ7rtxhdPAZkdnVVMLZXyroLk UMtiTMPWxaw+UoWlUUhCKF3ZX9WyTfiQe9o3ws0XJ43TOEZy67IlBNtXrcRdrVP6w4hq7g2xFS1 zBb92s/M7J0Xu9nGKrHV+r1tde+PytmhI20Ik6NZ3ga1rSGT/8NZPH2nO3g2/BFxA537p31SAzZ sh58SdFkw7jprABuJBDioqZeamq6cQ== X-Authority-Analysis: v=2.4 cv=X5RSKHTe c=1 sm=1 tr=0 ts=68cb07e3 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=SRrdq9N9AAAA:8 a=20KFwNOVAAAA:8 a=Ikd4Dj_1AAAA:8 a=prdUi6YERRC1zlzC8DUA:9 cc=ntf awl=host:12084 X-Proofpoint-GUID: DpfuqrhSl1RETCC_OIcvTeb-ojwLfBNE X-Proofpoint-ORIG-GUID: DpfuqrhSl1RETCC_OIcvTeb-ojwLfBNE 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 Reviewed-by: Jan Kara Reviewed-by: Jason Gunthorpe Reviewed-by: Pedro Falcato --- mm/shmem.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/mm/shmem.c b/mm/shmem.c index 87005c086d5a..df02a2e0ebbb 100644 --- a/mm/shmem.c +++ b/mm/shmem.c @@ -2938,16 +2938,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 @@ -5217,7 +5218,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 Thu Oct 2 10:38:49 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 DBACA32126F; Wed, 17 Sep 2025 19:12:19 +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=1758136341; cv=fail; b=D+DeTxJ/Fc80oSrqF3kScSl6OZQuIyQQbf/vWH6fa9jlC980/y3JPxc4mRXtd7MDwyaEr0bwM1XMQexAFwjRLLGPgyWHg45nxjnhhzgLnwchsYknzAgBX6pZz5IOFiJHs7gkoRkgyjBJcQ0Xx6aAUZTjthQfTAALTZPsQ+P/L/g= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1758136341; c=relaxed/simple; bh=TNXJDeBW0U2sLz4QBIhfmMGoGfHI/+eYYwAN8jcEck0=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=QHVJ6pzHbUHGpTivMLC6y/qBQbJOxYgjflzrW+5zHxEegcACyYLEdD8FLoLOKE5d44ZMfIJ8LUDMkEXN5buXYNPdsJEpa+JiIX6/ACUSRD31JpeFJGSRVeAMiQ5LNeuJbXFSegtsZgjHvXma4d/fZy12K8hZxi3tP8igQjXtdyU= 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=XlqLeIbt; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=esii5Yws; 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="XlqLeIbt"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="esii5Yws" 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 58HEIRmp001776; Wed, 17 Sep 2025 19:11:34 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=cRrT8kxAEV89n2rq1tA2Vp7IFr1cOAltsr49McoQNM8=; b= XlqLeIbtLHaF7uNvn67fciZsL5PXWctCnYOjfpCTbKvhfmPo81X2FmBgd4JqqKEx rGxCHWLs4eQpKjqyuRpVB5W6ECqlmBGRgTOXP29/NiWG882hnRcWQDAIIhxodSYZ J0tycMKSwMyYHt+bUUpNQnnCuR7ANTe58N24g+AgFlw3Lpthn88XKnIdvZQ+tJ6p QVJwtXbO21jXEKubLFbXkyY/eC54BTWMrqktK/gViY0XCHg34d+xUZkDA99muTyI y15VmY0ciVD4SaT03R7wXveLouvxKUivHnstsfIg26voBfRFM9ejGPaJO67Or4R/ AiPrzb0R0v4d8ZhVojyd0Q== Received: from phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta02.appoci.oracle.com [147.154.114.232]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 497fxd2071-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 17 Sep 2025 19:11:33 +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 58HHHrJ8028810; Wed, 17 Sep 2025 19:11:32 GMT Received: from ch1pr05cu001.outbound.protection.outlook.com (mail-northcentralusazon11010000.outbound.protection.outlook.com [52.101.193.0]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 494y2e5fkp-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 17 Sep 2025 19:11:32 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=Bi+79b8U6FmCrTrXIQqi51YhOIQkMN4aEdMQJ6AIwdi4AZdxJLd41lRMi/d6q58MXq2Y1H/xsEdZ2INxZFKNrsDoo7cRG8KuVL/4cfG8DhdMgdpMZn/1sWPZpYiqbi4IdscXsIZ4rq8281IDKWFCsSBWFBBU0d+ZykVNB/VoqPO1sp4+61jWYCrmvwaY5oEcyYSfEJ3iRJbQOP+Otsy4NrwtJnIU15XkFPwvOWUBjEQf/3O5K4YrgTr+fXqWRm9X3ekb3Qmz1x0sYqXU+n4FsL46W87l1e72QqSmbMGOhBuNxzi61NFF4nOPN+C6odYnf9Gaow76VtU5dKyuDy0Ylw== 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=cRrT8kxAEV89n2rq1tA2Vp7IFr1cOAltsr49McoQNM8=; b=b8vgATXbrM3vIUdmo4Kyi50aKXWI+9pulLurfbN3YZxJEWDGBr81+0ij2RKvX9AhC32Xw6cOIV6t9aeky6cFdYYZOW/fxcmpwe45jYIzlQLFuwOGHwI853awSZm1rRXNnoww5CQ+n1P6+c9GXXLfl7O+ocd8C7X9llYx61+amobZDvceL6ZjVb+scfAX4M//1qJdXZzyYZ7MPG0N8M33FvekaWLyToMmv3M3LjYeg8bmFiS5ghpkALUB9oGVE1BcikVBfe9wEWC4zBnykwL4o8rLscPe35aUikFOzkLF+FUgV1LTZCdcyK8HkKHhbWOkdTNKbwDa5dRtKQtfx45+zg== 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=cRrT8kxAEV89n2rq1tA2Vp7IFr1cOAltsr49McoQNM8=; b=esii5YwsSk5FGR4lnNRyxpkw/t7QgrvA2KbC29SOIki9lAaAvWaBO568D3RyO4ZDQGLB8atwIOMz8Xo0NqhfISUFJIeTjCUhDJYLeMhgSiKsmYrktnJtkNHbjcP/GvTrmVU6cAssupcdJRpUbome2GWpGeCSxyV2FUFO0hNFIxo= Received: from BL4PR10MB8229.namprd10.prod.outlook.com (2603:10b6:208:4e6::14) by LV8PR10MB7774.namprd10.prod.outlook.com (2603:10b6:408:1e8::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9137.13; Wed, 17 Sep 2025 19:11:26 +0000 Received: from BL4PR10MB8229.namprd10.prod.outlook.com ([fe80::552b:16d2:af:c582]) by BL4PR10MB8229.namprd10.prod.outlook.com ([fe80::552b:16d2:af:c582%3]) with mapi id 15.20.9115.022; Wed, 17 Sep 2025 19:11:26 +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 , iommu@lists.linux.dev, Kevin Tian , Will Deacon , Robin Murphy Subject: [PATCH v4 02/14] device/dax: update devdax to use mmap_prepare Date: Wed, 17 Sep 2025 20:11:04 +0100 Message-ID: X-Mailer: git-send-email 2.51.0 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: LO4P265CA0314.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:390::6) To BL4PR10MB8229.namprd10.prod.outlook.com (2603:10b6:208:4e6::14) 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: BL4PR10MB8229:EE_|LV8PR10MB7774:EE_ X-MS-Office365-Filtering-Correlation-Id: 2dca9c49-8c09-4f9a-71cc-08ddf61dffa2 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|376014|366016|1800799024; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?hp1MJKxfeg18GA9nX79Sm5L/4uC4suZUMUiwlygi5/l4i33n9rmnMCp1l6YW?= =?us-ascii?Q?EUTmvvpSozyCqvBPl6Hqk0gPi6VdpMw5xG1NEyNGuWbY/OBHdyduTCBW35wO?= =?us-ascii?Q?VTXHEhM5Nl2tMAY6SviY6GNf2zIn8ebPvFWAF0w/6Wp2esiuaX8xGGAO+0ce?= =?us-ascii?Q?1elL5cwRQ5kcKQ/DugqyCAZ7t7gu3ngJZEv7bIrjlLOU4jW9vhSZBJh3kYxE?= =?us-ascii?Q?C6lITUwWZDWaQVAWEHSIBnZZDUlk7Cy/vhFRV6qB9tyd/irgW0NoQB2pWQiz?= =?us-ascii?Q?3I2I4A4uxOYOkyM7QW/zgnxGj1Evc/EX98ErcKBDaarwxX4ie/0SLoX1TXfL?= =?us-ascii?Q?dHICc8Yr+g1GzYY/EfS70NDZw3JHvZ1Hc3Z1nqi0dYlSVZNy5JFzAch0CdgU?= =?us-ascii?Q?mpRCAXtfofOLocdqUziWdIS5TUnUwhTT/5fAGdXWmfNVTMUjlyBu4b54Rqow?= =?us-ascii?Q?48lPDY6lGo1z1KviJBKhbaM9/7ER5R2BFykfh9TQK+vZFNq2KcEIokogN95e?= =?us-ascii?Q?PqaOdleMMBh5lulS5/mmms6XXA5aw2qpNwLb+5NWSBZYNfPP6DJL36gFIexz?= =?us-ascii?Q?7uglkkVB+3ksqZHV/HEjLwtream3GnoOevcohws81YeUolfRXGYj+YuflYfI?= =?us-ascii?Q?VoSfqmQs8wCeRuMB9gnuW1scUpFuYq2qeBmO/Wb6MBAQk9wUNfSpdTm8EIXk?= =?us-ascii?Q?5WMEqZamPyQv1Rkmz5JogHbiWCVjlqAqhEuawuDredQixIhfhFMtdEKjNa8v?= =?us-ascii?Q?SRjJ39EwH0oacODdrd0N+v0UFDqbyko/OuETPeXlgbi+jtVw/6mQsdhSDKC2?= =?us-ascii?Q?+JPlscvA1yZiV0t+4zYygJm0A9qph1VEqWODS3kTmmOeYbeFvlK8sVsv/e0z?= =?us-ascii?Q?bpDFypb4vaNqEGmNySwry0qZKzNk2P5UYT0nAE8JNbIatCJY5l6Uu16WLgvp?= =?us-ascii?Q?5QT3ghQ66/1DGY23BSCyTCuzd6gPe06Ku6gsVdXBS1cmqIOri0+QAKsYjbL/?= =?us-ascii?Q?Hcq4aG4oNnR86L7wnmb/VExz1f2KcAfsBZxxLJA0e0b92tFnVYKDQ1Y64uuA?= =?us-ascii?Q?ui25yBdmNDc8pW+gyhH2yW0OCvBIrPE4PAprOgXp87C1qcl7zQkeQ2BSlOwn?= =?us-ascii?Q?Dx6QMYr39ymsxgv5KTec8tEnYd2STU3I4Z7lz5h7UfT7WTOWLNJBsErjopxu?= =?us-ascii?Q?sL8bS3LnhB/LyXtiVkW7XOTRX2yNy42VG3j4jT4J8azMe2BEaXd6cHZ6K9aE?= =?us-ascii?Q?gBqHBC6qce6/VXGn0KCLhA9mcJTNtQxmhg6AsOcCEzXbXaxQpeMbfKTlbRHR?= =?us-ascii?Q?C4LBUF/oYpveMEGyV7RChSHEp+XlkuthXtjt9OXQkyQ2Z3rMfLoy13raHOZn?= =?us-ascii?Q?JqQz4Wk3okNQLd6suz/YD1bG5grrg3+QY8Ji5V9y98PCIgdK85jpD8IiYAlJ?= =?us-ascii?Q?GqiO8wLD01Y=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BL4PR10MB8229.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(7416014)(376014)(366016)(1800799024);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?2zQyqqlW85bNRAhAqi35SIPN3Ez8elTvzlxICYJdnO7Kmto8C6jvU58/6MP5?= =?us-ascii?Q?LPYzD7dsii387FlntqSDncYA8BYOuFYyfyP/snflwapLC4XXyznIiqAWBx4G?= =?us-ascii?Q?7W/ILb0Zp6O2onzJf2MRZEOD/maMPZBtqFb7QF0djTDHFkdkS5xqDrTlGyZM?= =?us-ascii?Q?X7dAPzYj0KRFBntAeIHaB4MtnbdIN7yz5GwF9ip34ta/DBsS0hQUuX4dvcua?= =?us-ascii?Q?qZGOYS7acKeWmfdM5fPxO/chXuzY6C3Cp4uyA1mx/AkJ6RLpMp/AN2XKBtPB?= =?us-ascii?Q?4HWy0nmAR4T/b2+A2N/B2TPMXnLZx1qrNlSaGZVWZyp0kdJXUoQ2jjagXaya?= =?us-ascii?Q?d9Q7kHXpgWyaI14ntq/AIonoxqltxJLrTxBsdixVdw7JU8nASc3VyV+ONXIK?= =?us-ascii?Q?4yxj9Ug64Z7Hu05J5fC0x6qnzoqJvgB/MJUJwFz8OmAWjc2NI+qqCTI7tMCa?= =?us-ascii?Q?yB1WEIIQvtZIx77boNA7rjqTI+oNft7kOAK/BMbYg9YoL6LFyId3RbCQqOaC?= =?us-ascii?Q?4clJTugkmzJFYuCZItFzc6bqdyNkS1BD2vq0eq0nu6e78T4X5L9dIxbUx7n/?= =?us-ascii?Q?x9qHLyzjESfML1Lb6gIrlDyXUypiTJKWvfnMKA43m52pzZZKAieI7iDx0TB0?= =?us-ascii?Q?rBha1tBVjAsQxe1sGusMGDZ75zQNviSuKjRInzttjASlVGS4LJBYtWGsFFFO?= =?us-ascii?Q?SBO6//exk1SXejgdKTJmXHzTA0oKi1BpeLGx8V8QlU8QDaDjYvquWqUrIdtL?= =?us-ascii?Q?hYZZqTohuYATZFyTFN11YAtxgyIMuWQNaGiePkLlXHzgEjn8xg1AOrz5tWAY?= =?us-ascii?Q?z0I26DrzsOaZU3XOyLVaVHrFENIzzDGhPeascStl/vi9ZWB0TyyI4RldXnTc?= =?us-ascii?Q?pX7QqXn0wX44vROqf3FMDPeIcGkDf7/7EUi4sA487jGrwXVJvRfDY8sl2ZE7?= =?us-ascii?Q?QqUsVIcj86FdsPJxvkMlP3kp0fgJ5aAfo2UjUOm0K8cHL+D5JN/1Jc6xHLVr?= =?us-ascii?Q?by/x71ALBXmZfJo2TUoorUmIyc4MR/RKoBM5+ELoOqBWCyD/Qx5fd64MOEXr?= =?us-ascii?Q?th11j4bOOmD+4K1+Jn/c4U3dT3V6KnilZYnvAghdru0A02hpNTc2oSv5v5aE?= =?us-ascii?Q?WBIMNmyroCcS4eM2/MJkLPviNhDrHIBnrYbeCtje10OgRStrqR7AX1xSPwZK?= =?us-ascii?Q?VUMNkkGaoZwp9QACexLIP4WNl7UvHj3Y+8nI++7FzZKXhWNhLbTAFMTzf8d7?= =?us-ascii?Q?mgaLBfaOoowtMn01WuVHvrxCUfX162OFjwRFbbF5zoxbEMp5L5PcE/iulHY/?= =?us-ascii?Q?jtJ5+1zJtCMBSWWo0L/mqGqvAAAhiK2hA6VcMujB1ZnoUzUi+LCJwMRPRLgZ?= =?us-ascii?Q?sxB2umM2J2SgPBlMU2lZb5IBPimMUF2GuGBZ0ZdgYjW3Tfq+iQiT3zXT61O2?= =?us-ascii?Q?dTHN1O1tBK12dgX6w5T8lwKu+FUPDokVayBV6gwxtaZcApYsBw+Am5dNB5J7?= =?us-ascii?Q?RpWR98fCaqqXEjO0We3QUUbcPZiNaCUDA9IIwwKb+eFThgjTkAIb/m3N9MbQ?= =?us-ascii?Q?A4apSv931vSTRRfN21yWtb7abLbxIHNad+Nb1spoE/W482fKMUOTHQNAC7Jb?= =?us-ascii?Q?cA=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: idDHcPtQyfUoazZeDrgbikTwzUB1VeLGPm7ZquzLL14yvHikozUBU8AWYmTNhfuRP4GU/9OD4pOON+ol7blaupYo7ceAne3Y2E9YMLzBGlPRPESAo7kW0s7wn98QifRm/Ki1lVtRzvH5ePoKtHYFQNQVs+ZREI9l8x6eaUwU+umxqPL0KtTXYEIx/rThrPQpq2eSgfBkSNj6nLdhHJjqHp7vDv4pVNPjUcOD5AM6V8WbpGb0ME/lwqyAM4PZ1ObhLbbDwe0VehEUAsWlTWcg42jPLVvPjhrR/QoKnZrCcRJXbieMOGVkHm0YEs5qA1O/6gxiTXPHCdci9qmhJSBMulKiwmAN+7ecC8agH0C8Ns42FinxuEZESKQWVmhS1iO2VvbiQhU6ZtL6bdaaa9EeiPIAjNPBcgXDV28JfMDnftIQ82DniC/bHGM0vC810jsjv6LBK9XMGqf/Oqb1zvAeLtHYSPKI4sWiBVDlpSG5Qi/DOxis5C2sUGwWhZnWq9HLjx2e5XPiLA7I3BUIvCAEwyt8PxoGach97cTVDg0Y8CAYnYbCZFBckynJKe+yj+RrXDKCm1j8jp5IkdVfJnO6iR/ViND8SKxBL8fSyUcxKrQ= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 2dca9c49-8c09-4f9a-71cc-08ddf61dffa2 X-MS-Exchange-CrossTenant-AuthSource: BL4PR10MB8229.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Sep 2025 19:11:26.1135 (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: E5A/dZAVxlqGscyjL+HoRc+qyPuODgkD0OqeRW0hKu04HYEcsTDiwy0/ONst++dQU/MLJyFiaFmiCf7ZQtUsmKZXf4tAqUcJsTNjnewPrjg= X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV8PR10MB7774 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-17_01,2025-09-17_02,2025-03-28_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 malwarescore=0 spamscore=0 phishscore=0 bulkscore=0 mlxscore=0 suspectscore=0 mlxlogscore=999 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2508110000 definitions=main-2509170187 X-Proofpoint-GUID: lNDe-b5pZ0xmZt9wS6VzxvJJIwsL726_ X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwOTE2MDIwMiBTYWx0ZWRfX3UMCu+50mxkT nmOQy4SatZlVeTqZl+aZlrtgitpeuUx6CIVAk3y2f3sHbhlH8CwZjLSOFlNiOArxgWBFbwEAuu+ 35fWdDF1iffiI3D06KJCtvhlS6kQGwv9+Rb5+Giz4UUe1Cr8drfGAqczrnc8cztgtAf5EgCCZ1x eLvp5veGqnOQ833XWFTp5XK40SYxa3mYX/9NliPqgm0aDba4G2jy9IJ4tba+Nt6hCqnYzOm7vq1 ZgVQHA2GcJnmxVIOaifNfQ49UAerRr59p3x5ODuPFvKpqMtzCBY0jwYNHfZ2WfLZqiWUWxgQGjZ 8PBWPKFrqObr19NmDfTwlY5JbXX0rS4JdacRXAxkPwkX5Jyi1BWe8cXeHN4LDnD/DzpgAF1yTdd 3RkRI4rP X-Authority-Analysis: v=2.4 cv=cerSrmDM c=1 sm=1 tr=0 ts=68cb07e5 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=20KFwNOVAAAA:8 a=Ikd4Dj_1AAAA:8 a=miBipihQI5mFMOzj8b0A:9 X-Proofpoint-ORIG-GUID: lNDe-b5pZ0xmZt9wS6VzxvJJIwsL726_ 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 Reviewed-by: Jan Kara Reviewed-by: Jason Gunthorpe Acked-by: Pedro Falcato --- 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 Thu Oct 2 10:38:49 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 2F5552FF163; Wed, 17 Sep 2025 19:12:17 +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=1758136340; cv=fail; b=FP1LvLuFomycIGu/0RUs7bT+yK4lnHH4Iir0s+SS4eFOGArcdRfITQOdrqz6W+KGvqcwHtDwpgZ4aRpXTI7TXTdzMh3Jk8SlK0ejdah0O+SghEituYIWs7YkznWfvuiMiRcnP3gNs5uoiRsmiG1fXOribFoVwhpAVrDSMKsGGqk= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1758136340; c=relaxed/simple; bh=x/gytmsF0AqreyLSU2AW6Cc7U8Po/hW0NeKMHerdevA=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=Z4ZsAGUks/nLNaDvP/oHvMZcAfr6ljMzfnctLMVm2c5ztrfxWDBXlARnTdcoGfTolsIJk0LWl0MPsvJeckW0C/P9VbcHf5oRj0zjlmr1lkcy6zqdNrCKGY2KMyhlJK7ge5w13I5z9aWTCHj2ZOTqxtCqC+hqGTjvtOZNh+8Sd2Y= 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=SvqhhI/d; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=OkwbVwO5; 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="SvqhhI/d"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="OkwbVwO5" 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 58HEIRmq001776; Wed, 17 Sep 2025 19:11:34 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=W1DbtbJcDWMh9bkVnPjTAPguBV5ySqOLxt9f4a5AmWQ=; b= SvqhhI/dq8m+0zlqGMjJ1+4211FtRGjJ3CORbhY0/v8TUW30yfgTRIMy5FvsR6bB jVnzVkitdZBvbjQ73WjRJwdmgKIHrWe99KCw/CdpTUk8262/6CRhc/p9UQKnmpAJ hBUYS8SLHcQOMTjzAV1GmqzynaASLq3n/hoKDFa0cciiQWjxIG36zC6edhPTMGEc Tg+z2uLF/PwMOFLe2lhaOEXiIeAT2gINteJb3gCUEZ/1+oA8Enfyq38df6cdSP2y +UdVFtUQ9gK5mhj8sk8nEodppomH2Zu4+N1owfsb3mf3QWMyvsSlzxlMceKl0DQQ et/iO7vUWswIBqJk04SQ5w== Received: from phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta01.appoci.oracle.com [138.1.114.2]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 497fxd2073-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 17 Sep 2025 19:11:34 +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 58HHmk6U001628; Wed, 17 Sep 2025 19:11:32 GMT Received: from ch4pr04cu002.outbound.protection.outlook.com (mail-northcentralusazon11013068.outbound.protection.outlook.com [40.107.201.68]) by phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 494y2edr1x-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 17 Sep 2025 19:11:32 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=IUOsSKa5FU+yU5x/5xcyW4T57k2EYWSQgImTcWWr5yyswehxQqOit4OQOD42sJZ0uf17c9X1iG4BIo4czhO0mb8OAATSKjRFURsvU/WhDzlfWBc46VgQDcuvVuBsLZQ1MMtu8+GzXM8u9WjLe7Yf0hdRoHTf/PJx8TAmVctn9hqj2QzXp9AGR+LtFnROeN7ns7usiIXT7Vt2uG0fYe+rLvYRz8aWgGz9B17QJC6j2/shuH6yZ0O94hhuBOXgQjBt9kVsvDvq/pN3MiMUlJKyRx8dz6a57OQiL0AxuoPHpEkBsZkNtr2bA36N+KkjqeiU9ulPkeE7mmqMxuiVrukIEg== 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=W1DbtbJcDWMh9bkVnPjTAPguBV5ySqOLxt9f4a5AmWQ=; b=Cx/K+XDH+zVWH+8bqu8piq75oQIdver1T8Dxr+VE8D6300LiThtMJjbulQMDpv7G01OLcAQAgcftNun7hLKNT3D/CdgOpRWMKCg9sdD8aMhLnMxl3KXSPxTrOu4ZkX1BPZt8N4APnv7Yo4RO4Taj08BHsaBkeedzccsUc9RahHCDjrcKwO2sJU/dq4ZItWZ7YknlSHClVI2nqYgum11vu/t3QTSCszzsNrWJsvNExA0uZKRYTQAWAUPv1pGyC0xDkXaBLEy2jrY4WuCZyGomHB1IORpyDMOxUbJFGDI+yKquP6U+CSTFlLc0f9gBc0ROBp9/F5ZurLG79sE1CL3ZMg== 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=W1DbtbJcDWMh9bkVnPjTAPguBV5ySqOLxt9f4a5AmWQ=; b=OkwbVwO5ihtVhK0/ClcD8M+aZV5M+nGG5iHtFBDUxYYOs0yxrG1s5seQ4J9UFM+9vhwiNT5SauCUasNCTEtnpfRUcBP66FZzqejKcu7bAoEmUPwZ5FHCRwuFeDxFrvGuuV5uXhO1B3wcC1Mcf+zVnFsJeRiQQeeETqIT+Gn9qu0= Received: from BL4PR10MB8229.namprd10.prod.outlook.com (2603:10b6:208:4e6::14) by CY5PR10MB6189.namprd10.prod.outlook.com (2603:10b6:930:33::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9094.22; Wed, 17 Sep 2025 19:11:27 +0000 Received: from BL4PR10MB8229.namprd10.prod.outlook.com ([fe80::552b:16d2:af:c582]) by BL4PR10MB8229.namprd10.prod.outlook.com ([fe80::552b:16d2:af:c582%3]) with mapi id 15.20.9115.022; Wed, 17 Sep 2025 19: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 , iommu@lists.linux.dev, Kevin Tian , Will Deacon , Robin Murphy Subject: [PATCH v4 03/14] mm: add vma_desc_size(), vma_desc_pages() helpers Date: Wed, 17 Sep 2025 20:11:05 +0100 Message-ID: <5fa007dc4905c863abe6fe97de1238c30b1958ff.1758135681.git.lorenzo.stoakes@oracle.com> X-Mailer: git-send-email 2.51.0 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: LO4P123CA0638.GBRP123.PROD.OUTLOOK.COM (2603:10a6:600:296::18) To BL4PR10MB8229.namprd10.prod.outlook.com (2603:10b6:208:4e6::14) 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: BL4PR10MB8229:EE_|CY5PR10MB6189:EE_ X-MS-Office365-Filtering-Correlation-Id: 6371dcdd-74ce-4322-0987-08ddf61e00a9 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|7416014|376014|366016; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?IMr4ADZQ188vB5IA5SSEnfaIxlXcD4al6d8bTXTTe8vP0jB1s+FTU4V3r3LZ?= =?us-ascii?Q?Dtjt0mu1LbT6Zl9W7YRRgBVjkvzJOSz8aPki3H4xAHiMPyaQThgStNIwIU1A?= =?us-ascii?Q?sUoC907T0hBgGZD+eVmu+RveRwAFKg5W6/RHRvXj//M7lgoabCt+xbwrCogD?= =?us-ascii?Q?QT0IxvmDTg3q0bMhzkH3DCz7IztaA+G+ehl6VJSyiwFHBPSHICyl7/yMVBzX?= =?us-ascii?Q?u4iDBf1P7K2Ld2UHbkgKD8c64rWn4UFrskp3elxZNbggp+yf17FZSj6KDDWh?= =?us-ascii?Q?Pg4GcOx/uiY77fi7TGSqyKl70M/z+PA7eXdtOg/Zxk4wmGr/XmksOWTCmFWB?= =?us-ascii?Q?gkNuPCCpUUt4/qaKOB2EllcGacnexr5wLcZ3ulUpbafQ32+iPdH6IOWODhEp?= =?us-ascii?Q?8bXj9fj331W41a1dO/SanB6GG6we2eKpM3hlBC/nVvFO/F6yJUSqyUJ+FKwP?= =?us-ascii?Q?e19+Oj2L+QgbuPHuvbbRhkB6iuCvpcu5MzK+e2syWozsWnsFTDL79KKyG0K6?= =?us-ascii?Q?wUCt+jwFKsdGuc8oL47pG0R7zJlYiMittsaNIpPKvasVBnNjh/N40+osNWGY?= =?us-ascii?Q?P0F9dwzzsoUQ3tqDdUDqZiYQ5gVBWefTnVw8On5c71rPyvTB9Q+CysMgCsdG?= =?us-ascii?Q?HO/GsuTR0CZIZMpK1zzVc3P8/LgG/9KzLS+OxFjJx8fX+IIknoZ1RonrSJk0?= =?us-ascii?Q?yRI8t2uvhIgxSwKf4thwPlXvOwIU0VP2knMdhbt3AzpNwqRpmBYUiQGO6qEs?= =?us-ascii?Q?EZaFsO64W4YaudrPBIt9IxmwxOv2L8CqNUxpMExrWxtdnj2aVXo2tvbZ084U?= =?us-ascii?Q?QaCp1V7WdX8F/iq5aonGw6/pt0nGk2HNeZHOEChybY3Ta520f94Woob8Oq/r?= =?us-ascii?Q?OUEplsQvIdnfu2Wedlf/FtLEMJdOxKDI/xsA/eBdzpJTgON0LNiay7Ygnzl8?= =?us-ascii?Q?+hiR+Yy7LwP7M4sQySXpggCDdCVQUJ23WEnC7E+1C85SUa/zgWMsHCznfvLL?= =?us-ascii?Q?rp946+JvGRkqjgu8QukkcYUWUgIq5tOM3XaMl23ZGZUHxLcfPf1gYxfwe8vl?= =?us-ascii?Q?e3DN6cH8znkyVktlAY8WSo8NNEXfxen2rX9XJrlEzXyp6S/VdxBBfJ1h0+nA?= =?us-ascii?Q?KLCLSC6W80H+Zt/q4s8/4+P0YtcZuDlI8cCzwBFyRc/Oj9oxd6XOlrrWxo2A?= =?us-ascii?Q?/TzmtSEZjPewVOpxoLFEEvuxM8zYzG6KFo2avwvu2uVb01xyJqdMPiv34yoV?= =?us-ascii?Q?IpAttKeHd5nPEHpvHwdLOZ1cvvpr1nLk4Z1iMhDiO8URZ3PEj7WmMTxS2/Jy?= =?us-ascii?Q?XLg77eI4buqCXacMQrR1oJ9B1HLMEKPGriYjqv578Z6Wieks/v7YMq/ANU/C?= =?us-ascii?Q?LSSUN+6D4AZC3zI0suBnmzw4PKEAPj64WuW6jcUTHAmLOAoBat6/97dCqK8A?= =?us-ascii?Q?PswphvOQ/CU=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BL4PR10MB8229.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(7416014)(376014)(366016);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?+xjl7vmhgfh5O9ZxSzTMH6LYon9cDJcBEezgtkSA0/5sZSBXl+PIjzvRUQlm?= =?us-ascii?Q?FFRoI1cy+FoXOChEUUyhVbJCFAELiXc80bW9Rm8vMyZPWvlV35OG7ukZe5H+?= =?us-ascii?Q?Mq2ygWozwF/BlHL6qiwgzAiW3vJiySiSCLQPnZH0RaaWiPB+jjXjYgvRqy2y?= =?us-ascii?Q?rF9BvdWu6qIHCoJEqxsz06uRTLWsGfEvcFH5Qlf7jPJhBrzx8dTFMJ6Wbral?= =?us-ascii?Q?7ONojhiND4ZMBb4zxieOAmBxUJVNRP1kd4KCWnd3Jee8ZOG3GSbQqyyBLdoX?= =?us-ascii?Q?fI+t6EjOJHwj3HHTFoupR90S9fvnCk5K1DAKgHb8oiLtYKOn4K+p4ZYNEjfP?= =?us-ascii?Q?DrcM3ATRKBPntA9weYYz0vAnMrwm6rLrV77mcIK+eHjZp6TN+8f5Gk/APBTE?= =?us-ascii?Q?T9JeukIUMEUpZau5bLXcXtfKC133SLA8nCUPvtGRmnrxnkhpha90UPkTlDjO?= =?us-ascii?Q?QgL2/DZwGhbE4ju3HuOypeRtD2GIYs3PVKh/M7em00T/09h0TjCRjt0BAhwZ?= =?us-ascii?Q?ZZzSMB9900XV/TkCTlxUyTGjMP5GRrsRou5A0LJEd8NgofdSfZ0j+iwxzzs8?= =?us-ascii?Q?76/hIDdgiFhNNwAex0q3bnv9b2KWFFiQ86IrcDzKsGl5FONkp+qFN4BLvtRW?= =?us-ascii?Q?m7HvinbUd/4Imi6lNAiuTK+L2aORY2nqooYWaA+gMX+qY96WHFp6/v5qkkMq?= =?us-ascii?Q?NU/zBuaxNatYtL3l9++kneMWro1ZlzXfV79OWI2RlBUlsJYbQxX9Z4Gd2ugP?= =?us-ascii?Q?QzbVzY47XPSpEX5QjWBV6FYOd0LDiBZMcPTt0OprvezAlAaXxSOBLBH6WF0b?= =?us-ascii?Q?E/8n5QifpWqFvW5wZu2/AtGJaSf46dUSgZeZN6LARXkph0a3Y92uugg9xkRS?= =?us-ascii?Q?B8HZRvF559eamkHFe4M6be1Dc/Aai4qdrKu7xQy/jp7RTZSLyeIUVOKjrMTY?= =?us-ascii?Q?mZf2HYRoX/sQ7mo2UXOmPVJp01BIxlcJ+gIFJLIIzXrRpx/4l+E4tmJWIB0i?= =?us-ascii?Q?ZgVxYBn8U5CRd/DN2OeZfU+CFCmnPkp2BvIT7uSCRW0QvLQwc+VcliwngcpL?= =?us-ascii?Q?KaaroXl+YOMBd9Euj+xTpzQeyE+yFn6sopJv8PVOdYM6Ab3hSCLZDNdhQy4Q?= =?us-ascii?Q?wkhlvvQkrZjK8KzYBpLHde5Fuu8LL7H9jBol71iwBLUVVJi164e7Q/yWOI0P?= =?us-ascii?Q?hryoD7EySffb6JaCGKIpymxhARBZ6/BzOHtdL/vMsnOI0jAVUSlUalib7fzK?= =?us-ascii?Q?pUsPq4a1/g5CH3cAdMRXxKbZFcVvsBVypbX9P19B2IwvyUJTIu38s63YWNjp?= =?us-ascii?Q?D6MKbUyjBuB9JfCdgpfPtP0oQw98WHBe3J7uGHhiT6rmSBVxOY0Y85zgyI/h?= =?us-ascii?Q?mjPOxLhO086mTFpGjDfbyuw1xEKZQOFEjbWHB5E+e6eiWEfc11lMvNC0Veu2?= =?us-ascii?Q?c2snv+J/kJMV0t4yNzRv7SjN0F0zLTKZWAoQ2zxOS+XQr4SMavwGv5ZBZ/Q7?= =?us-ascii?Q?EWVAqTSyKLbeArLuphey9MK1S+CvVlE/EG1GC8jwJTEW1TgMFLEBzafWfcfC?= =?us-ascii?Q?j/GpqG3xrxOqmmlW1O/T/+qCjvsdej82pfRkFScjIjPY4otBSHIUbJvNz72q?= =?us-ascii?Q?SA=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: 6XMvTLZ4rCSlPz72VJxyJePgHJi5A6FlUQDMURa8qugBiBRKw+PyXYMxUh+3T8m4omRZ0hZzoDg4frvUJKIn2bb95YNFv6nv3qW63hFpOFZ4NPFiQ7/28hHULCGuPercdpTwPYH4zGKDgkm+Mwx/MBhQRf6WTq1vFfWecVBJm5EKTAo/vlUzqel3c8XbRhRS7x4+rU9B2IyL+VI6uvqkyYvbE0XrPkEIESmaMh9R+uOp+zbbrr7FfKudPLg6Wmmslxj8oPSGEEtTNvr7xbHy05zDvl11+YoRltGj2mZEofEiJWZWfgQLrd7SPEoaUt/gNjVR4KSs4wNV/HEYfMba1j4E8F3UU+W2SOIBrCsRSwHeDBg1n57Bkdl9owlAm0KagPc7IyH+FX3LnRXwe40nDFMEYUaM55IOHr9PwcQRu5dQO8m3Z7DRZA1jPpTCUDLHG2LR7yxDrPCpgVq9bHvvnhhhjTJWpHhGZYqAwaBqhXpnqzOKdo942E0blM7gwQmol0dW7tii3RFLuA8mhyhsBZBsf0yIqEeNt1ifDKpljFH4QpXw+BsW5EAoYdw7U8S8kw4SrCUfUj2lEuj1qsaVBT3R5njotfRWZhFtNRPqV+o= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 6371dcdd-74ce-4322-0987-08ddf61e00a9 X-MS-Exchange-CrossTenant-AuthSource: BL4PR10MB8229.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Sep 2025 19:11:27.7538 (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: 7ao1Wt/WLMPlNgFsVKfW6SddlGeYTVuIAeQh0br7rK2Y5Sw5h5+IhjHWRl7lq8ruo8zff79QBfTb8inVMIWimQ+ER9XY7ccDzTYyxZUj3G0= X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY5PR10MB6189 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-17_01,2025-09-17_02,2025-03-28_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 malwarescore=0 phishscore=0 suspectscore=0 spamscore=0 mlxscore=0 adultscore=0 bulkscore=0 mlxlogscore=999 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2508110000 definitions=main-2509170187 X-Proofpoint-GUID: 3ncm_bUCDgasLYZgmdDx9Lsq6L6_pFNq X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwOTE2MDIwMiBTYWx0ZWRfX6QTHInmyos0u TOe0JTWtHrRVTBxL2eQKndgObQDF4uCqYm+1V05vA1AOtIbv08YRyL7uEeYUHXQkNeVEykvyzpT 6aFHR8Z9nAsR8qkO7NAfPWE9QRT0f/DJ3tCdIkZipBznMwl1PaVeZ+qiXCEYdIw5pDQJ4TNZ6vX wzjnZeKXVkGYqO80rStIMR3CMwkU59rnYONjzPbt8PXAAKHy6KdU0pllvwVYg+FtE+/TkANewpA NYmGpR6efFyMS/ink7yV6SqJjvxzUTl0XvebriXVoNEIsKgSSNDlAGUFZa7cCWyT7x/Y8piboL6 +FPOnrVjjxf1kdUncvf8Ue+ODo8lzgpq5xfCY6QFVkfVcqHvpQE6ArVX327i4ZIQgNbaahXVp8I Qbo1JGfE X-Authority-Analysis: v=2.4 cv=cerSrmDM c=1 sm=1 tr=0 ts=68cb07e6 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=20KFwNOVAAAA:8 a=Ikd4Dj_1AAAA:8 a=V8PVCHvh7cpLA54rH4kA:9 X-Proofpoint-ORIG-GUID: 3ncm_bUCDgasLYZgmdDx9Lsq6L6_pFNq 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 Reviewed-by: Jan Kara Acked-by: David Hildenbrand Reviewed-by: Jason Gunthorpe Reviewed-by: Pedro Falcato --- 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 da6e0abad2cb..dd1fec5f028a 100644 --- a/include/linux/mm.h +++ b/include/linux/mm.h @@ -3571,6 +3571,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(const struct vm_area_desc *desc) +{ + return desc->end - desc->start; +} + +static inline unsigned long vma_desc_pages(const 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 Thu Oct 2 10:38:49 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 C6142321298; Wed, 17 Sep 2025 19:12:21 +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=1758136343; cv=fail; b=NDsWJiileWMsFQWc+fyHuAOHFCsqyUmW+RWOJ6+pQUviEUiFIzGFNm/0uueNrubPfNxg9IDZzHKCAWSGH319X65hrH2QGajK6QtAOvZW7pihB773XjEILiPh/tGN3pptOtZxPopS49LUWLHS2oW8wYuQ21U0L3vvddSb7TOlEGI= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1758136343; c=relaxed/simple; bh=+YXbU+V+3RsOzkxrjcID3+UxB0edH6sjaNSe56/JePs=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=q4sjuhpO384G/s8Vm5GPvOC85nYMReZEzb+g1N3YxTyY3gWoJdc6TjKxg9c/tMdGx1NVO/996Ecdk7Kf6+Mhjw+MsTEagB10QkxUtuzOvWiAWhVmz6dwuCPN/O1Fn9ST7GZlumYh+O9Md49wWxUNOQJ0MEeLYLj/HAAOqc0HnDI= 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=ddDacGpH; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=qMkwnXLL; 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="ddDacGpH"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="qMkwnXLL" Received: from pps.filterd (m0246630.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 58HEITuh008296; Wed, 17 Sep 2025 19:11:36 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=t74fB1rLq63mz3sL6A47wt/uIDjXLjx7Gbd52PfTYGk=; b= ddDacGpH2hdVMs5Bf3GSC5mg5waxe9tTULs7i1kCn51HMV54eZM6O8BS9Fsw1ljK nlDaYLJXGnrgh0ClPZNQTgLSIBFQHa6pPlmbNkosF/6zXDUzLb6qfQAfsFGYdkfh x4oLgHr2I+nynnt0gIvIRkDtJCv3KklAbAZVqXcZDCAoSSDyHiNPyFpeP5etYDR6 mwvPwuE0FRhpKd3lPqeuZad58N1dHMDMfegfoBqH8ggFSR50HILbphBSvInb67Fp OIb/dsSefSOI/rDyXb+m6gV5onP7ShlQ+AthGYDTY2D3u5CjQcRl1Bk6B9/57pM5 uxhwYyWz2U/iR0N30I579g== Received: from phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta01.appoci.oracle.com [138.1.114.2]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 497fx8hxn8-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 17 Sep 2025 19:11:36 +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 58HHmk6W001628; Wed, 17 Sep 2025 19:11:34 GMT Received: from ch4pr04cu002.outbound.protection.outlook.com (mail-northcentralusazon11013068.outbound.protection.outlook.com [40.107.201.68]) by phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 494y2edr1x-2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 17 Sep 2025 19:11:34 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=tfk03IvahQlgqe5cYBOCTzP1tdjTWbhRTssW+GFJqSI6Q92de8wS9U7F1oyZhTIkpaApmtruSVpc63k2AQ/WyB9s7uexW6ZrgY+fk7R2mQet5nAsyzJImlCX7aWZFFVAronnkxxlRpkOsPUvdb3ds7YON5zjr4S0YtfyPR3o88avX4kJjduuC3oKCwnIaZizn+7U5iMbFur3oHhajZiGsdyv1Bm74R7/kqmGEpUiSPUYSPmcYo9F77HKPH5BmYbqUvgKG/tK4LGzfz/rj9M8z8JLQcYUXOBdoAmfZxQcYPpsQ9dBhnEUhkFKz4K6TbrYPrl0cQWk5uH5web/azz0rw== 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=t74fB1rLq63mz3sL6A47wt/uIDjXLjx7Gbd52PfTYGk=; b=eCyWEF+njhN2FBXemQFG2j9RGgfuLuwo0OxRq/Kezlu02f6Jp8TZF1jdOuVQ7TPOD0gcwXNULMwf/uGxe1n80I6whXFt+K23Tbw5X2eXrvA+urL1kt46qaUbHvPsBrcaldwSyw1wm+GHzVjE7RPlucmNk9ZYBLsejDIjVJM9MIzUafYb9q86M0w/BrFTrO2xQGBfeKC5N220T9U0UeGiq+mlnRGBEoQPLqaHToOcxTfwM2wg5KAquVzgxqqahKmaWH/+v/bxgj5VfHdnPaUD90QZBJiiSlg6TAWGrgdW9ZY1ruoepzy/o/cwHBMzojBQeb9jVeAz+AAoIu5zdxbH5g== 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=t74fB1rLq63mz3sL6A47wt/uIDjXLjx7Gbd52PfTYGk=; b=qMkwnXLL37lPhaOhyJdnefmT9H94bst5Cfsl0k4EwmaiYTqwho1XNJ7sL/k8JXaei3bqtvXsFzL/Bgy+raoh41jnaMsu4X4Dkuyile7++AJZ95hspZvoyzXN8xNR2pKEXTeti5GwiUZ3o486tgXw26BGlaDD0hZrXnX7zuLfAEM= Received: from BL4PR10MB8229.namprd10.prod.outlook.com (2603:10b6:208:4e6::14) by CY5PR10MB6189.namprd10.prod.outlook.com (2603:10b6:930:33::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9094.22; Wed, 17 Sep 2025 19:11:29 +0000 Received: from BL4PR10MB8229.namprd10.prod.outlook.com ([fe80::552b:16d2:af:c582]) by BL4PR10MB8229.namprd10.prod.outlook.com ([fe80::552b:16d2:af:c582%3]) with mapi id 15.20.9115.022; Wed, 17 Sep 2025 19:11:29 +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 , iommu@lists.linux.dev, Kevin Tian , Will Deacon , Robin Murphy Subject: [PATCH v4 04/14] relay: update relay to use mmap_prepare Date: Wed, 17 Sep 2025 20:11:06 +0100 Message-ID: <4b2c7517603debcc40be1e2274215eba2bfc6d40.1758135681.git.lorenzo.stoakes@oracle.com> X-Mailer: git-send-email 2.51.0 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: LO4P123CA0064.GBRP123.PROD.OUTLOOK.COM (2603:10a6:600:153::15) To BL4PR10MB8229.namprd10.prod.outlook.com (2603:10b6:208:4e6::14) 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: BL4PR10MB8229:EE_|CY5PR10MB6189:EE_ X-MS-Office365-Filtering-Correlation-Id: 36ae5105-73f9-4e78-98e7-08ddf61e019a X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|7416014|376014|366016; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?wS480CAhrsMHrs+iZ5DkjFfLJ45FhN0IvPpZ+NuRL8UqoKdy6XShKavWjFk1?= =?us-ascii?Q?9HBM8ygUiuOuEljHg6pTPza/nda0lUl3gvtWoRf0eShpix+FKpza/f/YF9VE?= =?us-ascii?Q?a7zVPh4Jac5aPGmToNXyG9iLk1XKAFYytIUQ7EnC8DbWfYsE8pA8/rpP0PjX?= =?us-ascii?Q?HaTKRZGDwwTO4aaHzPk1zTnj8AqRcjsZoLqPe8HTuTOgGBSLzx5FG5HlYLD/?= =?us-ascii?Q?nWk75pxw3rLUpxTtpcyKY/8BKhOgNsaHGA9JKmtDiedPSI6xwF61eC1wpQb1?= =?us-ascii?Q?k3DHbZeXuZC8BdxLcnz/FEQ3hna528RdGRbmx8FWztfW7XcyfFER7hYLcOgm?= =?us-ascii?Q?6tOBD7gArW/R0MheaCWcIeYyEvKOrCWwiTU3ciK1FM1oiWFUgjOiMvUwIbxe?= =?us-ascii?Q?QDkQ26XfNCwxvYpmumwWVKcrFROX87QxOc85NcQghVrpaOxNNJtpqdtpNXo8?= =?us-ascii?Q?+NLxDIg5tuFrRHE2tGqTwcH1QR8TnBK1cOSKNqBesW9RpSaQ8PYq9DunNgzZ?= =?us-ascii?Q?XGX1odWIJcrjr7zqSRSSeHxnuTUCiU8cHwYqfByC+PBgdQ00Fl+BqF2ktqp3?= =?us-ascii?Q?CUurPOUsc2mReekXFNxt78vBNg/tzVsbuDYleikApog4x4FTG4puP6lzFD/T?= =?us-ascii?Q?D1ptgZFjG8FK3QCRzCZ2lo/l6qYFPC4CrxvTgVrAGg5e9+c/qAKRsBnbOyJe?= =?us-ascii?Q?5Vrl4M701qMtkW/ez1Q+2utqXi8SwKivIojRk1jVClB8MnFaMj14PM3h2nDb?= =?us-ascii?Q?7Ikxwhf2ONd8bnzmPsCymxFsC488/+XsSQ6+u3vQKrgGbjf7K3QchwXH1rID?= =?us-ascii?Q?4uwKzbZnHUJk7bu+9oOAde0979+Cmu1pOnD6pJKdTsZhfzVqLSoNe4Mie68e?= =?us-ascii?Q?uUk555caI3Gykyv9Rk7iFXcdGEVZac+b7qFcUC73/pR3UVl5C+DhCwK/sexx?= =?us-ascii?Q?/S7v0++IpB3IZqb7B2ojeDo65H40FEgXLl787TbB/TPpldhiVDIMQAme9l/O?= =?us-ascii?Q?RlyHjs4jyfVuiBzDRpFDd/qpSfoPKgu5196apeEcU8ws/nMdhcLTltjDDBHT?= =?us-ascii?Q?3K8/09asaNR3LSmtiKN5wnZH/xf/eKKujh2EyMXpvnWkFcmdfdgGufbdRDJd?= =?us-ascii?Q?+f2fUhnNCsN7KGgwLLVqI3VAM24zCMm7HvlWr18EUXULNbPnjX1XbuNRNQsH?= =?us-ascii?Q?MybGxL5G/+3iBYcAh6Visqm6BHEPG7hsP5Q+0LHnjjKk/T90UrDwOdhXDZUE?= =?us-ascii?Q?wy2mf1D+5rnEcLAPNStXUyvYEedmhw6qjMIRkdbLgvX+EczJ7ptqqIBOlI/j?= =?us-ascii?Q?ja00tpXSAnsnqhiftu3vxbezqif3kd4r43uXNMzPVzO7YzgIqxW93AvYMJXb?= =?us-ascii?Q?5nFvFX9pmVTdNSYs1lhr6NRGFDvjI5vemtYQMH7VIrg6evq1bQg7IQphbX6R?= =?us-ascii?Q?/dGDKDy6m8Q=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BL4PR10MB8229.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(7416014)(376014)(366016);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?5SW3oC3tPdM5NZDekb65dmPrjyvIGeeI1WliCCqbKlozxjkuMcpPg3mq4D+8?= =?us-ascii?Q?uccLNOj1/N/THSI6TD6bUlPqpEc+1JU/y/iqfNfq/XcAvsL3KA2hMr9a4G72?= =?us-ascii?Q?PdERFPrb4LhfsVBhMfm2PUpQ0KSeEsSa13eHtcnFU4ntVWcqQdywCunhnIst?= =?us-ascii?Q?QP32IoMDlBzptcDedp+3UaZlsCJDxkCJ+tVTvMAfxPIhaJxO7coG4pmEfFo3?= =?us-ascii?Q?RV7l5FlF6k0GlAXXtwdJsEvw8l1y+Z337b4EJ+dJeHh8PlHIBBBVlrPpkNRv?= =?us-ascii?Q?tDaHAd8gEO3DLvaE3LHkB+ezluMA0ALKNDeM2kYKwvKcnjuCFlyq49IF9h6X?= =?us-ascii?Q?on0Pb8qHcosIsnobppCbyq1zIN5k4GYmI7BlWCxd1lW8eNk/uBpiGSs1JZMi?= =?us-ascii?Q?nCzG8Es06GdCgFuaYSHP2QjmLJWj/5TmxD6pSu89ziyNgME9AcZuWgfQqKk7?= =?us-ascii?Q?cyb/JN7YynDQl8pTUOb2NHJX3RlsfiUN3ta4GoNNIt7rNLgIvW0mxnvjwF46?= =?us-ascii?Q?D9MULkYoziYtg0BwSJLEWQVfYmosVtbeHTxaDamuh6/6Ek1c6BC3SKq3U1zP?= =?us-ascii?Q?xq6WRTxYOlhM//4GamsKANS+yTb8+HtPUPmUCO7CBoyqXUoDy4ilPLCbw2DU?= =?us-ascii?Q?eOZOf9nF/GKESiO2OPwIgSFF3qY26xyAh5C4btv63Ip2cIsN2goDyRAL7Xvm?= =?us-ascii?Q?vGafMedCaqOT/u23qJFxz2+rcVf4LKyFjlL5dfFzcVt/BDbIY/FDEGjfASQe?= =?us-ascii?Q?hzLukDYIVXdJjzAO15g9imI61v+tKyh1lvadqqsyr51CdgE8xiC2mIs0do4a?= =?us-ascii?Q?E7yLIltZp7ozhATTKKOAZRb/v+u2fcgEMJOLwPYenmE7liSZj65YmqI0m5Uv?= =?us-ascii?Q?SHGKNqY5zXM51RhdHkrNU/imNFewURguvPiWxiB3ImFaNIvb5jWVOpTMgdfI?= =?us-ascii?Q?Ky2N+ZH3E4NpS1gZR9ysIcjPNC/BFYvnMrjGROxgii3PtoUDg4LFz3g6WzwX?= =?us-ascii?Q?F4m6+pM9NRWfAYAmZVYljvnnntwKpn3FfN7m+vedaqMncLbXkyvSOdZjxFSX?= =?us-ascii?Q?mtmAUNjsOgg4qcMUFH3TOUVksCFPOD5TIGDGE8XRpWG4ZtjWIRz3LLtdEkE5?= =?us-ascii?Q?Y5RyWqYAeVhWKBgfCic3ZMexq6UkgXwWvzKZh77kHxifVjKyaimG83NqGhcM?= =?us-ascii?Q?Ir76+tdsCO9TgPsptu3NonPCYgrzG78djw5kE5sDfOeMo/4JoTf5PST/BwRR?= =?us-ascii?Q?XOZ2Mrrf9EMpKoyxc8mtZy/B/C7xTtgYC39gR8f61a8YYjDlrYq1wsM9LHns?= =?us-ascii?Q?lUvZGa7nxoAjw6AORmJlNrPqrtAcHOFgJ6eSeE2WSFXwxVtb2hoe2frEW7CS?= =?us-ascii?Q?Gbqga7uejyRNyS02PFl4kfrktlQOsTaLEv7/C+DEis42ndRB5oRm+Lt5v70X?= =?us-ascii?Q?G5x1RdHf1keEtR9Pj86v3/RGCUkk5zBWs4W3iXFiGviMYInEkzkRcm05BmJX?= =?us-ascii?Q?rfxkp2RZwsL8jDwD3QJ0oUIhGKhda4QzC+GpbfdSvfmnAW2n1LsdFOlLtx20?= =?us-ascii?Q?GNPCIkBXndXzlmOMrJdH99G5m0Dti1zE19tk/aYbl6aPwsWqWLNtA/GUydOn?= =?us-ascii?Q?Gw=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: U5i6b89eS8cABuaD/XxI/mQcQJ7EjjpFdu+yATFO+wxldvh+B7vQwQkNh/bPn164DzaEABfTQLSnQu6bqfgmk8zBD2qIymikQAxjJSj+WXrpWG1sDCV0NHq0Hk/EyondTNzi+wwzz/VRlZJCpVEB7p7buTe78f3Z+phJ61tajoPgis4p7b5xu3hu8uguUtgiFtIw7xnojOJWaORoheYYLS4K1uxMLD9SpXwF82tPxRIu4U4IZLj54opeskWFjr4kcjrY/h9ztnkhiBPecrG+9orpjgJO7+13NiT0SmA19BgBFIbi4CyXzFcRDWYa2FYHrrg6YErdlN7JsqVcLsohTnPYQYoFtLDwP7cxydpxvd+kQ+YbmMW1IKo7Dkk5J6ghAwpC3lq7wKclxfCgzi5BMGKQwCaRJnH/hoRK7AlJvsqdEEvQHVPUA4eKsXQt2CoCI3JBnjzYL03/UO8G8r1urwozPs1d+9DoLS6JjNkqxjmhrFdlgXJ68JnYVTk5/qTNYKCWLHO46osKIIqILlaFRCZEsOY2bEFJMp+j1fsm10a4S40ln23aE75WoPajEZ+tGs/SbFwfT82/TTERTat5J8/FfULCkNwwEFJQPo+/hHc= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 36ae5105-73f9-4e78-98e7-08ddf61e019a X-MS-Exchange-CrossTenant-AuthSource: BL4PR10MB8229.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Sep 2025 19:11:29.3423 (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: hzijCH0599ZRGVnWevj1rLG+Yx/m91lK2WOtGRX4re1V+wO+2DJ5KAZnZ/uoxsiR6hO6zjawAuii51LIFXaT6jZYPEnS2rS7VDa7LeCvs/A= X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY5PR10MB6189 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-17_01,2025-09-17_02,2025-03-28_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 malwarescore=0 phishscore=0 suspectscore=0 spamscore=0 mlxscore=0 adultscore=0 bulkscore=0 mlxlogscore=999 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2508110000 definitions=main-2509170187 X-Authority-Analysis: v=2.4 cv=JNU7s9Kb c=1 sm=1 tr=0 ts=68cb07e8 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=20KFwNOVAAAA:8 a=Ikd4Dj_1AAAA:8 a=kVp6y68UWkg0hX7IE8kA:9 X-Proofpoint-ORIG-GUID: 8pziynDq8CuVUX1FpSB2XA2xTpUgbd5T X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwOTE2MDIwMiBTYWx0ZWRfX+Erq8Xp2XE7o +Ne0q3FVoGjGyDxm1kLYYYDtYGW8k1xDHG3czOK7MJZOlog4+EoGF5pgpv1UezQQeyBegdVXZCe ZdcFNzU6nDUMVuFWbpMZrvV2AZ5TVZgL/W/J+w4ufbxz61/ludnx0hqM8JPdBrcXIrR1UjL6Crt MbgJy8iZbTR+qQh+g3kRFTTqofQ9yfmlN9vFNbroIRI3DyJGui/s8tlh5GWje+FCHbJFtYmR/23 geIGtjA2RWePVYKnWOH1lYHj8k+f1NvSHFUfl/R6ki+Nv4LtxhrsxGbn9statFLOXGnlRCFbwE7 L/43aijA1+EIp/+ta9n2Uypn54x3SuHdGUMvD7iVWTyP+Vk92CzR4vN0D36WdrVIDhLaUBfsnPW nrScMpqz X-Proofpoint-GUID: 8pziynDq8CuVUX1FpSB2XA2xTpUgbd5T 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 Reviewed-by: Jason Gunthorpe Reviewed-by: Pedro Falcato --- kernel/relay.c | 33 +++++++++++++++++---------------- 1 file changed, 17 insertions(+), 16 deletions(-) diff --git a/kernel/relay.c b/kernel/relay.c index 8d915fe98198..e36f6b926f7f 100644 --- a/kernel/relay.c +++ b/kernel/relay.c @@ -72,17 +72,18 @@ 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 + * @buf: the relay channel buffer + * @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 +91,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 +750,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 +1007,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 Thu Oct 2 10:38:49 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 A7541333A82; Wed, 17 Sep 2025 19:12:23 +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=1758136346; cv=fail; b=kex9zPsQxkU9NiFfZlhSQ61ilFltrMkMkF3vkVilX0PP2LV2XiCNYbg2XjBEBP6W7iEoyO+hOPlzl3d00K+pjeZh2GSkA8jljU4G3MGebpUa0KxVfLGlvoVWhc7I0ewXBV8LcswcLvxd9nxkrG16rg4ETVyJxtqBjLvyije5lkM= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1758136346; c=relaxed/simple; bh=zRGrsCI3pwn/4pOj4IjwGsYxQnDJMnjxJgo2aSf04fE=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=MkEhAmsuG0uJzBGni9VZDOBhfcj+4paCgqesMiOCl4K/+eOD9sCH9grOfLEaCTFBjaebPTiSFDBZx2aAr0iyi/zeS0OvPyvsYf9Df1it9WLiNgplIUjmoarWKVpzh8iF/QDMU6M1Q+h3J3+NH9pueNE7GtfDA0EUzZUBl5p8RoA= 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=H7wKR6ev; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=bY/R6Q/s; 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="H7wKR6ev"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="bY/R6Q/s" 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 58HEISvD007336; Wed, 17 Sep 2025 19: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=hb/gfX0JwVYnbXTvQa1ZmKzCKlseHRvNPsGowFPJR8g=; b= H7wKR6ev5PKilgvDbtIcV2DYtHHY+2Oo/VZ7B5alnT6wjSX8cszzX1uQEF0ZswYs hQ9vQ8pnJ2UYunQBygKn+tRkRBrbkFYVFWUwgpUR50HY96Ee+79i1HYJ12iQGmsb K1kaZNWsma/9NQ19UNf9tgE0y/NRdAdkqXIwjfwmeKjMhfpgu6HaGVpBy1bGrted 96DX2UsRUH5fuO34B821ggQSVlYlaeGfS24LhDEbPYOZYDIHcVRK2It7dN7n+Ssi pJx9SzEMRzpTodStVky/BmPQGkWFlY4RTPeNcJ31wSuI9ip03hw+pL7+0iO/eDuI EWabnE6Dv9KkAQwjfqp7Qg== Received: from phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta01.appoci.oracle.com [138.1.114.2]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 497fx92001-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 17 Sep 2025 19:11:37 +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 58HHmk6Y001628; Wed, 17 Sep 2025 19:11:36 GMT Received: from ch4pr04cu002.outbound.protection.outlook.com (mail-northcentralusazon11013068.outbound.protection.outlook.com [40.107.201.68]) by phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 494y2edr1x-3 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 17 Sep 2025 19:11:36 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=YzPP4Sp8ZqF7MMgoDaS9EmGF9YpCQCjwf8Zbe5K4IaCq7oO7FxBCKngDGH1X2sI564C9mTxkvgEef8CxrH4o4r10zkCHhe6gw5BK2tMnw9JPNHTbUMQrHlWHR01VVQ2OuobqNq0vaNSJPIImnW3Ah+P30xNqWiMOm2eXVRVfNpY79RwWK2P1Yq64lOfPmteEXRSaVicsDj9J/BAdhGuSr64gyLguEfjLw4KBs1AyvA98yeUu2ATP2nlO1sCpQT9E6W7ukqJHpf76EGKHc5XWyv8FPegffEXP1tI6kfM9V3q0sZW+CkYnJ1LAAqbNCbNLKuaNVCE2gWdkZMswmDU0Gw== 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=hb/gfX0JwVYnbXTvQa1ZmKzCKlseHRvNPsGowFPJR8g=; b=j7Ud7xijXyBw7iejsaL4pCTkkflLOdneF2p4yft/46A0WGVwnY+CeWoeEiU7c8x1rr8zR8VsQHwjXHth4o9j0Put+DHPC3OTrTf/eg6sUCUygtDLHEUG+MHy3fP0dD4Xa2qgVLYUGKlXEsjyHjHqvBjnH0pfFtmOSKrmgZGaPxfnCBuIH1be+zXpLGge7jP+V9v9RAXGMddpNU1by7lvrYruIpan562mbwXfrz5DC9u3NOMKm8Ari7ufwF/Coi0qo0SINvL7P0st5Mb333C3gcqTxVzBrLQhGzFEe2HEKG4U2eCXoYj4Q8AElwN1WmfjDzEM5w7Jmmtmhz6kVmTI/A== 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=hb/gfX0JwVYnbXTvQa1ZmKzCKlseHRvNPsGowFPJR8g=; b=bY/R6Q/sESVnqZeR8HyyEwjxP+LGdTCkIoihEgHkh8RfebFx6NB8WtW05mu2wdDgREAg02S30wD5QD2aMAh6Bneu/K1Q+N+cPjRhm1G3zAz35b7rYD7MSq6WJ8i1mBloDR7Aj0CDT8uMgoZyfa7ZJdXSW7seL9/KRB0AShFdWvQ= Received: from BL4PR10MB8229.namprd10.prod.outlook.com (2603:10b6:208:4e6::14) by CY5PR10MB6189.namprd10.prod.outlook.com (2603:10b6:930:33::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9094.22; Wed, 17 Sep 2025 19:11:31 +0000 Received: from BL4PR10MB8229.namprd10.prod.outlook.com ([fe80::552b:16d2:af:c582]) by BL4PR10MB8229.namprd10.prod.outlook.com ([fe80::552b:16d2:af:c582%3]) with mapi id 15.20.9115.022; Wed, 17 Sep 2025 19:11:31 +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 , iommu@lists.linux.dev, Kevin Tian , Will Deacon , Robin Murphy Subject: [PATCH v4 05/14] mm/vma: rename __mmap_prepare() function to avoid confusion Date: Wed, 17 Sep 2025 20:11:07 +0100 Message-ID: <24cdbee385fd734d9b1c5aa547d5bbf7a573f292.1758135681.git.lorenzo.stoakes@oracle.com> X-Mailer: git-send-email 2.51.0 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: LO4P123CA0398.GBRP123.PROD.OUTLOOK.COM (2603:10a6:600:189::7) To BL4PR10MB8229.namprd10.prod.outlook.com (2603:10b6:208:4e6::14) 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: BL4PR10MB8229:EE_|CY5PR10MB6189:EE_ X-MS-Office365-Filtering-Correlation-Id: 2da66b6a-a778-4712-5d9f-08ddf61e02af X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|7416014|376014|366016; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?DuZyueFJy7XVQDSwgaUob0+sInJwJ5nG2r8sulQnr1VFx0/qKaQDQIabbyxh?= =?us-ascii?Q?3vK1p+WIctZeWU5Y/294cH7NcHZLBrXGHIcavNpMxQtv81eIDqduGO8+39Lb?= =?us-ascii?Q?JYP5ya8oP/dQOOggbTLc/kJNinuA3Usb7uYMmRbbwQnS/H1dw6BX4eAHftlR?= =?us-ascii?Q?Ug9d/YacixkPtXFcr8L8BZ3vjiUBbWVUVH6+pr06u53Z/0EweJDL22NiYmy6?= =?us-ascii?Q?x3+5gqr41P2QZLjRyAVArBsP3rG5re72vUS5H+KH9DopJQPlqJqDcKri2VJv?= =?us-ascii?Q?i1aZLSXexNrE27YnE6cMXKhLpAkWfFejZq4Qt07lBPlZm3oR3SzDG4gMBsNe?= =?us-ascii?Q?Y9kNDIVMyq0y9FHgtyn9FXXTmuUJZ1rkxH3tuOnONgDWbyP6E1PybmPTCJsE?= =?us-ascii?Q?uDoMvNPw/W/TiBd0v70CqJQIqCfSLrs8M99JCLlT7Ope1/nH4qHjzQiaPwMS?= =?us-ascii?Q?zf5LMW48E7JPzNm4DGk13OVCH75uknHSTFtbqVPmRQ7pbnBk9FmV/UoW+ufB?= =?us-ascii?Q?xR+OnupeaY8z6xidOUFdbPNkyVtBRerSqUWetcqK5Ci8ZW/VcV/QBERwAKtN?= =?us-ascii?Q?Y53WA/ehp1KPHB0GWq6pPPfZ71hFn7qhO1hyWi4O8S9w6iRwgrjWfnMF6ZMp?= =?us-ascii?Q?HypOKf07hN3B8C1JrbTcnBLyxMarEcCMlAwVFF+DQzfcBcDGgP65TwAOJ+QW?= =?us-ascii?Q?OrSeNMX27V7tCjqmEDoji93877EqgIMMKpUa05C+ku4kJ+eF5KNPQLeUZgpu?= =?us-ascii?Q?BXhD+13N3P+K6kbSADaVeSLmCYDBTqgdqI50IKrLfIXghJ2HaB2hndAMc5aL?= =?us-ascii?Q?FJ1Od2wsVSOgJAEWhDZnINdRh1VihRi45LQespn0F1SXnZ38AMpSxtWhrorZ?= =?us-ascii?Q?QoHqR0Bemi49s44/mV1cLiRoLD1TVtYNwWP2osIVkzxl5uITONJDm+cyjuFo?= =?us-ascii?Q?gYwTkXMz1Ps2zG8gQRf+INqNpUWISvDCL5cbk9ilBlt1cjG6fvAt8GlrGNhE?= =?us-ascii?Q?xbCRv+/DMS3Q7gOmmhLL95K4VNApGG8etFLV3h2B12vJQo0apgW4zTvohGdV?= =?us-ascii?Q?uOBN7fd5c+Gvi/4q+mo9fQyekYmd46FxNGpiJUuYpkB9HJYR9CAix03/PS4N?= =?us-ascii?Q?7GI9jz85N4pCUXl6DM7BFde4yPhjzZvsl3w/X1xC6qfrJeLhST63qoRr9oks?= =?us-ascii?Q?ORhWdiRbuVOoEbRHvIGiae1WJm3S1KekrefIBmcAsrruq3sTcXPE/FfOM6MG?= =?us-ascii?Q?I6/tXxj7MG3kRh7VGMZ7VoPf6x+Z4ifkfxUljFpm99FOfyJ4xp+DyYV+/kwM?= =?us-ascii?Q?bBguJ+D4DLE+rzuNpICmh8bY8MELxsKPuvG+RpSiPftyuwFrq1dA/PvBvtOj?= =?us-ascii?Q?P+ybIGT6gIyjfpWMewm8iFMVo+C3Hp7biceQQm3Xl162gIErr1Ag1Xi14k8Z?= =?us-ascii?Q?LagVQq0BCnE=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BL4PR10MB8229.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(7416014)(376014)(366016);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?qXAeT40Eq+2p1mkkTFXMAs7P5ie+aYylfmBjQJ+hvkrZzJSe6Lb8cFvKyPEM?= =?us-ascii?Q?69kL8+6pdtsBB/Es0MpknUD74YKDbbal6QDevsBJSAGYWWZYKuwtPi1iS9br?= =?us-ascii?Q?tV2P8ylX47wTYekX4zyjCBBHBdvIm1tus0A5HRXa7Fp6t6yDthr3GJPkW5qY?= =?us-ascii?Q?tk+iiIeVAXuUUJQobse9KmLHpvDGj9chqBRexyqZFJTXS5zx7w48nWE/K6h+?= =?us-ascii?Q?s09UQp9l+1PwJiWG2hCUVNbm20SY+rIcEEij8imuz0bfbEnF+n3IlubQKtVp?= =?us-ascii?Q?fivypTmhnHj7z1Cv/WdvPXT6dMoezEzRCaxXdNyh0/BaxdPnxplsrvuAP/td?= =?us-ascii?Q?cbJxLFWrCDrDkeEeGWIA6uw5KjPfylCjN+8kiojaY3tNbnZjdKpei3x9GSTh?= =?us-ascii?Q?RHT5xsk+FehzSWUXllZGYIUYSOO21kNSvEXihnBUegfWrT0NJvtScgt+zS3i?= =?us-ascii?Q?2n2LtDydbUXLFS3PXlwcC+SreE0gdF1cCaadFZ4eXCq5TwtSzT4iWxcPxxi3?= =?us-ascii?Q?QUAa8hFwTNmVzQwEsW9BjaZyd1xwZ+ocuuOUwh5gbePLvJjW/4XncsJYabrI?= =?us-ascii?Q?dtF2OEHqrrYoxBpqa/nvM3di3u2BDy2qmbwYv1Py29tZZxDQAr4WTvKHEo0H?= =?us-ascii?Q?kBym32ABLPRBaM8oAk3og6dYHSBZ7yj/5yKYg05VdTiOj9usMfZCy8Z1qHwt?= =?us-ascii?Q?Mrf+F5mh4kJQ3IDRez/2VaDU9KFuyi9NIxfUlFlhhFkvYJQrfzVcFDnMN8dZ?= =?us-ascii?Q?gNNASSZWLTe6d6PCJ3GIfYGpwP1Qwz+hM4AZzbYYrjnphm1tqyDs9htm8EVb?= =?us-ascii?Q?a3VybpC2ZmMdaEp3xKf2LDGpwr5qZQBl+dFLfT8VDzCdxrL+aQ56eyzPLy0l?= =?us-ascii?Q?Rwnr1MTWMKXkgnk7783tfwEcLD/ZQekmI7PIKvGVilVHFm6uUJekWqnIxYEJ?= =?us-ascii?Q?LzJjA3Dvt7JXTPIjkSzgyO/SGeu+DlII8AEY9n6rst1pq5xH6inNxRcXCk/p?= =?us-ascii?Q?zuyYEtcIl07hLV6TOK2P9EN09a+NeiHJgjLgjK0Jg/DN/SA5oeG0/PGpGAAK?= =?us-ascii?Q?jr/ayx/q8Mc69fIEKS3wuMLY6ARg4Ux0ghplGaq56TE99Dv7sMI2TiC/2mLX?= =?us-ascii?Q?Gi+h/hQWvIVH1Z5zK14diU/JZiWTOX8aMZnxhOe7fdACz6wzS2DSukUnTEDb?= =?us-ascii?Q?Gd2k2x/Pey/CswvtPz9Pi4sFhVVC7z2oINCoVwzYUYTU+qQ/PRYzDPvcn7eZ?= =?us-ascii?Q?CyKiE8OmF92iq3G49WNSAza8KMwDxFuFOPf1GkiImxEiq55aU6n8UpXOiQcb?= =?us-ascii?Q?wrX+aXVcOfzmkUCbtaykDYXPfc6Zrl3GoItWGLAO5S2Iver4ZccGxWZB2L6m?= =?us-ascii?Q?p0qdtlqXhR6vjXuiVzLAmO6e/Ian/zUDOmBZ1202Ki5fi4/fSSSjqk5E4a2H?= =?us-ascii?Q?wu4eY3FNm0Apdjt1/FulcnHPE0ZGorc+EnyaE0RI5ylYsmmncYCK/wOSii2z?= =?us-ascii?Q?hrERp2lM3dvLyZ3hu62dZ54O99UJcV6J+khAaHaA97ldSW6e1lfCVo8hQvP3?= =?us-ascii?Q?nI7p+nHYj5hkSSn4HAZ3S/Hxb+cu+U3EtKxJNmmZh/9YEBEcfAq5MQvVXOud?= =?us-ascii?Q?DQ=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: LJ6Q/ogLgc8daSnjDlloXHI/pPCrywg28J6lZ22ipSlcIS3NlsUxcaYZgHbO1nsjRoOk9qWHMkWq6/+XdAXAMFNjsaeTkqdV7CUSzLltQGGfjGhwnvl7DhPAOYDZqEJt33XqWPGuLBfHuqgzAxjYaEjuA5iOrqs2K6Nx72bABibVL2N/HQUa9P3zlruPkcPzRqPPu5NbV9e3kAfU4OkfrB2/AeyfRqfOgS3CaB1xQqEUwlC7p3xu5spoD3/c5pfyJMfxvEfE5WyWkXkwRlGHl4SOvEu4TzFF+lPf0i7RxGdYL8m3Rd6hBfwwbQimOmm0vRbpfurHJbbYiWDGrnT33afQEVj/+vPrGXPVpPiUP52+YM5VOn4Clxvp2ipfSPITEtoqi+Pqt8D8C/gRbleGN0TTOUfur0iDzp/f8i7UwCEnPY9k0BRJLvSwK8DCIqojNo2yrgqXdDF6Cp7/NPDjsPCqL1nKC3WEJ1dcn/GfyDU+rp+XvT8/CxC+f65aIc2Gha+AVXp2BkMmLILMW8TWYQ5T3J5TbidZvN6WeAlGbjx2MMZ2eMuYHoRtsuERWm8Tw66KirNQ/nT6cqDWzeHD/ZRmHdTRXRdPp4/p3kw3dgE= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 2da66b6a-a778-4712-5d9f-08ddf61e02af X-MS-Exchange-CrossTenant-AuthSource: BL4PR10MB8229.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Sep 2025 19:11:31.1518 (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: yvOQadZ/0nls7jLTVdGloupOtuWOBWvAhBo4ZGG0FnMV5KrsqFWk/9rMOO2d2DovnobjCywPQ0NQHceBqP7oM3NUNsNeQlVJUqyoaeqtkQs= X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY5PR10MB6189 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-17_01,2025-09-17_02,2025-03-28_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 malwarescore=0 phishscore=0 suspectscore=0 spamscore=0 mlxscore=0 adultscore=0 bulkscore=0 mlxlogscore=999 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2508110000 definitions=main-2509170187 X-Proofpoint-ORIG-GUID: JGRnfS3eZXM2RRlIlhDXyX2fRx_MmBcL X-Proofpoint-GUID: JGRnfS3eZXM2RRlIlhDXyX2fRx_MmBcL X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwOTE2MDIwMiBTYWx0ZWRfX0VbOwMXznAyw UvG6FCJB4d2OvOm9QQFFur/fvr3sSbvRp9XGcEekolyIOpxEMApbFncQ4GixpqoSdHqXoUiwW4Q wDX28Tcob0714n7vCtNJ1fi9B+rhgtdvNPilaFu7qj+wcY8FV69xGR8lu9DeyztuTtbrWwXhONs 7eMlfRBSdd5Uv2JB4LPjfetr8OgUHmcVI/l1BoYCHB1WtQQpLPekXcovGEdAzG9IK/NdILfkvwi PnQsNK4IXbDVlbYMbNtW69G1IrtK/N9KjU+0ALG0w8RD2i4aKDCOZ94U410wvzoWnYx5ggqqMs0 Hjn/wzwyMMRBeKguhj6kX8go9DPXxqAzhx3Ybcn+lIZvf6zq84GsLmwU6x70zGzCHlavOXULwMS qJ1+zRcV X-Authority-Analysis: v=2.4 cv=N/QpF39B c=1 sm=1 tr=0 ts=68cb07e9 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=20KFwNOVAAAA:8 a=Ikd4Dj_1AAAA:8 a=69g8Iwx80a-1R0TaFSkA:9 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 to __mmap_setup(). Signed-off-by: Lorenzo Stoakes Reviewed-by: David Hildenbrand Reviewed-by: Jason Gunthorpe Reviewed-by: Pedro Falcato --- mm/vma.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/mm/vma.c b/mm/vma.c index ac791ed8c92f..bdb070a62a2e 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_setup() - 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_setup(struct mmap_state *map, struct list_head *uf) { int error; struct vma_iterator *vmi =3D map->vmi; @@ -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_setup(&map, uf); if (!error && have_mmap_prepare) error =3D call_mmap_prepare(&map); if (error) @@ -2679,7 +2679,7 @@ static unsigned long __mmap_region(struct file *file,= unsigned long addr, =20 return addr; =20 - /* Accounting was done by __mmap_prepare(). */ + /* Accounting was done by __mmap_setup(). */ unacct_error: if (map.charged) vm_unacct_memory(map.charged); --=20 2.51.0 From nobody Thu Oct 2 10:38:49 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 EE293330D47; Wed, 17 Sep 2025 19:12:22 +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=1758136345; cv=fail; b=BUp+ZEFossCmye7/Nci5GWIwFYaTGNux3uEXf2UsS8jUgq1kP37JxRsIWtIyvPL2bQAt1lOo6zL5yqgIg233Y3dES2L2+mSZhJD8MM0HnVDOgn0FjUNmpPMA5h/mhInbx/TbBhxImM9Rz1NttqErl2GXI/CylT22YgpON4uHSfk= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1758136345; c=relaxed/simple; bh=cWcGBiprI3C0HEzyacXB1h5fGxn7v+JeltaW0HVafN0=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=PshRZ6k/eJZaDU6/4L7IT/1C0RbNH6kLMw/QuzH/U7IYMVSvfVzr8LgltCMv/+OwM1CHzkTHUfm8dCX1N0JSkwHGA0JRj9ywngz0RCmIXohHq29cH3df+bZxcClns3INWbEan6yUJCXxe0Uaqj3UPqrKFYreRWrfVECS98+H8Pg= 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=bHu0b6Lr; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=ZmUJ+sXS; 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="bHu0b6Lr"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="ZmUJ+sXS" Received: from pps.filterd (m0246630.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 58HEIV3K008351; Wed, 17 Sep 2025 19:11:39 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=dIlBonpzpBuI8Nh/1IICJAlRCKSS6BU3sWWec56GXQw=; b= bHu0b6LrJ10oycvtih2RH+pbANslb128U/M69pZYQxmyzC0e7NW/7XI7gR2exV68 eyCkWk40DWJT75yyccQbcibtya6Vj11qWkI+5wU/h8O0nCR6PfscBYyW6K+cnaXR /yGqctQjDfLFUteEzObvoHbI4ej4khtWf6911bq7DzkHKNi1N4h9KNAcYO5Ormp0 T0ruBh9cg3bW42kB9HMPskbkMD2ivvIPU/CfZO1TSGIQHyu+IkgNDqzCSTi9FQEa +Eor12ZX6GtY2ugItrK7B17ypiIozY4HoasGhr++nK1FHp+VIoL9SWWOt/hxSiEM hFXVp9Q/cEB4DbZFF+4STA== Received: from phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta01.appoci.oracle.com [138.1.114.2]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 497fx8hxnc-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 17 Sep 2025 19:11:38 +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 58HHmk6a001628; Wed, 17 Sep 2025 19:11:37 GMT Received: from ch4pr04cu002.outbound.protection.outlook.com (mail-northcentralusazon11013068.outbound.protection.outlook.com [40.107.201.68]) by phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 494y2edr1x-4 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 17 Sep 2025 19:11:37 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=W4ZST5UCiuQTW0pSBWto1euqggAAc7NcRb9D66KiyMMQGLMOg/DMCK1I2Fely6rDnK2AH7urgW/caNvqttkRFmnKE1zQUFi6FAlHKt4tUTiyf3vL7QtQdGHauIPejJwDypBqcLQgKa2GhPRljWkvM2GH3P1Dr1uaNGZVaJqlUP+kSqgHGg/Ihl6mWirx5x/ORsrKdWY5vwLzG5f84JTQ/OCAT0IQdIvbRKxXLg9yGNgJHiV7/TKi+3A02YQVb/Fiuqcj8ufxKWMHfQpeRZgybxeDBmXWvnTVSz9kNaJrGot5Dbqtygi/XpwYldG1IPKNnQjo4R1++5tN5O+TcakBFA== 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=dIlBonpzpBuI8Nh/1IICJAlRCKSS6BU3sWWec56GXQw=; b=nAvyWR0AvSdu7zeGW/IYTGIjbMcKwyqZ2QqIvlfc6QimXudV38lgL+7tHljNymV561b5csQeZCvohRnaPQoAX6Obkp9ymMzMt24hqXrQ7enf820EIGwse0N0i9UMeN64Aeyad/oC6F3XpGa5VbWWsOmuvsw8/tr3UE2PfdBmrXWb5UKgBhyx28VLkD9CE9FeNDVDoJdUGUVrWBWF3UC+iIR79X787qAGIM2do7ZGXztM/qtHI6pppjrbOamZZQMZFfm2ri8QRkYhAV/zvRlGPKauYI9yoV2o9cmCkC9vg95Da/8VQLuR1YFefemf+4dKYDd9TcFrwgcZc/8Fs6+Z3g== 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=dIlBonpzpBuI8Nh/1IICJAlRCKSS6BU3sWWec56GXQw=; b=ZmUJ+sXSVx2dGRodDDK3mh+6z6USh4L9hSpQEHo6V0WJm2z6CyeTr4dTmWr6pS3BfXrHipKl9HLGYXs3g5dNwvL3BJv04D+QMzqyz6t/dh0cVP82ncBSgYDttW1rjbg+tB5GgdFF/cauAtuX6/usi8MBN5wEke5lR9kP5o7r7lg= Received: from BL4PR10MB8229.namprd10.prod.outlook.com (2603:10b6:208:4e6::14) by CY5PR10MB6189.namprd10.prod.outlook.com (2603:10b6:930:33::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9094.22; Wed, 17 Sep 2025 19:11:33 +0000 Received: from BL4PR10MB8229.namprd10.prod.outlook.com ([fe80::552b:16d2:af:c582]) by BL4PR10MB8229.namprd10.prod.outlook.com ([fe80::552b:16d2:af:c582%3]) with mapi id 15.20.9115.022; Wed, 17 Sep 2025 19:11:33 +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 , iommu@lists.linux.dev, Kevin Tian , Will Deacon , Robin Murphy Subject: [PATCH v4 06/14] mm: add remap_pfn_range_prepare(), remap_pfn_range_complete() Date: Wed, 17 Sep 2025 20:11:08 +0100 Message-ID: X-Mailer: git-send-email 2.51.0 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: LO0P265CA0014.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:355::16) To BL4PR10MB8229.namprd10.prod.outlook.com (2603:10b6:208:4e6::14) 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: BL4PR10MB8229:EE_|CY5PR10MB6189:EE_ X-MS-Office365-Filtering-Correlation-Id: a7766dc4-57d2-4ac1-35ee-08ddf61e03c8 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|7416014|376014|366016; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?bDqAbRMjatjAX2nr/xCsbYemcIGicxOqqPOKNMMfUHlGxvTs/B0k6rzrOI9c?= =?us-ascii?Q?HgLXgNY2YTZDKDspqISduWEKgsjLRHFD4TPU8G39g1ZjJTlv9v4wGBLupGAs?= =?us-ascii?Q?5OFyeOc4pSkkTCXIddS6fsaP0xDC3J6bA3+a8CbTxUKdDFYYH6GWf1l8HkGA?= =?us-ascii?Q?6eDhf7QEKtb+VDTItvA+zGAp4WoW2w147KVXv8mcZ8+cje209EAiJqxA4gVU?= =?us-ascii?Q?Blim1TG9N9LE+GfI4hcJn4HJWV5dGF2sQj0mkhD4sSA+opqhneR7hXyn6WZL?= =?us-ascii?Q?UpiAdLubJU8j9O8O2q6MLY1+YPRIsE/BWBh5G95wAPuCOWSl2DNDeMXtdRX/?= =?us-ascii?Q?0eigKC1bZpXwLgtpRbOODsMGjD+lSqm9YM90N7pawwx3pRecp53lSLtlEE8I?= =?us-ascii?Q?mPYD/rO/9aPLxZHlZ6+VxVvCH844UgP2WqFS41oliM8sCObuPYyoyg4o9sY9?= =?us-ascii?Q?zILBa1gcCNKVb1NLYSvW4NlXJPEHgy49NBK+G2vnIAbsuTDo1QjVk8iSiZ2u?= =?us-ascii?Q?QcaYX3GuvlCYwb2kjQ7bxPpnzHSyQ2bUamK264Z+Ord84NXdURDMFOzOjCqA?= =?us-ascii?Q?vd8X2Vb/IWNc5tqlVASoe+ZIIQFXJht2OsjNBdzs4pGmdyy4ppM7xTaJI8zl?= =?us-ascii?Q?Qga4rG+npGQ+99TUc+1h3QmKlPaeoHyRuF6Y7jzF64+qfF53hVSSlz4LjLC5?= =?us-ascii?Q?QLuh6Y46Cfic2kFzeLa1m0HFKvYLkBX8F+GxkD0nXgeSElMWP1M8F7xSAGQi?= =?us-ascii?Q?9C0Xf0+XZnZtqvtUwOsb9pNIMfBcPmBPxtYOjbYumwTD6ldwBbATaCQGrVGh?= =?us-ascii?Q?QYEMbVFwv8lXtFzicUq3LG5fuOHiuxOC0SyA576KLcPSuQKzRAsNOJHvKVLu?= =?us-ascii?Q?9916mHDx6t0HMNbURJYaOvZhKkIy9/spkVgZi3cLWzyUuv5qFDBfFr3xznI2?= =?us-ascii?Q?hFS4TAs/kCbSJJx5BrgvhZTbuS561YweGic+iEqSjODyU9jUJqCWexZbRkln?= =?us-ascii?Q?5wrjymeWKdV8wzY+GZzr52OIYiAtr5wg9hvdycM/HLzKIao0+cArkDYjZFAg?= =?us-ascii?Q?+jk/oZ+LAFRJaENnTSiQnAEHhAvGvg7jn3lvMBmeVvKR+3f0u2Rr7TXYBnzz?= =?us-ascii?Q?FjUgS4BVbYfD7pkNqO6+5JSxYudUa/yB9to9/Xiew5sTO6IkcK58LC5S+lP+?= =?us-ascii?Q?wC2OhimpY9mgSgc3NJdfzhm5aCJ+09BctzfpvHYcKHhQzIv+l8u0PQfVvtFN?= =?us-ascii?Q?yEZ48C7DdC5pDlNZUCm4nWyB44+d9pfIuqtjP04BH+/c8NwyeCHItJg7KEkJ?= =?us-ascii?Q?mKWLJOfjdbrvNJng9QnRha2wUbP85GxfZJCWi/QRInuYuV0vAxVwi49Uzqa0?= =?us-ascii?Q?FsoG65uKdqszbcjOlAK0DKI312rJb2Z6HrjpWrWaKvC9g+fADj4J99ZSdxnM?= =?us-ascii?Q?nOGhyWgoS0g=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BL4PR10MB8229.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(7416014)(376014)(366016);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?K0kVxfjf9YE3Akp/wPfb8sYjXLU0U7ZbB9cnhZXBvBO4KC0uO2wHTBlsxgbQ?= =?us-ascii?Q?ow6H4C/cF0i5NFB/W5uyI89rGC32p48Kcv6YSdK7aRii4Uk/doA1lzeGPtLY?= =?us-ascii?Q?H0fi6XpwzFHHSZbGorcZJQUri8o5Ukrwh+Iasq5U7LGcoQlxt8RrAc+7080g?= =?us-ascii?Q?OpVWRqom2vur/xsPyqx59Z07y1YUWvKXmZJqWJx7RXqPiDOdFj0w2eg4TG7X?= =?us-ascii?Q?esVszBzk6vGw7R3C5MeqcneWSx2vSIQDu8q2IgZkY4XNWH7CvU2opM/TPlg/?= =?us-ascii?Q?i3Du1aVfnPTNjsRY779tn0CUi9cTCTU0iztz6neBy12z1EwWUyhsuwomVuok?= =?us-ascii?Q?i4xFBIV3h0kiT3NKhE+Ya/Wrei0IcvKkiqimm7sGQJaHh6kJ/Lh+d50MlYwo?= =?us-ascii?Q?XlKLpoqA62FC56gXlAAZeu2CKl3yOjsNVe41h9mFetO/2bwLRZySHe9P9a3p?= =?us-ascii?Q?R4DSmRJ2GXUzgpL3TnOt6MK3ekDTm8B3k9ilsn39l/s5Vhex6FxbLfeiXGlh?= =?us-ascii?Q?14kmu7new+2QNjKrm4j20utw1D9xRLBVB+ZG6xFM/XvHdGVrAoDlTb/sob/G?= =?us-ascii?Q?Vf5qLvCKfjJcGyAkcy9Xe2qkSZeD977pkNSQxd4RDmvykuhpv1AWn7eTax3p?= =?us-ascii?Q?9/0DJ1rSdxvFa0OtPyaxdePQ6Ma+YNoYxL2W2YYYjfV7/6FsGr7y2r4uKmdq?= =?us-ascii?Q?8JDAHg106qTpZnXbR7s94Po/PktwRrMkbwXr63NIoqIrgOhAUGywRnsfoqAf?= =?us-ascii?Q?AOrBuKg9FS50Ju5QVtUMFvPgN175fNCyq3Eh6EdmUEGDyN3/WWlRjdEFUM46?= =?us-ascii?Q?cP3bMWeuGciqBjVuYJx0Qh2vQU4qa5Me+wTAhPHDZkl2QjGd+I1dPYU22dFo?= =?us-ascii?Q?IK3cli2iGX+nGMfYxGc7OhBylcJ+Dg09YNxZnv879Fmm+VoD/VF2INWcpxyh?= =?us-ascii?Q?Aqzy/SEAWwcgiJRX8CTP6x6/k4b3eN5QzmoTw1wSXia2/m6ABuyxyN985vFf?= =?us-ascii?Q?lRxAWa083Iv5M0b6gMGQxtXIk6aHvNH6cSamJgyZ1BqFzT/2NLuYV+Euk0QG?= =?us-ascii?Q?sV5vKCvT3PXi2S4kDDoPNLhVTLCjrafksT6uE+qLXw0hWuK6n3tuucZW+1Pa?= =?us-ascii?Q?UegRRGb2PiT4qM6aN/ZnYArYNsWdETWQDT9Gz2Mc1WoP0MEtyW3wHtf5affR?= =?us-ascii?Q?BOjCYjcntZJ+ATEyCx/xKG8n02HA5k3Xjcy4a+DwbNLOcysd4OBSKMTgeyh7?= =?us-ascii?Q?PZSauYi64aIzd/jhFWq6KxlgTQsRFBGEvkUVkhmyjqjcAFfNY7M2vHBiux9m?= =?us-ascii?Q?fqKmxj1VpBOA71WhoK6qvnan9KnqaSF6KcRDJ0hhawUBtDEo0IF6klyKFkdV?= =?us-ascii?Q?nHTP+S63xVzmxGDn6vyp7wXwgNH9/XqLGyBWnAkQ5j5HCDQC+2Expq8fLYs3?= =?us-ascii?Q?TALjIyAlTixuechDbeS7k0PtO1LweNTdHyd9Si8QwGYRgAIThz5ilauD3Ci3?= =?us-ascii?Q?Hbt0VsxFg3r2lghsvQ6JLnKYw3y55ftH2Im+/aoDSL/78RXDktS9asHAemOB?= =?us-ascii?Q?k6UP3nk+9yuqyOIUFWVnPnve/50HQL02mrk7ZIrlydpJsBnKr1MM0tvGe7FL?= =?us-ascii?Q?yQ=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: zC4uA32LqU8rRzKlE666zL5buXwBSsuzdc1zilkiKsuu/piXC1aXI8FE43gYYgXqUHnRdhNvC6plnMKCmf6Gm8aHvelfdwdBdBIlPbw8nc2DNpzbntiOhfaj/Z1H1Z+mUNnO+ka27kcZ7dHXik6G7hWLxWyKpfR4tOaM0ahHQZm36xG3UqlaoNGi0PGY/AceSTrw++O682n+4TOgwyDpr/I5k0iiBakJ0nQqN/5/YcijRz9CY6S2K51hj6l6uDanHjaajig5SegvR7HwSRyT0yZVso0a7gsCG0m6ZBzwqM4NSNnBBjjchQvLxHnhmemVrytGCqZ9iDzZfBwIATtMa6cFTlWAlITiD9qiNLDDRdA2IX4+taiKCLol7IvU7jDwhFwswIECyVMcHrMCscTWe/mXkjBVG6oGZwlpSWtm91APmHoVVZsce6qiSgn9YwTtQO6PelfhhY2y8aEZj0L6CtelX5O0aI4VPDNv72GMkyOrZsc5J4JtKQz4+Hiz4mgYRzVFTlIxpb7CtYxI3bBzWSzpTANmOsyg+JE5pjABiA4mQBffVOeEL3jAkPqHG0wjWH4/aTEf8MOAw24drXIx+Qqb9ttGc6TFnZpZpneEqAU= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: a7766dc4-57d2-4ac1-35ee-08ddf61e03c8 X-MS-Exchange-CrossTenant-AuthSource: BL4PR10MB8229.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Sep 2025 19:11:33.0660 (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: llczs6P3tk7pmlOzA2ourIgQNKNI47GD6U5NEhPfU5YZXaCIIwy8TA+GTSPpQUb3WE9IsbzVuw8EysglnD7bJa1WAWUe1zf+W+FG2ogZB94= X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY5PR10MB6189 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-17_01,2025-09-17_02,2025-03-28_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 malwarescore=0 phishscore=0 suspectscore=0 spamscore=0 mlxscore=0 adultscore=0 bulkscore=0 mlxlogscore=999 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2508110000 definitions=main-2509170187 X-Authority-Analysis: v=2.4 cv=JNU7s9Kb c=1 sm=1 tr=0 ts=68cb07ea 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=Ikd4Dj_1AAAA:8 a=AjtsbyE0BD3NTU5drM4A:9 X-Proofpoint-ORIG-GUID: 3Jm5M0sOtmcUr9UARYG2sJm3tDuyWkls X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwOTE2MDIwMiBTYWx0ZWRfX5Ipu2ODG2TaZ 9+Th79zwsIi04K44Nr+U32XPgs52IeDmMZBOn0HccDUeskSU/jl+bdpibEZshuaNEGbaa/yaXfD kNq2150YV+letupKFzRsJH8u8VAC4XZtxX1GUlAJKIP8eET5G1pcRzJudErzGWg/jvcNBO1aW/A 9VVGm9YcjZ63E92p/bzDw26N+nhyFb+tEftOYdeCzTpHURnPTXJuSl2Q6lVCCiGNsIwSrs1VM9U PdZGxG2ETgE9rRq332NqZhaf6nAgd+ZkSaEMg4XUx/07rabBfOz6EVqx1xqBub6epgwDXKipT63 CTSnScg+cAU3VahFhBLOtrx33c6OfBzhIb+1X9nfKNQG0hxG5OfqGe6uFYNaoZwj9xYcqCwNEW2 hrVdfh7Y X-Proofpoint-GUID: 3Jm5M0sOtmcUr9UARYG2sJm3tDuyWkls 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. While we're here, also clean up the duplicated #ifdef __HAVE_PFNMAP_TRACKING check and put into a single #ifdef/#else block. We keep these internal to mm as they should only be used by internal helpers. Signed-off-by: Lorenzo Stoakes Reviewed-by: Jason Gunthorpe Acked-by: Pedro Falcato --- include/linux/mm.h | 22 ++++++-- mm/internal.h | 4 ++ mm/memory.c | 133 ++++++++++++++++++++++++++++++--------------- 3 files changed, 110 insertions(+), 49 deletions(-) diff --git a/include/linux/mm.h b/include/linux/mm.h index dd1fec5f028a..8e4006eaf4dd 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 @@ -3622,10 +3637,9 @@ unsigned long change_prot_numa(struct vm_area_struct= *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); + 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/internal.h b/mm/internal.h index 63e3ec8d63be..c6655f76cf69 100644 --- a/mm/internal.h +++ b/mm/internal.h @@ -1653,4 +1653,8 @@ static inline bool reclaim_pt_is_enabled(unsigned lon= g start, unsigned long end, void dup_mm_exe_file(struct mm_struct *mm, struct mm_struct *oldmm); int dup_mmap(struct mm_struct *mm, struct mm_struct *oldmm); =20 +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); + #endif /* __MM_INTERNAL_H */ diff --git a/mm/memory.c b/mm/memory.c index 41e641823558..daa7124d371d 100644 --- a/mm/memory.c +++ b/mm/memory.c @@ -2900,6 +2900,25 @@ 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) { @@ -2912,31 +2931,7 @@ static int remap_pfn_range_internal(struct vm_area_s= truct *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; - } - - vm_flags_set(vma, VM_IO | VM_PFNMAP | VM_DONTEXPAND | VM_DONTDUMP); + VM_WARN_ON_ONCE((vma->vm_flags & VM_REMAP_FLAGS) !=3D VM_REMAP_FLAGS); =20 BUG_ON(addr >=3D end); pfn -=3D addr >> PAGE_SHIFT; @@ -2957,11 +2952,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, +static int remap_pfn_range_notrack(struct vm_area_struct *vma, unsigned lo= ng addr, unsigned long pfn, unsigned long size, pgprot_t prot) { int error =3D remap_pfn_range_internal(vma, addr, pfn, size, prot); - if (!error) return 0; =20 @@ -3002,23 +2996,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) { struct pfnmap_track_ctx *ctx =3D NULL; int err; @@ -3054,15 +3034,78 @@ int remap_pfn_range(struct vm_area_struct *vma, uns= igned long addr, return err; } =20 +static int do_remap_pfn_range(struct vm_area_struct *vma, unsigned long ad= dr, + unsigned long pfn, unsigned long size, pgprot_t prot) +{ + return remap_pfn_range_track(vma, addr, pfn, size, prot); +} #else -int remap_pfn_range(struct vm_area_struct *vma, unsigned long addr, - unsigned long pfn, unsigned long size, pgprot_t prot) +static int do_remap_pfn_range(struct vm_area_struct *vma, unsigned long ad= dr, + unsigned long pfn, unsigned long size, pgprot_t prot) { return remap_pfn_range_notrack(vma, addr, pfn, size, prot); } #endif + +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; +} + +static int remap_pfn_range_prepare_vma(struct vm_area_struct *vma, unsigne= d long addr, + unsigned long pfn, unsigned long size) +{ + unsigned long end =3D addr + PAGE_ALIGN(size); + int err; + + 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); + return 0; +} + +/** + * 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) +{ + int err; + + err =3D remap_pfn_range_prepare_vma(vma, addr, pfn, size); + if (err) + return err; + + return do_remap_pfn_range(vma, addr, pfn, size, prot); +} EXPORT_SYMBOL(remap_pfn_range); =20 +int remap_pfn_range_complete(struct vm_area_struct *vma, unsigned long add= r, + unsigned long pfn, unsigned long size, pgprot_t prot) +{ + return do_remap_pfn_range(vma, addr, pfn, size, prot); +} + /** * vm_iomap_memory - remap memory to userspace * @vma: user vma to map to --=20 2.51.0 From nobody Thu Oct 2 10:38:49 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 BDEDC309F11; Wed, 17 Sep 2025 19:12:24 +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=1758136347; cv=fail; b=q9UJKWojfLrdm8gixIJkENva4nJlMCMpd/WVpL2G7hRMv5z8l7TPNiwj5rzyEsrx3cRFjw3UMVNvs6G5OraDKjRVaZWfGxQ/YVUbzZBla3hrUIBUpHoWBEk9Vzl9TLd4s2oV8r8+xuRDh4VChjvF/FV8igGw5eXF9/oMNcUkgl4= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1758136347; c=relaxed/simple; bh=CiL0fTfMOA5r/K7C9cxIv24kg5iH5ceMZsUSsl3PmEU=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=r9Si1f9Jx+cwt0HhoNhK8+u6mf+J3EJmE+H1NQCEzP+mR87hAkosMo7eAZtAFWNI5EwDVlMQtkMM1hRY/wsENfDKMXQzuyuuFV7rvaMMHsK4x4wYDlMfgvqlwkbP0ygj9QPBVytulVWyDnVC2m6BbajiZz1GMzxF97KudRLiDkA= 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=XeftUVu1; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=CrbzVq3k; 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="XeftUVu1"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="CrbzVq3k" Received: from pps.filterd (m0246630.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 58HEIUwl008312; Wed, 17 Sep 2025 19: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=esrzli4+YEEqWyBETu3tv+dfK/pvdPpC1zpkqMlWctc=; b= XeftUVu1AGHdOzVnstd3evkI18B6G5+JuCwgI1Qu6C9jhV1yvb4Br7bU4PXw0K6H pleGkqbNCkCOpI2FzZG+g4nLmfK+7sTTleA6VKEL7Tl9f37JdNXK3pkwgDn2jz4o nH1B2kwmSKoU7ni+MhejYJiakeL6VGCsJZZWMBeiIEOMgJuK18+bTFDwHUlvl+Ye 0L9B1qUVi7gtnvKFwGf2CyvD3EzFgvpd9Y9AREK0QtAgmPNgsA9zDk12ToyWxLeq 2SFnOVZkxuE5tbDPKMwElECDzcYqvZ9XvD5KcVKWrGTvQem6sJA+8UVPGAhCKdrj s22pxU8JbQSMjdonIKDHyA== Received: from phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta01.appoci.oracle.com [138.1.114.2]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 497fx8hxne-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 17 Sep 2025 19:11:40 +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 58HHmk6c001628; Wed, 17 Sep 2025 19:11:39 GMT Received: from ch4pr04cu002.outbound.protection.outlook.com (mail-northcentralusazon11013068.outbound.protection.outlook.com [40.107.201.68]) by phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 494y2edr1x-5 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 17 Sep 2025 19:11:39 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=NEyoX0fy9QnnXPkfu4Ud74XcoKGhoB40k0yiSmHDXOREjugtpMs70X4LZGdWpmDGQCHCiwuN4Z4P/Ke9D7i/jxv22OtzpZ7V5NpD1awGyQcE4bLNlwR+GNM3LE2veLh1TSVF8sIEjelTrEqgtCcULCpaiX9IHC81NuB8mCBdJ+oqHdSyrLVDp2tw50qBjLDAWAohbewmD/kugVtfYTctP4FL1naiAGQk9FwnkhWka/dRjRfDmX+TVM779pk9ZckboDugzGdLdm+7h4zNOokLUMa1qviqMEr8XQ/uWE2rNfmHckjJEE9PMk5a/iBOCTSPPRGCaFVyiXVHAJZD7zJSVA== 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=esrzli4+YEEqWyBETu3tv+dfK/pvdPpC1zpkqMlWctc=; b=eCMa7++TiWhPThu2dnIGzlwkPx+6bM3NvDOIFpjWx1NRylS0V6old18JCrDEaCa0xAp9B0E0FFwgr+nlGhSYmAD2ZBddi3NV6Q8gISJlOaKESsaFUtgjFBKSJnAqKbxq3jqJJB7s/ZjVnKvFdkAbwGF1Tfy2uVJPAynA49uAEDDznsC7HothdSANKZM7FSOUJMmPHKXzRHUPvjGGoAFYdt9Ah8ncDFkW8gbLzP3oQ1gXMFB2eeXQx9j2afm+gqh2aTEj2FSIPdrPZB79NBD0CVNXKtA3QjxNvPjkQawMSgfw+d+du/ZIOKCGk/LLuiyMOG9aRisPYuMN9xWMb/1c9A== 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=esrzli4+YEEqWyBETu3tv+dfK/pvdPpC1zpkqMlWctc=; b=CrbzVq3k8H9D2avAjWGmIcRplGLiaTLyH9X7zh27EiIdnCfnc7kHm22qvGORcdUAvANhFm917mdXQeoqX4RhNfN0zyCo6NOrV0AO3j4ORqnzhHNO51j1t0wK+Y/ds2EutEH3MGdvwWUmaJSqSGoWcPYe+3eUPiI3+E5vtSyLP9Y= Received: from BL4PR10MB8229.namprd10.prod.outlook.com (2603:10b6:208:4e6::14) by CY5PR10MB6189.namprd10.prod.outlook.com (2603:10b6:930:33::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9094.22; Wed, 17 Sep 2025 19:11:35 +0000 Received: from BL4PR10MB8229.namprd10.prod.outlook.com ([fe80::552b:16d2:af:c582]) by BL4PR10MB8229.namprd10.prod.outlook.com ([fe80::552b:16d2:af:c582%3]) with mapi id 15.20.9115.022; Wed, 17 Sep 2025 19:11:35 +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 , iommu@lists.linux.dev, Kevin Tian , Will Deacon , Robin Murphy Subject: [PATCH v4 07/14] mm: abstract io_remap_pfn_range() based on PFN Date: Wed, 17 Sep 2025 20:11:09 +0100 Message-ID: <4f01f4d82300444dee4af4f8d1333e52db402a45.1758135681.git.lorenzo.stoakes@oracle.com> X-Mailer: git-send-email 2.51.0 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: LO4P123CA0399.GBRP123.PROD.OUTLOOK.COM (2603:10a6:600:189::8) To BL4PR10MB8229.namprd10.prod.outlook.com (2603:10b6:208:4e6::14) 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: BL4PR10MB8229:EE_|CY5PR10MB6189:EE_ X-MS-Office365-Filtering-Correlation-Id: e0fc1fa7-14f9-4fa8-9dae-08ddf61e04e5 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|7416014|376014|366016; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?aiHyp+9u8hZ1SP2ijhqjz1uSq7n94b9nwRrh+jDbKzQTiGJTtpPrwPWb29H1?= =?us-ascii?Q?laIwNosp4wbJvrsoB8gnfNHihWkXfEIKPi28XVWO4O6CcDRwR2ouq2LC7FLB?= =?us-ascii?Q?8tBXNQp1r/Anj8RtowjXmwbPZhsOuNIR6lWgGhUhGGMYm6QSDg9zHvYHdVnP?= =?us-ascii?Q?PCSc0ZhvOMDGzcaQSfw7jxcwAUmooDdod618LYCph86zHI/Zm4LkB1Ukomc1?= =?us-ascii?Q?0WLVBKwa3CmIAP1KXpbk8t8j3ckW+yDrSURLzix7LGQAGNh0cXb0mY+f8hbI?= =?us-ascii?Q?U8UR/gBxaaZYFCPjL6HudWpnXho/ozvyr3/NlI6AEgcnhLb2KMRQKz19M3yy?= =?us-ascii?Q?VzhHlQCVIf9WYDvUy+h0TyCkmK1KuPCS+ONj3N3gWSg7Vh92nzUavw3s758Y?= =?us-ascii?Q?coZYMVck+PXB/4Mhw4ffYQKtz4BCA+hl8fiYRpmHWxMJVmvRpQLa7w07w+2Y?= =?us-ascii?Q?LfoMdmCk4kFsEDWzIpqd30Jd1+3gCXu+662VxuvDPOu/WVtyU5OVQvKKLDIH?= =?us-ascii?Q?Zzmw/V+OLbd7mPiD6K82YtXybLvCVgS0d+NUF5FizALqkVaX/PQDQOvDrI9E?= =?us-ascii?Q?9IrdFiSlZ5FH0XNxQOJEq4ZblQxY28h5zRWi6E2uPFia+GGA0r21nLegsf6k?= =?us-ascii?Q?H87w09cyX7vlo7pvJUv3le8iMC/T977xdcIbtGA2BDlxpr3Cs9tTp5fNZ87q?= =?us-ascii?Q?LuwjzgDjayJok0Uiu4CnwKrnR4k+CdK7CPh6TWFB8FHHLRAhZTssNYcGD346?= =?us-ascii?Q?4o67xeQhHqCKhlkcpvQwwkI+HULKTmF1juLrVif9qCdPSWVjKQv1poZ9RM1z?= =?us-ascii?Q?lq/OT+6dEdIWbAnHdjzf4Z+EKqcabE/dor7hO1mIqL0BxTHbiVhpDtD+WLpn?= =?us-ascii?Q?9A6M3sjbkddQxvcCR+SRnHQEdNj+I/0DM41G9ZYcotN+jgM7Z2LEsnkP4LHN?= =?us-ascii?Q?nI8/7xHcsp6+1QSf5t6k9Q5gElCNBsaf9tMMLVq2grazHrsv9CzWc35OklHC?= =?us-ascii?Q?VG9usS0Vi4bfltrppNVrNAghQLhHuRqdVoAiJfBCrWpqAd7gpSbtuM4bFG3I?= =?us-ascii?Q?4sy3FmIDY4AGMf6ILXCcpaLsb1V6pMc0+Nc6pw/pVwJWnFZ2OqGAP1MnxegF?= =?us-ascii?Q?dcreBdAHni6H5ek/r3XdindwglLXBjg7VVvYw/dItp0jB9XKUnZEoG6M7jGq?= =?us-ascii?Q?pRT3T59kOaWpMNUmXWNthqkxLrJpU0+VA+fDe8ll3nxsC550rRoAKpScKlqg?= =?us-ascii?Q?SkNFB8AgK5FYnLL0wjepLvUjZwQERBhioswzWdmNBRaGHpNSz+4odAXLtX0b?= =?us-ascii?Q?Rih29spbIxSd9Sp5oR6Xp0oTKCyuvIsfxDjGXBHG/otzwf8/qJNk0s/zi+KN?= =?us-ascii?Q?oSNq4Fvqk/RpRNOHOxO5LRw5CMHvCLQf8cOp1INzflx0yealrg=3D=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BL4PR10MB8229.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(7416014)(376014)(366016);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?SZb4W/xdg+rPiyJAtm9QuhwVWjyHx+M5gg6zcVXtTAWNNMPfmhziINMdfweO?= =?us-ascii?Q?Eh63MUyG4NhcJmbn3uws/h7uwSo9WqRUsA2x8spPoVCqjtLwRBTVhnsO0GHo?= =?us-ascii?Q?jPx/JgQy0hJqMemBLKvlJQc8ijIjbvztNDur6wRBH877P94hSHbogvAldPm2?= =?us-ascii?Q?NMjDYc9lEaGBPQfi36baxO+JI7MrJ+GiN2Z0lDgD8s/4ZdnxOnUt1sUBErg+?= =?us-ascii?Q?+DIG13BIVC1oEXmpQ1P22mx/P2F6dDUvm1bfcVIV83Ig04E09AJpO+cdIWph?= =?us-ascii?Q?nWgpVkNNNQ5yAds57ofgDj9GgQghAW8aHEa3LMBQIS73O6iLiFQiDjTkfTCJ?= =?us-ascii?Q?JeofbQq2oc9uMPFpYA2ayBrXQgd/uow7fnVw4m7KBbaimEgr2cnpI3om9lXO?= =?us-ascii?Q?2eLiORllv6DfpRE9+WlBscOfavt32Lfqpr/qG8MQYGtJjZj2+x5oq68QU2iz?= =?us-ascii?Q?gixrGAcaVYuXk7u0z6l2TlDg2KSaGc33rPva9W1QCPUeVq1Vc5IbfI4fxeFf?= =?us-ascii?Q?M4/FwoI+IQH85O6f19/+4R84iq7X8ON1kd/HzGVzcnTU/WZ5zjmenNvTZOT4?= =?us-ascii?Q?ic34ZpZGcmLNg5v6MZ3qigbeCaTsZTCn5b4qov5SjjH/5Xh4ALppFf03/dBr?= =?us-ascii?Q?2CUZ78jobaZLhtDAMSrd3sg0vHXxUm0399z7E0H5n7Ie8UfMffXc8U9t74+G?= =?us-ascii?Q?72gqWxlOidXnAYkWBvPYRVbWCs4JqB75n73JokawY8YOEIusgj/K4nT9gQi/?= =?us-ascii?Q?7lcYNuZOVX5z9uQ2zT9WfPlKOY0gmS5EaGtLVlB5C+lCpZ9YfiySZtDlWSx6?= =?us-ascii?Q?q9ruQDw++eb7UXxj4mNnp9jY4Uc/j0epjf50zLFzqayvcQyVXDF11u2mM4YA?= =?us-ascii?Q?OmdlkHrbN/9o6rVYG7yB2s+oPFE0xXmV7f2+0NeSeVSum4pPrrZCLz2YaOQB?= =?us-ascii?Q?v94mi3U0E3184yWmA1i3iabJUJWH9GS6FPROEX+26jIuqMPbbtF8kklhkLES?= =?us-ascii?Q?gglMSpVp8+E7W0xPVsUHQWNZTao94Gr8971s8jwsShQ1rZXd/+fRls2u4C4V?= =?us-ascii?Q?ZYCeUORhRd+DSYbu7Lni+D7+C5AzQsj/wuhzajhMa/3SPivtbK9IGOhswx4w?= =?us-ascii?Q?kNdj2+xybl/ca3JIfP32ETq/CMA+co9tEtM4rnviiYf6XZdNCdElVCWxt9Zf?= =?us-ascii?Q?bAXgOLN3dhY2Mpqoqw87Sc7BQ0+cTf/ATA+c42K9HNAMAeiCuHMiD92+jZFq?= =?us-ascii?Q?pAGeHlAd9hYVG9F7nMKIIw63/Ayg47AhwbziNNmjet8YIGcHuCQrD7gf5T49?= =?us-ascii?Q?0/JtT1eVzHmmfFW+HgWMnE/1dJKR4AP12pSkyBYDvaG34RO23qlmDsQ/orCK?= =?us-ascii?Q?DlcYQQUL/BIwH7e9eEHE1F/9V6iJSZetzcjd0iD6s7EVxgY9pXV8kvNPVift?= =?us-ascii?Q?qNr1vEheJ82zt5gGo698YDX+ecYF9DuSkk+zpm3QRbqK9tPuwF2ZQTRaeVUv?= =?us-ascii?Q?iT2pM017K9kngxANoQ21o8IvPoFJlrK+Zjt1XtwEg6cZytYwtQSqMwev2KCK?= =?us-ascii?Q?FkEG3YM9ea38B60mrng5ez/MWSGkANLOUBRjfJ6diX3jQPmDLVi9keReSFZr?= =?us-ascii?Q?zQ=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: iEQUGzvnKnEChsf7kaOF92MapphD864CplOIR/9A/lhoh4BgRqWekimycVwmV0UZOQiuHdPdvvuatWN2wpHWGMhl3Z9yvPx7neP5xRUITYAsm/nI2F4CBx9xKHV2T6WaXeBt+PRnkKBP0sQqEjcJjJBwzf4qThyMrdjmmCMaBHzXUE2smsay1Z4nIDADvE49AgHtZdefGjlE7dpdfGbxF1M9ev9eTECxXCnRAf5q7yhYK3H0h+82a784S5PDY8VfM2+kwLOA+rp58EqaA1Aaplf4XivTIwcEfkikfIoeV0SnbuNoxIsmT4CEAJQP/ojfKHgv1NvFUNWuxa0IGfmmcXW5I2rxC97ZJBpkGZvzXXpx/Bv6UK798LAEquHt/pOc5sKpbFbXASmIN+vMgCjCLYg6JphmKtMs6oyvTrvFrTjD/SScSLXj0mGMuC+ruXLnLhLFKQss1yG5ySe/wXsOZTLQc6Nia7uiun5HOOZHdpqqfB/8B7lgnpXbSQi7Aa+mVWa8+f+gfcfVhCLO9trgj/+U9a/4bpUhdn7XpS8yepJeSsguUvEGj7exRsOg7WGZX0D4RrJ/EYiHTPt9csi+chro3zGujMAn0nnU07Albz4= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: e0fc1fa7-14f9-4fa8-9dae-08ddf61e04e5 X-MS-Exchange-CrossTenant-AuthSource: BL4PR10MB8229.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Sep 2025 19:11:34.9356 (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: OswbYRYH0ILwXrmqugLV4m9j41+Ae9GOJcim06pD3qQZROh1DOHYY04LT+5j3dZvK6mmRKTcAp+4GN8kgR0bZFPa/vS+LRqVL9PU4S0iQQ4= X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY5PR10MB6189 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-17_01,2025-09-17_02,2025-03-28_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 malwarescore=0 phishscore=0 suspectscore=0 spamscore=0 mlxscore=0 adultscore=0 bulkscore=0 mlxlogscore=999 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2508110000 definitions=main-2509170187 X-Authority-Analysis: v=2.4 cv=JNU7s9Kb c=1 sm=1 tr=0 ts=68cb07ed 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=Ikd4Dj_1AAAA:8 a=yPCof4ZbAAAA:8 a=d3CWW7REp53awPo2IZMA:9 X-Proofpoint-ORIG-GUID: uOvvLWiJ7PebyfTpFNbr7vqK1Zs1AHfY X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwOTE2MDIwMiBTYWx0ZWRfXyvDEoqhlSAHZ FTzQJHM9SQF2UNF7RoNqzcTh5BYAFLo0t7F46u5uOzngs5JjgWR9manvvX7UTndTkntD8b6KCJl 2C06EUzkgerHdCdb+6yB/SIAHvtVwazPXe/SpXuIc/DRZxx/166cfwjXqiZ23qEg+ygQmeEcZB3 vdOexaTuwVwMAI2p9N1z/FZINK80g5GJ30AxU9t/WF1Z2g+G8CNEIA8+vYW1dCr+VcsNhNMDJAb GjZAN21O2Vr1j0aRf3Cq6eKvQwb5kzXJv5qMa9yqhahS3h2qd0DuY49aJxTkLvrXg/u6ZLw1GgI LE3NFUzPILe9ZDepK150fxT/6Fl9sour9bsjOHNydovlulf18zRZeJor8JzBysJEb0IPerXV5rw CJSN8hok X-Proofpoint-GUID: uOvvLWiJ7PebyfTpFNbr7vqK1Zs1AHfY Content-Type: text/plain; charset="utf-8" The only instances in which we customise this function are ones in which we customise the PFN used, other than the fact that, when a custom io_remap_pfn_range() function is provided, the prot value passed is not filtered through pgprot_decrypted(). Use this fact to simplify the use of io_remap_pfn_range(), by abstracting the PFN function as io_remap_pfn_range_pfn(), and simply have the convention that, should a custom handler be specified, we do not utilise pgprot_decrypted(). If we require in future prot customisation, we can make io_remap_pfn_range_prot() available for override. Suggested-by: Jason Gunthorpe Signed-off-by: Lorenzo Stoakes Reviewed-by: Jason Gunthorpe --- arch/csky/include/asm/pgtable.h | 3 +-- arch/mips/alchemy/common/setup.c | 9 +++++---- arch/mips/include/asm/pgtable.h | 5 ++--- arch/sparc/include/asm/pgtable_32.h | 12 ++++-------- arch/sparc/include/asm/pgtable_64.h | 12 ++++-------- include/linux/mm.h | 30 ++++++++++++++++++++++++----- 6 files changed, 41 insertions(+), 30 deletions(-) diff --git a/arch/csky/include/asm/pgtable.h b/arch/csky/include/asm/pgtabl= e.h index 5a394be09c35..967c86b38f11 100644 --- a/arch/csky/include/asm/pgtable.h +++ b/arch/csky/include/asm/pgtable.h @@ -263,7 +263,6 @@ void update_mmu_cache_range(struct vm_fault *vmf, struc= t vm_area_struct *vma, #define update_mmu_cache(vma, addr, ptep) \ update_mmu_cache_range(NULL, vma, addr, ptep, 1) =20 -#define io_remap_pfn_range(vma, vaddr, pfn, size, prot) \ - remap_pfn_range(vma, vaddr, pfn, size, prot) +#define io_remap_pfn_range_pfn(pfn, size) (pfn) =20 #endif /* __ASM_CSKY_PGTABLE_H */ diff --git a/arch/mips/alchemy/common/setup.c b/arch/mips/alchemy/common/se= tup.c index a7a6d31a7a41..c35b4f809d51 100644 --- a/arch/mips/alchemy/common/setup.c +++ b/arch/mips/alchemy/common/setup.c @@ -94,12 +94,13 @@ 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 inline unsigned long io_remap_pfn_range_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; } -EXPORT_SYMBOL(io_remap_pfn_range); +EXPORT_SYMBOL(io_remap_pfn_range_pfn); + #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..9c06a612d33a 100644 --- a/arch/mips/include/asm/pgtable.h +++ b/arch/mips/include/asm/pgtable.h @@ -604,9 +604,8 @@ static inline void update_mmu_cache_pmd(struct vm_area_= struct *vma, */ #ifdef CONFIG_MIPS_FIXUP_BIGPHYS_ADDR 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 +unsigned long io_remap_pfn_range_pfn(unsigned long pfn, unsigned long size= ); +#define io_remap_pfn_range_pfn io_remap_pfn_range_pfn #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..fd7be02dd46c 100644 --- a/arch/sparc/include/asm/pgtable_32.h +++ b/arch/sparc/include/asm/pgtable_32.h @@ -395,12 +395,8 @@ __get_iospace (unsigned long addr) #define GET_IOSPACE(pfn) (pfn >> (BITS_PER_LONG - 4)) #define GET_PFN(pfn) (pfn & 0x0fffffffUL) =20 -int remap_pfn_range(struct vm_area_struct *, unsigned long, unsigned long, - unsigned long, pgprot_t); - -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 io_remap_pfn_range_pfn(unsigned long pfn, + unsigned long size) { unsigned long long offset, space, phys_base; =20 @@ -408,9 +404,9 @@ static inline int io_remap_pfn_range(struct vm_area_str= uct *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; } -#define io_remap_pfn_range io_remap_pfn_range +#define io_remap_pfn_range_pfn io_remap_pfn_range_pfn =20 #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..f54f385a92c6 100644 --- a/arch/sparc/include/asm/pgtable_64.h +++ b/arch/sparc/include/asm/pgtable_64.h @@ -1048,9 +1048,6 @@ int page_in_phys_avail(unsigned long paddr); #define GET_IOSPACE(pfn) (pfn >> (BITS_PER_LONG - 4)) #define GET_PFN(pfn) (pfn & 0x0fffffffffffffffUL) =20 -int remap_pfn_range(struct vm_area_struct *, unsigned long, unsigned long, - unsigned long, pgprot_t); - void adi_restore_tags(struct mm_struct *mm, struct vm_area_struct *vma, unsigned long addr, pte_t pte); =20 @@ -1084,9 +1081,8 @@ 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 io_remap_pfn_range_pfn(unsigned long pfn, + unsigned long size) { unsigned long offset =3D GET_PFN(pfn) << PAGE_SHIFT; int space =3D GET_IOSPACE(pfn); @@ -1094,9 +1090,9 @@ static inline int io_remap_pfn_range(struct vm_area_s= truct *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; } -#define io_remap_pfn_range io_remap_pfn_range +#define io_remap_pfn_range_pfn io_remap_pfn_range_pfn =20 static inline unsigned long __untagged_addr(unsigned long start) { diff --git a/include/linux/mm.h b/include/linux/mm.h index 8e4006eaf4dd..9b65c33bb31a 100644 --- a/include/linux/mm.h +++ b/include/linux/mm.h @@ -3672,15 +3672,35 @@ static inline vm_fault_t vmf_insert_page(struct vm_= area_struct *vma, return VM_FAULT_NOPAGE; } =20 -#ifndef io_remap_pfn_range -static inline int io_remap_pfn_range(struct vm_area_struct *vma, - unsigned long addr, unsigned long pfn, - unsigned long size, pgprot_t prot) +#ifdef io_remap_pfn_range_pfn +static inline unsigned long io_remap_pfn_range_prot(pgprot_t prot) +{ + /* We do not decrypt if arch customises PFN. */ + return prot; +} +#else +static inline unsigned long io_remap_pfn_range_pfn(unsigned long pfn, + unsigned long size) +{ + return pfn; +} + +static inline pgprot_t io_remap_pfn_range_prot(pgprot_t prot) { - return remap_pfn_range(vma, addr, pfn, size, pgprot_decrypted(prot)); + return pgprot_decrypted(prot); } #endif =20 +static inline int io_remap_pfn_range(struct vm_area_struct *vma, + unsigned long addr, unsigned long orig_pfn, + unsigned long size, pgprot_t orig_prot) +{ + const unsigned long pfn =3D io_remap_pfn_range_pfn(orig_pfn, size); + const pgprot_t prot =3D io_remap_pfn_range_prot(orig_prot); + + return remap_pfn_range(vma, addr, pfn, size, prot); +} + static inline vm_fault_t vmf_error(int err) { if (err =3D=3D -ENOMEM) --=20 2.51.0 From nobody Thu Oct 2 10:38:49 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 3678032BC1F; Wed, 17 Sep 2025 19:12:21 +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=1758136344; cv=fail; b=IrJ+ThIjPB2aevgK5I1MijVW0TfrhF6g1wRJ1nLR+Xl1cSxgVuKlFBBW7Q6BT6MWXLR7eg60ypEG5mOmkio8rL7Cd7xX5YNjhVzWSSOy4d7o2EwTS8s2TmZj2CzgGPRGzvM+NrivjhqV3Mjxj08lLQNAeFh+NxghDRU0TgdyDZw= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1758136344; c=relaxed/simple; bh=mAl3nNAOybZalcyIaMD0cvINITxcPr9TcYow+IPVbXY=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=pAJsotMnWGaeVtA0Vwm7pzFdQ1IALiE8+kaDXyt4RnyPt7gv1iMMo9CK1E56kUGsBENJEHH1Se+I7wWKgyVpBCLAK7SksPM2KRn1ke+atzL2z1DffuUTGtH4501lxJ4HhtqbUoddqY5pUVDB3FQTVyQps6JeTwghaKFMphtPPy4= 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=V/cUKDou; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=m6QVp05f; 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="V/cUKDou"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="m6QVp05f" 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 58HEIRaB001799; Wed, 17 Sep 2025 19:11:43 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=FuJChwG1MhLRYQ6IH2bwrJ1lCowbo9ircLVlBP437qg=; b= V/cUKDoudjxC8E/9DJRzKE7yWsDk+xjImfjNmFRCdQu69/gFTDh1DLsqOqRa5phi zv08lVXF/VcqjQa8JsfADgYZKf+0dj8elRpCdofJ9rPny5CP0piRRBwPBUJrPsvm p41SQdH+BixHfv5xFa+v8JV9s5w9FsN9c10qbUMIhmQFGSwL2Nh0v6zqXkt4gM7y OgIUcdkeqt61ALU114exJDmLG8J8rVTCFIdhVNdK8fr0JmESe8smWXytpjQoMLi5 M398A8X8+eM51ocKq+qgEfq9gPSNqvnzrjnd1cpdgGj4aBDlBDoyblXjRKPpSp7O K/xMqVZH/UHo5tTL5EmfUg== Received: from phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta01.appoci.oracle.com [138.1.114.2]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 497fxd207g-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 17 Sep 2025 19:11:42 +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 58HHmk6f001628; Wed, 17 Sep 2025 19:11:42 GMT Received: from sj2pr03cu001.outbound.protection.outlook.com (mail-westusazon11012056.outbound.protection.outlook.com [52.101.43.56]) by phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 494y2edr7t-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 17 Sep 2025 19:11:41 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=ciXVOqOT8pyWVLrGKXnVlDlQtKE6P1VJAXcg7IQjmHqINFgDvE25wqDIjJLtjPgT3AQX8JHA5bEsKMz4hOCCXPcaasmmOkG8yhMkmCSnoJk/JmNVJZVUzZCQZIH/8LJ8EO4TvSqnqnuet37fzAfXmXnxPM92XvQNMMRhSdijzLlbw5oz/cs0ONoOwz6ChVCrx+eWGjut0pwrLFFHMl9e51fIEhkJlOVzItqKfmhD/pIZ7mZ1XxpC3syg7oQ3V63gXUwTqoc0NP+ueAjebrwVH7IcYssAmVLoVr7FnYkPV9MNcYm1hQPrtmMdBU982S7r2WJtqW/xmlBUllIFYo9hWw== 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=FuJChwG1MhLRYQ6IH2bwrJ1lCowbo9ircLVlBP437qg=; b=xMvrsjHyM/nYX5u/DQ3ami3oQbw08FLJVvQ2zu2oQuju6LT8Zwpz1SgrKQt7/iBgeWW+pV4HWZBRUkZQEI/mYiBeX9nLcmMimkdw/m9VKfU5ywkDxHNLmV803U81BoUeorP1mrxYJV/0rA+DEktPqREHDxKBYEV2IY5azyR5QzJK+kNZyRZMC6OXbyA/madBFWb/fNtOChQdSXxEpyWrLK7kWoLhdVaQ0pVsXfZxT/LNmCnCDb2Rl2MhNkSaHrlkNYk+k6cpaOpKJEOpTA/UQkJ2HEpGeUyizYcKwdP+YuEtnHDtrf3brESDwileTJZcQIED0ttJ65phI734QxHWyQ== 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=FuJChwG1MhLRYQ6IH2bwrJ1lCowbo9ircLVlBP437qg=; b=m6QVp05fapMRexPGhRTVc7WBMcrFWLG4NMYKk19u8q3/8A8cWQtEnBPiqjF1OZSSSvpaHZV0XXZOqO6DqqNnwNDwIp5TEqcH/1MHVCE2ZuPh84SC8xrxLo3eX0sxxD6orpYl+gEvK20zvequeynjC7r3EviYSKWydtMH6UdURFQ= Received: from BL4PR10MB8229.namprd10.prod.outlook.com (2603:10b6:208:4e6::14) by CY5PR10MB6189.namprd10.prod.outlook.com (2603:10b6:930:33::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9094.22; Wed, 17 Sep 2025 19:11:36 +0000 Received: from BL4PR10MB8229.namprd10.prod.outlook.com ([fe80::552b:16d2:af:c582]) by BL4PR10MB8229.namprd10.prod.outlook.com ([fe80::552b:16d2:af:c582%3]) with mapi id 15.20.9115.022; Wed, 17 Sep 2025 19: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 , iommu@lists.linux.dev, Kevin Tian , Will Deacon , Robin Murphy Subject: [PATCH v4 08/14] mm: introduce io_remap_pfn_range_[prepare, complete]() Date: Wed, 17 Sep 2025 20:11:10 +0100 Message-ID: X-Mailer: git-send-email 2.51.0 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: LO2P265CA0451.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:e::31) To BL4PR10MB8229.namprd10.prod.outlook.com (2603:10b6:208:4e6::14) 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: BL4PR10MB8229:EE_|CY5PR10MB6189:EE_ X-MS-Office365-Filtering-Correlation-Id: ce92cf06-d2fb-4c08-45ec-08ddf61e05dc X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|7416014|376014|366016; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?PjokzuATfC2inAuHM9pViYgsiPhUFiMQGuNzZahWr/K2pMW1f/0le63nneGI?= =?us-ascii?Q?8ghNB0L7NAq8y6cKGOV3lLnya42ZQBtAnNQ0xpRc2Q8YkL0goKBBnr5cD5CT?= =?us-ascii?Q?zHMlUdlMJeKhTaQr4RlYPHst7vL5kKLV8Y3nf2+pbxqLss4skfsHxukszIsm?= =?us-ascii?Q?NMOoHasTjN3pnvSz78VSONA2aX91CcXsoxLwQojhcB6SV43hfZBkxzXzHZV5?= =?us-ascii?Q?3R2BJpv+w0Lg22b+lv0j3vNgxC0XvC0m8kTJBsRBujtl4NI7azHoAblg/Geb?= =?us-ascii?Q?eAGuzoL2NNJfbapycCCz97bfyfJI0/ZQDQhE47PMg33ZLxq4e+a5U2xnNTgU?= =?us-ascii?Q?GetmhoKOeukbEMHToLYBfPNTGH3hGtR4GmrxpiFYPx2zScP0wq22XgTSq6s9?= =?us-ascii?Q?5hPaqGJpJGutCgDddR7gGw9iBjGHXnDcUDu2dmIs9dD4c53f+DQUtPbm7hej?= =?us-ascii?Q?Z1GyHw8tIP4WIH+Ifa8DWo0a+kzlz6ac/KyUq+Baniz4S/MGg2GJfCggLYyp?= =?us-ascii?Q?3XtqPK98O+k8A5XvGMGIPZI88Vq5wXCM+kfN2c3mYLNfRp60uCQiTgIpYUX6?= =?us-ascii?Q?hrVVDzvxVwobb+9eiMOpgu0+xzhG6u70ZeQaciTVDoCTQ4b+wnNMVIXdg5le?= =?us-ascii?Q?iD9IMrdqr+PV5VgPsI2HTQLPIPrQvy2upON8tRip3ZT4o2Ej8nkCvwepwFI3?= =?us-ascii?Q?x3lJSXjm8wNID2WX/rggejtUm98tEkpMEARtjJadY8uEWErHuWTCTY/AaPR6?= =?us-ascii?Q?b4n+TjR8hsdELBSV1AO3j4xQpT05T0oMTSVpggr8VZFeweTPfAZPAVuY7IGi?= =?us-ascii?Q?xeIAGQZVCYhkPNZFgAhdfIVQRgV+AoWkDy3UBs8RiWqvFmwFx32bzET2jwEj?= =?us-ascii?Q?iAJsiR/LSgSERpk6nkm6wfjkWFa5uLNxHJtTMifde0CX7RP6DCOIkdyNJcw/?= =?us-ascii?Q?hlwP5fvuZODkYCLAFcyKsarq1wyhXkQHk/cXT2rWEq6fLzfmkk3EFcKMjK+Q?= =?us-ascii?Q?mnC8AJnBarLyEkOfS9j2TZIV1b1A5dYXnDL2FjNLv/RW6LWxhUxXYcUj4qwW?= =?us-ascii?Q?ZBedTBkH0eEdFj5Mzorwy9kwDWTEZDaCQOF/obQ+dOzguhnkUkwpTOs2eLk9?= =?us-ascii?Q?KUuoSwWx9u8X8VNgqN5sdH5rfQLHLVaTJPnXcjfUsSMF+oxJI2orRj9HkYtq?= =?us-ascii?Q?icCQhaqFNQMU8HarjZyfmLRmMsPDR9CdpjHY1yTsWJfsuu3l/QIX/lP4ASQX?= =?us-ascii?Q?wOh9S1NnW0z6X/37EEznWloHlnvKjoIbFTkq15QNwFiyTD6mpfC/LBGx68g1?= =?us-ascii?Q?AJrn9HS/FATQ5+MLyFEQNQUAdE2pyuJHCwk835JLXQtlhvTuZP6EEhlMI41f?= =?us-ascii?Q?1TSvux9k4/K2rmm2J6F6YPhhBUcmwRLiqUnWD7C1co8OMFQdZss0jbuVdtMC?= =?us-ascii?Q?xLTzf1Mn3Pk=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BL4PR10MB8229.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(7416014)(376014)(366016);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?GqTmY/SL55kJKSqzPXoQxXEo0tT2NI8EAHCk2aUhHcmUEjPtyC6dSSXFUG3N?= =?us-ascii?Q?ZhrgWNsiH3M+CDMwumyaiGroCFgymoHarhDnvJUpGjt/46rmgtmvZUCoWJGO?= =?us-ascii?Q?xlcecM+H3S2Shaxt+DIFHXLT8/l5y+jeLAYxRmiVMHoS1otxrJdX1a2ZZVR/?= =?us-ascii?Q?BCgGscb+sENdAZwv5NTYR3sMw60YO5UJ1Na8frcnkNF9vR8Fofl3HHu728CI?= =?us-ascii?Q?IjwQQj9UH4+RfdhtJNUvEU5bPJaqlE+dPVnajvYVfjyDjlIFjYMbm162p3uT?= =?us-ascii?Q?al/AIisS8kxRPMKOuvwerfS2B4vtVhNEiXmGRbPZQ3PUjvRr547Gl0KnJIVT?= =?us-ascii?Q?2l46n9zIe3Pkyx/zJULgc6uD2TkqX2Xt0kuDjQA0cidFcOyjwgpe6yUF/cUS?= =?us-ascii?Q?WdxPS5V7EAJQmDDmGjnQj3SUdRZbeJgbknfJON4DBqr08evYp+Q0DwREtfRU?= =?us-ascii?Q?4ihu4tHPlfATmhMVGj0cYtiKb+pF9eIfunR6v6iAbpHwdaffOERRUvs8H1AH?= =?us-ascii?Q?oNBdg3xDudmrFIpiSd1xoUVJa5H4cXYWqilfM5TMI7IYff8wdLSaYUoKXK9b?= =?us-ascii?Q?BbX94iNNz+MiwCzcd93ksdKJmy33zyEG1vad4VucUCWA1bk1CDUIJe187KrZ?= =?us-ascii?Q?Is43bIz9TV9IUNbcb/OjZK3AHR1WSr57J+fA0pl3s94MA4owCk467WMI1KLz?= =?us-ascii?Q?I292WEFcCOH1cfyEqdc7OeDNPlD9002wLzwvAvNoepS8ZKcjZNYDdPTT3q2U?= =?us-ascii?Q?99ipyzg2AQApnuMxuX2UAZQERG2Sab4CISNXKqdPQCJUP4GJmGdl45GpFsC+?= =?us-ascii?Q?/3CVYedWhQmI9xq02W03Rn12YtcV0hVM/s6s/lD89tT5RR6tBpFVYsVlmmdd?= =?us-ascii?Q?6k25pwRysdPruKiMoD49cG9MuXdIUDR6YcBxce1OyNeYii79Nd7ymBJBpAPG?= =?us-ascii?Q?XVm3yotxJUcvwIw2eaPtlCh6ZAVLwrz63W0L8XlUu8Yd+sPApyZEA0HTsZSS?= =?us-ascii?Q?+VdOB+yR8bpFJI4UQuPduQ/jOnwD8El5jsr3crJ3DvMhqTJKewf1K1oMG257?= =?us-ascii?Q?Ju3OfLPFeESwrPSCAeUUmG5UHyKbl6JjKkugcRdPs9yU9/e3MLnK7DvhVwWZ?= =?us-ascii?Q?aHJ/qopNZwkL26pM9e1De5qjLlt5axEj/3s4Gqx4Une6LSqgiYM9lg3pVsp0?= =?us-ascii?Q?s+5JndafqyHQpGp694ZLnWuED2yOty4bATE8RDOXvV9qfkxUFbHMWI/RRUMr?= =?us-ascii?Q?sgCUQVkjw6g6znLB2tNSAzVq5uOKk7Ys94APWR2eoyZYmj9nK1B8z6aznKah?= =?us-ascii?Q?8wqIJt85R8VawFnaySAwwiszOerthqDnm+dFjvR50lNR0XVZHtniYyj4DxAt?= =?us-ascii?Q?b8qt0ge/bRQciTOXf0lIj7LDKS2gQvKmmdO/oykAM/2qLWngxx1Iux/pjVHG?= =?us-ascii?Q?S+gD06uJz6f0YNWFbtRqapOfa8xa/56UDu7TNnhFDOZnqNZfzUUqXifSFyEE?= =?us-ascii?Q?iWHtGm9PVu8mbp5YngmhApYc6ERztApOrumivD0L6DRQiQ/EQV6ttEJ/WZOx?= =?us-ascii?Q?kfM6WjTuyE3CVvZYgMJBK0ig0yjXbtDSsA19nWx9puuVBFvv5ihKed0dzd7w?= =?us-ascii?Q?dA=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: Px+TxJ5VtCpppFfgRm1NRhf7KeIhowKnszIyQUHaqGH5eWMVOWFpLKgde16NFl9TgEfmrNIdTzpWzyXzemNi2ZMMq2h37kpTuiBpCSEY/+IEjkmMZMsmGlfOdpcVOO2SU1Mceaz1Fw/JAVpSXPvAlh7aYr4zYlmsNa3YRloIVNv6TtGv6+U49AC+UVJexrJpD1XcFCXVrS6K6ZQ+rF1Ng/Ht0VjPHpy0dJ2LtW468y1c6wrxrWq75WaAue/EN0wJZiijD+f3Wy2zS2qWWyRN6D/0BH9SRcqyk2S3SPIu1htU0vR+L4NEMjaPNBTiql5h3w3SJWE01lBi5gEBjUwGgOLJzjjeK6qWcvajAUMbZdPTUMFJ9G7ftg05mHbopnEiGf5U0w8rscXozqsV6xkZSyNoQpHlSBTDr4+FU1Z6Sx8odDBvcnbN/QOT1d4cBgldr7qQXooPmOrnLGg8Wpzdb2J16+wlm8HEqd9BMK+BxDes8oYo8mqQ6rbX4R9pXXMJ+FvQlG5MyvtfgQTyiTSNmZeGQvTzUiiCsIIp7Px5jGYfpKbXVuptDEff7sTqcDqnk2geq3ZumJk7od4pGfIrDfIoWgd5W0en7HR2hkHxnnE= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: ce92cf06-d2fb-4c08-45ec-08ddf61e05dc X-MS-Exchange-CrossTenant-AuthSource: BL4PR10MB8229.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Sep 2025 19:11:36.4815 (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: Ru3oeXWdf3V/2+6rJXIjlWB4KtdqukeWL5AIQ48AmgYJYcYOSQYTl4J6G4r4tKLEYsvOA37R+ePFBZlzC5JZqMP0OCMjaz5bUyr5v/a+hDk= X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY5PR10MB6189 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-17_01,2025-09-17_02,2025-03-28_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 malwarescore=0 phishscore=0 suspectscore=0 spamscore=0 mlxscore=0 adultscore=0 bulkscore=0 mlxlogscore=999 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2508110000 definitions=main-2509170187 X-Proofpoint-GUID: lzsFeGxGclgUp2xNz4ABxSrxNaXJncy0 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwOTE2MDIwMiBTYWx0ZWRfX8btFyoBMBpbU 2/7vhS+OcDco3sTDxReVVhoCGzm8u+7DCqIikPkpgew4psF8Y1u/33Nn4MkCUbinwhnUnvAacGT 1KbZM80ss9I2SMoe1jm94RPAr+KmttrSjaFo2JpEPJ5WAw6dJXdW7VV34tPoOxdYMq2OFPUX+yd G8Kp8xT98o+8c0+QYUph83Pgi1V5kVv7vOGjhukO1kSToFegnYtfOm8ZCkPz3wssAmXL83fLiLu uNnD9SATRTQi3aZBMxsxIq/5KmLnh6ltgpTRS/zh03lB/qxruxkT+VknQKc8c2qQIeClmNX1eM5 rpGptfkWu2Dj05RrMAZup5BsVK/vQUuaRJkXRpWIL2oTPaXD2OtO636un/qqiuN9fvwOqFATTzh Y0rv2os5 X-Authority-Analysis: v=2.4 cv=cerSrmDM c=1 sm=1 tr=0 ts=68cb07ef 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=Ikd4Dj_1AAAA:8 a=ANQtcE5oiNAsODQ0kQwA:9 X-Proofpoint-ORIG-GUID: lzsFeGxGclgUp2xNz4ABxSrxNaXJncy0 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 via mmap_prepare. Make these internal to mm, as they should only be used by internal helpers. Signed-off-by: Lorenzo Stoakes Reviewed-by: Jason Gunthorpe --- mm/internal.h | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/mm/internal.h b/mm/internal.h index c6655f76cf69..085e34f84bae 100644 --- a/mm/internal.h +++ b/mm/internal.h @@ -1657,4 +1657,22 @@ void remap_pfn_range_prepare(struct vm_area_desc *de= sc, 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); =20 +static inline void io_remap_pfn_range_prepare(struct vm_area_desc *desc, + unsigned long orig_pfn, unsigned long size) +{ + const unsigned long pfn =3D io_remap_pfn_range_pfn(orig_pfn, size); + + return remap_pfn_range_prepare(desc, pfn); +} + +static inline int io_remap_pfn_range_complete(struct vm_area_struct *vma, + unsigned long addr, unsigned long orig_pfn, unsigned long size, + pgprot_t orig_prot) +{ + const unsigned long pfn =3D io_remap_pfn_range_pfn(orig_pfn, size); + const pgprot_t prot =3D io_remap_pfn_range_prot(orig_prot); + + return remap_pfn_range_complete(vma, addr, pfn, size, prot); +} + #endif /* __MM_INTERNAL_H */ --=20 2.51.0 From nobody Thu Oct 2 10:38:49 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 75C0630C10E; Wed, 17 Sep 2025 19:12:36 +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=1758136359; cv=fail; b=TaURrDf4NU+GWZ8Uvy9AApxTWELuF3hmkXY/pjEHcFylbLO4H8mghJOvrQIqHRMmioapQamOP3jQaP21vUU18+JeyPbP8Xrseukqh5ky8ouPpKjMYbYZ9d3NqYZVVAWVzOpaAqc3/iBImh2iicJzi11+hVJVQHMj1qmBDNA4DaA= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1758136359; c=relaxed/simple; bh=GSs3dL3odT+zCuEqwbLvyT8LUCpAmOkR7y8LTtgrFvE=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=M7pk9SRBRnjlFZ7yxTtqC1ZtvlAGrpkPUphcfc71jPTu8y0c7x397iQO0ujna59r8OxRts5FfxdYX+HzaUczxtGHSEb74y98/+LFQnxvKlpTw42RFRo4PRbjF4n+OjRcObLqivafzIkfvPxtL10iXux3wf01RyKxCETIehqsGXg= 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=YpASukFS; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=TgM4MI2U; 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="YpASukFS"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="TgM4MI2U" Received: from pps.filterd (m0246630.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 58HEIUBW008330; Wed, 17 Sep 2025 19:11:43 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=ifDybNd1FFTpiT8KBj4dj/LTPTfvZy3z+rGnRHu9H88=; b= YpASukFSh91uvTF/gIR4BwMBZyguCW6twTx7nEwAgrsrOAK9H2HwMthaCQd5Z0oa AGSGorooOWxJXhMYQunsbx1Jp8UfcPFXqGvM8HEDDwK8yJD6yeGKENEa/XCOJsqW BIz+hRgzwEodp2yze7Utz69fZ16POKPois1UxnCbJ3yuDhYoc+YRV/4iRXVVKxe8 /EphoVOywXH8ESy35VHDk6uHtn3N+ByU9VNmck9DkY67zNwBW4zKqAGvtqiGCjwW eCgHVXu16cWNDMP6KpECXmMjJMJh97GWuYypNASY9I44mRxAglLhoLXpNtD2Bi+m r/tj4W1K0bOGfkyBqW67Bw== Received: from phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta03.appoci.oracle.com [138.1.37.129]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 497fx8hxnn-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 17 Sep 2025 19:11:43 +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 58HHEIeZ033687; Wed, 17 Sep 2025 19:11:42 GMT Received: from mw6pr02cu001.outbound.protection.outlook.com (mail-westus2azon11012009.outbound.protection.outlook.com [52.101.48.9]) by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 494y2e5fqw-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 17 Sep 2025 19:11:42 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=UIWEsSNv4h7Bew0wn1paO8zzFbuXxIVrcpxu3ak4Gdm4Fo/gKQNyt37tQGbVt1yAp+HQf9bfFxXEJOSGSiPSR6DRSyyE1YLjiT8XbL8Tf+eUO5AcHq4daC5BO9ZB1gnVfsTzw20JMz6WlHvlykDarQo4SyWbFcQpxbdYSszeMf4VrnMj5FS83V+Ix3ObgjqY16LzFO2LK6GPZ/DLao8Qnw0HDMCaMhcx2MEjil43h0DHlNiixG8wuvGeWA1RtDsrHSr+DupCCVlWCoF4+bUHJmCj7yODdnEXm+hCCtvhgb/Zrh8qh6is4L9zGdKXiobp41CjCz54+rO9+ysiybUJEg== 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=ifDybNd1FFTpiT8KBj4dj/LTPTfvZy3z+rGnRHu9H88=; b=gLzCggpqycdtqEEiOIGH6aFrrf020G4iy6mFx0il845WHMKWTlYLTfEAbbM4Q9emGxC8L0C9umJGBA7V7KtAHkNdQWbJirNpgB1kEZSbNiiPOBbzX5fjJNM8FUj6siSSO51a2vlcpw12LhprGAKF8y5/wIKKWnPLt/kS3oWhip7D5PBXzOq9O8yLNy4r/g3Z5gKsdM7J6fsXeBH5W7E4JDE/A11WV6QUvzyUNBJPLLQnIZuF+xVnl/owFeHke9mGFDH+cCAoQ6RPr89V1NS7Kyf93U56pOpzyAwRhb40ZM222VWqz8CQjz29WsxVtvmgoTCHtB4KB2F08iGhilwR/g== 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=ifDybNd1FFTpiT8KBj4dj/LTPTfvZy3z+rGnRHu9H88=; b=TgM4MI2UAHQXdvNwBckWTp700UlB/+s+Pt8lgNqvrX2pui7gqND0Xa3m3kEIF3VpiUp35SXcevlBqcodzKdjGYoAURFQWRYqdDwMF8qQcVivLnKFthRhH6a1WDHvaVOP6l0OQyIqOuTcv4YL6tc5k5PDprcK4txkk6Q9YVl/3fo= Received: from BL4PR10MB8229.namprd10.prod.outlook.com (2603:10b6:208:4e6::14) by DM4PR10MB6063.namprd10.prod.outlook.com (2603:10b6:8:b9::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9115.21; Wed, 17 Sep 2025 19:11:38 +0000 Received: from BL4PR10MB8229.namprd10.prod.outlook.com ([fe80::552b:16d2:af:c582]) by BL4PR10MB8229.namprd10.prod.outlook.com ([fe80::552b:16d2:af:c582%3]) with mapi id 15.20.9115.022; Wed, 17 Sep 2025 19:11:38 +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 , iommu@lists.linux.dev, Kevin Tian , Will Deacon , Robin Murphy Subject: [PATCH v4 09/14] mm: add ability to take further action in vm_area_desc Date: Wed, 17 Sep 2025 20:11:11 +0100 Message-ID: <777c55010d2c94cc90913eb5aaeb703e912f99e0.1758135681.git.lorenzo.stoakes@oracle.com> X-Mailer: git-send-email 2.51.0 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: LO4P302CA0003.GBRP302.PROD.OUTLOOK.COM (2603:10a6:600:2c2::10) To BL4PR10MB8229.namprd10.prod.outlook.com (2603:10b6:208:4e6::14) 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: BL4PR10MB8229:EE_|DM4PR10MB6063:EE_ X-MS-Office365-Filtering-Correlation-Id: 36fff4e0-e746-4979-1b9b-08ddf61e06f8 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|1800799024|376014|7416014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?SjXCUvKbGQF4xxHUdh/PBqpGvm7f6e8lkXZ1b/wIbr4T94AYCC/wdWfuxUup?= =?us-ascii?Q?2W2AXO2K2WYFq2hAxN6mgm1XH+XTWyxHwREClVzWbJtmEHpgBGlIUDycB2Gp?= =?us-ascii?Q?l5ck4ytzuJdvURRE7yjnzmK0OkdSG9Kp6BqZ7ml8Yl07BnEOvimHJB7TD9wD?= =?us-ascii?Q?BDaKzm/IPtAPhMAV1sOupE62Q9mV3PBxrA2pEcfr5a9bxLalk1F2HCyMSR95?= =?us-ascii?Q?uEwe8Du7+dl0gNs3Sl5MWmFRq7xconN1nSkAVXTrrVlLaHE7M8f0sY5f/eaj?= =?us-ascii?Q?TJYfXKmTU7rQRZE65k14SKtZCBTCJvJWq3MvecPIomwhF+H1aSq2E7wkJbLo?= =?us-ascii?Q?OquNnMmb+AtQ6uMRQaWEnt1C8aP6ObczsAVBFUboPg2I5cgT+7fIDErVSFq+?= =?us-ascii?Q?SU2mZub5BOPY97bQgH4wC+ClvkuCtiyKT7kvqIlyE+SKcEnc/GA30EXE6N6w?= =?us-ascii?Q?O7PYeXwmh1H5b8KRWjVRSx2aXQ5b/lhnS0EQGd86WuQ1KVAuUl0Qys7rzKF6?= =?us-ascii?Q?k8SsSJxD8G7tzDN5Uomte8cATpGMXNSv05/ZRm6dMLVbJ25oiWAL/8tgpK3/?= =?us-ascii?Q?MGslQd/Rjw6oRYn3BcwTuye8diRDRU4jasDaYMsvjL4766WwKX3L+mswxrCf?= =?us-ascii?Q?Zxyas2aYEcIr24t0QYfQoXTQv6ESC4GpULSI+SZvCmSKUrag8OUBcUWc04rB?= =?us-ascii?Q?UL1+ohjBMGr6nJ9ye878fYa1S64+Nx1Co9v2fF4P1XQASMlzeKgXlhC3tEQW?= =?us-ascii?Q?WwH1OH64JLE6s8wU6T7cLgctyNB7roP7ZLlewGyPt7zRPkycAZ/tSzmxqVFW?= =?us-ascii?Q?Sk2ZrSoBlZac2LDSt7uRzFAjerlT4ZT5qZSolwoh9VGikpbco0iZKS5nNcqQ?= =?us-ascii?Q?o/ONH2ROfSRG66fSMsU3ucpDlfYDgDDLjaZ6bermapd6G1VFFPDcxWCukq0D?= =?us-ascii?Q?0YJWX8uHa/mVNuN/Dak/OVJ1gmXkGPeUAhVICsiTHVCDBCoSQjsmLhtlEufv?= =?us-ascii?Q?l0SkziqLwtsW0vMZnlpyMY2AagkjQtkATLhoHvE/oObb6Ce6QC8g/6KRlSXd?= =?us-ascii?Q?anIu3FurJcSuzyKrAvpjxM0Vifsj0fGZJuTKkPn6DcnypRzbeTBu8WtkZNiv?= =?us-ascii?Q?icj1q16s2qG4W+GjmFt5EyrIGCfL8OfIoj+Y3Hu5icGkd8ERbouS9m4Wn1G1?= =?us-ascii?Q?dPbUARgKRloNtedxC2vVlL26pvTOfBjoPxUKYY+kN3uoC67Lpeh4PvnvtyEd?= =?us-ascii?Q?vRmso5hUvTubJitKC2tj+ZauIbXmegcNS4fvgTbZy1Z0GMnXbSvknB07pLUn?= =?us-ascii?Q?uTD32jz0P5BZ+S0hU30D2Gf7+Nzg3aTVth6glX6nYRZuYyKa/3Nds9LZ1JlO?= =?us-ascii?Q?SXXfnNsofs0ALg0D9FChQJ3Ib0MSR0g6u2Y3RaPQhw7IakXqWm1tu1MZR8So?= =?us-ascii?Q?0ISVhHGYkmY=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BL4PR10MB8229.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(7416014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?5Qn8o0QfwythFGwZEAMnrdCVIS69YZZxL51qmTSdvL0DOBtI9mkSf5BI/eRY?= =?us-ascii?Q?iYBEWjhYlOAXegTDijJYh7Gi4si/aqtRVz3qKulMtLYFg366ZBizweNTvHi2?= =?us-ascii?Q?haHb5YZ6k+tBGssd1UuUSmAM9lAHOcr+UNAwevFDSde3PLrWOIj3i7o/JglM?= =?us-ascii?Q?oMthqfdGI+swXyfDKqgVAkW+mcLB+c/Hytq/6STuKWkT+QeqP48cXp47QslY?= =?us-ascii?Q?IBFckDwsXtEdzsbcF8EqO6n0/0Xc3VUAT9odc08Wa6mop8r3peLfcaZm3A40?= =?us-ascii?Q?Rgnk7a16S0wMD/ECER85iQ5hdou3DPy+uKpDYF5LiBQP6mmaA6ErLVKKWyla?= =?us-ascii?Q?c1rZYHO05FvPx+dyzco7/Int2EQTTRp4dLSfDCf8da0n+iI/Eq+KhkoXcmlv?= =?us-ascii?Q?e0zh+Af3PpS7ducxu6Ds9aqGx1S7dy1EAxFfahQobB6MjePRzs9o3+qB/goB?= =?us-ascii?Q?JnjbX+A8mNcu7UHs0EZqNThfojPAMh0QTVInn6pMG/NJGMbaCD+iLAFzEWzD?= =?us-ascii?Q?PMqagOI4eANSYP44s15jFChRq2/Ysqdpe+DOGnT0cC1Fmq1gEAtH2tuC8oVX?= =?us-ascii?Q?EK4ibG+a+WEZRCcNkLhYtQwEmBfQwgafE5djPd1VhK2KVcmAQvPcXFQNnSc1?= =?us-ascii?Q?Zw0XKwdDxaoQ1uQnhhBw0C1FQ2Mz2jAm3CBoUyldHAfrCEN6j5Ee79Gw79IP?= =?us-ascii?Q?k8N0VJeuitWvFIUhSmMY7xmxZ/e79QQWaeUIWE4r765y0xeAyzgwDc3G0j4l?= =?us-ascii?Q?TXRBbBdkaxvtZaWjSi8TSYVZve+dp2JqNX3oNEN4coNCmIvuUZ1l5wXatcDm?= =?us-ascii?Q?x9tjVpHn8iX3aW4kiU3flJJpvS7VjHyFIRXXaZukJUjWAn80MDfnUMlAPlt7?= =?us-ascii?Q?4vvdRI8Uycu8UCvyniqCWKvzXJYQZ7jyENMtK4e5AK1ldiKFHYvlP7RMnoFV?= =?us-ascii?Q?h/xybSuCnrfnxwAbO5tR9S/kaedYfc97/DGIm3TTIwp8MQFDF83aFAJakhao?= =?us-ascii?Q?7TwIw5dSofu7fifmUQRk0re48kquv5AA9D2fqF9cnlojNsuKuvx5VbGueUGz?= =?us-ascii?Q?bDV58h0wC8J4UHL16Mvz2idbIi2u5b+GYneKg9h0sdoqyy9+1p8vETuxTMeU?= =?us-ascii?Q?0Ar2rutPJxzoNEefQLfXfu3CoFGkHgkoUwlM45U93SrL4tJTAHgjv0NkkVYa?= =?us-ascii?Q?Rx40942wUwpGLvPAgMZHSH0fw7KzwGr17/6xzABk4kNoFfPVnBIc0cqAipxF?= =?us-ascii?Q?/miCxxkN4mzpQtvFZRRk4/+9J5ObJFMehiRveoOD9akvdTjbX9QJYQyqwu6H?= =?us-ascii?Q?ZHo5TchxV0od/RlUq+YzIpcEagzubi0ewDIRJBC2qF4T9qyz0PwuZ4i7uAsB?= =?us-ascii?Q?gaVoM913IG9lEXQGx+Yx81wFCM4JLrbtVCSQzHMDvRo6aUY/t3atonl6ADCe?= =?us-ascii?Q?Mv/L2v0SW6rxdH22upYl+rRofoGb1rpgP70TuXhCF70TagzUSnwXBItGKE1K?= =?us-ascii?Q?Hy4SHwwdlodEJ83obPXInc5mMCkpgQ6hDHBl/5Chwgdhs7aOqDXjkD9mLouw?= =?us-ascii?Q?PE91yeSJZ/dlP1zQf8qLpxZ9iCeW0K2d1hJiAyhLQsRDIhvxaEdxFGVLU010?= =?us-ascii?Q?Sw=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: F1b0EmdnpEFEpDlY87Qd/gSVUV4/JW7FhzqmewqMogKJwZX5IBbTXuHkEKxEWrBlZf7h5S9CxGsaDWpcGRJTBommhGCf+Bi7+7z7SmepBVH5Ga25Th69Ss6wxsZ+YmvzjVANYmNlktQz7Krf0nQStQeQ4Jwc4fhj/jMcKSvFMEdYcHefyAugxq90lXSsCOBgjLY/Erwk89kmbhwQjjZy+R0UKwWRug/AU4z/j19VM0GWMcfODcoDrze2tK6y23LfnKLC8YrCbcUKIFXfAGV74BsmmiRuh6gz9ndsKeR+zRwXMBAsbpqJzhtjSqu0G51UOixmya5WZNdFLV7zgLnChcOYikrC0EhHxSyxWsmGM4PF1MaI1+fB/T7ksDvwM4yEVnAERNT+Fb2iOPLcYzNgi0carrdI/6/XCLgtFHhXtGCLscgECJZw/sDXfcPGkH7UbxBliApIwT0Y7rVkYPq2vZevBGHeyc6vpaHNItlZpGjs0nUtdBPsz5Sustx7z5C+0YSOMsv/touieuuJH8EsSCc4OUVImSWf7dXWLOV+KP0YNIgE0pytf3vTAsZsvx34THSP9enjIK5cnJRdXcGMw9PzSTqMGycoZg0iX1VWFv8= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 36fff4e0-e746-4979-1b9b-08ddf61e06f8 X-MS-Exchange-CrossTenant-AuthSource: BL4PR10MB8229.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Sep 2025 19:11:38.4153 (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: rxM4jWGnpbEickRMCLi8o2EJNYkwKCVcOWjGmjAdwXXK8EBCE4yfbEOG3N6J0HzSdbzH5fJMr7KZS0Rv6yZd6EZyldHdt2drFJ2n5myXlFo= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR10MB6063 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-17_01,2025-09-17_02,2025-03-28_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 phishscore=0 bulkscore=0 adultscore=0 mlxlogscore=999 spamscore=0 mlxscore=0 suspectscore=0 malwarescore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2508110000 definitions=main-2509170187 X-Authority-Analysis: v=2.4 cv=JNU7s9Kb c=1 sm=1 tr=0 ts=68cb07ef 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=LTX6yydndTU1YmvmmuUA:9 X-Proofpoint-ORIG-GUID: wx-RUO4fJm9BRDSPOXYf5UqFYQelSaiM X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwOTE2MDIwMiBTYWx0ZWRfX7oLzGc69n+eM ln7T1RQ6bxA3YKlAVH5Sm53w6rJuLaJfdNoxPXX1ToQ49YSLO/lfXlYFXRgT5l3aLkUTddmZxam ZLnw8bxyed6M1b9rTdzq8ZHaUh0sqjrn/Vl+oe/7fZ7zgcRXs6CTWrnr3PXQlXPYcxGuKv2kwvD zU8lhxfU+b9Q4BVAJWKHKWQw9ZhNaX1+yZRAIY4yksNiSvIGyMluUDjYUBL/+N6Qq2Sqar2SDZ7 LlqA78rtZYvnUbIUHipZ1tD1jy7aGdPBuqoLF2Lhhzn9pkqZChx0WR4YxAPeZcgmIcdqrTslbX1 r7E5ajCjAGgbmdyq1j/aqMha47hzZIlC/LTo+pzLYiXF+7eMgWg0Nm7BCDhJ4sEtpi5GIxlhvFL QWUC8pzU X-Proofpoint-GUID: wx-RUO4fJm9BRDSPOXYf5UqFYQelSaiM Content-Type: text/plain; charset="utf-8" Some drivers/filesystems need to perform additional tasks after the VMA is set up. This is typically in the form of pre-population. The forms of pre-population most likely to be performed are a PFN remap or the insertion of normal folios and PFNs into a mixed map. We start by implementing the PFN remap functionality, ensuring that we perform the appropriate actions at the appropriate time - that is setting flags at the point of .mmap_prepare, and performing the actual remap at the point at which the VMA is fully established. This prevents the driver from doing anything too crazy with a VMA at any stage, and we retain complete control over how the mm functionality is applied. Unfortunately callers still do often require some kind of custom action, so we add an optional success/error _hook to allow the caller to do something after the action has succeeded or failed. This is done at the point when the VMA has already been established, so the harm that can be done is limited. The error hook can be used to filter errors if necessary. If any error arises on these final actions, we simply unmap the VMA altogether. Also update the stacked filesystem compatibility layer to utilise the action behaviour, and update the VMA tests accordingly. While we're here, rename __compat_vma_mmap_prepare() to __compat_vma_mmap() as we are now performing actions invoked by the mmap_prepare in addition to just the mmap_prepare hook. Signed-off-by: Lorenzo Stoakes --- include/linux/fs.h | 6 +- include/linux/mm.h | 74 ++++++++++++++++ include/linux/mm_types.h | 46 ++++++++++ mm/util.c | 143 ++++++++++++++++++++++++++++--- mm/vma.c | 70 ++++++++++----- tools/testing/vma/vma_internal.h | 90 +++++++++++++++++-- 6 files changed, 385 insertions(+), 44 deletions(-) diff --git a/include/linux/fs.h b/include/linux/fs.h index 594bd4d0521e..680910611ba1 100644 --- a/include/linux/fs.h +++ b/include/linux/fs.h @@ -2279,14 +2279,14 @@ static inline bool can_mmap_file(struct file *file) return true; } =20 -int __compat_vma_mmap_prepare(const struct file_operations *f_op, +int __compat_vma_mmap(const struct file_operations *f_op, struct file *file, struct vm_area_struct *vma); -int compat_vma_mmap_prepare(struct file *file, struct vm_area_struct *vma); +int compat_vma_mmap(struct file *file, struct vm_area_struct *vma); =20 static inline int vfs_mmap(struct file *file, struct vm_area_struct *vma) { if (file->f_op->mmap_prepare) - return compat_vma_mmap_prepare(file, vma); + return compat_vma_mmap(file, vma); =20 return file->f_op->mmap(file, vma); } diff --git a/include/linux/mm.h b/include/linux/mm.h index 9b65c33bb31a..7ab6bc9e6659 100644 --- a/include/linux/mm.h +++ b/include/linux/mm.h @@ -3596,6 +3596,80 @@ static inline unsigned long vma_desc_pages(const str= uct vm_area_desc *desc) return vma_desc_size(desc) >> PAGE_SHIFT; } =20 +/** + * mmap_action_remap - helper for mmap_prepare hook to specify that a pure= PFN + * remap is required. + * @desc: The VMA descriptor for the VMA requiring remap. + * @start: The virtual address to start the remap from, must be within the= VMA. + * @start_pfn: The first PFN in the range to remap. + * @size: The size of the range to remap, in bytes, at most spanning to th= e end + * of the VMA. + */ +static inline void mmap_action_remap(struct vm_area_desc *desc, + unsigned long start, + unsigned long start_pfn, + unsigned long size) +{ + struct mmap_action *action =3D &desc->action; + + /* [start, start + size) must be within the VMA. */ + WARN_ON_ONCE(start < desc->start || start >=3D desc->end); + WARN_ON_ONCE(start + size > desc->end); + + action->type =3D MMAP_REMAP_PFN; + action->remap.start =3D start; + action->remap.start_pfn =3D start_pfn; + action->remap.size =3D size; + action->remap.pgprot =3D desc->page_prot; +} + +/** + * mmap_action_remap_full - helper for mmap_prepare hook to specify that t= he + * entirety of a VMA should be PFN remapped. + * @desc: The VMA descriptor for the VMA requiring remap. + * @start_pfn: The first PFN in the range to remap. + */ +static inline void mmap_action_remap_full(struct vm_area_desc *desc, + unsigned long start_pfn) +{ + mmap_action_remap(desc, desc->start, start_pfn, vma_desc_size(desc)); +} + +/** + * mmap_action_ioremap - helper for mmap_prepare hook to specify that a pu= re PFN + * I/O remap is required. + * @desc: The VMA descriptor for the VMA requiring remap. + * @start: The virtual address to start the remap from, must be within the= VMA. + * @start_pfn: The first PFN in the range to remap. + * @size: The size of the range to remap, in bytes, at most spanning to th= e end + * of the VMA. + */ +static inline void mmap_action_ioremap(struct vm_area_desc *desc, + unsigned long start, + unsigned long start_pfn, + unsigned long size) +{ + mmap_action_remap(desc, start, start_pfn, size); + desc->action.type =3D MMAP_IO_REMAP_PFN; +} + +/** + * mmap_action_ioremap_full - helper for mmap_prepare hook to specify that= the + * entirety of a VMA should be PFN I/O remapped. + * @desc: The VMA descriptor for the VMA requiring remap. + * @start_pfn: The first PFN in the range to remap. + */ +static inline void mmap_action_ioremap_full(struct vm_area_desc *desc, + unsigned long start_pfn) +{ + mmap_action_ioremap(desc, desc->start, start_pfn, vma_desc_size(desc)); +} + +void mmap_action_prepare(struct mmap_action *action, + struct vm_area_desc *desc); +int mmap_action_complete(struct mmap_action *action, + struct vm_area_struct *vma); + /* 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/include/linux/mm_types.h b/include/linux/mm_types.h index 31b27086586d..abaea35c2bb3 100644 --- a/include/linux/mm_types.h +++ b/include/linux/mm_types.h @@ -775,6 +775,49 @@ struct pfnmap_track_ctx { }; #endif =20 +/* What action should be taken after an .mmap_prepare call is complete? */ +enum mmap_action_type { + MMAP_NOTHING, /* Mapping is complete, no further action. */ + MMAP_REMAP_PFN, /* Remap PFN range. */ + MMAP_IO_REMAP_PFN, /* I/O remap PFN range. */ +}; + +/* + * Describes an action an mmap_prepare hook can instruct to be taken to co= mplete + * the mapping of a VMA. Specified in vm_area_desc. + */ +struct mmap_action { + union { + /* Remap range. */ + struct { + unsigned long start; + unsigned long start_pfn; + unsigned long size; + pgprot_t pgprot; + } remap; + }; + enum mmap_action_type type; + + /* + * If specified, this hook is invoked after the selected action has been + * successfully completed. Note that the VMA write lock still held. + * + * The absolute minimum ought to be done here. + * + * Returns 0 on success, or an error code. + */ + int (*success_hook)(const struct vm_area_struct *vma); + + /* + * If specified, this hook is invoked when an error occurred when + * attempting the selection action. + * + * The hook can return an error code in order to filter the error, but + * it is not valid to clear the error here. + */ + int (*error_hook)(int err); +}; + /* * Describes a VMA that is about to be mmap()'ed. Drivers may choose to * manipulate mutable fields which will cause those fields to be updated i= n the @@ -798,6 +841,9 @@ struct vm_area_desc { /* Write-only fields. */ const struct vm_operations_struct *vm_ops; void *private_data; + + /* Take further action? */ + struct mmap_action action; }; =20 /* diff --git a/mm/util.c b/mm/util.c index 6c1d64ed0221..0c1c68285675 100644 --- a/mm/util.c +++ b/mm/util.c @@ -1134,7 +1134,7 @@ EXPORT_SYMBOL(flush_dcache_folio); #endif =20 /** - * __compat_vma_mmap_prepare() - See description for compat_vma_mmap_prepa= re() + * __compat_vma_mmap() - See description for compat_vma_mmap() * for details. This is the same operation, only with a specific file oper= ations * struct which may or may not be the same as vma->vm_file->f_op. * @f_op: The file operations whose .mmap_prepare() hook is specified. @@ -1142,7 +1142,7 @@ EXPORT_SYMBOL(flush_dcache_folio); * @vma: The VMA to apply the .mmap_prepare() hook to. * Returns: 0 on success or error. */ -int __compat_vma_mmap_prepare(const struct file_operations *f_op, +int __compat_vma_mmap(const struct file_operations *f_op, struct file *file, struct vm_area_struct *vma) { struct vm_area_desc desc =3D { @@ -1155,21 +1155,24 @@ int __compat_vma_mmap_prepare(const struct file_ope= rations *f_op, .vm_file =3D vma->vm_file, .vm_flags =3D vma->vm_flags, .page_prot =3D vma->vm_page_prot, + + .action.type =3D MMAP_NOTHING, /* Default */ }; int err; =20 err =3D f_op->mmap_prepare(&desc); if (err) return err; - set_vma_from_desc(vma, &desc); =20 - return 0; + mmap_action_prepare(&desc.action, &desc); + set_vma_from_desc(vma, &desc); + return mmap_action_complete(&desc.action, vma); } -EXPORT_SYMBOL(__compat_vma_mmap_prepare); +EXPORT_SYMBOL(__compat_vma_mmap); =20 /** - * compat_vma_mmap_prepare() - Apply the file's .mmap_prepare() hook to an - * existing VMA. + * compat_vma_mmap() - Apply the file's .mmap_prepare() hook to an + * existing VMA and execute any requested actions. * @file: The file which possesss an f_op->mmap_prepare() hook. * @vma: The VMA to apply the .mmap_prepare() hook to. * @@ -1184,7 +1187,7 @@ EXPORT_SYMBOL(__compat_vma_mmap_prepare); * .mmap_prepare() hook, as we are in a different context when we invoke t= he * .mmap() hook, already having a VMA to deal with. * - * compat_vma_mmap_prepare() is a compatibility function that takes VMA st= ate, + * compat_vma_mmap() is a compatibility function that takes VMA state, * establishes a struct vm_area_desc descriptor, passes to the underlying * .mmap_prepare() hook and applies any changes performed by it. * @@ -1193,11 +1196,11 @@ EXPORT_SYMBOL(__compat_vma_mmap_prepare); * * Returns: 0 on success or error. */ -int compat_vma_mmap_prepare(struct file *file, struct vm_area_struct *vma) +int compat_vma_mmap(struct file *file, struct vm_area_struct *vma) { - return __compat_vma_mmap_prepare(file->f_op, file, vma); + return __compat_vma_mmap(file->f_op, file, vma); } -EXPORT_SYMBOL(compat_vma_mmap_prepare); +EXPORT_SYMBOL(compat_vma_mmap); =20 static void set_ps_flags(struct page_snapshot *ps, const struct folio *fol= io, const struct page *page) @@ -1279,6 +1282,124 @@ void snapshot_page(struct page_snapshot *ps, const = struct page *page) } } =20 +static int mmap_action_finish(struct mmap_action *action, + const struct vm_area_struct *vma, int err) +{ + /* + * 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. + */ + if (err) { + const size_t len =3D vma_pages(vma) << PAGE_SHIFT; + + do_munmap(current->mm, vma->vm_start, len, NULL); + + if (action->error_hook) { + /* We may want to filter the error. */ + err =3D action->error_hook(err); + + /* The caller should not clear the error. */ + VM_WARN_ON_ONCE(!err); + } + return err; + } + + if (action->success_hook) + return action->success_hook(vma); + + return 0; +} + +#ifdef CONFIG_MMU +/** + * mmap_action_prepare - Perform preparatory setup for an VMA descriptor + * action which need to be performed. + * @desc: The VMA descriptor to prepare for @action. + * @action: The action to perform. + */ +void mmap_action_prepare(struct mmap_action *action, + struct vm_area_desc *desc) +{ + switch (action->type) { + case MMAP_NOTHING: + break; + case MMAP_REMAP_PFN: + remap_pfn_range_prepare(desc, action->remap.start_pfn); + break; + case MMAP_IO_REMAP_PFN: + io_remap_pfn_range_prepare(desc, action->remap.start_pfn, + action->remap.size); + break; + } +} +EXPORT_SYMBOL(mmap_action_prepare); + +/** + * mmap_action_complete - Execute VMA descriptor action. + * @action: The action to perform. + * @vma: The VMA to perform the action upon. + * + * Similar to mmap_action_prepare(). + * + * Return: 0 on success, or error, at which point the VMA will be unmapped. + */ +int mmap_action_complete(struct mmap_action *action, + struct vm_area_struct *vma) +{ + int err =3D 0; + + switch (action->type) { + case MMAP_NOTHING: + break; + case MMAP_REMAP_PFN: + err =3D remap_pfn_range_complete(vma, action->remap.start, + action->remap.start_pfn, action->remap.size, + action->remap.pgprot); + break; + case MMAP_IO_REMAP_PFN: + err =3D io_remap_pfn_range_complete(vma, action->remap.start, + action->remap.start_pfn, action->remap.size, + action->remap.pgprot); + break; + } + + return mmap_action_finish(action, vma, err); +} +EXPORT_SYMBOL(mmap_action_complete); +#else +void mmap_action_prepare(struct mmap_action *action, + struct vm_area_desc *desc) +{ + switch (action->type) { + case MMAP_NOTHING: + break; + case MMAP_REMAP_PFN: + case MMAP_IO_REMAP_PFN: + WARN_ON_ONCE(1); /* nommu cannot handle these. */ + break; + } +} +EXPORT_SYMBOL(mmap_action_prepare); + +int mmap_action_complete(struct mmap_action *action, + struct vm_area_struct *vma) +{ + switch (action->type) { + case MMAP_NOTHING: + break; + case MMAP_REMAP_PFN: + case MMAP_IO_REMAP_PFN: + WARN_ON_ONCE(1); /* nommu cannot handle this. */ + + break; + } + + return mmap_action_finish(action, vma, /* err =3D */0); +} +EXPORT_SYMBOL(mmap_action_complete); +#endif + #ifdef CONFIG_MMU /** * folio_pte_batch - detect a PTE batch for a large folio diff --git a/mm/vma.c b/mm/vma.c index bdb070a62a2e..1be297f7bb00 100644 --- a/mm/vma.c +++ b/mm/vma.c @@ -2328,17 +2328,33 @@ static void update_ksm_flags(struct mmap_state *map) map->vm_flags =3D ksm_vma_flags(map->mm, map->file, map->vm_flags); } =20 +static void set_desc_from_map(struct vm_area_desc *desc, + const struct mmap_state *map) +{ + desc->start =3D map->addr; + desc->end =3D map->end; + + desc->pgoff =3D map->pgoff; + desc->vm_file =3D map->file; + desc->vm_flags =3D map->vm_flags; + desc->page_prot =3D map->page_prot; +} + /* * __mmap_setup() - 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. * + * As a result it sets up the @map and @desc objects. + * * @map: Mapping state. + * @desc: VMA descriptor * @uf: Userfaultfd context list. * * Returns: 0 on success, error code otherwise. */ -static int __mmap_setup(struct mmap_state *map, struct list_head *uf) +static int __mmap_setup(struct mmap_state *map, struct vm_area_desc *desc, + struct list_head *uf) { int error; struct vma_iterator *vmi =3D map->vmi; @@ -2395,6 +2411,7 @@ static int __mmap_setup(struct mmap_state *map, struc= t list_head *uf) */ vms_clean_up_area(vms, &map->mas_detach); =20 + set_desc_from_map(desc, map); return 0; } =20 @@ -2567,34 +2584,26 @@ static void __mmap_complete(struct mmap_state *map,= struct vm_area_struct *vma) * * Returns 0 on success, or an error code otherwise. */ -static int call_mmap_prepare(struct mmap_state *map) +static int call_mmap_prepare(struct mmap_state *map, + struct vm_area_desc *desc) { int err; - struct vm_area_desc desc =3D { - .mm =3D map->mm, - .file =3D map->file, - .start =3D map->addr, - .end =3D map->end, - - .pgoff =3D map->pgoff, - .vm_file =3D map->file, - .vm_flags =3D map->vm_flags, - .page_prot =3D map->page_prot, - }; =20 /* Invoke the hook. */ - err =3D vfs_mmap_prepare(map->file, &desc); + err =3D vfs_mmap_prepare(map->file, desc); if (err) return err; =20 + mmap_action_prepare(&desc->action, desc); + /* Update fields permitted to be changed. */ - map->pgoff =3D desc.pgoff; - map->file =3D desc.vm_file; - map->vm_flags =3D desc.vm_flags; - map->page_prot =3D desc.page_prot; + map->pgoff =3D desc->pgoff; + map->file =3D desc->vm_file; + map->vm_flags =3D desc->vm_flags; + map->page_prot =3D desc->page_prot; /* User-defined fields. */ - map->vm_ops =3D desc.vm_ops; - map->vm_private_data =3D desc.private_data; + map->vm_ops =3D desc->vm_ops; + map->vm_private_data =3D desc->private_data; =20 return 0; } @@ -2642,16 +2651,24 @@ static unsigned long __mmap_region(struct file *fil= e, unsigned long addr, { 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; VMA_ITERATOR(vmi, mm, addr); MMAP_STATE(map, mm, &vmi, addr, len, pgoff, vm_flags, file); + struct vm_area_desc desc =3D { + .mm =3D mm, + .file =3D file, + .action =3D { + .type =3D MMAP_NOTHING, /* Default to no further action. */ + }, + }; + bool allocated_new =3D false; + int error; =20 map.check_ksm_early =3D can_set_ksm_flags_early(&map); =20 - error =3D __mmap_setup(&map, uf); + error =3D __mmap_setup(&map, &desc, uf); if (!error && have_mmap_prepare) - error =3D call_mmap_prepare(&map); + error =3D call_mmap_prepare(&map, &desc); if (error) goto abort_munmap; =20 @@ -2670,6 +2687,7 @@ static unsigned long __mmap_region(struct file *file,= unsigned long addr, error =3D __mmap_new_vma(&map, &vma); if (error) goto unacct_error; + allocated_new =3D true; } =20 if (have_mmap_prepare) @@ -2677,6 +2695,12 @@ static unsigned long __mmap_region(struct file *file= , unsigned long addr, =20 __mmap_complete(&map, vma); =20 + if (have_mmap_prepare && allocated_new) { + error =3D mmap_action_complete(&desc.action, vma); + if (error) + return error; + } + return addr; =20 /* Accounting was done by __mmap_setup(). */ diff --git a/tools/testing/vma/vma_internal.h b/tools/testing/vma/vma_inter= nal.h index 07167446dcf4..22ed38e8714e 100644 --- a/tools/testing/vma/vma_internal.h +++ b/tools/testing/vma/vma_internal.h @@ -274,6 +274,49 @@ struct mm_struct { =20 struct vm_area_struct; =20 + +/* What action should be taken after an .mmap_prepare call is complete? */ +enum mmap_action_type { + MMAP_NOTHING, /* Mapping is complete, no further action. */ + MMAP_REMAP_PFN, /* Remap PFN range. */ +}; + +/* + * Describes an action an mmap_prepare hook can instruct to be taken to co= mplete + * the mapping of a VMA. Specified in vm_area_desc. + */ +struct mmap_action { + union { + /* Remap range. */ + struct { + unsigned long start; + unsigned long start_pfn; + unsigned long size; + pgprot_t pgprot; + } remap; + }; + enum mmap_action_type type; + + /* + * If specified, this hook is invoked after the selected action has been + * successfully completed. Note that the VMA write lock still held. + * + * The absolute minimum ought to be done here. + * + * Returns 0 on success, or an error code. + */ + int (*success_hook)(const struct vm_area_struct *vma); + + /* + * If specified, this hook is invoked when an error occurred when + * attempting the selection action. + * + * The hook can return an error code in order to filter the error, but + * it is not valid to clear the error here. + */ + int (*error_hook)(int err); +}; + /* * Describes a VMA that is about to be mmap()'ed. Drivers may choose to * manipulate mutable fields which will cause those fields to be updated i= n the @@ -297,6 +340,9 @@ struct vm_area_desc { /* Write-only fields. */ const struct vm_operations_struct *vm_ops; void *private_data; + + /* Take further action? */ + struct mmap_action action; }; =20 struct file_operations { @@ -1466,12 +1512,23 @@ static inline void free_anon_vma_name(struct vm_are= a_struct *vma) static inline void set_vma_from_desc(struct vm_area_struct *vma, struct vm_area_desc *desc); =20 -static inline int __compat_vma_mmap_prepare(const struct file_operations *= f_op, +static inline void mmap_action_prepare(struct mmap_action *action, + struct vm_area_desc *desc) +{ +} + +static inline int mmap_action_complete(struct mmap_action *action, + struct vm_area_struct *vma) +{ + return 0; +} + +static inline int __compat_vma_mmap(const struct file_operations *f_op, struct file *file, struct vm_area_struct *vma) { 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 @@ -1479,21 +1536,24 @@ static inline int __compat_vma_mmap_prepare(const s= truct file_operations *f_op, .vm_file =3D vma->vm_file, .vm_flags =3D vma->vm_flags, .page_prot =3D vma->vm_page_prot, + + .action.type =3D MMAP_NOTHING, /* Default */ }; int err; =20 err =3D f_op->mmap_prepare(&desc); if (err) return err; - set_vma_from_desc(vma, &desc); =20 - return 0; + mmap_action_prepare(&desc.action, &desc); + set_vma_from_desc(vma, &desc); + return mmap_action_complete(&desc.action, vma); } =20 -static inline int compat_vma_mmap_prepare(struct file *file, +static inline int compat_vma_mmap(struct file *file, struct vm_area_struct *vma) { - return __compat_vma_mmap_prepare(file->f_op, file, vma); + return __compat_vma_mmap(file->f_op, file, vma); } =20 /* Did the driver provide valid mmap hook configuration? */ @@ -1514,7 +1574,7 @@ static inline bool can_mmap_file(struct file *file) static inline int vfs_mmap(struct file *file, struct vm_area_struct *vma) { if (file->f_op->mmap_prepare) - return compat_vma_mmap_prepare(file, vma); + return compat_vma_mmap(file, vma); =20 return file->f_op->mmap(file, vma); } @@ -1548,4 +1608,20 @@ static inline vm_flags_t ksm_vma_flags(const struct = mm_struct *, const struct fi return vm_flags; } =20 +static inline void remap_pfn_range_prepare(struct vm_area_desc *desc, unsi= gned long pfn) +{ +} + +static inline int remap_pfn_range_complete(struct vm_area_struct *vma, uns= igned long addr, + unsigned long pfn, unsigned long size, pgprot_t pgprot) +{ + return 0; +} + +static inline int do_munmap(struct mm_struct *, unsigned long, size_t, + struct list_head *uf) +{ + return 0; +} + #endif /* __MM_VMA_INTERNAL_H */ --=20 2.51.0 From nobody Thu Oct 2 10:38:49 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 8282633AEB1; Wed, 17 Sep 2025 19:12:27 +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=1758136349; cv=fail; b=n4Ti8FzcOmZMUn4WJDRpwaYtAk4S36KQqI8jhAFSeIKaa3/51eKnzvFR/S2qYHmuexhVM3+dfIbzoeJbi9sorV8eK95cvqqD4byYBxVR0l4nH5kJLobJiFfAU1G3+mvEa4QL+wtBNJHcRMJT1REYFWcmqhws9Bjvw/P/U6Qarjk= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1758136349; c=relaxed/simple; bh=zyWx9CHiAOIEBPfncjCl5KM8TnytCZFh48lzn9ulZyE=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=bG8K+rpczBdigRNs69igNHKcFpx+748HmAyhxjnwO5oVqn+yhPHtdJP8dCpklqyxJ9f10cPTfQjxwEJezdBNdmh2Gnzyw0D1YE6MVbnHVY0Nr96tZQ2idTQ1aFN1GioKt11/ep5ORkf3T/F2lDwLLiUK77LgC/IfuKn0Z4AY7C4= 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=Emrtb9+y; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=qKKNdh+Z; 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="Emrtb9+y"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="qKKNdh+Z" 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 58HEIStO001868; Wed, 17 Sep 2025 19:11:47 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=mLt6Iw8NNsjDpMDEGiSX6emtwWW6f8/pFdcoNzwwJeE=; b= Emrtb9+yJmO2boZ4hI6+jcd+smaPCM2BhDlOKDZccuX7nwrtgZrdk5DEbPS6V65k qlujLNp432yD3Y0Tfie8RC4hWA5wJXk3lme78aQpICgrEvSsyqav33nM/Pe48j1c pewK1fia04DgSPlJBOv0YJyXr2BvnP7eU4ePRt9oyvHaZOikDTdFFIpLbjqg2To/ oiBVFIOZpAShA/IJgUHFOZjw7W/X2GCba9UyBdA7qD+ENoBZXQz4mEjhmQPaUZdh sKvrOORby/uFz3Jl1IhFaRqwNSOA5Tb0Hz6fWeIZLDFa54LFS455cCjSrD5Nf25B DVD3lH4y0g9h4kDuXcEHBQ== Received: from phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta03.appoci.oracle.com [138.1.37.129]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 497fxd207n-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 17 Sep 2025 19:11:46 +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 58HHEIed033687; Wed, 17 Sep 2025 19:11:45 GMT Received: from mw6pr02cu001.outbound.protection.outlook.com (mail-westus2azon11012009.outbound.protection.outlook.com [52.101.48.9]) by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 494y2e5fqw-2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 17 Sep 2025 19:11:45 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=nXEVswrWqbd3Qehi5bRZBYtirKKRPvwtbe6UjQO1isDx1wYLgYhu7a1AF+mlZUW76WwZGS5q3QswedW2ctKislZzQewa3ZJjHeoQQMAA/K4+Fr/tzGXf5neRQszc6jKm1h8i6TdFgMxtCy+BGtg6jQWG3Kyu5U3mN6uGOgbAV7tSgSzwXv2eS5lUuf8jpHH+k5xZ6Sdi2TKQQgqaDp2sPqHt/4EJkW6MwW4QusPj0zWuChVIfb9g1v7mZ+DX4iropUiUfapuW0VmXryLONwDL16VqL5ID11QjVbdfbN0p7x7EgOW/xGa2l03msmNogKjh3JymTFOoluXk/8kMD5GaQ== 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=mLt6Iw8NNsjDpMDEGiSX6emtwWW6f8/pFdcoNzwwJeE=; b=U4f+rj9R/sYJ7mb9OyKlR0ns+Yh1NqX/Ggd+AgTUCKX8zYfQY66WJeX2LjjqG4aMphlLzl0CnCWBUAq8MVoeDI2BhR1pAsT7AQbNJzwOTTiPzQnsPCrYn7JJC/f1hFsI6Vqmex1Vd+ewcVfBBaQv4FujXyK8w0qJMchPn+89HRlWib1wtpPrf46dc/HouNIWYb717D/dI0RUBjQVW2HBL8uQAMxSmGOOGNv6IBYT3SEdHjN7AUrVFgxNgEJt7HqqLUpO3MJnZ65DpzLQdqJiTwbKDM7TFJOr6cGRafh6GsG01pfOxxvZgpeO5zUOkccojEHYDPKXIHh3zt4O4wG/qA== 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=mLt6Iw8NNsjDpMDEGiSX6emtwWW6f8/pFdcoNzwwJeE=; b=qKKNdh+ZGlSDIwchiVU80xL8fekOtYUtGsecEtD+2dKIUcu0F4SZor20/s27uusgELhV5DWN7SPxKkM5F5zB6BgY01aYT79CVUY7hiDv1+Omgrv8txS0/7xDYogsQ4sQJnsCn4pry2O5JIuus7TfbQr1oyVOySHIuaax6kOVH1o= Received: from BL4PR10MB8229.namprd10.prod.outlook.com (2603:10b6:208:4e6::14) by DM4PR10MB6063.namprd10.prod.outlook.com (2603:10b6:8:b9::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9115.21; Wed, 17 Sep 2025 19:11:40 +0000 Received: from BL4PR10MB8229.namprd10.prod.outlook.com ([fe80::552b:16d2:af:c582]) by BL4PR10MB8229.namprd10.prod.outlook.com ([fe80::552b:16d2:af:c582%3]) with mapi id 15.20.9115.022; Wed, 17 Sep 2025 19: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 , iommu@lists.linux.dev, Kevin Tian , Will Deacon , Robin Murphy Subject: [PATCH v4 10/14] doc: update porting, vfs documentation for mmap_prepare actions Date: Wed, 17 Sep 2025 20:11:12 +0100 Message-ID: <269f7675d0924fff58c427bc8f4e37487e985539.1758135681.git.lorenzo.stoakes@oracle.com> X-Mailer: git-send-email 2.51.0 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: LO2P265CA0453.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:e::33) To BL4PR10MB8229.namprd10.prod.outlook.com (2603:10b6:208:4e6::14) 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: BL4PR10MB8229:EE_|DM4PR10MB6063:EE_ X-MS-Office365-Filtering-Correlation-Id: 961c355e-fd3b-4be3-ad0a-08ddf61e081f X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|1800799024|376014|7416014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?9I0Mqifa/72QVUok0F3aDTnIo3OIxYxRpvhJQmiXGUdjsrH9Oa9Kgr8q8B8+?= =?us-ascii?Q?Bzk7Wm8UsUqEtL/Bb7laSkywuFdnvZ2laf/d85NvAncNvuB+SY5wdrBkzCHE?= =?us-ascii?Q?me6o2q0CFitrJHgjBTuv5VI6i8iTCReNMWYksGhTo6s5XOybiR0lv3aqDahM?= =?us-ascii?Q?0nojYyeERx5wr8fYdhOusndkzlIrQUVAHsBKmG4RV6KxXLGD0if/9DiTyk6D?= =?us-ascii?Q?7YGcz7ZzKwEdUac/KHcusLL7kmVNilFK2o3wJEtmc3T6/3IT0rAaf/Talsm2?= =?us-ascii?Q?IeroV1mH4eZHsXup8wE/Vx8GgffLNzF9rKx6l1WywRQhQgZjjQrz9FOTqZt6?= =?us-ascii?Q?oMq5QlGYVW8E2YC5DcWsUW24rx9AhnUE2INMfdEFxv9md0B1PzibdDdRPoGT?= =?us-ascii?Q?Lc7LZDROOTP6wwUHbO3sXjMFbBuBBarf5Q2vMfjg1/77IKCZwjwrNyeiMmFj?= =?us-ascii?Q?7n3yxiYfOtq820Oc2ilB3anBSy1P+VtgOY0jssBUhcvMh2ELMR7+vwksOfQU?= =?us-ascii?Q?tLM50sSrmgda7GSIAxyHPZYsuksXhBoRR6JS05fRTRxHY9iFqrFCLkKxe4Fo?= =?us-ascii?Q?ZWPNsVGVoRAt8umdbg1o8QQSTZfLbiv29nM5Gml3YnV6k9FNTgV/KrM+GOnG?= =?us-ascii?Q?moTnX3yTyZFn/HU67TX4K2ns0j2M8Z127950vnpxXQvlCtPpaHDXPyIvkqPJ?= =?us-ascii?Q?ppp/6oGsu3qRqAM7gtx8LdsJuloQiY5PYKvZBH74yxwBvdr27R6je3LtsbNi?= =?us-ascii?Q?9kvc5AVSZiqgnUqf9UQqwaJSTocONCh+D8BRh9ncE2q7iE/thCxmfjp+tPRT?= =?us-ascii?Q?+s5vXCqVEpcrLp8C8ctyzxiUatUju9joMuOh2EsFerCf7cgLH+osZfZWJfii?= =?us-ascii?Q?QF25rIKL4ZhpLEvSYUC1fu6wAvzXEGbV/zxLWcf2CDvuK+8kCfsXJhvGmdVb?= =?us-ascii?Q?mDiV4wR8nvxmMpHiBviWnZEjHnq0ZsnnefjaV/efPCPFHUZSTDv9+YMFGjmv?= =?us-ascii?Q?+RBqPjIYXosuv6X79O9YLowhWbifZeZccvmbAj9t+qnWj7vJLoEyojfkp33y?= =?us-ascii?Q?fcgI3i3GnOvPxe8rldCui7rEa8fAB7+qzyxwgb9ZlxVft7WKl8SKLXMmseEl?= =?us-ascii?Q?/qIvAikYhXJ5l5FzoBTlsg3YQhSuLMrlih1IBRjuEET/fi5rw3Qlg519coRh?= =?us-ascii?Q?GDErFr4T0AAVnJe36zx0tpU5rLekgxxDV+D6GighM7n4lyae+PeZOo9tgepS?= =?us-ascii?Q?Tx91bqabB4pZxB+nU1FoYcHTYNM9WL6OLLZW/Uy9aEEgrYvqwHf8lGnJl0tl?= =?us-ascii?Q?BKmOvppzkKi/Z2prv2CS+gbdLWqsMIppQE6Kvv+TP1C1P2njOXiQSn9JcvY+?= =?us-ascii?Q?aglG3YVdOli/+etZ2R+u0dAsbfzhEy+HxV9m71GKm/McMGlqCqt6s+J3QGBJ?= =?us-ascii?Q?aKMtknRkCMs=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BL4PR10MB8229.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(7416014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?O+2AYuIACUTsPC/uvnULkS5FV1CYCKlRgQUPUH80urylxVECIqPakeedyLFs?= =?us-ascii?Q?b/0UGIwNLng7/NcCzWnT/V4szZNxYXoE2wZJXwTbCTmvm0JgFWOmAL43HRE+?= =?us-ascii?Q?Br33CnJhyhmY+rUtg3h0MfrQHTocAjbB5s7v8L/j8JQNDVWQSQhUML2y9HWM?= =?us-ascii?Q?ypLelpLW6uSQaS52+OWL2KFnr68IlxgvT7gE+aU3ZipM86zuvRsPRAECp8ay?= =?us-ascii?Q?fIdJUos/TroTCHI5JlJNdB6rEoEeTkJCTWHe9wEIS34+3zlovvf28k6kmbGJ?= =?us-ascii?Q?S4RLIzBMgIMI4+hAb1B33KjXXjbcE51lpwpK+JPSea9Q3y610awtT6siEVrx?= =?us-ascii?Q?6AIpNw1AvtyfFIMp+Xlayg0nWdDjJNMd2hz2WCFJNB5i+1fwcY1muGKTEqM5?= =?us-ascii?Q?p9YZZJ5ajCLTd81CspWxblLVjpGgteD5OxCa1NSGoilpjeZonCOvxAlngctE?= =?us-ascii?Q?eyuEUuJNGRPcYtf7WpJswpTTuzFkInKozZmkQIbzkENoQsKKk+u7jpNxfc+3?= =?us-ascii?Q?cSG+jVglqdQLBBcGL1gVL7Nocx16UFhSjhZmb6MyeTrPKxOsWE9n+Vk+kr66?= =?us-ascii?Q?uHtVioBafvTMU5Q3jods913+yxuiD67Nyo/i3EzlQwtpq3ZNMDh45dkjQJI1?= =?us-ascii?Q?3gs4/t2GcxHgdCBg9RGgTF5GHh0c3mhilm9jdBKDZV4T0LsKDDbZ5/iavZO/?= =?us-ascii?Q?DD4W8JzElY8QOcc48qUCN8DYo458MSnN9qi8WNHjJXcJxVPXTLdr5S7VNRcX?= =?us-ascii?Q?9y5gjplcOFT6cJg69FSlcUMh56VhtELusLnemfaQkAm6NEe/lkRaOZpQUkoE?= =?us-ascii?Q?De94ch2/H5KIHpHhqFckTgAPCYwNnZXtJUV/5SzsN0u2fevEiYdoz3KcZe7J?= =?us-ascii?Q?9KKr1RLOhcBxqh/FQCDUEdDYZb5AF7EwtyZva6uQPuv5K+l13U529SIRkYkr?= =?us-ascii?Q?Rr9vlUEH6tJ7R6V1qTgRtddmVGF+ww0DGz83ItLwkvbDqLPQG9keUZmiIHFk?= =?us-ascii?Q?aGxadEvj1ktHCUyK+Afm3iZz1cEKLd35NsniLCfFLWYjlJGH/4+Fk+rKJHM+?= =?us-ascii?Q?bfZiBoIf8OQqD2wBjJLly6URBT5aROGjzSqKFOSiOmWQ6lUSnZgD4boEmoVU?= =?us-ascii?Q?+3+wEKwk6b0zl5AIfwrQ/aCoOoXrcDj/mOlbfqXWFFhBFxWU+HqXrcZrhG52?= =?us-ascii?Q?UxOz1qe9j5qz2qcV8WOWPzyvH72mYmRpvcpYnR9HmSZKrvm98AjS24Gd17UQ?= =?us-ascii?Q?tmdp6u0UiShOKp2b7pezIJ4/yQIUgCJ5ojGem4q2KLg6P7RJ/8D9lGrLRAwk?= =?us-ascii?Q?l7r3mVcCRJKdGepPvRlkh+WcbAmwiHmt/5FGqO4pZOdXNw6XLPLnxBeL+HBq?= =?us-ascii?Q?7jrNChYg4i8RfTiWwMfCW6R0Oau3xyixVGBVoD7tH+ZgKT1CvJw6BDuYPPKM?= =?us-ascii?Q?krxqziBt0jRuHbBh5dZFJ4nC+55ioINsUWsPpU/up7TFQSI/AEnWPgl8eHTK?= =?us-ascii?Q?mog/EASnQbm8PpX6w13GlgWrj4CbbUtoHo8ifsUP+XyvzSRXSupaKEKndBPs?= =?us-ascii?Q?HJX8sdAAnubbfhfucQaUNz/+oyyt8fVZfwKUViW8DiUohVXxf4WD80mE8MXS?= =?us-ascii?Q?Kg=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: 0ENtYV4CKfeavDGNOSGwmsmaEPhUwdhcuN4aCe13XZkOnAqMRGuq6lUwf5Ibe97h7jjnPGyWAulBkwZwdBZZscNsW0hcCLU3ZVZDr0JLOp2BEv57CsA1zAcJLo6hD2rQCJfIgOISTQYVUGOm9cSf8dTsUZnjpwqcrfsqhHnsCb6Kch3StsF6aTGH+0RwW1+XrQG2wKREDDimGizk5s5KUnBhTttcSqYkYSY/dEhm5ROhSNtaxFRGCVkrc5VpJxzJJqeypTMbE3kZ5X2L9VQCP6RiEv40WbzWrFZyFROisBJGFQAmcsgJfNs0lYZHqAFA0tPrL8oBK0twXLguY7Qrk1V98mW4ENFfVYB017MNNSvl+vXpoKD4DWKggQ5BKCQ4l+bp3skJ2zsqYEAGpzEMOsSKbUT/p5ViiTd6Eh6L4R0UVbgadZ1uRovvgMn8QJ8v2lgSmtN4SzNpf0JUKOdZSHe8BNKIcKaGcrzU2nC3asjiN81ssCceFMv8ATJ/wfZNNxD+Nyv+YTM+eHCt4nRqkddQeAPkCJ4c8LvqSIc3fC7uvJSXv7aGNS1IEm7HIJt3fRj/XORGnMr6FbIp5gw37ldvyegOlT1GMudAbIYVNGo= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 961c355e-fd3b-4be3-ad0a-08ddf61e081f X-MS-Exchange-CrossTenant-AuthSource: BL4PR10MB8229.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Sep 2025 19:11:40.2746 (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: Jj7s+bpP0ciOzealvO1eGfzUPwQqNIUiWZyBBnDuOqyNVHnQvIumRKGEhWN6PsNy1RmhLTOiJwZI2SSLQ2GaN5JmiTdypEaI0yEeQqXjIF4= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR10MB6063 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-17_01,2025-09-17_02,2025-03-28_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 phishscore=0 bulkscore=0 adultscore=0 mlxlogscore=999 spamscore=0 mlxscore=0 suspectscore=0 malwarescore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2508110000 definitions=main-2509170187 X-Proofpoint-GUID: KTTnpgrI421CcI7gatKIDumiEB0nNiyz X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwOTE2MDIwMiBTYWx0ZWRfXzbe1WAuA6RMo jTXhzaipWhRQGuFRKVbgwcjCm2/uG4Avlzbf+N3sGtGTNiIumWMcr1v2RUvHQmQ7MceNm8O5dCV 0bACRw+3jHAFd1lqBxz0hBWIMSiu4kO1w0jX/amuAh3HDZG6/EPJ88PSUNHsQe980sfwvj85epA AGi4zDJBfSyPLly9+q/rr7qWACG1Q68v4s0C0BDAR5IKavvb/p7nZvzvGtGF8BACyAb4OVEaISj MgItyY+JrgJNTjSlhKE5NO763MjfsoedTd7WeVGw616blERkDmO+w8CbudK09MBWKL3m/EvYy1q pDNk+vCN+wYxU091UuNYiIXCVCFSrdNuvvzBlA5XO0V5ezUBqm2wjIHI0wEPEMTtXySDuyg+3NJ MlBsu7ci X-Authority-Analysis: v=2.4 cv=cerSrmDM c=1 sm=1 tr=0 ts=68cb07f3 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=CxsoVSIMbwK9moDqu60A:9 X-Proofpoint-ORIG-GUID: KTTnpgrI421CcI7gatKIDumiEB0nNiyz Content-Type: text/plain; charset="utf-8" Now we have introduced the ability to specify that actions should be taken after a VMA is established via the vm_area_desc->action field as specified in mmap_prepare, update both the VFS documentation and the porting guide to describe this. Signed-off-by: Lorenzo Stoakes Reviewed-by: Jan Kara --- Documentation/filesystems/porting.rst | 5 +++++ Documentation/filesystems/vfs.rst | 4 ++++ 2 files changed, 9 insertions(+) diff --git a/Documentation/filesystems/porting.rst b/Documentation/filesyst= ems/porting.rst index 85f590254f07..6743ed0b9112 100644 --- a/Documentation/filesystems/porting.rst +++ b/Documentation/filesystems/porting.rst @@ -1285,3 +1285,8 @@ rather than a VMA, as the VMA at this stage is not ye= t 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, if +a filesystem needs to perform an operation such a pre-population of page t= ables, +then that action can be specified in the vm_area_desc->action field, which= can +be configured using the mmap_action_*() helpers. diff --git a/Documentation/filesystems/vfs.rst b/Documentation/filesystems/= vfs.rst index 486a91633474..9e96c46ee10e 100644 --- a/Documentation/filesystems/vfs.rst +++ b/Documentation/filesystems/vfs.rst @@ -1236,6 +1236,10 @@ otherwise noted. file-backed memory mapping, most notably establishing relevant private state and VMA callbacks. =20 + If further action such as pre-population of page tables is required, + this can be specified by the vm_area_desc->action field and related + parameters. + 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 Thu Oct 2 10:38:49 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 D394733BB14; Wed, 17 Sep 2025 19:12:28 +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=1758136351; cv=fail; b=LjYvdauaEVEgIJdiJIkjW68YFmjMX10kMftji+5V570rwhz2g8PFvgFDx8j5lILs54z+DlBWOZZ/K4BU6jJ62W07FnMMO+7qw57eJT8sLtCbVykRGW6pcj41XtGcMs/8pW6ivgsHgmUVj0KLvtus0tYyaRHicb/UGj9jx36HKIY= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1758136351; c=relaxed/simple; bh=C3on0dFj3S8nsQlqd/yhWnBhV4Xbvv9g5sLFiqeSXnE=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=fS94/xvalTfVhN/9AaNxK7cTOcEIzTNPfzUnnHyIGeovjPUVfPAwryaOIo6ZTvn9XBikl19aajl8MFjPStpL76tLNCkgWqqZb480ImSXnvkaj8L/BqP3Ii8AgEsY5dz13LULJNe89Qf3vA3vD1FvF7O/kuWwgXBZLbl9WMZNbmk= 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=onnlntGG; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=uKu0PGsO; 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="onnlntGG"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="uKu0PGsO" 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 58HEIStP001868; Wed, 17 Sep 2025 19:11:49 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=MMq8Fwoq+FC5z6IadMuy9kAFBTgSiUi3FeQsL7FPZKQ=; b= onnlntGGIJZdQEirUOuHd8k1YUqQ+x7D/7kr7cVMCyUcmYmWcKyNyy0JW1ZRFlad rvKVOZSpclwIMLmLxUSqy+SnjOOuZTyIY2s1FAqUhav/QLvFybkfRXqCqwwwkcut jUsz2u+5MjQOxugo1c/EM7MCknX4VCfmZbfr9cnjeJQ1OvkGcf5j1YtYj9jL82Bp xQPJ1fUp/tSebxf5qnda+dzeBVag1oChfvdonB8XBosqUYGuC3D3frDECv+Pvl0s y6hlTM6aJqJZ3yG75O+fcN5YHCWNehxTIj4vDiz++Q1w9sHTTRRF6Ax62J8/Uht4 DlZrMoCBCI3CJUmiFFVpZg== Received: from phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta03.appoci.oracle.com [138.1.37.129]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 497fxd207r-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 17 Sep 2025 19:11:48 +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 58HHEIef033687; Wed, 17 Sep 2025 19:11:47 GMT Received: from mw6pr02cu001.outbound.protection.outlook.com (mail-westus2azon11012009.outbound.protection.outlook.com [52.101.48.9]) by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 494y2e5fqw-3 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 17 Sep 2025 19:11:47 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=YtuvysRyB85LxSNlUwWdS4QVoOzG69cNEmlAdC7E/SZlNza1+buegAOWipezI6QnzoDwJIC31NS9G9lq1F2+30NPJnf/sFyAHJ1KykppZbtrop3yTi1KjkyjxNPMPlWz+2Rl3+Piy+hSQmcUtEsmMDjqroibJodRQintZJxRzFSiSQCcrEXQV6NEQxxSWYRdjqyGkBoCE5Op2KOhWpzhiZxq4oo/bgkaqh8xhLfP52kIDyxADaKnhTB/yLnB/owpRjLxaqZAs4JtfHoFS5JS7C5L+wSXUc12Ev7fDBrwzfzmDtzpXYFgjh/d7Ka+g9d3r41xFXjpUjOr4+XG6I5KBw== 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=MMq8Fwoq+FC5z6IadMuy9kAFBTgSiUi3FeQsL7FPZKQ=; b=sI2d7Z/eMB+S8D19hwUyuCJLlQxA2B++a9DLz+y6EO5aiuB0SolNtSh1TnJqN2clgXWN6OlCHExn+34RFpKONESQcRmqsra5dpKpl78bUVmMZkATsWPD+YTjiRQQUEVBAmlgocvp9vzk88P+8+NdgBAxxcABPUDA9ObhfXlRvN45cMGDzo5VwlebNLtq7vULdeTHSndKyzJRHmChmi3dF+9aHDrEHc5NzFbsPgKVmSwnxgXx4ZwPsZqCJEw8Nw7+ngSf7g0Nnpyt42toS8IllQPQ/4GV4AuIsX+2s4YazUctdKK0rARNo0QWhXksSJfKtBV/wlgf1K/OYWiWd3Y1pA== 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=MMq8Fwoq+FC5z6IadMuy9kAFBTgSiUi3FeQsL7FPZKQ=; b=uKu0PGsOLFo9tfrmS+kQrfa78rQ6MJyYtoH3uBLcACKnDOQ0zRa8Zwf3Y+VdrwZHjiClmbh4XiLm7W6SNIiZ0TR62o1i55W9U9rllrgCPyrbswxxkvTjcmcDBvKFdv7QxX7SCnqeKcERzAc/D0TjHE3AnBqQlJo+YUhej5JRZGI= Received: from BL4PR10MB8229.namprd10.prod.outlook.com (2603:10b6:208:4e6::14) by DM4PR10MB6063.namprd10.prod.outlook.com (2603:10b6:8:b9::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9115.21; Wed, 17 Sep 2025 19:11:42 +0000 Received: from BL4PR10MB8229.namprd10.prod.outlook.com ([fe80::552b:16d2:af:c582]) by BL4PR10MB8229.namprd10.prod.outlook.com ([fe80::552b:16d2:af:c582%3]) with mapi id 15.20.9115.022; Wed, 17 Sep 2025 19:11:42 +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 , iommu@lists.linux.dev, Kevin Tian , Will Deacon , Robin Murphy Subject: [PATCH v4 11/14] mm/hugetlbfs: update hugetlbfs to use mmap_prepare Date: Wed, 17 Sep 2025 20:11:13 +0100 Message-ID: X-Mailer: git-send-email 2.51.0 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: LO4P265CA0243.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:350::7) To BL4PR10MB8229.namprd10.prod.outlook.com (2603:10b6:208:4e6::14) 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: BL4PR10MB8229:EE_|DM4PR10MB6063:EE_ X-MS-Office365-Filtering-Correlation-Id: 378c819e-99d8-4061-16f6-08ddf61e091d X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|1800799024|376014|7416014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?U1xduY81BKSlTl9a25tdMOawZjwVqo0tDzaubsL4gi2ByUW5ulUW1pvX7L8R?= =?us-ascii?Q?aTTyjV/8WYmDbl5hxDWBRjeGx8rjisiYN3a6LF6jOq3FSeJE74y9FrYEmpBF?= =?us-ascii?Q?q1auAKkgoRCIkkY6hV5wYDA53tIg/tpsi83/ATNb1Okr+qK50/ldjdk+QfNQ?= =?us-ascii?Q?9HotpdcIGa8t6s1nxs23xC3D85xOExJ4o82M7krLJHq0/vREnhmt4IBe69zc?= =?us-ascii?Q?HAzcH9tKiJr0WpUj/bpyhL9xzpjUPNPUTkr3ZkkvBle/y3DJVZqImopIgPUk?= =?us-ascii?Q?8cvpOjYWA5+rMRUb1v274jEXEuD6RwWEYmf4WkN4vrvb7rpRBSCZTF8t9i7N?= =?us-ascii?Q?+9WrnvP/eB+YpXUhk4RBUHmJeC8tBJctEuq26OpJ85eznIPbOsdX3erkEyjt?= =?us-ascii?Q?8Ge/hcoVg1f0rvaRm37oK5/QJt7ILgUXDvfvQyc9VOqxVBGVJoHMnCCZKMsh?= =?us-ascii?Q?qc1Rzag1FXyuZFW+7KMO59HIwalfLrkWYNwP3scZFGapqYwzsCIW1JttbUwK?= =?us-ascii?Q?pPOLMyMz/Unw8GmCSD4BXXVqbngQi2vFEJEpBtCc2xjnsHDLeFM3IYf0RGhL?= =?us-ascii?Q?iLK/wqnLxK28Bi59WsoJgo6fDCofSonh7MxdunpHUDcE82W7p4Ed5ho9y2q8?= =?us-ascii?Q?B575Igzqz6Oqn5nY4RMz4XXYvjq9G+FAXuc9YPXvWjyhmHanIavj2asuKNKS?= =?us-ascii?Q?A1J0rU7Z32kwHz1Z4wpcuvq3vjGq5eIRHRsoiGnCr+hnLSw7cgp+6+kfhaw9?= =?us-ascii?Q?CP+0g24quuq0EMH0eF3A8AXUZ2HKf4qAAWtHrlaixO4XSNkShjf51+QAa876?= =?us-ascii?Q?4j0HE34Rwj+oeirEqmSQ2wHvjIHXOx/iOtGoMool1oeDVL5JaoKOzION9UAV?= =?us-ascii?Q?C57Pa+Ujq2kdcSdxJoQEx4uXxb86sVMJ8JQHQRmAm2pjYBpvo07c4oEe2jho?= =?us-ascii?Q?g1I5g7DNC94C2p9Qvw4qGGSLoy+zTA1O9m+ENJuGhFe0PLsX72/jDMB8Dw/Z?= =?us-ascii?Q?hMyPGm/UfJCVpYHGCfvRUrGoyjcTKYxph/uP98uAANwJoX3/zCZnwmEbiF7m?= =?us-ascii?Q?v6qg3d4Zt8F+kqCTri69pTXxNKuxJP2XgUp7D8qrTjpPRfd4gUq6TcZDoH2B?= =?us-ascii?Q?U0HXCsDWEcWTtXEBw7aIfJamhoveS4XTtWMqQhbfWUxkeL3/3SxutstOB2hG?= =?us-ascii?Q?qKJVyHbLL8Ceoqt577CijGShUGhn8z9+cEZwaZhkBwUIqj5Rp7q9MhLNz3ai?= =?us-ascii?Q?8DIEQmKH3eiJzn9aBeC+78tM0mylnaKTeuByo/jJFrf4/DPGqUdlrB1SpufO?= =?us-ascii?Q?AiVWm18FIWeoOv59Qig2ihVnJe6X0WHB6nN2M7wQLO1nYy1LctKJS5f83vSc?= =?us-ascii?Q?22EGn0nPxohFQB6lBlut3y12T4PXjye0ybhuGIMfo7YXcQSzAA=3D=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BL4PR10MB8229.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(7416014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?VK6SvqTL8y2U+X6AeBN6Q3DiifVRIkLqdib27g20qPPkLUipRdYvcSSJIweT?= =?us-ascii?Q?cXT03k6dkXfGimQiCNXN6QyIcNKlswEs8LUPTbdSe58wwGqhY/8sxaxJl/Vk?= =?us-ascii?Q?6uJzep7BAq3fLKCsn34Nzd0zz0jNvX4Ny/KVs698cQ7vEGOLmdR639TtODmy?= =?us-ascii?Q?w7fPyf8HaGcnnxNHG0hcQWcL4uPos07kBKfnehW10fx519IvfYD0/0B4IrCd?= =?us-ascii?Q?eTu5j6nB3qIN2PiIzuiitQybK5tZ4jcwGVom//3YpL7lqmv+cMkzEMWcBqNY?= =?us-ascii?Q?olz8/X9c6A/dJPT+M5JivoZh/KmUS7O3mH+NThgDuikXuEA7UdxagX4q5Z7t?= =?us-ascii?Q?qIL3l0L83Bl1TQEFvQDdsKGDlwTpXS1BTw/Z8grI7tF1AI026lwviWDoULNk?= =?us-ascii?Q?ls9wiJgFF9hbzH+wq3n5U92hR2V9AitdfptYqSh11euftlpyj0dXgO57c3p5?= =?us-ascii?Q?mbN3TOAvgBlCrunPRTp3qgjDtcugMvGoEs2xyR5ko6Zdv7TBZMSg7Mgruvzk?= =?us-ascii?Q?x0RlHTg9OTod+62XjZcphgd52hQkDPtll3bo+R9FBDNWiYASYgucS6YEDovH?= =?us-ascii?Q?j18PrzhnBYbj95KHk/BzIh2VvCrdLs/jRmiVqNONeso2WCmxuIX1Q6YCNSJ4?= =?us-ascii?Q?iWLQpADWax6n2StW/2/guFwjFzvN1VfA+Wt6mJLvUaxMYbPEZWS78JJf23BS?= =?us-ascii?Q?LB24fqDS4H/HUnEBJKot103NFhVoBR/4PtsNTo0K6uokiy9/cRXEdTnYtXH5?= =?us-ascii?Q?u4ydaDNAgVfGqXEXNp3WiM3GwkKAuxFwR3NKwfocLSqBt/nxKuxy/FVcYeMF?= =?us-ascii?Q?p4lf60j58DlVdRTKE9yqk6NH6OU+nK6yJ/s6JKyX99GCUNgBAn7NcEAdRKua?= =?us-ascii?Q?c1uHKsgra1bhNLoOQCFje2yFm8XbkkBvyRkFctnZJojMIaeFPPWywA7wIpz1?= =?us-ascii?Q?wH1RNlsbrdxm5FV0WIW6YuqhqnS5KX+goJVt9Q+LQHiIDAuWyYdA2LaGIX3N?= =?us-ascii?Q?beaDfxPnu4uCCigF4R++NkaCL1W8J1XAHdCEwzCpsapVcqRWkOwWTgbxVlSz?= =?us-ascii?Q?j3yeodTTBM4JSmnqmYZl+ch8j18CvNIXEXIiv11exgNDMRCZ/6oO1huF5VJL?= =?us-ascii?Q?8dLLlgU7iagucLFg3UUXPPmKlYR6AjRKNs9KKubwvvXE5NsbtqFOTArov1is?= =?us-ascii?Q?D9iA9uNnUr9qI+Lph79UfsgZ3Vi9bFDy+Wbhltx/Pqkln3rSfneojpjjni70?= =?us-ascii?Q?dA2dGBLFkW9g0VpjqgG2F/rnEV9ZO8PKyA+7+bjujKoyOdTu0ZfogQ1IaBE+?= =?us-ascii?Q?3Tx83kDvlArHnvs4frduBqROYoPJ7zRFLraSHm21bG8C6Hdsg9Qo5MhWParh?= =?us-ascii?Q?K6Yt4X6hjVOZChrw3eB/W9Q0Wf9PT5dEjmTt6ubJWg+H/3LAp45YCrYefP7t?= =?us-ascii?Q?+ZpFyMi/9R5ytKQ2LLuNJng08KW870iNXIDKqj6IRwpcinImba5Pup4pAU5h?= =?us-ascii?Q?W0/goOXHe6Sm2boLv/FlKn23KQmSZF2OYrqqSbKgsD3Cwp0I0SMESnKL8NHn?= =?us-ascii?Q?pwnji2F9YPDqGqmJd1FpO8DLLZFiktMkKDH5dCTxATWPgZZxnD9PWtbNc0FL?= =?us-ascii?Q?jQ=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: o1tMfzKWjGeSyF3wdfsc6tr27w3TqG2N7B63BwNx2qtPhxyW+R2IUL8n2LAcbQOA9WIiPsNEdFKYwI3oh7f5wGjsC9SF1P+gEaXHEtEfNsQm9x3+B03hTaJ4uEge6063Mi6RVthQS3+21Jl0e7ZRqNtFU5ZsZ/guIGXh+5nwFCknppAjIBJ+Vdo8kcXb2somYE1KRMklqlXN9ppeX2hBThDw44+OtHWSblHSScP+m+KpyIPpmPPRkeJWJM1dHpWs44j/X24PBTw5pAYoe23adUeD+TyRAhURTwuCpqmptJlH4rf0/g/GiBCdbad4H/KCNq+YV5G9vwcITNi4YW8Q4a+J29DTYPrbhuDE/7l6AghZGEUIe7j+SdlMFw3Ue3D8neLgoZE/njUzIvO49yOcjYGlZs+RGYgKAEqmsLO1mVuJBH39d4XCdqH47f4t4MlRpIPZijEniYA429du0zS0A5oO+clo/5dcZmpk6di/MmXXQJu7ADQdvfpA64K2V0R+fcpzMGcjXuDC0kIiGK8Pfcsu9UgkJ64fonbQq4G0PoCt7xxjO8tt6sORcK+cKoxNhK9hrQHV0E3Sg8rHFNQc+NGyPYVInc8IL2nMUhV9E+E= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 378c819e-99d8-4061-16f6-08ddf61e091d X-MS-Exchange-CrossTenant-AuthSource: BL4PR10MB8229.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Sep 2025 19:11:42.0127 (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: FyLtT9zFBtDreKpdrL1+90h+fL0MyNWrO63+tzsHfJqQ0/Q0N+OVqvRKuzYMeA2QAqTXRJd9LzgUd3yQzkAj0A8aG8Dxw9Fm0VgQFJ4bGvQ= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR10MB6063 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-17_01,2025-09-17_02,2025-03-28_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 phishscore=0 bulkscore=0 adultscore=0 mlxlogscore=999 spamscore=0 mlxscore=0 suspectscore=0 malwarescore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2508110000 definitions=main-2509170187 X-Proofpoint-GUID: kP92pRDfDsuTnJSwusUditcVwGJTp5e1 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwOTE2MDIwMiBTYWx0ZWRfX42fUrJ68Fb4U W5HlCfBpQ92bYeEBzELNT2qd1ywFew+Qa/7ZOcbK4XK0TuovjHHkwcllGY0wUCisnMDJkLEfPG+ gXbDM632WpQ81jY9weeRqO3Q+YGcQvmDgptzfng6S4R+Xw4SuxX1OPcnIQgdeGOwYOrxHnNGVXG lyds0mKMmAW8xjvmLWHTd3n0Zs5kwZXbXtomAdCsLG85ys3+HY/e/3S90onG7j7BdZZVOJ6d1sr mN2K+0tFnSU88L7l1AN5q7F7vQjyT4JP2ZcYoLlykbV84EQz/vh5Nax6bGjLCaKUh9m6gtU2v07 zyb8ogsFbhaP+wQSxe6OUmPX2DN6VWQAo8Zc1S8nif1MwiVMSOv/HGuo7o4e3Eyy/W3t8hqCAnA n8bNaQ49 X-Authority-Analysis: v=2.4 cv=cerSrmDM c=1 sm=1 tr=0 ts=68cb07f4 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=Ikd4Dj_1AAAA:8 a=i1sCd5a19pX9XIFVDjUA:9 X-Proofpoint-ORIG-GUID: kP92pRDfDsuTnJSwusUditcVwGJTp5e1 Content-Type: text/plain; charset="utf-8" Since we can now perform actions after the VMA is established via mmap_prepare, use desc->action_success_hook to set up the hugetlb lock once the VMA is setup. We also make changes throughout hugetlbfs to make this possible. Signed-off-by: Lorenzo Stoakes Reviewed-by: Jason Gunthorpe --- fs/hugetlbfs/inode.c | 36 ++++++++++------ include/linux/hugetlb.h | 9 +++- include/linux/hugetlb_inline.h | 15 ++++--- mm/hugetlb.c | 77 ++++++++++++++++++++-------------- 4 files changed, 85 insertions(+), 52 deletions(-) diff --git a/fs/hugetlbfs/inode.c b/fs/hugetlbfs/inode.c index f42548ee9083..9e0625167517 100644 --- a/fs/hugetlbfs/inode.c +++ b/fs/hugetlbfs/inode.c @@ -96,8 +96,15 @@ static const struct fs_parameter_spec hugetlb_fs_paramet= ers[] =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_prepare_success(const struct vm_area_struct *= vma) { + /* Unfortunate we have to reassign vma->vm_private_data. */ + return hugetlb_vma_lock_alloc((struct vm_area_struct *)vma); +} + +static int hugetlbfs_file_mmap_prepare(struct vm_area_desc *desc) +{ + struct file *file =3D desc->file; struct inode *inode =3D file_inode(file); loff_t len, vma_len; int ret; @@ -112,8 +119,8 @@ static int hugetlbfs_file_mmap(struct file *file, struc= t vm_area_struct *vma) * 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; + desc->vm_flags |=3D VM_HUGETLB | VM_DONTEXPAND; + desc->vm_ops =3D &hugetlb_vm_ops; =20 /* * page based offset in vm_pgoff could be sufficiently large to @@ -122,16 +129,16 @@ static int hugetlbfs_file_mmap(struct file *file, str= uct vm_area_struct *vma) * 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) + if (desc->pgoff & PGOFF_LOFFT_MAX) return -EINVAL; } =20 /* must be huge page aligned */ - if (vma->vm_pgoff & (~huge_page_mask(h) >> PAGE_SHIFT)) + if (desc->pgoff & (~huge_page_mask(h) >> PAGE_SHIFT)) return -EINVAL; =20 - vma_len =3D (loff_t)(vma->vm_end - vma->vm_start); - len =3D vma_len + ((loff_t)vma->vm_pgoff << PAGE_SHIFT); + vma_len =3D (loff_t)vma_desc_size(desc); + len =3D vma_len + ((loff_t)desc->pgoff << PAGE_SHIFT); /* check for overflow */ if (len < vma_len) return -EINVAL; @@ -141,7 +148,7 @@ static int hugetlbfs_file_mmap(struct file *file, struc= t vm_area_struct *vma) =20 ret =3D -ENOMEM; =20 - vm_flags =3D vma->vm_flags; + vm_flags =3D desc->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,17 +158,20 @@ 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) + desc->pgoff >> huge_page_order(h), + len >> huge_page_shift(h), desc, + vm_flags) < 0) goto out; =20 ret =3D 0; - if (vma->vm_flags & VM_WRITE && inode->i_size < len) + if ((desc->vm_flags & VM_WRITE) && inode->i_size < len) i_size_write(inode, len); out: inode_unlock(inode); =20 + /* Allocate the VMA lock after we set it up. */ + if (!ret) + desc->action.success_hook =3D hugetlb_file_mmap_prepare_success; return ret; } =20 @@ -1221,7 +1231,7 @@ 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, .fsync =3D noop_fsync, .get_unmapped_area =3D hugetlb_get_unmapped_area, .llseek =3D default_llseek, diff --git a/include/linux/hugetlb.h b/include/linux/hugetlb.h index 8e63e46b8e1f..2387513d6ae5 100644 --- a/include/linux/hugetlb.h +++ b/include/linux/hugetlb.h @@ -150,8 +150,7 @@ int hugetlb_mfill_atomic_pte(pte_t *dst_pte, struct folio **foliop); #endif /* CONFIG_USERFAULTFD */ long hugetlb_reserve_pages(struct inode *inode, long from, long to, - struct vm_area_struct *vma, - vm_flags_t vm_flags); + struct vm_area_desc *desc, vm_flags_t vm_flags); long hugetlb_unreserve_pages(struct inode *inode, long start, long end, long freed); bool folio_isolate_hugetlb(struct folio *folio, struct list_head *list); @@ -280,6 +279,7 @@ bool is_hugetlb_entry_hwpoisoned(pte_t pte); void hugetlb_unshare_all_pmds(struct vm_area_struct *vma); void fixup_hugetlb_reservations(struct vm_area_struct *vma); void hugetlb_split(struct vm_area_struct *vma, unsigned long addr); +int hugetlb_vma_lock_alloc(struct vm_area_struct *vma); =20 #else /* !CONFIG_HUGETLB_PAGE */ =20 @@ -466,6 +466,11 @@ static inline void fixup_hugetlb_reservations(struct v= m_area_struct *vma) =20 static inline void hugetlb_split(struct vm_area_struct *vma, unsigned long= addr) {} =20 +static inline int hugetlb_vma_lock_alloc(struct vm_area_struct *vma) +{ + return 0; +} + #endif /* !CONFIG_HUGETLB_PAGE */ =20 #ifndef pgd_write diff --git a/include/linux/hugetlb_inline.h b/include/linux/hugetlb_inline.h index 0660a03d37d9..a27aa0162918 100644 --- a/include/linux/hugetlb_inline.h +++ b/include/linux/hugetlb_inline.h @@ -2,22 +2,27 @@ #ifndef _LINUX_HUGETLB_INLINE_H #define _LINUX_HUGETLB_INLINE_H =20 -#ifdef CONFIG_HUGETLB_PAGE - #include =20 -static inline bool is_vm_hugetlb_page(struct vm_area_struct *vma) +#ifdef CONFIG_HUGETLB_PAGE + +static inline bool is_vm_hugetlb_flags(vm_flags_t vm_flags) { - return !!(vma->vm_flags & VM_HUGETLB); + return !!(vm_flags & VM_HUGETLB); } =20 #else =20 -static inline bool is_vm_hugetlb_page(struct vm_area_struct *vma) +static inline bool is_vm_hugetlb_flags(vm_flags_t vm_flags) { return false; } =20 #endif =20 +static inline bool is_vm_hugetlb_page(struct vm_area_struct *vma) +{ + return is_vm_hugetlb_flags(vma->vm_flags); +} + #endif diff --git a/mm/hugetlb.c b/mm/hugetlb.c index 1806685ea326..af28f7fbabb8 100644 --- a/mm/hugetlb.c +++ b/mm/hugetlb.c @@ -119,7 +119,6 @@ struct mutex *hugetlb_fault_mutex_table __ro_after_init; /* Forward declaration */ static int hugetlb_acct_memory(struct hstate *h, long delta); static void hugetlb_vma_lock_free(struct vm_area_struct *vma); -static void hugetlb_vma_lock_alloc(struct vm_area_struct *vma); static void __hugetlb_vma_unlock_write_free(struct vm_area_struct *vma); static void hugetlb_unshare_pmds(struct vm_area_struct *vma, unsigned long start, unsigned long end, bool take_locks); @@ -427,17 +426,21 @@ static void hugetlb_vma_lock_free(struct vm_area_stru= ct *vma) } } =20 -static void hugetlb_vma_lock_alloc(struct vm_area_struct *vma) +/* + * vma specific semaphore used for pmd sharing and fault/truncation + * synchronization + */ +int hugetlb_vma_lock_alloc(struct vm_area_struct *vma) { struct hugetlb_vma_lock *vma_lock; =20 /* Only establish in (flags) sharable vmas */ if (!vma || !(vma->vm_flags & VM_MAYSHARE)) - return; + return 0; =20 /* Should never get here with non-NULL vm_private_data */ if (vma->vm_private_data) - return; + return -EINVAL; =20 vma_lock =3D kmalloc(sizeof(*vma_lock), GFP_KERNEL); if (!vma_lock) { @@ -452,13 +455,15 @@ static void hugetlb_vma_lock_alloc(struct vm_area_str= uct *vma) * allocation failure. */ pr_warn_once("HugeTLB: unable to allocate vma specific lock\n"); - return; + return -EINVAL; } =20 kref_init(&vma_lock->refs); init_rwsem(&vma_lock->rw_sema); vma_lock->vma =3D vma; vma->vm_private_data =3D vma_lock; + + return 0; } =20 /* Helper that removes a struct file_region from the resv_map cache and re= turns @@ -1190,20 +1195,28 @@ static struct resv_map *vma_resv_map(struct vm_area= _struct *vma) } } =20 -static void set_vma_resv_map(struct vm_area_struct *vma, struct resv_map *= map) +static void set_vma_resv_flags(struct vm_area_struct *vma, unsigned long f= lags) { - VM_BUG_ON_VMA(!is_vm_hugetlb_page(vma), vma); - VM_BUG_ON_VMA(vma->vm_flags & VM_MAYSHARE, vma); + VM_WARN_ON_ONCE_VMA(!is_vm_hugetlb_page(vma), vma); + VM_WARN_ON_ONCE_VMA(vma->vm_flags & VM_MAYSHARE, vma); =20 - set_vma_private_data(vma, (unsigned long)map); + set_vma_private_data(vma, get_vma_private_data(vma) | flags); } =20 -static void set_vma_resv_flags(struct vm_area_struct *vma, unsigned long f= lags) +static void set_vma_desc_resv_map(struct vm_area_desc *desc, struct resv_m= ap *map) { - VM_BUG_ON_VMA(!is_vm_hugetlb_page(vma), vma); - VM_BUG_ON_VMA(vma->vm_flags & VM_MAYSHARE, vma); + VM_WARN_ON_ONCE(!is_vm_hugetlb_flags(desc->vm_flags)); + VM_WARN_ON_ONCE(desc->vm_flags & VM_MAYSHARE); =20 - set_vma_private_data(vma, get_vma_private_data(vma) | flags); + desc->private_data =3D map; +} + +static void set_vma_desc_resv_flags(struct vm_area_desc *desc, unsigned lo= ng flags) +{ + VM_WARN_ON_ONCE(!is_vm_hugetlb_flags(desc->vm_flags)); + VM_WARN_ON_ONCE(desc->vm_flags & VM_MAYSHARE); + + desc->private_data =3D (void *)((unsigned long)desc->private_data | flags= ); } =20 static int is_vma_resv_set(struct vm_area_struct *vma, unsigned long flag) @@ -1213,6 +1226,13 @@ static int is_vma_resv_set(struct vm_area_struct *vm= a, unsigned long flag) return (get_vma_private_data(vma) & flag) !=3D 0; } =20 +static bool is_vma_desc_resv_set(struct vm_area_desc *desc, unsigned long = flag) +{ + VM_WARN_ON_ONCE(!is_vm_hugetlb_flags(desc->vm_flags)); + + return ((unsigned long)desc->private_data) & flag; +} + bool __vma_private_lock(struct vm_area_struct *vma) { return !(vma->vm_flags & VM_MAYSHARE) && @@ -7250,9 +7270,9 @@ long hugetlb_change_protection(struct vm_area_struct = *vma, */ =20 long hugetlb_reserve_pages(struct inode *inode, - long from, long to, - struct vm_area_struct *vma, - vm_flags_t vm_flags) + long from, long to, + struct vm_area_desc *desc, + vm_flags_t vm_flags) { long chg =3D -1, add =3D -1, spool_resv, gbl_resv; struct hstate *h =3D hstate_inode(inode); @@ -7267,12 +7287,6 @@ long hugetlb_reserve_pages(struct inode *inode, return -EINVAL; } =20 - /* - * vma specific semaphore used for pmd sharing and fault/truncation - * synchronization - */ - hugetlb_vma_lock_alloc(vma); - /* * Only apply hugepage reservation if asked. At fault time, an * attempt will be made for VM_NORESERVE to allocate a page @@ -7285,9 +7299,9 @@ long hugetlb_reserve_pages(struct inode *inode, * Shared mappings base their reservation on the number of pages that * are already allocated on behalf of the file. Private mappings need * to reserve the full area even if read-only as mprotect() may be - * called to make the mapping read-write. Assume !vma is a shm mapping + * called to make the mapping read-write. Assume !desc is a shm mapping */ - if (!vma || vma->vm_flags & VM_MAYSHARE) { + if (!desc || desc->vm_flags & VM_MAYSHARE) { /* * resv_map can not be NULL as hugetlb_reserve_pages is only * called for inodes for which resv_maps were created (see @@ -7304,8 +7318,8 @@ long hugetlb_reserve_pages(struct inode *inode, =20 chg =3D to - from; =20 - set_vma_resv_map(vma, resv_map); - set_vma_resv_flags(vma, HPAGE_RESV_OWNER); + set_vma_desc_resv_map(desc, resv_map); + set_vma_desc_resv_flags(desc, HPAGE_RESV_OWNER); } =20 if (chg < 0) @@ -7315,7 +7329,7 @@ long hugetlb_reserve_pages(struct inode *inode, chg * pages_per_huge_page(h), &h_cg) < 0) goto out_err; =20 - if (vma && !(vma->vm_flags & VM_MAYSHARE) && h_cg) { + if (desc && !(desc->vm_flags & VM_MAYSHARE) && h_cg) { /* For private mappings, the hugetlb_cgroup uncharge info hangs * of the resv_map. */ @@ -7349,7 +7363,7 @@ long hugetlb_reserve_pages(struct inode *inode, * consumed reservations are stored in the map. Hence, nothing * else has to be done for private mappings here */ - if (!vma || vma->vm_flags & VM_MAYSHARE) { + if (!desc || desc->vm_flags & VM_MAYSHARE) { add =3D region_add(resv_map, from, to, regions_needed, h, h_cg); =20 if (unlikely(add < 0)) { @@ -7403,16 +7417,15 @@ long hugetlb_reserve_pages(struct inode *inode, hugetlb_cgroup_uncharge_cgroup_rsvd(hstate_index(h), chg * pages_per_huge_page(h), h_cg); out_err: - hugetlb_vma_lock_free(vma); - if (!vma || vma->vm_flags & VM_MAYSHARE) + if (!desc || desc->vm_flags & VM_MAYSHARE) /* Only call region_abort if the region_chg succeeded but the * region_add failed or didn't run. */ if (chg >=3D 0 && add < 0) region_abort(resv_map, from, to, regions_needed); - if (vma && is_vma_resv_set(vma, HPAGE_RESV_OWNER)) { + if (desc && is_vma_desc_resv_set(desc, HPAGE_RESV_OWNER)) { kref_put(&resv_map->refs, resv_map_release); - set_vma_resv_map(vma, NULL); + set_vma_desc_resv_map(desc, NULL); } return chg < 0 ? chg : add < 0 ? add : -EINVAL; } --=20 2.51.0 From nobody Thu Oct 2 10:38:49 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 9652C343447; Wed, 17 Sep 2025 19:12:36 +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=1758136358; cv=fail; b=XuI/hr8fMqeBE/0I2pIPFl05zQAh+YvJ98uo9Tm9k6B7XUC3snDXhb6X3SPGfaxzbSIQoT/Rz/H4FUeAQm//ljnbrvGakm8Qojzj5x9XBmIPYP1snKabY6YO7SpJ/O/jlkwZ7BwL0n6MFI2qoKgWQ5U2ez2lewQTqKs7Vvf0ZBM= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1758136358; c=relaxed/simple; bh=hY/pJAPpl0c1cEavNkw0EcoFM3/0/nnzicCvZKk5WFc=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=eimEwVSua3O2ZKgrg4cRZLN+A3WYsRkbyWcJihgy3EOXfYVAmzmVUeFFm4pFOz3eBTkOkZpyu9/g2VBwi+O86fTr2dvLuFFhH0z4mH6W18mqKK8RhTdBvIBBs3Tl9zi4Bgy6rtB7vGI2D3DmauzUXY2vqRb4PI0d477oUwH8ZLQ= 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=PPu1tKSv; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=W5xndNRB; 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="PPu1tKSv"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="W5xndNRB" 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 58HEIUlE010043; Wed, 17 Sep 2025 19: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=iKXTZ1pQwSJCVddD59OiaFOmJfQs8O4g6Ma/tUZpxKM=; b= PPu1tKSv2qDkdA5+yj0LMhp65iBtXGdzaeK9BouO5CDOX7pU51E3wG/cO3myx5hA IEufu/4Z1YRhT5wCukMz86ikdDn8p5FDAuoQQPN9aoXBiDSd9rk6O6FuNJPU5Uam 1vcYphXIV8qCzo6t6glOg1cBq5y8x2g8xSuQqBbNMSMd++reP76cCQniydgH+L1v I87V5FBIAbX1x8+8ZcUrxlYVR29xPirOr6B/6pT/1FIuvFH7NdiVK1OelcNOOtXP oPDxXWg1SmX6kziiErHE+aA2ZI0f0UAAVpiIwF5tbTqRiNFTSDMBIBX4dDt4L203 0YDmiCghoheS/yy/PbSTQg== Received: from phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta03.appoci.oracle.com [138.1.37.129]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 497fx6j0qt-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 17 Sep 2025 19:11:50 +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 58HHEIeh033687; Wed, 17 Sep 2025 19:11:48 GMT Received: from mw6pr02cu001.outbound.protection.outlook.com (mail-westus2azon11012009.outbound.protection.outlook.com [52.101.48.9]) by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 494y2e5fqw-4 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 17 Sep 2025 19:11:48 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=zUjNgcCWV/ZPlpBtIWM/K21+bG6qaqN4+Gy5cKAgTQwzY0LKh1uvDXb2NHYdRiNzr67Tujc9LwkVRPhskvtYlMlRICDZn2jaHSuAqf3qoflkjY2GTsbRvm/YfPiGLCbFTSDgnxFTbosG33ul0tkNElU+FgPmVkLe/5pfICYIS/D/39FmWxUYbiui2O73upcvKQmMowpX7x7L+GnBP9ivPbyiTqz/bmpuB4GaMWTOEbqEWv1C+LZLmrT7U7n0lTkd1PaqXTLsD/JWTi/dCDDmd0oGn5uAxfkAN0pl15MPhVTT/+BEnz/9k+6jUNuQSf7Wi8giv/Pb0CHqskhoNyFyxg== 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=iKXTZ1pQwSJCVddD59OiaFOmJfQs8O4g6Ma/tUZpxKM=; b=bVdC8+2a96HTo6DE5W81mhZ0p6rjs0jN3DlZyI0UyTw+BLBzepBCVl4+CS3A0X0uoAcvm9qkhC3T8xFJXutlAF8NK9M+q1lk7BYvTQgn6CyYolvj9W3NLqqlj+ALoZLrsQxYoZdHpGv2OCSAhOFTQ0d0x49MBn3m4Vn7iEx4pjnKNCHIkKq1RJ+PSAqNLZHMaw6WCuvlSG/YmycOSqqgOqeLKrSxleK3tPLQ7t1Ly9/tax515dyf5kCjkE5OjY3ZdI/dC3dano1We0R6+4XwCAfJc4Yj3/gUN6IGF8RImiYTyB5zeBe+K2Ssmj3pUPuHezLIeM8iK6aW7gFtGZkGEA== 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=iKXTZ1pQwSJCVddD59OiaFOmJfQs8O4g6Ma/tUZpxKM=; b=W5xndNRBnKVHE044dpbhit2xS6k4dElI0EgjFWRMBIaTUvEPZZkgkcMkydplu9t8Pv6q3lY/N/ko/R7cVBbHeeuXwmRhDKBEEKUfeHLh80h4RXuJ3ySt2vOSBO9CcKBaHpoYIer9KZc2k4cMYNdOIxunuw5zO62BqzQcHwgIiWQ= Received: from BL4PR10MB8229.namprd10.prod.outlook.com (2603:10b6:208:4e6::14) by DM4PR10MB6063.namprd10.prod.outlook.com (2603:10b6:8:b9::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9115.21; Wed, 17 Sep 2025 19:11:44 +0000 Received: from BL4PR10MB8229.namprd10.prod.outlook.com ([fe80::552b:16d2:af:c582]) by BL4PR10MB8229.namprd10.prod.outlook.com ([fe80::552b:16d2:af:c582%3]) with mapi id 15.20.9115.022; Wed, 17 Sep 2025 19: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 , iommu@lists.linux.dev, Kevin Tian , Will Deacon , Robin Murphy Subject: [PATCH v4 12/14] mm: add shmem_zero_setup_desc() Date: Wed, 17 Sep 2025 20:11:14 +0100 Message-ID: X-Mailer: git-send-email 2.51.0 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: LO4P265CA0110.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:2c3::14) To BL4PR10MB8229.namprd10.prod.outlook.com (2603:10b6:208:4e6::14) 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: BL4PR10MB8229:EE_|DM4PR10MB6063:EE_ X-MS-Office365-Filtering-Correlation-Id: e3c45309-de5a-4b02-b60f-08ddf61e0a12 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|1800799024|376014|7416014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?ndcdei4vFxFQNhcHfws6/lzHeOf7+gzPqGGa1eKvWMuGhPPg9I9K7GPXunep?= =?us-ascii?Q?rf0v06aNDXfI6FWOh3Ce0r6WUmrkW90361YHCncWDC5xdCVwsQE2okCV30mF?= =?us-ascii?Q?RfGB2dxBSuFiG9nYNF3B26WqyDzAjvU17TvB9NAZjwLCGraAL9SE2QiifcVd?= =?us-ascii?Q?hJ+XxTHcfeCN47PNLnhrcMbTlhhriIGB00Qj95v7oGXRev00fgO6gJF5dVsa?= =?us-ascii?Q?BnRvg7FVNEr/xdhvcPnGuJRU3AvlXDbTwKjpZfAGo0ppK7u5+6P3WmBowmyl?= =?us-ascii?Q?l79PK2q6WERGke9WzSPiMK+OY+D8hWCBWwdFPjeG/eOUVBPWXXYpxJTkQvvb?= =?us-ascii?Q?scj9wmB5cencutyWiAITleg2+y1ku8DIdDH6cbdwLMZT78LRUTfiYexOTp9H?= =?us-ascii?Q?XtYt1GV7OHrOnX7tSuh+A6oEO2FELwJS/7qpekGj+347xhYo5n40AW7Pz/dS?= =?us-ascii?Q?hU3wct1r6ti63FHgmg4lshiTqNYLMCXNmvFxFSS7kBBWsZfQNW9Ni8FqCL5p?= =?us-ascii?Q?hxiX8ynQGCzLCuXZFmTpo5PDT0C6Z83o374EgZMrcutfTuh05dqoGsQ+KpEO?= =?us-ascii?Q?rn5/RiU9c3bHmbwmo75l2DT8iNjKCUARKIWIwChQGCi7H14Z4mZxLniLkZhR?= =?us-ascii?Q?rjdjJwMZYh9Le/2+1me1+rXnMqhfqOyJtYNn/BtxM9/Lsn4CsizawXD48gkF?= =?us-ascii?Q?YolNe4y4kHyQd5zJKGcpPR/oLFPncQA8Pfnxx/hdIxm05bCV3t/bK6DFqlm5?= =?us-ascii?Q?UTmESJ73BeplONk02UeG1TT38HwCcCXWhnAWvJoK9JBi3nqdx94EY3HtvZO/?= =?us-ascii?Q?ptcyodRsC6lY/0NineZqbStoHCajBMkaOrLq4UX2Cq8VxKWEWMDacFte72FL?= =?us-ascii?Q?vEhGmEPf4PqC1lcpBv/TfSD6+0hpIRJnCPAs8qX7jKGPZogTq26hbZG/jT4t?= =?us-ascii?Q?sMsPI5qbUQRrzCo+KrxrFwK56/ufTXQnY/iPP5h5Am2LsxLAAHWor7BJBeNN?= =?us-ascii?Q?/02lV8xFgADmb+eZVapN4K3nJdFu5YTB7QOIlgF/IBjOEscFWNx15XIrssvM?= =?us-ascii?Q?eyXhBAtexLypm8NrhyDDG+BC485EL2IuUAl0NBd6GLpZ54Zzst91DkdCZhpZ?= =?us-ascii?Q?wsWbgY/kk+R4jXsC8CBWAVx12G6MI27nXKxJpx7PaG3r3vZcsHpq4EeJkRjE?= =?us-ascii?Q?mpjVlclLs+xXsV54Bsr+OWk0y/oqGqP+X1U30mSP5AvtGGN6OqbsXE8r6g9z?= =?us-ascii?Q?L1/PgDY9Kpv1KjpZLcVj1O8LNlxlJUrIjubnESjS1/sGCCPfqDAl+BcfQ5+l?= =?us-ascii?Q?L+TFG+KmCLtDS6lwCkrgE3+qIETI+BS098hAALh8JokNZKT1dQ/XIBHZBw4Q?= =?us-ascii?Q?BgmF5oL+L6tOMLXKXPWGE+0yTIAHD+uvmxnwbrcG4sil54vpxLrVyAGrS91y?= =?us-ascii?Q?6e1xIxuZ2wg=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BL4PR10MB8229.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(7416014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?THINpftBorxqKWQvQXSubOtlmc/T1LKPrpyeenkw2HTChrybz2GaTNwGuuof?= =?us-ascii?Q?sdg8eFMNWvGNEt5cIYG5yKIEcAd46VpFFCVlgNXaBbJSpfCLWOI/2uPHGTf7?= =?us-ascii?Q?yOXCktU4oYQiI5Ml2Xm/WrDfmtjGH1HZ9P7YqR/T0dPFb6G/xkCL3F7pA0Q8?= =?us-ascii?Q?IXLS129K4gfCWAlpSawTUQ05oCvoO4ORVrRaWb5tf+iC+wSq8dFxrHyiBCPe?= =?us-ascii?Q?38gaLJq5UJbjlEK5VeMEWBk+ERc2Yl7CH/6HY/LK+eoOe92jDNsC45MsnVdi?= =?us-ascii?Q?CHcCaO5wg7A/T0h20nuvpJep7EUdY1YMKd77JsaBBNvSQeVGpl5Du51/ULF5?= =?us-ascii?Q?nwS0Jy9HLEMg+UkPNT8EHhwMOmmczwQxbQQMFIGzfTZ5P5li/c8oFgCE4Byf?= =?us-ascii?Q?AOy9tttovLlf+ioVzFUIkToPEPcSJxHD7IFuf8GlraS6mSfI0WYisaKgmfaO?= =?us-ascii?Q?fCtlvSv6DKyL/8u2ocCd6gvcZEIcChJrpFg42m5BMzvaQiYHlQ72ljwHbxNJ?= =?us-ascii?Q?Uzbw4eWvQGXUb449aSXxxDHX52qAdOjIVMRWCXBADqx6IwW6xRI7reHHN43X?= =?us-ascii?Q?jcyYjp1dW6OMR80UenL8RAOs/H+Lu8Nil4Et11Pp0v/XGziqCHFLNSMi/v92?= =?us-ascii?Q?CXZYyZUu7j64nTRzhf/bBhfdxdoa+Ol5iipW4fcbVoOWQYaJPuYrpWJ5jT0K?= =?us-ascii?Q?uAXxBwPaRFvMvIJTa4JTFeW+BD2BYmceFSR8SMFkXI/b62nt67hWmmCUhtSw?= =?us-ascii?Q?S7kd30NPPMXQzB3BkznVpGeC+e2C36qwcQL1sr9xEiwnhm+xsdbEk645N9VN?= =?us-ascii?Q?H0sotJS9Js2B2SlZz+J5C/BzoJqcBUagE0aLml5D6BkEwDVXYs1Rx1hhNCjY?= =?us-ascii?Q?OmuQizB4Kg9husrQuCkvG0G0K4YdX5P0yrDF5P8qmPDfVORJERK+Yv69t0fw?= =?us-ascii?Q?FFQcTKv7iCOh3zS0b2nKRzVghH9ClaIpBwXDOB7SbczTnlXRV2PxkypI3Rfz?= =?us-ascii?Q?N1uXNMDY6+/oZTr7I9lDJKyp2JhRStsqZIM8I61hQjW8yA/bwYKsiZLe2zIw?= =?us-ascii?Q?j6EW8g+Qu0jK3LHcx9QLknfGOTmcWsKHTLIf75ejBuIj1YYGzWYXRWV3i4Bz?= =?us-ascii?Q?+uVCcXZj8RzD89ftmUB4hjbxSpvVO3ztHI4GW9O1oNjLfA+hewRIOa9GtoJd?= =?us-ascii?Q?GNXLhMye/mum3oPHDdT8SaO8rmzkz+AFmgDqPRGNQ0Sjs1IxwpxmOGko3mp6?= =?us-ascii?Q?SE2/s6lsS2TUhLYWRB9KY0tuXf9HahCKw7mAWPpjaQsfunU1818j6HuIvjEe?= =?us-ascii?Q?aCZcrIDuKJje1loDAqfEAHaowMT7ok1Z02iu4bzlqYe9HxwydLewt58X8FA/?= =?us-ascii?Q?SiEnLwM1fO1Ing71JbCjobL3VPVtvN/dLKJUT3rTgzYMOsQ4H49tOj17gcLa?= =?us-ascii?Q?zZVD0Np/X3q8+nTAtprDQuvx5NG5seMj07upTw6EhuiRoB2wJCYKuLylCbxs?= =?us-ascii?Q?EYi9j1/ejkkpBTiSi+P8m39WHaITuuaj67NZWkU+vOHigye0+72Jy6duSjI4?= =?us-ascii?Q?JW9fyuJkNOpwKYgKXZ7UrdpT3N2VbfSnP3+we2LBwA+6meskHFT4uc9XSlIn?= =?us-ascii?Q?2A=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: M4K3uVKJJsSzPacnxfkWC8uY3VoKiVraspOKZ7CKTkUcrwVhIauAHwIgVQCDfi2k0NV2dckhBft9EbuOwgUglC7F98cq4NYqK5s5b95U0K7qeuv3m3rj5S2Gjjpb9tW2UO3AhcI+NK1UVuec2X6yUOHpy/F/cf0HEHaC/mnCQGSAUtqY3Tm9jMwA+kfarnYBRKHtQl6G6zrYuq6eOvs4ACCHWR/lMddqXtDdLS5KDMbFOjKT20UG3DXtwFuj/ktEy86avQT6/U3ovmt8mjkjDPt/gVVR01gUf+YqmDafhUDuw66ZS0bG9gYmDCmTetO6W8u/hw2VAq0OdY9B5FORWgWs2i8/KksIvzCLi1vYcuHmFt707Rb7zRez16+Xy7lPPTuJR+/HzOsw8kVLo6gS1Ux7dIkMLO5QnfAnHfI/WQBrQlEydW0vg7Z5iQeYEe2k9WysRLIfrN/ogVvW2xRFBDU/oqLxTQVoXnYcbJqUrHFbWbOIOrSuejBsgcWkP5lc07yQa3daBMEIfMbt99rr2nhiTd0l/4ERHY9EhEv1dhKqHzcTiAVxHRqi/gFiLp+CA3BXerLl1pmLAaesvn04sMKThAyh6NzAOlpysGieUuY= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: e3c45309-de5a-4b02-b60f-08ddf61e0a12 X-MS-Exchange-CrossTenant-AuthSource: BL4PR10MB8229.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Sep 2025 19:11:43.6178 (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: wR3DLVlxE4qZvz1hdqt+kdOZUdD/q6Lx7Umt4mG/3yxnJEHvk71fNM4W0BmhPI6erXEQdaM+AdEbgS1iJ8qfNsdO64Z8WSdjVBYkx2X8WO4= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR10MB6063 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-17_01,2025-09-17_02,2025-03-28_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 phishscore=0 bulkscore=0 adultscore=0 mlxlogscore=999 spamscore=0 mlxscore=0 suspectscore=0 malwarescore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2508110000 definitions=main-2509170187 X-Authority-Analysis: v=2.4 cv=TqbmhCXh c=1 sm=1 tr=0 ts=68cb07f6 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=bmQnSVsLClFk2KiDA8kA:9 X-Proofpoint-GUID: yF95KaCGtXKqfOFoCGrdEJNSiC8BH54Z X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwOTE2MDIwMiBTYWx0ZWRfX/s2C+nzjXeD+ zvFuTQ/dnsWJH/+VweaZPGLdKszLFRkNXLQ0X3f7oVnK1VOgeRBFvnLvlo/bfYMfYjTXGjNjxte kKpcT6cEVuxNNPSfjptUfLF00Qu+TlQauC9gV9f5ekUmGniZ1p8nMT8qTBYZufCgphFynRsUQnO me6/Pfk7d8uTLBDC/o7GbUN7/vno0mpQbl1ss4l/pODW8DU1SeeorNZJ/gFead8128V4VezljLK QGFbgVblfzRlaTnNdy/khXb1mkl983p1/Otfblzbw5R2jVfFH2ZEtPJNV9fPjAO+MmxrYlpbCJc USKCF9mIDQ1AYV/TIBcL+pXXfeo14yQdgB8FDX1TMcdeznMptg/OyJHXMjUPL9lfuGMIVmv38o/ 9z4P5oX6 X-Proofpoint-ORIG-GUID: yF95KaCGtXKqfOFoCGrdEJNSiC8BH54Z Content-Type: text/plain; charset="utf-8" Add the ability to set up a shared anonymous mapping based on a VMA descriptor rather than a VMA. This is a prerequisite for converting to the char mm driver to use the mmap_prepare hook. Signed-off-by: Lorenzo Stoakes Reviewed-by: Jason Gunthorpe --- include/linux/shmem_fs.h | 3 ++- mm/shmem.c | 41 ++++++++++++++++++++++++++++++++-------- 2 files changed, 35 insertions(+), 9 deletions(-) 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 df02a2e0ebbb..72aa176023de 100644 --- a/mm/shmem.c +++ b/mm/shmem.c @@ -5893,14 +5893,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 @@ -5908,7 +5903,18 @@ 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 + * Returns: 0 on success, or error + */ +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 @@ -5920,6 +5926,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 Thu Oct 2 10:38:49 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 D24D13408FD; Wed, 17 Sep 2025 19:12:34 +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=1758136357; cv=fail; b=ZdzfcxMQJWOGDWhptmMWV23+nBYdU0G3HOaqc3UOLMCGztw37/bJCyqUMyjKNZh+lwYEcupEIyvTQvjhHU4BU6tz/ibsGgdQtCzReV0anJq1Oinkk7pTSmkiqA22RpqgDAoh7KT1a9TMBPxaVGW9/l0VRL8WQaQbLFE2Krxm4lE= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1758136357; c=relaxed/simple; bh=RTVIDb12E3RTOAqXRHZq3nHnQnwjbAZl5pRrBSfBwno=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=iDHGRmatzU4Yvph0rgBIBJ9B5BBWKkI+cMj5qqcx9H3LZJjO5f17HggRgG68N57JG+OX4Da79jbzk1QK9df8fD5YXqlVMDlJhZyPA4a01/jIrnVoKXbb4F5kYqF8nZIplJss8DmB98prqgjPmBVorEKaP+2xiGkWXipeCclVaiA= 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=kCcYTHtz; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=JvHqzdL5; 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="kCcYTHtz"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="JvHqzdL5" 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 58HEIVQG007508; Wed, 17 Sep 2025 19:11:51 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=/35NbNXafzTqTCTdBBLOYGZizsI56qn6v89SyRTgQfA=; b= kCcYTHtzO4gwTRN0tFld28zEsE3ZWMxFMrtlcwMhczF2uyolyrK4GisfENQHG5Lb /G6v04t+yrAJ2+kPeXeqYqidv7jGF2MUKiY8SdgDLARHrj3vp9KIni7okMpQotcB +0zdQ8FGvaXyhYKfyBBV4RZYAnMRAqRVbh2P99EpoHCv4y6F5fOhlAIQWi6JZ0R/ kUiRtL0Dd9vQci2RvgaYPXNYzdrSakk7b0zPWH+cKWJqOj3RtfHNXmKrCRESDvec L3Dy2h0wC4JZBdDYHufOeHQpmIFmYWdOurdRTEl7iL5lWjt/1smfqLMwoFkj0m40 gVtWtlFlUHEqASqkIjrvAw== Received: from phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta03.appoci.oracle.com [138.1.37.129]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 497fx9200q-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 17 Sep 2025 19:11:51 +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 58HHEIej033687; Wed, 17 Sep 2025 19:11:50 GMT Received: from mw6pr02cu001.outbound.protection.outlook.com (mail-westus2azon11012009.outbound.protection.outlook.com [52.101.48.9]) by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 494y2e5fqw-5 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 17 Sep 2025 19:11:50 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=LxtjVQBEkOg1dcgcstBTC5eOYS/wQ8xulH/VWu5CRujSOKaksKfnAxty2pOD76i82/DlrdcDn+kprpJBfiotIhhSZ+5R+9CiOuoYgDzGReEuhsWHWxIQSC173AgXhPKAodljtU7Z5YjcuOTB/UrTPmSLZ+m3H8ANHibdg2SekizvRbEptrZl9D3fAzuRyiWusEdM7+MqlP36zynV82ZPSWIjdZtPpSraH8nhduvtBs3p5Me5L81Hj2goCZA1pxFoPTUc5BrQInt3hnm09V7E0fyPokCOOB3KDPhsV3rXkmQvZlJPeQqfVAt8P+90mWWvtQbvKLwIWhnajfmkn8eUZQ== 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=/35NbNXafzTqTCTdBBLOYGZizsI56qn6v89SyRTgQfA=; b=HCp8+O3Q70Ej/15ZV88jEmzJiXEg82V8G8rXPLN6BH1lQMTTX+q1RZuGRnmrCFHKYoW/sBzWqT/dRIUceWxEoZIpJ9GOq/K7G6T8q06nfrvflqgAKSqjKAOiOKI8KTM4tf99OUe8wV+adv5fBzLB3SaejGxFR6SgTZ0YO8BNE+bXc29K5FeASHeDOX9LS5qWr1rR/gmBCK689WxHpi7LMvv1PUeJWnW3oKATf/sJ5y8dl0kuIMxG48iSC5IcrLwlgzwCT+sIIAO2QLFntGjsiSUXPGqyQMMSjndFyQC2echXFHjoRsI5c25Hc9mfzI5/hEawY8gX0/2wWuCY55EhbA== 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=/35NbNXafzTqTCTdBBLOYGZizsI56qn6v89SyRTgQfA=; b=JvHqzdL5A3S7I1YBfYr1tfalrRom4QoS55b/IrsRKxpbN1NZbI0C/cn65OuREFbvlUxOtdU3p63Rz/G/i7nnVaEfXHrIkfoThnF77X9CPTxGJZh/oVOXxHQev7Cr5Pkqx7xPlezHhB3IwmgcFlq2MM7JAjcOKtgMt/XyGVfVSV4= Received: from BL4PR10MB8229.namprd10.prod.outlook.com (2603:10b6:208:4e6::14) by DM4PR10MB6063.namprd10.prod.outlook.com (2603:10b6:8:b9::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9115.21; Wed, 17 Sep 2025 19:11:45 +0000 Received: from BL4PR10MB8229.namprd10.prod.outlook.com ([fe80::552b:16d2:af:c582]) by BL4PR10MB8229.namprd10.prod.outlook.com ([fe80::552b:16d2:af:c582%3]) with mapi id 15.20.9115.022; Wed, 17 Sep 2025 19:11:45 +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 , iommu@lists.linux.dev, Kevin Tian , Will Deacon , Robin Murphy Subject: [PATCH v4 13/14] mm: update mem char driver to use mmap_prepare Date: Wed, 17 Sep 2025 20:11:15 +0100 Message-ID: <14cdf181c4145a298a2249946b753276bdc11167.1758135681.git.lorenzo.stoakes@oracle.com> X-Mailer: git-send-email 2.51.0 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: LO4P123CA0223.GBRP123.PROD.OUTLOOK.COM (2603:10a6:600:1a6::12) To BL4PR10MB8229.namprd10.prod.outlook.com (2603:10b6:208:4e6::14) 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: BL4PR10MB8229:EE_|DM4PR10MB6063:EE_ X-MS-Office365-Filtering-Correlation-Id: 898774d7-01ca-4c65-bdd2-08ddf61e0b0e X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|1800799024|376014|7416014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?jiE/8mTFDw97FOeKykZHQkdxon4tiKGUJzgcCLYW1++Jeckuk/pwEZVf7Rst?= =?us-ascii?Q?pIZCQ/duRhAMRsDucDK/br1GQgAZeTB6wnYiggAhzf0bKsyqjjs3CyPg2SrC?= =?us-ascii?Q?jRFgHgy92oumkE5hCpSD+/hiGp4pVE+vluYLr4TXyi9rD78ZdR284XUy/CtJ?= =?us-ascii?Q?EhPp1cJwo+dFJMT/XqOkeK0YTfKSh6CZkTAHE2ngHcZnY8980YnJ51vEJSvW?= =?us-ascii?Q?uxoDO/LHFh8BPBJtUgZcBE6xm5+Vs4gOh03WX9iUs1KhXnbYmUtByhtlCyn5?= =?us-ascii?Q?vNu1EfXiI2LQv+COyRuLmSYPwQB1y+p6XXvAqaaNQ9E0NjXdq/Q1Dy1OBzvD?= =?us-ascii?Q?W22aWrQg8xjCrpcXE7TpNsRdUEXvdbWluXM989uJYjkeUHFuAQMEfBfdksoG?= =?us-ascii?Q?0kbIyVV7jQSbWCPpxbkg9t0LFponwlewBKHB7i7Fq1JJVugn5Gg5zO8PBXyO?= =?us-ascii?Q?6e6RVRQmkSeDQiUufQQ5D1FPrxPP3qIIFoXnmc/j7Uu4/A/wrlsDs8tgFR0J?= =?us-ascii?Q?QTktVZYWom+tQFJ6zpjevLm+SMAKWo/ftyAxC8guRvrnbQWLth7eX9v5BLjP?= =?us-ascii?Q?AbWmXUwDCheVFOvwmEd61V6Nz1LRk9ZxVnvZ4+EWuIUdH/A/5+10C/sFsvvn?= =?us-ascii?Q?LjP8nsYiMAxFF+OoHhP5nSvRNGymVVPW6qDNB3JIW/lNiTSG/2sQNK0VsJHQ?= =?us-ascii?Q?HEbb39V+hjzwvls7162Cw2PwGwAr6VUp8qKaMj5l7psqGNTtjAX3NfQbltF9?= =?us-ascii?Q?QAyHimilPCx4rArlMiOCrc6psH2Hg9q/jf9KpGMEXxZt3/gtE8WhjYXt0/cw?= =?us-ascii?Q?tnGHQ5pzsZ/M0lXQ/YpKUuoYGWIOVdNJZ06nFI2Pjvbn0MI0EN5QazF7VxhX?= =?us-ascii?Q?jtv+OaRGEfB0aVjYJqyV/7AXPmJbP2rDF2OphPoLyJcu3qKM80maM7ZKv2ik?= =?us-ascii?Q?6sprstF2yFiwG4APF6GXOxWCOfucuN2cweWPjuAVRG8GG9NKHfYH7CbREXWD?= =?us-ascii?Q?RPYFgeEde53cHD/yqJEwwDcjwF/8hXYVBBEzYspbQiRjXxFUczZUFkPY0cLI?= =?us-ascii?Q?BEUP9p/pj/XQ65nlOW4EVSZGk+Jzw9twsuezwsZ7coq8rEux2PVrEw6ytE4e?= =?us-ascii?Q?vNzibrBSyKWKcyA6Nm15gNsbLVB/ABn41tsQPPAG/e42Z037eTfqMVWd/FoO?= =?us-ascii?Q?sBv5CcBgmaFyI6K9bdcVYVWWevNUmDKLO5lYCpS+GeLCTLDCe6doI/Lw5Ut5?= =?us-ascii?Q?iTuM+xbfgkTpma/I2Reqmn1KMyGzP1jnqmU6MJXXr6tUramIgWvQnqhwzPyk?= =?us-ascii?Q?1sblfhDrfX/CK2NCBmum3fL8lRyb8+92FdzHaAj1YaXfOr65D/EZzyBC+Wg1?= =?us-ascii?Q?3BJuQanFTvh3+U27ZVDODJqk5ZUw7Y/GK7Qcx1n92HbcNBdyHRbr9gufcIUq?= =?us-ascii?Q?Bakdlbpnr1M=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BL4PR10MB8229.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(7416014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?b9eE+ydtitg5DD87b06XfKgNhSuJq2qeUs6Yi2OiZTovGExFvdpJ53AqMPQv?= =?us-ascii?Q?KA2hJy8U8I29EN6jgsCrMLqHJ6yu5jQrXmD964chhBoIs55OY+THNC7R5boA?= =?us-ascii?Q?hoqI1AeR1kH0cF/EznimrWKB3bdmVb5YEVFbluzPVoPVY36N+TtQ2Tdd7FTx?= =?us-ascii?Q?NVs1A+ybhJtW2Ij5yX5+1EnupRiN49tB54p5A3jV2rFgidMqx8gEqKEfoKYx?= =?us-ascii?Q?CtbGOhlWC7f2f0qGMsdY+qkB1Gp1CY55By/i9wMiHQUdxraAXsmhbW+U501V?= =?us-ascii?Q?gBl68aMWgmLqVCuypn+tr8Wo3A2LD5SP1Y0T73k+JoiWXx8OKGBYHZSjeWw2?= =?us-ascii?Q?PUZ7HNnD01k9Fwa+dM/nm60fIcsTFzmRyFBaUpw6+Gf53/qeo0swo2fy+6Pi?= =?us-ascii?Q?MyNGsa4kJjibpodXp/ajAZGPWmroZ93YYyYdqoo9qUBSSWtyIgTxmuyy8AYi?= =?us-ascii?Q?DZSwwM0Y+2r3HN+02y3fYZ7rTnP3Nl71CeSivydewU+dSgZkq8fbMQR39E41?= =?us-ascii?Q?DfgongAK073C6YGJx3hCRAMPvKwI071NnPeVDqFZHH2xT0fguG1jXAJkR1Ay?= =?us-ascii?Q?C807iQGZVwcnOXn2ZPWqz36ckJbPUv4VyXetWa0fCsAL60HVQMl+NT30EH+O?= =?us-ascii?Q?hVoNPVoVwH3TOlHi2ol0R5FqdiYBZrFzbWK+F61mox31nAVBWH5hbxvj9Gro?= =?us-ascii?Q?z1cNdiOGsnjSvRGYdDjoER7zS5/vyzq4QhiFRCHTxuiG8z04A5vczijLhgML?= =?us-ascii?Q?7ifp61w5F1hEiQqPJ+EMOQ568tylxeJtoPwSrMAuHCHXi5CRgN3g014gPoXH?= =?us-ascii?Q?A6WlRUh+jPMKyNT3cKfLRCJXAUnbtTzpnVqNmA/nXKfzDfqFjo9eAF7+t7SU?= =?us-ascii?Q?lLlrqQaTD+8YbvWbbFECRHvzeBTHXBclG9j3Qd2n52DeR97UsNw2ni8SyH7f?= =?us-ascii?Q?UzQZyzaLoGsQD9BeGNp1jliLvFbiMfNfepsZxYq0Y2/KbQQ3fneJ8AbNS4aS?= =?us-ascii?Q?i5fH4qc2n8HqIKjsTi4oPUuHecENWdioGeBunZTsq7KmiDxTuyCv9Ab3GJgV?= =?us-ascii?Q?cOPYckhfIB5jDUjXMLCUimog1hNpOkVB+hCTj9pPDRt8+yXPlKIhJFm1Yen1?= =?us-ascii?Q?pWkkNVAglUVrYHkknwdWA6kI4LLBiCx1Fm63rPUX1bE1k3cjO8GoqV1XKHTZ?= =?us-ascii?Q?Is0OQO2MIeU24VhBmIoveiKXzn+qszduO/tPdiGoe5kpCdQDzbejevez0Kw8?= =?us-ascii?Q?8nvIMyr14vlQwyuIcRsFHHwSabgjbRzVqk3TsIvLb/YxN3lyPUCZ6lludTSz?= =?us-ascii?Q?+rYy/a789n9Gr0aJGVLmb72vdGuVgZNVoMVaW1/y4/Rc6bH3f4gngQyidAxf?= =?us-ascii?Q?EpLo3i2Dd4lfsPnJLzba8pDWRsdNAoClNLWWCr7LTvLyYVZafqV/UtkdhigQ?= =?us-ascii?Q?pPfTN68wWaw6ZydMeA8x+AoXWWuARXZSpPp/m6ZR7VDDKWz48UXMBwaT9R2l?= =?us-ascii?Q?09abQOgEZix8rQsGKfvz+WWAMLv62iSmsky+bCm3xBPmFjwqqmUz4DoDs+WU?= =?us-ascii?Q?pCAvvVHFtP8Mb72SPIKz2UhlFsvr5MKmz/DYXwoVpcrHN4mpFOtykk4oHvt8?= =?us-ascii?Q?qw=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: 13cp3WG1reE0QSHzg3kDDvdulAH3xaIR29ip9De/pwyOFcmohYgMuj0Q6FLufo/b4FJJNo1YrNRX+eMN1uduv16RPp2gEymDNBTlVtfaoiUXLF1QvGdZ5wbsAUjmdAUBeLmG4A0Mv5F5j0wM7PXQSWBdmFiufiu1sC95e6cepEqOftZYayIEKnzj3mPPw3M2WZ1bhZZe6nYSZg1clBuo+i4Idz3INh/OoVmhLC63c9brCQ5GvwALfFxDWyzl8bw7aBELKaoQE3p0qWS7NPT/0O8NlWZ/Il9Y708BGHPatzHoRZfS6dbLHhQHSdzI1ay78yw3RED6jVXRJWdRLeeXkRm8IoWurHsUpONDke91JhevRSjh0kJ8V+d3MQMGQE7MHAKXy0M6PXO+U8fU5V67gxUSIBnCqEZqWq4DD7jLKduYQY3Ta5UePl17Ex6/UNjkwF3DtvP0KrGN6EBzg7NRRr/owtPi0pC7QzOu72qtjxh9lcqw5nY+gS0ZiX1LD8KemVH1AHTgesl652XaBjPIKhzYl3djpeVR2qhqSEJ/EKajgGbNDRXGfCrwDhz4p6jTzwRFUs1lnP40K04BWjwt76BTbJem+YpWB6jnfpczqiM= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 898774d7-01ca-4c65-bdd2-08ddf61e0b0e X-MS-Exchange-CrossTenant-AuthSource: BL4PR10MB8229.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Sep 2025 19:11:45.2071 (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: 2JAtkvv7bKRfCr47OLX50OxEsWr1zakpwE1IY6ooiLlSohzhZkyNFFLLl6MPLCxoGz/ibW0IpaRMMMo1r7mOunlYD3zz6sCe74DVGz+Mjk4= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR10MB6063 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-17_01,2025-09-17_02,2025-03-28_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 phishscore=0 bulkscore=0 adultscore=0 mlxlogscore=999 spamscore=0 mlxscore=0 suspectscore=0 malwarescore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2508110000 definitions=main-2509170187 X-Proofpoint-ORIG-GUID: ntpcZGVnzBXfK1yRjO3xkGmtgtEPMBTp X-Proofpoint-GUID: ntpcZGVnzBXfK1yRjO3xkGmtgtEPMBTp X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwOTE2MDIwMiBTYWx0ZWRfXz87W9LQidiD9 BE8MB6srEEwBVtt5T5y3t1x6xRuhwHWznGweRBO0Dyj/IWqgJbj1glO7JWnPjzYyWChH57PK4jT 658lcer3yhlc51STho3DyM7UwUKnFKLz3ZAUmXiyIis3K02jrsPauSqIJlgsNPkIOE1BnyWPSwr FmaZjW7rARuiCILUZQOrIz+9sq9CkfBsCNo0cel4QP7ZLmOpxSYAYXedgT5D5JO/LB3VtE8Ne90 Btuf2L8En5uUXGPhntvx0vzFNXTwouuVM+xeylU6EAObm9S5UG133ghVtmHASEbbtg8vVs4t4x2 1bM4xTc6IrzNO81WxnSXAfhvwFqmzzfePVB0PJGxwBHCDYIRVYqnZDP5DaO7+frplCBJ6iRqreu NDj6hrqv X-Authority-Analysis: v=2.4 cv=N/QpF39B c=1 sm=1 tr=0 ts=68cb07f7 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=Ikd4Dj_1AAAA:8 a=x0R6ikhiTiIxgpotQrQA:9 Content-Type: text/plain; charset="utf-8" Update the mem char driver (backing /dev/mem and /dev/zero) to use f_op->mmap_prepare hook rather than the deprecated f_op->mmap. 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), utilise the success hook to do so. We utilise the newly introduced shmem_zero_setup_desc() to allow for the shared mapping case via an f_op->mmap_prepare() hook. We also use the desc->action_error_hook to filter the remap error to -EAGAIN to keep behaviour consistent. Signed-off-by: Lorenzo Stoakes Reviewed-by: Jason Gunthorpe --- drivers/char/mem.c | 84 +++++++++++++++++++++++++++------------------- 1 file changed, 50 insertions(+), 34 deletions(-) diff --git a/drivers/char/mem.c b/drivers/char/mem.c index 34b815901b20..b67feb74b5da 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,49 @@ 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_filter_error(int err) { - size_t size =3D vma->vm_end - vma->vm_start; - phys_addr_t offset =3D (phys_addr_t)vma->vm_pgoff << PAGE_SHIFT; + return -EAGAIN; +} + +static int mmap_mem_prepare(struct vm_area_desc *desc) +{ + struct file *file =3D desc->file; + const size_t size =3D vma_desc_size(desc); + const 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(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); + desc->page_prot =3D phys_mem_access_prot(file, desc->pgoff, + size, + desc->page_prot); =20 - vma->vm_ops =3D &mmap_mem_ops; + desc->vm_ops =3D &mmap_mem_ops; + + /* Remap-pfn-range will mark the range VM_IO. */ + mmap_action_remap_full(desc, desc->pgoff); + /* We filter remap errors to -EAGAIN. */ + desc->action.error_hook =3D mmap_filter_error; =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; - } return 0; } =20 @@ -501,14 +504,26 @@ 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_zero_private_success(const struct vm_area_struct *vma) +{ + /* + * This is a highly unique situation where we mark a MAP_PRIVATE mapping + * of /dev/zero anonymous, despite it not being. + */ + vma_set_anonymous((struct vm_area_struct *)vma); + + return 0; +} + +static int mmap_zero_prepare(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); + + desc->action.success_hook =3D mmap_zero_private_success; return 0; } =20 @@ -526,10 +541,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_zero_prepare() 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 +648,7 @@ 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, .open =3D open_mem, #ifndef CONFIG_MMU .get_unmapped_area =3D get_unmapped_area_mem, @@ -668,7 +684,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_zero_prepare, .get_unmapped_area =3D get_unmapped_area_zero, #ifndef CONFIG_MMU .mmap_capabilities =3D zero_mmap_capabilities, --=20 2.51.0 From nobody Thu Oct 2 10:38:49 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 D125933BB39; Wed, 17 Sep 2025 19:12:32 +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=1758136354; cv=fail; b=HKyf4vOIJBJ+SWkri2JT9j7hKvBbC0fvnvYBksWcUkhi7XkZH6WP+I+BOP8Oy5uA1xMBClmPt3zWGpHoH3TODsByQO9r13RBslQViaaKf0p13Ka1j4zpHOUN5jiTnVMFlYfjf9iuduRqxvopeNv+H97JAz4TEWvpmSSLfRnSOgg= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1758136354; c=relaxed/simple; bh=dQMk2IrFsexM9VvZJUn1DUE8iEbETD12ImcifO+KmfE=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=BZ+SM7/PBRX8FHbttpBh46WwNjDbR9OhG2l6DazGLwG/sTS65xVW4ZwnfN15H9GF3V+CSq5Qc8dDETtcUrYfXpp3Bacx9guzv44zJsBKz2hnsihjZb92bf4OsbKp/esgrBwdnwLmFTqBoGJyc1rJ9H6cE14pES90HXByoxhRi/o= 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=rrOmB/ZW; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=wuS+5FlT; 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="rrOmB/ZW"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="wuS+5FlT" 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 58HEISbb001843; Wed, 17 Sep 2025 19:11:53 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=NllZZRB8yPovYXPAo2Hk2Gjm4hq0NgzvzjYEIa1h3fY=; b= rrOmB/ZWWEBKNUJc8GvIFzYk/N+ujtwTUkzyuYgbo5KX0lwwn+VBJ+pSsrNT72tZ cXTOww0x62m+W4zaPEVNMgNeA5kdwQKZ4q5LY00t9rbKyJSReivE2e2uiP+mU9Ks 0gMTnnzwS2y61Cb7JI0Ia9sHQQ/MxPOirAxvzdhcf0yZMb/kbYgKbkeqoyKoFvzm QmsyightOURfCuWllbTmb40k3QP+S0Kq99ncuynM/AenqJHnneNP/ouY0hfLigbj h+kZgdJiGJbk82LQMa+EEc1CxfwYxzQPuG0ajC03rdPIHtxAByKypJtzUkfEn9EH r4KyZO52nePZUMuORrU/WQ== Received: from phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta03.appoci.oracle.com [138.1.37.129]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 497fxd2082-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 17 Sep 2025 19:11:53 +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 58HHEIel033687; Wed, 17 Sep 2025 19:11:52 GMT Received: from mw6pr02cu001.outbound.protection.outlook.com (mail-westus2azon11012009.outbound.protection.outlook.com [52.101.48.9]) by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 494y2e5fqw-6 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 17 Sep 2025 19:11:51 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=VUpGGsW8cTEDjNfvlHnh3NJ3rawNztqkaAJLfkDvtZoHW2REFXJybmO7rKBNngb8h5cOpcbnPCyjl63yEH1nqWf7WfIjnRWUQz4qSlpzObwf4GiPjhS3IGWEeQZQwhp4/kDGk6fkjJHQQ93cMpJ+f4NZJBwYAr71dLunPhacL1GGIRXNUV4Y8h06+khf7nfasKymo8+5yALtuIEbLUgwAshnQGVNGrLjfACHgqbyLVqvSidYa3ZnJmVFYHUcCDecmXWdip3xKaWW5Gf+2XFS//EgcwzkCTxEkARekI/x+P1NIZU7vyVjJdCsZ/Hr49R/wTr022NskqXH39SoOY+/jA== 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=NllZZRB8yPovYXPAo2Hk2Gjm4hq0NgzvzjYEIa1h3fY=; b=Ft00nP+hmLsVEEJOOxteYLsVkQD2gGKDNMfrhZLlRyASsfgetdBmnoVUgQV2BiMQNmMOc8UJsxQjep8Nu0LDHMGiGhU+3AkigTc1rQCC6hYAQtfxK3QpsSAn3QdL8wIL0BaDlCEGv5qLvW/8TVbJp8Qu+2GtDPw0GEeNwG+uOKv2DD2rg1ZkOg3zoFJonTxkOw/ZO5otyqDrM7b/J5dJtU/+ajNuQ+6SBN3A3qf/6SDBQC6TPXc9lB6htgTsRZ0+xbqYBVA6tfnHcrD78/MN+aVCaOoKwv0OBM+BOk8yk1apL6xPZLdrcMeQjyp5DPMwgLv9QXJ/a32Cu5d1K3RlzA== 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=NllZZRB8yPovYXPAo2Hk2Gjm4hq0NgzvzjYEIa1h3fY=; b=wuS+5FlTq59P/a7RmbG1CIIP+CGFS0vxwFreLsb1y+53kfdCuMcjJzJecPJR0Oc4UiwBrvC1Bs+nKWbPcCGuv2RHCZuJgI6/YIuF9Q3OXdxODSK0HjFNXrCZ9l4O8fny7XoTXK4JB80Pj50nZuuRg8qvZtcec1/pDwnaNEVLjQ4= Received: from BL4PR10MB8229.namprd10.prod.outlook.com (2603:10b6:208:4e6::14) by DM4PR10MB6063.namprd10.prod.outlook.com (2603:10b6:8:b9::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9115.21; Wed, 17 Sep 2025 19:11:47 +0000 Received: from BL4PR10MB8229.namprd10.prod.outlook.com ([fe80::552b:16d2:af:c582]) by BL4PR10MB8229.namprd10.prod.outlook.com ([fe80::552b:16d2:af:c582%3]) with mapi id 15.20.9115.022; Wed, 17 Sep 2025 19: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 , iommu@lists.linux.dev, Kevin Tian , Will Deacon , Robin Murphy Subject: [PATCH v4 14/14] mm: update resctl to use mmap_prepare Date: Wed, 17 Sep 2025 20:11:16 +0100 Message-ID: X-Mailer: git-send-email 2.51.0 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: LO2P265CA0178.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:a::22) To BL4PR10MB8229.namprd10.prod.outlook.com (2603:10b6:208:4e6::14) 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: BL4PR10MB8229:EE_|DM4PR10MB6063:EE_ X-MS-Office365-Filtering-Correlation-Id: 0911ee77-428d-411f-b005-08ddf61e0c08 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|1800799024|376014|7416014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?f7ZP1KAoZEA+e2bVvAWE9whSZOH64PqNar5DdIa01Bon8T/VVa4yWMseq+MW?= =?us-ascii?Q?U/XyVAIbayJsiJmcWrQw2fqeY7HU8TnlgA03CRyE1oB80AvCgHKIHbZy5Tfb?= =?us-ascii?Q?351oCa8fBWKMLj88PMnzf4lsRBunRR8I5zeLvz04edfG34vzf/jzSO+n+lUb?= =?us-ascii?Q?86lpK5ldwgO4MwmejLT7JVTDieUys+p4U6K6HVQro0ikqm7GDNR6RX5yCPUV?= =?us-ascii?Q?HZ4XB1gkXCrVYe5NSwsILtx6U3ltrKaiT/StpqQwVssB3L8tQdHgOHGDWUj/?= =?us-ascii?Q?oRLQ9FeEHzAqJe5iRbXgN1V8Dx/toKT3nDMjix/077Iy3nl7B0/u1P6BhVPx?= =?us-ascii?Q?tYZR0DWXF39am1Ok6slKR0rGjm8DnucTqAv6dmGEb/gdlUUr6ZV/z32WSrig?= =?us-ascii?Q?fLPa6+9jNfW00o7ltxY3gSZ6Pz2WP2Qw+37sHYGsKQYdT1r4lKpsEfGMBp0L?= =?us-ascii?Q?sG0stoEbVnhHNuzGk1vJ9hx/UkWiSv13LeVc8twUpuZyyefKqeHBlxilVyAc?= =?us-ascii?Q?XhaICymvTiWEVvbSZKuVtoUAIGU13cXUIp6E9500B8mbHTgjmIGXySV7lppE?= =?us-ascii?Q?5gH+MSUPZlGzatdy9UGrhEXaJNVlSm2/jJxDUIkOYx7ukmWEHmsE4mTg7tyW?= =?us-ascii?Q?ZsRa2/b8mlP9f4NQFYDzdsMq5n03sIhBkltBSzyjCs3s4zHQpX0jsq2fl4Yl?= =?us-ascii?Q?p97xWkOZYmNORE3GSeoGyrjisIsdLqs1r/RNOJESfRs2r8stlom+0QReIOs6?= =?us-ascii?Q?aO666s/XS0T35NIX1EMWG6GGDgNexIW70OpdTk8doZOeptQpVX1Z273s2N4K?= =?us-ascii?Q?/+RNbAulUaXIkqNU0I2fZT4rKXf6Z2xuPrPG4LqYBMaXzeqqY6zSiuOHbNAB?= =?us-ascii?Q?Uq1pGl/djNgJX3epMkFG3LbQ7BIM8XbeYYzOvNigHcn87meP2wQNgGS4rV0S?= =?us-ascii?Q?TwcUROMSZXpXT7GmriEIemoXW4oS2gy18FmjJUe2lBfvplvf9ISafNJ7O7Cx?= =?us-ascii?Q?AtJGLh9XT9uaMdw8TqQJE7FeT9IRk7ttVnutAjmQeJs6jhoQ7X4bAiXzgjNf?= =?us-ascii?Q?du/0OBge+9tgGTmPscgNYXHMWazTqhOx9+UFTbu7Ox0qboCTR8lC8MaaSkfG?= =?us-ascii?Q?hCTXIWXrYR05ui/h4jtObZoMnQjRJ2/GrLdFBL9Pxxyum3fGbRlgb9HCkeoH?= =?us-ascii?Q?BmQJFq2fSLgY1BbgN7HZZDJbpqrj9x7rz4R2o2J+OLL9YH8ofaAuBxksMtMQ?= =?us-ascii?Q?4MXFNexLGpOLyXFH+PJhQqgHMHyxUV7uBx5ZL72dIRYbhT+RHrpQR+O4yIWp?= =?us-ascii?Q?TUC7WX14hPdb5f9Wv9us0MFLNvATLrCgom8lM487VOn2CC3lVbxkeX1sw0hC?= =?us-ascii?Q?Y7bzaii+amj/g/Xocfqo4+9ouloonBrT6F0lHj6FRIITc75gK2EE7VAzKtCy?= =?us-ascii?Q?lvVhGi0NB18=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BL4PR10MB8229.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(7416014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?g9jYWgukr7XltkJncRHiMq9JNJ427kEGMYhIAznaagnjhafsUQKyKqXVuCBW?= =?us-ascii?Q?3uG5soltIPRAWmGFBXGUybUhDeeNSuGnJeBtsBomAEkoWxkjo849QZDP6UL/?= =?us-ascii?Q?7rXPssCrLw8RjDOU6tlWuVZuetzFrmUWiEOq+7DLC1sB/qxaUdUXhhSX3M/3?= =?us-ascii?Q?OIJH+4y9Lf/jjfBvl2OXIaOzUW0hOpQ/zi0l+VrwdAcAKt+kZcTcP5vdYNng?= =?us-ascii?Q?QcyS/wsuds1puPeBk1Gxj+g9KoWBWDZ+whckrumtamj82N+OwZ84EjJPjhMP?= =?us-ascii?Q?66eOdhe7OmY/vib8lzMOioh7/HmbidfTmNGZdyAJBuG8HwO6UAM8/not/Zfd?= =?us-ascii?Q?8lrGN0jnIUorfbJIzzJlEsBwy7lUBoK51WDJob//RUf1n3M+w/pjxtc7jaxG?= =?us-ascii?Q?59ZrEhu4G33VFfc7pBZRUrgGDhopfgvqYDj8fXazatslxI0cCdjpPxSKod/Y?= =?us-ascii?Q?i0LF0YeghsaZFrDJCQXV/Gf4D14PryzCtJDjasrKQynv2cecYKUPOLVh6vsf?= =?us-ascii?Q?N3xUgLFI5pJ0pUG9sLQq56GCfBzcIzA+VH1WlMUngv3IHBlTv0YnGmknuinv?= =?us-ascii?Q?/mXvAIPAWDfBhDXPs639Dk7IIdYBOPuGTCVZNtoo4ukplk3Q3KsRv4Ds9rju?= =?us-ascii?Q?NuH6cPcAJr9KJldWoVote4rGvX9V6f8FNHldIH/H8jssctdkt1VVbNcXTsl8?= =?us-ascii?Q?/3Lw+TfpEdTfpKGJLd8JNGnZARW3oHG613UvW5CuDXtzZljp2xwRqgeNWmjk?= =?us-ascii?Q?OjwToD5P2AQNXpnutpUGUvPN5mMqTWtUoicQc8luhdVQtKesZQyz3u2aYGLF?= =?us-ascii?Q?vkko2GF3XNKHHBzvyhnyZMPHmAA+bGAYYkOcW8o0689bcTgpbT2x103P+xkJ?= =?us-ascii?Q?We/V7swqy86Q6ZZa1wdupcVnPHB405Qg/psPMj0ybAd9NZAl+XIe2vVb16z5?= =?us-ascii?Q?LZ5Pok37UzmKV+FxRsJHcAHMkUJY6SlHtwwgJcc7IM5Cl8QIDB4fJF/BZ0bY?= =?us-ascii?Q?k1l3GNwAlhU+T1RQj+OEev28DCMYtFFm55XY63GkN7Pnyti4Spr94Ro/PF1J?= =?us-ascii?Q?XWeXE5Ij1FszXDytUOJOe73Fxprq7ZCz3r+bSgkAWFVw/68XKxrSQSw29q24?= =?us-ascii?Q?JcGSK+sgyPYGOdsKflBhB60V4kFpPTBk4zL53IViwYpOw0Ab9+iuvmvF/8cw?= =?us-ascii?Q?InsrifIwpURayJpjbYm+1Y0yhNPV+rljFvciE446kz7STbmbkwUv5XoN4r2i?= =?us-ascii?Q?Dv9EPlQ8E97+9SY8nY5vpl1kJAOgH3CfutWw6CiY5OTZXMC702qJxvACdfR0?= =?us-ascii?Q?Htz0XjuiMA3duhwmwGYhuBE0/hV0Ekrynveeyu2LL4mHlt0gtgIBmshRN3Wd?= =?us-ascii?Q?PLnRlD48tJ4VNR6OzM5Rmy+vYzA8fEYWok1IDudARHpuCAZAo6ww5/4ZQy3t?= =?us-ascii?Q?wZF3+URT6KbTE41cJtIavvP4NFlNRAI63UHNV5pOH/MHHgvwNGfetQE3FO1h?= =?us-ascii?Q?Ivhu1cyNiPJL7fS90VNlyYUaZPEuxq2J9HlClHUUNKs7cMb2hogb762n5CJk?= =?us-ascii?Q?xTkC7OAI0PPoNJzQ3lwfAsR1iQw3eMQTyJiQ/O/zD6Whd2JFdF59LkT1CIFQ?= =?us-ascii?Q?jw=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: CXCuaX2lhVAB03vqAkFeijd0jD6vo6CwkmXbedL03c1lSKrrnPl4udj6GYcqiiMLalNT7pjNbgMQhDvIa7GtsODrIFTUfoCV38yEibRYh6cdgkrb3DGXOCa7g6htIBX1mO15sX36jOk7LdJKavI9nFrxnmuSBqUGEIK2I2HKtDP/XBJGvBDPan5u29twnImWnHduq0eNon5pTp7BVgmUhx2d7wHH0ng8u940hjbIJROgePO7+y1T2GZcRY76XyJTY9CGXpTUAu8uKBvfqaAqf5vHrnSyKiZyUGs5tgKKzl843bgg/7N1y7c/EwwaixY3OsdaInCDaY3R6rtzMRGa/NV5eljz3BqJzMAgGSVCzAvStV4zUKo1xtCWO7kMCbW7bhb75ZQI4A7nn+bT9mKUAyfpPAMkPYMN5T7aEi+TcV+1mfCqSx+iS07QCjRtvJFBBGq4L7hauacmm4xTWYt+wWuzEWZBjjUDa4sD6jwvFwXbEhMEMbQIqoYZWwCotAMjNU3q9iNFsuQeZrFEwD+e5FN/IXfSFDXBYHxo3sCnx0dx+BST+Edwc3tsCSD6tmCFxPR0WLabv/bDCr5oI9QT42l7uk+of9DWtf/fkakLUZI= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 0911ee77-428d-411f-b005-08ddf61e0c08 X-MS-Exchange-CrossTenant-AuthSource: BL4PR10MB8229.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Sep 2025 19:11:46.8295 (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: 1Ox6ZW5qWcAKqpciK2RMtz5bTsC0q4VN3TcPbWKKqJOun4dOs7CHpnK4lPpgN0Ht/0+8GUahPuubK1kHs2Qvssa7v5I4emSEULNVLrco8f0= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR10MB6063 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-17_01,2025-09-17_02,2025-03-28_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 phishscore=0 bulkscore=0 adultscore=0 mlxlogscore=999 spamscore=0 mlxscore=0 suspectscore=0 malwarescore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2508110000 definitions=main-2509170187 X-Proofpoint-GUID: 18QcOGpbamh04A70nYS_NnOLfz64PkjT X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwOTE2MDIwMiBTYWx0ZWRfXzZ3JM4n+tqbG k77sY5rl+sGTOhmwV6zXLUnmhs9QKJ2hMo4SsgrslLYNIWPGQJIhDCHoXkLoVQPMI5moJEFfVEo PaCa2bnN+WtZcC54HRw4jowLjonVV9T7bSoWpAZI4yWyMxQXutLAetRQM6VTPJPIhrh7ZzjiO4F YME6uDyO6CeCg09AfxCT+zKEzYHYBNzIxMFR4K8gDaTvyhq3ZXvL4iFxcVKIsrhP++ch45OcWBy p8snmNoTMWIe/0wZ4RDa5yl1yP8txC1aLFOGDlhUnElUpcG8oGyNp+FVzzOY4NO687nAm2tbE3J T64QBtGYCeCrq0p+tZ1lraZ6AuLEqL0Amn6P6DVgbH4oUPDHrFjnPs+Qgu6JEpr3jvMr7dNBaJu FoqqlzZ/ X-Authority-Analysis: v=2.4 cv=cerSrmDM c=1 sm=1 tr=0 ts=68cb07f9 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=QyXUC8HyAAAA:8 a=Ikd4Dj_1AAAA:8 a=XorjO2LDAUPeUTK5CBgA:9 X-Proofpoint-ORIG-GUID: 18QcOGpbamh04A70nYS_NnOLfz64PkjT Content-Type: text/plain; charset="utf-8" Make use of the ability to specify a remap action within mmap_prepare to update the resctl pseudo-lock to use mmap_prepare in favour of the deprecated mmap hook. Signed-off-by: Lorenzo Stoakes Acked-by: Reinette Chatre Reviewed-by: Jason Gunthorpe --- fs/resctrl/pseudo_lock.c | 20 +++++++++----------- 1 file changed, 9 insertions(+), 11 deletions(-) diff --git a/fs/resctrl/pseudo_lock.c b/fs/resctrl/pseudo_lock.c index 87bbc2605de1..0bfc13c5b96d 100644 --- a/fs/resctrl/pseudo_lock.c +++ b/fs/resctrl/pseudo_lock.c @@ -995,10 +995,11 @@ static const struct vm_operations_struct pseudo_mmap_= ops =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_prepare(struct vm_area_desc *desc) { - unsigned long vsize =3D vma->vm_end - vma->vm_start; - unsigned long off =3D vma->vm_pgoff << PAGE_SHIFT; + unsigned long off =3D desc->pgoff << PAGE_SHIFT; + unsigned long vsize =3D vma_desc_size(desc); + struct file *filp =3D desc->file; struct pseudo_lock_region *plr; struct rdtgroup *rdtgrp; unsigned long physical; @@ -1043,7 +1044,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; } @@ -1055,12 +1056,9 @@ static int pseudo_lock_dev_mmap(struct file *filp, s= truct vm_area_struct *vma) =20 memset(plr->kmem + off, 0, vsize); =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; + desc->vm_ops =3D &pseudo_mmap_ops; + mmap_action_remap_full(desc, physical + desc->pgoff); + mutex_unlock(&rdtgroup_mutex); return 0; } @@ -1071,7 +1069,7 @@ 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, }; =20 int rdt_pseudo_lock_init(void) --=20 2.51.0