From nobody Wed Dec 17 10:46:22 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 AA7C4197A99 for ; Wed, 10 Jul 2024 19:23:46 +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=1720639428; cv=fail; b=hXkf0jTy5OdUd9DFzBmFBySmx0Au1feTqmxS03hdzCkhWbai8Gilrwv2hDrT/5heAz8c9V9ayeK0H3nT0K2fk0jNbP7WSTJRSvikPWlMyLJwbF6rTKoF7/PptQ3efevEpC0P1SGDjdG2QiahxNFNPH7BlnyGrQjhNTAxOI6Ez/M= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1720639428; c=relaxed/simple; bh=ZPESTzeh8XvfaDK583IP69YPpytuZWpRLgai7JM9aKc=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=ArmiC87AToIGP3XKHkdIVsA6+Y2sX/ugIuR5WWV2SQN6NkEo2OnKx8fHC92e4jcetSceXv7kqqZzOjRj90/HdWuR1TP0F0DXK3IcN+xSVFfbz9TMJ3isF2v0Y5TSm7s+5xGjVvhhOAFRUflkuM40Ry+7hnXxkPw/P1KkQZOH6Mk= 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=AisKz+wq; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=Vvf6Djwf; 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="AisKz+wq"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="Vvf6Djwf" Received: from pps.filterd (m0246629.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 46AFg0oQ013740; Wed, 10 Jul 2024 19:23:30 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h= from:to:cc:subject:date:message-id:in-reply-to:references :content-transfer-encoding:content-type:mime-version; s= corp-2023-11-20; bh=vBrw4cpyDlw0oCxrS1NpsHrvh6il04b/OpjjP2KEzV4=; b= AisKz+wq9Ng64Y2javiEQDQz2wpmTS6WjtK/hTSmmKe1OsM1xvm3BkqnxtwdvzBy glMDJR4bZ/LC3PqAaHk0fCHHKEgJkFBgfbrLWPfKLnsf14xk4wLHlJU1MeAcwH3H B+/u/iYfSy33tRF1HfKpVO7BypMoD8OiI5tC1xF1ZQTrdlwX+bwdST0VOwZmKZuM XlpJu/QV0np1ND0QYyUilQQMeV/Io0JOAO0gyE2z9hC34iInt1DEwrRQHsiZngPh D+bREp9C1JWTuae9UvQdUsBCeF03+rlYT5gO8Kxjxye8V26rFN103RqDmCqKAeyE 2NSfXLzLgFDyGvurEDEXrA== Received: from phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta02.appoci.oracle.com [147.154.114.232]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 406wt8fy0b-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 10 Jul 2024 19:23:30 +0000 (GMT) Received: from pps.filterd (phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (8.17.1.19/8.17.1.19) with ESMTP id 46AIihM8033699; Wed, 10 Jul 2024 19:23:29 GMT Received: from nam12-mw2-obe.outbound.protection.outlook.com (mail-mw2nam12lp2042.outbound.protection.outlook.com [104.47.66.42]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 409vv1948k-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 10 Jul 2024 19:23:29 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=XUqw7ahr7P9MgzcaXRpmPVSR9GTHTbR/mST/88ziAko1T8BqYqB+yrzM/nnnhfBb21C5R5vpfj7eOsIa4IpruIdaDOVyIVotqXmnYE4cWBjrFlKW87wuteUHuxeH/9zpAyKNwyrzS9wTUFitLCTcz77KJCln39z63+FgoWnAwYj/a0dK89gIyDPIXk1A/9rM+9pdbbE9SElC4WDY+2KgmNx+LGF/1aV+6upAsqthdap4eM0nETBplfQ7wX7dW8DhUc4dXAl2L/f+/MNkr48mQqIqUeYYyXMPSsZVfSmI6Lscz2XGMfXM4EpcBca+LolRtjZH+ZLTE9gT3wKPgXBDSg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; 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=vBrw4cpyDlw0oCxrS1NpsHrvh6il04b/OpjjP2KEzV4=; b=K/muuysjbYIYkVDFiqb44OWFVVN9dAlShBHoOZtsl8QnmUQeYqdB+H5sJxG7RLdJft6dgOaKZZbRQPB6sepjchh4G6lUIBcyatcVGJqyfaoHp0a8Y4z+FsNUYA26zXY2fAQJi/nXQa/IPTkrTxy5VKTgt4IJGbmXg1iK3N2OJAQfx66wTw5yHXKAZePYHNF+zCYKocsk3Fbfh7NOQkoEyLke/GOfBJtf8Z7b4s7D7ysW8PrIVG65mdaKoC0FjB91cspgE7lgfL9mTEErQarAtVE5FIhwJOHPd9IDcu22+FTDV0j0ZodpH+Jk3XN8HW/IxlJ+8APnhM/dt5yUl4AKYw== 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=vBrw4cpyDlw0oCxrS1NpsHrvh6il04b/OpjjP2KEzV4=; b=Vvf6DjwfAliZDYc9m7aL1ZLHKlFGeQwwXXTIHtd+GJ/a0sPtm4FI3wNAinN4+wY5hARulj9q4cx0ek+nyqD63C9YwuDa8ZZ7q5ip/L19szMtQ9zonhjb+pp3aLk7YhfptLlQtdweqGQKck+8eBg19L7qqXgY4U8ZxJbWITt7G94= Received: from DS0PR10MB7933.namprd10.prod.outlook.com (2603:10b6:8:1b8::15) by DS0PR10MB7295.namprd10.prod.outlook.com (2603:10b6:8:f7::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7741.36; Wed, 10 Jul 2024 19:23:00 +0000 Received: from DS0PR10MB7933.namprd10.prod.outlook.com ([fe80::2561:85b0:ae8f:9490]) by DS0PR10MB7933.namprd10.prod.outlook.com ([fe80::2561:85b0:ae8f:9490%3]) with mapi id 15.20.7741.033; Wed, 10 Jul 2024 19:23:00 +0000 From: "Liam R. Howlett" To: linux-mm@kvack.org, Andrew Morton Cc: Suren Baghdasaryan , Vlastimil Babka , Lorenzo Stoakes , Matthew Wilcox , sidhartha.kumar@oracle.com, "Paul E . McKenney" , Bert Karwatzki , Jiri Olsa , linux-kernel@vger.kernel.org, Kees Cook , "Liam R. Howlett" Subject: [PATCH v4 01/21] mm/mmap: Correctly position vma_iterator in __split_vma() Date: Wed, 10 Jul 2024 15:22:30 -0400 Message-ID: <20240710192250.4114783-2-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240710192250.4114783-1-Liam.Howlett@oracle.com> References: <20240710192250.4114783-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YT1P288CA0017.CANP288.PROD.OUTLOOK.COM (2603:10b6:b01::30) To DS0PR10MB7933.namprd10.prod.outlook.com (2603:10b6:8:1b8::15) 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: DS0PR10MB7933:EE_|DS0PR10MB7295:EE_ X-MS-Office365-Filtering-Correlation-Id: 7d66c9d6-3a79-4840-780c-08dca115b66f X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|376014|7416014|1800799024; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?NyG7XVwGg4K0zz3f0sgcJjBA3QvA6haV/QmejHWgex0sXiHrGcYhy7K4XyOB?= =?us-ascii?Q?xqfQ9SnTyZVsuCs0r5ODuZ4hneQsCNNIOIzSOLEJHW9lt5fLEbGWD/I9nQy4?= =?us-ascii?Q?E+Bg90x5fW//QnrHVE7ASzMzKSNJghO756ora64HtTGsxLotkFyYy1EjhX2X?= =?us-ascii?Q?f7ylyaaaGKdb/mZSoDFpLkHe4D0neWTYvIZvE5j86KPgqekMun6rBKyYkwcC?= =?us-ascii?Q?N9tmkBzRBqKpGBby6VZ0tyG4zqwfeMlOvkOy7te/o5GbobtGhfg9fW8scJ8q?= =?us-ascii?Q?FsvMdBjGY/mlsVX+3RGVpMFioDO7scT/jXxK3VHNvoSEWQmEDVCrbx4s5Dbk?= =?us-ascii?Q?ufCkf0AY23mSvoigIsDpYTtjw1hqAzHN8mO/awgYtdyT4BEvYqmNOgGUG6DJ?= =?us-ascii?Q?+0fEdGe7UJp9qRbEGEK1DHc38UbQEqzJu9xEYGOf0iGbjQDULVEQTDoACXfD?= =?us-ascii?Q?HqTjth1/sJL9/bj8+3wVsZB3Yivi9A3PeMCR0tnSaVn5/RWbpvV+L7DaU1Yt?= =?us-ascii?Q?u3stB6JiuI5VHDL+ZdWDad8+Fx3ta9GXT6MMlVbaBAZvR/58jAoMaDBnNJik?= =?us-ascii?Q?yd5TLzT/ty+1vVtHobx3OwjDwktG0DJnjLnaU4Db+9HDodi/Wqc0rxBvXDs6?= =?us-ascii?Q?0ZDrJKn9ON04s5iz4pQvC2jeqZBjtMlJ8bJyRzKmElxsoVXsxJYg4knPRy1W?= =?us-ascii?Q?0WwCO4a9xo5iFLg/BotaL/YwOgvSI55cwfLd01QfNLugBUEVfQOJkd7sNO/+?= =?us-ascii?Q?+RWYKv0o8pzkkeOCUXw9cFd65rIrfk423LWQdXsCDST/0IZdvkviuCKjrCEK?= =?us-ascii?Q?2jqQbY0/YRLRYJKMuBjvVPipEsmY/lGf9YVYBtSPrL311x3eSg2rUVzZOnH+?= =?us-ascii?Q?0shMPjZeABHDaYCIXATcqRzOXvvF96Z6IZ4YIEZ578z8pHEtb2gv+3mb513r?= =?us-ascii?Q?bVyceYkRlH+esMXicZiujGKgd8p3Rn90IeVi9EKsyQtl6CyZaTvHcZEDF9qn?= =?us-ascii?Q?Mx5DVh+aAVnnuI/+qCMHPwD3rgEC46ns0GHYLu0pc2Xn23LZHuCZ4hBcTHQA?= =?us-ascii?Q?I2Kq43qnhG0x8s2LYmFq1qHALSuaAe+ZNnGJJGZtq0z77csU3R0WVSBrqfri?= =?us-ascii?Q?yt7akYexRzhGQeEsVQcCT3wUQeEXh5o7MI7ScqJwu89tpR/nu4YvgtTM67M+?= =?us-ascii?Q?Jnr/sKIo3MtT5EQquSHa7yM6zjNTa7uT4MR83kiHXfvi3LcnBV9m+jcE2sks?= =?us-ascii?Q?K5aoze4mbvOeG5Psmju+mJSA3/HylkqMWmZjx0RuPYnOuf1hdO55urJyaBfa?= =?us-ascii?Q?jMQQiFkiZ4dlBwwyZmx5lxEErb5xvs6gpoBsArbDuzfktQ=3D=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS0PR10MB7933.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(7416014)(1800799024);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?JTTfaMiqjVhFXO4sSfpxG3o66WsH3Q313zyBqcfzu3e4B+2FqaWmqtm4Z7Ns?= =?us-ascii?Q?6UHMevMNJVlCxt24N8aE7M6KTCdatRYYtuFRGUWd17ZeI3E1ZR/ORWC+kcHh?= =?us-ascii?Q?lhwZYKQjrbjD2t1FLCxpR6mL1qVSfCd4dN1ilSXtWQtyZCOF4TMLT8KRhs2M?= =?us-ascii?Q?eLokVXRYbooU5VSd9Y9cvZZ2T+FNVX5KvV0S6V/sAmt2mvavhv9GB6V6KBIK?= =?us-ascii?Q?brWRoD+SYiuSdbqkhkqb31MDJ/O5fqAXDgR1dM+l14aid+5EGDfexTGtxVI9?= =?us-ascii?Q?jtxRfjIFVeozJwbAQzSqCSX+BtCAAlWb5YhAmHlEn5kUVopt1kZ0Eb1OTBqb?= =?us-ascii?Q?Gv0+kOzvb2FY3WVqsBzR37kULL05Y994MIECV4Yyv3Kc9K2riSYq3nlMMOKy?= =?us-ascii?Q?W58F9SbZ5QGYPbKKoJ74E/Xdz2wLLVuskURTcX4ULDkBQY4hsNa/+d6hTzts?= =?us-ascii?Q?HuOeJ6BkkH9J6zCHPJidnsIm9i/z0zoycfRAA5HPO1dmTZO1QSpSffOjTaNY?= =?us-ascii?Q?d9hSfIVJ+6oS4P76Uh0hCf9Z07xTjUZ35oy2F0qMekYCNfHeq53zp0OFEMIj?= =?us-ascii?Q?ZeM3ZSUBmYvywKpPMJkBOJa1SoH7pGUNROQeebb2mYQQ8fa+S+6PJXibCtbm?= =?us-ascii?Q?La9wDp8EVev0j/cJ0FtwvV3cHlqjIoSc6Wdjz8QYQHzGHx2f64zGQREmdWkg?= =?us-ascii?Q?uKzC8YB9x1f8eNJeHI9tfT5tZeXtyKAStvVXMBYkC8x7dPtoM5QXhYRtCr1x?= =?us-ascii?Q?M0op6oINKizR5b9/JUMK/g+OeSSM6DvACmYRCrAHjX0TT8CTtXWbkf1xG5he?= =?us-ascii?Q?xW4hXNdzIThM1U89bmyu1CieZwtzSH8R7iEHsYUaqD9sEtaPYF/zYz8S0mYL?= =?us-ascii?Q?qIeVjOLp/46v+B2wWlTuusvTZJ5z4xa2WI0s93RmDRQwWbx6+1xnYl07ikcy?= =?us-ascii?Q?+gOCMNM4wiNFOFWlFPPeuNmC13sSEgjqiVPQjnD0ldMEzrL4IlGqx4mYZ0l+?= =?us-ascii?Q?cmf5unLunQR6Kuhx5VEOlaosWB+rkpzCxQxhNmFEn5FSS2mdh29+9lR5gXX8?= =?us-ascii?Q?tLjDpNDXV95cdgbMxXJ0DNDMNxhzL/obguQK67DcovwDlYy1MFjJFtmiLulm?= =?us-ascii?Q?zqu543XoBWXihA6IrC9LlTaRqyB2iIGDJcAtFqYQ7TH+d/xpsYye4kJuVxgR?= =?us-ascii?Q?wlPkM46SbPswICvjLit1gcckIBaX2bEjEjWt8NScHh7+rgm3/FusHtGak1ox?= =?us-ascii?Q?/l3V1Mt1+WzcdhTt5r+MOu5Y4WHA7syA7sakKqJOerkG25A7p0Yi19+tD3ht?= =?us-ascii?Q?xu3a+qsIR3tqQQPFzMzljye0LIA2FnVGlb7L9RYaEABw8ijKH/FMvq+pYqlC?= =?us-ascii?Q?Xrn5Gud1IcYbxxZP0NO0tBr4BKQzqJ9SerQcB8H7SJks2tpXOzANvP+P4J+0?= =?us-ascii?Q?GFejdBVZH+ASFKq30kQUEKF1xhQCEfpgr9rQpQWHcYnGAaT57/bG7Yj3gJg6?= =?us-ascii?Q?Sr0zSusVC2Mlffmxodu2JAKCM2h3EDtElPLx9hmWQkJTaitmSlGbRXlipft3?= =?us-ascii?Q?iscAc25MmvXYeee3IyTp9n/ab1z9Q1KWSv+eirWtPbR4EXBKcShZRBBtkDhf?= =?us-ascii?Q?Yw=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: CUrOojd6DvH+oDAUHYka1kPdw8Djn8W1cW1c25uVolGB2DFgPcpBEWxbGbfLyrvAXqZF/z+bGm3YKTPH/bEaX69IJ++87vI5I33LRSQ4crB5zVga6agCCCvFMF4VBEI5hZIo9WdARF8h+WZ3BFOfkKw85fayDItNhcn/fY8stT9in0RhiZ1W4SwzgaJsAPavIdOB+ttK164mZHsHR0IArag0sfSKtkCy9xZwtbJ8zUAu5S2ovCDlJxk99BFvmF9L1Z5DMZljgDGnQiPb62gfYo1FYKAxaCsRc1Kn/uhJJx5mw0xUgufXvI909VqmdU83BswiB2mtmuYcjtkX3BBjxVH8vole7169koJp7Vkloi6yuLJrRQR6A5ZOm16lgj6osPJ0psd9nyRZRt+A3HX/i+wRnImkNCgZRJSM0kufaTCSpsCfYd/3V91rIUoVHsO8SQxr2lnq2lUSb23h/TuYT1GmGGI4jq6J1Lq7VTwGOhv+kbC3pJvdjW4O++C1IrbIqIOZSfyBW2P2GFBhcth/NRFxdS1XlAOug+w5uCmCypuLuppdJp8KUN02D0beFTwQZK1tA0ApTxMacNnbfFOUovTSp2ZAnPzKjf0l1D6nF14= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 7d66c9d6-3a79-4840-780c-08dca115b66f X-MS-Exchange-CrossTenant-AuthSource: DS0PR10MB7933.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Jul 2024 19:23:00.7679 (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: 0f544kQS7ZjVqtGYrprWRTIh7OXSz7pHBm67OgMS3cYRsQ4CdoWIO4RdFTgxIpXB0uXEYqHvMzf1Ka3ksSoiNA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR10MB7295 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1039,Hydra:6.0.680,FMLib:17.12.28.16 definitions=2024-07-10_14,2024-07-10_01,2024-05-17_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 spamscore=0 bulkscore=0 mlxscore=0 adultscore=0 suspectscore=0 malwarescore=0 phishscore=0 mlxlogscore=999 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2406180000 definitions=main-2407100137 X-Proofpoint-GUID: 98Av-8JnF7c0EWe__8ABiz7w6p8sP37- X-Proofpoint-ORIG-GUID: 98Av-8JnF7c0EWe__8ABiz7w6p8sP37- Content-Type: text/plain; charset="utf-8" The vma iterator may be left pointing to the newly created vma. This happens when inserting the new vma at the end of the old vma (!new_below). The incorrect position in the vma iterator is not exposed currently since the vma iterator is repositioned in the munmap path and is not reused in any of the other paths. This has limited impact in the current code, but is required for future changes. Fixes: b2b3b886738f ("mm: don't use __vma_adjust() in __split_vma()") Signed-off-by: Liam R. Howlett Reviewed-by: Suren Baghdasaryan Reviewed-by: Lorenzo Stoakes --- mm/mmap.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/mm/mmap.c b/mm/mmap.c index e42d89f98071..28a46d9ddde0 100644 --- a/mm/mmap.c +++ b/mm/mmap.c @@ -2414,7 +2414,7 @@ static void unmap_region(struct mm_struct *mm, struct= ma_state *mas, /* * __split_vma() bypasses sysctl_max_map_count checking. We use this wher= e it * has already been checked or doesn't make sense to fail. - * VMA Iterator will point to the end VMA. + * VMA Iterator will point to the original vma. */ static int __split_vma(struct vma_iterator *vmi, struct vm_area_struct *vm= a, unsigned long addr, int new_below) @@ -2483,6 +2483,9 @@ static int __split_vma(struct vma_iterator *vmi, stru= ct vm_area_struct *vma, /* Success. */ if (new_below) vma_next(vmi); + else + vma_prev(vmi); + return 0; =20 out_free_mpol: --=20 2.43.0 From nobody Wed Dec 17 10:46:22 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 F0D1819007C for ; Wed, 10 Jul 2024 19:23:44 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=205.220.165.32 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1720639426; cv=fail; b=M163BNy29tEfD5R76djlIHFVkbte05FZmwdA9Q8ejtHTpCGWN19vejYvFbqfzaCt5/xa5MmaRiZRgatrPHYGBjKuL8OoZJqaiLuPbH8ExDYS9IgCRKPytcgnhKo3mkcg6ZDNhMx7euIRhGOxfUBkQYuLnWmf+FS5GOQHrPiA8r4= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1720639426; c=relaxed/simple; bh=HxBHxkKm3AhqwDr6kUdVgq6UsZzfrODotR8onovNq+w=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=FfZ2JwKz4Xrz9gKfNmT/46x89pI1yXDnte0ywfc0TOstLqdtfPkd7O1qxPfy/YpA/5W7DLi/t1/tHYDXiOQMJa8BzzBzKEznj9koykIsb2VG5i/AuHc9sriwLTNNi/lVqG1hmKJBdgs8l46s5hn9yt6jB/+aM6fK/OF29cuahBQ= 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=iXqu4pEL; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=KGdvoCN9; 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="iXqu4pEL"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="KGdvoCN9" Received: from pps.filterd (m0333521.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 46AFjKmQ019272; Wed, 10 Jul 2024 19:23:31 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h= from:to:cc:subject:date:message-id:in-reply-to:references :content-transfer-encoding:content-type:mime-version; s= corp-2023-11-20; bh=wem2AJBoTGHtBckyqvpen9uiSUKgs9mhKNjHQHA0o5E=; b= iXqu4pEL4R3T86JONcL6mO3LUi4elvurQNNkiDIIiwrAUnb5yw88ZY6hSb9P1091 C5J2tcqi6zadycxYUZ/Ltc3hOjjdIulvp1eXOGunqmuXl6kHjgQ/jGeZPqodpf49 fVOXnAVxrcYHKHddo4SF1TkCBMCV9FGxGCoHDnQtE+qlBBAvhG9OGI6OB+NKDAiJ dTALgxTrvvSAjKvUqSxLvPLkIXuWQQCXAHkJRJy2BMcEWiaU2IymRqT4mMbCPO/s lLE3uD4m26S/0U8Tp5pgVLUc79ZkBpc9Tg7Czm6Rt1c6yPxnYdgKkRAy0iTUnT37 jmfYbETenU2aYJptZwEblA== Received: from phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta02.appoci.oracle.com [147.154.114.232]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 406wky83q7-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 10 Jul 2024 19:23:30 +0000 (GMT) Received: from pps.filterd (phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (8.17.1.19/8.17.1.19) with ESMTP id 46AIihM9033699; Wed, 10 Jul 2024 19:23:30 GMT Received: from nam12-mw2-obe.outbound.protection.outlook.com (mail-mw2nam12lp2042.outbound.protection.outlook.com [104.47.66.42]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 409vv1948k-2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 10 Jul 2024 19:23:30 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=HhpRj9Ck7xN/rILqUZwbcd7jtsAo75m+Rgtaa3by39DpQ2XnBN3Rwal75qDTnM6vCwC2Z2PXtFRu52ivPL1T+J/geTXZemvoWIqIRLY31Nh9ReQQp5cJXq2sGlYuc3Eu7GryNxW2/2hlyzMxXB9L9sn4TXkVytkb6wAJv78EUJofZjE+n+Z3ZLR1sG4vXSjLJ0eNMxSto18yDOZcsSL2KPc1CTZDHbNA2eOEf49/xL0v/CpN0YTuKSarRM5d4F98He9rBt77u+Ly64FG3u5MfGy84GVcTyLAb8mPVFKgq/qxaBI8BNh9LC8G4VYwyk92YQlM1JOjOSlf8WqRgq05/A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; 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=wem2AJBoTGHtBckyqvpen9uiSUKgs9mhKNjHQHA0o5E=; b=ZIGrEN6GE6mk3eJLGXKShMCWngDaxw17eUBZGHEt6kojfT32stKJf6w69cp875HQQjV8jXsUOovaLvyWuFcepJesMitgyygKMaqaoMaAunJXoVbZR4WTO9hQFozLyuQIttfqvwIAnwmEyXDQf0LXzLJtne6A+oVwWKIK6+rDxLhirbbewYODAHREotJVK3eMfV/nQxUvCF4I6msR4Mq0d1NbTgiIfxby3exmXHJ2VGEUp0IA1puwDq1bIPFcHKcxtVADA6PqRngpp3bcSOVSmd0vlzTUrMrwqeJ7DMM3/eOXLu0iQEjnGs9EqLM6ZbwcQk1N7w7B4KLwJnIpqdB/Xg== 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=wem2AJBoTGHtBckyqvpen9uiSUKgs9mhKNjHQHA0o5E=; b=KGdvoCN9/XkzDhoxZzbnJpNdPht5sT/aiyHfJgs7a/wys0vcGFEv6JfVyYAtVPn7yzZSoCJzMRaRRHlcLCd6TdjWPClxjOrmfeMwQSCTVP1G4u/GVbimfQR8ONx3Fdxj3eH7Rvfarwh8thuXFuPiOUAYNygNOEleQmCjsu8D2Xo= Received: from DS0PR10MB7933.namprd10.prod.outlook.com (2603:10b6:8:1b8::15) by DS0PR10MB7295.namprd10.prod.outlook.com (2603:10b6:8:f7::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7741.36; Wed, 10 Jul 2024 19:23:03 +0000 Received: from DS0PR10MB7933.namprd10.prod.outlook.com ([fe80::2561:85b0:ae8f:9490]) by DS0PR10MB7933.namprd10.prod.outlook.com ([fe80::2561:85b0:ae8f:9490%3]) with mapi id 15.20.7741.033; Wed, 10 Jul 2024 19:23:03 +0000 From: "Liam R. Howlett" To: linux-mm@kvack.org, Andrew Morton Cc: Suren Baghdasaryan , Vlastimil Babka , Lorenzo Stoakes , Matthew Wilcox , sidhartha.kumar@oracle.com, "Paul E . McKenney" , Bert Karwatzki , Jiri Olsa , linux-kernel@vger.kernel.org, Kees Cook , "Liam R. Howlett" , Lorenzo Stoakes Subject: [PATCH v4 02/21] mm/mmap: Introduce abort_munmap_vmas() Date: Wed, 10 Jul 2024 15:22:31 -0400 Message-ID: <20240710192250.4114783-3-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240710192250.4114783-1-Liam.Howlett@oracle.com> References: <20240710192250.4114783-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YT1P288CA0014.CANP288.PROD.OUTLOOK.COM (2603:10b6:b01::27) To DS0PR10MB7933.namprd10.prod.outlook.com (2603:10b6:8:1b8::15) 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: DS0PR10MB7933:EE_|DS0PR10MB7295:EE_ X-MS-Office365-Filtering-Correlation-Id: 63d77bf7-a659-4962-a51f-08dca115b7dc X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|376014|7416014|1800799024; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?nuh+P7iMtc7k8ZTMONoa+l93MPMNWf9+I7dnUFNvNtCwOAuyMe3Z9YrWfOh1?= =?us-ascii?Q?cTajBUUWxsMsLK9xT91xHGaFh3cDiDYrjpCOa5cGgFcMwIC42lt291/5oaka?= =?us-ascii?Q?EsFqn4Y/IyLH/Th6o7K7vqBVfq8vUHc02tu3kwnPUI0H+ClDS7+JhlDqgdK0?= =?us-ascii?Q?p+1AgTsF9hQP9T0mKt12ODmBZ+Q7wBUQcnxP8GziZwflfhyja0sugyDbiU0N?= =?us-ascii?Q?rQmAaAZMXL1sV44rmTsVUP+0M5usycDMJRJ3o+KTdxEbebx6LTfuwSCBJiIv?= =?us-ascii?Q?adtpF+7V+DUJPu1d0ldHFhdRaQz6AB0d7y99adDchtpCU6gl3DZWieC7Sj87?= =?us-ascii?Q?tzLqW9giM6jUVHpWrnMSaB0b0RnpkSkQQmapKX+NJmuoIOFld24lOaI79Rs2?= =?us-ascii?Q?U1cH8d/ylZwubqdgQyfTDR03HJXqpw5zDOMeoHaQlC+ep0UTtS4T260MgCFR?= =?us-ascii?Q?KsxHpiG22r4okYKCFQWeCHWw0mc/Uvikncu8ke/a/ieupDzmorWGD8pmcR+P?= =?us-ascii?Q?aPlhsAaDQLE0j3HnNHBtL59nDA27g+9qmVOPRen9RoFheYkq7fz6o8QnPAP7?= =?us-ascii?Q?paXcP1KDGethcoR8SMolJogMNnPTlwmO2OBzTaov4woJm2c5ZJU8jF4ZknO8?= =?us-ascii?Q?DbJGo22iMkfpf2i41JMSARmFHIQzEzramQH3KOOP0KudIiiwpeZzHjviNmmB?= =?us-ascii?Q?up7GRz6pq9LPjjFDnVopRXxHEOe5xtahQ1cM0tKg8EHNfcdk0l9yqzmSO/4U?= =?us-ascii?Q?vK6pcCnn68WkHkZEk4qxH5f5aHtTuYdPAPKZ/ekQkAncBlXDqekzIhYzc8aT?= =?us-ascii?Q?BnT4YlUugs9p5gCTGDKnvRAO2aJAPUvgiIcvk9kgpZqMh2xMqRH/x3Cky7wH?= =?us-ascii?Q?GEirsbEpb00s/x72PVClZbcW4lE7Vww9bxvwALk8Sy6521Galt6+FTm5bQPM?= =?us-ascii?Q?+DqdCbVZTg+tBUulLnTErLK4zPqT+OHLMAFZ5t6OqoWDkvUecZNZTVrhMtyu?= =?us-ascii?Q?KnaFd1Fcfz+zPDUpzOdBLPzDCaamUDgbLfmX+ZRR99AAW/wpWSZ+WNWhlDI5?= =?us-ascii?Q?tW6ruEE4O2ty2su3Qbe9IIUyA3XI/Gu3wGIbxRQfnD7tHFc1Ej8Zon8eAkFK?= =?us-ascii?Q?syjLzZzXYiG4Y1Iv+vY1U8G5LKD/EuJ4T4ctR7fH5eSP0q6c/ztlNRiIiwpO?= =?us-ascii?Q?/DznYTzDn6h/n67VVNecEf+Rln7keWednvdg/Lt9ZvPptX3FuAszztvgmPv0?= =?us-ascii?Q?2u765sWsnUzp1EGN0t6iFH1UQAKHPqAFWzdiZVeFkF4Uz6r8V/SQhFyQid/7?= =?us-ascii?Q?RXwIYW7GU34XZ9213vPcOCthn0nlnrRyAJwodmsGtBQsUQ=3D=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS0PR10MB7933.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(7416014)(1800799024);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?n6pza8LVajuptPuGlfLqqCNjcuyXIisIB37/ddANrcu1u4CFjN/rBP3zuMW/?= =?us-ascii?Q?RqVXZD/AylwsIUwntshe79Os6ahgp5efzO79AiGRmLSLEK38VA+KfO8Su/Cz?= =?us-ascii?Q?pMCcmK8Ysl3T952neXqsONMd7gkRaKJN/Dv0xSi0+zH5smCFZQjspC9jCuO5?= =?us-ascii?Q?FWaJCmdrGpWStoI7i9QMt+8B1g/bJ5bocaz7hcsTwI5xoOkEEcvrgskn3X6s?= =?us-ascii?Q?bf0BJ79US7PqQp4Jg2y5rzetAf3i0Z+DtgZS7yjKIBpMAcRXEk+XwXO/Z4jc?= =?us-ascii?Q?s2jpGGtce5DtbPs4CTalpWiLiEGjQxKcbnAwk+f6QNnJF8zNexLZDpdaF51m?= =?us-ascii?Q?3/mlXm4gf1I16aYDRDiMrqq3Bk2AUh5I2CdwQgQNh/O8Od4mjHHe62f02ckg?= =?us-ascii?Q?TVr+30wTPejPNfyQVWIbdHoKKd4O4OC9Zilzw1oQjpuFx3sbM0uH5Vo+/Mjt?= =?us-ascii?Q?yjuCwj+ba2iYDrQNWB9ZRCcDGoKZCsw0kHa7mnjXM15nHlfz3rac4wX+ZrLM?= =?us-ascii?Q?y4eo8aw1dboSCu/s1srBKY/mc9I8fKC1iMXj5MdzXuWD9liOZcKRvpluemhb?= =?us-ascii?Q?8C7Ds/0Ao6Q2PIJWXLnA9YijSCpd62tgEle5vhrwpCEaj4Spv7hKYQDMU/N4?= =?us-ascii?Q?baRRx1bWCmclcJ4kHoTEvwz7uK2t6h7SK1UiNnhRULBYC9R5Y1MO5pR/BIQm?= =?us-ascii?Q?kasPa1D2fAIc20k4WAqqEKLBekMKuo9LO0pCx1x0wy6cJf0oqmz1hO+4x6m9?= =?us-ascii?Q?VmsSvsxgB1uoHItx0Yeh6OHwyUu78lpFlwsFElLD8xYzHupfwo5jqU+7Otoc?= =?us-ascii?Q?5ZQTM1wz7/6NSDSVpwSaDHvIbFV+G5HYbTfI8B5uQuKJxGR7QEptlF/JN2vF?= =?us-ascii?Q?m7a3B65ZznYkgijq2RY1e/iTdXK0Vq5XHuCMVRFbicG7qysnvEyrxrW3Ore+?= =?us-ascii?Q?YPNtDWEDNwxCfM+u/p6FPE2xPf7Jp0pAYI4klkzQbfX8Q8OCbsZYR9iars2Y?= =?us-ascii?Q?4khlBl1FMKxgI6AGZXdBGDy5XZe6jvBoWv3FOPqzRrDKaIOxjV5b3plq7ZTh?= =?us-ascii?Q?84Tye+F8HhGg1LPHobl1Dq1NyY/IWVYZCQCHft8SVMQhcBD8T4SAwFqaiWFo?= =?us-ascii?Q?KMOJPExYqEbfpLV7wc2Bf/vy4AueN0ZtTvflUQzwnOmnbjBtI8WscAfdHlCw?= =?us-ascii?Q?iDnwQ77Z2NHdm/kaqqkLyGCD11aL9lVQ7VjFWqzncimcNz18tRxQNsqoH/n3?= =?us-ascii?Q?aoG5QC5isurWiBVDsydhBf9oKyns7YFi496tGXF7t1TMefP2IIlW4KqfKSHk?= =?us-ascii?Q?z1MCYFFGyVLQ5OHbuNRgwC7W6DLhXdykjl83nJuZgTWgmuLxdEfVKERK2XT/?= =?us-ascii?Q?/zO6nriWDN5e7FFPaQMvrKT3dPAapuQHLkRLu9unKpbzvtgjPihCEkAkP41b?= =?us-ascii?Q?Fn56MXLz5FOJ19b9z5R+Xb0hPiA3OW6LzFv19Jx/81zuV6Urtgh41CSPcJFp?= =?us-ascii?Q?IqLLgEYanvEetzMP8I3UiPLAmjSkzW70yrJiGd+45PDGlBJuKWtH3d4PmSI7?= =?us-ascii?Q?RQIED1llISknQRUXxADV+vbiodo2Z7ES8mcMXioG?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: 603Xjj5xTHyJJ9HbQVQDT5PXaFO43tYJljLTICoVrtHYx8qnlrTPoK+ecG9Brsd3EyXaQbmoqipQDdvzd8MRAQzDnvaIVI8N8dSrY/rLz1Ez74mY+6TsTYCy97ZEB/rZ6yl0G7bW1luNglUEGduI7JCCLR0cKmnrueAerWuyd//vgVHupq8xltYPxp6ovqM+TH8Sp/zZwPuBy1CEzVW9QvCqd7zN2c6lbbYRsurrZ/KGLQS+zFC9lcidQ1EcuQg+HrV0VCKdzEqv8/pcXmMTSPU29zawysipsfs33DNPcuArvd+4T6zgytoI10cEKFBHqA7sd0p3Rxn83z+KGVKeNsbmQz/z+L7X5S4Dw4Qp3TR8ThXQ3LCQaGXhbaAsC2RqW6YyAUWl+3fJkHzTcJk6OlGIuGFHDBYES2e5YiL2eHLQGk3v9WRMiou0Q4lI0VqqMGb61uc0UcgQb7LAbzTdFFmdh82OQ5BycsHoxQYmfc+iq5mHc3O9NvrqgZbb+GfKoRZ5LqdK8zTmbHI21fytc37fjg4jaXbbwBUp9GnAaKLkZVU80SqetmprcuUrMO7tkpS+IAZaOYm5egx1BiAOS32vX7dbJXQO4+ehKJ+CJnE= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 63d77bf7-a659-4962-a51f-08dca115b7dc X-MS-Exchange-CrossTenant-AuthSource: DS0PR10MB7933.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Jul 2024 19:23:03.1664 (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: TeETa5Q/eV16ls5AzgbH7LThokvHOBhZQ6byKTCj/Xf7TCpdEXqL4NaKoFJUWF7gjdnUsFfiY6j4Q4xBH56c6g== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR10MB7295 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1039,Hydra:6.0.680,FMLib:17.12.28.16 definitions=2024-07-10_14,2024-07-10_01,2024-05-17_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 spamscore=0 bulkscore=0 mlxscore=0 adultscore=0 suspectscore=0 malwarescore=0 phishscore=0 mlxlogscore=999 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2406180000 definitions=main-2407100137 X-Proofpoint-ORIG-GUID: BnDWKDQlDsXSIS-IGiGDdWGUXf6w-iuO X-Proofpoint-GUID: BnDWKDQlDsXSIS-IGiGDdWGUXf6w-iuO Content-Type: text/plain; charset="utf-8" Extract clean up of failed munmap() operations from do_vmi_align_munmap(). This simplifies later patches in the series. It is worth noting that the mas_for_each() loop now has a different upper limit. This should not change the number of vmas visited for reattaching to the main vma tree (mm_mt), as all vmas are reattached in both scenarios. Signed-off-by: Liam R. Howlett Reviewed-by: Lorenzo Stoakes Reviewed-by: Suren Baghdasaryan --- mm/mmap.c | 22 +++++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) diff --git a/mm/mmap.c b/mm/mmap.c index 28a46d9ddde0..babfa50f1411 100644 --- a/mm/mmap.c +++ b/mm/mmap.c @@ -2586,6 +2586,22 @@ struct vm_area_struct *vma_merge_extend(struct vma_i= terator *vmi, vma->vm_userfaultfd_ctx, anon_vma_name(vma)); } =20 +/* + * abort_munmap_vmas - Undo any munmap work and free resources + * + * Reattach any detached vmas and free up the maple tree used to track the= vmas. + */ +static inline void abort_munmap_vmas(struct ma_state *mas_detach) +{ + struct vm_area_struct *vma; + + mas_set(mas_detach, 0); + mas_for_each(mas_detach, vma, ULONG_MAX) + vma_mark_detached(vma, false); + + __mt_destroy(mas_detach->tree); +} + /* * do_vmi_align_munmap() - munmap the aligned region from @start to @end. * @vmi: The vma iterator @@ -2740,11 +2756,7 @@ do_vmi_align_munmap(struct vma_iterator *vmi, struct= vm_area_struct *vma, userfaultfd_error: munmap_gather_failed: end_split_failed: - mas_set(&mas_detach, 0); - mas_for_each(&mas_detach, next, end) - vma_mark_detached(next, false); - - __mt_destroy(&mt_detach); + abort_munmap_vmas(&mas_detach); start_split_failed: map_count_exceeded: validate_mm(mm); --=20 2.43.0 From nobody Wed Dec 17 10:46:22 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 9E08D19883C for ; Wed, 10 Jul 2024 19:23:48 +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=1720639430; cv=fail; b=Rqs1+Df+ZSsbzcvyMV10b2Cvs51Xi0fAlrZTyTVzx+B6NoYisqLCWPKkiWH42qn0OmIt/iUdYoe3knevtOjnQE8wG3VycZWoVbzoENFSQWHPBy1PeL/x7zi8hUs1VmNQtnPC2tSzrLs6K3eseB+m1bh93la1oOO29UhWZdJfPxo= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1720639430; c=relaxed/simple; bh=ahjT4jAX2L9Bvhdj5nbsQZCB8KEUEamjhkuT5LY7s2I=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=be+VoylW+FmvWCCVOFIPmQJokB1Sa1XmCJm2ICMaf10DrP/GmVL6BZrsOybwDRT1sLy50ptjPWfahYifFKmsoIC+3w1p2cB7djN/jkPSbrImMs+DT0mCwB9xaPEFnEY4N2hTbQdA+ymj680W/OuRalhCj9PH1SsSLamIZSgqtEU= 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=kBQyoiC2; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=Iv+qP3H7; 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="kBQyoiC2"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="Iv+qP3H7" 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 46AGCIcS012159; Wed, 10 Jul 2024 19:23:33 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h= from:to:cc:subject:date:message-id:in-reply-to:references :content-transfer-encoding:content-type:mime-version; s= corp-2023-11-20; bh=dpHEzn80OIyOxWiBfc/i9nreyp81gPbsuptSnKpNCXI=; b= kBQyoiC2HHmufG9EvzwdtNKYT39w4mYERKF2hoBvmdlXQyD6GPctErjm27JMtn1o dUwk4/i+XQsLqpmB5ISFOsaDPiJAio0yB0uc/d3hY8iW23ue62bcyuxEoBt6k4Io 7hx2MMxjN9h/UnkMGFySvsx7PAzEu6ero4otDVTdyKsxp62gNtFR3o/bTsyQHlsv OjjB6/+cme9RFYX2UKxYHHb5B9KFb4eirTQdzGp72tViEkBDpc2ffgrTU9Qz2xQ1 ft9FazpMC2YBye/JNcuM3M8UJqrToPe+NKs/Mt+ZXSsKm2yAEoyoNTddI4HBjHz6 B5uIJMKGz4EtetHZMC32Ag== Received: from phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta02.appoci.oracle.com [147.154.114.232]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 407emsyct3-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 10 Jul 2024 19:23:33 +0000 (GMT) Received: from pps.filterd (phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (8.17.1.19/8.17.1.19) with ESMTP id 46AIihMD033699; Wed, 10 Jul 2024 19:23:32 GMT Received: from nam12-mw2-obe.outbound.protection.outlook.com (mail-mw2nam12lp2042.outbound.protection.outlook.com [104.47.66.42]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 409vv1948k-3 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 10 Jul 2024 19:23:31 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=H23CV8GIgN5iQz2kjaBOskNgTD2zuJHNrFtWGZjBZIEhoCzmOtkl5kalTU1zMfQCxfTaQQjjqDQeXlsDBWlnPl562Xybk2aVCqf7xF6k096dL0jyYyw7QnjQSS2DSeGfqGyqM0PLW3XikE/xYMMr53RpQgBonBJXbqa74WnUPRs7wrsFiOU/xz7xxurHeyyTCtWiYnMzNBJiZzUoPU6dfEkHU0JkYXtirfreSa4GqJfsPHd1fWA/BgC9VwVFIkHwkymLu5+19tak2uote6epb57V1zx8+2Wu4ovhN/fU5bEqhWBp//kc4AMk4j6ADUTyhAmBskTRwOer3RMSuXXg7A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; 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=dpHEzn80OIyOxWiBfc/i9nreyp81gPbsuptSnKpNCXI=; b=F/UNTqP+Un2bTcdOOrnTHarkLqVzO0HJMivgTL/8KVr4BdUESiDYg6C99oabNtQXnIdbtq8xS9XBgGibpZdkRdGMf2bR8qHl3fS8S3hGry2DMAhp90uskkphCr1JlQG6eDrmmwVBIF7npFizME7fnwvb/LlSq4xAxnMnOKDZv36qY183UAKN5HWsTV63HpoJSUVle5MhhKGhYPwgomYlsI8csnxAXy2WsUbveT5XImQkOFQL6ci5H18sbnTUIM1CiP/GoXvFg1gYzuQGjCdBtsHEf6uUJKqBzWXjCa/QT0NKh82+i5ME4xqVFcDuWa4KVJcH/MvBaNJwwMi4yrcdxA== 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=dpHEzn80OIyOxWiBfc/i9nreyp81gPbsuptSnKpNCXI=; b=Iv+qP3H7hT+MvNXvsFUKMdclgY1yextneou6O780oDFgmDuU4g+gwVwVy0oojExNmveNCjxFztEzwKqemNWsMFj0UUIWh5EVVCMrM13wPDVSZ2vAGb50KIhq2BkUlXj0zYOWS/XmPQ0HTEB8Vk0v5ung3RE+j9cJT1Kc+sL71LA= Received: from DS0PR10MB7933.namprd10.prod.outlook.com (2603:10b6:8:1b8::15) by DS0PR10MB7295.namprd10.prod.outlook.com (2603:10b6:8:f7::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7741.36; Wed, 10 Jul 2024 19:23:05 +0000 Received: from DS0PR10MB7933.namprd10.prod.outlook.com ([fe80::2561:85b0:ae8f:9490]) by DS0PR10MB7933.namprd10.prod.outlook.com ([fe80::2561:85b0:ae8f:9490%3]) with mapi id 15.20.7741.033; Wed, 10 Jul 2024 19:23:05 +0000 From: "Liam R. Howlett" To: linux-mm@kvack.org, Andrew Morton Cc: Suren Baghdasaryan , Vlastimil Babka , Lorenzo Stoakes , Matthew Wilcox , sidhartha.kumar@oracle.com, "Paul E . McKenney" , Bert Karwatzki , Jiri Olsa , linux-kernel@vger.kernel.org, Kees Cook , "Liam R. Howlett" , Lorenzo Stoakes Subject: [PATCH v4 03/21] mm/mmap: Introduce vmi_complete_munmap_vmas() Date: Wed, 10 Jul 2024 15:22:32 -0400 Message-ID: <20240710192250.4114783-4-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240710192250.4114783-1-Liam.Howlett@oracle.com> References: <20240710192250.4114783-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YT4P288CA0027.CANP288.PROD.OUTLOOK.COM (2603:10b6:b01:d3::6) To DS0PR10MB7933.namprd10.prod.outlook.com (2603:10b6:8:1b8::15) 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: DS0PR10MB7933:EE_|DS0PR10MB7295:EE_ X-MS-Office365-Filtering-Correlation-Id: 42204ac8-7579-431e-31c9-08dca115b8fe X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|376014|7416014|1800799024; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?Ic+uJSiYcbJ75Wn43zGt3VTYumQbgm4E7xCfSXnbBWAzu7iAMFN8czzlqmO1?= =?us-ascii?Q?MTMPFzy+5EciW5aeqzkl0fckdXIXiK1xjuHZb1nyuV/a5keNvk51kDbS2gfV?= =?us-ascii?Q?RBlCkjuTYMbn/GMsnnadB/G7xdgqV0Vq3IjU/XGjtDkwkcqZjyQXJLJUU7tO?= =?us-ascii?Q?zqgu3Rh89dMS2EgKaaEGtNbdvt4VMG2NrB9WLvS66M2mB6kyHlT2Pd5v9K0A?= =?us-ascii?Q?+Tc6/vsg52pgGrtkZFY56FaFETmvNdevu0S4FqtVeIAyEH1nLx65luVEAiMx?= =?us-ascii?Q?vaB6oCDAtRr6x5hKJnZ5EInIbZO5JH/wQty+24L8hmcvntxpB/MXDh1Cbu6E?= =?us-ascii?Q?FKSmg1Bf/vbvYsjhso+yCbb08ko2pKrlESltje7Db8P2F1cO7bxR2rEsQOSe?= =?us-ascii?Q?qGjRXfUJK50uNlKsz4UWvY3lBYYOLAzhKqIdgy7Pw+mPOK8nwC7i4d3awCzM?= =?us-ascii?Q?WN2WFmotEXM60qtqhI0k677WRGekwDrTo3K6a1uAuzy8dBboGbjH2Dgx5IBu?= =?us-ascii?Q?qZU8OpddFiJMhS2LLy/F8+E9efupYoslRao6jvFKti4PD5J2SOHgoisav1Qw?= =?us-ascii?Q?WyO8n2FV6CT+lZ1wU9Mq55S3meZgjhmg6sZLL8Z0FnGE+5003JjpHkXcjVDL?= =?us-ascii?Q?Sx4UIhydoEBn3Ev8gpAVu4OiJWUDHWSLB0TZdYH+GcBAFV7S2bIZxwARRi54?= =?us-ascii?Q?gtxq2OSQX0NJFu0seOodYRtGEiMt1ecZeYVdM5z7knPDn1t5HO73By/wSeUu?= =?us-ascii?Q?PXna3DsmmSsHKXzPeZVWlWKJx/amgDObOmLhbv5/xpX76QZsqEQZPp6MBh6t?= =?us-ascii?Q?FrCwgyEFlaydYPT18BGjLB2xoZ5xGLKgMbQVKewZgNQASMxjam37uPUNISLg?= =?us-ascii?Q?6mYwrh4Ahzsr5BY3rHbvNLaPC2MYP24K8rbkL/aFQwpMxx0f+eA5V4l0xM50?= =?us-ascii?Q?XI1VZsv4qI3GzbjSmCIUYEtIeZbt6Q/L37yjXglacIUk4mmLq4UwdIRePzBp?= =?us-ascii?Q?Gdp4RaBcndwI5agn6Q6irySF9WEMy75V0MSgJUIc1FQpxbQ0JhnZBNsgy9U/?= =?us-ascii?Q?2dibsSi6kh1B1vgm2SErRs7HkjTKrteHXG/9xR8PCVE1D4VfkxTORQIhfl7X?= =?us-ascii?Q?DbPJ3Ku1XA3YqBhlF8xWm77FjbmRKM3azAsEXOSI8HrJ1BRmIWzYao2UIk6g?= =?us-ascii?Q?VN0n+551DtQHR5lCXwkIsu/0JPynGNKtPGiDQMTEoOqSKZKoj1Bde6/eqdkY?= =?us-ascii?Q?nU2rZwjVHIWDyDTurWsS5gGvyx7YNAsqiYn0UXo0u8tn2kQELXGlWO9FBtcV?= =?us-ascii?Q?di5YZrehV30Nnyet7Zk+OTI/Tx1WXRxiTjKcUkNMP6Hf3g=3D=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS0PR10MB7933.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(7416014)(1800799024);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?U1ZkkvrNydlumj/1ngeAaNBhsXHVkayZ+Z5vgcZx8Fq+tHV2VJL9xL2YruZH?= =?us-ascii?Q?mXaxaMNw9J6U3CPAqe/juDSgLwMy67EXncWhLaC4AHPXV4lzRDI6TzEmC2NS?= =?us-ascii?Q?Svj0m0cA9WuVIUbPNvPoFBeoC09dABx8Au6g5Bh/jGm7MaDxtwMzfEpoiSsR?= =?us-ascii?Q?62CgI0OpyKnJ9H3PDUHQ9ljyz2ZVwtxlQodrcvVO8DizwBKGP1c70b7VdtSG?= =?us-ascii?Q?F+92m2PIU6sO+O1r5SshnZHRNVSIElI3+WFuXwd/hTvaMFVJ/TimV+n0HHsW?= =?us-ascii?Q?zUZYh6+4GUbeLqWvgITjLQ3m9y4YqQgeBxRkFmY6HQmCMOyX2tzOzgdBkYpn?= =?us-ascii?Q?hCnD4HoxpIJGC6X9Ah6yyBf3Se/Gmm7l5Jvxt76zTproBYbZWn8Y+Ep1g7Hs?= =?us-ascii?Q?MwEKU2BIMoy1RtJajvanYCgCQYSYBxiD/2GN0e1aYtGKhQJBqGKfWo/lUUHH?= =?us-ascii?Q?qGhSfedyplDzD4n25YMLD23Lb2WsiErxA4Svnn8xqkvPjuwoZBACs9XIUUQ2?= =?us-ascii?Q?ykhmymeUC98xrv1Yhy3CeK5KWZe0eoKUV2r0fVby48IT5eqBkLGjzwKZgV0H?= =?us-ascii?Q?AtO0KFBbljYM9wzhLwJ+ShZoKD9HhOOLaXznMmeZEM+mFPklmbHn5sDssHQf?= =?us-ascii?Q?VA+RBokROJXWw8TqRcT3fAOpqHMTnLObY7GX2mC2vNNaP1wyW5ZDb+76NTzw?= =?us-ascii?Q?2KE4itm6UDb9T1OZcp0CLpbq32ByDgyxAd6KS4dsddvCfiW8iWxhMaa1SUGx?= =?us-ascii?Q?lWby7tvA8g8Ckn+sb5IAn/cBHG5D/+gHkWEuRqt0wGYzkD0kObwZ0RkuzrIH?= =?us-ascii?Q?QsN3IGK6B+v4mYNLzFgEbdtBrLw7WIvx6vlC8i7X9+B+W5uui5ixstqZkm2J?= =?us-ascii?Q?8p4daprfniZpzgGHNGRliquUzMHko0Va/ggVsnN6pPudnkMm9Sl47gKaXHXW?= =?us-ascii?Q?DRryzEssdtD8ziwxzb14JSBhUQedvVaLYuU+wVd/WJjNEN0lnSbBM+Nefb0g?= =?us-ascii?Q?9r31nmrSAW2Ux+8iUoe2teWTWC7N8fdqqTfB3IJ6QlQDpkj7s7/BMxcpXE3H?= =?us-ascii?Q?GTAqf6d5csr6PpcuvhI0A6NsL8Dk+cpeGJIvl2zGCOjdvxUfaJZnJRExp5Vz?= =?us-ascii?Q?IqDvMdV8TBCcCEGfjJlfh5E00TKj1Dtblsr+hO928oI1NJk8A/e2rP8Ji2LS?= =?us-ascii?Q?6KQioGZ1BZ6NB7M53Ns0L6Noizemp+WALq8qZcZGrKcl80Kxly4709cJOyt9?= =?us-ascii?Q?jAgdJYWjP7TL+hdXBSJm9cS6ASKViVcOzrkhXAiI8BMv2GAI5eLy3egPM9tZ?= =?us-ascii?Q?XuFzI0LOh02Gun3a7sLR88TrPR0muyE/rPOEB9L9Lo45fdfWi+BPxVoahdoJ?= =?us-ascii?Q?mqjJanVSXHAbOMxtbI3WFEBDTNbkMEqOdDhGT/Bx6BLXrjW9GrvVZYRacnnN?= =?us-ascii?Q?1S5L+qo3kh56UX1RSQjvt6sABD+wMkrRFnB5XzDd8MJ0qKRTWQP6rZ3P7YRj?= =?us-ascii?Q?xqdEEVTc1MtrcGclAtJGJ5BarwjCtzb0OHP+3HNK8+MTORCbNM+XL78tpjnY?= =?us-ascii?Q?8zjTq1kXc3sz30n9yg5Av6Nd75lpJOuGNiJLvAxndigAj8dKZpDjn6CMuaYH?= =?us-ascii?Q?ew=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: 3S9A/pPhUD0F3dbLO7zcXKb5eigQe8oSc9KQGTkMHukkZrzasdwCe/7Ys6zLeCIgeiqiRGLJ4n4MnAEBi6m/sxqemQMkZ3DuZlsGvmx7zFRFL3jSt2TngoRH4zejt9s/SQcmMVlc1D2eAdLV4BGE/OQpyO0frTI8mIG5qvKJB+lvXGWI8I3EUetQTuy9K5l29FDuJs+R3A/aNU7D8eXqNvxjsKMz/GSXE8H0xMQiuHFBOM9yoc6PJ6VJNGJgQ45RqwIxV6JKaPe8bEPIv7aVZktMbFh3USONQkl6C/lg49U+zLdwiYElVx/kxyW516GsqSLy7imtKS7Gozl8rdyiSezRSkqfDT7wmhWZEqVASuWqQs8QAbpkLBl5EtvPnAGH0NMVdTA2WyYdaHwTpSMka2SC7GwOn3I61If5YmVR79KPBW9UdhXjf4nDlUo7Zjpe4x3BcwDaVRL6Ls37fpakIuJwlAHH0oqsQV2L3aBihLOKcBjQ+fq0tkvCXkmG2qV5GefG7zKCJ6mI6Jb7XLcM+9KTyu082iSjKkTdEUdsId8/tmZJbGvBmnItq80vQw9LnXk9F0+4/mj67evFVOlob1OPQcJdJe6+khsZ4bhAc9Q= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 42204ac8-7579-431e-31c9-08dca115b8fe X-MS-Exchange-CrossTenant-AuthSource: DS0PR10MB7933.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Jul 2024 19:23:05.0620 (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: 6rcLADfL3YwzSCvaSTFhEecTfi6oixWLGJ35CVyJ8q5Oom4j8VjefY7T3peaOtIVG1CoBx63tV1v1L+WG2M7TQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR10MB7295 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1039,Hydra:6.0.680,FMLib:17.12.28.16 definitions=2024-07-10_14,2024-07-10_01,2024-05-17_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 spamscore=0 bulkscore=0 mlxscore=0 adultscore=0 suspectscore=0 malwarescore=0 phishscore=0 mlxlogscore=999 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2406180000 definitions=main-2407100137 X-Proofpoint-GUID: LczQ5RSvOBwM3NNqT1uWXz6mxqlhV2IG X-Proofpoint-ORIG-GUID: LczQ5RSvOBwM3NNqT1uWXz6mxqlhV2IG Content-Type: text/plain; charset="utf-8" Extract all necessary operations that need to be completed after the vma maple tree is updated from a munmap() operation. Extracting this makes the later patch in the series easier to understand. Signed-off-by: Liam R. Howlett Reviewed-by: Lorenzo Stoakes Reviewed-by: Suren Baghdasaryan --- mm/mmap.c | 81 +++++++++++++++++++++++++++++++++++++------------------ 1 file changed, 55 insertions(+), 26 deletions(-) diff --git a/mm/mmap.c b/mm/mmap.c index babfa50f1411..bd3378935c70 100644 --- a/mm/mmap.c +++ b/mm/mmap.c @@ -2602,6 +2602,58 @@ static inline void abort_munmap_vmas(struct ma_state= *mas_detach) __mt_destroy(mas_detach->tree); } =20 +/* + * vmi_complete_munmap_vmas() - Finish the munmap() operation + * @vmi: The vma iterator + * @vma: The first vma to be munmapped + * @mm: The mm struct + * @start: The start address + * @end: The end address + * @unlock: Unlock the mm or not + * @mas_detach: them maple state of the detached vma maple tree + * @locked_vm: The locked_vm count in the detached vmas + * + * This function updates the mm_struct, unmaps the region, frees the resou= rces + * used for the munmap() and may downgrade the lock - if requested. Every= thing + * needed to be done once the vma maple tree is updated. + */ +static void +vmi_complete_munmap_vmas(struct vma_iterator *vmi, struct vm_area_struct *= vma, + struct mm_struct *mm, unsigned long start, + unsigned long end, bool unlock, struct ma_state *mas_detach, + unsigned long locked_vm) +{ + struct vm_area_struct *prev, *next; + int count; + + count =3D mas_detach->index + 1; + mm->map_count -=3D count; + mm->locked_vm -=3D locked_vm; + if (unlock) + mmap_write_downgrade(mm); + + prev =3D vma_iter_prev_range(vmi); + next =3D vma_next(vmi); + if (next) + vma_iter_prev_range(vmi); + + /* + * We can free page tables without write-locking mmap_lock because VMAs + * were isolated before we downgraded mmap_lock. + */ + mas_set(mas_detach, 1); + unmap_region(mm, mas_detach, vma, prev, next, start, end, count, + !unlock); + /* Statistics and freeing VMAs */ + mas_set(mas_detach, 0); + remove_mt(mm, mas_detach); + validate_mm(mm); + if (unlock) + mmap_read_unlock(mm); + + __mt_destroy(mas_detach->tree); +} + /* * do_vmi_align_munmap() - munmap the aligned region from @start to @end. * @vmi: The vma iterator @@ -2621,7 +2673,7 @@ do_vmi_align_munmap(struct vma_iterator *vmi, struct = vm_area_struct *vma, struct mm_struct *mm, unsigned long start, unsigned long end, struct list_head *uf, bool unlock) { - struct vm_area_struct *prev, *next =3D NULL; + struct vm_area_struct *next =3D NULL; struct maple_tree mt_detach; int count =3D 0; int error =3D -ENOMEM; @@ -2725,31 +2777,8 @@ do_vmi_align_munmap(struct vma_iterator *vmi, struct= vm_area_struct *vma, goto clear_tree_failed; =20 /* Point of no return */ - mm->locked_vm -=3D locked_vm; - mm->map_count -=3D count; - if (unlock) - mmap_write_downgrade(mm); - - prev =3D vma_iter_prev_range(vmi); - next =3D vma_next(vmi); - if (next) - vma_iter_prev_range(vmi); - - /* - * We can free page tables without write-locking mmap_lock because VMAs - * were isolated before we downgraded mmap_lock. - */ - mas_set(&mas_detach, 1); - unmap_region(mm, &mas_detach, vma, prev, next, start, end, count, - !unlock); - /* Statistics and freeing VMAs */ - mas_set(&mas_detach, 0); - remove_mt(mm, &mas_detach); - validate_mm(mm); - if (unlock) - mmap_read_unlock(mm); - - __mt_destroy(&mt_detach); + vmi_complete_munmap_vmas(vmi, vma, mm, start, end, unlock, &mas_detach, + locked_vm); return 0; =20 clear_tree_failed: --=20 2.43.0 From nobody Wed Dec 17 10:46:22 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 75E51198822 for ; Wed, 10 Jul 2024 19:23:47 +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=1720639429; cv=fail; b=eQjpkc8QpmB9UTzeZ+QZ312GG202uWyKFSQu1+QhahfCHctPJtEuDDugaQPYx2+hqRWM9izCz10GLaR/E9ROs+FIHRaOvjLqI95ZFmsVz8RlZmKBVfTFg/bdXlEUy13cxzxMxWBRz2MwTMidzpa4spiltQkwV6wymLc5VkJlFSM= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1720639429; c=relaxed/simple; bh=z9lPIBEB8h0tkNv8hatUxAW8h6cpl1NOiwc80r4ThwY=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=Z2QcJhrYeArPPXka4H8bLkHbBGqCm2DMW8no7W+rYfwgJrhzAVNpVNyBsaf9PMGdm57h++00sT72JaRb+hD0p64ViBMgc7ky27TtWfWb6+Dh14Pn0ipOPCJ8XIjr2B6EgvZHLPhLr6YqrX0wEvzk/5JgANQaaejQIcoQNaYrY6w= 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=R5A/wOOY; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=S8wYpHUs; 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="R5A/wOOY"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="S8wYpHUs" Received: from pps.filterd (m0333521.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 46AFi5PI019322; Wed, 10 Jul 2024 19:23:34 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h= from:to:cc:subject:date:message-id:in-reply-to:references :content-transfer-encoding:content-type:mime-version; s= corp-2023-11-20; bh=W8ePtixmHK858Jxwt740eyTinrn/Sv9QWh8NJ5u4sOE=; b= R5A/wOOYY8Qatr4JlzU3ePjjPB1w0R/rAO2qJK+MfnF6N5dmf5d/axwTi8vYKfSh 1+KVxMnDt56T6EutjveE3q8j/7+b9l/veCO6sN2k6PEptCNVmwsFLPkJO2rjteQr ZfMhrsnRF0hflKV75iNYQe3EkXzSymw2dXpJDZHX+sBxtTHvl68L+tGeyAautazX Yx1DeEvLClVgdHNpmhbPNEXi7V1l+p7gnOVL9Rsm4K6l4vI/HnlytUR2TmmBAHAy SROli0D+05BOEUGNn6hJ7aCziQfkjvSsargp6wcJkVW+n3f70jolT+BOGocm0qrp QrO9steOzr2oRsqdJtDmVA== Received: from iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta01.appoci.oracle.com [130.35.100.223]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 406wky83qd-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 10 Jul 2024 19:23:34 +0000 (GMT) Received: from pps.filterd (iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (8.17.1.19/8.17.1.19) with ESMTP id 46AIjker030110; Wed, 10 Jul 2024 19:23:32 GMT Received: from nam12-mw2-obe.outbound.protection.outlook.com (mail-mw2nam12lp2040.outbound.protection.outlook.com [104.47.66.40]) by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 409vva92t4-2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 10 Jul 2024 19:23:32 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Vl3xzpuRhts1DvEVy+xkFcdeU04eamOfXqhn4URndKPr46JxhBEbvuTB5zrNEOCmh4fMaZ+m4rYyxbiV80RdqjGUCOmxpxfmeIL4JBJ2bIlAG7pQ4Dq/bW5I8cCFsK7UHJQU1xlXfCzDvW1IOslHxO1le8xtKBWdWZPR0R3XaX9M2e8Cb1iUKM0lFUTay4h2e7+7ljHNd2nKQL0i2amW0WPXhCh3FdHCez3NRKcUF9RSEmHxBgSnJJPtnAmIC1crs76UKtnLt5xCnE5VTQCxjZRctAZd8UtTsMCNfZQyNRHjEOtT9GPYQT9fIw+/vvNmQexlrsqtv7cEGSVjsiw3uQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; 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=W8ePtixmHK858Jxwt740eyTinrn/Sv9QWh8NJ5u4sOE=; b=Ntozs2hctpAFV6qseL7qZTcreXO44Pid74OLpLJp4t6vkvMUPyZpVK+TbatX/Vuxx8Awly9fS16H5EFaQ57+d8Pgf/k4sPptFU04rEQZXnWLAO4AnxV3mSfzubHnWwdQusLEN5mRbKwtSmsa2cpaR/p5KFucBBunFcOMI2rkiBLBiBLVKP0Qe33hXac6plBTJGn8WWZlqcptldVx0GOFq5xfz9+etiX3qxQcO3j6oPhBG59G1qU+mcp2UpmoYNZPkAP6v8x2cLnAm4+cGojTDUzQjh7OlM2UPa+yybAjTV76m7OrmissfixXqlQVKrn45sdnJfUneA74g5pLPolmeQ== 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=W8ePtixmHK858Jxwt740eyTinrn/Sv9QWh8NJ5u4sOE=; b=S8wYpHUsEemp/h0DlJ737ZjXHmZVKo8F0CEJdAzJNwhltLz4ayN3gIa+jQ1KFLXZrnujc66jJL03/Sb7XHX9KH5WJn5NgVJBYzhOjKCOgVBtLRHhcvu6k0xdK6J7Agw5GWwPSy67ticxagJ3yTvHFTfOC53YV/W8gJSjvSUHRQE= Received: from DS0PR10MB7933.namprd10.prod.outlook.com (2603:10b6:8:1b8::15) by DS0PR10MB7295.namprd10.prod.outlook.com (2603:10b6:8:f7::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7741.36; Wed, 10 Jul 2024 19:23:06 +0000 Received: from DS0PR10MB7933.namprd10.prod.outlook.com ([fe80::2561:85b0:ae8f:9490]) by DS0PR10MB7933.namprd10.prod.outlook.com ([fe80::2561:85b0:ae8f:9490%3]) with mapi id 15.20.7741.033; Wed, 10 Jul 2024 19:23:06 +0000 From: "Liam R. Howlett" To: linux-mm@kvack.org, Andrew Morton Cc: Suren Baghdasaryan , Vlastimil Babka , Lorenzo Stoakes , Matthew Wilcox , sidhartha.kumar@oracle.com, "Paul E . McKenney" , Bert Karwatzki , Jiri Olsa , linux-kernel@vger.kernel.org, Kees Cook , "Liam R. Howlett" , Lorenzo Stoakes Subject: [PATCH v4 04/21] mm/mmap: Extract the gathering of vmas from do_vmi_align_munmap() Date: Wed, 10 Jul 2024 15:22:33 -0400 Message-ID: <20240710192250.4114783-5-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240710192250.4114783-1-Liam.Howlett@oracle.com> References: <20240710192250.4114783-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YT4P288CA0027.CANP288.PROD.OUTLOOK.COM (2603:10b6:b01:d3::6) To DS0PR10MB7933.namprd10.prod.outlook.com (2603:10b6:8:1b8::15) 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: DS0PR10MB7933:EE_|DS0PR10MB7295:EE_ X-MS-Office365-Filtering-Correlation-Id: 008c11c5-6327-4eca-bcf4-08dca115b9d6 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|376014|7416014|1800799024; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?F/9PaqLKZOucEMDReCZg7S8HIYF5SHe3YYStYeJq8HOPOWeFtO3/fl/pl7Y/?= =?us-ascii?Q?W29UkuwyaeJbNPejjuOvfDXqm8cBVCKUyhqYp2ne+QWg15sHs/kBWQNgRNAX?= =?us-ascii?Q?Z4VI13FihpXokcH05wHiQTibmNlkC2f699zvZGdxbtuJC2Zs4uVQ92eRizSl?= =?us-ascii?Q?8ShmsYRWYxvH3pjkYb61varMORMMepkjXC922/8mnzpCjlTvPL0+EW40tv4o?= =?us-ascii?Q?nuLy7CaDgVJtq132RP/Cbg/9P0v27gD9WUYeAW5yX6T2pVIOG9cT7I5bC5S1?= =?us-ascii?Q?GCK5PUqpN7ElOGpSEAAkbVFLnu0i9jUW+tJqKO3kj0c4Nhu0KWxCR87ReSXU?= =?us-ascii?Q?wlrrPr/ut4MzrOj6DHM2nttam2DGAJtP3H8Rw5QAieoULeKP/6582TiWHr5q?= =?us-ascii?Q?Lo9hLNayedFpdF9OvyAbOttx+5Bv2zes/WUJtKQVvEQ8Sl1+k0HSjcPPq+XV?= =?us-ascii?Q?UiRdDHw4z5AFGQhJAh4GTnPqAihwX67QwQSMyIn0iO8zcGqC5CoXc4DkmD2H?= =?us-ascii?Q?COHh7d7XzM6WYTJYpULTolCWohMpehnFKG4uLu68SGsRZvQdwRo3dcKo8PTC?= =?us-ascii?Q?MAU3v2a5hbBtuQ//r7E24m2T2bSxbprXWLgocfurAay5E6yBIvtRlNDG6FeG?= =?us-ascii?Q?SnzkF/ZuEVpfYb2/5sJf/qM6/m1s3v5Z4zJmiVCIleHpn3RoezUxeJNSRJ7v?= =?us-ascii?Q?tyjh4wmYjEFe09gaWVbNtU/9eYyLYt32u0vYA2L2C5vW0S0XWbhS5cIyvGgj?= =?us-ascii?Q?JkzaX8sLxNHDzjiGcCl0BErAKRAdC7gO0k82df1C6z2LG5JkLOY+9m//Unk1?= =?us-ascii?Q?IOIWTXjo5NvyCLV36vf59r4miAIRvvPg9Y5dogKzb9ao6tMVY+V+0NdxXFju?= =?us-ascii?Q?a7nfKfuE3yo8qiMSot5yVEzeMLaKoMLP0XT2gHcEwvFcJngGV7EaNLRQC3/s?= =?us-ascii?Q?oivaiHaHgFT4enPfSQt5pTyM9UbMjvAYJAg339dDdQjFrqdMg+YnKtfxJwFd?= =?us-ascii?Q?zV+quDiZXl5RZn1BVD+nPFMO2RLmOGMa9ncm7VFGrHe0i6jZmK+plG1262TG?= =?us-ascii?Q?dC4TPKh1QLlZBN8oZeDuarvK2U2mk7mIFVIXuxRTRdNSP4UGJnJDXSv0+ERh?= =?us-ascii?Q?92I0Tg35qzfSTtvVRF6wsy3WuSW8vQswwI7GIRoN+2pNd+HuKoZSt+DNstVL?= =?us-ascii?Q?hHFoCGmxmV4DjcC851q8Dir/93lb2JABvMXhmSJZJQSI/ODfRG+qrhP8fUbT?= =?us-ascii?Q?WFbdt1Pru64zA66aWOBB4oArgpPdv432eFgzGszOAqj0iu3ghzSRJYbYf8DT?= =?us-ascii?Q?TGqMzCu1bBn9A4Ubtz9VlUxQ8QEOxTNxe1ZX0j+RpqSs2Q=3D=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS0PR10MB7933.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(7416014)(1800799024);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?mGCCFtVikbShfEpWWl1dHjefbeKNRoO/P3nbBZZ/GptBATTx2eAMEsgpTx0d?= =?us-ascii?Q?twRAOZT9wqssNzWkU2c9TV0lb1CfnNoxD57IbMOYOXhs7K4SdeedjBjqWOya?= =?us-ascii?Q?5Zb8MEKqvVV85fT/WzGKtR9fLtSVFAl+pV5ft0Lb4mCojaqDgFn5xlRrvGQI?= =?us-ascii?Q?hL9hxH7657vdyiVISpzGh8G3tWJYXXNA5vlVYPgkaC+cXbt74S/7yB+nfIUh?= =?us-ascii?Q?EpbUX7/HyWiwvcNqgBPHREffc/aVBHu9rEoRuYvmCkHEp17+RMK/aZk231w6?= =?us-ascii?Q?bE7WhRV+fl9+LYKnRChfH3TubjYaewHd4uwj442+yIRUeOsJ9SiuuN+h07NK?= =?us-ascii?Q?Z3ctTP91kyaD6hNIn08VFxVYR2crLu9J7ENoUqpoFDqFog/29fsekAEZhKIz?= =?us-ascii?Q?J9uN/sNp9Se9Cz0i0ZyT9TmGMa1/uC+RVyTGmLs84bBNPI79R9qBcMUQrh7V?= =?us-ascii?Q?wqVIxuj+vVEL1ax1WVSz5djsHURLYn6eVQrlt9Qk7ncWobY/Y+Kcu6XlOMjj?= =?us-ascii?Q?JJSLMwPlopduggatJN/f3S8e78hQvU+3lwGP1DmZc+9rNBe+c6nxW+JFeR2R?= =?us-ascii?Q?gKo+0XAlysMrowqi7w5eTjv+a2h7asbqKNDIgqawKRDWfsNT4wpf5AAAj08V?= =?us-ascii?Q?EJVLyLbYPCWG+6HCShbC3yderlCDXWWsrJ6B7fR+xwCDlUmouVe1jgLuJfTC?= =?us-ascii?Q?/pjoBBpCN9UQ+lNSAgDp+fhnr2gTqjaL79wFxwa3oorQNxK2NULWL5DUdQs+?= =?us-ascii?Q?chU5A+8jSMDiIYinWpTH1i75DKnelqKv31LkzvZ2eQONVbHr3haNfqYmLV+X?= =?us-ascii?Q?LRcRTk9FxA7iRCJiWgL5T5VsC7afdTDyH05l2euM8I/B0AZrfz7LFB8kihg/?= =?us-ascii?Q?yNOpdzpst6PrKnHO+r4unrKPvvKt9JVapC5arDxmCtUBWX6TksnSNvldE8fk?= =?us-ascii?Q?5gvFxT/eLkAj2Z/dtGZZvwPhETJWjrFUebWN6pgB6OXZfz+eAD9WQPx/+ZUH?= =?us-ascii?Q?rF0yQ23ABsoLz1GWOvlVtBgzx1Aym9QJlVIH4C7OaiTS1jLA0kPNPxKpa3xM?= =?us-ascii?Q?gfeNIcqgbAeW4x7e/uANUm42POG0ip7fZlmxk2Q51YQ/Z5SmjofoKVdNFAkc?= =?us-ascii?Q?1GDS52BtXcJ6bKHyLfb3ewzE2d+ELBowANkW79t/Wd33oOtVl0Em8f2PERZh?= =?us-ascii?Q?u0mgJtDPmYqxFGheqyAiLHa0mF/NBfi1N5WV4vC1uh6usJ1/6gMryHBsDcar?= =?us-ascii?Q?/DdjjzysPeTfRuMbsuvd4//7eAdmaVy6Krj+OgtROEpns6DUwk0acRmJa0Qp?= =?us-ascii?Q?aNyIkucDjVGPiDq7VRhd8l/2xcywwrBRwSAmwDOPS/iiT57JA5033P8tSZ+C?= =?us-ascii?Q?l8D0+WT6AJO+ArGyxw0Tkdkrq0MUdiMVuQh5luGO8Xvt4ziqHYKRxJ62Dhss?= =?us-ascii?Q?nIfmqvpQiSohDZ3N0MNy9G1akbu9iX2R0nDDy1Hmn6/S/0MwOUkAXqBQKgaE?= =?us-ascii?Q?rWvv8nMyQsrIF96KLf+T63YeweDobBjx1lckeV113siq+6HSO29Bhjetkw+P?= =?us-ascii?Q?ug/10+cEe/ya+VjNFY8Kfn3tfKDOFv8hudBhjmqPt1cRqCMg794y3n/HGD7T?= =?us-ascii?Q?qg=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: 4rTPG9VBrLxGjbt6naD39oT90Xz/N0yim7HQM5pUFAJxTMjckqZ17dQwGwvaZFDevmeA5y7k9yBME71XEIjHyxdO71Mqh2NdcQqC45wYnOuIyKn7d6dRF3/B8lzulf+HKmlOpf2Z7p0+hxrqmNQOhs6WypQNFj9xoKH3g1Im+ZZsozsqniSEYr53MIK8yDngSbRb+B6ZRcteC2dCsCfkcj2TmbbC/cpAafusIupxKaDvohsw9TTRaxjbqEh0H0OH57O96V/pIXjqYV9VStNfcrPZa7w42JlZu2IanrYWGvM3tzDGis/JNdrjXlcAM6jxlSHByepgBzGj0FnwOXjXLWt3N+1WaBljNbKZtMW7NTT60tKSJLM2GcxuMJgCpAIARWSiWZUbUnwUbM71ff2NBr9pzooiaeRlBMVDC+weIZXjAFq/b/+Hafhkia+9yiCkbhyX4WBuCxSSd3alwMDiP72Hg8gHigNIwaZZR/l/IrhPqSRiKZ1SqGZD2duzdIiChu0ZNyo2EqetGgO/Ej4jN/QZD/a27ejZ5m8+mP1aBYOSKX8JJtg7azXQVU21vFfrTKl2yR4QF8rzZAnpO84gSw3w9JI1DU13Y2EWZG1jwlY= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 008c11c5-6327-4eca-bcf4-08dca115b9d6 X-MS-Exchange-CrossTenant-AuthSource: DS0PR10MB7933.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Jul 2024 19:23:06.4909 (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: QWVe3LxpoStddjeTgqamNVRoPfI5zRl3FSUKKzOWRHZWztj+goPi7nKNxk08aqmCaEOtfnQZJ1+B9PHda9ntUA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR10MB7295 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1039,Hydra:6.0.680,FMLib:17.12.28.16 definitions=2024-07-10_14,2024-07-10_01,2024-05-17_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 bulkscore=0 mlxlogscore=999 mlxscore=0 spamscore=0 phishscore=0 adultscore=0 malwarescore=0 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2406180000 definitions=main-2407100137 X-Proofpoint-ORIG-GUID: D7zIRJzmtCucabQKyIqMWmuOrFFmyYTV X-Proofpoint-GUID: D7zIRJzmtCucabQKyIqMWmuOrFFmyYTV Content-Type: text/plain; charset="utf-8" Create vmi_gather_munmap_vmas() to handle the gathering of vmas into a detached maple tree for removal later. Part of the gathering is the splitting of vmas that span the boundary. Signed-off-by: Liam R. Howlett Reviewed-by: Lorenzo Stoakes --- mm/mmap.c | 80 ++++++++++++++++++++++++++++++++++++++++--------------- 1 file changed, 58 insertions(+), 22 deletions(-) diff --git a/mm/mmap.c b/mm/mmap.c index bd3378935c70..0d03fcf2ac0b 100644 --- a/mm/mmap.c +++ b/mm/mmap.c @@ -2655,32 +2655,30 @@ vmi_complete_munmap_vmas(struct vma_iterator *vmi, = struct vm_area_struct *vma, } =20 /* - * do_vmi_align_munmap() - munmap the aligned region from @start to @end. + * vmi_gather_munmap_vmas() - Put all VMAs within a range into a maple tree + * for removal at a later date. Handles splitting first and last if neces= sary + * and marking the vmas as isolated. + * * @vmi: The vma iterator * @vma: The starting vm_area_struct * @mm: The mm_struct * @start: The aligned start address to munmap. * @end: The aligned end address to munmap. * @uf: The userfaultfd list_head - * @unlock: Set to true to drop the mmap_lock. unlocking only happens on - * success. + * @mas_detach: The maple state tracking the detached tree + * @locked_vm: a pointer to store the VM_LOCKED pages count. * - * Return: 0 on success and drops the lock if so directed, error and leave= s the - * lock held otherwise. + * Return: 0 on success */ static int -do_vmi_align_munmap(struct vma_iterator *vmi, struct vm_area_struct *vma, +vmi_gather_munmap_vmas(struct vma_iterator *vmi, struct vm_area_struct *vm= a, struct mm_struct *mm, unsigned long start, - unsigned long end, struct list_head *uf, bool unlock) + unsigned long end, struct list_head *uf, + struct ma_state *mas_detach, unsigned long *locked_vm) { struct vm_area_struct *next =3D NULL; - struct maple_tree mt_detach; int count =3D 0; int error =3D -ENOMEM; - unsigned long locked_vm =3D 0; - MA_STATE(mas_detach, &mt_detach, 0, 0); - mt_init_flags(&mt_detach, vmi->mas.tree->ma_flags & MT_FLAGS_LOCK_MASK); - mt_on_stack(mt_detach); =20 /* * If we need to split any vma, do it now to save pain later. @@ -2719,15 +2717,15 @@ do_vmi_align_munmap(struct vma_iterator *vmi, struc= t vm_area_struct *vma, goto end_split_failed; } vma_start_write(next); - mas_set(&mas_detach, count); - error =3D mas_store_gfp(&mas_detach, next, GFP_KERNEL); + mas_set(mas_detach, count++); + error =3D mas_store_gfp(mas_detach, next, GFP_KERNEL); if (error) goto munmap_gather_failed; + vma_mark_detached(next, true); if (next->vm_flags & VM_LOCKED) - locked_vm +=3D vma_pages(next); + *locked_vm +=3D vma_pages(next); =20 - count++; if (unlikely(uf)) { /* * If userfaultfd_unmap_prep returns an error the vmas @@ -2752,7 +2750,7 @@ do_vmi_align_munmap(struct vma_iterator *vmi, struct = vm_area_struct *vma, #if defined(CONFIG_DEBUG_VM_MAPLE_TREE) /* Make sure no VMAs are about to be lost. */ { - MA_STATE(test, &mt_detach, 0, 0); + MA_STATE(test, mas_detach->tree, 0, 0); struct vm_area_struct *vma_mas, *vma_test; int test_count =3D 0; =20 @@ -2772,6 +2770,48 @@ do_vmi_align_munmap(struct vma_iterator *vmi, struct= vm_area_struct *vma, while (vma_iter_addr(vmi) > start) vma_iter_prev_range(vmi); =20 + return 0; + +userfaultfd_error: +munmap_gather_failed: +end_split_failed: + abort_munmap_vmas(mas_detach); +start_split_failed: +map_count_exceeded: + return error; +} + +/* + * do_vmi_align_munmap() - munmap the aligned region from @start to @end. + * @vmi: The vma iterator + * @vma: The starting vm_area_struct + * @mm: The mm_struct + * @start: The aligned start address to munmap. + * @end: The aligned end address to munmap. + * @uf: The userfaultfd list_head + * @unlock: Set to true to drop the mmap_lock. unlocking only happens on + * success. + * + * Return: 0 on success and drops the lock if so directed, error and leave= s the + * lock held otherwise. + */ +static int +do_vmi_align_munmap(struct vma_iterator *vmi, struct vm_area_struct *vma, + struct mm_struct *mm, unsigned long start, + unsigned long end, struct list_head *uf, bool unlock) +{ + struct maple_tree mt_detach; + MA_STATE(mas_detach, &mt_detach, 0, 0); + mt_init_flags(&mt_detach, vmi->mas.tree->ma_flags & MT_FLAGS_LOCK_MASK); + mt_on_stack(mt_detach); + int error; + unsigned long locked_vm =3D 0; + + error =3D vmi_gather_munmap_vmas(vmi, vma, mm, start, end, uf, + &mas_detach, &locked_vm); + if (error) + goto gather_failed; + error =3D vma_iter_clear_gfp(vmi, start, end, GFP_KERNEL); if (error) goto clear_tree_failed; @@ -2782,12 +2822,8 @@ do_vmi_align_munmap(struct vma_iterator *vmi, struct= vm_area_struct *vma, return 0; =20 clear_tree_failed: -userfaultfd_error: -munmap_gather_failed: -end_split_failed: abort_munmap_vmas(&mas_detach); -start_split_failed: -map_count_exceeded: +gather_failed: validate_mm(mm); return error; } --=20 2.43.0 From nobody Wed Dec 17 10:46:22 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 4808A198E75 for ; Wed, 10 Jul 2024 19:23:50 +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=1720639433; cv=fail; b=ZXPPua/xy44NFwG3usyLevwvCk/xHk/YiM/oghoiDanxAwaGSqI16YNRCXMcw/gMBUS4ESMH+m01Uv5Xo4ndpwfgaND8vNPuv/tVFj9nbzhWy+CibDptwNCfJPdEiDEIE5cxG2MmlGgn3pXtO/PEBB39ZLS7ZYrJNAb7J8MQvcM= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1720639433; c=relaxed/simple; bh=LRr5Qp5g578MIQeoqcd3VHi2/VCpxWdNp89F2/ElgMo=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=t8CFEbPB8dTZHC3r64Bh2PwxBIyAHuNFPKxmvSpeD0SHgZOAwW6twYVIffR6tPtKKKFbYXUpcXj3gncn7FXddP3PaCjIVR0McglZZph1hwYh4mSjClK0Rb+8c23R12GY3LwbZ5vHvH/j7SbYGSbzLK2Q5IkyF5Hj5XODhakgDfA= 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=PhNxe6Wr; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=t1uZ4w07; 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="PhNxe6Wr"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="t1uZ4w07" 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 46AG6eq5017502; Wed, 10 Jul 2024 19:23:34 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h= from:to:cc:subject:date:message-id:in-reply-to:references :content-transfer-encoding:content-type:mime-version; s= corp-2023-11-20; bh=l1bikM7qDZXJmibT+K9xa3k5hYIYZogr/swJJwrXmuo=; b= PhNxe6WrhJimgdDnXMYCE0iWgRt1v9klUnXJ6sJqAycID54+T9tszT2UOq3SXQpw o5zooxJuye5+gVu4DWYBt6xv2W91v16Veuhu52UVTcKrhlSeE6r4DEhCBiPo+4I/ ztAcREaIkKpwuNMqBmZH65M0ne1m1vFwEyYNkKrlrhSHObOBI09wl7v5gJJfBQyL A6l73xqIFEdSxz/7FS/lL4Y0hgAdXOLXOVcy+vN8AKQp6kTu/iYjNEWdklYO8PCG WSQyCuen7e4mT6eTtDeNI50XGA3vrd16xAD+Z5S9rdkkwFUuM1eg8+/Rs5/+cVUS OpQiFd4mDdYsy6nkoanceA== Received: from phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta02.appoci.oracle.com [147.154.114.232]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 406wybr4d5-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 10 Jul 2024 19:23:33 +0000 (GMT) Received: from pps.filterd (phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (8.17.1.19/8.17.1.19) with ESMTP id 46AIihMF033699; Wed, 10 Jul 2024 19:23:32 GMT Received: from nam12-mw2-obe.outbound.protection.outlook.com (mail-mw2nam12lp2042.outbound.protection.outlook.com [104.47.66.42]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 409vv1948k-4 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 10 Jul 2024 19:23:32 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=DMgvQAPapRX9JonYseuxzWf5u21EWFMbeCSURODDHH0Yr1YPgOX9iOFkmEufqZEvqYrH4NsotnKkE6RoXoQ4fGXE89PDvGpxoHUf6Lnp3GQh7QdtPF4j+/3iecH7XzBIMLlXYC2JNEvXzXHisQETwo2um+XqyaB9JXQIpxFvUoZpsRbCv82nBhG1hysT2J+kIx/wka1Ik5AlSdICGp9zZYJz0XLa0uKl/9pnLaTHqmBVlm/vdVxDBeuQ7Opj6Vzt8jqYBWhhpWPOk15W7pP+qdp8mXGVzQQ08cCeSna4SzFIUo2e71K2p+h1hN6Tjlae30ARFhYqUcI0IQLZ7gYR6w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; 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=l1bikM7qDZXJmibT+K9xa3k5hYIYZogr/swJJwrXmuo=; b=IxNvpqP0y252vjoc+DKo6HfYwPHplLN34f0YqjAfNlJcCelmaxlCqzpGF80tub6/OXH9RL7LTvbNGh1XsAS/hNXK3w4/5liVtsALGwZLPKGEN3AXVPVx+3j5Kz74HielRKL+Xs3Tb/bytP7XIjQo4l4rh0oZ1rlUcO5kUtUs/0GLmXjtte378HV3uFDI+b5lk8pIqoy/oeo0ORGHUkM4WcdJCNetmvwUN+XfrjiBe6qLEUQTXyVF9Y+opCI7yx5YrSacBdOqs8G/fJKr3F/P0+VSHaPeSkw+breDzE7w/LkBWkXSnj3Wo0VF1vzLtFtTCmJX4OapyG4Txfutc9pQ5w== 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=l1bikM7qDZXJmibT+K9xa3k5hYIYZogr/swJJwrXmuo=; b=t1uZ4w072K6lQeI0nI1gVC8yl51YhDNFOS+DGUAiVz9iBsksfr9ZD33q6A2yX/879Zw1+rKv0Fnbjev2zvlkCBxDRL+VXDNckhOuNAjrHMUivxGx4lK3DC5a2Ek9eQqhD4eni1SOYp2+56j9kBX8GQr+5B//99/w7aEhFqg5Jus= Received: from DS0PR10MB7933.namprd10.prod.outlook.com (2603:10b6:8:1b8::15) by DS0PR10MB7295.namprd10.prod.outlook.com (2603:10b6:8:f7::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7741.36; Wed, 10 Jul 2024 19:23:09 +0000 Received: from DS0PR10MB7933.namprd10.prod.outlook.com ([fe80::2561:85b0:ae8f:9490]) by DS0PR10MB7933.namprd10.prod.outlook.com ([fe80::2561:85b0:ae8f:9490%3]) with mapi id 15.20.7741.033; Wed, 10 Jul 2024 19:23:09 +0000 From: "Liam R. Howlett" To: linux-mm@kvack.org, Andrew Morton Cc: Suren Baghdasaryan , Vlastimil Babka , Lorenzo Stoakes , Matthew Wilcox , sidhartha.kumar@oracle.com, "Paul E . McKenney" , Bert Karwatzki , Jiri Olsa , linux-kernel@vger.kernel.org, Kees Cook , "Liam R. Howlett" , Lorenzo Stoakes Subject: [PATCH v4 05/21] mm/mmap: Introduce vma_munmap_struct for use in munmap operations Date: Wed, 10 Jul 2024 15:22:34 -0400 Message-ID: <20240710192250.4114783-6-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240710192250.4114783-1-Liam.Howlett@oracle.com> References: <20240710192250.4114783-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YTBP288CA0001.CANP288.PROD.OUTLOOK.COM (2603:10b6:b01:14::14) To DS0PR10MB7933.namprd10.prod.outlook.com (2603:10b6:8:1b8::15) 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: DS0PR10MB7933:EE_|DS0PR10MB7295:EE_ X-MS-Office365-Filtering-Correlation-Id: 96bc9b43-5ea3-4725-c629-08dca115bb4b X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|376014|7416014|1800799024; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?II+BAusK9PAuxsHVAN0kVVzJzDe3V3V5romBY2yyH9nrOTuhDRHopjsOn3Ht?= =?us-ascii?Q?Ky4f+49rUeWbDIsn0qHcSEC8bYOglbFiIUCYjTsF0O8g3TcJwmQ2zX02JtY9?= =?us-ascii?Q?Ea12sRPRYt/CnCL52dY1+kBPE0UiraiF8s0PWhX9QhEdlr30vG3Xvwj/HykV?= =?us-ascii?Q?vq1m+v5DHFQMMPJp1EueGadtalrH3NufnMW/1aFjF6kCsVH12Vc4daUhjLN4?= =?us-ascii?Q?0TSSFpgZ1W7Q8xpd1u7sfQO8lGPhjI1OfgMjzj7TtrshLkYqiItYN9uRAijR?= =?us-ascii?Q?rcBOFQ9Wck//CwvLVGPK6K0C4knmEY46lxW6fU/ZFYULQAdS4MXj3QnZT8za?= =?us-ascii?Q?61PKz8HxO4+tfcXhXAHK9qm3Fn+Gdj3U54I4uO5eWbugWHAkTNRPMblW84kX?= =?us-ascii?Q?VWtAG1BGwJZo0/u4dAJej/QT3EAB/zDG67JRfrPXsy9Tbt4Qhn4ei1gxkWVT?= =?us-ascii?Q?p4mlkfasXHfllJKzsrvqi56SXxbU2ESHJwsu7EDQlYz6r0eRI68yuQhilYSY?= =?us-ascii?Q?LqAX1MuEUf9y7JB9og0yZY6WgZumyrNB5n3m7b9PWDvunL6tw9SJMkaFIz6q?= =?us-ascii?Q?yiByVdYoJxwbJDoqqrOXiCRhC0D7SWgZa7yPIrOIflKNHMy8aNl9T4gEB620?= =?us-ascii?Q?khuPFKd1eTnDZCZ1dDooOeG3xAuKCfhQoxad+Xh+u58jsoiFlhU7S2PcWVAG?= =?us-ascii?Q?P+SWS5zgLQ5214yP/7M40bAkXQA3oSs1eekGjaIpwlGli0xxrwbHUSht0+tl?= =?us-ascii?Q?Xo6HGMSXv03AdLog+6UD82ywBw4O6us5JvyH2FmdlkJIdT77Igkp+YUOhqwK?= =?us-ascii?Q?W7u7ViSZY0JF/9mcUCYIHwY4LDuuJhJsQEDEOuBA8Uy16vwneyuzZbT1i6kc?= =?us-ascii?Q?ah6BJUnC6jdCFl8nIqDnNNWs37xrMkmw/GZZezN3ScYdPuDPjR5sZPbNzGOh?= =?us-ascii?Q?HN+FUJHpagP22irkf+CkVdyH54k9ALTKC+ruH4PCGYCGJTiyd3D/uHVd0qYa?= =?us-ascii?Q?VHAISjMaEU90Y7DNBJofXfL2Yf9aZywHs301EatvQ2cie7LPUkfMfsbrwqlK?= =?us-ascii?Q?vjGKCdKiCoE+QJGu+eZSKQ6b5+51bjVB2FslKYgd6jfaJuKYdfZ67r/r6tQe?= =?us-ascii?Q?ikpDsm5ODjvYOHScHf0ZGuCIzOr95SmDMLtwet3H0AfaiJOWf40+irkkJFKJ?= =?us-ascii?Q?atKve7FOpHD2dB6ue7v8+eP+BvmtCZUXLdIAvWNNYusiOKUCfsF2kKv5t+sR?= =?us-ascii?Q?fRWZwmR95CPhpFw2TUmtBHgoS1k6j9A7OQfx95YX4nKUi0VTbz60RqGtpebu?= =?us-ascii?Q?/Aj983tlfAZIXa0wYqYDVSxWI+E/gaF+v5Qe3yxOnlSbpQ=3D=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS0PR10MB7933.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(7416014)(1800799024);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?bS6TzQ/LMTLvoAbmH7ZegUf50gV0WK/ePWk/SJ6YKMna9d508/7JcGCc6J1l?= =?us-ascii?Q?jfe/J34/mQCSPXByxGN+0oh3I67H/ZwupJTam3nL0/pyDbL6OkrShOjH4vk1?= =?us-ascii?Q?E+q2U5LbKHEamoqXcu38E1oMiPmV5kfGYAr/dPoaIFoj7TgOCuarDzzMqfZy?= =?us-ascii?Q?3CiBSi3ZGZb/H1JkMHFfr7rpVp0jBW38bmeJh0AkyrNAh/OnOk/CypYx6a4c?= =?us-ascii?Q?GvWQp0L7mdiXL1By8xAS1a2TQ27YwCVdAo3zvGHmXZy4DyZumi26xHm10Z+G?= =?us-ascii?Q?eBRi958kJUV4Uji3nuwcUGnLfsmKtX9+tYx+uf+nG4HnTs9ebNYfc50lQ3BM?= =?us-ascii?Q?tL8kHH+JmHM7DG9W72/i2rrdtgAZopz1+8FcOdTHjlo55sRH+cl8EiyjuZb/?= =?us-ascii?Q?UQhcpJEKeCdPThcLm2426eOnuud8ACgJWx7YVSgntoTrhRVahQvPLAKDJywX?= =?us-ascii?Q?E3GbDssaKZ5Aj6rVvKy2rRGWrQfRE9waWQVBJBvn1Fh9zn9HkRxBfca/BMrH?= =?us-ascii?Q?+b5HMeASY0N5oauIVZNnbIHqmtpQHp7LQsoWYzmOdW0sfDt+yuNr/zEASDiy?= =?us-ascii?Q?4QuGcWS9lYMnulYo9XAq+/sOCpv9GPaUYXTaUovrSNeldWtDtgxptmpUYVTG?= =?us-ascii?Q?CFUv9CegKzOALTMHuC5tPkPQFhDWid/HVdWEQni8xnyFGTs8cELJ8nZEf+jy?= =?us-ascii?Q?0lXCP3nWge/PXNjRKhLB4USm7bFcWAW97Kwg7kklf7r4Ly3/B7QpDqfHmQEX?= =?us-ascii?Q?72B/rN5IYUfyfNH8Fvn3SKXJNh4fJd/1m9wGCJ6IP/KQjnPE8463X8U5VmRF?= =?us-ascii?Q?qAVtcVX/naL+1zW/NAbBg0BQl2Opq991wA96W31cc3mmnfBK7fucipLrnvB+?= =?us-ascii?Q?P+hWz+Rm58L13pqe6XWVVO0jrqyMN7n8swn9mN0xyoP35knX7NCQqLcuDGbc?= =?us-ascii?Q?IgOO2eZwftu3mm9RnHF6iiWeS/cV+JICmhoZNQha9z8ttB4Bh/WmMLzoHNmS?= =?us-ascii?Q?DRDZ4dqfqJSKr4tLJAM5j/5anOXj4TcKcpmRVccLUn4U8HoLm28ABOyIjTq2?= =?us-ascii?Q?+pujiI7taAshoauKDSDNB26xshwE0U1dM4FVDVzGuMPhr+X8hRhkddafN9gn?= =?us-ascii?Q?22+eH6siFyvRYTSN7C+/OQyQi8BddfQBHAeBOXhuiWCauMeg9CHf2dXPR0eG?= =?us-ascii?Q?T6EANILBkInnUeZla8h7dvOpSgCNM1dzGzH83eYfd/fQneh9yJFiKdzaa/Ol?= =?us-ascii?Q?I8A8Y1DYw+kDKZ9hEfZpEysxWGGHMQYd8yiIPUqZAphTlH4ddEJbsEAyU3ro?= =?us-ascii?Q?Jxmm3HFIiIIgSRTxL6qN6rI0ZoRf/TnZSbkEMLdYjwGujyYCvVd5QWkXTToh?= =?us-ascii?Q?F7HXrtqB9v/1Cvcm3ryP/TisYxicHTfJQOfWrm26v39Rhquc4eXLVCFx7kDW?= =?us-ascii?Q?xwG5FOXedrYfB8+ZAQQhY44xjwdyG4v4K3PhDFMwpbeUXkhKHep9VyaOhV6P?= =?us-ascii?Q?c24xwSVLDjVwmIuwweV4BuPlt3Ku4UspPvpOCNbeS2qnlG7E9TxgABKVIWFu?= =?us-ascii?Q?6S6EtD0PG+tw452VWFPBtQiWpNHw8ullBDbQiYyuIMNS8CeC4Xto2+dZBSOK?= =?us-ascii?Q?qQ=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: Y4lz4BfC6GTQ6/XUw6FTkyD9XJsrV/DfWqWUFTjfQRVOYGJkcaYE86U/UrsAMTtx9GNp7edhaBzBN4uZU/LqwGRjc/xAdQN6MXCM9Uv1j9H1jkyXlFWg/Wh13KUf7MZtSYuGT7urrPNMCE6+MS27ZTcYns3PWNw+/ttrvi2veD3ptKlXDA8Ldbhx5X+qJslAcvy38wrhBMfrBM7OctgBgLE5x3JxZ4hGJ1N+TrAycoQXXuJjVT/0cJSuAG4IdFioC2zqHJJnTt4mevvBy9quBOnuLVNNbgFZhOEF8rX13qoOO1YdT2fSRj43h49THqojzl4mLo4jlU/xg4mQgbgaEQ0HC0qsDoI+SW/mh+5m7TocQbuze9WWpIf4bJ26AJ4SpvI6qgLQnYtP6er1BfGv3cSNzQTjGKfraSHjP/5Pzy2Jlk7yKPqh3nccnI/H8pGECaFYMqWdyCKodvLjwWcph/ojpzsBdnXuyPwziQGAUa0wpZH2iMTOua9xNUDXFMYeayIclad9UW7zXNhsI63/T8at1ztY6GVHoW1YLjomc90BGAiFHe/6BNKI+3bJcuZBXV6Iv5SpH+IXbaONMQKjBoTLi1+YLSwUO63Y5iYZY8w= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 96bc9b43-5ea3-4725-c629-08dca115bb4b X-MS-Exchange-CrossTenant-AuthSource: DS0PR10MB7933.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Jul 2024 19:23:09.0085 (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: 3ftYL95aoAmEhSzOOgCSHo/VsrE6StNAxTNIgbr2vMcm0CLHuVnSlBzCpBZgzJPPJnES4T3meTL/uy9IncMPPA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR10MB7295 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1039,Hydra:6.0.680,FMLib:17.12.28.16 definitions=2024-07-10_14,2024-07-10_01,2024-05-17_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 spamscore=0 bulkscore=0 mlxscore=0 adultscore=0 suspectscore=0 malwarescore=0 phishscore=0 mlxlogscore=999 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2406180000 definitions=main-2407100137 X-Proofpoint-GUID: aSbZQNEFBktszQSSddDGRI6RXCAPM04t X-Proofpoint-ORIG-GUID: aSbZQNEFBktszQSSddDGRI6RXCAPM04t Content-Type: text/plain; charset="utf-8" Use a structure to pass along all the necessary information and counters involved in removing vmas from the mm_struct. Update vmi_ function names to vms_ to indicate the first argument type change. Signed-off-by: Liam R. Howlett Reviewed-by: Suren Baghdasaryan Reviewed-by: Lorenzo Stoakes --- mm/internal.h | 16 ++++++ mm/mmap.c | 138 ++++++++++++++++++++++++++------------------------ 2 files changed, 89 insertions(+), 65 deletions(-) diff --git a/mm/internal.h b/mm/internal.h index 2ea9a88dcb95..43b3c99c77ba 100644 --- a/mm/internal.h +++ b/mm/internal.h @@ -1481,6 +1481,22 @@ struct vma_prepare { struct vm_area_struct *remove2; }; =20 +/* + * vma munmap operation + */ +struct vma_munmap_struct { + struct vma_iterator *vmi; + struct mm_struct *mm; + struct vm_area_struct *vma; /* The first vma to munmap */ + struct list_head *uf; /* Userfaultfd list_head */ + unsigned long start; /* Aligned start addr (inclusive) */ + unsigned long end; /* Aligned end addr (exclusive) */ + int vma_count; /* Number of vmas that will be removed */ + unsigned long nr_pages; /* Number of pages being removed */ + unsigned long locked_vm; /* Number of locked pages */ + bool unlock; /* Unlock after the munmap */ +}; + void __meminit __init_single_page(struct page *page, unsigned long pfn, unsigned long zone, int nid); =20 diff --git a/mm/mmap.c b/mm/mmap.c index 0d03fcf2ac0b..1ed0720c38c5 100644 --- a/mm/mmap.c +++ b/mm/mmap.c @@ -500,6 +500,31 @@ static inline void init_vma_prep(struct vma_prepare *v= p, init_multi_vma_prep(vp, vma, NULL, NULL, NULL); } =20 +/* + * init_vma_munmap() - Initializer wrapper for vma_munmap_struct + * @vms: The vma munmap struct + * @vmi: The vma iterator + * @vma: The first vm_area_struct to munmap + * @start: The aligned start address to munmap + * @end: The aligned end address to munmap + * @uf: The userfaultfd list_head + * @unlock: Unlock after the operation. Only unlocked on success + */ +static inline void init_vma_munmap(struct vma_munmap_struct *vms, + struct vma_iterator *vmi, struct vm_area_struct *vma, + unsigned long start, unsigned long end, struct list_head *uf, + bool unlock) +{ + vms->vmi =3D vmi; + vms->vma =3D vma; + vms->mm =3D vma->vm_mm; + vms->start =3D start; + vms->end =3D end; + vms->unlock =3D unlock; + vms->uf =3D uf; + vms->vma_count =3D 0; + vms->nr_pages =3D vms->locked_vm =3D 0; +} =20 /* * vma_prepare() - Helper function for handling locking VMAs prior to alte= ring @@ -2603,81 +2628,63 @@ static inline void abort_munmap_vmas(struct ma_stat= e *mas_detach) } =20 /* - * vmi_complete_munmap_vmas() - Finish the munmap() operation - * @vmi: The vma iterator - * @vma: The first vma to be munmapped - * @mm: The mm struct - * @start: The start address - * @end: The end address - * @unlock: Unlock the mm or not - * @mas_detach: them maple state of the detached vma maple tree - * @locked_vm: The locked_vm count in the detached vmas + * vms_complete_munmap_vmas() - Finish the munmap() operation + * @vms: The vma munmap struct + * @mas_detach: The maple state of the detached vmas * - * This function updates the mm_struct, unmaps the region, frees the resou= rces + * This updates the mm_struct, unmaps the region, frees the resources * used for the munmap() and may downgrade the lock - if requested. Every= thing * needed to be done once the vma maple tree is updated. */ -static void -vmi_complete_munmap_vmas(struct vma_iterator *vmi, struct vm_area_struct *= vma, - struct mm_struct *mm, unsigned long start, - unsigned long end, bool unlock, struct ma_state *mas_detach, - unsigned long locked_vm) + +static void vms_complete_munmap_vmas(struct vma_munmap_struct *vms, + struct ma_state *mas_detach) { struct vm_area_struct *prev, *next; - int count; + struct mm_struct *mm; =20 - count =3D mas_detach->index + 1; - mm->map_count -=3D count; - mm->locked_vm -=3D locked_vm; - if (unlock) + mm =3D vms->mm; + mm->map_count -=3D vms->vma_count; + mm->locked_vm -=3D vms->locked_vm; + if (vms->unlock) mmap_write_downgrade(mm); =20 - prev =3D vma_iter_prev_range(vmi); - next =3D vma_next(vmi); + prev =3D vma_iter_prev_range(vms->vmi); + next =3D vma_next(vms->vmi); if (next) - vma_iter_prev_range(vmi); + vma_iter_prev_range(vms->vmi); =20 /* * We can free page tables without write-locking mmap_lock because VMAs * were isolated before we downgraded mmap_lock. */ mas_set(mas_detach, 1); - unmap_region(mm, mas_detach, vma, prev, next, start, end, count, - !unlock); + unmap_region(mm, mas_detach, vms->vma, prev, next, vms->start, vms->end, + vms->vma_count, !vms->unlock); /* Statistics and freeing VMAs */ mas_set(mas_detach, 0); remove_mt(mm, mas_detach); validate_mm(mm); - if (unlock) + if (vms->unlock) mmap_read_unlock(mm); =20 __mt_destroy(mas_detach->tree); } =20 /* - * vmi_gather_munmap_vmas() - Put all VMAs within a range into a maple tree + * vms_gather_munmap_vmas() - Put all VMAs within a range into a maple tree * for removal at a later date. Handles splitting first and last if neces= sary * and marking the vmas as isolated. * - * @vmi: The vma iterator - * @vma: The starting vm_area_struct - * @mm: The mm_struct - * @start: The aligned start address to munmap. - * @end: The aligned end address to munmap. - * @uf: The userfaultfd list_head + * @vms: The vma munmap struct * @mas_detach: The maple state tracking the detached tree - * @locked_vm: a pointer to store the VM_LOCKED pages count. * * Return: 0 on success */ -static int -vmi_gather_munmap_vmas(struct vma_iterator *vmi, struct vm_area_struct *vm= a, - struct mm_struct *mm, unsigned long start, - unsigned long end, struct list_head *uf, - struct ma_state *mas_detach, unsigned long *locked_vm) +static int vms_gather_munmap_vmas(struct vma_munmap_struct *vms, + struct ma_state *mas_detach) { struct vm_area_struct *next =3D NULL; - int count =3D 0; int error =3D -ENOMEM; =20 /* @@ -2689,17 +2696,18 @@ vmi_gather_munmap_vmas(struct vma_iterator *vmi, st= ruct vm_area_struct *vma, */ =20 /* Does it split the first one? */ - if (start > vma->vm_start) { + if (vms->start > vms->vma->vm_start) { =20 /* * Make sure that map_count on return from munmap() will * not exceed its limit; but let map_count go just above * its limit temporarily, to help free resources as expected. */ - if (end < vma->vm_end && mm->map_count >=3D sysctl_max_map_count) + if (vms->end < vms->vma->vm_end && + vms->mm->map_count >=3D sysctl_max_map_count) goto map_count_exceeded; =20 - error =3D __split_vma(vmi, vma, start, 1); + error =3D __split_vma(vms->vmi, vms->vma, vms->start, 1); if (error) goto start_split_failed; } @@ -2708,25 +2716,25 @@ vmi_gather_munmap_vmas(struct vma_iterator *vmi, st= ruct vm_area_struct *vma, * Detach a range of VMAs from the mm. Using next as a temp variable as * it is always overwritten. */ - next =3D vma; + next =3D vms->vma; do { /* Does it split the end? */ - if (next->vm_end > end) { - error =3D __split_vma(vmi, next, end, 0); + if (next->vm_end > vms->end) { + error =3D __split_vma(vms->vmi, next, vms->end, 0); if (error) goto end_split_failed; } vma_start_write(next); - mas_set(mas_detach, count++); + mas_set(mas_detach, vms->vma_count++); error =3D mas_store_gfp(mas_detach, next, GFP_KERNEL); if (error) goto munmap_gather_failed; =20 vma_mark_detached(next, true); if (next->vm_flags & VM_LOCKED) - *locked_vm +=3D vma_pages(next); + vms->locked_vm +=3D vma_pages(next); =20 - if (unlikely(uf)) { + if (unlikely(vms->uf)) { /* * If userfaultfd_unmap_prep returns an error the vmas * will remain split, but userland will get a @@ -2736,16 +2744,17 @@ vmi_gather_munmap_vmas(struct vma_iterator *vmi, st= ruct vm_area_struct *vma, * split, despite we could. This is unlikely enough * failure that it's not worth optimizing it for. */ - error =3D userfaultfd_unmap_prep(next, start, end, uf); + error =3D userfaultfd_unmap_prep(next, vms->start, + vms->end, vms->uf); =20 if (error) goto userfaultfd_error; } #ifdef CONFIG_DEBUG_VM_MAPLE_TREE - BUG_ON(next->vm_start < start); - BUG_ON(next->vm_start > end); + BUG_ON(next->vm_start < vms->start); + BUG_ON(next->vm_start > vms->end); #endif - } for_each_vma_range(*vmi, next, end); + } for_each_vma_range(*(vms->vmi), next, vms->end); =20 #if defined(CONFIG_DEBUG_VM_MAPLE_TREE) /* Make sure no VMAs are about to be lost. */ @@ -2754,21 +2763,21 @@ vmi_gather_munmap_vmas(struct vma_iterator *vmi, st= ruct vm_area_struct *vma, struct vm_area_struct *vma_mas, *vma_test; int test_count =3D 0; =20 - vma_iter_set(vmi, start); + vma_iter_set(vms->vmi, vms->start); rcu_read_lock(); - vma_test =3D mas_find(&test, count - 1); - for_each_vma_range(*vmi, vma_mas, end) { + vma_test =3D mas_find(&test, vms->vma_count - 1); + for_each_vma_range(*(vms->vmi), vma_mas, vms->end) { BUG_ON(vma_mas !=3D vma_test); test_count++; - vma_test =3D mas_next(&test, count - 1); + vma_test =3D mas_next(&test, vms->vma_count - 1); } rcu_read_unlock(); - BUG_ON(count !=3D test_count); + BUG_ON(vms->vma_count !=3D test_count); } #endif =20 - while (vma_iter_addr(vmi) > start) - vma_iter_prev_range(vmi); + while (vma_iter_addr(vms->vmi) > vms->start) + vma_iter_prev_range(vms->vmi); =20 return 0; =20 @@ -2804,11 +2813,11 @@ do_vmi_align_munmap(struct vma_iterator *vmi, struc= t vm_area_struct *vma, MA_STATE(mas_detach, &mt_detach, 0, 0); mt_init_flags(&mt_detach, vmi->mas.tree->ma_flags & MT_FLAGS_LOCK_MASK); mt_on_stack(mt_detach); + struct vma_munmap_struct vms; int error; - unsigned long locked_vm =3D 0; =20 - error =3D vmi_gather_munmap_vmas(vmi, vma, mm, start, end, uf, - &mas_detach, &locked_vm); + init_vma_munmap(&vms, vmi, vma, start, end, uf, unlock); + error =3D vms_gather_munmap_vmas(&vms, &mas_detach); if (error) goto gather_failed; =20 @@ -2817,8 +2826,7 @@ do_vmi_align_munmap(struct vma_iterator *vmi, struct = vm_area_struct *vma, goto clear_tree_failed; =20 /* Point of no return */ - vmi_complete_munmap_vmas(vmi, vma, mm, start, end, unlock, &mas_detach, - locked_vm); + vms_complete_munmap_vmas(&vms, &mas_detach); return 0; =20 clear_tree_failed: --=20 2.43.0 From nobody Wed Dec 17 10:46:22 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 AE70C194C69 for ; Wed, 10 Jul 2024 19:23:45 +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=1720639427; cv=fail; b=CaEIhiUXUhfO4bU74n1oAfsNM7ttbWbe9xnkCy5R8Ldk4Oeep0AYxOMRIhJATn2wc9x6WcuPzFoUhyxh+E+K6MCyprKUGEO/vWCQCD5H8lgTM+pXr4V7AhTqPDUQekm/aezrej7lIMKy2G+6nhtsdqRdma8s6TqXu32F6SrFv1s= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1720639427; c=relaxed/simple; bh=RU0HeIs3/9aDipOIl2vp9MGvwKMRUB0STEV2pCVMK60=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=lLcPksvA0KPzwEITFlWSJiDaWwtHpmSOxWCkRQyQ7hn7/10Wz4K9yROEHQEPiW4QmgVd9B1cC3boOfnTtRJlY5mIUkQqhpTyP8PxJMZzOXOY3G4ICC+CDDaAhVrSoL3D22Gb0spWn52Huwz2ktUCs1RP7RUwSC0Sg3y3QUs7F0M= 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=WxYut9Nq; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=RzOECqxY; 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="WxYut9Nq"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="RzOECqxY" Received: from pps.filterd (m0246627.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 46AFo7Jf029670; Wed, 10 Jul 2024 19:23:34 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h= from:to:cc:subject:date:message-id:in-reply-to:references :content-transfer-encoding:content-type:mime-version; s= corp-2023-11-20; bh=krst5Gkm7JY0suARBFyucKPoaXoJgRFwa+fItqdxLmI=; b= WxYut9Nqu5LOZZdFbF6t8xW6KhmkTwrjYXeAwQQ8AN+9XTd/azF0isBuzXRd3wbH 4geDGk3reuqTDXM9Etw5iW8N+rflht0ZW3WDv0YMRrdGukjkvlJNOUje2G9KwiWx n/ufetmNS+3LdE2Xeot1htVI0zzLAgk3XnovNUFYakYMn9vIeKgLdZpcRGEqy03O e9NwLTlPOtBlG8/q20tvsTHcqxH8+8mCBae8YOf8ZM87ksq780wQBHvDuqPEREmf Ojt8NpsILiGVfvDmM7Oqt4k/Uh8w1evNB0f/ni6LFfy8vgV2zgm8ivSSrrGqkBSQ F5Woc7bIZX2NJnolF/N0Qg== Received: from phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta02.appoci.oracle.com [147.154.114.232]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 406wgq02f1-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 10 Jul 2024 19:23:34 +0000 (GMT) Received: from pps.filterd (phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (8.17.1.19/8.17.1.19) with ESMTP id 46AIihMG033699; Wed, 10 Jul 2024 19:23:33 GMT Received: from nam12-mw2-obe.outbound.protection.outlook.com (mail-mw2nam12lp2042.outbound.protection.outlook.com [104.47.66.42]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 409vv1948k-5 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 10 Jul 2024 19:23:33 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=BHegmWjrH0CWEgb1FJXTQdQztNBgZsXHWOFFosmxQprXIDyDMB0MtCuKKkoAc9NQU3DMFsT/S/uS3AvPdF0rOP2jcyRL5TJaY7Y4KaSKQ7ruQetdOWknDKRjjSTafurVzxshQKzcA9Mj8LkBnYhh6HeaFaKYiOa213ViRKRtTVRh+9nh+oGElyDPBgirs2GO91QYy2kowfzsq4jUboQgZOV8HUhke1jKU/YjqBMgqxN2xIR0GfVkY+BdWcyjBaEp0mtA23vmsBp8pu6Cw8pMZpTtHGEAdyn2I6jirHjniUUv/e+453tEz2ItzvJfvuff/9GjYP59BFkgvCGnHdziwA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; 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=krst5Gkm7JY0suARBFyucKPoaXoJgRFwa+fItqdxLmI=; b=oF2GqXNVN0+ZXk7V35laZsJz9rVpxA5JbGKVh6Q59+bmjj+8ipMgfbR1h5oXrH+LMULZtj72dhkN2dmAsQO8ENpFtr1pV2NjsHP8/EyqcJ9NOVkCW3JBC8632548+m56hVRDNHBPb0ZnwCOjWjZVuuB36s99W2c+fkiAAQ2nxkkNyvBJ0U+qaacD9tc7M2po3rrPOj1eoVW3LKO0TnfXKnUeBX0XDHTmFOp7MFlWA4hdxgduc4ScB8DbZ7F2OsGlcDL15zGm+RrstR0hgzbAW48flyETM/kVsS75/L/4hpE6XzaInP6fY2xrT7wy6o6olZbovyhoyM1NioX4PbbXFA== 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=krst5Gkm7JY0suARBFyucKPoaXoJgRFwa+fItqdxLmI=; b=RzOECqxYZ6VYkZrRy7cUJkMdR7je6PYXfMcsPHMxyNwtzPRLMmyPP2dAPL9PPmswXZBlNizozbYc3Ulc6eIrViPxSVNIem7r/aXhKZK+9vLzhZS+fMZWcRKbPFHJ+BH2yMvuorHuc4mq88vuKul9PCQDBJv2YfHGVAKJLf5TH3g= Received: from DS0PR10MB7933.namprd10.prod.outlook.com (2603:10b6:8:1b8::15) by DS0PR10MB7295.namprd10.prod.outlook.com (2603:10b6:8:f7::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7741.36; Wed, 10 Jul 2024 19:23:11 +0000 Received: from DS0PR10MB7933.namprd10.prod.outlook.com ([fe80::2561:85b0:ae8f:9490]) by DS0PR10MB7933.namprd10.prod.outlook.com ([fe80::2561:85b0:ae8f:9490%3]) with mapi id 15.20.7741.033; Wed, 10 Jul 2024 19:23:11 +0000 From: "Liam R. Howlett" To: linux-mm@kvack.org, Andrew Morton Cc: Suren Baghdasaryan , Vlastimil Babka , Lorenzo Stoakes , Matthew Wilcox , sidhartha.kumar@oracle.com, "Paul E . McKenney" , Bert Karwatzki , Jiri Olsa , linux-kernel@vger.kernel.org, Kees Cook , "Liam R. Howlett" , Lorenzo Stoakes Subject: [PATCH v4 06/21] mm/mmap: Change munmap to use vma_munmap_struct() for accounting and surrounding vmas Date: Wed, 10 Jul 2024 15:22:35 -0400 Message-ID: <20240710192250.4114783-7-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240710192250.4114783-1-Liam.Howlett@oracle.com> References: <20240710192250.4114783-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YT2PR01CA0016.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:38::21) To DS0PR10MB7933.namprd10.prod.outlook.com (2603:10b6:8:1b8::15) 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: DS0PR10MB7933:EE_|DS0PR10MB7295:EE_ X-MS-Office365-Filtering-Correlation-Id: d15f6b1e-83df-4032-fcb5-08dca115bc9b X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|376014|7416014|1800799024; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?awF/FkNLjhnlny0gicOkOh9wYoSO9ANd/5n59m0l/lnMhAQJHQCyiYY65/HR?= =?us-ascii?Q?HLGmRhsmQbjeDiXprA2Ao593a6hS8Y8wURCKia/Qww74p/7TLC+Eg1egATWz?= =?us-ascii?Q?AINd9C/CxG49Isw3ywhE3BBkhRhN9MyqtcWZIXZbqxc6AidupYQyM1UmCO+y?= =?us-ascii?Q?oss9hcqQKUVmcTkSzW6BFfWvGL+uWh9UFzBW1wQOwz9s/+ScVUP18vJQotwF?= =?us-ascii?Q?wiHlMYsaN3XYc7F2KHhOQfkqB0FIruCr5gEH4tXixE4KKhvCss59HWowkOuC?= =?us-ascii?Q?MwNXfvZgqn9BGymct8fLFrPnR0P4uVKtVDIqAUakrcW89IMZEC+zPY89vnda?= =?us-ascii?Q?iNN3FTryz54q/yQLYadnqHi9qOLuQYQX+8glQdXYyugqXosAs7vJ57+EC1mW?= =?us-ascii?Q?Gg7m0aV1uqmyTJpXIjP58YpatMhL5WfE4H3JuWJtx0RngA1x0qlYE++c6OMU?= =?us-ascii?Q?f4CCAkGlAg89tF2q8cgLutnD/xH8o+aKr1jUB82TAJEd5LWs2+fM7AOItQt0?= =?us-ascii?Q?da2yw1zu4mzmAbGgXzfKCIet/2KVPuVxUIfUcmr5esdXMZ9JUoT1nfAX3OjC?= =?us-ascii?Q?Yuc5SzvPuMWI1O7TXb1Q7cDr3Vg9/l1LwO9qpzS7O9EhekSfAySmvta9H6Rj?= =?us-ascii?Q?3nyjqoQVM/Oot2ZKQ67OgrlkmbSKgG2sW3knMw0CS0bNley889b48rM2sb6j?= =?us-ascii?Q?MVSZmmTvk7jF6LALxkstCp20KaULWPIkvtzZyg1DcHlXHbgsJVWCgou8LxJH?= =?us-ascii?Q?cRC+BEDJG/ylQuhdq3k/4Stn/Klzq4IY/7Vxy8fFIxxi5TzFEXyTQ9+9t+Ph?= =?us-ascii?Q?AO5swyXLiu85rdvk9i6hXlovKZ7pDILKB81jW7fGZAEri3f/7na/PntG/JDv?= =?us-ascii?Q?/eqMINlFui0nPk77zUsms5i9sD9flGUR3z1AMfXEovmBY0EEzd/h6xTsY+yk?= =?us-ascii?Q?pgoKy4yU7qOSgE9RAwNQImCvYUYDFNPGwaXWV9ANxIXQYnqgtg24ZcLzOef5?= =?us-ascii?Q?e9HcAkfikt4UNne6LjoTbkbpW4UKzLTV3kfYbXOAnDkhhEjlVaM2bvXh8i5k?= =?us-ascii?Q?DLuzwwqlrJq75TmPY+UEM5tiYv+wWcOhabQtmhu+N6pzzOdya893pwxorBKa?= =?us-ascii?Q?yLLfk0hr1A6awvaxQnjpKP32a4NJ/wgokQQqzJkZxiPUJBLhMGGgp0W+E+sS?= =?us-ascii?Q?5PxRW6sx8cqyYSmnpBVrLL7NAk+oHfkpGPvu0+9pdmN8C+3CjXQ+AakTqdjk?= =?us-ascii?Q?VuUa5C9KClSUMfU8Lvo1e2k+3TeDOFm1LDBDFXXWt/sIJbJZII1m6cAxXuZw?= =?us-ascii?Q?1haMKSjGzDPM1cA8QvkBGYSpoXGC0cnRqUzro3oA9DTL3Q=3D=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS0PR10MB7933.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(7416014)(1800799024);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?iXHVtov7Cyhh+aVNr+AGtHpnddeimGLmvKnzR8YdfiamSQq66L76q9byj7Vz?= =?us-ascii?Q?HfzmLGzaoEb66qewQ8YXVfmrOkVdeb7GF/3/LmuuK3vU5bwCwRMVMwXjbdyu?= =?us-ascii?Q?ntz34/zIqbhJKIs1eTTciPTN/kR9xDIMPW+GgtKtAKG/JGDyl/W0Iu5qQrG+?= =?us-ascii?Q?3EmUZIV5J99Wtq2y2zEinQKCTMxmPx3eJpt0o482wXnk1dIdfEqqoRXvfZuZ?= =?us-ascii?Q?rcomfZvWDagor5jqOpvFpLwrnuhptGBBVz4jsNFqjTOuLY3p9sILM6bLOVjr?= =?us-ascii?Q?DqlgCp++uYEhe2HMJmi5p1orIIuV4mZgy6OFR/Ly8ofVgLyAv32S4zV8ALyO?= =?us-ascii?Q?v27gCM1JLSA5us0lyYg+WsSnw2xMQTVe44Ny4HOscno3hsC5PyEKNmCpxD5c?= =?us-ascii?Q?+6ksFYQ0GxNasc4HmdaDAj9s+YxLZ8eCmwtTaK4r9nA1xsXRis686kMDb063?= =?us-ascii?Q?CLzNiRMGDmCPpe2FiIiAGrei/Dr7k4EXdq4K8ICmum2WvOIzLnBmyS7i6FQF?= =?us-ascii?Q?AfWQ5WZHU3QTqKYT1ycef8vXvt1g3RM51/MBoNzrdoBA0M2cj+fXd5JsqBvv?= =?us-ascii?Q?Whs1ZEyfrRoXq9A/bAJy8V88X8N1iBF4zF0TlnSN1AOCJD4GiaYEZlE7L/PU?= =?us-ascii?Q?1pWBmc3JS7AkHr+sPEsABK2uLfaLlQLOPVgl9NNVuCCXaGAbmjOXGWWkaqPZ?= =?us-ascii?Q?TuFeIEABPnVruqwL7LFv4Z6fUnJPimfDMHnbpeZs9nbu/7FpFREvoZEa3wNo?= =?us-ascii?Q?JnZTSdq+EbRtneUe5lNyhNprPMfhZcpLRDUCpZkTb1nYCPwkF+a2mRWN04Rr?= =?us-ascii?Q?IvHgmdkqysleeUoVBAH1gBiFY03ZgZokRod+wep/H6TGTfP3jrompJSNnoHX?= =?us-ascii?Q?ODNaKtbtf1G6PCUTPvYstvDzMvngcQ8ufe3Vrko6x/3nf+sr1uCl0vKG6KBL?= =?us-ascii?Q?ZZQZAkU+KJo9DzCysApxLvOuPw+9C3QkI43iUbEkRDCzZhKbwcOYz4EPHUtN?= =?us-ascii?Q?ilc5hahqIhsbu3uJ2ZFukXL2yYH8yv3X4N5dTEldnDUqRo6MPsBLyrqw/sPw?= =?us-ascii?Q?3jbRJboMseNos7e8DVM0onjHi212aOtUhlHrgXdVOkzn+AQXAR8azm9dhHDn?= =?us-ascii?Q?wR5poPoeUCwtnhwTo9MIf8JDFYG89PvvWVvui1jsnwtMRWPxYswLTCgSbsMY?= =?us-ascii?Q?yaSvuoykxgh3CUHdS/6IleCTXOwVJnHWGHqP3oifAqfSwtygjzsWOEQOgz03?= =?us-ascii?Q?B3fzHwf/cel4JOQyBb7uknm/ErDy6Sp1ml+AEIpXrpLPXB0vF2L2Bj7L4Oxz?= =?us-ascii?Q?MD3erMKrOSaHYGgafww8WSa0CRBVabrY/lIWj4zqgARhHGoccD+R4yuJ5pTF?= =?us-ascii?Q?1ZaSuw7h2av2DbrVoV5iZy6g2KujRtrgxYTmUjrD6MCS1J4r6UEUujiGBKRS?= =?us-ascii?Q?kusTBY8FX82iHxMB6nkhZsYvETtdesjc3g0WhRBNSVdackx1d9Tu69pBu8tR?= =?us-ascii?Q?1aitqBKY2SmisxOlINV41/IVWKYCTVaMzj4g4tHvxRTYSzI1JrN66WeYeSJX?= =?us-ascii?Q?9NWWjFxVAJPC7QvFj6J973jbjTg5761vq3qUTt8SEv6T4xZoEhOkk/2TCUh+?= =?us-ascii?Q?ig=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: 47OrMqAA2zP+jTvIfxczwVnlWFqNkZfe8ECPtKgepKVqbJ3n3jVoojwRKPAtR/X5tVu10nikptAeleeAhmJly4Cj+xKc+9OZavOFJdN9g21rhegSaFaHKhaVLD80eqtONE3F0l7EnOlHnVCY6ZhreYuGTLHwAW+eOO8D4QOi13Hjbt7AFPHO0iusuHuIL4Iv0deQv4/gAChuBmiLgkcxBUsTTzMH0TWv4b9LPfan2kHIsrD3/x2zfmpPIrWWiKweiZaqW68ImspUF/04HQG/ZX9m2beLrgo4ivuQ6esdyzWDCTzNkOTtXYq8FJnw9o7C6ZHT80tyIQRU/Y+L6Q+zPpsP8j4rFfTLGBDpiuXhBDwFD18tiuS+aRqNp+H5t3fpYnols+IjeAYLVYpxGK0QKNVJ6ya5Ky3LhjHKfNwGMdUwCibDSTOgUMYY2FMLVwID2hNLV6xWECLc18DJMVa3J/9AAvTfm7AO1q9nXozNn4D+6o6z00WVLP79OCv1GoaZpFymWgZ7RZ1mrFrOyhJ9RquOkrYyIDLKujIbWmEKz2J9kd5Gn5mx7ubHkfUuKuVvmlctsgJju9EGFGhXpVEyrQOPLawhX14woqqTKzNearI= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: d15f6b1e-83df-4032-fcb5-08dca115bc9b X-MS-Exchange-CrossTenant-AuthSource: DS0PR10MB7933.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Jul 2024 19:23:11.1365 (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: h0G25c6OMp3yWJJBiCbWUyPHESvhpxRv32O8MU9VAl48rZkA5Wm6irO+7jaD4QKtcsI/pkTCQtw2nIQcw5SLkg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR10MB7295 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1039,Hydra:6.0.680,FMLib:17.12.28.16 definitions=2024-07-10_14,2024-07-10_01,2024-05-17_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 spamscore=0 bulkscore=0 mlxscore=0 adultscore=0 suspectscore=0 malwarescore=0 phishscore=0 mlxlogscore=999 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2406180000 definitions=main-2407100137 X-Proofpoint-ORIG-GUID: 3042VwgN2bpGVj4wW1pPnVHq6t3aR_cE X-Proofpoint-GUID: 3042VwgN2bpGVj4wW1pPnVHq6t3aR_cE Content-Type: text/plain; charset="utf-8" Clean up the code by changing the munmap operation to use a structure for the accounting and munmap variables. Since remove_mt() is only called in one location and the contents will be reduced to almost nothing. The remains of the function can be added to vms_complete_munmap_vmas(). Signed-off-by: Liam R. Howlett Reviewed-by: Lorenzo Stoakes Reviewed-by: Suren Baghdasaryan --- mm/internal.h | 6 ++++ mm/mmap.c | 80 +++++++++++++++++++++++++-------------------------- 2 files changed, 46 insertions(+), 40 deletions(-) diff --git a/mm/internal.h b/mm/internal.h index 43b3c99c77ba..a22547125c13 100644 --- a/mm/internal.h +++ b/mm/internal.h @@ -1488,12 +1488,18 @@ struct vma_munmap_struct { struct vma_iterator *vmi; struct mm_struct *mm; struct vm_area_struct *vma; /* The first vma to munmap */ + struct vm_area_struct *prev; /* vma before the munmap area */ + struct vm_area_struct *next; /* vma after the munmap area */ struct list_head *uf; /* Userfaultfd list_head */ unsigned long start; /* Aligned start addr (inclusive) */ unsigned long end; /* Aligned end addr (exclusive) */ int vma_count; /* Number of vmas that will be removed */ unsigned long nr_pages; /* Number of pages being removed */ unsigned long locked_vm; /* Number of locked pages */ + unsigned long nr_accounted; /* Number of VM_ACCOUNT pages */ + unsigned long exec_vm; + unsigned long stack_vm; + unsigned long data_vm; bool unlock; /* Unlock after the munmap */ }; =20 diff --git a/mm/mmap.c b/mm/mmap.c index 1ed0720c38c5..62ff7aa10004 100644 --- a/mm/mmap.c +++ b/mm/mmap.c @@ -523,7 +523,8 @@ static inline void init_vma_munmap(struct vma_munmap_st= ruct *vms, vms->unlock =3D unlock; vms->uf =3D uf; vms->vma_count =3D 0; - vms->nr_pages =3D vms->locked_vm =3D 0; + vms->nr_pages =3D vms->locked_vm =3D vms->nr_accounted =3D 0; + vms->exec_vm =3D vms->stack_vm =3D vms->data_vm =3D 0; } =20 /* @@ -2388,30 +2389,6 @@ struct vm_area_struct *expand_stack(struct mm_struct= *mm, unsigned long addr) return vma; } =20 -/* - * Ok - we have the memory areas we should free on a maple tree so release= them, - * and do the vma updates. - * - * Called with the mm semaphore held. - */ -static inline void remove_mt(struct mm_struct *mm, struct ma_state *mas) -{ - unsigned long nr_accounted =3D 0; - struct vm_area_struct *vma; - - /* Update high watermark before we lower total_vm */ - update_hiwater_vm(mm); - mas_for_each(mas, vma, ULONG_MAX) { - long nrpages =3D vma_pages(vma); - - if (vma->vm_flags & VM_ACCOUNT) - nr_accounted +=3D nrpages; - vm_stat_account(mm, vma->vm_flags, -nrpages); - remove_vma(vma, false); - } - vm_unacct_memory(nr_accounted); -} - /* * Get rid of page table information in the indicated region. * @@ -2632,15 +2609,14 @@ static inline void abort_munmap_vmas(struct ma_stat= e *mas_detach) * @vms: The vma munmap struct * @mas_detach: The maple state of the detached vmas * - * This updates the mm_struct, unmaps the region, frees the resources + * This function updates the mm_struct, unmaps the region, frees the resou= rces * used for the munmap() and may downgrade the lock - if requested. Every= thing * needed to be done once the vma maple tree is updated. */ - static void vms_complete_munmap_vmas(struct vma_munmap_struct *vms, struct ma_state *mas_detach) { - struct vm_area_struct *prev, *next; + struct vm_area_struct *vma; struct mm_struct *mm; =20 mm =3D vms->mm; @@ -2649,21 +2625,26 @@ static void vms_complete_munmap_vmas(struct vma_mun= map_struct *vms, if (vms->unlock) mmap_write_downgrade(mm); =20 - prev =3D vma_iter_prev_range(vms->vmi); - next =3D vma_next(vms->vmi); - if (next) - vma_iter_prev_range(vms->vmi); - /* * We can free page tables without write-locking mmap_lock because VMAs * were isolated before we downgraded mmap_lock. */ mas_set(mas_detach, 1); - unmap_region(mm, mas_detach, vms->vma, prev, next, vms->start, vms->end, - vms->vma_count, !vms->unlock); - /* Statistics and freeing VMAs */ + unmap_region(mm, mas_detach, vms->vma, vms->prev, vms->next, + vms->start, vms->end, vms->vma_count, !vms->unlock); + /* Update high watermark before we lower total_vm */ + update_hiwater_vm(mm); + /* Stat accounting */ + WRITE_ONCE(mm->total_vm, READ_ONCE(mm->total_vm) - vms->nr_pages); + mm->exec_vm -=3D vms->exec_vm; + mm->stack_vm -=3D vms->stack_vm; + mm->data_vm -=3D vms->data_vm; + /* Remove and clean up vmas */ mas_set(mas_detach, 0); - remove_mt(mm, mas_detach); + mas_for_each(mas_detach, vma, ULONG_MAX) + remove_vma(vma, false); + + vm_unacct_memory(vms->nr_accounted); validate_mm(mm); if (vms->unlock) mmap_read_unlock(mm); @@ -2711,13 +2692,14 @@ static int vms_gather_munmap_vmas(struct vma_munmap= _struct *vms, if (error) goto start_split_failed; } + vms->prev =3D vma_prev(vms->vmi); =20 /* * Detach a range of VMAs from the mm. Using next as a temp variable as * it is always overwritten. */ - next =3D vms->vma; - do { + for_each_vma_range(*(vms->vmi), next, vms->end) { + long nrpages; /* Does it split the end? */ if (next->vm_end > vms->end) { error =3D __split_vma(vms->vmi, next, vms->end, 0); @@ -2731,6 +2713,22 @@ static int vms_gather_munmap_vmas(struct vma_munmap_= struct *vms, goto munmap_gather_failed; =20 vma_mark_detached(next, true); + nrpages =3D vma_pages(next); + + vms->nr_pages +=3D nrpages; + if (next->vm_flags & VM_LOCKED) + vms->locked_vm +=3D nrpages; + + if (next->vm_flags & VM_ACCOUNT) + vms->nr_accounted +=3D nrpages; + + if (is_exec_mapping(next->vm_flags)) + vms->exec_vm +=3D nrpages; + else if (is_stack_mapping(next->vm_flags)) + vms->stack_vm +=3D nrpages; + else if (is_data_mapping(next->vm_flags)) + vms->data_vm +=3D nrpages; + if (next->vm_flags & VM_LOCKED) vms->locked_vm +=3D vma_pages(next); =20 @@ -2754,7 +2752,9 @@ static int vms_gather_munmap_vmas(struct vma_munmap_s= truct *vms, BUG_ON(next->vm_start < vms->start); BUG_ON(next->vm_start > vms->end); #endif - } for_each_vma_range(*(vms->vmi), next, vms->end); + } + + vms->next =3D vma_next(vms->vmi); =20 #if defined(CONFIG_DEBUG_VM_MAPLE_TREE) /* Make sure no VMAs are about to be lost. */ --=20 2.43.0 From nobody Wed Dec 17 10:46:22 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 84C8B197A93 for ; Wed, 10 Jul 2024 19:23:46 +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=1720639427; cv=fail; b=mEAqFa2aXo0SgF9LsZW96yVb3p8nha1UuVX9+ibJ1byWB/uD2WaOnZvbxovjkrB4QCrf0N3Y1a3bWlrspP5jt20ApmjylijN1+5GBF6jeNBnkrIyeOi0nh6CAUmKX0+NeD3PEUtUgezns7Alfve4d8iVco+7lyjnh5Yks8yrFYU= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1720639427; c=relaxed/simple; bh=o/vxcAtBQy4UY2vf/sacRBA+pJQ2L8jcqQcEGuxhZRY=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=CgmXZTMYsGRUbgcwKqeOdgSikdxppqnUA03A7EjW1o3P348bhGE5DZV4Ux5Ht/bJWn1e9+EKZzHW4leCPxE6w/5FHiusRLjLt7SHWVvAF3GEyl645EyJlvW71dG37TyN2nJ+Y2VMOodeaAUsGJ9b7EGlRk3U0qcqESjkg8wP44s= 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=kH75C1QG; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=QhtIYVJN; 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="kH75C1QG"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="QhtIYVJN" Received: from pps.filterd (m0246627.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 46AFqOb6029616; Wed, 10 Jul 2024 19:23:35 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h= from:to:cc:subject:date:message-id:in-reply-to:references :content-transfer-encoding:content-type:mime-version; s= corp-2023-11-20; bh=R72J2Rq+pSM7hD2A/i8y70d9fRxZSFkCgc//56gCKE0=; b= kH75C1QGYiqJh7JsZk5E/VoCsVvp5/pZvaD4eup3bFhaQElIoSYdeLUPZzwsOy3g EYviTh3TL+CV0wW4zLIyPqFdyVMv9G/rgHIN32/iUBMz9k3eYfG3Mecq8Nq0yEeX mozO7i4TmGeBjtNli20D+fA/DIWE3M5l4XdSm0LUW4SsE0MckHFhsSE59V+5w1EO kzNpOXMSUEAHOEWVU/6GZ85gUzQGi35WiNLyOjID8a7SGNOH6m81HmVAIGEuNdxt Hujwuf9KBIpzmhqW5OiUgklDoO6ToXF1jRGRATbhk81CHQZOzDRl8GmR9JLxQsYs M383hYncMHNDxdTj9pEVgQ== Received: from phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta01.appoci.oracle.com [138.1.114.2]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 406wgq02f4-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 10 Jul 2024 19:23:35 +0000 (GMT) Received: from pps.filterd (phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (8.17.1.19/8.17.1.19) with ESMTP id 46AIs3bf022604; Wed, 10 Jul 2024 19:23:34 GMT Received: from nam10-mw2-obe.outbound.protection.outlook.com (mail-mw2nam10lp2047.outbound.protection.outlook.com [104.47.55.47]) by phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 409vv1gwv5-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 10 Jul 2024 19:23:34 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=hXJSVk06BGL/re7ezazeKpybX9q1PoATPkV/S6K6vhpKo3qxcyiI4CIMDUnxJJcuxDfapBHPDj59ZVU9/D3JKZlo7P4ntlOLrFtw9PIzSujvcpoLWeea+Dw6jjgJwUfMeKuNSM+rFWvRNyZZl8Fc/KyXMdPKG5dBSdYwe+i9HeZfDrDvE73oXiCH5yHUoHUOe+7dpDdH75aLDLJgKr95DCdCCpYoM2p0dlGqrTRKVA+zl/xV+WTd9mZDlCIdGKRIq168qSxgfQjsCirFXx2c+0ZKDtS6uvWzTaeBr+kdVf4vx6XHGhHZKnqKdZyFwf/E4H+H6Cn4p0WdT0jzWfm48w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; 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=R72J2Rq+pSM7hD2A/i8y70d9fRxZSFkCgc//56gCKE0=; b=l6ZwNhzV/AryAvn0coknt3pUkKL7yKuYwi/MBAk5bsLYZg9ns75Np3I0fAcirzlZyUNO8HXovhaYstOsufA3Sad0lAOyzWNTmSlTn4/Eyu+Ju/12CxkouDt1WB5b/IpZ2MEY+GmRKzFYvRyewA0wCTZZbvF4AO6Pj7OGkCML0YgDEt81wrSMurn1uVJ1EauB4hlv/dAuvtTG4uOWgh5DSNquWOebInHJ4FImaVVe5bCtJVTcTAYLI5rcL+t85fRqmj0YAhmHRpWSV4g/jfHtRpAjc9mRqLedUQRjCerXGo7a/pdHV3KB6bEFgWv9ZUBfMR9MqvBjCYaNStaCLuDC5w== 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=R72J2Rq+pSM7hD2A/i8y70d9fRxZSFkCgc//56gCKE0=; b=QhtIYVJN0O7XXGVvzx8OkSwBYg+Ez6hI1RaIXoPP81cBYSVuQ8NqIDDBWsDI3TFMeEvCJGEhWSpiKcnHdmfGE7u78E+V5pW3TCfMBeOf7h+o7uP3/p+hsbI/WEiOfcf7GTLPoA8tyOgFpE13DIXsXfAtYgAqkdlztgKCbjQ7AwM= Received: from DS0PR10MB7933.namprd10.prod.outlook.com (2603:10b6:8:1b8::15) by CH3PR10MB6833.namprd10.prod.outlook.com (2603:10b6:610:150::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7741.35; Wed, 10 Jul 2024 19:23:12 +0000 Received: from DS0PR10MB7933.namprd10.prod.outlook.com ([fe80::2561:85b0:ae8f:9490]) by DS0PR10MB7933.namprd10.prod.outlook.com ([fe80::2561:85b0:ae8f:9490%3]) with mapi id 15.20.7741.033; Wed, 10 Jul 2024 19:23:12 +0000 From: "Liam R. Howlett" To: linux-mm@kvack.org, Andrew Morton Cc: Suren Baghdasaryan , Vlastimil Babka , Lorenzo Stoakes , Matthew Wilcox , sidhartha.kumar@oracle.com, "Paul E . McKenney" , Bert Karwatzki , Jiri Olsa , linux-kernel@vger.kernel.org, Kees Cook , "Liam R. Howlett" , Lorenzo Stoakes Subject: [PATCH v4 07/21] mm/mmap: Extract validate_mm() from vma_complete() Date: Wed, 10 Jul 2024 15:22:36 -0400 Message-ID: <20240710192250.4114783-8-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240710192250.4114783-1-Liam.Howlett@oracle.com> References: <20240710192250.4114783-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YT3PR01CA0118.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:85::32) To DS0PR10MB7933.namprd10.prod.outlook.com (2603:10b6:8:1b8::15) 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: DS0PR10MB7933:EE_|CH3PR10MB6833:EE_ X-MS-Office365-Filtering-Correlation-Id: 913993db-e462-40fb-3f62-08dca115bd62 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|7416014|366016|1800799024; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?qpxRz3lnXqCWo85Py7wuPQqo3tHZKh2aTXeX9w6aNsehFIPOXnr+KxmN0m0p?= =?us-ascii?Q?axsIQvcK7vcAfx4XCIu5oHcxzjoMXG5LfofcZBt6q9VeDhLrpcTZzYq84xND?= =?us-ascii?Q?E7als1tmz5q3tQbU3EZeZAhn3FEmo8pRpP66qSbiPLZpzlCoz7kyQfQhZhjI?= =?us-ascii?Q?O9/N4vQNRpMEA45vcCrd/bMJgBgrXdjHp2cI/QKC15bATsv8vfjbnUFoY4Ti?= =?us-ascii?Q?LoytHOH6u8WqjCoIKf+BPFbAV2sGyBPn1LqM4ZoHvSdjSkB/moGYZRc6w/sM?= =?us-ascii?Q?ceQPIM1P3mwl+56osvIp1/nEknDqFQe832SMYHXxtbpzVWWPMBIkYjLtX5FD?= =?us-ascii?Q?QeSK7azS76n87249zhCCpQxf1eBBc1rkojxChXto+PpxWPYUDp8eeclhGU8e?= =?us-ascii?Q?wR9EMKqrDw/VMGT0RRstzScrAnuV2qrfBIob5wJ5LSjVbXQY0HaEwP1hT5Ey?= =?us-ascii?Q?ATAOeyKwr9pCKQ+vUAIyfcEA9K1rPOV/orXMEy1Ugt8qa80P4ycVS5Qa+oIo?= =?us-ascii?Q?zYPT6L8MFGjZffdI0weohF5bf/BPL1EfnhRbqOj6sW9f9mvdPIHBFxtC1yOD?= =?us-ascii?Q?lDvuQgJ6D6g9xuPQKMy6JdF3ZFcP782aAhw9RwxQ0Ns1wb1xY3/15aAXJjby?= =?us-ascii?Q?rERCNkNy9grKiLThy1DQn6uXhQ+sjct0HqF6jzUQgon8p9p50sEGrxWMCiFP?= =?us-ascii?Q?d7lZD59M1cC+372X+p9I2uYQWfG3TQi8fXsU/RyDOjydTeV+XL3V+15dy755?= =?us-ascii?Q?Aqy0zjnPnwUX0gVzEHOpv6HKYXAhqwxI8BnV28FNdUcron4wv6efQ7CesvSp?= =?us-ascii?Q?asfQgTuHDs3NwSoLYu9EzwCUGUXjo06+tyTdq6Kl2DPBH5/ghLLtmIPppgwO?= =?us-ascii?Q?00sF7MvQCmW4+ml4MnyeWVos4fc3wsfz5KCI3T9iIDRHZUlvllmbufCrwpWC?= =?us-ascii?Q?LwI55pmo2SisqpKZj4aLQ9isHz0olQ3wJHFgKEnxuHGN1st1A6tLiA0mC1tb?= =?us-ascii?Q?tywKyfTawtZgCbmm5iI2DJPb1vM/aKVVCpg7ot4b5U83wjMuCYPm7658wwYC?= =?us-ascii?Q?TX8uFLgvISyhmabV8pBN1XpqWZ5b0cgf6+ryJWU1NEr+n+cSh1pZJwRrxEo8?= =?us-ascii?Q?85i+bA7nv01wJRhNWGj4Y2z44AHBHXVSRIb/CIgn62kVEhoxMBUYeLnCvqK8?= =?us-ascii?Q?40aqfOFaaixwQzQa1JHF4lglfgIliJ1XqOfkK8vxT5/XF7Ih2asiTqw4nlu7?= =?us-ascii?Q?1NO4ypcdGAjkRS/0AeP5ahOJd1H1jACua5CkJb7gjfNvtao26+V9Qm1trRDD?= =?us-ascii?Q?76rPW5lGt6eltw59X+c9ZhJcNeJrtZH9DzTDw1Qe7Sb5rQ=3D=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS0PR10MB7933.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(7416014)(366016)(1800799024);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?3GXi1P14dsee35q0A6tu4L3vftdQ8r/8To8OT8IAtIM3EnMqIrhz4FN+cxpN?= =?us-ascii?Q?Xhq/64klJW77eDdoOYiQQMydc+e4mDvhkvZXD20gCM9Q3zAcni4JXGoy2L+s?= =?us-ascii?Q?zrE+NSzFZIv20QAhfR6h7tildrWzE9IemgHehA31VeuFIEe3dvl1U2JvICRF?= =?us-ascii?Q?Lv4Vd5wQNTwgJUS2KuFJ/7et/8gvuUDZeOo1vf/No2Sv2Rf6Nbd1+RbBUrdj?= =?us-ascii?Q?PyiSS9Hl9xKR/WlI1HJrQDXvi2AWhZqz6dFruNiOfxXb7EkyrossIGgdxFmC?= =?us-ascii?Q?m197vdcd37k9W/ubFHS2cj2PZDfPqApIQnMTqQZWgujcs64oIUwQXxJkO9FF?= =?us-ascii?Q?C8iuRedlV7m31MfngfWs8XiYBvwJYsV58vI1lNUyZNo9V3+rVzubTlJdVC1W?= =?us-ascii?Q?e9SiY6ddgYh2Ig8QWVFL3/YMg8AdoHRm6Ct7lDTLEwxEolT3krqe3IWeHnMv?= =?us-ascii?Q?mGLhZY6W8BhxC5sFDoU2kuA13UfKHoEvrXuSPHzzt76s5FJq745CfmOVbQlg?= =?us-ascii?Q?Kt7sVHnjnKI1GGERWK8p1UWMbrjqXBRj2pekNTkEMivCoIugrLrub06lAiCs?= =?us-ascii?Q?V9e8J23EThpVZCE4u0scJb1n5COmoW8gPmqae2Mb9iuj/1OLDwgQhMbwzJCV?= =?us-ascii?Q?A4zd1T44T7GD866j+a2wd7G2R5GEZQX5JISFL5NJNUnH9anSodcEAnAhv6IL?= =?us-ascii?Q?YNR5rkd8oK51mUwRE9H/3H+Gvo+wRLJcmbYGt805IvTBivs6XtGu6GYzPLuh?= =?us-ascii?Q?wQj57qZJZ4DolCrhWJ9OavNHW6rjqSLLVsAk1UAi2XF9I2YY3zL1Q5ED1reI?= =?us-ascii?Q?KQouKMDcAS8HY6Nq6j0bqDd8nCjl/s+XbF7INJtQAn8M6JhWpAZfj2oytdU8?= =?us-ascii?Q?cEYz//1SjbwIL/sws6O6KASGK98tUaVuwf9UHA8UVgJm4JC8h8hZpsc0sgFw?= =?us-ascii?Q?uKqhLJedSrg2qbGRNvqx9Ww2NfWcAgxn2+lOzHETZnvuYgc8tPk0F3DO5thH?= =?us-ascii?Q?zESgYIYTKuvSWhebF4BNDocYyblmZL9GyfSrY+HPq8hTSSQml4cPqcwxqvFV?= =?us-ascii?Q?xr95TSq1dxVK7WFAbTOx/x9lCtKC/zXjUNKezgZefbBHgyKFzY9u1mOXUoYW?= =?us-ascii?Q?XpzKmWMT5BOPqxKQwaEXHksD6hNnPI0Ck5DENPwaIdvgKEbp6O9dma5RPdIe?= =?us-ascii?Q?oxNbEI9D0CJ4ZWex5Vj8jrD36nrtbv5SUgJmzjzyukOt9yh4jaXJvSx4V5WL?= =?us-ascii?Q?2448VI6cMnRbnmB9H3vDlp37A42YHzHB65d537kECbQu1puZwHvN9XQ0raT/?= =?us-ascii?Q?yPSk03hdQ9NEd+k75wVQ4lpZR6BacuZ2g3sg7xybSOX5zzy0/VWZv9c2aQkg?= =?us-ascii?Q?xsd4aMfvljP5Y2+8I9jGd+tBrTwvz59SKg99A1eZbUVg2gLdIxq2dNhoRTvE?= =?us-ascii?Q?/J1er41UslYy+f/I2ZFps8klMDWZVjylU5ja6FY1BNo/IxrsRAOOfeGDWVeq?= =?us-ascii?Q?gv+GRV5I0716wveZ7I3xVk5IgFXuqpiMl7SKd9+/bJWfoj8Rbq6jmi0lWeVB?= =?us-ascii?Q?TU0GWxGAa4UFFxHpm+kQNXArjCmCe0NmK6+9zt6tB6sNHfQgvUJjkM/tObsH?= =?us-ascii?Q?9g=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: PRKu89PPurl9w6qEoyEUVf2JPRwnc/K8W1McNoo1c5a/6fW01RVMX0YR5R+PSTALha2G+42XKrxwwGoZqvrnwcW+AyLE+tDQFHvBPYW0G0V9aCIkyOlS9L7xpSRWNONLIecc6vw50SkvEu8x8yscIPXLwNtNzOKU8zlJYwWh7fchWnTtdsxY+KVrKqltSq0vbUvKrtxUN32fkaTpbLLha2Ad9D+z1fNybRgbkkg10KB6bTwTpLF0pB9ddZq2VqxJL1yfW3SomtnI45rgZnOGTmEAlZ+uo/UClQ/PwSbMfPX0pySyYC51ljVa1joEM09BZA6WEI4TYHPIfgS5MGTJR38hfSheuRwpJhx2J1yum5kSJcW12qkDtAs96cLfaWW+AF6kCNIkyTG+L3uCOAKXR1DueTwnKjlm6tgn1uypEGih/VBtSeLeQ+q866/6VuuZn9i+GUSChuTNMlpz3Fg3odh1AP8USAhqHt/zmNwAkN8oPPgP+f2FgsabQKHCkq3MxfCa5TQBOH54YAgRYSVuaJFCo57wJ/j5vdxCgOvHhvqFXXl9hWOl2Lq51oej4lOwbxJrYnlfEI3gzoEPgFBZbPkJ8Rdiz4/uXjwe8ylIO0U= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 913993db-e462-40fb-3f62-08dca115bd62 X-MS-Exchange-CrossTenant-AuthSource: DS0PR10MB7933.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Jul 2024 19:23:12.4276 (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: gs9G4uTv6nLBU+h8/F4NIE3JnTzije6TnGKzOZnjZ3ESc9ObXv1Wxd93RUyUvenuWGHBB0dXlCsb4NXbauDzvQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH3PR10MB6833 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1039,Hydra:6.0.680,FMLib:17.12.28.16 definitions=2024-07-10_14,2024-07-10_01,2024-05-17_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 suspectscore=0 phishscore=0 mlxscore=0 mlxlogscore=999 bulkscore=0 spamscore=0 adultscore=0 malwarescore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2406180000 definitions=main-2407100137 X-Proofpoint-ORIG-GUID: MCn9IQfe5Uz7v5Q-FWv99Znj6zJzbt2S X-Proofpoint-GUID: MCn9IQfe5Uz7v5Q-FWv99Znj6zJzbt2S Content-Type: text/plain; charset="utf-8" vma_complete() will need to be called during an unsafe time to call validate_mm(). Extract the call in all places now so that only one location can be modified in the next change. Signed-off-by: Liam R. Howlett Reviewed-by: Lorenzo Stoakes --- mm/mmap.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/mm/mmap.c b/mm/mmap.c index 62ff7aa10004..1c9016fb6b5c 100644 --- a/mm/mmap.c +++ b/mm/mmap.c @@ -646,7 +646,6 @@ static inline void vma_complete(struct vma_prepare *vp, } if (vp->insert && vp->file) uprobe_mmap(vp->insert); - validate_mm(mm); } =20 /* @@ -734,6 +733,7 @@ int vma_expand(struct vma_iterator *vmi, struct vm_area= _struct *vma, vma_iter_store(vmi, vma); =20 vma_complete(&vp, vmi, vma->vm_mm); + validate_mm(vma->vm_mm); return 0; =20 nomem: @@ -775,6 +775,7 @@ int vma_shrink(struct vma_iterator *vmi, struct vm_area= _struct *vma, vma_iter_clear(vmi); vma_set_range(vma, start, end, pgoff); vma_complete(&vp, vmi, vma->vm_mm); + validate_mm(vma->vm_mm); return 0; } =20 @@ -1103,6 +1104,7 @@ static struct vm_area_struct } =20 vma_complete(&vp, vmi, mm); + validate_mm(mm); khugepaged_enter_vma(res, vm_flags); return res; =20 @@ -2481,6 +2483,7 @@ static int __split_vma(struct vma_iterator *vmi, stru= ct vm_area_struct *vma, =20 /* vma_complete stores the new vma */ vma_complete(&vp, vmi, vma->vm_mm); + validate_mm(vma->vm_mm); =20 /* Success. */ if (new_below) @@ -3354,6 +3357,7 @@ static int do_brk_flags(struct vma_iterator *vmi, str= uct vm_area_struct *vma, vma_iter_store(vmi, vma); =20 vma_complete(&vp, vmi, mm); + validate_mm(mm); khugepaged_enter_vma(vma, flags); goto out; } --=20 2.43.0 From nobody Wed Dec 17 10:46:22 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 84CD6197A95 for ; Wed, 10 Jul 2024 19:23:46 +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=1720639428; cv=fail; b=DW40dvNsN0fVZ2/GpdnSeAK1OKYPi7TrOkKfIZhyBX9/aclJuHhZGqOyg/+yDsdXxZQTl6V1Fcj8osfExIE1jSkF5I2FuU3/MoXUWdWLvP/LM6lfWz4buf5LtmONL2p+VpJL3vLFeW9FxUHKTKfOJafwTmxIESrs2wh0Fn/UmTc= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1720639428; c=relaxed/simple; bh=SPC04A4gl7qVW535wKd38FTZ+QYFwYocvr8pZPQC/lM=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=K9EgnmSyV76dtjHQvJnfd1fSSpUXEz0r/isZCTbBr2P0Ay6PHiLu+wzx5bJMMU5X8W5E7tMsCDDIvUjjqy3wJN18fSGVejd5IZrqZinIaVcBJ/loU+2qIHpBOQ34taqyUfac5iBFnZD+zP+X+kO3LJDzAPVI5TsPPbuKj0hWIdI= 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=BlYHKinr; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=Xa4/BQHy; 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="BlYHKinr"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="Xa4/BQHy" Received: from pps.filterd (m0333521.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 46AFqbUf019840; Wed, 10 Jul 2024 19:23:33 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h= from:to:cc:subject:date:message-id:in-reply-to:references :content-transfer-encoding:content-type:mime-version; s= corp-2023-11-20; bh=LArHVtRPmTnLL4Ka/8b8U968Rn79AaiiLYmA/o/M1Rk=; b= BlYHKinr82YswGyrcvOyNb14MaPu+zvsYJdpdUufMcVtbJdelLgRUzplSzlOotNu ep7JianDBtfn3XYubnjyqn4htnHlcCsBCYmgFgEquU0bX5sUY9coRzl/OuO7Vcl6 Zg7zwM82+zEPBepsQziaxRFpXC0yAFuJdH7JtgrWHk/+LjSoRquqEmV6gUC8+PRc rk1VIivCDTEWx+64zENn33aiopdduvWQ7MPF2IDQpIJV5Ig+MHZCJVFVr3ldD/SA Zkl9iRAzti0XkTYsSiMCavXWcUG0rnZO2IioDZ46rOSpUbdkfIMx9rHOf7U57+Yo qkVxvygLSIYD9qJa2SvdXA== Received: from phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta02.appoci.oracle.com [147.154.114.232]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 406wky83qc-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 10 Jul 2024 19:23:33 +0000 (GMT) Received: from pps.filterd (phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (8.17.1.19/8.17.1.19) with ESMTP id 46AIdNi6033802; Wed, 10 Jul 2024 19:23:32 GMT Received: from nam10-bn7-obe.outbound.protection.outlook.com (mail-bn7nam10lp2042.outbound.protection.outlook.com [104.47.70.42]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 409vv194ff-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 10 Jul 2024 19:23:32 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=A02j7e0iojj32mXhLwH5dqIplgiu8KPFri9UTEnZ2Wzi561bU+J2bbLA6uXoP+ZeIlCFlFq4h1J5ud+za1u7wNQ231aaqYuI1HmXrbT64xHIyRb1S7VVwa10RiL7oujCUw28AXQvR0ENvu6O91glNDcAJ9vgU1yyhQTRawd2B2GvmG3yzmakQU8JDFhTofxprAIPg70ZpxaTVxKnsJ8NDsfG9wEb1vVuY7dpvs/u1ortAM4DDZYrAObIDOE9Xwgmpmudckv4ssguu0dHcb8JvLSr59GoD5g43rbU9fPOm8dvRUq2fQhenYsVNgfwfd3nHr4757QrP738aPhcw3CIMA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; 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=LArHVtRPmTnLL4Ka/8b8U968Rn79AaiiLYmA/o/M1Rk=; b=ipVH1ZFf1vSAv/vxWz+54RNijxYUIQJtf0LveApiU9tdUrUon5TcUCxnuRD3mSB8PaZuUDNa/Qs24vazLgWt7GLWXJf0vhv5SMqU0KTo6o9VDyZ55rRX3dkXgqh9i7vMpv8yx5yCrs30fWRDOBDV80Zsi4D79bIapyudsp9NvyWom6gj+4aXZC8bATtFaNTNOlS8X796O5g22it0Tw5s8Z9s63hMIO7Zs8FbF98q7KGu9Qn1Uvzw4unEY5+pnCkcdOtWGmq9rnkfRklJCdjKpoUHuHlA614Vh2f9YkHUApqXQsLiV90xZUQQylpe+IEC+pcbbXs6v1twWZxTVcIo7A== 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=LArHVtRPmTnLL4Ka/8b8U968Rn79AaiiLYmA/o/M1Rk=; b=Xa4/BQHykvbbeG5SNfeiBaykc4q7y3YayV0YHXWhQJYpkdE8W17GfjC1KXdzu15pYoQPMKkQLIbBnPhpFVJAOHxFPLkEPznGnF4J4f3wrwM71cdH6DRlflmg3brmVcdCWORDxSSzU5XGEJskdxIwMIYF7mM1ca8P0EB61E5A8xQ= Received: from DS0PR10MB7933.namprd10.prod.outlook.com (2603:10b6:8:1b8::15) by CH3PR10MB6833.namprd10.prod.outlook.com (2603:10b6:610:150::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7741.35; Wed, 10 Jul 2024 19:23:14 +0000 Received: from DS0PR10MB7933.namprd10.prod.outlook.com ([fe80::2561:85b0:ae8f:9490]) by DS0PR10MB7933.namprd10.prod.outlook.com ([fe80::2561:85b0:ae8f:9490%3]) with mapi id 15.20.7741.033; Wed, 10 Jul 2024 19:23:14 +0000 From: "Liam R. Howlett" To: linux-mm@kvack.org, Andrew Morton Cc: Suren Baghdasaryan , Vlastimil Babka , Lorenzo Stoakes , Matthew Wilcox , sidhartha.kumar@oracle.com, "Paul E . McKenney" , Bert Karwatzki , Jiri Olsa , linux-kernel@vger.kernel.org, Kees Cook , "Liam R. Howlett" , Lorenzo Stoakes Subject: [PATCH v4 08/21] mm/mmap: Inline munmap operation in mmap_region() Date: Wed, 10 Jul 2024 15:22:37 -0400 Message-ID: <20240710192250.4114783-9-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240710192250.4114783-1-Liam.Howlett@oracle.com> References: <20240710192250.4114783-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YT4P288CA0031.CANP288.PROD.OUTLOOK.COM (2603:10b6:b01:d3::9) To DS0PR10MB7933.namprd10.prod.outlook.com (2603:10b6:8:1b8::15) 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: DS0PR10MB7933:EE_|CH3PR10MB6833:EE_ X-MS-Office365-Filtering-Correlation-Id: 77060ebb-325b-427c-7863-08dca115be9a X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|7416014|366016|1800799024; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?rTXd+9saBLgDXe9JmUOdq2KJFBVlQXs71CJKuBADWgkQYjDqqA/rUUK13cBW?= =?us-ascii?Q?TQUSf87h5hfV7xHRKahWUJgBLhk2o/aZCTG123folqAdFywHkIGtl+P2BFvP?= =?us-ascii?Q?H0nxv26wj0Zg4MDCdCjYLFaLKmF46m+otLA25/EMduuRcOSmfDfDJyAHJfiD?= =?us-ascii?Q?gZruu0N94G+fZD/XVNtXdJCtUIy+WlumiwbCtKD9taHN1IPVD6zODX1MKogh?= =?us-ascii?Q?wPZq+e38/YH3HeAe5YG9NKurEk4gNse1yZFTpNKPOrAf3F6LAOmEQIakjAdC?= =?us-ascii?Q?3rSVdLDAZobNwZxGETuUrFPISH0O/K0KvZaIlCHxKZkFfK4+G3ZOivWK2J+q?= =?us-ascii?Q?P07W4gi3XBMJHRMMvykWakIzIELRoOtvhJ+G4bRjkJdp8wqNNPZj1geI9JlE?= =?us-ascii?Q?rgAySdIaYKjLeRsRkX5nm4qt5nbHMppjbpQ6CVKq1PX4aEJXRY3iDiGui+zZ?= =?us-ascii?Q?t03C2R4F/uDWcYiGocKhyU/iBfMx9+66lKPXbDkeli8WoyQl9c56DUpNVb4S?= =?us-ascii?Q?tg285pWH5QQj2H6LqBIx7nbzv5XmrXBXOB9xnNtbfMJ8tSFPBBcWP2QzAiqs?= =?us-ascii?Q?S3wo6TZAt96CF5TpPG8v48r7tHRPnPSfoZZZ2Gfv9J+iDWco9WXPOeXk+ks0?= =?us-ascii?Q?e98DgHMbjqLoaHZNBeAi+VmxVPZlvMSVUXHhEqu2HEOx7XQFzs0K+fu2nMYT?= =?us-ascii?Q?nUMlZy8lSpxu0vN3MsIK35sg0L6eculimMKmBKbKBq+ypVJN4kWOctyYQfdU?= =?us-ascii?Q?wGZu3VbHuz4h/ceRGjjzgTxSBb2L7MH9YPHfVbigh/7kkINXMww9CNx4yjpC?= =?us-ascii?Q?YjzqvX5sY6aAXdNbJ0df7o15X5nkfR4YU6M5HPCCwV7cYObmr5ZVEqo+IujD?= =?us-ascii?Q?A1/58EH6Hzq1exP4n5iGuQa+PZ9K82rDRbqM8xWzYz/9ikRuIg59eC7UJPJo?= =?us-ascii?Q?PB9KacxNN0k1lqwaxMiQK90qMLvCE8N2Uzd8wwX9cocm4mTNdwgN15bkDcuf?= =?us-ascii?Q?eAvXvB9C/OA2x3BuQMSMXOFv6lJkeFQLuvZuGxTZxpyta39P7LcHO6YAW+g7?= =?us-ascii?Q?Re+w6IVIVUM2IaK54zm3tsntXwjnRgLhsx/bZUajVyA8rbMzL6SVNDls8rS0?= =?us-ascii?Q?wCurO00UF2dYRi2/NddLMNnOvjq8FOMTlgsrsySzeoY4DDyora6m2zW5iVHu?= =?us-ascii?Q?fK4A2UWHgcJfCmGYMkfwZ0P20vXopwQDDT8Cbugw6unjOt3dO/HsOFZFS/up?= =?us-ascii?Q?xS+AD1BKW8Dyo0pFlugOSDZj6Sx5XiatrOuO+P+/khh+bjpNuWw0tgO3g4XY?= =?us-ascii?Q?vXUFgKun6as4MwGTD8mDy82OQY6aBSCD0GWFTY1E0zqigQ=3D=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS0PR10MB7933.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(7416014)(366016)(1800799024);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?F7q4+GgKpp+cJbeqwFiEuIAhB1AKM4OLAnO2Ig0OiHrsY3y+hhn8xBDZ/V1R?= =?us-ascii?Q?E91pS2yUd6TYETl1FVRPidEgk60fmLCtd8PLRTiHivpyTEx9lZdaekOTasA6?= =?us-ascii?Q?NCjQAe6duPRY/fFWnZGT6ReXjqQNz8ZYO3TRSAX9G+0sAgJbNYY5Ap5hZd2b?= =?us-ascii?Q?p0iIN+6+AOpJ+Ff+HhUp/Nrl6/ZcoAzwHhDkn8oVPNbstEC4bNLDeo2VBM0B?= =?us-ascii?Q?guHzr6sbCPM7Jq8XpGt/1c0lrYnjwvi1zo/S93tp50jPfIeDLbimoh56h1B8?= =?us-ascii?Q?rh9szayhrrhrajxpW+6yyjgrFWlLbkLjYaWlVPawrT/Lp1PVaRXPK36sg69B?= =?us-ascii?Q?v1VlH9wXFPUqRDIwZw9EM9yy8tVn7LHgqs0O0ZHSODhwdGo6/54MYIEkmWEg?= =?us-ascii?Q?Fd+wU5veLx5i2EJDeNlQfZRlrK0m9qTCnEpneUFuMBKxNNLTOEp+FafRTwvX?= =?us-ascii?Q?fzcGJFKLnvtzQU5phDujtSwpPHMDIEKrG32Ufkg/7x7enf44r8kcK2hTosQf?= =?us-ascii?Q?Oi/TMDNihNiFz1TymiNdXCbkVEAwqHVS/kcHGkhpU0BoPIXa5UN6hSk6L/pQ?= =?us-ascii?Q?8PR5kv9B8fQlEedQhWOwdT+G0HGeMWMwXHEHDsEMPKnJ2Bx0vfhdf+Ua83FI?= =?us-ascii?Q?3uf3RF1GxO5xENTmr4813C/uZnvzmz1g7yxXs34YJ3J64YAVcbC7rZ2k13q5?= =?us-ascii?Q?NTXpo2TcvNwRgzk5Ge9aB4iD8mwlW+YwDY5GIyJZelFhr0gbwE152XUroLAX?= =?us-ascii?Q?SEED2DNyOU4dV55ZlZuO7iLW4cM/tu4AbJ2RIB4KRrOrbkofTZh9LCs72ul0?= =?us-ascii?Q?XGzfCc+Bz67RGyy/22zcb6LAD/3Rv5PLvUMLxJJjSJWaKlcuX16ByKEAjMCQ?= =?us-ascii?Q?mYbzMg6IlkZ+u1v7Uv7DBuIHAMMW7fBZoBfN2UIOqPQ0Q1mklC9bPKZ9T/Kp?= =?us-ascii?Q?vFEU7QQ7PpGGsPNKMmo8PBaci9+EkVGuWU+O6UV/UoTnLiuMUSU3suCDqFhP?= =?us-ascii?Q?VZvOrON36F6A7swl17qQfjt3PrVGzPQwKauBqJEhClH57DmjAIFi3DvAcqBw?= =?us-ascii?Q?hQzFM94xixo2G713n0elB45X07d9F+DzGuwdweucwlruLn8vX5wF1cgqTdT6?= =?us-ascii?Q?4oK/lYUGA5qr6E6LYEE04iLrc1RUMRHCl4PQdGywoNeH2CZMl2y6tRU8sHLD?= =?us-ascii?Q?+3Njk4NgEjnzG4sGVt98AL2WUdpwriGwZk8zCwf0JtZTi7TYRNxel5qUSO2M?= =?us-ascii?Q?53h/EHi0rEPMGUc9R+zdLDpHEK3yFD3SVwoelInApfeUj9Ms8XgrtWiRcWHn?= =?us-ascii?Q?bkKuV6HD47X6G/PztKXp39y+H0x5T3I/OZ1fUPSSW+/ed9pBRY3K7Sy6iAF8?= =?us-ascii?Q?GZ6WNBEUdl5U1FakM6ZsBRYo83f/DkEE/4iM1tV2lIvlPnCaHvhzldhkWwYa?= =?us-ascii?Q?IAajrIsK78gcDTQczQZPhTWn8zclTtMKSzLw0Opx9zVn6JFKVcYBl+UaPuma?= =?us-ascii?Q?FTNZK90YJG3fhC1Uob3yYU1SmuQeFqTyKnxLZGHfrKU9JL4QbggUQUbwMPhx?= =?us-ascii?Q?XwoRc1MOvITm1wa8YT/M7SPLRysgSQq8QrxlCXw3jS0/+m87cBjC2hNAJkGC?= =?us-ascii?Q?jw=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: 8xqp2jHzeIPjsYY8wzqu0qQyk1jUH1diznUqwM6N5UMuJNV5LcZHFN9Y7k83s1X94hUpPP04sRjKshZuf6uQP1F/f7EHPoj6ntx7I+PnkeDY5Vh5UTFfF6tNRdpLLrKodv7HoEiaoTIRvi63wZfQ02E6J4YselSeQi/Z8p/7NCzcA4IAjOK8eaMJvIG5b0gU9R6W6MRp8YQ8Q7P/n/gtj2Ln33aHofC1KMOtwhi2iMoygkw9UL6L04ShIf0E+unGxB4hfrbXOs8JvaKQ62hLmlNNVuxFz5lAruj1cvN6QRszX9KHit00lbUBE+le+BOV9Asp33Mfa6lBgs/wA6xE65U4bnpzwMWpk9TyTo75Y39ZIRssvY3osgYw6uT3DZb72GS4mI5+8AySsU1GizwwJpOYarJKEjXZIuwFqsxiBPat223tSdQcEQY6gYR/j80h2mCmtqou9u9jbggO+yvVE8M/NwvrvLqmsw5CEa/ywiE+CrtWadK+IjNSkuNsttTcbbglTxckrc1+3tn+wujhyf4LzRikc+DH05rFVfk2tqdTM2ecawnT2EXTcBoxh2Zo3jNe7jn/FBVrBa/KDKdaKzQiT6lTtp2Iogp2vLAIAMs= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 77060ebb-325b-427c-7863-08dca115be9a X-MS-Exchange-CrossTenant-AuthSource: DS0PR10MB7933.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Jul 2024 19:23:14.4756 (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: OIA8rkUZpur6leMIEaKvbAWfwNSk0P3no6T6RQ7iLNWTSGtuxZWKta+xF4Gl6LSbXlH5eXJbO2yFx38EId5KyA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH3PR10MB6833 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1039,Hydra:6.0.680,FMLib:17.12.28.16 definitions=2024-07-10_14,2024-07-10_01,2024-05-17_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 spamscore=0 bulkscore=0 mlxscore=0 adultscore=0 suspectscore=0 malwarescore=0 phishscore=0 mlxlogscore=989 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2406180000 definitions=main-2407100137 X-Proofpoint-ORIG-GUID: h64IlDrb024vwkfQzkZDau3q1xp2pUri X-Proofpoint-GUID: h64IlDrb024vwkfQzkZDau3q1xp2pUri Content-Type: text/plain; charset="utf-8" From: "Liam R. Howlett" mmap_region is already passed sanitized addr and len, so change the call to do_vmi_munmap() to do_vmi_align_munmap() and inline the other checks. The inlining of the function and checks is an intermediate step in the series so future patches are easier to follow. Signed-off-by: Liam R. Howlett Reviewed-by: Lorenzo Stoakes --- mm/mmap.c | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/mm/mmap.c b/mm/mmap.c index 1c9016fb6b5c..49b3ab406353 100644 --- a/mm/mmap.c +++ b/mm/mmap.c @@ -2938,12 +2938,21 @@ unsigned long mmap_region(struct file *file, unsign= ed long addr, return -ENOMEM; } =20 - /* Unmap any existing mapping in the area */ - error =3D do_vmi_munmap(&vmi, mm, addr, len, uf, false); - if (error =3D=3D -EPERM) - return error; - else if (error) - return -ENOMEM; + + if (unlikely(!can_modify_mm(mm, addr, end))) + return -EPERM; + + /* arch_unmap() might do unmaps itself. */ + arch_unmap(mm, addr, end); + + /* Find the first overlapping VMA */ + vma =3D vma_find(&vmi, end); + if (vma) { + /* Unmap any existing mapping in the area */ + if (do_vmi_align_munmap(&vmi, vma, mm, addr, end, uf, false)) + return -ENOMEM; + vma =3D NULL; + } =20 /* * Private writable mapping: check memory availability --=20 2.43.0 From nobody Wed Dec 17 10:46:22 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 DD33E198E88 for ; Wed, 10 Jul 2024 19:23:51 +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=1720639433; cv=fail; b=p14yIFe6/uXMTidWXenuXJpGg3HXARS7UgTLRxEmdSu7lrL6YHw/8ePwJPLtO1m6GK6GUE19sPag3Mc4oRuhskmWnk7NktTSFPLsAEKCnWjrdS51wojB5UE1DMH+W2jUVQ/Eij/R+zEQwMraYoCp4Q1DhZrxVtflegBtZ47vccc= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1720639433; c=relaxed/simple; bh=yIedfDJWoG9+9uRg4cr30K4nvx9TualNAp4FMwHgKhg=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=iqU7l39Ba8tXT+nDxAv7e1tX+Bk4/Exwn43f/x9HQEsBpnv7Ow7P0cXbnPsz3520UPkT9pYODCtdNvkuZGYT965NUlj5VAujoHDRm0JnJ/aPMcwyIlAAEkHt2XjILItuvnbQwyZGHfhTEH1Iutt9nhB/jUGyHKG74t98ZUG+sU0= 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=SE2BmYm1; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=CNDuBIIW; 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="SE2BmYm1"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="CNDuBIIW" 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 46AFWaku012654; Wed, 10 Jul 2024 19:23:34 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h= from:to:cc:subject:date:message-id:in-reply-to:references :content-transfer-encoding:content-type:mime-version; s= corp-2023-11-20; bh=nNu/B6N42Yk8627RuBq6GJzGSQoxxNJoP3M3uv7oJ/g=; b= SE2BmYm1Z0SivcBTto6WpWaQDtjqOUD6M7+wtupEvX05cwF2fW2Q/ds5yJPuxQ/S 9kvlOxt+ZcR4v5Wfr4n90Oiz4JOhjs8EfuVlP0p9Q+e5O+O4UAP9fFgKDmiDNOfb Oysy+YFszMjUN5QPbKc/Qjx4asFWE7DffKQUsT1JFadzCcsI+B8G6gwesQ7lo5x/ 8yELvDReWKTDsu7lRcub2YagrId1ObKeM74fmyZ12wlp9fMG9J8eDQlLskov28lv yDySyu6606qPWM7LUszcfv9IhmAyqv5KoU3Scy7cT18GX/CPQurKcMoZpiq9TqTT DOuGEDx/lqukdn43RaoiRQ== Received: from phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta02.appoci.oracle.com [147.154.114.232]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 406wkcg0bk-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 10 Jul 2024 19:23:34 +0000 (GMT) Received: from pps.filterd (phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (8.17.1.19/8.17.1.19) with ESMTP id 46AIdNi7033802; Wed, 10 Jul 2024 19:23:33 GMT Received: from nam10-bn7-obe.outbound.protection.outlook.com (mail-bn7nam10lp2042.outbound.protection.outlook.com [104.47.70.42]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 409vv194ff-2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 10 Jul 2024 19:23:33 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=eVY14RMkzwNE6/z+fhtJRRAFL5nWjrf5RBggq/Fo4vUlvgUWkDaxfGOtnCCTiMVoPQZNZrwdtnPezoc/96CGW4v+7I5MPSvDiOcQAvW4bTr1ALDURwP7Ih4/dUtMhxlO+AHc3srEFxmlExUmEYT3Pg1YQmPfwj9bksdpQ855FXFy5Pg/qaoW9Xol47WLtmV6EqS0lr+2R6UO0su3MWwcksGsg4ISzbMpJ96lSQyJgrIUYnDm/TMNWvCyjLApDHwZCTLS9rUMDRACmL0c9u8BYA+8TS0/Rf+WpbZVy7H5FJXjltgtwZ8j8Yw0gOq4lCA7lUbqa+izWTE2Q3rbAVQuQA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; 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=nNu/B6N42Yk8627RuBq6GJzGSQoxxNJoP3M3uv7oJ/g=; b=PjRaA84sAdyXt1vy72xut0BteNur3em1abhDClf62InBt9JXmCosBZ2gXOpE3oa74xoCtmlRiBde0yNqnr5RG3/lMmS5KW1sU/ifsgH+5S0ht9iqKasLgegknywXNIRND/fH8tYyM0dmsjtL9BgJt+Pau0iqXxHZOh7krCTEJuNzsPxglQLIQxSxAhvspH6n8yKX3QNIhxnsk8bH4sMqrd+p6stUlRENpqv/OPk83umP4fiP8bDXGbFqjKomJqutuN2+0OnCtC/coQnBz8S0SLKNNIOi/oR64BNSZvaeLfXXtONci/mErOXgQeQlJyeCz6axftqAGxYO761/3lSKeA== 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=nNu/B6N42Yk8627RuBq6GJzGSQoxxNJoP3M3uv7oJ/g=; b=CNDuBIIWn0zRDjhFF4obJwdF/HOLT31eNmj6ut/yDNidY/cnnRDCXm0EPNpjJcaD7WRjphoaFDtbRP1YB8OGId5pc0q19DYSoyE1/9r+KMXE5mxQ2f1harmTTMLJ9qp03/xHGXkDccqrN5FEeitV37uU/Fl3CxsJUsD0ifxfA2c= Received: from DS0PR10MB7933.namprd10.prod.outlook.com (2603:10b6:8:1b8::15) by CH3PR10MB6833.namprd10.prod.outlook.com (2603:10b6:610:150::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7741.35; Wed, 10 Jul 2024 19:23:18 +0000 Received: from DS0PR10MB7933.namprd10.prod.outlook.com ([fe80::2561:85b0:ae8f:9490]) by DS0PR10MB7933.namprd10.prod.outlook.com ([fe80::2561:85b0:ae8f:9490%3]) with mapi id 15.20.7741.033; Wed, 10 Jul 2024 19:23:16 +0000 From: "Liam R. Howlett" To: linux-mm@kvack.org, Andrew Morton Cc: Suren Baghdasaryan , Vlastimil Babka , Lorenzo Stoakes , Matthew Wilcox , sidhartha.kumar@oracle.com, "Paul E . McKenney" , Bert Karwatzki , Jiri Olsa , linux-kernel@vger.kernel.org, Kees Cook , "Liam R. Howlett" Subject: [PATCH v4 09/21] mm/mmap: Expand mmap_region() munmap call Date: Wed, 10 Jul 2024 15:22:38 -0400 Message-ID: <20240710192250.4114783-10-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240710192250.4114783-1-Liam.Howlett@oracle.com> References: <20240710192250.4114783-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YT3PR01CA0055.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:82::23) To DS0PR10MB7933.namprd10.prod.outlook.com (2603:10b6:8:1b8::15) 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: DS0PR10MB7933:EE_|CH3PR10MB6833:EE_ X-MS-Office365-Filtering-Correlation-Id: 27c2e7c3-52b3-49fb-9d7e-08dca115bfd7 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|7416014|366016|1800799024; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?gRga06PGR9lUVVFlpYyfJyfWXmmCQfQo/BsrHXuN4ZUHBQi2+CEONq0so7pj?= =?us-ascii?Q?FU1bnQck79iCy10cp8v5OL+Uxgy3rw9LHbfAZqFyUs91WFDCE6OQ4aoFVIVU?= =?us-ascii?Q?d01pOXpbjkkDi4uJGcsiwUW3/nOW32wC0CzbidZeGzogb5JQsBMB98JRfhEU?= =?us-ascii?Q?28EuzMPl0XchpD43Hruooj3Hw3nX8HhBxtmLOuhT8tQNEs5RcJe9ofRo29kX?= =?us-ascii?Q?y8ofuHSBJmKDu6msYSol0B2BVAv4qfrABEaEzLlOb8BRisx8fY+XH+9Pn74J?= =?us-ascii?Q?dFfMyRBym9ZzQS8OIAtY999sF/7KiHWG3wMOuzhi/hvzqotQel5vZKRIFsvs?= =?us-ascii?Q?QmRrZ7Sa/ZgpRXeicJF2Z2H2chw5OH/9458ubENXpvI1F6iMeUrJN8ln73vT?= =?us-ascii?Q?TCwmQ2jBqld8BzIs2TpjEFBwCSJkgyxxYCAmlsh6KmfAgm/llCexUTEUAmko?= =?us-ascii?Q?sqnCFsmFc9u2nUbHSTljbqOB39iwSJMwsl1KOvCAwBSNoKGLN5zpY8RikSNO?= =?us-ascii?Q?XMr3h92EEvPeyL6IJcl0SxVZ6yUwpk9JGk859sFEPpWdSNUlRbkMW8+nGA55?= =?us-ascii?Q?dFLThFwwgOciudctRxQi5Y3HCyeOHm+XavN25iaeN1Wrj5pHTjBjGLZztI5o?= =?us-ascii?Q?+VF9HzQqmircLM3igYk210heGTIIzotJNNIV9UzV6kBUc1F07Py0/BXjHlFM?= =?us-ascii?Q?JPRMRZg8GxtXFlmwrhyt/zs8E5KtbEYxcqCV0LE2zCFpreZ1eJkrq4I4mubX?= =?us-ascii?Q?9viM/LgIu4mvP+d6pjHzNAyjC8gB7CnAiuzLtvkWdoSzBXBKjrhkhfy2OrUq?= =?us-ascii?Q?1ycicItjD2kZsafSZ5uQ7CES4/TkI0q/F5gia7XvtSm56OsoNhkdMWssjXol?= =?us-ascii?Q?ExrVMKS/bS30lk0VPXoIFjlP1MKxjGzLlK6zXay8tPX0/Lqv41B8iZf5xSfE?= =?us-ascii?Q?Tay+xwc0E3kmoPPaIDhPhCOGV3SMQZuzeQUQuDZRIWdCfqtdh/0U35iG8S6m?= =?us-ascii?Q?aNjFaOd+QetfpakEReYU9ymZTZOrCC/sjiJdms8J9DMvXvZxUohbxYUj5caA?= =?us-ascii?Q?yZDwahKQh+i6lfKgFAYLSxkoXwFIelxJt4JLOwCvIONXvLfTMf5tCQ3CPqAK?= =?us-ascii?Q?nhXI4t1LBY6bdeDwE/LGIUZ+JmqkulASFKz5D7t+INQhrGAJiU9QA0aooNsq?= =?us-ascii?Q?ypt/rmvEpLsdyR6NnnkqkF90nlDZTSVuoZS4wTPE7avkOkLbRCiVZfYmdhvb?= =?us-ascii?Q?5WOfo/h7TmGpUwVsWxWSAC60zeVneis3FzNHCfXJwQCQbjv8HEGj+FfPiwkp?= =?us-ascii?Q?yd95k22bemq/cVGmq8MAGRJIwYOKp9O/gBXWqj2Lu2Lu5Q=3D=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS0PR10MB7933.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(7416014)(366016)(1800799024);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?l0SEPHUio2p0mPtm5r8IzxtWzmizbzMWTF7/ykaim4hR/YC8k03wKPWqHBXb?= =?us-ascii?Q?pS1NGGgu9GhX2KT3PO7ksVRsQqvwa3W/wYePAZvHdf0cfsZSslnIt3nl7ZDo?= =?us-ascii?Q?Aczqq3qEHvrRzqt9Ha3Sdy9leM8jRsU5mrCcU44SYmb5WHfW06znPVUU6vvF?= =?us-ascii?Q?n0OgxIHNPnEhjVpehfoH+bV4/yZ6IFTNKbUD5yAKwQcjU2TYnLaNK1zPw5xz?= =?us-ascii?Q?WhYWAaEsyhy6P+LEPdYOvDaKMXlC3gR9aIDNwY2B1MSgjIie2N8pdzpxnXpe?= =?us-ascii?Q?U7wgQqkmIwmHN5F2wNnjCbbqo4G892TnhlpAKVaRSVautxSmzRXzNAgWvumv?= =?us-ascii?Q?39/Z6slZo0nCP1PtUIL/t90z0qD0S8aZd8XJ1L5QDxnDA4MDh6jWgJl0g/Vn?= =?us-ascii?Q?cYQpcnNcw4IHme+3HwFlE/Zg/d3cWYbm/m3K1XTNb1OEWrHI64T+TIBRG6PN?= =?us-ascii?Q?bEOn+0MLFV8hHqwhnp+3rO9luBmuqFwP6B3NSzmuhelwE58S5F9gAzj9oRQy?= =?us-ascii?Q?N3JC7/1hDxmv/U5IZo7NbULZKPL+JGVLxgF8kwRaxG4V/hYXMADSjdyRP5Bg?= =?us-ascii?Q?LyRHRrg9lGGK72BA5HeZlzfE6bPZd+L5psvvPpYRd39Mm0OYaKavfFhyJiGE?= =?us-ascii?Q?l2fPGVfSflP8s5N1bOlHYFKVIE8cLpPJIZIxeVMxutS+ZIW1Tzi3M89g8miM?= =?us-ascii?Q?KWzNM2gczxNbhynA4UR8Ohmg0LVNoMexn6FotqiT6eDrWNTVWQEi/cCBF9cI?= =?us-ascii?Q?8wmXFNybI1LT2Hcodhdu+QpYOFBxfHT46c79CSeqU2PUOb90YVxP2F/f8UPG?= =?us-ascii?Q?yJRL4bXoOaFk1GxE/A2EnzXPLwPO3fFgaDJaHvvDuc3uu4GapWDRAps2Z4qq?= =?us-ascii?Q?rxHmYo/1SNpqvf24SYinn+pz7nPCmhIwExIIQK3YvxmlnJJDu8NOvbZnk8TH?= =?us-ascii?Q?u+dg5PQdnH4KbW6fUVpdC0gV+VLEUqrBlgR02YLkKxETFM3a+FpeEO2Y0JdJ?= =?us-ascii?Q?2KhboMOaghlUToPVm7rsWzGvyZNB6TTNddu3eYlBUpqGla+ep2B/hTf5PqMG?= =?us-ascii?Q?kA7QHNW47QvSpzNx9qiyaLeRQtPCyH0O2vwSwpdDVHcIlWuByOCAOHcCAjAg?= =?us-ascii?Q?5QrjL+SuVIDTmtt/kEq5DgHUdCIfGNnuDutnro+bqCuDnnJcnX7wPemdgeTv?= =?us-ascii?Q?uIwhixW9DXXz/m4iLoTl/nyJngbCkO+dC6VR8RTIWxig2PFoxZes/HV2Oqbg?= =?us-ascii?Q?iQhf+Haitra+V1S3gujXUjPlSj8Ayt4KhnP4A0rjhR9u9XEKhabLx9DX5dKs?= =?us-ascii?Q?hL2M1ZEVjYQMZLE+QNVGggxDuA7u6LjhGoa8WwcpCU4B09IV2muS3fiTcSAd?= =?us-ascii?Q?C43sSJG24xMcUTfvBrOJ+k85Sr4Zg+6TWknlz/OkTr9kWf6A4Do6RuQfS1KL?= =?us-ascii?Q?T/tOXC0BWNDvTAxxQtpBm9x1O7QpDrYfvN20kY2Tpfp1UE74uXaE+iWZnb+v?= =?us-ascii?Q?2K5nroS3+9jHtmOdxX69q7LJLS89e5/SZrqAuiDbdOxXk8nPeHEtA3IHJrr8?= =?us-ascii?Q?mIRNHzg5rKkJ9zuPjFTRnnWzN6ENx8mbrpSi7LuYBs8cy0jKYS+LRiLPRx2P?= =?us-ascii?Q?lQ=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: Ns0XvRO1iGEBVOMWAUfFaUc4dNur2a5ATSe32QDmrAeM5iqZftAasazaFgkk+nVaA7gzUdkEnamtyQ1lC2/EgkAET8pNkJDogVfW1j9Xbi0rPFyJJyvqU9o2J9BMp+z8xzCQFTjXZhdk1Irq0fJoRZduIAekQfNciEqLDTp44DI6THok/yba3AeLeWhvehbqhlQy3MV6nDH/s+I5xzLYsGKmHrw5COKiQE75FmGlz0rQUaQiOGBnVk8h97EsR4NeS6W/5mB8005/8X4aDvhbznCxX14Fh1rW0E/PsQT6rFp59BjqIYJIm1YaUf6zuGgxHHz/9vYGiMhfslC3OSXtm9/VcFFiXUIOaDkSx5wn40AFiiP7yhonjYgqZVqoTtZGYGMSI+KelnFpJuIvk1Afx58X5ow0qmAU7b+HjhxdWL2UetSV5QphevDf6Ecs80w1ta75rcNPPhhl7EKrZw7JlvA+mO5dZPapdsf9wCJ3wBkY1VwoY+g0aIJhKlCvcz4OEsRnkp/eoL364FnrNU8YgBe5ccdhNdg2Fjh4eZXQ8dGtxdVl7o7TUGE9cA24jCWHbHc6eEWewGRjbtb444HVtBeF9SWSKeisbrWd18+y5qY= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 27c2e7c3-52b3-49fb-9d7e-08dca115bfd7 X-MS-Exchange-CrossTenant-AuthSource: DS0PR10MB7933.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Jul 2024 19:23:16.6051 (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: WR+b9ezQe/AF3wgCAv2gPxgW4kb8QUgAvW8I233fyEi86ShTf/tthzBTFgdgboD/VHyQ9LtCmPMth3Cqmo9oaQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH3PR10MB6833 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1039,Hydra:6.0.680,FMLib:17.12.28.16 definitions=2024-07-10_14,2024-07-10_01,2024-05-17_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 spamscore=0 bulkscore=0 mlxscore=0 adultscore=0 suspectscore=0 malwarescore=0 phishscore=0 mlxlogscore=999 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2406180000 definitions=main-2407100137 X-Proofpoint-ORIG-GUID: mMk98T6BYbX9vl-0_GVSLWRA9kHs7TXH X-Proofpoint-GUID: mMk98T6BYbX9vl-0_GVSLWRA9kHs7TXH Content-Type: text/plain; charset="utf-8" From: "Liam R. Howlett" Open code the do_vmi_align_munmap() call so that it can be broken up later in the series. Signed-off-by: Liam R. Howlett Reviewed-by: Lorenzo Stoakes --- mm/mmap.c | 26 ++++++++++++++++++++++---- 1 file changed, 22 insertions(+), 4 deletions(-) diff --git a/mm/mmap.c b/mm/mmap.c index 49b3ab406353..a1544a68558e 100644 --- a/mm/mmap.c +++ b/mm/mmap.c @@ -2916,6 +2916,9 @@ unsigned long mmap_region(struct file *file, unsigned= long addr, struct vm_area_struct *next, *prev, *merge; pgoff_t pglen =3D len >> PAGE_SHIFT; unsigned long charged =3D 0; + struct vma_munmap_struct vms; + struct ma_state mas_detach; + struct maple_tree mt_detach; unsigned long end =3D addr + len; unsigned long merge_start =3D addr, merge_end =3D end; bool writable_file_mapping =3D false; @@ -2948,10 +2951,27 @@ unsigned long mmap_region(struct file *file, unsign= ed long addr, /* Find the first overlapping VMA */ vma =3D vma_find(&vmi, end); if (vma) { - /* Unmap any existing mapping in the area */ - if (do_vmi_align_munmap(&vmi, vma, mm, addr, end, uf, false)) + mt_init_flags(&mt_detach, vmi.mas.tree->ma_flags & MT_FLAGS_LOCK_MASK); + mt_on_stack(mt_detach); + mas_init(&mas_detach, &mt_detach, /* addr =3D */ 0); + init_vma_munmap(&vms, &vmi, vma, addr, end, uf, /* unlock =3D */ false); + /* Prepare to unmap any existing mapping in the area */ + if (vms_gather_munmap_vmas(&vms, &mas_detach)) + return -ENOMEM; + + /* Remove any existing mappings from the vma tree */ + if (vma_iter_clear_gfp(&vmi, addr, end, GFP_KERNEL)) return -ENOMEM; + + /* Unmap any existing mapping in the area */ + vms_complete_munmap_vmas(&vms, &mas_detach); + next =3D vms.next; + prev =3D vms.prev; + vma_prev(&vmi); vma =3D NULL; + } else { + next =3D vma_next(&vmi); + prev =3D vma_prev(&vmi); } =20 /* @@ -2964,8 +2984,6 @@ unsigned long mmap_region(struct file *file, unsigned= long addr, vm_flags |=3D VM_ACCOUNT; } =20 - next =3D vma_next(&vmi); - prev =3D vma_prev(&vmi); if (vm_flags & VM_SPECIAL) { if (prev) vma_iter_next_range(&vmi); --=20 2.43.0 From nobody Wed Dec 17 10:46:22 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 89A2A198A33 for ; Wed, 10 Jul 2024 19:23:50 +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=1720639432; cv=fail; b=dcRg716PvF/Kfi2A2umLY/myxUdB5FrA5HLP4/rbtncHoX+yOw5AWQiGXelcOzBC1PTEw+8I5XInHehfc+5HVCnk5tlW2vocSYA7tSPEHtjANPWthxXC73FCLfel6SDGlttzx53w4nOrgljX7nq3cllw2Hctf96aF/MxAoEBJxw= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1720639432; c=relaxed/simple; bh=dj2NiLRtkw5fofhP9PCHC6J8Nf5sBVmmycx15qEpjLc=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=dwMlZdnFsNELEneXS4tBWEs7q4IEo7QhhreZ8EERbmqDtgI3Iez0Nh7j6ZuDmIUFPle2+BUxLHcqT+FFOTbidbBYI6BI8TSu5VGl8gPZwXs6so+aIQcBusGJ0IWto+5TjsKHLXlFDnSpt5wDmkWZGdlGMUWh5VuJ/lE7JMoLhgA= 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=AX/xobzN; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=VKP4w5zX; 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="AX/xobzN"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="VKP4w5zX" 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 46AFnCs6006199; Wed, 10 Jul 2024 19:23:35 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h= from:to:cc:subject:date:message-id:in-reply-to:references :content-transfer-encoding:content-type:mime-version; s= corp-2023-11-20; bh=DoMwpLBw9WhZL+32pCwXz6AxsApbM/3+qs6lMKa9YfU=; b= AX/xobzNpcaC93CQ/gONwDiwfTlO7M1FYSPrAbQ1/WRzn4Csjaeo/dSiWNZbEnFf TOW5u/kcKIFHkm0PEiXk3lbtja9apMp3A6KNX1BE6gktSFzKfCOKjQr+MaZ3MXiX klj0WL/wdlgf/ZK07/GojAdVJEb+nbAcQC/P8XZCUFHN8P6sTspo1ot6ElLKU5cG 8etjuqg+vM+HUojYC6xmFOTnllXxa0m1LMVxTqD21ou7i6FgrpaVGEnKL1UzS1bn WWKOQsMeyP827amwmIK0wEdbhxmxngVJr0xxVGU/xCTIqt49toWLhbtS851bLtil nuHCm9Luykvw8jR6woU6qw== Received: from phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta02.appoci.oracle.com [147.154.114.232]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 406wknr2ef-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 10 Jul 2024 19:23:34 +0000 (GMT) Received: from pps.filterd (phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (8.17.1.19/8.17.1.19) with ESMTP id 46AIdNi8033802; Wed, 10 Jul 2024 19:23:33 GMT Received: from nam10-bn7-obe.outbound.protection.outlook.com (mail-bn7nam10lp2042.outbound.protection.outlook.com [104.47.70.42]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 409vv194ff-3 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 10 Jul 2024 19:23:33 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=EgnSyBUxoMFG2pJKEvwTuoGMlNrmfyWVvdl9hKjdJ3s+ZX/iNf5K456AAcspMPd980gt0Gevs+pITuyfWJboC3iH1A9j6gd8tYCCgJXHJ5xDh9SX7faF+7GQbCrqS8X/jZ6M40jYjI6ZGLVY9TH1LOTTeMSN5/0eQNnsX97Z/kRT8n6G0IMThceUTUyLXQTdMsk0fiNoTioYcqEBA+oJP7rvpkE9rpq9D5sb6sIkHwdxbUjw45+j1hiEskbD6ZQls1UBZkMRz0IuAQH0SvcC+1yIaUx8H2P1LAiuAxm8meLClO1Pzab/uSHGOfh5HDiN8LLJoMswej/xzEumr3UeZg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; 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=DoMwpLBw9WhZL+32pCwXz6AxsApbM/3+qs6lMKa9YfU=; b=Ko46QYqr5Hv1LabKsd+DBcVHPp7lu1JrkDII0JbXUSW/Z/SMg36qtU6mwz+AsdwwnB+IgU30D6yqLquUol+7liRGFsCdzlj3ITb82qiEubuYjPSZYPaxmkwfklmEqLOh/j55NV5bI6yQSxp/TNgSV+3jU8mf50s1WCMpbsMm2sODWN8Cgt/zpwMYtFlkPlhlxDgCxffhM0LH2v5qMikU4TZc046EvLxhJ9N4RPvXSIw9YbCPH1/Fiz8jdyBw8jKshald/SI6g4t6+Whgv/EuUBN0dEz6RO1vFmwgDuny2btiOSSIev8yiPrELD89lJ/JZO/O+/lXRmvDab3NzKL1Wg== 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=DoMwpLBw9WhZL+32pCwXz6AxsApbM/3+qs6lMKa9YfU=; b=VKP4w5zX3yXehde+vY7BX6ZPojKjD+MQOcOORfEZB11B7cYI8W+LbfctsYgs3lSKbZtzBckB7QkzXJnDQzTtzYuIg2aOaW9TzBDaXPh7Ph0W6jYVyutV6XejgO/9+TOlZsneeJUkSu9+yqqGNIZscdJ1bWjlzUsQr0STGXyv7QM= Received: from DS0PR10MB7933.namprd10.prod.outlook.com (2603:10b6:8:1b8::15) by CH3PR10MB6833.namprd10.prod.outlook.com (2603:10b6:610:150::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7741.35; Wed, 10 Jul 2024 19:23:19 +0000 Received: from DS0PR10MB7933.namprd10.prod.outlook.com ([fe80::2561:85b0:ae8f:9490]) by DS0PR10MB7933.namprd10.prod.outlook.com ([fe80::2561:85b0:ae8f:9490%3]) with mapi id 15.20.7741.033; Wed, 10 Jul 2024 19:23:19 +0000 From: "Liam R. Howlett" To: linux-mm@kvack.org, Andrew Morton Cc: Suren Baghdasaryan , Vlastimil Babka , Lorenzo Stoakes , Matthew Wilcox , sidhartha.kumar@oracle.com, "Paul E . McKenney" , Bert Karwatzki , Jiri Olsa , linux-kernel@vger.kernel.org, Kees Cook , "Liam R. Howlett" Subject: [PATCH v4 10/21] mm/mmap: Support vma == NULL in init_vma_munmap() Date: Wed, 10 Jul 2024 15:22:39 -0400 Message-ID: <20240710192250.4114783-11-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240710192250.4114783-1-Liam.Howlett@oracle.com> References: <20240710192250.4114783-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YT3PR01CA0049.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:82::30) To DS0PR10MB7933.namprd10.prod.outlook.com (2603:10b6:8:1b8::15) 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: DS0PR10MB7933:EE_|CH3PR10MB6833:EE_ X-MS-Office365-Filtering-Correlation-Id: 51974674-f6d4-494b-28c5-08dca115c0f9 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|7416014|366016|1800799024; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?oSNHtG4DTfLp+MkrWyPE1YwNni7hjS825zrcZWZowPhsvrMTAnxN7EYbiArj?= =?us-ascii?Q?wmnv5YdKd5B0XmjTOQN5H2liMBO2TEqoh0VIanyxzijuPHsyTB4RlMtCnotz?= =?us-ascii?Q?KI7tkwED82fkjgiczEmbxl2vFBHyzM6cFvl1n7K4YxJ/MmLkqtIQ7q3GdFVl?= =?us-ascii?Q?BZKUJJGhvapODvU72I1u2VfYv9jv8qe+98KNPCh+NQ88uZb0aUiwO7gZJPRr?= =?us-ascii?Q?XBNlnxC9eMDFy/SCc7gpGu75E+loSerXhwLqec6YHCREtnZg5qWr9EBk99Za?= =?us-ascii?Q?+rNTtcK0sZLEEx90sqRP8unNLuwUIfqmu6hdt4A0IGbPplfwjlqzCf6JKU3L?= =?us-ascii?Q?BzEhRtdVRO5obv//Ahhx52d1w5Rqw62+c4eA7nHxd6m3UWeE8nX9evsBnSSJ?= =?us-ascii?Q?GgskToZlsaRp2DwFjDE32eg9R8/su493jnriywNJMSG9H01m72qTXUu5wXr4?= =?us-ascii?Q?nYALpheCho3cpmRlhLGEGbf4wA+iZlR2rQJfAfYdfheGvKbrVkt6rHFE2VzR?= =?us-ascii?Q?PqAfRGoRihUbVfc65jJfIMyQ6kA/eAqbX8TgTBO3w0jDVT0X/XDRvvDRiYpZ?= =?us-ascii?Q?l3/TshBpXQYgVezmiC4lFPsuEpxpM3B/SGV2StYgxuxajl5yTmd2wXpIiNW8?= =?us-ascii?Q?eryDxapOCY3nM0uVfMkCtuWW3RaW9QfVi611juR0IbI0AMogmuKkD9m95pKN?= =?us-ascii?Q?heJLGNwDt2S7MTxcJLis9e6HzaEQsgd3nUiM3eiy/LSece9kWnSmlXaQuil/?= =?us-ascii?Q?VaCi4az42eCsf3uoPsMclLiVqe+gG3qNsfM4XBqz3y1X2jWyJSECMLySzuwg?= =?us-ascii?Q?dg3cvlh8+VbZxRNjHjrHUhRfa9DoELFfn8wsjCmty8lHJ5RvEZWD2jwYqSSk?= =?us-ascii?Q?i+ccY3V7bLINZVxQR27viw+uZOAw4VJcd6ULNJHKordtl+wRY6k3ESJ5ldXk?= =?us-ascii?Q?F46yWm2BDffjSUNYDRZtRPW+gGXdMfpLYD5e8zqWZJSy7+PdWmKxad2Wv753?= =?us-ascii?Q?8nNbX//PCkjdRy5qD/taajypu/bHiyLG52OKmZoh+9UGYV57ajv0JntDVTyY?= =?us-ascii?Q?aWq026ZJc0D7mey5LFPz6JsF1pUlRrh8F0QQ11ryZQOmYk3YFpfIzGS3bHwC?= =?us-ascii?Q?2e3SnojPKH1oS+3y8UGcjC2dIUNjX77drV+0rD/TA9D4zUphsVY1NlNOdXiY?= =?us-ascii?Q?zqrWBPU8GMzvMga/eJdhQ8XGdBAHjL98SCJAs6cLUxzwh6e4pmKiMxMlq081?= =?us-ascii?Q?STeD+6qzWVPL8oMqK4jiHU0GhY/fIaxI5V689hVMjw+oiDAXBJn1fNUytBEz?= =?us-ascii?Q?SnV0NOqFjZ6XMiiolB9yLODqGZ4fD9u/3Li9Kj7KpmS0Ow=3D=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS0PR10MB7933.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(7416014)(366016)(1800799024);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?3LuM46FgQKswdonzwdFgjaEIprrEi+dkQyn92kliclItXbm3sLEW3QVCahKK?= =?us-ascii?Q?MN8SiuqQXL7F44FVx7JpKQ03w02qgcZflP//FrmbxoP5yp6/qPUgyiY7ImcL?= =?us-ascii?Q?3XxMdWzO9Bc2Foe4c8noVNDyXowkBJYBO3IEi6FU0f1YSX6A4I/TUDuoMs+N?= =?us-ascii?Q?fnjVgDqjUmZzJfXgMRiJTVkLRwHp3y+Yv0UP0xvuV5sj3F3XFij+VL8eaSmX?= =?us-ascii?Q?UgkrnyIPc9sdp90jOLVpQf8XKuZ2l9jfdh63IpA/VTKNqxn8USo85uWjabmv?= =?us-ascii?Q?eSDAYkpX/7EBUZOBDckgLD0cqdvRXLd3FnKgZ2gw37Ao/OnlMRF//ZdGZz16?= =?us-ascii?Q?c5ucOTflwMvxuN0qiVh0DGif2gs3OzqeofQz4pFZRAW2lI2iACY/uPHg3+3N?= =?us-ascii?Q?piRpjaIaiX9g86iHM0rSQakOXd3fhefSyFSSOhUO6udhfIEEI6kbPCmlniLL?= =?us-ascii?Q?y1U/ta7HKwefcwcFnccyZmSyURA9JGRjUPJAj6BveNFDJtB3sJjk7SafSqtn?= =?us-ascii?Q?GH1MwaKYhDedX4YAzR6YdVfT6va/i27DlhE/p7nhd7hUpoewqQAguIkyXKbr?= =?us-ascii?Q?2mgvroXGos/oT7InAPq6gFl/GsQj4/4d1myWEfTUaHxRBn2tfcrJrUgnKpB6?= =?us-ascii?Q?qxH0tSJsyl0qq32eYom5qTLs2h9fT+JxGpkY4GaoehhXTARXwnTqBgSUBXFv?= =?us-ascii?Q?PmKMiQVeGqWqQ+wjaA+FiKq61Y8B4XbmPp1Lf7EbglI1Nuj7QP7asVxoJyky?= =?us-ascii?Q?ImizOu5WDc7iOkrw94MIhIdstOv/CFf5VZYPBEL1oB3DiMGTMUX4dLL0IYOU?= =?us-ascii?Q?GEEr3++JNbfZ9JSPFRmdp0hCKvmt3xSuOMWkIw/YH5jEtEfGm+Esj2rSz+aN?= =?us-ascii?Q?pxqHIh5lZP+tXxfMwsLnkjAS/88Fv/2yqJdaz1imFxUrDdH6WFtvtmaT5K9F?= =?us-ascii?Q?qmi2AAyWxAQq6ZD22ODwLyulW7NpKhYFypNSifGZD94BPg1MkpJacHBAMEmp?= =?us-ascii?Q?JLK8iwPQpiJ58+MW4gord6ygVxjty1DHxRtjZwms/4CvkD70ZuwjHNM56zBN?= =?us-ascii?Q?R5s6wwOa7l4QpbxouzVsTDP7daFFIjuQA+OGcjbL+hfEw14ZQ5bWRwgildet?= =?us-ascii?Q?Kh978j0ptq6rA3b1Pdz/8263c5Iv4w6OI3MbcmswK4lOslC4NBGxjtRHm83m?= =?us-ascii?Q?o3qzRD8x9uyP3tckCatLW5Gg0iMXqU6gQ9fSrDumOnvvVGpNgzjxJhFOttjV?= =?us-ascii?Q?afrNm4AdHlK4ANKcWsdO7/3RE/1xZw5s7+oTWQN+919XSt/zGp8OqHO+8KvW?= =?us-ascii?Q?PFrBysZXjW94wEFjMkmhd9a/QtRoEmk1mVKfb2RBn3YouVwzGicKH01kKwqw?= =?us-ascii?Q?ZZ5ZxoZaI4po5dwVCCo2ZQFLCQXb6oAxBg/GAstsheKnanAMzNav1qSYOkrY?= =?us-ascii?Q?Hg/Mw6xwU2k8p5wy3430y3i59VTEfTd1T96rwR1aT0RRez4TxuOyseapfMhc?= =?us-ascii?Q?O4df4mcBHRbuJZLnFB8dfGRoPkVTwAKddmm13NfYcULBrdWpZ3UqwUqz3Xsb?= =?us-ascii?Q?mKHMKKlWw0mcfED8k7U2CDdakTjdZktNUGmYWnVfaEtjz0Pcl/Ts0myQDLKU?= =?us-ascii?Q?Mg=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: PWo0GIJx6/Xt93ZkvdGvk9r+KmioDa+8Z4hYR3J29T6Xs0NHOTs9+EpunKujPI/8Ze8IF0T3GCMTQjV8bdBTx/escL9Bf2yxccj69jl0vP6d2M2LPX5Od1DASnGMYSpMuVAQWBMk0zVmXiaBRg4vKvOubvTpP1pZ7HQFUy+cU12uvFvSCxFIc3nWe01Dqn1ishB4VRyhldfEHI+Y+U50U+38Lob4CybyNPU3QjoI5ea/mLfYBKUBKn2iW0SfJmF/s1XaNtWkxxrWRu5/jND5d00Lo25CX79zBPzo9Jd72Var15obEIqqH+TlXEWFH5V3lxJqjvZs8CSFwXqeIAZqaeNXw31qotg8YGL/b85I45JDy80llnteent8PCh+k6wjKHE1dSS0dFezlvaUUYheSrtgxeVihYxoIo+V/IkAQsI6XckF+2MZprAtgKBuA4XFiUREpfUjWEiH/pxRDxQb0/t7TrZnkSploXTatX2I0pFdsNDxm7OclcUrjj2LqWp6V8RQmKCaCC5FDFszvJtOl+BKTJRYoNiBqzgu4YLw5c31aien+2yQEZw3ur25KibGxu3XFBj4c+Mnv7dr7DoGT0BYN7xR71rnkl73tPCpyKw= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 51974674-f6d4-494b-28c5-08dca115c0f9 X-MS-Exchange-CrossTenant-AuthSource: DS0PR10MB7933.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Jul 2024 19:23:18.4500 (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: bAhFBDL2SORemJW3Km1K+BOXNx+cNuZbYHGzMsHsoYJA/haQcHgwTWQDNk2NtepT7JlFusdL96pmcjlkorBAlA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH3PR10MB6833 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1039,Hydra:6.0.680,FMLib:17.12.28.16 definitions=2024-07-10_14,2024-07-10_01,2024-05-17_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 spamscore=0 bulkscore=0 mlxscore=0 adultscore=0 suspectscore=0 malwarescore=0 phishscore=0 mlxlogscore=999 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2406180000 definitions=main-2407100137 X-Proofpoint-GUID: GtRhqp71Z-I9pTRdU62fMwZ50ePWkO4H X-Proofpoint-ORIG-GUID: GtRhqp71Z-I9pTRdU62fMwZ50ePWkO4H Content-Type: text/plain; charset="utf-8" From: "Liam R. Howlett" Adding support for a NULL vma means the init_vma_munmap() can be initialized for a less error-prone process when calling vms_complete_munmap_vmas() later on. Signed-off-by: Liam R. Howlett --- mm/mmap.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/mm/mmap.c b/mm/mmap.c index a1544a68558e..e2e6b3202c25 100644 --- a/mm/mmap.c +++ b/mm/mmap.c @@ -516,10 +516,12 @@ static inline void init_vma_munmap(struct vma_munmap_= struct *vms, bool unlock) { vms->vmi =3D vmi; - vms->vma =3D vma; - vms->mm =3D vma->vm_mm; - vms->start =3D start; - vms->end =3D end; + if (vma) { + vms->vma =3D vma; + vms->mm =3D vma->vm_mm; + vms->start =3D start; + vms->end =3D end; + } vms->unlock =3D unlock; vms->uf =3D uf; vms->vma_count =3D 0; @@ -2950,11 +2952,11 @@ unsigned long mmap_region(struct file *file, unsign= ed long addr, =20 /* Find the first overlapping VMA */ vma =3D vma_find(&vmi, end); + init_vma_munmap(&vms, &vmi, vma, addr, end, uf, /* unlock =3D */ false); if (vma) { mt_init_flags(&mt_detach, vmi.mas.tree->ma_flags & MT_FLAGS_LOCK_MASK); mt_on_stack(mt_detach); mas_init(&mas_detach, &mt_detach, /* addr =3D */ 0); - init_vma_munmap(&vms, &vmi, vma, addr, end, uf, /* unlock =3D */ false); /* Prepare to unmap any existing mapping in the area */ if (vms_gather_munmap_vmas(&vms, &mas_detach)) return -ENOMEM; --=20 2.43.0 From nobody Wed Dec 17 10:46:22 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 0F9FC1990BD for ; Wed, 10 Jul 2024 19:23:53 +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=1720639434; cv=fail; b=uO1TQqlDm5l7cEH0p36ZG+M/eEnCmrwAnX7zfLAqi+++H9UOC8XGEkxNb2LGZJenslxw5YzTCERfCm6/toirT/GPRK1B3fZdXYak9LE/VYvQrp0Rm69RM5/QiFEGGpBLV3F8IpbFR64eGUphYf7kK/qWBb8pJA9NKLbXJCFvG4A= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1720639434; c=relaxed/simple; bh=4F3JNR0+m5aVDQOZT5NOWHm83XQ5Sr227ZujMVj4Gn0=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=nw2VaZf42jHUojESb3SUz9eZyLI4BOBf3XkiMLrm0s3RZF2LpGsIHgHrgtEGn0XxL0jiuzcNXa0fku/SC9yP7vLG8vnliYBmWzbGCYdi48yIZ2AfoAQ2NGhP3fZxsZX9g17Kj5SlFO3lZPuEnilQPUMa99YNjC8Vj8nx5+6c33U= 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=Hi0nUBWW; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=zS2JARnp; 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="Hi0nUBWW"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="zS2JARnp" Received: from pps.filterd (m0333521.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 46AFqbUj019840; Wed, 10 Jul 2024 19:23:38 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h= from:to:cc:subject:date:message-id:in-reply-to:references :content-transfer-encoding:content-type:mime-version; s= corp-2023-11-20; bh=hg3aFPLWINSO4oMDTznqetTX5TxBmdh5A/x7jDixEvM=; b= Hi0nUBWWrDJ3BflUfOKE+R9MwI/Gt47JGLZPciVNkA2yl7FkjvXfJltFUSk6gt4B SrHxYIit2dz96tgbt3ozwI3SFlhXQNa8W+gMsFDUaACojscFDghlrS/sr71j+cCF fG6ba7bEcjvjsxrmkiZ81UdC9NLMy5prKoDx0auHi5k9Q3v8CU9uDYbtldSDnkV9 SuHTPijLrMCvuHPr36Z3T8mK6yWV6TI1x0N77KT7eyPzL1Q/pxlIY/fRC2pAxGPQ 1M6zafIPNqwdAvt1fNb9r2Oe+c3t2Zm3pB/k2joxWA7sfAfpItxvuNsIB+wfz66R OJ57pLPg+PfOzGuFCTA+/g== Received: from phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta01.appoci.oracle.com [138.1.114.2]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 406wky83qq-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 10 Jul 2024 19:23:37 +0000 (GMT) Received: from pps.filterd (phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (8.17.1.19/8.17.1.19) with ESMTP id 46AIs3bj022604; Wed, 10 Jul 2024 19:23:36 GMT Received: from nam10-mw2-obe.outbound.protection.outlook.com (mail-mw2nam10lp2047.outbound.protection.outlook.com [104.47.55.47]) by phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 409vv1gwv5-4 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 10 Jul 2024 19:23:36 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=gtAOjk0fZQYQWgqAeT86tAOdD6HKU7GEBn3NouG7FQPuaS1/H7lIICj/8u+gzql31UCuW2Wi6Vmd6lvOB1v89CSo5+Pb6pFxlLS7ysPaJ9xCOm43vLg1SGuU0go1UCSbX6A1swSgRGFJSJVeX5m0Zwb+1UOVlExPVBVdkUXXTRxoaOH286JcaloGW2FyvIshlL4O8cl2tIYJIk+O8iEoH1CfRkjBqhntLwgw8PdHzdetqCi+SV/ovkNcZqo2PrJ9yXsWNJEHkHEkw8SUw0lnyF0swusroShI4OnYcCa+tqT8wWgjPOZHBKJPkKw3fffjH5t3palUEpX2LSpLA550+w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; 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=hg3aFPLWINSO4oMDTznqetTX5TxBmdh5A/x7jDixEvM=; b=lp8/csz21We9cB7hckyYG2IzWzI7YcLJqNk6uTmRQXwpA7yR3D70l9uMHEK9XEPhzH4sJLDtf2DS4PfX/5X1VflCcPAz1cwFPspBpjnwVVl6TqGnrzyShiWz3Ge9ZCmxu+6q/j2j1wLfoCw75oPB0oOSo9czddDogW0UVwJgRYL+AgpHxn0rxZWtT+pGTQ2TiT7bcYYvkOLs2G2y3MZ4fJQ7rYzN7W4NhvwjxBUeD3C4wxlnNkYYcGr3woj366bJ424yizyhkvux3+VIw1EKGj+mXdZ2uJHcJ1orIFUm9rQeYrv/Cj7KSRS5myFjq8LyhsoZB3Mr8PJvN0MQlv8nzg== 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=hg3aFPLWINSO4oMDTznqetTX5TxBmdh5A/x7jDixEvM=; b=zS2JARnpyjU+77PGuH5245D7xyRmzDM92UIpS+Y9T1r9X/L9EJ72sRBudUE3Fcl+mtIblig+sOQIT5TLXco8R3saHUGZrCdRzGNNgWjaKVPROzpMvS+SpzTDHin94IHm+XnrGC8yj4HgXESLOujKHZ1Et/OrUqKpgqIAKgig3I8= Received: from DS0PR10MB7933.namprd10.prod.outlook.com (2603:10b6:8:1b8::15) by CH3PR10MB6833.namprd10.prod.outlook.com (2603:10b6:610:150::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7741.35; Wed, 10 Jul 2024 19:23:20 +0000 Received: from DS0PR10MB7933.namprd10.prod.outlook.com ([fe80::2561:85b0:ae8f:9490]) by DS0PR10MB7933.namprd10.prod.outlook.com ([fe80::2561:85b0:ae8f:9490%3]) with mapi id 15.20.7741.033; Wed, 10 Jul 2024 19:23:20 +0000 From: "Liam R. Howlett" To: linux-mm@kvack.org, Andrew Morton Cc: Suren Baghdasaryan , Vlastimil Babka , Lorenzo Stoakes , Matthew Wilcox , sidhartha.kumar@oracle.com, "Paul E . McKenney" , Bert Karwatzki , Jiri Olsa , linux-kernel@vger.kernel.org, Kees Cook , "Liam R. Howlett" , Lorenzo Stoakes Subject: [PATCH v4 11/21] mm/mmap: Reposition vma iterator in mmap_region() Date: Wed, 10 Jul 2024 15:22:40 -0400 Message-ID: <20240710192250.4114783-12-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240710192250.4114783-1-Liam.Howlett@oracle.com> References: <20240710192250.4114783-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YT3PR01CA0012.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:86::8) To DS0PR10MB7933.namprd10.prod.outlook.com (2603:10b6:8:1b8::15) 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: DS0PR10MB7933:EE_|CH3PR10MB6833:EE_ X-MS-Office365-Filtering-Correlation-Id: 801165c0-6f47-4972-809e-08dca115c235 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|7416014|366016|1800799024; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?nKNaiMhJLz/6l2vbGpn9LqD3MIv6W12Q7WMzAG1p8HNfJl9fObYxnqlNXxzK?= =?us-ascii?Q?09aHuTsuDdpNcB89DmWi5Y4mEg4IWy2rKiyxkGQM6DkfQu+3ffKRxtk+MmUh?= =?us-ascii?Q?s5nqBr+CA7DFisEdqZku5iiq07aBVpsfutvybppYzy9ouAfTLVvvzDh5kFNX?= =?us-ascii?Q?0dCe+oLPP+TFxj3+jh5RL4rDn73elH5XAiBoRqQAmWaS4iL85YP8ZIzP3aa+?= =?us-ascii?Q?OxBUd0zHaW7HYVkIpGI3tiRo3XR/+McD9mEq5mnm+5TIcfsKMdG2N7Akjs2j?= =?us-ascii?Q?0nZoq3dfZOZ196xIoKFXQiPkI8V501jpXtk/wKTK3YVO2Y3NR8s6iXDJJBtp?= =?us-ascii?Q?CNsFLMjDouPFGwOMdQXmT7JYoSu4fAe/iJdygjrv+ve0cpsxlGbHgwdNTEgK?= =?us-ascii?Q?h3XtRG2BnYGscNgxKgKmdIPVfU6yOPCPP0WpcrMGly/Pbo2trl922U5jAdCi?= =?us-ascii?Q?FwM1lvTHw44HwrjXlyrHlIw0g2kc6JK8YBWZE9DLZVwkMo580XL20O7kLmYo?= =?us-ascii?Q?yhW1m8CAKoiSvzrvm7SC+aQ8IsYD7A9abIW6TfhJsMMlNEty+5rzZPyJOThj?= =?us-ascii?Q?0gzT+QBU3Dzb2t+vQr2wfQg+WP/BJCxOu12tkCd2ymxeRR30dUjMevtoHXzU?= =?us-ascii?Q?5OnS32CX97TDFE5tmekLFn2JtYuEpXPJiMJoDKcvTTuE+mOPMOWUlr4bMymK?= =?us-ascii?Q?EO5sd96kxcMDjciqPG6yblFZSE4fe/CNq9TbtMoLZltzE3w5TNikUYTzWcR9?= =?us-ascii?Q?bo+sYNyeyrZrSQzAFh0wND34tDxfUTWZwaOkmemFJoVHYVV/IapkWYcsYj/p?= =?us-ascii?Q?CoidYo644NjM2S4gz8lHf44BqkF58AkYH7q0CZNtgalcmSn7JRhO/2i9RLSN?= =?us-ascii?Q?C/Gg1XEHmOcjjUPY2klPN3h8zQobPHp3CChyuloi4nWw5DmnhvV9yy4Cs/m6?= =?us-ascii?Q?5XW/nVM5HKrMBfSV5qnohbSAIZWAlIF0LrcA0j76YjlZ2ssmZkrO9m383A8o?= =?us-ascii?Q?Mb14ysFOOzH4J3zun4Xfu8kjwDdIkAAGaKkPg8aBNyCqv5uks8Z/8apaA29y?= =?us-ascii?Q?xNfeQQ+zq693uy29Am1Fabo28bxq/O310R32vqOUotLzcy+baDGFYwJFkAF0?= =?us-ascii?Q?b3qeWm3+Lx/SZDxfQGCJ4fBCNYs9tozdH8A9TTPOHdRx6fCGcWllq0rFaLVu?= =?us-ascii?Q?2MTwKTC1pdvkDWQOb+0YYcWQcJXadhl+B/R+9ENsecb1ZoOUsT535r7ieu4+?= =?us-ascii?Q?aGIofkQNcOIIuZIr70fME71KHO5GNEVi7Vpf6dbB1GHMeFBGOQx9pptqrwzF?= =?us-ascii?Q?vRccyM2Ns30h3M4sCGmNq7o4/tafNBZcqQxL02K3q7AztA=3D=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS0PR10MB7933.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(7416014)(366016)(1800799024);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?PSJxlsyQeavdBmQon+b5+4V7sXqLCOiQVobj3liUHun6Fjwt/h4PKChUomnu?= =?us-ascii?Q?pDUvb/H3MrzY80jI4eAqrdW9bfKeyQunkgXwiQ9JzrSlvRtPtKHMnKkAeexC?= =?us-ascii?Q?JV5Tzl2TR8Av5nvsJtfgsvAwxi+WbftZHKCIVPP3VAho4jzDV7C+uz2RhIgh?= =?us-ascii?Q?vcyl17CTVhIBWJ0ApTvbcgry2jOvTcAUHH25jav8g+4IYPQM1i44Xx3UZvYd?= =?us-ascii?Q?HxE6d5p78iCUV9XbGa4Pr8qaZu4m0MGN/J6aVSLoP9W8LSNq3PMYkNSOVQ6J?= =?us-ascii?Q?WPEpkjAIN4mTcnbIG24XoGBvZBpS1dcLxk0+xZjQh9g6C3aCR5UjYjgAb/pm?= =?us-ascii?Q?zOV/p67H5yYhH0M+UHvcghgd4ULngcTkfIe8/EiUtZmqaT3yzqy//Jin8V6U?= =?us-ascii?Q?LsVqVKMroO/1IR4viUidA9buXXSvKmtb+mztBlElu4KmYWDx13o2lj5WC5PG?= =?us-ascii?Q?79V0WvOK3+wVb4AErmUBjANsxJTRU/JJiwbv1xSI7d41dX65PtQ0szDiHgMn?= =?us-ascii?Q?ey+sqqmaT+Qp2N8nEmyu2szOt1EYA3mhtMUl5Uuzz4s0D3ufrHLG3Ah0C6y3?= =?us-ascii?Q?1UN0DY+YCM9P1zDxgiuWwRQllo2IbLO+Q9crUSvpU9v4xmGQeljtZBG+NtW0?= =?us-ascii?Q?fLb/ZO/9Oe8/M8BkXx4VkRsB+Cik6gwvb8gYzJ+7bprlOAMhZUWXFIS9X0zc?= =?us-ascii?Q?o38zljgyLu4CUL9ibQ5ntcrj/CGZquNBsWPTft+rZ/I71bWoIFAoUTwtI756?= =?us-ascii?Q?qQqESP+O6E5F0vDCtChTVMwPT9Q1EsHYiGJLwjBffXKgAUpHN8H7HmLmZU5o?= =?us-ascii?Q?d3RYyAJcwXuWDzagZn16OSJkSW2kENDmBrOP/9+wqFZaChTpn7/rvXaSxIqA?= =?us-ascii?Q?XLIMSJJXTYhCdKJB3ujV9dH8IXhvgmNg6m+amwD59mH7sVJ40Y9/Lh5/ADdv?= =?us-ascii?Q?Hib/boM2bEna7+cj1ENDQ3Ijckz0sfbmCX076k/pAxiX+FOh3GNYJG/F5lLx?= =?us-ascii?Q?pDFFlv4BfJmknFe1K1u205h3lwfaRtBrNWk+RPxKLFvPg+NCgKO4dK5RtJO1?= =?us-ascii?Q?N9h5e89GMpYwfaLKaq0wEl+jgAP+L9dBoniJQoTkEw43XHGslbkN8UJjEqcN?= =?us-ascii?Q?JTemyCVVHNlQoIZkNqOJp6nT9Ao2GHLyQ+cPPfXkymAQYWq8w1J7ze8ENg5G?= =?us-ascii?Q?oqw2e3eWP5qTOWp/B2hsuYPkIYjYfr1U1EKRlSY2q388GxkqDopICoQN1cWF?= =?us-ascii?Q?+bFAvDB6zXQXj9pNR6GuIpJS3S9JN1P2h1m0xbZPz3UEf4d46sWYmnFeqUlp?= =?us-ascii?Q?1GYiX07iBFZIQZJ7/LjpxzPH1vsdE6ITcS9lOdv5oiCVWtEqrn9cxI6nO1VE?= =?us-ascii?Q?0g8KMmNIuBQCG+SeiTLoJ7nxAtGA4az1EjpssV9dXfAoaLNRMutBXcdWJ1f7?= =?us-ascii?Q?KpQ5447u+Ht6JqFlaKk+qkjk/q6k2JzVh09pfYyvZj2JICly2Md7WP3c7VDU?= =?us-ascii?Q?wj554a6wOwSHKVzBYytmjAfmTzaUlZNR1sKA16jqaamRGvMW+Qi6Wo0KqF41?= =?us-ascii?Q?n84/ZSv6Xyt411BgMF2JlGxefy/A/LpPmybzHXOoJO8HJebq5NxTIraOJxFZ?= =?us-ascii?Q?2w=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: W2O9+4n5nhIBTtmxbUMx4RLxWgAULGHp9e2pKeF1XVmVfouqwOYMZTTWgPfPzKJYUbLR1K+o4Jp1U9lnZR56tzisdGi+VMQrgCBR33SqOqGnmZKI3Mi10hRYI3bTgfQDguVKNyHAcEmZPDiT1u+VL53E6ewGdA8e/R2Ikfcs4p9nUmkQpXM7orKOcQp6bWpgg8+2Tam9tQd6X+9M5ctEY8h5Vz5XO9oG0Zd2Fd5uZWb21CUTZlZXWy7dlnCS/kx5A5Mt/eN3asFkAuJ759Gy9sqh/IlFd9A6ZtPdKkTbdI8na8CzXAaeUbEUwQI/y7PDpomtw4V9wc7J5KBKPBO5WlEMVCMr3eU7I+gi+dgOTXNQO+OTk9qjssxWyz61OrcIbICf/GYQNSpvMt+jG+HqrsDct7EVV/+eCRpyD+1naB7RPH4v3Hd0yfFOguXoFwUQ/PZpq0oNTSC2bsdKU74b08bhre+8Rozy5i8fCnaQHCDcEy6MrigBBcgJ37N4ApDsvguU4FIubngOk9oC4Ao/OzuppBR0RzZV3CYCVtizI5BX0XalRSEO1SYm+kCBUhBEWZ7B3x9TgFf+IxVP7OCAGVG4OhodiBQokhXCMGEKzAY= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 801165c0-6f47-4972-809e-08dca115c235 X-MS-Exchange-CrossTenant-AuthSource: DS0PR10MB7933.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Jul 2024 19:23:20.5792 (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: ZCNkXRnF+C4TXEACPx/hYvdUCX/h4woq+xTzVWyKyXMiBUdyUjx0ZnH5Dip5EdBi+LjBXqWPLYVVdgacozBZ2w== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH3PR10MB6833 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1039,Hydra:6.0.680,FMLib:17.12.28.16 definitions=2024-07-10_14,2024-07-10_01,2024-05-17_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 suspectscore=0 phishscore=0 mlxscore=0 mlxlogscore=999 bulkscore=0 spamscore=0 adultscore=0 malwarescore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2406180000 definitions=main-2407100137 X-Proofpoint-ORIG-GUID: v4G7A5CXxBOJnuJZDHpxDaL9wuC8DnUk X-Proofpoint-GUID: v4G7A5CXxBOJnuJZDHpxDaL9wuC8DnUk Content-Type: text/plain; charset="utf-8" From: "Liam R. Howlett" Instead of moving (or leaving) the vma iterator pointing at the previous vma, leave it pointing at the insert location. Pointing the vma iterator at the insert location allows for a cleaner walk of the vma tree for MAP_FIXED and the no expansion cases. The vma_prev() call in the case of merging the previous vma is equivalent to vma_iter_prev_range(), since the vma iterator will be pointing to the location just before the previous vma. Signed-off-by: Liam R. Howlett Reviewed-by: Lorenzo Stoakes --- mm/mmap.c | 38 ++++++++++++++++++++++---------------- 1 file changed, 22 insertions(+), 16 deletions(-) diff --git a/mm/mmap.c b/mm/mmap.c index e2e6b3202c25..83cfe575c114 100644 --- a/mm/mmap.c +++ b/mm/mmap.c @@ -2959,21 +2959,22 @@ unsigned long mmap_region(struct file *file, unsign= ed long addr, mas_init(&mas_detach, &mt_detach, /* addr =3D */ 0); /* Prepare to unmap any existing mapping in the area */ if (vms_gather_munmap_vmas(&vms, &mas_detach)) - return -ENOMEM; + goto gather_failed; =20 /* Remove any existing mappings from the vma tree */ if (vma_iter_clear_gfp(&vmi, addr, end, GFP_KERNEL)) - return -ENOMEM; + goto clear_tree_failed; =20 /* Unmap any existing mapping in the area */ vms_complete_munmap_vmas(&vms, &mas_detach); next =3D vms.next; prev =3D vms.prev; - vma_prev(&vmi); vma =3D NULL; } else { next =3D vma_next(&vmi); prev =3D vma_prev(&vmi); + if (prev) + vma_iter_next_range(&vmi); } =20 /* @@ -2986,11 +2987,8 @@ unsigned long mmap_region(struct file *file, unsigne= d long addr, vm_flags |=3D VM_ACCOUNT; } =20 - if (vm_flags & VM_SPECIAL) { - if (prev) - vma_iter_next_range(&vmi); + if (vm_flags & VM_SPECIAL) goto cannot_expand; - } =20 /* Attempt to expand an old mapping */ /* Check next */ @@ -3011,19 +3009,21 @@ unsigned long mmap_region(struct file *file, unsign= ed long addr, merge_start =3D prev->vm_start; vma =3D prev; vm_pgoff =3D prev->vm_pgoff; - } else if (prev) { - vma_iter_next_range(&vmi); + vma_prev(&vmi); /* Equivalent to going to the previous range */ } =20 - /* Actually expand, if possible */ - if (vma && - !vma_expand(&vmi, vma, merge_start, merge_end, vm_pgoff, next)) { - khugepaged_enter_vma(vma, vm_flags); - goto expanded; + if (vma) { + /* Actually expand, if possible */ + if (!vma_expand(&vmi, vma, merge_start, merge_end, vm_pgoff, next)) { + khugepaged_enter_vma(vma, vm_flags); + goto expanded; + } + + /* If the expand fails, then reposition the vma iterator */ + if (unlikely(vma =3D=3D prev)) + vma_iter_set(&vmi, addr); } =20 - if (vma =3D=3D prev) - vma_iter_set(&vmi, addr); cannot_expand: =20 /* @@ -3184,6 +3184,12 @@ unsigned long mmap_region(struct file *file, unsigne= d long addr, vm_unacct_memory(charged); validate_mm(mm); return error; + +clear_tree_failed: + abort_munmap_vmas(&mas_detach); +gather_failed: + validate_mm(mm); + return -ENOMEM; } =20 static int __vm_munmap(unsigned long start, size_t len, bool unlock) --=20 2.43.0 From nobody Wed Dec 17 10:46:22 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 EB27A198E60 for ; Wed, 10 Jul 2024 19:23:50 +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=1720639432; cv=fail; b=BHq6b5BXR3l5NmiY5Aerl21D3agE1xcjEOxftZdlMUISfhX7PoEhGrXJnc7Jlqyck1uI77qTxQLtn4HiSxoFfzz0ypzkTkxErvNZOS2ZFncQP2flLzcha0e1d9UWJSMJ62L73xypWyvmf9v/DLhMgTfrqY4ASjge6I3YmBf1mCg= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1720639432; c=relaxed/simple; bh=YEqd+KJatxRuj7+X+vRtCnJtZkDAgTjLHSq8GOvJUBU=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=EqpxMt+ucxm2Isi1zTu+K9yv32O1Lgien9F1UvXAXsJf4P7Z4gWAGp6V5Kv44Z25ND5G6UEb5q9g8H31pHOdhoHc3f5MONMNuK96x04zHxl+ljgHXKy7c6XeQfRtHadqhOZcRnvyVj+mEvKP1PaC9IHUGrcuo26fYg+lwMywFls= 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=DAYNy54i; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=B74dl8nk; 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="DAYNy54i"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="B74dl8nk" 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 46AG26hj012005; Wed, 10 Jul 2024 19:23:36 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h= from:to:cc:subject:date:message-id:in-reply-to:references :content-transfer-encoding:content-type:mime-version; s= corp-2023-11-20; bh=b6f+cXlgUcQfrdseKlJZgmWZ3atIxU2VOZg5eVuWr3A=; b= DAYNy54i7LAyHpDnfPMoDe19lnlL2Kw8eTMkvUsOSxKEJCctxxqLLSPfjlLiPbqH 6CPuRwoRoNZ3TKXegdtXFuKYZBmvrj3AAX0embBsdz0BrRunBnvStMumOT+AJcjd WM2CS2koMLzYULa2gBk82O/wsTfwDEuGdDmwCT4HEME3IMPbYQEtFyNzrj6IS4f0 h62VrzYuvwH6lHbVJxVBek/F2s82XEyQC5xOIfmd3ddNLLDBqD65MrTZby9TXYRU W45pKo3RiifrTnwu/G2Gi4BV5hVpHc9f70M1Xh1QsIqElYRFL4YKRfIrUtfODWmx EIKOklkYmePn9eY8Ej1drQ== Received: from phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta01.appoci.oracle.com [138.1.114.2]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 406wkcg0bn-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 10 Jul 2024 19:23:36 +0000 (GMT) Received: from pps.filterd (phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (8.17.1.19/8.17.1.19) with ESMTP id 46AIs3bh022604; Wed, 10 Jul 2024 19:23:35 GMT Received: from nam10-mw2-obe.outbound.protection.outlook.com (mail-mw2nam10lp2047.outbound.protection.outlook.com [104.47.55.47]) by phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 409vv1gwv5-2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 10 Jul 2024 19:23:35 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=DTb/DHUrGHk+GlN+Kw6As/bakUYj69Na9Mn5jiXEIY4Ri7DKF3uI+4kCvZc7wMNsOWxhmqFxplCydxmJMWLoKyrsFmHx9sv4C8LqIGmzEJ7VWsu1OBDyJftYqEywkZ6xHoEwa9QFYHfTdRnR3JwhJzP3a9FoE/93WY7hWAAgUzSW0S3Wfsnjx7OGwUW1zu75hy825gnrRCW71dte0vdKv/MON9RX/OTjkjOaC0UFx+uxuDabNA+wh2N9oNs1EPyA5KbpI01q5ypdqkFL9UKbqT2oeVQMrb920vDfqa6/QQ9dnCHAJz0Cow17tlzPATe+8MfdSfk8tVhRWNpALY6Mgw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; 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=b6f+cXlgUcQfrdseKlJZgmWZ3atIxU2VOZg5eVuWr3A=; b=IoyqUx0c4pOb6XMyPtT/3oj0AKCQaRfcDARoFk6zkaCZhzUzUb2ENomqsPUwhO4QD7UdH7wO0U8OQq46S6jur5YgOCSIW5CfiaF/sln8cpDBcvxT36DpMr3G9LXMayB5v3kYPBEWIa6EGk0Tz4LWQzzjjM/ZODosLyh4My5eZJwM6z4Rl4BxFHmAxk/oE3+/H7h02CJD8yf8i/nKWlZcl+1QBdz32AEHAtbtn+LLUX+S9eEjmeJHf27OBrmdiC1pOBq0t95RNQZAlh8HsDQBSi60118vTab73erauKYDZNzCaPRCwdBN/KJsLdzEXoPqXhohCNWKsO4hkOT1yHEn8Q== 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=b6f+cXlgUcQfrdseKlJZgmWZ3atIxU2VOZg5eVuWr3A=; b=B74dl8nkMYBVoDpkvzMzBvIKl7mxFYP8pHPVLlovuGNI0N20FctHtfNUpYDuvn/0J12xJ79HFJmGrydJkubjE7lW8hQapDPWgzG2d1lB1hagS08icaVBxpbjEXyf1g905wMhCvQ/qICB+bof14vJg5prS2FAbGproUlJcBkDPNI= Received: from DS0PR10MB7933.namprd10.prod.outlook.com (2603:10b6:8:1b8::15) by CH3PR10MB6833.namprd10.prod.outlook.com (2603:10b6:610:150::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7741.35; Wed, 10 Jul 2024 19:23:22 +0000 Received: from DS0PR10MB7933.namprd10.prod.outlook.com ([fe80::2561:85b0:ae8f:9490]) by DS0PR10MB7933.namprd10.prod.outlook.com ([fe80::2561:85b0:ae8f:9490%3]) with mapi id 15.20.7741.033; Wed, 10 Jul 2024 19:23:22 +0000 From: "Liam R. Howlett" To: linux-mm@kvack.org, Andrew Morton Cc: Suren Baghdasaryan , Vlastimil Babka , Lorenzo Stoakes , Matthew Wilcox , sidhartha.kumar@oracle.com, "Paul E . McKenney" , Bert Karwatzki , Jiri Olsa , linux-kernel@vger.kernel.org, Kees Cook , "Liam R. Howlett" , Lorenzo Stoakes Subject: [PATCH v4 12/21] mm/mmap: Track start and end of munmap in vma_munmap_struct Date: Wed, 10 Jul 2024 15:22:41 -0400 Message-ID: <20240710192250.4114783-13-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240710192250.4114783-1-Liam.Howlett@oracle.com> References: <20240710192250.4114783-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YT3PR01CA0018.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:86::22) To DS0PR10MB7933.namprd10.prod.outlook.com (2603:10b6:8:1b8::15) 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: DS0PR10MB7933:EE_|CH3PR10MB6833:EE_ X-MS-Office365-Filtering-Correlation-Id: 2c50cfe8-bfe8-4ed9-2a4f-08dca115c388 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|7416014|366016|1800799024; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?Xu+61HJf+UF/JkR6gviN/79E3QPnjIYbBRRNVHviH/sXUyScIzK15HVjLCCV?= =?us-ascii?Q?XmsBC9a+URC1seV+vYLcOV3IRz8p0/ZoONomdwKpu2EH2T8S8fMs2MRk6Q0d?= =?us-ascii?Q?iXg+hcAYoJm1qiyvd39hOc1LQ0G20b+1JT21iq/0GzRleGOtn1yOzjxW2s5M?= =?us-ascii?Q?jjRdbaCbFfOnB/Jn8MgKhPw4fo0DmUeZrs8ZgNdTJJSOgWsixeAq0Ejaz6jB?= =?us-ascii?Q?D687CfqFXURfse4MMUll1Wt+bOrXCO6gwlWz4UxjKfhvfwX4+NyKgFnBD4JA?= =?us-ascii?Q?Ey62emeR3JH3RoEMNm/mEapo9Bdu4vUhlYH69QOJErZgTV9J4sIcLgIyrWwd?= =?us-ascii?Q?50Jyd/dAV6m/FQ5hZJDcm1ZTvXZJTaSueSIf2ObW+8hSWxquZm1IW1+VLjuD?= =?us-ascii?Q?L25P8V9F60IbJvHjIs8MBc4mjkAZwqAWtDzkheIMUiSVB5cDpJRhSpSMlZhW?= =?us-ascii?Q?FiQTzb4p9E7W/m7QyiIzN81tyEFfkcJ029DQRPyXj1mcvW8Q4Tbx90KBFYsa?= =?us-ascii?Q?YjyAFTPuzxEIeVSXrYlvgroH7Pdxt41OoMFnX+ibChAMu9Asgdy5WFi55kff?= =?us-ascii?Q?oNxDT2TmHf7DDp+wtvzj17C3daDYYWMHEGVG+NBy19zo7PY3ABWSxwJZ25Kt?= =?us-ascii?Q?x5PEUyoFM4FwJESexyp7dWiHcIRbiotDf77joaPv1PQjDGwfp7ImJSShmoG3?= =?us-ascii?Q?86LcdMGh8oK8FGZ3F/Crkx2TTGJa3AOoTpRm4ppvDHpS7VlXjwbDEksC7AbQ?= =?us-ascii?Q?d5vRdf31v+CNj8OZMR7MyVNqk0xOl0ge3QTyD0L57FC5baKh4fyONRASdJu9?= =?us-ascii?Q?LxyZbBrdxgpeTrgIhlxV2Gs+HbXT7yd8L9FqvBeFZDrbrfmoS5CR0ZWBBLIy?= =?us-ascii?Q?0VXcBAedaXsto8Psdl5u3+VNBcT8hK6OE7cHG7+SFN8L1iVLae+qWHnpBnQS?= =?us-ascii?Q?qj7mZpRskwVqOJTu3q8cx6N6w3H2qfD6m5pa4trhBg9d3Ldh12MfXgTXlqsZ?= =?us-ascii?Q?SSM2hWoZCl+WwHDimifQnKYYbOKmKb8biuS4rChOUVmPjxmNCbFF+Bac05ts?= =?us-ascii?Q?3NRlJh9B+O8Y6Sp9yKTMxCtPCacgHaZ92O2sfoT1g1lLsM3ImluWhuOjcjvR?= =?us-ascii?Q?kqhmQs32KQcag/FSfBDxwTK1aw5wRcS1nrcaJeI8a4LOrw4kZ04sdFV8tT9X?= =?us-ascii?Q?ciAQOQmUmu110xSN5Sf8bPjxM/bLhrCzpoIQoRVdNyPK+6OUkF9k1/78/Kpd?= =?us-ascii?Q?tlDHOh5GpI31bnc6OSQkTSJIA5UDlsk05caMbL/1Ar5FJYonOlo97xSyfbXF?= =?us-ascii?Q?ZcVxAfVxzLvgKwlA5AlC6aCZfTcHz44Af++bYQSn9qxBpw=3D=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS0PR10MB7933.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(7416014)(366016)(1800799024);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?+gQglyFLKmCOEHqMlkiiPOKql9vXwRcOagWzt2ymNT+qxC2hN9yePTxyoFla?= =?us-ascii?Q?37NLrub4dWHXvOLvtgFBHUx7gZQmeOwtfWGJtJ4xzTfguNRUAPkBeMS6wr19?= =?us-ascii?Q?2togqqVQ50be7yScwcUxOh4wH3wxboaH5jMhRQfWF08WvO2ziO5NQLgWZt4b?= =?us-ascii?Q?uXwc0IPOYuay0TY9uYUKQGx/HVdevK9XT087L3hke+Qpx/sy+sxrrFM8rejr?= =?us-ascii?Q?xAhfgXchNa6HtrH5Iel5eXi/aYDEf7dYM8aSitfU7reEmCZh8S74OxzQpei7?= =?us-ascii?Q?EGk69RauY8bSS09phDiFHI73HFEEF+3AmSaiFCgdT6ouhriVHHjSP+ZFwK6z?= =?us-ascii?Q?mnSW6zzeZb0x3R+URFanJyBK6uM9Czp5XM5ptcQqnzOTpsz6bP7xndF5aK9b?= =?us-ascii?Q?OvhrI7aVuL6hIA8lpLg+iYOUzUnO7ZxK1ZwiM/E8Ohiq7VmawoFgrptr7sXl?= =?us-ascii?Q?uICD2VSVzo3ahR95fTWKRPYEzMUCQ/sixfwh6hg9mmMX2GUPtqiICbQwlsmI?= =?us-ascii?Q?knmvjpkYcveTfWZ2oXKDi7HWjCeCUYSCVfhGI2a61bPZ1dDqauCVcWfjTgoZ?= =?us-ascii?Q?q/K64eKbZf++jsBjaMT4JK/Ii74kwghZFA9oXjHAZnwi/5nlp6neezFwtGvj?= =?us-ascii?Q?XWc4CagGzfZXIM1mcSfelwHlBVHrF4/VJopcfeHGpPc4m0bjZSHcn5Kjiw2x?= =?us-ascii?Q?beetwjJMHDLf4CxT5r4yBAKnOGZNPNfjDVZNAaZCp/152Ul7DRxKx46oYYFo?= =?us-ascii?Q?7kGRPFnmHh7zGgTEpy7wCwceyZE0r1JTlCxYyo//Mjr2XrY75QuFa3smXc8F?= =?us-ascii?Q?tGQgLxSMPnwDS2nhMg/ugL2GV7FVBO3rEX5qIvH0K66ixJGQJlaxl0mG/DCP?= =?us-ascii?Q?wVb6+VpibcGjQTPQS+uCMbwhiYD+S0KWMHPy7bc1ggLMHMcDuIF2U9TtcIGg?= =?us-ascii?Q?LpQ1ZGZYMjqKcLbX42q11kI5bQqG7HYtUOV0ywPuSUo/NUk4uaB66YIELZq1?= =?us-ascii?Q?o4VO2vgBBnS1eNSLU+PqMpeGkZ7sbkeaRmVOLm2bWS7WL2bnxFjkE4ArAD5q?= =?us-ascii?Q?FhCgVUJRAZ2zZsAf+UOePDYSyzoUmIgEAcGB00VE7VhMU+VOK7xopLboMoAi?= =?us-ascii?Q?Hj84qn4FlnvIR9IAfVU1n0Sjk2b6yS2IgXO0hTEunalnWb/pe8wASYBlWzhW?= =?us-ascii?Q?IUeiODQj8E2Zi6LY4ByvZ/+Np6zOBNSlUmXFOa4mwbQOIuC5jvjJQvWWuHS5?= =?us-ascii?Q?VtO/yBCrk790LpyNkXVgl/ZAg13KqQwCxIj23q94fhKdWygcgSVJfBs91txs?= =?us-ascii?Q?BQH/1AvhSGzrGRl+N+ekAZ8eISqopDMwhVjbUzoFrqRbxQCdA9dexHEhp6AX?= =?us-ascii?Q?JtXZOZ4wPU2LXmrxs/wLhe8CHtYMWuwXojXSQTjeAiGAG7Hhjw4vB2U0/LSR?= =?us-ascii?Q?VPHkALn11ayJ2B3mk9yoJ/smCh5nSfzQangfT9uOlBJ2VHD52PqKlHFHW9zT?= =?us-ascii?Q?fo4Tlwu7rUN622SFyiwptdnxCxvw4uLS6kHfApPs8fdt1Eun9o92z4pt7DrY?= =?us-ascii?Q?DQoDWYcnBroF00u9iuEeL9cM1nFS2NMvrGTiGt9P6aiqgokqk4tykQv/Yj0a?= =?us-ascii?Q?nw=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: tLoZjPjUElYne7szt0niayCO2afTcoMIlkrxVep40rfFtAsN+/wL/WtS/KcTYi1+Mvb/1J1xLv+t8H9KQxRbJW03yMw7wcMaIVvvRqtwnZHNbSjd/ARqqurfEANAAxcPtGp3ESYhQoyY8wU6jblWbd6yNsKAE55pxnX0ld8GqfSJO+cHk9NaZ/P15yuYLbMuM7THe9/5lHGyX+ctX7kw6RGtFCzsKk9S1Eew9SEYnn3E0bkA9Y7nIccJ05Ic6yGnc0YywQRHBcHE1o0iHIfgHIUdR2i4KBJOLH1f6rRsGC7SOzArL9tbXYDG9RWFgtmpWqagEwzhnLcdNCTVLppMJsiKin/GpKZPTWXepi2JJLlQvOJJlQ7ZpSCQLnNPU4P1QwQK1WlAShu31RXgO6AXj5Uzo7Taot4uwe7MMsLM8DXinZE7uUbT90F1yHgzTf/eXqxwXoVHGEiXA2+fjEqS68b166+UORpj7l/iAE/pFSFFTPr4w3ujd9d8URXVeWLLWOqgYXM8XMB+O/EKxbNRwK0aqk5XxTCkXbCufaGnPrNxWhKgTSy8r25UQCA3F8TMSehCGzKV9BzdhVQ+rlUrMjLvuDqjMC68g5lTYAoBMmk= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 2c50cfe8-bfe8-4ed9-2a4f-08dca115c388 X-MS-Exchange-CrossTenant-AuthSource: DS0PR10MB7933.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Jul 2024 19:23:22.7636 (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: mJsyIqvMIYvjGmx90ai7xL0aJ8OG2xOZpckuIaNUAeK2tDw+1r2dykXPfVvOYeaRa5CZAfGTvHj4KRSWpLpj4w== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH3PR10MB6833 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1039,Hydra:6.0.680,FMLib:17.12.28.16 definitions=2024-07-10_14,2024-07-10_01,2024-05-17_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 suspectscore=0 phishscore=0 mlxscore=0 mlxlogscore=999 bulkscore=0 spamscore=0 adultscore=0 malwarescore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2406180000 definitions=main-2407100137 X-Proofpoint-ORIG-GUID: 290507lpejHaOMKqnXij0Foqyc4lkq6u X-Proofpoint-GUID: 290507lpejHaOMKqnXij0Foqyc4lkq6u Content-Type: text/plain; charset="utf-8" From: "Liam R. Howlett" Set the start and end address for munmap when the prev and next are gathered. This is needed to avoid incorrect addresses being used during the vms_complete_munmap_vmas() function if the prev/next vma are expanded. Add a new helper vms_complete_pte_clear(), which is needed later and will avoid growing the argument list to unmap_region() beyond the 9 it already has. Signed-off-by: Liam R. Howlett Reviewed-by: Lorenzo Stoakes --- mm/internal.h | 2 ++ mm/mmap.c | 35 ++++++++++++++++++++++++++++------- 2 files changed, 30 insertions(+), 7 deletions(-) diff --git a/mm/internal.h b/mm/internal.h index a22547125c13..11e90c6e5a3e 100644 --- a/mm/internal.h +++ b/mm/internal.h @@ -1493,6 +1493,8 @@ struct vma_munmap_struct { struct list_head *uf; /* Userfaultfd list_head */ unsigned long start; /* Aligned start addr (inclusive) */ unsigned long end; /* Aligned end addr (exclusive) */ + unsigned long unmap_start; /* Unmap PTE start */ + unsigned long unmap_end; /* Unmap PTE end */ int vma_count; /* Number of vmas that will be removed */ unsigned long nr_pages; /* Number of pages being removed */ unsigned long locked_vm; /* Number of locked pages */ diff --git a/mm/mmap.c b/mm/mmap.c index 83cfe575c114..12a5ca6c979f 100644 --- a/mm/mmap.c +++ b/mm/mmap.c @@ -527,6 +527,8 @@ static inline void init_vma_munmap(struct vma_munmap_st= ruct *vms, vms->vma_count =3D 0; vms->nr_pages =3D vms->locked_vm =3D vms->nr_accounted =3D 0; vms->exec_vm =3D vms->stack_vm =3D vms->data_vm =3D 0; + vms->unmap_start =3D FIRST_USER_ADDRESS; + vms->unmap_end =3D USER_PGTABLES_CEILING; } =20 /* @@ -2609,6 +2611,27 @@ static inline void abort_munmap_vmas(struct ma_state= *mas_detach) __mt_destroy(mas_detach->tree); } =20 + +static void vms_complete_pte_clear(struct vma_munmap_struct *vms, + struct ma_state *mas_detach, bool mm_wr_locked) +{ + struct mmu_gather tlb; + + /* + * We can free page tables without write-locking mmap_lock because VMAs + * were isolated before we downgraded mmap_lock. + */ + mas_set(mas_detach, 1); + lru_add_drain(); + tlb_gather_mmu(&tlb, vms->mm); + update_hiwater_rss(vms->mm); + unmap_vmas(&tlb, mas_detach, vms->vma, vms->start, vms->end, vms->vma_cou= nt, mm_wr_locked); + mas_set(mas_detach, 1); + /* start and end may be different if there is no prev or next vma. */ + free_pgtables(&tlb, mas_detach, vms->vma, vms->unmap_start, vms->unmap_en= d, mm_wr_locked); + tlb_finish_mmu(&tlb); +} + /* * vms_complete_munmap_vmas() - Finish the munmap() operation * @vms: The vma munmap struct @@ -2630,13 +2653,7 @@ static void vms_complete_munmap_vmas(struct vma_munm= ap_struct *vms, if (vms->unlock) mmap_write_downgrade(mm); =20 - /* - * We can free page tables without write-locking mmap_lock because VMAs - * were isolated before we downgraded mmap_lock. - */ - mas_set(mas_detach, 1); - unmap_region(mm, mas_detach, vms->vma, vms->prev, vms->next, - vms->start, vms->end, vms->vma_count, !vms->unlock); + vms_complete_pte_clear(vms, mas_detach, !vms->unlock); /* Update high watermark before we lower total_vm */ update_hiwater_vm(mm); /* Stat accounting */ @@ -2698,6 +2715,8 @@ static int vms_gather_munmap_vmas(struct vma_munmap_s= truct *vms, goto start_split_failed; } vms->prev =3D vma_prev(vms->vmi); + if (vms->prev) + vms->unmap_start =3D vms->prev->vm_end; =20 /* * Detach a range of VMAs from the mm. Using next as a temp variable as @@ -2760,6 +2779,8 @@ static int vms_gather_munmap_vmas(struct vma_munmap_s= truct *vms, } =20 vms->next =3D vma_next(vms->vmi); + if (vms->next) + vms->unmap_end =3D vms->next->vm_start; =20 #if defined(CONFIG_DEBUG_VM_MAPLE_TREE) /* Make sure no VMAs are about to be lost. */ --=20 2.43.0 From nobody Wed Dec 17 10:46:22 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 B87A7198826 for ; Wed, 10 Jul 2024 19:23:47 +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=1720639430; cv=fail; b=ING8okgyLt7pdbN2bmwPZwTubC3pdt6yZT9t7DJ44NG1PG8A2ksI0LlVfD6vsRioMKcGxbEej+aPhzZeVFHELlyMcm/CIuhP8BOXjWFHOxw1+R8naeO2F+uHAlxQ1HcLUV9uraXsrNcsj/9H05B2YRmNVh8CygJ+9H7QWm3aIkQ= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1720639430; c=relaxed/simple; bh=ietHNwlGT4B8Dki3b+48Nf0N4Iam8j2oUrvCfP3rXgg=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=mMzDvPbDGTuZUXC67BV1NkM3udcIRY+OYfXo3bQCWO7yzp6ReND9LLAWAnDJFm9Hst0NeoteRv7iywsPEEvQ3BjpVGSLRELl/ODJEjAdrOz/HqdbSCUPjUHMhlC7iEu/qv4SW37ln5apzOaPODjYzSv5pP8EDmHQ2VX3NpYTQ4E= 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=bC2AUAvM; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=euir04r6; 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="bC2AUAvM"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="euir04r6" Received: from pps.filterd (m0246629.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 46AFg0oT013740; Wed, 10 Jul 2024 19:23:36 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h= from:to:cc:subject:date:message-id:in-reply-to:references :content-transfer-encoding:content-type:mime-version; s= corp-2023-11-20; bh=ZSFrB97cpv7TqMTUIBHaSA8OeLP/JU95xwMvxrLhrQc=; b= bC2AUAvMM1QZ0xdTRozCpoM1id/H5UzeIJ9dYNibUu8nRY+HWDCRzn96QHc926iw FTB3n4vppEN28FRfnuI6+tKBO2TrtCwS+MlxOufERfEgw1rGMlLA1GbmQaaHPFhQ LjMe5JRuy3R/4rCuTD2qJ41wEZEf/NaJSrEsAUNdwY1UbEnJaXTBW85fBoOfUtgk JDrgTjSWNv1Fr7Y+92yLNNe4gMJmS8s7XGuMyt1SX/3e0t5uFkporfZHS7gkHXag C+seboKNjDpt6cDPqkeZ/Boa9ISk9y/h3fzjIhXzq67gJHas039y+H2dxrasVV7w Kz4es31s+6hCncyyH/4Dtg== Received: from phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta01.appoci.oracle.com [138.1.114.2]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 406wt8fy0t-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 10 Jul 2024 19:23:36 +0000 (GMT) Received: from pps.filterd (phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (8.17.1.19/8.17.1.19) with ESMTP id 46AIs3bi022604; Wed, 10 Jul 2024 19:23:35 GMT Received: from nam10-mw2-obe.outbound.protection.outlook.com (mail-mw2nam10lp2047.outbound.protection.outlook.com [104.47.55.47]) by phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 409vv1gwv5-3 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 10 Jul 2024 19:23:35 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ZpbqVqQ6frx2wWG1Pw0z82Dh879Cc2j8zqvGo1/wYygg31alRvROgoEcxizaoG2FK7LvnbUeYKJoQdm+/FSYf3Dy3rCHdLw4B4rmhhGn+z3Lg9vssNmv+q7yJxk04Ly2b5saIqFj6A1Q0mwbPIgnN61+H0cfQlAsc+b3G6naVRgJ9KN0NFASDJIHBWEQKPMBOvbTa+sYmU0fuTj1VWuyQCIPC+uqPcvmVOtNov9tUqfDxTsj8ks8I96C7pD2gOXI04oQDdj0FvOpCTJz6UNxnXP0goZKLPoJIhpNMr5ECHQyDXYf5SJAKn+61z2jTM/H6fzAskkrPZDAGyCAfRoKMA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; 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=ZSFrB97cpv7TqMTUIBHaSA8OeLP/JU95xwMvxrLhrQc=; b=PaJH6Orq2sOOB/ASEIY4ny4Yrw8J0UqNrJQXvB8zfSCyR9u2Fb2loKgQp/Aj7XLyHDEfX/nrrYXeHUo0jfdTsUKNSlQ7Bf0bU559wj8WQk7gLHigR7dM1lu40V6gqI5k2+dPqY9SBtCBsNDglsoIEwoNa/SjmxloKTHZmQrZ6qJauUoC1Cih+xXj3k4IYgfNilFZgt4CoI08/TU6pa09IsBleGib08xvvjZvRHHEe6fak0fTZ31+kdo4D1OKHXeEhbk+GWftkBhT6keQHDGb82Qs3wVCvDamrnbGWkq5OchZU3v8fx5cNtlYP9VxljrnS0KlCm0pSPytu02uxXR+5w== 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=ZSFrB97cpv7TqMTUIBHaSA8OeLP/JU95xwMvxrLhrQc=; b=euir04r6is4lyMsnf5yBGstQiRiQBb6fYJ7JMxpyu5jZuq7TdYZejwFF5rHjziU24U2JueraIlHoJyMp463oPS6tAmUe5Bsc/kfbUtWKNne1JA7O+jrhIUTtLqr6yOSLWeCxPp4Lekd3GbdlnnYQHFSGobAKjV447zHvTRdrCec= Received: from DS0PR10MB7933.namprd10.prod.outlook.com (2603:10b6:8:1b8::15) by CH3PR10MB6833.namprd10.prod.outlook.com (2603:10b6:610:150::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7741.35; Wed, 10 Jul 2024 19:23:25 +0000 Received: from DS0PR10MB7933.namprd10.prod.outlook.com ([fe80::2561:85b0:ae8f:9490]) by DS0PR10MB7933.namprd10.prod.outlook.com ([fe80::2561:85b0:ae8f:9490%3]) with mapi id 15.20.7741.033; Wed, 10 Jul 2024 19:23:24 +0000 From: "Liam R. Howlett" To: linux-mm@kvack.org, Andrew Morton Cc: Suren Baghdasaryan , Vlastimil Babka , Lorenzo Stoakes , Matthew Wilcox , sidhartha.kumar@oracle.com, "Paul E . McKenney" , Bert Karwatzki , Jiri Olsa , linux-kernel@vger.kernel.org, Kees Cook , "Liam R. Howlett" , Lorenzo Stoakes Subject: [PATCH v4 13/21] mm/mmap: Clean up unmap_region() argument list Date: Wed, 10 Jul 2024 15:22:42 -0400 Message-ID: <20240710192250.4114783-14-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240710192250.4114783-1-Liam.Howlett@oracle.com> References: <20240710192250.4114783-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YT4PR01CA0428.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:10b::20) To DS0PR10MB7933.namprd10.prod.outlook.com (2603:10b6:8:1b8::15) 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: DS0PR10MB7933:EE_|CH3PR10MB6833:EE_ X-MS-Office365-Filtering-Correlation-Id: 1651b855-1d06-4d94-b936-08dca115c4c9 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|7416014|366016|1800799024; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?z6Zmb9XVOWepdjOkn85ILdgujcNnA3nKrHX1tQjmRtxGhmb9J0UTuW+Fxg/x?= =?us-ascii?Q?d9ypvAG6tQfiSnUu1sE2k6R++joFoPclbz0BJHsEwBbeUS3j6cqI/bvYIR7R?= =?us-ascii?Q?SCyvGjFJMhlUUUUvnZSnsmWejpPIWRxbH1Q2WZdmEvibUakoOvc2A1/DXphL?= =?us-ascii?Q?pgb87ixIlI2CeQ9TvfPLhTl20zZf26d0NZ9vmsbg2SdoO33CrCD/UIaCGoXW?= =?us-ascii?Q?RaJG9HTadU8vN1PhYgAnJd+xFe3GUVVVa10T5/+qH44efBYO+1mxL6p1wsEy?= =?us-ascii?Q?pGoxGtHlbOC6budyo3IaU5zEStfnSVYuCYNiWzaAVLRuYVUsDMCow5pWe7qP?= =?us-ascii?Q?N72hJJN1PkrOh/K/8cvucC9yqwdnqO0htp/rMi77vKoj8Pv8Ukz4gwxao/pX?= =?us-ascii?Q?/1WQGlgXknIfmcZghstRGev10gIN3oXd7VEdHM8kq9uDWotmAxdFyKNDzgWv?= =?us-ascii?Q?RcQEuY0d9x6vHh1E3D/OBpU9elTGlBMmWrQUBgDCfZiHbv4M8rN8vmM7/cjO?= =?us-ascii?Q?q06ntEYV8C+5Zjf4yV4SQXaCs9ZlGmZdn4YurTzlOB7QMBfZY9M8rm2P7rI+?= =?us-ascii?Q?d0iPXn9KBwD//6JlxjJ6CyMUVBQa9skVs7rnZdEYXPyln89B9unt/bj0S01B?= =?us-ascii?Q?lWyhmLptb1I5BP/GN3B/sqzDfiymkG80CvODYuRKipOjx61wwT/U9m76sA3I?= =?us-ascii?Q?CPpSDltDnQ12eS1mroxITlWLA+IajHaWZFDIS96Luvwe8xzuRLHLeMJfjNEq?= =?us-ascii?Q?fxDe15Tj2R8TbKe7mQjF4ckD9vWbR8VCSzj/20dCYoALaVIA1b+1OsTAa5Fa?= =?us-ascii?Q?AEUGuxVCm5I6fFUkUZ9svatL5fIYYEwLDZZBiByU3S0lPEVzSSQLUnQ1lNfy?= =?us-ascii?Q?50ws7neqMG7/vc009nimhFUclp+C5uBhJRKRN/ovAMURxGjxeLEGxUqjo+yX?= =?us-ascii?Q?LYuCWXgWtFQXan9dMBd0SHobdMN5bhlB+7h3pnq3VAsxNkH7qrm6N7OZXSHb?= =?us-ascii?Q?5PlTqk4eSWY+nmmkqT+noB3O8+pcdKPr6xwla1RqsHze9rK7HUjEd2nTOgXu?= =?us-ascii?Q?/7wrvAGxqK7JuMI57rCTtV06e0a9uxTPeQdiH7OTqUajx3rEgmLQHqun7d+v?= =?us-ascii?Q?S1miw3XlfW+DkX451aDEkm7SNZa4n8PK2u0K/s3D4M7FpzoVPugM7UyFmIjq?= =?us-ascii?Q?uaPbqolxTsvUsYbHOMZWRHuMyrE+c4QZa76vbSV1LlPYDcyk+VWWBJ1hf9gx?= =?us-ascii?Q?RwdXcHzpkycX2nCzCtWSB7nvTEDoQgIDXwF6t7Qmj5fCyR1IaRvDS4JdcIDK?= =?us-ascii?Q?Tq9V6BkQw7hGCTdOCkFxOflmI6OtSXWW7EAIcWJwbYCXAg=3D=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS0PR10MB7933.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(7416014)(366016)(1800799024);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?c4JJ5egoK7lWe9STl6y3Vwh9P0ktTghl+cE6yM9EXovpXxqnsjTLn+6g/Oh4?= =?us-ascii?Q?nG/2zOuOjuvnXqTIbh6fRaNreco4GEPQecogW5+avE+w5CjWxwp1tvPAmetL?= =?us-ascii?Q?3dHAsMb9HG4aeqqPxdJq3Rk/oN0lvcR4l0lyvoAHF7+J5Cj32S8LVcRbhHc1?= =?us-ascii?Q?nQw9/0JWvXv7PnkJ+BF6VUmH/SiHIWL/ImaetpcuSjl841i8WAxO/7t3Uy2Q?= =?us-ascii?Q?tUqTOz1EYfyRbr0rs5CIEpOnU15zyRofJzag8KB1fhUWgegN2aKzVBY6rjui?= =?us-ascii?Q?Xeke8bW4F1Ty81xeQXV/NCr+SR3BxnEqdEjCFvEe9iz5+rynfrp8Wi0Sl3QB?= =?us-ascii?Q?hIy5iRieH211i97rX4aTA4/Zsyww4+pQCunDdVjIQZLi+HQ2a3IO47wrXYwl?= =?us-ascii?Q?VnaTnd45SccQrU34Rro2EJUTCGRK41z7MWNqNnKnyreUg0nlPEw4OMWERSAi?= =?us-ascii?Q?dXA/HQoQjupycDBSxFP2dNC9F7x+H20/G7sXELgY3DKRHrtPZrs6908qAQW2?= =?us-ascii?Q?kQ/KedMI9JYqs8KFPdGYVimTgC4INB18gyKs/mmu5Ssvw7ZwKNhE8yoYEx7K?= =?us-ascii?Q?SCIOhh2eLprPlGvHGVEb5hCs3Ei1nw85z1f2xPPl6uEpLwgetgGaOfNXBN53?= =?us-ascii?Q?IgFB+FsBCCfgBCrvxIjBo7YF2QMfPTZCYW3jG87vhLftlmetQkBt/+/ixjUg?= =?us-ascii?Q?6VCT5O3pE4Y70G2CMT6Nax/nVXGeLbNoAnUiX9OhVv59ai1QR4Pp09oZjEIu?= =?us-ascii?Q?B9LC1bKqYffYHSjanuK2PvlTXLMdfa3k79oe+P4BOI5TuYcr1PBXpE5EtbAT?= =?us-ascii?Q?6oSiwjzKG3UyXnpeb/IkMPVeYN3/rZTPuDbdSCow3gk/UJzEjNjJWP5cTwjB?= =?us-ascii?Q?zzpetNSKpXLyOZPmuCxiZP+KkwvVMF+VR0Xvb9toe3ANPt7lDLhfp690FmdE?= =?us-ascii?Q?lnw/WLGuaws1KXwEH6JCppW5dq6sP1O7817XEQBUPnVcmznZIo2G6K70mqaj?= =?us-ascii?Q?b8q/Twb2cWBqbF8EkoCT2yvA2JCn/ZPWalkGTrmabf84JIR3tbZRk7S3IK06?= =?us-ascii?Q?Xccel7MWriZ0l2REdNg2RTUjpLDt8wsoUFHxAMVc20noAaxUETfJvAUinyv5?= =?us-ascii?Q?fDvBMjTQUGK/my0xUydNo6KvjeS6U5YR6FNDPatp6cGjdXUfKnvVXEiBq2Qc?= =?us-ascii?Q?LWrRS+F0ZSoUdfRIVhl/h4cAFQ2yO2QxDZpcNjmCTxAl424R9Y9TmAyRHbkV?= =?us-ascii?Q?c9OXox+FOBbLGdgRjz7mQlcdsEY0sS+LLSu6bMYal8Qic/gIPQq4SuGPXjfR?= =?us-ascii?Q?Pb+Ake7Jlueu67x1g90n+sTbep9CsFj0FETYl5G1fTjb7wewOqe1jiOF2Ime?= =?us-ascii?Q?iqnuNi01urruSvaSZOqdsA7Dt+6gUrXsRRzK5984XYP8+rY6COuvf8n0SOom?= =?us-ascii?Q?ESRhgGkkkzRqNXQnozjynyWS9jvSdoA1bqZOJlAH1T+oqaADBvGRKglg2vL6?= =?us-ascii?Q?eypQxtiP83FtlU9KmCUPxTy2VTU71Q0eIOd6oekrgjtgkD2XXTlSHs1l8+/s?= =?us-ascii?Q?1CwHViyfoGDHpSKItMRaG39XzofY2pIEIZwj+Fr2xJDe3bJNQaz4Ne7qXInA?= =?us-ascii?Q?jQ=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: fl0DYop/vrvjrcClTfqKMYGkj86u30xpDhr8SKPAbWKTW0ZAf644o2l7srZdcxEIstRz46q/75/3g/X6Ag4alorv3z+8VS/RiDrIl2+Fonlz5fP7e9znf9iSilug1wwH8/lx8i1Elm4mEU4JAgBw+u1RV9WXpB7MQxLJlcx/t/Mb9qa26QElWbQ5bqVshVWoRCuw4R0/v+84Ucn4mOErXo5feyu3C1U+7NdZTa4B4r+/zO6/W4/QkusRmxrq8RQ8DOD1FTionh/DP4rlqeAxK+2tSzTtu/xrrSIY1+i5L4KeHyRiKOSmeXCmcTqIuyahpxOaJET7gXbz6A+gwED09ZyvZTMFToyXxITEs+XAcKiBJvXtuAb0NrTa0+m55WGdGPizdGI7rVbr/Ifnk8zIAYzHAkw8reKRhDFdfQqpDbR0OojvFMhGAd9jBV8I5rfTj62+Q5rl1GSMTssIOtxb1Crd77Hc1tF5WYoZmNLW0VmVlU6AummDv4TdOBk9wYEgLE+chWakwbxl/8ZSUPt9yDtYu6s2I5G7TV/Y0eG/BzeRhiR7Z82buXK1UQU2VYxCB7KgYhtngnbtC65e2Ru8JzeL/7oiRx+1Ub22RtaIOhk= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 1651b855-1d06-4d94-b936-08dca115c4c9 X-MS-Exchange-CrossTenant-AuthSource: DS0PR10MB7933.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Jul 2024 19:23:24.8824 (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: WEM0xdextXPRvo0SKVW/sUsKru7yYEM9cUeeFfqvyE4M7PK/B/YeNkObCBQS7a9pYRRyc5GgSQ1efsTbuaoZDQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH3PR10MB6833 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1039,Hydra:6.0.680,FMLib:17.12.28.16 definitions=2024-07-10_14,2024-07-10_01,2024-05-17_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 suspectscore=0 phishscore=0 mlxscore=0 mlxlogscore=999 bulkscore=0 spamscore=0 adultscore=0 malwarescore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2406180000 definitions=main-2407100137 X-Proofpoint-GUID: awGNE8qDrtChVNMTOThCEK3Ul8gYsoQv X-Proofpoint-ORIG-GUID: awGNE8qDrtChVNMTOThCEK3Ul8gYsoQv Content-Type: text/plain; charset="utf-8" From: "Liam R. Howlett" With the only caller to unmap_region() being the error path of mmap_region(), the argument list can be significantly reduced. There is also no need to forward declare the static function any longer. Signed-off-by: Liam R. Howlett Reviewed-by: Lorenzo Stoakes --- mm/mmap.c | 25 +++++++++---------------- 1 file changed, 9 insertions(+), 16 deletions(-) diff --git a/mm/mmap.c b/mm/mmap.c index 12a5ca6c979f..870c2d04ad6b 100644 --- a/mm/mmap.c +++ b/mm/mmap.c @@ -76,11 +76,6 @@ int mmap_rnd_compat_bits __read_mostly =3D CONFIG_ARCH_M= MAP_RND_COMPAT_BITS; static bool ignore_rlimit_data; core_param(ignore_rlimit_data, ignore_rlimit_data, bool, 0644); =20 -static void unmap_region(struct mm_struct *mm, struct ma_state *mas, - struct vm_area_struct *vma, struct vm_area_struct *prev, - struct vm_area_struct *next, unsigned long start, - unsigned long end, unsigned long tree_end, bool mm_wr_locked); - static pgprot_t vm_pgprot_modify(pgprot_t oldprot, unsigned long vm_flags) { return pgprot_modify(oldprot, vm_get_page_prot(vm_flags)); @@ -2400,22 +2395,21 @@ struct vm_area_struct *expand_stack(struct mm_struc= t *mm, unsigned long addr) * * Called with the mm semaphore held. */ -static void unmap_region(struct mm_struct *mm, struct ma_state *mas, - struct vm_area_struct *vma, struct vm_area_struct *prev, - struct vm_area_struct *next, unsigned long start, - unsigned long end, unsigned long tree_end, bool mm_wr_locked) +static void unmap_region(struct ma_state *mas, struct vm_area_struct *vma, + struct vm_area_struct *prev, struct vm_area_struct *next) { + struct mm_struct *mm =3D vma->vm_mm; struct mmu_gather tlb; - unsigned long mt_start =3D mas->index; =20 lru_add_drain(); tlb_gather_mmu(&tlb, mm); update_hiwater_rss(mm); - unmap_vmas(&tlb, mas, vma, start, end, tree_end, mm_wr_locked); - mas_set(mas, mt_start); + unmap_vmas(&tlb, mas, vma, vma->vm_start, vma->vm_end, vma->vm_end, + /* mm_wr_locked =3D */ true); + mas_set(mas, vma->vm_end); free_pgtables(&tlb, mas, vma, prev ? prev->vm_end : FIRST_USER_ADDRESS, - next ? next->vm_start : USER_PGTABLES_CEILING, - mm_wr_locked); + next ? next->vm_start : USER_PGTABLES_CEILING, + /* mm_wr_locked =3D */ true); tlb_finish_mmu(&tlb); } =20 @@ -3193,8 +3187,7 @@ unsigned long mmap_region(struct file *file, unsigned= long addr, =20 vma_iter_set(&vmi, vma->vm_end); /* Undo any partial mapping done by a device driver. */ - unmap_region(mm, &vmi.mas, vma, prev, next, vma->vm_start, - vma->vm_end, vma->vm_end, true); + unmap_region(&vmi.mas, vma, prev, next); } if (writable_file_mapping) mapping_unmap_writable(file->f_mapping); --=20 2.43.0 From nobody Wed Dec 17 10:46:22 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 4613F198A2C for ; Wed, 10 Jul 2024 19:23:49 +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=1720639433; cv=fail; b=hlIh4ydPKnJqZxpg+JxFn/lcbVDXCPguC/2yLo7Cwn0unHxSJF4bceaLMe3FiRoF1/kRdpcSygNpXKTx37kP1A57Jz89iYM5udACUdduIWZTd1Ploq/Vr8qcrwq3Zxivb3YKzqjQBEX/rJ843FAr4lxnt7f0psWSkaDzEeRfWN4= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1720639433; c=relaxed/simple; bh=yX8N7LsOW9s/87ueCYsjONVernMv6kVkqsqW8FgKDEw=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=jOdsmLUlthivZONG/QmRkea7i5K0XQnULXs5tzJTRygguXCl5LOWVEomuWSH4S8vLRhQSD3cR/y1sbheM6x9OOvDZSfkgYVWL7CTubqy+Tpp9ZiooIPGB/NPvIuFQU/N5G815D0TIzVWk6BAO42WLyvMos5wF6CpYW6KRlkE1kc= 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=m9tgvcPi; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=YSbkQXkb; 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="m9tgvcPi"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="YSbkQXkb" 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 46AFndMl017517; Wed, 10 Jul 2024 19:23:33 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h= from:to:cc:subject:date:message-id:in-reply-to:references :content-transfer-encoding:content-type:mime-version; s= corp-2023-11-20; bh=x3Dh8wxvQ7Ko8hZgNHR/qkVD7PKQF7SmmQrEtbUsqKY=; b= m9tgvcPiMOkbEx+ahfL6tbLuXGIEIpexhs/2LgEiycKuX0OIieEH56V5m62PlRRi EDvGZMHbLlaxSRwppkNb+1ix+4FRuq3LvvYOTqUfIZpnnQEV4mKJyS9AZ6d3c+ye ADqOVsrjISzoo6fTvZ1yUoUHGSkkmlrGTxYNG7DM28lLiBn6r8uWXNzm79z6+Th6 dgrLKoG3a0l/q+4KEtZ8Q9s/WpOiHWKDCual78pbrGtuqKTWZDK9O55zjx5YLPBo fi/KrR5U2RUjAQPefXl80d76m0jUFyuvK667LLEk8XCXKaawzajnpoTZDhAqMQtD KaIJe3cAyj7tBsQTl6zXDg== Received: from iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta01.appoci.oracle.com [130.35.100.223]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 406wybr4d4-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 10 Jul 2024 19:23:33 +0000 (GMT) Received: from pps.filterd (iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (8.17.1.19/8.17.1.19) with ESMTP id 46AInZep030164; Wed, 10 Jul 2024 19:23:32 GMT Received: from nam10-dm6-obe.outbound.protection.outlook.com (mail-dm6nam10lp2100.outbound.protection.outlook.com [104.47.58.100]) by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 409vva93av-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 10 Jul 2024 19:23:32 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=HfYtFpoNJefTBm2W9xqt30706qPth7fS1R0vre41HQ1N06Zba1dDDSRWxd04lwH32Cq2sKGHZTVAzoiTUfdUt1Ngn1AwfJ4UXq+iDe1AZG2P0RojsAXFd93eNjNikV8GAOKi9jKvSAsG/0dNBEd4D2F2I65rQ3FbGZ3lVov1vzvHksF1UAqYxjYXd43ykXYGvCe2b/bHMpeQMygAPmw8qmtI5tPaKuhsq4x2UXWgMbFR7D7qkFe9Ru8orcyrfgT6Ixf91Ef1cY6UuxQdCp88wAOHPnDVJllKE9FxtR8Iqb4cY8A0zRXHhCKdB+ivLdBBmAaK08//QBm0CMSFfXuu3w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; 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=x3Dh8wxvQ7Ko8hZgNHR/qkVD7PKQF7SmmQrEtbUsqKY=; b=d7wIXyDjN67A6kbvBY5d0dcMSlEIKWOUNgaq53vzZ39myNy27DPDQWCiF3Cw6yvh/ow9h+r9AenrrgYGPQNTewyuJVlFqssIJaPmPb66VdTo6VW5lQYH4mKYFPEvomv82qjjeLnwJ8XSNWQrokGRlZVrNNbAnuDrmaE7Tey3rG+n86MmOD/aB8/pBybyD9YAd7+obVUDchYnn2RYUbOADau5cXjBKXSKPo6bVaYQZvavaWTcPf49dVeKkuSLdGI0/Mxe4798e9c2k5KP5t1FmMYMVPEGMD+pzuDY0R4SUjuxTgwCNQLiV2+AbRAEG4cEloounchV7XQFzXxJ4lbeWw== 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=x3Dh8wxvQ7Ko8hZgNHR/qkVD7PKQF7SmmQrEtbUsqKY=; b=YSbkQXkbrMGAo8co8R06aSp2B9OyMaVjnLbH6xkY1gtf/UrbaWHrNIqgWWsGMMPdHHcSK/ySQK2CRQNXhk05UBkHi/sn1jp1UoxwhSlfsO5IkbDXzAaQi9DpQzyDRGV6YYhqFgKPDliqyXT+jC/zCV+roVekrqh806l5ZPl1DIQ= Received: from DS0PR10MB7933.namprd10.prod.outlook.com (2603:10b6:8:1b8::15) by PH7PR10MB6106.namprd10.prod.outlook.com (2603:10b6:510:1fa::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7741.35; Wed, 10 Jul 2024 19:23:27 +0000 Received: from DS0PR10MB7933.namprd10.prod.outlook.com ([fe80::2561:85b0:ae8f:9490]) by DS0PR10MB7933.namprd10.prod.outlook.com ([fe80::2561:85b0:ae8f:9490%3]) with mapi id 15.20.7741.033; Wed, 10 Jul 2024 19:23:27 +0000 From: "Liam R. Howlett" To: linux-mm@kvack.org, Andrew Morton Cc: Suren Baghdasaryan , Vlastimil Babka , Lorenzo Stoakes , Matthew Wilcox , sidhartha.kumar@oracle.com, "Paul E . McKenney" , Bert Karwatzki , Jiri Olsa , linux-kernel@vger.kernel.org, Kees Cook , "Liam R. Howlett" Subject: [PATCH v4 14/21] mm/mmap: Avoid zeroing vma tree in mmap_region() Date: Wed, 10 Jul 2024 15:22:43 -0400 Message-ID: <20240710192250.4114783-15-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240710192250.4114783-1-Liam.Howlett@oracle.com> References: <20240710192250.4114783-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YT4PR01CA0425.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:10b::29) To DS0PR10MB7933.namprd10.prod.outlook.com (2603:10b6:8:1b8::15) 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: DS0PR10MB7933:EE_|PH7PR10MB6106:EE_ X-MS-Office365-Filtering-Correlation-Id: 4ee1e888-9d24-4a9c-2bdb-08dca115c613 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|1800799024|376014|366016; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?s4gu1sxT+ueLicxayPib0qBDcHI2aTgRAvqhYGw3NSi/t8Oj8eegJVFRGQtA?= =?us-ascii?Q?X2pn1WQ5/Y2Wzmd1dcaO4KVu92WZuqtuTST0r1kwTiSwLs8HvMOePmNC9qwI?= =?us-ascii?Q?0RVdldfyCSYSGDmmX4zMxVYy52F0J+nkv0YU9eFBr9eqyZz4qaYML2esx9kl?= =?us-ascii?Q?XBv689M+7/PSlG/xiQFh5c0yfNmDFRUK+/uRxUDFZH3qe6hhQ8dCqtlMvIXL?= =?us-ascii?Q?ACSKUb4Fbhc4Hyc14MJdLVL9D9gI4YHBn5cdmUkLT2Q0DPB2BrDwetqt83Uv?= =?us-ascii?Q?agPuveKCuUv59EuFqdTX9agEiAjS1c8k0xMx2g6US7Ya2r+D9/dNgsczNkHi?= =?us-ascii?Q?qe7jlA2gjiaoIW86T8JuUN6nNpq85jEjodmzW7jlvurI/TL1iKrqnboeLn/Q?= =?us-ascii?Q?0OfsgX8ITLQEOdMdMkmyatSXMpbazkOXzqlGChVjwSxECO+8E41C8OYD1K0f?= =?us-ascii?Q?6jS/9N+dOZBGhYm/TV0hQa1poRFodpOUxYpM7DkQnXl4qydKQS/iSHd4lfhm?= =?us-ascii?Q?qTvBfugSzegtmQE7ptv4HeGw4mugMOxjWUKMAIs5AXQY2QWD5B52Tit0XyNs?= =?us-ascii?Q?er3T/2eBRfVMa70zgAWtBruyx3/Vi/t/xBpwsp4rNia05bWbPaTdtr9iSV+r?= =?us-ascii?Q?G3de6op9EJ9P+3XMdaEJ4Jom8ccEkKimXTjtQhManm3XCEpPVo8sqy76h28q?= =?us-ascii?Q?YhmOdlBwye03DAzQowTRkVgQ6Dwj0RzW2N0nrQeRn1R8lZojTCoyBmkr5mVV?= =?us-ascii?Q?CuziMzUOZXS5ko3W7CWGk0rHXOJVGnS0LCVmeDCiBIPN/qsI1jlcww2vNWYO?= =?us-ascii?Q?AyK/ir/S0ZPV9XWyJfw0yOU/FmgQ8mLypj9j5qHwRf9ie3n7cRQ1XbWFgpYW?= =?us-ascii?Q?/s19FrdoCcPiHn+vloDYmYOTEjNG5614YJgVC8Djy9BVedEQZ7NaXKLrl0uP?= =?us-ascii?Q?6M3SwN2ftnVizKEHiuGSxYxHPUclMFTmcL//B13AKTrrUN+w8rFpkXFNG8Gf?= =?us-ascii?Q?RSVjX3zJ/51jHQ4Qxa+oV6MjDYHDW+pgCGDqefCfrm5o3N0SRwzsD1+L2Gwi?= =?us-ascii?Q?aZk6xoKbXgIgULsxJD9wd3g6DquSbm5bsV87IGpjDpeQPKLGmKnyRIrp356E?= =?us-ascii?Q?0QDxlsx8z7jfZmAZ9aWckFLiiIRHBe/ZT21FW/JtaRCYmE2jP8OiHiHEfLSI?= =?us-ascii?Q?Xyg8XlJEgbOTvVE8q383UKiTbA3tmoxyzLwRBRbfYf22dHMuMME4JUapkgFL?= =?us-ascii?Q?IrzDWdZ6r+SpTYg5RKAWuYkUU9XhjITW4ds8TzXyPtELaRjxtSWz/h1mLGY/?= =?us-ascii?Q?3J+IE+DlJZ4S4ddsfc+lyoQhz57G53mLXwXjxtJlUQwqAw=3D=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS0PR10MB7933.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(7416014)(1800799024)(376014)(366016);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?SlKpdjN9qW+YFB0C3TfKQ1q4ySaIJP3WsGkbaYZfJBBkgDCOiJJhXMD53X6c?= =?us-ascii?Q?J088oEwo/pxZpyA+UAVZnZLCDsIMMpm/5unTf4FiBJ5nttf4X0PovS4s1iDF?= =?us-ascii?Q?fZRqlHo2A2O5nLN10cvUwvWCOCuR6UFilx9y9Dz8au5wLdiQTZfLA/EqscZV?= =?us-ascii?Q?+vmXHEcmJDIaRnjDnJCrPhjoNY/Yhm0t7XruFNs0WaDC/b97eZapBUj8hRBH?= =?us-ascii?Q?EzV47vjRlAb1Pz14DSm9JsHjdUuCvJx5n/WAZtkp5y4Nz/tLFkhy05W6ptbW?= =?us-ascii?Q?XFbtNXKGRguyIs+OStDjzbZVptWbelCDYW0XKV2lnPAahXq1wG2r1mBurBES?= =?us-ascii?Q?6Ohh7X4iMzl9e1kJk5V/AJtmfM6/EnwuWyTr/wR3ukbUCbBERZ5M62Oc6wYF?= =?us-ascii?Q?Dx7UpkfvNkgmdZEMbRg9lIwCkbu+jTywujJhEcpsFu0VW8JkbMbeTRoGNjvI?= =?us-ascii?Q?RRDThpQZyce1Rb5pn6whAwdCzZqhi23a2ESIkvdGw+64xX1O7xbN4EmK5TGw?= =?us-ascii?Q?ltv9ipsDfugwyY4TCGAdfPVvBhj6bf8V+kb0gY8G2XJOl7je8V1xwYqJsh7z?= =?us-ascii?Q?vk9ofolQZFmCKzmyFtsJdvcdOQKBcBrVUJxL08XtDTYc7MVLr384maP2T6j/?= =?us-ascii?Q?0l4G4JBkMUV8bgBdFY8fO4xgEZuWEK7k61P0Y5M9CRvg3tlcwm+AuEx2ppli?= =?us-ascii?Q?p2k3FiK7UunAJos/kKqSRCO9Mr1Zh/PpuSLxXOErsz8j2drcq1wFCQLXuFWk?= =?us-ascii?Q?2D7HsvYxs211JN2MyLOBz7VLeWvOIHNLV/OvmwNY7Z6858NtqGRtU4o1MGpj?= =?us-ascii?Q?bwMDQMQkZzCADZfGcRkbjbq5ww50MYTNsQj3dH9lRY/i5+d9uWqb7wC0jpFm?= =?us-ascii?Q?jnX7ZprABdY8SA5UXoq3c7Nu8VQjiOocOra98pKZ6zwtLJXZsarQvFnMNjIX?= =?us-ascii?Q?S2P4IBUmiOpxIUDTXfX/ARX4tGZV3JQ8/+8p9mNOSZqXJB0/xJNvma08fMsB?= =?us-ascii?Q?FxVUHofzHXHk421QTgRGJ9VsZ1PoMngStfnDcuh+pOepruur6ZM1YIWv4h79?= =?us-ascii?Q?WmvI5y17NY0ilT6y1yWieWftxSB+YGplBVsokHrn2S9sWjct051uhjPsno0X?= =?us-ascii?Q?84ma4JubMg0kxsG8vNAoazZeDcNYUrB2FQqBYLmutzvFARn4HYG/BnJIZfi2?= =?us-ascii?Q?aZF9qx7PMONYMonvJqxpYX5iVN0T08xH3ke+/Q1OL2pUJ73sjDSdNylyYzEl?= =?us-ascii?Q?4Ac9mzpu0snCh9bBifFC62X+QglSV6Mvln4XqTqPK3SWlszTm5tK9uCV9Vni?= =?us-ascii?Q?qjpK162Xwa/kw5/j6ONUUHdbu9p0fr0KMOafBzYJUwLltNMyuvpe3t76Slk1?= =?us-ascii?Q?4hH3uhKyq0v7vmg7NttpIpwi0o/iBULAHGsrWIx9HEZOB8vOJIxDn0elX3Pt?= =?us-ascii?Q?NU0W7JiAMJ0fJ9khITmE3YamP4ZcSOnbLFUeo0G3ZWGoVCGMBYOHvEgGixkv?= =?us-ascii?Q?Ll5zkBWJQcQO+YsBsTS8fSu+oQ3QsoJpWm/frE6lD0bjBWWaXLLdGagyuUTY?= =?us-ascii?Q?lOjYCjcN5LpfxeI8wBUesZwNoG4apOjRM3/xc+HBrp/T0DdYR6tWyJJYXuPy?= =?us-ascii?Q?vQ=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: KPOpRqO8B8fYwlOONyZhLy3dsEiK1gCXIhMfvRyGCFkptY6U41EjPdkFwenkvI+sciNcfB6Gxaw2nrsmSlfRqAUV1D8xAjU2pmkjwAuexfDC2j5sOy252W71BJMyLl8i9nGPYv59ccZxNs1jkjekIA3TldFuxFztt7Gv/V/BoYjk1BKa3QkaOmeg4qm/kH6e1yhLdGZP0wOTw5aUD4fS+EuX44e1MpuOT3iClKaZ28Es5a307oA4NExoXQx/kk1BUWamIFNgkZelU4MJXpkF08E1I+iD4Ps/I+lukkQhMdAvXtLrhdJC8B1BuQOEyrIWoaNKBjSlRbahuto6FJFZwYp2A8mBCwSNiL5HyKXxTVavXD7NCnozJhuvGdsOykeA9sAYAQdLJIB8J7NJSlKoe1fFC4upmmUKji0W2fBd5HYxc9K9NR4kmDyxNBtK+ZfpbhYe4V3wBJRY2S2MfqmsjQQoyy1UkPMzrt4EULKXLdwr1EfeqHwwEx30OU17pSbkfHTgXfQ/QrQ8rLix67+dsbznydSuFHplQcO9aF3Uj9oxl2d0p+rc1hUQlbxjt0CiqB2n7646YFLWiJLsFON+SyKLKCtwbzCGwcQd5qNiMGs= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 4ee1e888-9d24-4a9c-2bdb-08dca115c613 X-MS-Exchange-CrossTenant-AuthSource: DS0PR10MB7933.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Jul 2024 19:23:27.0536 (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: QAUJ1qieSkKx8RjVpsa+4BqtqHnyBmzT15nrYIT/q29ubnEb50JSiOCXt1KJZDC/vqaU9vX+I9TNyWxLJYM9fA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR10MB6106 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1039,Hydra:6.0.680,FMLib:17.12.28.16 definitions=2024-07-10_14,2024-07-10_01,2024-05-17_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 bulkscore=0 mlxlogscore=999 mlxscore=0 spamscore=0 phishscore=0 adultscore=0 malwarescore=0 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2406180000 definitions=main-2407100137 X-Proofpoint-GUID: rf5rLuU3R7r7MdPFdrIn9wkhYBwJkwhV X-Proofpoint-ORIG-GUID: rf5rLuU3R7r7MdPFdrIn9wkhYBwJkwhV Content-Type: text/plain; charset="utf-8" From: "Liam R. Howlett" Instead of zeroing the vma tree and then overwriting the area, let the area be overwritten and then clean up the gathered vmas using vms_complete_munmap_vmas(). If a driver is mapping over an existing vma, then clear the ptes before the call_mmap() invocation. This is done using the vms_clear_ptes() helper. Temporarily keep track of the number of pages that will be removed and reduce the charged amount. This also drops the validate_mm() call in the vma_expand() function. It is necessary to drop the validate as it would fail since the mm map_count would be incorrect during a vma expansion, prior to the cleanup from vms_complete_munmap_vmas(). Clean up the error handing of the vms_gather_munmap_vmas() by calling the verification within the function. Signed-off-by: Liam R. Howlett Reviewed-by: Lorenzo Stoakes --- mm/internal.h | 1 + mm/mmap.c | 80 +++++++++++++++++++++++++++------------------------ 2 files changed, 44 insertions(+), 37 deletions(-) diff --git a/mm/internal.h b/mm/internal.h index 11e90c6e5a3e..dd4eede1be0f 100644 --- a/mm/internal.h +++ b/mm/internal.h @@ -1503,6 +1503,7 @@ struct vma_munmap_struct { unsigned long stack_vm; unsigned long data_vm; bool unlock; /* Unlock after the munmap */ + bool clear_ptes; /* If there are outstanding PTE to be cleared */ }; =20 void __meminit __init_single_page(struct page *page, unsigned long pfn, diff --git a/mm/mmap.c b/mm/mmap.c index 870c2d04ad6b..58cf42e22bfe 100644 --- a/mm/mmap.c +++ b/mm/mmap.c @@ -401,17 +401,21 @@ anon_vma_interval_tree_post_update_vma(struct vm_area= _struct *vma) } =20 static unsigned long count_vma_pages_range(struct mm_struct *mm, - unsigned long addr, unsigned long end) + unsigned long addr, unsigned long end, + unsigned long *nr_accounted) { VMA_ITERATOR(vmi, mm, addr); struct vm_area_struct *vma; unsigned long nr_pages =3D 0; =20 + *nr_accounted =3D 0; for_each_vma_range(vmi, vma, end) { unsigned long vm_start =3D max(addr, vma->vm_start); unsigned long vm_end =3D min(end, vma->vm_end); =20 nr_pages +=3D PHYS_PFN(vm_end - vm_start); + if (vma->vm_flags & VM_ACCOUNT) + *nr_accounted +=3D PHYS_PFN(vm_end - vm_start); } =20 return nr_pages; @@ -524,6 +528,7 @@ static inline void init_vma_munmap(struct vma_munmap_st= ruct *vms, vms->exec_vm =3D vms->stack_vm =3D vms->data_vm =3D 0; vms->unmap_start =3D FIRST_USER_ADDRESS; vms->unmap_end =3D USER_PGTABLES_CEILING; + vms->clear_ptes =3D false; /* No PTEs to clear yet */ } =20 /* @@ -732,7 +737,6 @@ int vma_expand(struct vma_iterator *vmi, struct vm_area= _struct *vma, vma_iter_store(vmi, vma); =20 vma_complete(&vp, vmi, vma->vm_mm); - validate_mm(vma->vm_mm); return 0; =20 nomem: @@ -2606,11 +2610,14 @@ static inline void abort_munmap_vmas(struct ma_stat= e *mas_detach) } =20 =20 -static void vms_complete_pte_clear(struct vma_munmap_struct *vms, +static inline void vms_clear_ptes(struct vma_munmap_struct *vms, struct ma_state *mas_detach, bool mm_wr_locked) { struct mmu_gather tlb; =20 + if (!vms->clear_ptes) /* Nothing to do */ + return; + /* * We can free page tables without write-locking mmap_lock because VMAs * were isolated before we downgraded mmap_lock. @@ -2624,6 +2631,7 @@ static void vms_complete_pte_clear(struct vma_munmap_= struct *vms, /* start and end may be different if there is no prev or next vma. */ free_pgtables(&tlb, mas_detach, vms->vma, vms->unmap_start, vms->unmap_en= d, mm_wr_locked); tlb_finish_mmu(&tlb); + vms->clear_ptes =3D false; } =20 /* @@ -2647,7 +2655,7 @@ static void vms_complete_munmap_vmas(struct vma_munma= p_struct *vms, if (vms->unlock) mmap_write_downgrade(mm); =20 - vms_complete_pte_clear(vms, mas_detach, !vms->unlock); + vms_clear_ptes(vms, mas_detach, !vms->unlock); /* Update high watermark before we lower total_vm */ update_hiwater_vm(mm); /* Stat accounting */ @@ -2799,6 +2807,9 @@ static int vms_gather_munmap_vmas(struct vma_munmap_s= truct *vms, while (vma_iter_addr(vms->vmi) > vms->start) vma_iter_prev_range(vms->vmi); =20 + /* There are now PTEs that need to be cleared */ + vms->clear_ptes =3D true; + return 0; =20 userfaultfd_error: @@ -2807,6 +2818,7 @@ static int vms_gather_munmap_vmas(struct vma_munmap_s= truct *vms, abort_munmap_vmas(mas_detach); start_split_failed: map_count_exceeded: + validate_mm(vms->mm); return error; } =20 @@ -2851,8 +2863,8 @@ do_vmi_align_munmap(struct vma_iterator *vmi, struct = vm_area_struct *vma, =20 clear_tree_failed: abort_munmap_vmas(&mas_detach); -gather_failed: validate_mm(mm); +gather_failed: return error; } =20 @@ -2940,24 +2952,19 @@ unsigned long mmap_region(struct file *file, unsign= ed long addr, unsigned long merge_start =3D addr, merge_end =3D end; bool writable_file_mapping =3D false; pgoff_t vm_pgoff; - int error; + int error =3D -ENOMEM; VMA_ITERATOR(vmi, mm, addr); + unsigned long nr_pages, nr_accounted; =20 - /* Check against address space limit. */ - if (!may_expand_vm(mm, vm_flags, len >> PAGE_SHIFT)) { - unsigned long nr_pages; - - /* - * MAP_FIXED may remove pages of mappings that intersects with - * requested mapping. Account for the pages it would unmap. - */ - nr_pages =3D count_vma_pages_range(mm, addr, end); - - if (!may_expand_vm(mm, vm_flags, - (len >> PAGE_SHIFT) - nr_pages)) - return -ENOMEM; - } + nr_pages =3D count_vma_pages_range(mm, addr, end, &nr_accounted); =20 + /* + * Check against address space limit. + * MAP_FIXED may remove pages of mappings that intersects with requested + * mapping. Account for the pages it would unmap. + */ + if (!may_expand_vm(mm, vm_flags, (len >> PAGE_SHIFT) - nr_pages)) + return -ENOMEM; =20 if (unlikely(!can_modify_mm(mm, addr, end))) return -EPERM; @@ -2974,18 +2981,13 @@ unsigned long mmap_region(struct file *file, unsign= ed long addr, mas_init(&mas_detach, &mt_detach, /* addr =3D */ 0); /* Prepare to unmap any existing mapping in the area */ if (vms_gather_munmap_vmas(&vms, &mas_detach)) - goto gather_failed; - - /* Remove any existing mappings from the vma tree */ - if (vma_iter_clear_gfp(&vmi, addr, end, GFP_KERNEL)) - goto clear_tree_failed; + return -ENOMEM; =20 - /* Unmap any existing mapping in the area */ - vms_complete_munmap_vmas(&vms, &mas_detach); next =3D vms.next; prev =3D vms.prev; vma =3D NULL; } else { + /* Minimal setup of vms */ next =3D vma_next(&vmi); prev =3D vma_prev(&vmi); if (prev) @@ -2997,8 +2999,10 @@ unsigned long mmap_region(struct file *file, unsigne= d long addr, */ if (accountable_mapping(file, vm_flags)) { charged =3D len >> PAGE_SHIFT; + charged -=3D nr_accounted; if (security_vm_enough_memory_mm(mm, charged)) - return -ENOMEM; + goto abort_munmap; + vms.nr_accounted =3D 0; vm_flags |=3D VM_ACCOUNT; } =20 @@ -3047,10 +3051,8 @@ unsigned long mmap_region(struct file *file, unsigne= d long addr, * not unmapped, but the maps are removed from the list. */ vma =3D vm_area_alloc(mm); - if (!vma) { - error =3D -ENOMEM; + if (!vma) goto unacct_error; - } =20 vma_iter_config(&vmi, addr, end); vma_set_range(vma, addr, end, pgoff); @@ -3059,6 +3061,8 @@ unsigned long mmap_region(struct file *file, unsigned= long addr, =20 if (file) { vma->vm_file =3D get_file(file); + /* call_mmap() may map PTE, so ensure there are no existing PTEs */ + vms_clear_ptes(&vms, &mas_detach, true); error =3D call_mmap(file, vma); if (error) goto unmap_and_free_vma; @@ -3149,6 +3153,10 @@ unsigned long mmap_region(struct file *file, unsigne= d long addr, expanded: perf_event_mmap(vma); =20 + /* Unmap any existing mapping in the area */ + if (vms.nr_pages) + vms_complete_munmap_vmas(&vms, &mas_detach); + vm_stat_account(mm, vm_flags, len >> PAGE_SHIFT); if (vm_flags & VM_LOCKED) { if ((vm_flags & VM_SPECIAL) || vma_is_dax(vma) || @@ -3196,14 +3204,12 @@ unsigned long mmap_region(struct file *file, unsign= ed long addr, unacct_error: if (charged) vm_unacct_memory(charged); - validate_mm(mm); - return error; =20 -clear_tree_failed: - abort_munmap_vmas(&mas_detach); -gather_failed: +abort_munmap: + if (vms.nr_pages) + abort_munmap_vmas(&mas_detach); validate_mm(mm); - return -ENOMEM; + return error; } =20 static int __vm_munmap(unsigned long start, size_t len, bool unlock) --=20 2.43.0 From nobody Wed Dec 17 10:46:22 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 B5754198843 for ; Wed, 10 Jul 2024 19:23:48 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=205.220.165.32 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1720639431; cv=fail; b=BDVP1jPPcMfNtfapysAtnBSKhzZ7m/jrpw6jiJTA6PG8FgmbYXIQy9yvtnk30G11X63epGI47+y+K4m5zzXEDpPmwWiitKDOuPZwOLmvfCJfR/LV2paehJ31oc51sIIVJGbB/E7QTOXe2uVrbqHuwiLc7WRzYDes9jDtnPzaxEk= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1720639431; c=relaxed/simple; bh=bfpwbr5QVtVQzXXlUuvXekq5ixkmKrAvcxLzBsUpwgM=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=YBfxkV0/b5+v/9w7ESEZ2i9z0pUjDqJiq4oPKjQRbIU+UOmrYIpqOPrWfZt0VNbwfYAF/icQmW8PA4d9CZ+/X75nm8bkVeEwAZYggFMRcYwmxVXcgVIZJciSO5BFl1A2IhxVYXKfWr+4mEJrQjvKBj2fMc25JN8VAcqLbI/je0s= 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=l+qDmCce; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=sB9ZtkIw; 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="l+qDmCce"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="sB9ZtkIw" Received: from pps.filterd (m0333521.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 46AFxAlS019275; Wed, 10 Jul 2024 19:23:34 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h= from:to:cc:subject:date:message-id:in-reply-to:references :content-transfer-encoding:content-type:mime-version; s= corp-2023-11-20; bh=oYE9TanO+Z1FGPVLMiWPHUAAimqauAH0W6HKo0s5T20=; b= l+qDmCceprSUi87Q9/Kh/pKEht2mMRgT5wsQKDIFOS1sDwyV3HLsJ3lgsAWOQtWc GmFxLpaNq8vFqxAMSSoiyy+sc4tZ1Sr3mIlh3D0u4S56mICpXPNwloKlX+0uacPM 3lyV/7g27J2VVn9kzvTA7pgWwmEKrV4n7TJvIxfvqpE45nbeacu9O36nlYHzBXRC 7AZM6U1ZJxNzq+Qcm0H6Wkkk/5wzowuGuovGRSaHBw7SCsKyTiMdXwVmYdT3EcEr TZ05Y/2q91rZvN7/F3pdhQl8nq2AlenPOJ0261KC76E8oEk1SO9fYr4AsjrCKo25 u6kuN7IBr6hBzFHgkpOhtw== Received: from iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta01.appoci.oracle.com [130.35.100.223]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 406wky83qh-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 10 Jul 2024 19:23:34 +0000 (GMT) Received: from pps.filterd (iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (8.17.1.19/8.17.1.19) with ESMTP id 46AInZeq030164; Wed, 10 Jul 2024 19:23:33 GMT Received: from nam10-dm6-obe.outbound.protection.outlook.com (mail-dm6nam10lp2100.outbound.protection.outlook.com [104.47.58.100]) by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 409vva93av-2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 10 Jul 2024 19:23:33 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=P7sN2DYJnQh7VxCiggWgW4vzjHq2vmP8rODTaNed5M0R4ovJ7OpyU1igh51YBAKH/abHoEShZ+nocU2eusNgtkNBYba9M+Z7+ql6AIAKrTZjze/9PBKGs43A8Y2htNzqfZoFapJyDfrOmHeahEKmxWDhFmY9mR+rjzM2671NalggMhU2n6RrxZdTL7fF+yyeoh+WKliuYPqpsGiVTZt7wYvUIeE/+lN4uQ0pIor1rTojg6spxRSOkKVzCpS7geTxwIIJ2Kq+uhBM449rnwrdazq6IvnK5Jv86CBW9411FV9/4TJ65jcs7vjyKFRC3lWOn5ngn6tWkDvTAUM8pe3UcQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; 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=oYE9TanO+Z1FGPVLMiWPHUAAimqauAH0W6HKo0s5T20=; b=ZF6tzsenl9PqTk5tsmkzhaV9F11DlapfswD/otebgTa2T6qFBPa33cQGKvfdcnxazYyv0+pb2S8molj1/KJpvOFHYL8bchSKJPAtudbLUVDjPvB2clSHUvX1kOU5rWc/LbZLfj3KVN+LTtI1Gz18UfpeeYnEPVamUO/B7cFE1UbrDz2+vaK9VK6X/TG7VfP4OF1w9dl+hPKlW/TCzTJv2S2MC18lUMf1xdpDX/gXdJsCbnrOVsV7nO3MsI69sjGnkTRF/iKzVTCW/zKd9U8zS3/WiCKU8UtAxnFjG41j7rEDlsDj6DLwsI3fQKjGE4GcrWtcQvW3yol928rfpAjRTw== 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=oYE9TanO+Z1FGPVLMiWPHUAAimqauAH0W6HKo0s5T20=; b=sB9ZtkIw9iVDi9FdJAep7oqUdd6Am4jTeJZ9Qpwj2gfw4EnDtjIhtE5PccXXs/J+bCrdJpcuXjRkftnBI7SfeU0kxtyU3wG8UMp16oEG/1h+6wnNvJO73LDytjDCrko8HNsGBlQusEz+uOrJKvN5n+96aqDPz/6+bzoERg701ng= Received: from DS0PR10MB7933.namprd10.prod.outlook.com (2603:10b6:8:1b8::15) by PH7PR10MB6106.namprd10.prod.outlook.com (2603:10b6:510:1fa::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7741.35; Wed, 10 Jul 2024 19:23:29 +0000 Received: from DS0PR10MB7933.namprd10.prod.outlook.com ([fe80::2561:85b0:ae8f:9490]) by DS0PR10MB7933.namprd10.prod.outlook.com ([fe80::2561:85b0:ae8f:9490%3]) with mapi id 15.20.7741.033; Wed, 10 Jul 2024 19:23:29 +0000 From: "Liam R. Howlett" To: linux-mm@kvack.org, Andrew Morton Cc: Suren Baghdasaryan , Vlastimil Babka , Lorenzo Stoakes , Matthew Wilcox , sidhartha.kumar@oracle.com, "Paul E . McKenney" , Bert Karwatzki , Jiri Olsa , linux-kernel@vger.kernel.org, Kees Cook , "Liam R. Howlett" , Lorenzo Stoakes Subject: [PATCH v4 15/21] mm/mmap: Use PHYS_PFN in mmap_region() Date: Wed, 10 Jul 2024 15:22:44 -0400 Message-ID: <20240710192250.4114783-16-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240710192250.4114783-1-Liam.Howlett@oracle.com> References: <20240710192250.4114783-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YT4PR01CA0269.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:109::25) To DS0PR10MB7933.namprd10.prod.outlook.com (2603:10b6:8:1b8::15) 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: DS0PR10MB7933:EE_|PH7PR10MB6106:EE_ X-MS-Office365-Filtering-Correlation-Id: a51f58a8-47e0-4473-b088-08dca115c794 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|1800799024|376014|366016; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?ZYZbgz03HUd0sHjA1zcXJymq1DhZlH6Ng2h0ZV0M/F85blNuNgJYYVzAVFoz?= =?us-ascii?Q?VvvofjK5xJS4Vp8Bpn2rKIs+aIItGd/oNifEDWbfVbsg1LsaeJ6TJos5kRvE?= =?us-ascii?Q?8cTjCZN5N3rFMUOqV/6cmwiZI85fhityirLZZS+KGkuDjIrd1znGTk73rwPt?= =?us-ascii?Q?pDUSfz9t7xFVgSzE93Dj8TXTg849jPombdpAUNKtPa/m+VPPPhbtB9Poa69o?= =?us-ascii?Q?hcwjG9f5OvZ6Q6zhidt11vGDTYJkOupjXU0VZt8/p4mIhXyovPACkItN9GnX?= =?us-ascii?Q?FuDrSQEGs9iU4JcycV+Wtne+A3ICOR99uY6UMrk5JRdvn3oGunPd/VnVKaXE?= =?us-ascii?Q?SvB/hPaz+Gcfy8T2nj6I2EuhpNwBPUAAbST6GLcWcP26DEkvnrDvSzhdBWDq?= =?us-ascii?Q?psYzoOLn1MtHE4cEYDbnNRJSsSNQMK28+DsHRFYDvcnfAda4kGWbVYFM3EPU?= =?us-ascii?Q?YNqAfXCbWr8sWDVDY806d0NVrZPTqpxu9Fid+rO3bHUDtx151p3mUR6oWVlB?= =?us-ascii?Q?etlB964QjJFYrzTz9cBQswOnGOy03Jk+88Phbd23Fxu5jr1i9ECv1PLOXp5o?= =?us-ascii?Q?LtLBzLsUpUmi/C/b5qsigsdlKCrNB2qSBEdUZxrsf1OKAVF+XiHdRK0VkDgn?= =?us-ascii?Q?26o8q4oHIOT2A/qQ1oFzMKcaPhMwpJAeWWsGwoyvIo1Qe97LU5M86meUlZMw?= =?us-ascii?Q?WdhWo9fHe5ukNv8UnBzDAM8yTVaobbiyTxsigHwNsw2trNvDasTXHNYWcTiC?= =?us-ascii?Q?i4SdTGavnPZv4CjnIRVR3FNrOLtvFYqg3Wbfvd7xCxPGDrgb03GzKEQPILDt?= =?us-ascii?Q?VRomw08WC2hJddDN8PE6o65ErQ9dJRoohjg8nDKgPI0Gn9EHeMAwlrQe3y1j?= =?us-ascii?Q?Ik/X6VQUE4YM0s0nVhT+8GVOrdZOTlyabQySKy9AJYkqhIsSYJV3D3gN2p2u?= =?us-ascii?Q?7j9WgvNUbdCJGljiHaN2UJ3pZATL5BYEa+Ako1aY8lVShvHAZvH8faWjFEsV?= =?us-ascii?Q?0t8520tbdfDppx4BfhzAaiBEKaRa+AS/4E/C4JeyZETWy7gAsNZ31EVRhhV3?= =?us-ascii?Q?3Kj34pPWWXFyRbCXwsRlCZ+H6IfAZXmyEutVi7Sr1DFXodd4m9ETFg4tVRwG?= =?us-ascii?Q?p1XvxfUT/Pudzhkapv+RaKJlqtDAMrKqD2u7uvOvfhjaWP063C4Mf9xDR+iv?= =?us-ascii?Q?eXqvmsuHYgDDfeO+FKpedFiurfqsZXprtFZf5vBmlUSZ2smksyWyEWVLBGBb?= =?us-ascii?Q?M3SRBzhRSDf91so9kHf96RzrlOZtuJLckejhfLgiSR7CBqTqslYUG98acLmC?= =?us-ascii?Q?UQIYJFBkgz4SH+wWxJvIqlYujAu/IcfU8JD1UZhjgIL48w=3D=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS0PR10MB7933.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(7416014)(1800799024)(376014)(366016);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?wYt0GiCFsG1fDERsaICPUfd1WffZ5jnJRXachH8ENxBjlzaVDGOOyBsv+r81?= =?us-ascii?Q?qFAT+Oxbx4LzypgdefC3YgkEiBqbADW3AOlDDytTq1DuQ/dsq5kPeaWJnedR?= =?us-ascii?Q?/1WMopCBbBgdmpr/+/7VAUnRNZrRDNpH2XZjVz6jZrNtL/geKXfJLz+3QCTn?= =?us-ascii?Q?mBMK337tg6Z9FUNZvP2Ioh1wc/AR5EnnJW7Ga+A/Pwsnv02YQdq/zEct4lLt?= =?us-ascii?Q?o7sqrXoaAuyvfR4OjFBVuUft3jmlOXG2Jj2GJ8Gw3jICebP022E//7e9TgKi?= =?us-ascii?Q?SCNkw2uac/uzsoq6IGqMj4AXbRexK/Peir/O76oNVKLt4htYLB9KvdTBjOsw?= =?us-ascii?Q?/KHUANCN18SARozYJXy1aBf6siq/79hqL207ZFUchVSmiPsvOQsEHoXVM8F7?= =?us-ascii?Q?mKiET/IwRYtM/zVd3dTVvs5UAC/hvSgvcYfJc5pqDkyEUduhzrjwtHPc5SI7?= =?us-ascii?Q?q/jNK/FpJ7vD741XSE+9DjpF5/wsO4i/dsPjKFbWpD232VPH4Zww0CLMg3vL?= =?us-ascii?Q?ft7YKdkKGLSXKdQvvKDx23DJBadRnLXeoP1GfPS2UoXhciLg+rfKAVMsH4k7?= =?us-ascii?Q?dw9daIQgZu4IZaeIAY0DQ4Ky5ACzNvwjDXYT+CvtuCGrm60dT4RvRTNV3wmN?= =?us-ascii?Q?L3bG+xgjguAmuceUSL4zP9BWPTe8IwyBE2e4ajeZ3ihbhVUSLMX45WqvpZ0i?= =?us-ascii?Q?kHDmli7cs6tkleh9gox8nd91JzYpuqaB82do9xTyGEYC1gm63EtilfaiwVkI?= =?us-ascii?Q?rsVCtTGxEiT+OmP2ZwruNvwLH3kVfYAE4K6rTTv4cWNJ5ozyHSMuYkk94BR7?= =?us-ascii?Q?GXi5yAFJYEhU5VOq/AujPlUvB+u30pe1NrRykYi6snKVp8VRt8WLt/X5WToK?= =?us-ascii?Q?h+v1VDE+TegvMt6fZRe6KhEjYVo51pBB0rhix/oomzGODma8lDD8gV8fQSXI?= =?us-ascii?Q?xckHXApLuVbMaPuV1mQe6/8eQMTtaxzqpvr9U7lFzrRp/n4XCwqk/cOrzVR1?= =?us-ascii?Q?FmRpnl99kLwVgRCZ/5GiQGRa2CbZkgEBbACUr8lqJrXZ/yOReXF58hsOheJC?= =?us-ascii?Q?sRk9x6Ony9G/GOqol1Rr52PJfbmgZAl1RzU/5CMnCRT5qU0DMUdWlmCw9NnJ?= =?us-ascii?Q?+prrRJ7+9vTDFa0u8A14ZbqwysUE0JTSXAp81GHAbmydQRLrf8mfP0ZSMMGR?= =?us-ascii?Q?2oa6tIqetjAccql5cDfWarnnhBcnLJCHT2O20A6BPSVEw/78lvNP2AGciMi9?= =?us-ascii?Q?/rWGGMjOrzwlEOjpFliSPzqIRlNtWfVQ2nov7wqcnydd2Gv4BIQvu0nfdFzA?= =?us-ascii?Q?S0M81gDIwGMWS0Rme75e4wMmLnNXoXUQ73t3G8nJdi8oGh0pzsRwFnqiuWFt?= =?us-ascii?Q?yaL9+6wmXZJcr7sUKXxy4od1ETg5LD9rP9iA3CRKNrS9jt8TGV7dPbjODimd?= =?us-ascii?Q?pGMHCi2cOq7o7R+FeAOCTvW1x9Of2gGXO9GUp7ojbcXzQ5rmuo5SxlppU+qe?= =?us-ascii?Q?huBTlWk0TuO0FcUn4QMOPUB4dDu6AODV3X/dPNOJmGmgd5jK8BeT2YLBFGMx?= =?us-ascii?Q?vVPYkxBLQ/r56ZZG9sCpBhf7MjiJ978+4lJWPSwYV/0aafeD5kas8uF7vLeA?= =?us-ascii?Q?oA=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: rOq08Q0yyFzaIwG8r4Q2XnqRLB0el3gse2/loHOC2ZgDjAntFuYnCFH7tIDfqfTGAMLLJQ04fcoGO3O2WrcS4fNOPWW/Hny+ViJFXc7g/UvhAJ41Zp2u29QkWEGPLVHQ2wkehpEicd8zOwqGjxhRYbspCLrIhO5RZZCYETostgDSUsMBouo7qMs5Z/SHow6qDv+YRBm+5dfiW5kpj0GBogvYIkCLmzFWSenNzaTcuELvaIg2DS4ast9+TvvtcTHZOEjnWuzrGHCO7vp8gwqlabzK50iOODOY1UoIGbwWeK0yMcWrSfVzwu/8mdU2QhvYn2nnNLpySbByhKo8CHjk4cw+ueY7Ptc8z+48yWq7J9nN7UwuIGQ3c5Ht/3lNpEm3wrOaxZOtsg26Kw9SkCu9/24KrYNnQTIjOkbL6LMMvv/QyLLkeZQsnC9tFz/qE+gw/WsdFfKetpLPa7CdSvkYAqM30KuME9qJfZHCQgtnxEdrHrlmer1saigJtgCUmOk0c/1FPtZ1xZtEk/am/4ZNXjBzaclqL2t9/nsPj3YKEvYrT21Wmmjbo8J2T1wryIZ71j0jBYyt/99kXiKgfUnsZijyMV+jzHmSB0tyCXYqr3A= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: a51f58a8-47e0-4473-b088-08dca115c794 X-MS-Exchange-CrossTenant-AuthSource: DS0PR10MB7933.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Jul 2024 19:23:29.5336 (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: 2AF4g3L344/3c6xCUp8OyjAiLvu6ft7ex7M5L6BNgmGCV9QEz+Y08SHhQKFZmoJsZNt0pLe+ZOPqbq1f9g2dLQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR10MB6106 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1039,Hydra:6.0.680,FMLib:17.12.28.16 definitions=2024-07-10_14,2024-07-10_01,2024-05-17_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 bulkscore=0 mlxlogscore=999 mlxscore=0 spamscore=0 phishscore=0 adultscore=0 malwarescore=0 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2406180000 definitions=main-2407100137 X-Proofpoint-ORIG-GUID: nUJcXoE4jcUrxdA1aSpuiFGVDgbGJoax X-Proofpoint-GUID: nUJcXoE4jcUrxdA1aSpuiFGVDgbGJoax Content-Type: text/plain; charset="utf-8" From: "Liam R. Howlett" Instead of shifting the length by PAGE_SIZE, use PHYS_PFN. Also use the existing local variable everywhere instead of some of the time. Signed-off-by: Liam R. Howlett Reviewed-by: Lorenzo Stoakes Reviewed-by: Suren Baghdasaryan --- mm/mmap.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/mm/mmap.c b/mm/mmap.c index 58cf42e22bfe..e13f032fa69e 100644 --- a/mm/mmap.c +++ b/mm/mmap.c @@ -2943,7 +2943,7 @@ unsigned long mmap_region(struct file *file, unsigned= long addr, struct mm_struct *mm =3D current->mm; struct vm_area_struct *vma =3D NULL; struct vm_area_struct *next, *prev, *merge; - pgoff_t pglen =3D len >> PAGE_SHIFT; + pgoff_t pglen =3D PHYS_PFN(len); unsigned long charged =3D 0; struct vma_munmap_struct vms; struct ma_state mas_detach; @@ -2963,7 +2963,7 @@ unsigned long mmap_region(struct file *file, unsigned= long addr, * MAP_FIXED may remove pages of mappings that intersects with requested * mapping. Account for the pages it would unmap. */ - if (!may_expand_vm(mm, vm_flags, (len >> PAGE_SHIFT) - nr_pages)) + if (!may_expand_vm(mm, vm_flags, pglen - nr_pages)) return -ENOMEM; =20 if (unlikely(!can_modify_mm(mm, addr, end))) @@ -2998,7 +2998,7 @@ unsigned long mmap_region(struct file *file, unsigned= long addr, * Private writable mapping: check memory availability */ if (accountable_mapping(file, vm_flags)) { - charged =3D len >> PAGE_SHIFT; + charged =3D pglen; charged -=3D nr_accounted; if (security_vm_enough_memory_mm(mm, charged)) goto abort_munmap; @@ -3157,14 +3157,14 @@ unsigned long mmap_region(struct file *file, unsign= ed long addr, if (vms.nr_pages) vms_complete_munmap_vmas(&vms, &mas_detach); =20 - vm_stat_account(mm, vm_flags, len >> PAGE_SHIFT); + vm_stat_account(mm, vm_flags, pglen); if (vm_flags & VM_LOCKED) { if ((vm_flags & VM_SPECIAL) || vma_is_dax(vma) || is_vm_hugetlb_page(vma) || vma =3D=3D get_gate_vma(current->mm)) vm_flags_clear(vma, VM_LOCKED_MASK); else - mm->locked_vm +=3D (len >> PAGE_SHIFT); + mm->locked_vm +=3D pglen; } =20 if (file) --=20 2.43.0 From nobody Wed Dec 17 10:46:22 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 EBEE8198A1B; Wed, 10 Jul 2024 19:23:49 +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=1720639431; cv=fail; b=krowT7/8oqwq2g5bwVGnBHUKCsAZ0SU5GxeqyymUgT/53a27Nq74AvnnVZ/I2bE/E2Nqw8RCouAZ38jLIpz/gMAZawI+jLZ6zCPJd1SH3Vu0MfFm1OmBXPIDY5DgHf9Rx0FYO6joovcTPMm5mC37yt3ahGslZ7Zwn2x8J2xK96g= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1720639431; c=relaxed/simple; bh=YwY1zkc1oscs+TnW8wPuI/eV4dLBt2NjOq5Fl54QhCM=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=jPadSJ/DvSzLuP5GU7MUktWaTmb21GKtvI2B4Z/9vH27SDFWUZt4gFJNjwVNrrJqQmlusG0grOpqVydHnRgXzwowby589+xZEI67ucmQhBnYOLOTo/JkaHRd5cMdsHpXp67+yKTqS88fIGR2Hu+tI41sHdLRYVXoGxR3nKzBVVY= 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=mYnAFHUx; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=T3v2a1ic; 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="mYnAFHUx"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="T3v2a1ic" 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 46AFu887003975; Wed, 10 Jul 2024 19:23:35 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h= from:to:cc:subject:date:message-id:in-reply-to:references :content-transfer-encoding:content-type:mime-version; s= corp-2023-11-20; bh=CVCfL5gmp1gv9bRyInG7BLU6ZsYmKEMst6LlVCnlESE=; b= mYnAFHUx0rfrEfIVUXMEqY9aryw/PgVRYQHpuTErDtZ4o4V/u4XSJP3SlrD//mUo sTm2JiCm8chRU98Tz3fichWrEHROHSzHkX9gpra2vknC4Se8c92zHJPS3mhRreC/ QrHgN5CGftzWuXVEoZrqpZX4j1t47A8Hyp/hE5R152UxHGHoU2aZHb67VdwI1uK/ RGiL91PFpXvNgl+E0oXS7ViDWme7jlDL6R/v7FOWBc1awe6olCO8/FYKMtYOvdeU GSYnae6JmLyUHqzjgeaD/3/9BoVMz4PMgIc1FD6PTwifHYCt+Rrh1KDFupxCLd54 /WvxzMn+2JYwTpHoeFjo/g== Received: from iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta01.appoci.oracle.com [130.35.100.223]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 406xfsr24h-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 10 Jul 2024 19:23:35 +0000 (GMT) Received: from pps.filterd (iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (8.17.1.19/8.17.1.19) with ESMTP id 46AInZer030164; Wed, 10 Jul 2024 19:23:34 GMT Received: from nam10-dm6-obe.outbound.protection.outlook.com (mail-dm6nam10lp2100.outbound.protection.outlook.com [104.47.58.100]) by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 409vva93av-3 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 10 Jul 2024 19:23:33 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=hwBqTZn+m5qnhTVD/dBDI5HXMnai3rnYoyYEEoLpjbH5fuxyymFCb8r6pxAkSrVRuUB2lJW4IujuxE0WtlNsmbiHGAU2meizbcMUFFYtQ5jtCS5CXKf3lSHQJoP4qkIgi0IEwZcJy++4AQVP83WpG05aSmkZ3hJe4ZRelA6iYBAo1oBmWT7U9Wf428XEwT3X0+ONOr9yBdgxumccWBwqS+yUEXf7Hwif24KLPeQJlCEeST0d3C3FLFROAN7m7geloVlbWMH5Nbow3W171lUCbBVlR2TtCXMkDVEVbrr7P82sjB5x31fC77WhFpqy0rhNJPyzfbb4KXJzifufbcEeHA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; 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=CVCfL5gmp1gv9bRyInG7BLU6ZsYmKEMst6LlVCnlESE=; b=ijcvWHVas7ocI5kuAn1ZKY1CrHpJwzS6XpBmeteHvs80bW/88EtYV0NSgrmP1F+2ZbParOQd5YzYsilhIGXP0Sq5p/aRLzfEm2yh8Mlhyz3sLsab+V/gS7inMW8VX99H8f55fZj66ZpjnZBlRLd4Lr4FxAVFqPsrAGxUUVBa1xjbG0Lc84cQmd8MtQOcuoCjndhg6gGfupdABWfmMCU+P8PIhcyg0kmNRVt7OnjfHX171gw0r+aJy40TvAG4U35gkGWPZQFYL2vowwZ4DgfEChW5MiRKxV2XcgCh0j8ikau839MO8ZIvef4UM/WeeMcPjfBJsYdN9Cu9tS24YkfB1A== 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=CVCfL5gmp1gv9bRyInG7BLU6ZsYmKEMst6LlVCnlESE=; b=T3v2a1icJ7KLzBTByrsC/YDeOxr5B/mO67+VQQ8LFK18aod8MFiMjZebzSV8MCk2Lpo0e5IDJ4+YznYI0/+95eAeVx4oOKWp+8J8DC8EwkQD+uBpBu4S0BsbypCguwEVUAErZTpsNIbQpjY/kDNH6I/sdNj+rrPbV0YxVcQeb2A= Received: from DS0PR10MB7933.namprd10.prod.outlook.com (2603:10b6:8:1b8::15) by PH7PR10MB6106.namprd10.prod.outlook.com (2603:10b6:510:1fa::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7741.35; Wed, 10 Jul 2024 19:23:31 +0000 Received: from DS0PR10MB7933.namprd10.prod.outlook.com ([fe80::2561:85b0:ae8f:9490]) by DS0PR10MB7933.namprd10.prod.outlook.com ([fe80::2561:85b0:ae8f:9490%3]) with mapi id 15.20.7741.033; Wed, 10 Jul 2024 19:23:31 +0000 From: "Liam R. Howlett" To: linux-mm@kvack.org, Andrew Morton Cc: Suren Baghdasaryan , Vlastimil Babka , Lorenzo Stoakes , Matthew Wilcox , sidhartha.kumar@oracle.com, "Paul E . McKenney" , Bert Karwatzki , Jiri Olsa , linux-kernel@vger.kernel.org, Kees Cook , "Liam R. Howlett" , linux-security-module@vger.kernel.org, Lorenzo Stoakes Subject: [PATCH v4 16/21] mm/mmap: Use vms accounted pages in mmap_region() Date: Wed, 10 Jul 2024 15:22:45 -0400 Message-ID: <20240710192250.4114783-17-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240710192250.4114783-1-Liam.Howlett@oracle.com> References: <20240710192250.4114783-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YT3PR01CA0011.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:86::30) To DS0PR10MB7933.namprd10.prod.outlook.com (2603:10b6:8:1b8::15) 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: DS0PR10MB7933:EE_|PH7PR10MB6106:EE_ X-MS-Office365-Filtering-Correlation-Id: 3d6a71df-74cc-42a1-08bd-08dca115c8c9 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|1800799024|376014|366016; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?ZUkoAsnTo6Ct97bBG1RuJUZ9NPWUtnsApVKZnjv+/g1Ot7TJyB1/eu4yOY97?= =?us-ascii?Q?4ESYwmlKcrzk3T5uvXMv+tqHfgBVK2/5RaccWOgzzSY603qqazLKNPysktY7?= =?us-ascii?Q?cjKZf5mRug7he9TpWyZSB3odqi4Uk9xfvtEn3fdUwF+fi7p1oSy2POChqVVD?= =?us-ascii?Q?6Y73kVpwY+vouFR3/uxjkvO1i8n3zVban/4Mrutw1/IiFvAR1iiHkUd3vST/?= =?us-ascii?Q?/sq6kr/w/d2CB3NBqH8ABTe4nBOS2MIUSBC8LUlpDrot5+83rfTu4lvgvzS5?= =?us-ascii?Q?b1FDJ0n8uohpWnBcq5uR6Ywj0qXHg12IhD/wcX9M5+O5V3Uqoy2G9Pmskws+?= =?us-ascii?Q?bCtwgj626rzWJ5MzVnuN3J0wL214uSq4/mgBvgqwPWa9haPz99q9kUWO2LgO?= =?us-ascii?Q?jpZmErOJk/6Vueac97RJMTHo1+g1omvsQ11XpxbQSoPDf7tvvdwswn7qBw3E?= =?us-ascii?Q?zlXhiYCLmAU1bVcWB53Q5A+eygv9amzAJIp5eZBspWFbMsTUSPVTmObPFjBQ?= =?us-ascii?Q?X6sFd6ZUM+sUAmE8mQ6bOlDtIu2SlL8SwHMkNtJ9Fy+BoJEAOsWzMRfT7l9f?= =?us-ascii?Q?kgtgY7ZaFGnbm8cXLmgxwUsMTw1tWU73S7MjaIbovehNgkKGRxD7tcipkVww?= =?us-ascii?Q?3sxKR+LsUleciR+cfS1r2WfbIjkTFkmmqWy841HqKf/yWNakNAPOVhYnGaT/?= =?us-ascii?Q?kdjhvDt/gayXR3ULUZ7t9FQzE7YsSXlVIQhNzjvTACB5B61c5mMQVCyVliLc?= =?us-ascii?Q?HGeHeBuvednRP2OdWWK+EGFdwXlYNcVjP2zYtWdwFQH+Tm85hp0scH2NPndd?= =?us-ascii?Q?b0r/+oxEgk6lm93EY2TEWG9JPzNJo8wKiR51CX+0JlFlU/ATJNzpBqzzfNTq?= =?us-ascii?Q?+1rAoOPS+gBZ9/odeDhlB3LfZ2/MRhLUC1bV1OpbeivSsct0K+sJpkVsO5/j?= =?us-ascii?Q?v013SW/oKOkfD8j1CREBI0h5CMdSrzhLWwdBF1Xxu9wrZH5wMLBDPL07yLvN?= =?us-ascii?Q?nXmxn1vlSJ4H4+ScRgABEk1jtjOOBBD3AA5a8H7HVa4OWjPGQtWfJGYnQgZ+?= =?us-ascii?Q?otWKjcSiDqFxNhHr4UuQinayBT0c3DSDmEenLn564AlUuAm9ro9SzlruH3gH?= =?us-ascii?Q?qwt5KTN/nlCa+8CVNQS69lOZ0jzgZKO1gWdbUCrfGS5G0JZ8YwqIo8iIB/LS?= =?us-ascii?Q?sOyeiyJGs90sVkXKKGvdx1I0yuzbi2pqohfRHkoAG40Reb3l4yLrBiQVOk8g?= =?us-ascii?Q?JhuTlZW2Eucp7lys3bwTlanPbsSip7RnypeP+16VVTJetKBw0pXNKG43+EKO?= =?us-ascii?Q?dItUWw7MjNXenI6WSo07XJehtCffb6S9o+VQRGjBVLyWWQ=3D=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS0PR10MB7933.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(7416014)(1800799024)(376014)(366016);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?15IOkixtVaHnCkrzOGKmIuDfFEXj9u1Ub3fJQ30OE8uYxXJg2HyvCPwoSFue?= =?us-ascii?Q?Bk45PMlBtaUYLsv9/hhSwI/aLiGLGUgCpH59m8eFgF0uGqE+dp+0mXSJ8WbI?= =?us-ascii?Q?mslvDXox/mijYhQZ0sgrLNTzWs/eejw6E/TUoGXR2lv5BAPkxuUkPJldYRVI?= =?us-ascii?Q?WAMeXQaUynRt9asP3HK6eXN078bUehA63OJ25hLrj5HwDpXIbv/FNPxCUs2B?= =?us-ascii?Q?gGEx6iSLhtD//0z/2HSasChqyB7BHOxN/Vmfg9wlo9N7l4GJ8UNs1vThEJaq?= =?us-ascii?Q?qJ4N665RknQd1l1ZNavY8MkQwhqrEaMYQnt6ZQTcVqQzaoimqGMLCppeyazY?= =?us-ascii?Q?PMlJzOdHUSHkODTd0PySKoQPZjON541xGrrUbbrXGZ3qksiUDR0tTX4vTyHW?= =?us-ascii?Q?dakMSqQauc2kH+aiRcgBnDs2jIO7cHf+gfKv7cp4FxLIz9OGGeWGGmZvk/CI?= =?us-ascii?Q?atrqcjfPBgNjJpRsPlVDi13rehH3b4MTOMRY+HFZfhSvwu3BvJY3euTlXgrG?= =?us-ascii?Q?YfaSIduYKMLCu1+tY8hJ+espHBklIzz7foHuD+Vh+vQVo3jUl3TTRR/cfLpL?= =?us-ascii?Q?Y7Q7tdmBottHBACabsHe/msvW46qDXPAiNgDvbWFYvePtXxwlQ554xMgAo7j?= =?us-ascii?Q?eKmZEHy5Z9wMJK9jhjLkvRh2Rd5aj3T+icucgBQkf9sOHVGuHQyHjkvbnkrU?= =?us-ascii?Q?fV2pFblAWdgzKMQZEGpLTd22M0GY5YFp9m7v3GRYUkId0JRemQHzl/jrZBXg?= =?us-ascii?Q?s8H28/IIrbJZsmZexLdunKvKwbpT45I93kKt3G/qEIYiCyih2I7BEGspO65R?= =?us-ascii?Q?5CyBO7OhLAbdSRSxIGnxHDjLoT7130J2Pb2Cc2BG7VtIZ/a3XXM/IbsPQf/2?= =?us-ascii?Q?2ZWgBAKoA1hAgVZyXqdORD8xv6pnuhCzMG8/3zX6q81O8CwFRP9tZO59vWTu?= =?us-ascii?Q?hAZLaVcMy6jxlfOC95eXuhT6qzkLf0ZqpV47yPLZmo18D8ZDmRZYLYQg3Vqb?= =?us-ascii?Q?KHGRTwtY+uEjGbsqnhkpGILtqfQpjjDDHqUjKPt1vaeLqScJ+9E3afD3OhUI?= =?us-ascii?Q?B54E0vvi/7aWhitBQ9o7XXR7q06q2JaWul+5i3Z8/LibCwGgD9PsFjBramaD?= =?us-ascii?Q?vkk1StZBB/izR7bI4nudayjNwqbrw6PoKIZredHjDmlQbCoa2ComGKM/5o55?= =?us-ascii?Q?/CcVnFpS9WPPgt6ZgjWG07X9LbGTZsGha4hXkOcuSaaWqD5n8y3vMzOucuFn?= =?us-ascii?Q?UCu3ywXHf2cKhXUvo8JagdOqipjXULSjvaRSWYR2A4kXyFz/WQTqH2BTl9w8?= =?us-ascii?Q?tlDpdOsWiqvTp7nYfFs/W+zBMWiL41Q3PKcTC+sJejcH8lVjHuVXNK5WrRw8?= =?us-ascii?Q?Ul3C28lQVPnd7wWCTwq6reNMjY7ye1OoXxDFGDkTt120ZSSGfC/DqoFPGeZ9?= =?us-ascii?Q?jL+4/FcjQMambhIgaVgYsVfMcaPL2qgX+ytN+vo29Mgj7JrtKp1fcoHiKBvH?= =?us-ascii?Q?zT3qNGGsXL8QEfy1AHKq+/+jwfAWqlcEa4nnn78XhR/ObH3I0iljzQRH0s7h?= =?us-ascii?Q?m3SN6THs30hcQyjWRrSYbmnly3YCWC/HIAr4ip3cdV3rvPpErxM6yVlCYeGH?= =?us-ascii?Q?MA=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: KeMuWjhPsGyQmZhg8eCvQ+pJbrPMWlfGC3eXo/+lavIaFQajGPGOVZO6c2BBu/sil6KDwnE6Yv+Kakkm3vGavuFVBlgWEbrF8AFgVtjo3DS1YqtqLI22ezONYMjVwrfifOb+Eez8DiRnU4WJ80TBFXkGRliHJea5yvBK+CHo0NmKDvKKIakh/SnkHZf1VLiPKKmk+H6p4caf6xRMy/iMSeYTG3RUjl7yH8ZvQLdoo+hpr7lQIPLd1CTCMDbnZaUCLaYPvG/jKnW+P4fU+6/IzVwEUD7qpwcnnagIuMgfcm1SvSs69JlA/wSCjeE4IpmH9/ehBIFvWfZcLOn5Ldp43Qy+kU1KxN6KMpzbN5Vuybtw9gBHUc0gJ9zRCmg8IoXLzCN5fvz3WqSekl43DAH3WTwUsXOTHKzXBp8+E6Sqsy3yBFv8OCZZxBcnHXhbMDI+BnGe3wiPAnZAJdoDd58I00RnibPbVa8BbepifsDMPzCJENhEKU+hTuD7bW8ZbUDeVjn71LFoBUhzPxa30aIzUxDKI+OgavcyQ/lDUwn7AGNJv6rsG+WlaM5IEoKZJ0eCH+8qEOBH14SDwJMFW4UDf456bcI87oJofZ25PEDj7TY= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 3d6a71df-74cc-42a1-08bd-08dca115c8c9 X-MS-Exchange-CrossTenant-AuthSource: DS0PR10MB7933.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Jul 2024 19:23:31.5548 (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: t7R/XsiT7fn0RzkZZwg76yq65gUYLQ45ZQxlpmVhNAFQUk1P1KKV8ViNgnxgCjeVQ57VWGa9EC2U7S3fyPC8Yw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR10MB6106 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1039,Hydra:6.0.680,FMLib:17.12.28.16 definitions=2024-07-10_14,2024-07-10_01,2024-05-17_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 bulkscore=0 mlxlogscore=999 mlxscore=0 spamscore=0 phishscore=0 adultscore=0 malwarescore=0 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2406180000 definitions=main-2407100137 X-Proofpoint-ORIG-GUID: i7stoI1RQm3SiOycTbMtD3-1duiN5VZd X-Proofpoint-GUID: i7stoI1RQm3SiOycTbMtD3-1duiN5VZd Content-Type: text/plain; charset="utf-8" From: "Liam R. Howlett" Change from nr_pages variable to vms.nr_accounted for the charged pages calculation. This is necessary for a future patch. This also avoids checking security_vm_enough_memory_mm() if the amount of memory won't change. Signed-off-by: Liam R. Howlett Cc: Kees Cook Cc: linux-security-module@vger.kernel.org Reviewed-by: Kees Cook Reviewed-by: Lorenzo Stoakes Reviewed-by: Suren Baghdasaryan --- mm/mmap.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/mm/mmap.c b/mm/mmap.c index e13f032fa69e..d5bd404893a8 100644 --- a/mm/mmap.c +++ b/mm/mmap.c @@ -2987,7 +2987,6 @@ unsigned long mmap_region(struct file *file, unsigned= long addr, prev =3D vms.prev; vma =3D NULL; } else { - /* Minimal setup of vms */ next =3D vma_next(&vmi); prev =3D vma_prev(&vmi); if (prev) @@ -2999,9 +2998,10 @@ unsigned long mmap_region(struct file *file, unsigne= d long addr, */ if (accountable_mapping(file, vm_flags)) { charged =3D pglen; - charged -=3D nr_accounted; - if (security_vm_enough_memory_mm(mm, charged)) + charged -=3D vms.nr_accounted; + if (charged && security_vm_enough_memory_mm(mm, charged)) goto abort_munmap; + vms.nr_accounted =3D 0; vm_flags |=3D VM_ACCOUNT; } --=20 2.43.0 From nobody Wed Dec 17 10:46:22 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 B49ED198852 for ; Wed, 10 Jul 2024 19:24:20 +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=1720639462; cv=fail; b=ul6kIL7qKqdPoZwUdTwgDDyZAwuFu+qyVkva/d7RQx8BX52TIDMhexZGu9k4iQwGdvcgmxBUDaeBf3h087KI1IBnrAWkymFa2qGKwdSIiQMJLZ/dM0qg8EGPPBOSHFR4ozNszNMpaSjREUj7rp/7zWrQvJuA1HaoSaMj8AbSJbM= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1720639462; c=relaxed/simple; bh=C13oDd069e4RKnhL+WxNnguzynZVbZhZdJorCVj0A1U=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=mV1vrpgzKh7IKtbjd6Ck3CZEfKHiMgAJjzu9BPQ9hCb3gqrn7nmpKaD6j6XB1wGEbz4gCfQ1SH9OMyc3Z4+xAGdrF08aSJwWAJmxaxTzHe4Qgrs8qDr30Q0uw0LXcsQyVzgYbPiCRB/TVuzt3GQ38Zua5yOm3dCs53Q9LUcNK3Q= 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=PXtWlpOb; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=ECRiIXPL; 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="PXtWlpOb"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="ECRiIXPL" 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 46AG3ITd012180; Wed, 10 Jul 2024 19:23:43 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h= from:to:cc:subject:date:message-id:in-reply-to:references :content-transfer-encoding:content-type:mime-version; s= corp-2023-11-20; bh=W18XszWvqh1fOjVwbse2DTRvwRw3frweJXxqWBMiXto=; b= PXtWlpOb2I3OZY69snEOtruvJc6tmBxqL5ahByZMS3/eE1uN3sVizcRP699swLSV kXhIklWSNPKqiu+UwkWmqbSj2ynMWtMvMNGdzhNYXYnUX/29Cl/FNS1fn1tuQK+d z1IeINqdgqFCdvlT6cBVGjoDRHhWzsArjS55Wq88U9LHTCyHJ/aWltP2sgXEZsEo MxFt57YkLTnyEICKwAZmdQpTmJ40lBbGYBkri/S+WYbSgcXu7bm2n0JOcWYlNueY +UrSDSNSBRNEtNzjeuY1UWMiU6D+tXiFq0JJ2xqdal96Si0uosCTloDRncIiDLuE TppXd4HWaUEnvrLyc9Rzqw== Received: from iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta03.appoci.oracle.com [130.35.103.27]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 407emsyctq-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 10 Jul 2024 19:23:43 +0000 (GMT) Received: from pps.filterd (iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (8.17.1.19/8.17.1.19) with ESMTP id 46AIlfXt010839; Wed, 10 Jul 2024 19:23:42 GMT Received: from nam10-mw2-obe.outbound.protection.outlook.com (mail-mw2nam10lp2042.outbound.protection.outlook.com [104.47.55.42]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 409vv4s3w9-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 10 Jul 2024 19:23:42 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=KgaGPzlW7Jk+s79lWtcjvAZT18BvxhrBpTLCOe7VomVqCc6t5Vlkih1HDr6+jw4bdBneZDemXB9xDyLY+NcFkv1whA+5Fdx58IFPBo7gYpqF1MeMod8N1+JJF7AaQMrAScqFQjAfUnVIca97msV+48k+EZPfj3PUm+o7IQBH2jwVnq7Cb/pYlRmm08pXq17ApGwHQzEb+D2eNgvkXJ0YSLkzudVCh4JMwsk6R17EvUbpwUlpJ9An142qplGgB9nb9YZWyhKos94pm6utaI57GyNkZ1+jhdyIaQUngg8VRY5eMlzjLEfwr2JXeqNtKa+uv+zcDjCdr37spaKYJ6w5OQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; 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=W18XszWvqh1fOjVwbse2DTRvwRw3frweJXxqWBMiXto=; b=Jo7uV+NExocfVB0okTYClrfD29YjEubRXzRUtacUJbHl/Qs5lqOzLPnQdf3o/L9B8y5wZ8S42omPqjjqRzVnXgtrYl1LUAtRpsU74oHHdkhZ86cddmAT+Hee2t+4rePW+v5bAxi3Ro3pdS9N4rbcZZ8630YOd8rKBS/1DaqEoBwjE7B+AJ1oQlox5ftJ1QIpWyo/LDv31YnoEiuPmIkLx8cyjNxz908oE2WGVmOyJVgxWbdjZNUa9sk1ufKYSjqpWZjnF+gCyUmJmp9HrILKx3QhT7dA+f58C2rGc6cfpgoUF2ykUMFduWX8G+tLB/+0J6Cw6zY/CeZ83eNMU+3kxg== 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=W18XszWvqh1fOjVwbse2DTRvwRw3frweJXxqWBMiXto=; b=ECRiIXPLNhtWtj5pmQtFG36n2IFs0FQ5RuTz6g413/9TzM6ra/b7jx/5/fC2eNvFDJHQIYH9yKnzxvD1iebCRELwWIrs1rbxXbhhY2zUsaGtGADKI/f/JUn+KSnTBqRfpytvKLuIjJMcSHPlWv0is763Owg4gF33FZEI5OskeX0= Received: from DS0PR10MB7933.namprd10.prod.outlook.com (2603:10b6:8:1b8::15) by PH7PR10MB6106.namprd10.prod.outlook.com (2603:10b6:510:1fa::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7741.35; Wed, 10 Jul 2024 19:23:33 +0000 Received: from DS0PR10MB7933.namprd10.prod.outlook.com ([fe80::2561:85b0:ae8f:9490]) by DS0PR10MB7933.namprd10.prod.outlook.com ([fe80::2561:85b0:ae8f:9490%3]) with mapi id 15.20.7741.033; Wed, 10 Jul 2024 19:23:33 +0000 From: "Liam R. Howlett" To: linux-mm@kvack.org, Andrew Morton Cc: Suren Baghdasaryan , Vlastimil Babka , Lorenzo Stoakes , Matthew Wilcox , sidhartha.kumar@oracle.com, "Paul E . McKenney" , Bert Karwatzki , Jiri Olsa , linux-kernel@vger.kernel.org, Kees Cook , "Liam R. Howlett" , Dave Hansen , LEROY Christophe , linuxppc-dev@lists.ozlabs.org, Dmitry Safonov , Michael Ellerman Subject: [PATCH v4 17/21] mm/mmap: Drop arch_unmap() call from all archs Date: Wed, 10 Jul 2024 15:22:46 -0400 Message-ID: <20240710192250.4114783-18-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240710192250.4114783-1-Liam.Howlett@oracle.com> References: <20240710192250.4114783-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YT3PR01CA0104.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:85::29) To DS0PR10MB7933.namprd10.prod.outlook.com (2603:10b6:8:1b8::15) 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: DS0PR10MB7933:EE_|PH7PR10MB6106:EE_ X-MS-Office365-Filtering-Correlation-Id: 9d1649dc-5274-4076-1713-08dca115c9e7 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|1800799024|376014|366016; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?cY2t7v0mAFCCfuouD3cpYay9V8vHfA88MH6UnDSeEhmd06IH77D5VkXAUDZP?= =?us-ascii?Q?uRtdT7/0Jg/KIrqba22R2GGPfgfOMGalXiPloTSiBiAQail3CjP4fDkaPKcW?= =?us-ascii?Q?0NfRP8TOvXLqJJp1Ile26e+VyIGnoUvHRfeb+QSqCuVk9bDLXEM9T48WA2L6?= =?us-ascii?Q?5C+a7HWPVpi4XEKIXuNN7+pMtfkd9WI1zsVbJrg0mrAfKWyaTaGIB80pfpD5?= =?us-ascii?Q?akHz7S3GvFho9rE0fa7j6YoScNKruJNWW20eV3oEEWy8164c/LdhKNv77T9k?= =?us-ascii?Q?JRp7W1aiq9dBOGqFoDnYy4o7gyark/eGc+swaDKhM6fBuSk62lhE4l0kYUWf?= =?us-ascii?Q?F3gRvUvqv4DFkSj8KErQvQzEhqShM7VnGoCP8mPGOqszDsA58N5VDXvPUOKN?= =?us-ascii?Q?c+m43bdlcJJy556RJ2e2Y0wchI/TW6Numx5JZdNYvfJoKeE7nWWZEc5Z+bcN?= =?us-ascii?Q?UN4YSyHZl9qO5mqn1zuoxAijFGs4woeQTzBy3x1pQCAdJc5R2td/SCdsyJBS?= =?us-ascii?Q?fXGzvrZs50Lvo/sUTWvyVlbWyEh53m+gShWrFWSSLlnoTtolAR4sdgy71vHk?= =?us-ascii?Q?YGE1xIN6+41kOxDsFwzh9qLZ/YX4j7kb0IeCzRXSUCdkHHMiVaaagjKVVz/R?= =?us-ascii?Q?//ueNSUtz9DU31LwzFsvtODCp1vvwGenWNhCutaj71UB8BaInK52ReEN2DoL?= =?us-ascii?Q?2+o/uv0mKOurK5QP4cysjK8H9Ufnt3fiqSDIPrJvbPqucXE8sk/7ZaL/KjIu?= =?us-ascii?Q?9eDiCQ4sOBVXGPXwKSp8mbqanOHX1mllFQSl2UlZkwA+6znbO3Mf4LGv3Dnn?= =?us-ascii?Q?joNoTvXzNofK95RzXufx+51znNCrCEWGcGGfot9DzpI0KPagpjErPwQhaEKz?= =?us-ascii?Q?1P6gALgF4IYmGkEQBr5X/y2MR0GPD0yskve7py0FbeWMhqsqq8vIrK9B/hvz?= =?us-ascii?Q?2Gx4NY/lQ2y2iCCEo3WMwIYLYMro85QafqYTqAO8b3IMBKXSvWMddPhTESIQ?= =?us-ascii?Q?Zr5R5qkZbcGTko3T/DZr1eEF+TL5fUaljrrITeIf5ItX+FuNd2t7GuQ6Um0w?= =?us-ascii?Q?qAoL0sG84Ws95ybys/i4LBCF5zWWxuJ313Bd89fJ6fA7vM0B4oy544XL3XJD?= =?us-ascii?Q?mM0LLfJPYEv/AJfj09p7t9TCa0EuzopffgNXe5KXL7nnCCR/CDvIKXTHACms?= =?us-ascii?Q?N6o4ZvC4jkX4+fARAyIjRD+eFQwuFFQZ07lOdploWirRRCRU6w6/hsFXdORT?= =?us-ascii?Q?1Wsl02q6L0f+xT9Ybe5ETvh9OHZWJiYqwZcU5MmO6lNGmF0xhUfmEAkQeg2+?= =?us-ascii?Q?bCOtp3F57xRj7No+MqBpB2YV?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS0PR10MB7933.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(7416014)(1800799024)(376014)(366016);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?DWS8VbW5VtiCheZwyLzM7/8zK+tO6MGPoL7A9Y5pGZ1aDA4ATaamauhLa4KL?= =?us-ascii?Q?y3Gs8PSKHjCDnIG6KyYKEezmXCMPGB+dUHGwJO48T+7ZWxjXRgwJKJYT4M+a?= =?us-ascii?Q?brRH0tKcuG5/g6PLNGRJcUnN/F/AXvMESDzpz17vvdFMy7sJ+yBPtPcm8zPS?= =?us-ascii?Q?da8aErlNGUfUoxrYVyJXNdlBcT8miyqRVfT5s47Lgx6mtEfsE50IelTGmCTh?= =?us-ascii?Q?8dRgcaCUCtfm1/bQubiloXrgf1JQucEgujSVRF/PtH+qx0UTbLLVFvQeQjSb?= =?us-ascii?Q?Hj1OUzfpdWWvb+/K1Vq1zcTskKLmAd5wS2LUo7Jrt4kzVHg8ERVnm81sGOZp?= =?us-ascii?Q?QhazIBMG7Ugp8eD7tWx3ZVaxxUwZBEsCFcD2XbjJDsw0+h60YKOrCcOawdES?= =?us-ascii?Q?JUk4UaWHtPKBziQWCArEjBtuZDlFMWZ1fH51auA29JbESCVsHvDbd1kV+DWO?= =?us-ascii?Q?z7i15P2STh9CRVzBPCwc3oYvE3RPPH4DxKrl1BP2N8LkbXW6ed4BPxmgIDki?= =?us-ascii?Q?JGdQ0xBJ+rpGB0AMZWLVWrwgqV9Gp/OvMxuiMBi1P1z4bHZGOwyOn+D5nAwf?= =?us-ascii?Q?1qqbJe1zBT3ldvt9qcJpA3Yu/YwsfAKtLgoLOuSmVR/wElIB3F+exClgobCe?= =?us-ascii?Q?oP0sQq5IgtK6wVXufBnlp0X2vsyvovVYBZE5TRSZf2BFhWd6BnJJlzZqyPRj?= =?us-ascii?Q?Gl6DoijSYvrfoIUXTW8RbOtt/rj/FkanvvQdNIrluQfk2FEzfXK8M8Z58lwD?= =?us-ascii?Q?abaJ1gXtCR+gssbWsw2qwdWuxWg1RzpBCJBZ8kh5I1YkFv50avFTGSXTwAfw?= =?us-ascii?Q?uVdhpfnPjZK94P+jx93y0r9uGR5n66hLNWb/C33of0IS3D42IuyMTSrvSiJ2?= =?us-ascii?Q?YKAlZMNjvB+jYcN44c4NMEzwyp6yX2Vv+jidp1PUeQV8Lq/lS92zDD0AY17K?= =?us-ascii?Q?sA6N1XcPoJ2iYChGTXfo7kxXa4/gg1i2Psw/c/5cgruOqvn/IHPymcNgva5A?= =?us-ascii?Q?7sjXZ0VWq6qsodVxnx5r/76PqCWnP5p0WTU5AskCSUiF/QfWF+0kjTUppCLA?= =?us-ascii?Q?WSM/vIZf8kCSzFAApXNpWNlY/qgAkdXesxdo8oGWUcWJYmCtA0BUdi20b6Tn?= =?us-ascii?Q?zecbprm4ecbP60nXqazGqFBf3Wr8XDt3UZh2vm8Baxo7IESgFBbcLR1r1vhW?= =?us-ascii?Q?tHxxiqgMQxpVMjMZW2/9/bPKCgUDos1BmVVTil7E+2q5BXv2Hrlb9nHeGjfc?= =?us-ascii?Q?RnMJ65oeD0PluDSxnMqLXRZ5+Z+PgfteUW+Qy6v4n/cbtJ7UzATzYVoh4WSg?= =?us-ascii?Q?WP+yQcNCbQtrR/F8nsJfc6zFisussRGU1T5YA5TeTHxtfltu+MdgSwzQS1Ol?= =?us-ascii?Q?G+KOYn/1o1UhTfk4POFU4ODvcQ9jCmPzEnQFc0V2WitoQPk3LFo8gyhvwAca?= =?us-ascii?Q?XWGAD0/kR9Nq8Lzu5hUq4L8+MgC3ZrFUcWkgI5bYitkla08KbKuvVGcVdn7K?= =?us-ascii?Q?SaVL/ofGDnxrbTLH/WbQUOvO+Um77F216HdLDG1YvjvoQpg77cSftK9hxWwp?= =?us-ascii?Q?pJL6LNVqZTVjRnshrKQRf9Dz9siHpN3PEVsCZVvPcqyKm8fnVsUVc5bV7QMC?= =?us-ascii?Q?gA=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: Xz5FhkQQuAXT8V03cFFZiF88/Jm9UN2Rmo5Upk8l+bo7nComHZVz2F2B1YP26PxvKh/LiwZzn04STMYTrWHWf7krVjXGCBtvwqlaLW8FPdxwpD3ugVsNOtGXVd6SDatiXt4KxuVD2+TRsWTYC4tqjtf+jyZO+VocE969kH3ToQW1wtsmZp5urcqa3vhBrnqHYdf3NNotEZ1ZugdYaqdTKL3D71zlZD8dJBWFrXu2k6kfodOh7tiD5RcoF1CPDJNu6VC9pc3yZ47uG8fCnQZHW4K+TaH4AGw6C/EoANMUx+ziE9wZ9hs07zve2/177MWp2cRl18zHncxrHDeG7JzStoa/dycgTbvg+WFQz1axLQX+J3sDvDFF4lQYw4DUcInkW512z4Dx08EPc+arSpRTet9z7th3eJBNUxDZcKsCmfsyiYFM0HAXjVwkzX1c9FqhTGv+07IQX+2BjlEt2KUpBkOWjOObZp4Sps7GO0Au+kT9UIKZNEZnDxIxq80ezXs5hP+4zoWsSKeNL9JN1VKJKVXfoAoYP73sljFJLQ+Y/EbAgGCgBrYrENyf0uehLuThFd/aS8fRzzkNPLBk5t7GiZvUeTbSc/VVcTO+CMcAHJY= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 9d1649dc-5274-4076-1713-08dca115c9e7 X-MS-Exchange-CrossTenant-AuthSource: DS0PR10MB7933.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Jul 2024 19:23:33.4315 (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: rzuAd0VlSWagOC2oGlL13r/IlRuKOxcca8L4DgZw7GhMmJEDcmFSzKR30wviNiYUYGnS6wGQc0T7LCH2upKPRQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR10MB6106 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1039,Hydra:6.0.680,FMLib:17.12.28.16 definitions=2024-07-10_14,2024-07-10_01,2024-05-17_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 bulkscore=0 malwarescore=0 phishscore=0 spamscore=0 mlxscore=0 suspectscore=0 mlxlogscore=999 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2406180000 definitions=main-2407100137 X-Proofpoint-GUID: ILyZD4BsG5QRVH4xa4azHR37Os1ZtWWo X-Proofpoint-ORIG-GUID: ILyZD4BsG5QRVH4xa4azHR37Os1ZtWWo Content-Type: text/plain; charset="utf-8" From: "Liam R. Howlett" The arch_unmap call was previously moved above the rbtree modifications in commit 5a28fc94c914 ("x86/mpx, mm/core: Fix recursive munmap() corruption"). The move was motivated by an issue with calling arch_unmap() after the rbtree was modified. Since the above commit, mpx was dropped from the kernel in 45fc24e89b7c ("x86/mpx: remove MPX from arch/x86"), so the motivation for calling arch_unmap() prior to modifying the vma tree no longer exists (regardless of rbtree or maple tree implementations). Furthermore, the powerpc implementation is also no longer needed as per [1] and [2]. So the arch_unmap() function can be completely removed. Link: https://lore.kernel.org/lkml/20210611180242.711399-1-dima@arista.com/ Link: https://github.com/linuxppc/issues/issues/241 Signed-off-by: Liam R. Howlett Cc: Dave Hansen Cc: LEROY Christophe Cc: linuxppc-dev@lists.ozlabs.org Cc: Dmitry Safonov Cc: Michael Ellerman Acked-by: Dave Hansen --- arch/powerpc/include/asm/mmu_context.h | 9 --------- arch/x86/include/asm/mmu_context.h | 5 ----- include/asm-generic/mm_hooks.h | 11 +++-------- mm/mmap.c | 12 ++---------- 4 files changed, 5 insertions(+), 32 deletions(-) diff --git a/arch/powerpc/include/asm/mmu_context.h b/arch/powerpc/include/= asm/mmu_context.h index 37bffa0f7918..a334a1368848 100644 --- a/arch/powerpc/include/asm/mmu_context.h +++ b/arch/powerpc/include/asm/mmu_context.h @@ -260,15 +260,6 @@ static inline void enter_lazy_tlb(struct mm_struct *mm, =20 extern void arch_exit_mmap(struct mm_struct *mm); =20 -static inline void arch_unmap(struct mm_struct *mm, - unsigned long start, unsigned long end) -{ - unsigned long vdso_base =3D (unsigned long)mm->context.vdso; - - if (start <=3D vdso_base && vdso_base < end) - mm->context.vdso =3D NULL; -} - #ifdef CONFIG_PPC_MEM_KEYS bool arch_vma_access_permitted(struct vm_area_struct *vma, bool write, bool execute, bool foreign); diff --git a/arch/x86/include/asm/mmu_context.h b/arch/x86/include/asm/mmu_= context.h index 8dac45a2c7fc..80f2a3187aa6 100644 --- a/arch/x86/include/asm/mmu_context.h +++ b/arch/x86/include/asm/mmu_context.h @@ -232,11 +232,6 @@ static inline bool is_64bit_mm(struct mm_struct *mm) } #endif =20 -static inline void arch_unmap(struct mm_struct *mm, unsigned long start, - unsigned long end) -{ -} - /* * We only want to enforce protection keys on the current process * because we effectively have no access to PKRU for other diff --git a/include/asm-generic/mm_hooks.h b/include/asm-generic/mm_hooks.h index 4dbb177d1150..f7996376baf9 100644 --- a/include/asm-generic/mm_hooks.h +++ b/include/asm-generic/mm_hooks.h @@ -1,8 +1,8 @@ /* SPDX-License-Identifier: GPL-2.0 */ /* - * Define generic no-op hooks for arch_dup_mmap, arch_exit_mmap - * and arch_unmap to be included in asm-FOO/mmu_context.h for any - * arch FOO which doesn't need to hook these. + * Define generic no-op hooks for arch_dup_mmap and arch_exit_mmap to be + * included in asm-FOO/mmu_context.h for any arch FOO which doesn't need t= o hook + * these. */ #ifndef _ASM_GENERIC_MM_HOOKS_H #define _ASM_GENERIC_MM_HOOKS_H @@ -17,11 +17,6 @@ static inline void arch_exit_mmap(struct mm_struct *mm) { } =20 -static inline void arch_unmap(struct mm_struct *mm, - unsigned long start, unsigned long end) -{ -} - static inline bool arch_vma_access_permitted(struct vm_area_struct *vma, bool write, bool execute, bool foreign) { diff --git a/mm/mmap.c b/mm/mmap.c index d5bd404893a8..df565f51971d 100644 --- a/mm/mmap.c +++ b/mm/mmap.c @@ -2652,6 +2652,7 @@ static void vms_complete_munmap_vmas(struct vma_munma= p_struct *vms, mm =3D vms->mm; mm->map_count -=3D vms->vma_count; mm->locked_vm -=3D vms->locked_vm; + if (vms->unlock) mmap_write_downgrade(mm); =20 @@ -2879,7 +2880,7 @@ do_vmi_align_munmap(struct vma_iterator *vmi, struct = vm_area_struct *vma, * * This function takes a @mas that is either pointing to the previous VMA = or set * to MA_START and sets it up to remove the mapping(s). The @len will be - * aligned and any arch_unmap work will be preformed. + * aligned. * * Return: 0 on success and drops the lock if so directed, error and leave= s the * lock held otherwise. @@ -2899,16 +2900,12 @@ int do_vmi_munmap(struct vma_iterator *vmi, struct = mm_struct *mm, return -EINVAL; =20 /* - * Check if memory is sealed before arch_unmap. * Prevent unmapping a sealed VMA. * can_modify_mm assumes we have acquired the lock on MM. */ if (unlikely(!can_modify_mm(mm, start, end))) return -EPERM; =20 - /* arch_unmap() might do unmaps itself. */ - arch_unmap(mm, start, end); - /* Find the first overlapping VMA */ vma =3D vma_find(vmi, end); if (!vma) { @@ -2969,9 +2966,6 @@ unsigned long mmap_region(struct file *file, unsigned= long addr, if (unlikely(!can_modify_mm(mm, addr, end))) return -EPERM; =20 - /* arch_unmap() might do unmaps itself. */ - arch_unmap(mm, addr, end); - /* Find the first overlapping VMA */ vma =3D vma_find(&vmi, end); init_vma_munmap(&vms, &vmi, vma, addr, end, uf, /* unlock =3D */ false); @@ -3348,14 +3342,12 @@ int do_vma_munmap(struct vma_iterator *vmi, struct = vm_area_struct *vma, struct mm_struct *mm =3D vma->vm_mm; =20 /* - * Check if memory is sealed before arch_unmap. * Prevent unmapping a sealed VMA. * can_modify_mm assumes we have acquired the lock on MM. */ if (unlikely(!can_modify_mm(mm, start, end))) return -EPERM; =20 - arch_unmap(mm, start, end); return do_vmi_align_munmap(vmi, vma, mm, start, end, uf, unlock); } =20 --=20 2.43.0 From nobody Wed Dec 17 10:46:22 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 F19E4199EA4 for ; Wed, 10 Jul 2024 19:23:58 +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=1720639441; cv=fail; b=jjVFi9c+ZTY8mVYgWZkCz73isiKQMa5LMqpTmLdqlUVyIadKbYDuydbsqZROaZn77R+jN/HVVCCI/uxe/6bWqRqQaSTJuwTdxLPY4gJmbtyV+0Rg0NTiSZ10kCXMvkG3r26ZEJISQzKUc7fylHL6b6naPT9IQMX1XRkBHaXXcck= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1720639441; c=relaxed/simple; bh=xlEjTrVKdPMgsbAfLZPthYkoUw80MjfxLWQq8ag1hy4=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=PGuz1b5/XiGXa2C9w1uCGw36tjrMVntb8J9RSr0BloVs24xYX8gQLNYMMXaw4EKCWpS9n7cYGxt1qtCrezAp0pXNKbF4cwM+eNhywJyTwVWf8bQz1170TocRhaN71zRypmYI5w1hwUvapk8jWaVroyBGtMCfPO/XSaGGVrhX35k= 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=jyF9I1Mj; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=dghHDPoV; 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="jyF9I1Mj"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="dghHDPoV" 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 46AG1ac3012151; Wed, 10 Jul 2024 19:23:44 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h= from:to:cc:subject:date:message-id:in-reply-to:references :content-transfer-encoding:content-type:mime-version; s= corp-2023-11-20; bh=5uyJ/yQEOK6UxBQ0/FsfhFoC0HXOJMLs6pKNlOOdFCw=; b= jyF9I1Mj79jg8frDcIoWb8VdkxOJslQ5bysjbruEs7D1UvZ0sAVWY4tpWVbAIksO FwMypNUaHClWMAE/fzGXQjQIUbMtlO3GagzHiLZB80zDvVdR77oTQ5c6q6iC6b9D 0Z4YDUqZU00+D3GtzetSLqKd7/y3SB0AWc25KIU6ICeUX+JTnBfZdWMH/Nd0B1Hr aehH3JImZpdHgs7z+Z/zVbeSU726LHv/BNdQQY70qct5bWXKzg4j8BkVQDdQTnpy tFBy1/XbaMw4RhUNvPC4bRnMlKlByu2k5VlfKcng1AkMWulvhnVFZHQ+lkiBRD7T +5OOyE6iM4Niu93r+Umgeg== Received: from iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta03.appoci.oracle.com [130.35.103.27]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 407emsyctr-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 10 Jul 2024 19:23:44 +0000 (GMT) Received: from pps.filterd (iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (8.17.1.19/8.17.1.19) with ESMTP id 46AIlfXu010839; Wed, 10 Jul 2024 19:23:43 GMT Received: from nam10-mw2-obe.outbound.protection.outlook.com (mail-mw2nam10lp2042.outbound.protection.outlook.com [104.47.55.42]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 409vv4s3w9-2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 10 Jul 2024 19:23:43 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=WYm4BCVWA8Ab8vzB1YiuvzrZWzTDWZxXh4O+/cRGeqX4P6qw8W9QQRslCYM7kSueRwxzsfY2BS0aSwojUr5WAY0i47XHgIwp0SyFViyNuzCNvbXC1I+kruXwiXgkSYWEiwiPdg5HfO1zFR6F1pGOxH7Tsp2puR4elJpsYSoA92aWf5JrQ9t7YCoiNFrjBLxMceMJKzoPcj7BdG1tTYpcCcQ6NLW/VEfBcqHJEjeN3ovdXS79cpn4gq/ox3sL3PcR4sL9h1xUD74obm6///+NQrn3DDVMfRxfi0xCTcFURppBEUs7mGSgTZNs3pk/8nnE4h5EjOmvizqRz4MoL5TXfw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; 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=5uyJ/yQEOK6UxBQ0/FsfhFoC0HXOJMLs6pKNlOOdFCw=; b=ogoEAf5+klibMiPy/KMpQN3WtiJ5Gw8MlGzmBmbmNN1gzCLvG/gmgNVbrpZfEkVNlesu74/XGpWsJDh4iM/hEMgg1+FkWOIy76V6wcjDtaVVzFbzB+5uMqAUiIYU5vtfNhcmC3sil7oRCvTSOgp+g7M0E2kmE/fNAwG1GEYLIf9i2sRDw+jAvRCnRTQ9kJKs6rBTo6iWWn5Ypg2YRHMz8ldFMKq0qPobwlDaVERv2YCBKi1C2+lZwD0J+B9anRkR/0u7uGpHbvFXLr1UKbqyzkiz/ISOfrnXabj+L2THHd6IQ+2Ux01w9b/us/L3p6r+I6I7k2xQtgUo2YhREwmI+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=5uyJ/yQEOK6UxBQ0/FsfhFoC0HXOJMLs6pKNlOOdFCw=; b=dghHDPoVdHm9jIP6xj0alL/vvpPgLli2kkCACU1rKANK1rtRpliZcunIR9vNcAbFvO+J+Opw8EqGfGNsp7xQ0FP+TEolsPGivjuKRV1jb2Nn37Hc9TLBWOLW9s/mR0yysMFqGBZnjbGehkkLwZXE/PbkoLPioPGbu1xClNcxO/w= Received: from DS0PR10MB7933.namprd10.prod.outlook.com (2603:10b6:8:1b8::15) by PH7PR10MB6106.namprd10.prod.outlook.com (2603:10b6:510:1fa::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7741.35; Wed, 10 Jul 2024 19:23:36 +0000 Received: from DS0PR10MB7933.namprd10.prod.outlook.com ([fe80::2561:85b0:ae8f:9490]) by DS0PR10MB7933.namprd10.prod.outlook.com ([fe80::2561:85b0:ae8f:9490%3]) with mapi id 15.20.7741.033; Wed, 10 Jul 2024 19:23:36 +0000 From: "Liam R. Howlett" To: linux-mm@kvack.org, Andrew Morton Cc: Suren Baghdasaryan , Vlastimil Babka , Lorenzo Stoakes , Matthew Wilcox , sidhartha.kumar@oracle.com, "Paul E . McKenney" , Bert Karwatzki , Jiri Olsa , linux-kernel@vger.kernel.org, Kees Cook , "Liam R. Howlett" , Jeff Xu Subject: [PATCH v4 18/21] mm/mmap: Move can_modify_mm() check down the stack Date: Wed, 10 Jul 2024 15:22:47 -0400 Message-ID: <20240710192250.4114783-19-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240710192250.4114783-1-Liam.Howlett@oracle.com> References: <20240710192250.4114783-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YT3PR01CA0114.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:85::31) To DS0PR10MB7933.namprd10.prod.outlook.com (2603:10b6:8:1b8::15) 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: DS0PR10MB7933:EE_|PH7PR10MB6106:EE_ X-MS-Office365-Filtering-Correlation-Id: 9ef1313c-d9cf-476e-ed46-08dca115cb65 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|1800799024|376014|366016; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?2JUdvlaHNf5IZ+Lq4byPvlnRGLVM2zLWy9j2qD5viYvcQve+o4yif2C8rLgV?= =?us-ascii?Q?ZVbIXzYWB0o8Srg1Fy3ZDG63t5i8xxqvgTFiZI6zbjOliMdnHI6x2JbkEvuY?= =?us-ascii?Q?l3j4fVaa9siXZ6EDE3lmhmV3UfsUmTWv6RfkU+DgG9RFpoBHkN8Lbyhvc/WG?= =?us-ascii?Q?gkE6SYRIUtEwzZdXTRC3xCvJkuCEDUk+RqOrHjP14N2871ySiaQ6er2Nzxw5?= =?us-ascii?Q?MgaDWqamdnvh9NzJrumZwgEWvIJ6dV+4WAg1BRr5/Gq0OvuryQjSuDwXzGmT?= =?us-ascii?Q?vlDUbOVQAV5Tu9s5GdAAOVsdlocaQm+hyGuXyyU3MRXcA2TOsV93pLyyx/0C?= =?us-ascii?Q?NX9uupZAL0eVke5hxA8ogMy8rbl8mPypoy1MYnra0e6ZIWgno2fG/TAyyNKN?= =?us-ascii?Q?YRpgv43k34lrp3CdW2jyG1zri/MLo2Y7YSn5bba9T1tjOX2OAXU3YTXg9X3Y?= =?us-ascii?Q?5967OL+ozBH+SqNb9uD0FRtLBX+zhUTzAcIX2oUwCR4MwNfmnRc1hoQs3F5/?= =?us-ascii?Q?8C74z6gwS1bQIuuxJ9stNQsWSFrWrwKGBIJyrjZtQ0sjl1NOFB1VlZ4cV3ft?= =?us-ascii?Q?AhWvubQSFvZbv06o4tqZ+9ZYtG6L3yyHfuS/V6YUWSR0++nxHQhQZEXB6dOE?= =?us-ascii?Q?9mKasb/1JK/LIDKV1AaB1FFrrM8z0YglztQth6efzZ8Acwp6ogLVTjQ/jLF1?= =?us-ascii?Q?+WKX0OTxUwuVj741409/pz092I90XEVI0s0iTDUQLznCwr4dlpJCEwHTANHd?= =?us-ascii?Q?3xuDr1AELtLRW/B3yPqgOO8Pze+A2GV4F6f5nLjNH7tMNnDzbMueCbdXVr1e?= =?us-ascii?Q?3SOuxqY7gOt3BxqUDV9lkmz/zgReclkq6WKFWLliBqX975Etrq2262y2u2ii?= =?us-ascii?Q?tm9/20C8Su97Xdu1vurn+bRJPT9c4KnPgFpl3ASvVoF/CjlqdEFWOC0RGbkA?= =?us-ascii?Q?KIzYjYjz8N6/JyOE3geDDXQ4lmLmz8oLBEyJNet6epz7LTJ0UOE0+m5rxXP4?= =?us-ascii?Q?zyS6etCIlxE7zHqQS6r7w0CcKjWE0YJkzVpqqCCMgIfrJpdDa8ojejLklggB?= =?us-ascii?Q?/BqknyBsi14S3u45Y5f04hv3hMX9ov1rYdSJM3VXucpaJYPCgHBLclaQ/UM7?= =?us-ascii?Q?oQzMzDOetdNVU9e//Sgr1k0k9fh8PytpHvkQ6P03oQLNxFOuSZFluRumpnPO?= =?us-ascii?Q?hi5h3oPo6eBf63EQs+EmzAyXBwraZPmWSW1gyVy4IRFIVDTc2VZuNnOvdD78?= =?us-ascii?Q?chGzF1hyUlnMzfxNUQKHdnwERNNBGWNjDehqMZ486FpC+xfgTXhP/ylwjN7a?= =?us-ascii?Q?lXTIk9uJyV5JIJfmBNVZHok5k4+tLS/IDWhuzxb39WcPpQ=3D=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS0PR10MB7933.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(7416014)(1800799024)(376014)(366016);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?7wnc51zULSZvHxYANP2lfzy6BRrZFrlbZo0FvAnRme9f4BN0S+EIfAPDdnZl?= =?us-ascii?Q?mas1xIhTKI+bX9xQ06Tzh6w0/DTegyUsLyvRx2FeGh5soCpyycdMeMk5I3t8?= =?us-ascii?Q?OZnm1lL9p5yA264Dl76z9xAG2ZtkbbLMk2HsGFT42STilViaGwePmjfB7PJw?= =?us-ascii?Q?8n0kqMrpmhTxx1IH0MhE8C79zYkHHDx5J7PT66dvQOpVYCkNKIPZi4eezOgm?= =?us-ascii?Q?lglVFCFMWDdvzyXDLeH6TJewA/KGMlWAlnubDJhLP4ZepVvEXXWKZXPdBMTu?= =?us-ascii?Q?9gfvIoGOKzu7WlMw94T0XTsE76aJD086w5cp4U1/97nR7YU3Ez/5i7SyECSB?= =?us-ascii?Q?FEg2WBwFJ2JUNqVrtb4zOTAjp2wmsh4poTCYpo1P+GLyCDTXmWy0eC1RVUPG?= =?us-ascii?Q?Hg7ErLwACc2GMybCcd8AEFxVSVE6FFp30hzN5pMhPF3FLjSsn8Y5IoliAB2K?= =?us-ascii?Q?DOacpZuQ1fWiPReaJg7SKl0U5MD4O2QAW3wmg7QQmxLfh8jgA/yTtXBGe+ex?= =?us-ascii?Q?5aTPGydtKVVBKdQpg3fX30c5W3DRu1OOmCcInnSDe2Lc4HnvlMH4WzTJyusu?= =?us-ascii?Q?io4BPBLql+aSjHzkpgLfbsFbaupm8sXAVVvWUEVhtkEA3fKXzYljC/9RGqG4?= =?us-ascii?Q?5T1YXsTyjQHaWq61Uhede9/xcNRSYOabeoqbaJIdlNVvwUO+D5iv5H7kkXdA?= =?us-ascii?Q?Y5UodEzYeWDCUSZ4u6Kc/Bk+ePfrmvUpz2+2g+kOKTpIg60hSrnMhBcvYSUa?= =?us-ascii?Q?culdrRw1yFIc2xMxSZtvM6a2LartRo6m6H0iildO/Ft0pvJZSQPZhQf/2sc1?= =?us-ascii?Q?AjJED/VV9fokaGe9SDeDJrm+DYh/OxxBOSwDgW5O5QCPudyWCKmNYpTBYd9b?= =?us-ascii?Q?W1YA2msSdOvkWAE/eddTthfr3r6dbPxXGfjOlnKt9azWmmdIzZ2yRWfO68xt?= =?us-ascii?Q?6arjBzosKcmNM/VdL7vi/X36lHuiOsS5oqr6hDBJN3z/9+8bt2FSsBC0yZxz?= =?us-ascii?Q?nU0W9NR+ldeul515b1hCxCS3ROxmMwwuxwjsch7Jr6/w7A7JL0TadgfoOhlF?= =?us-ascii?Q?cXeQ8VXGCwFl1lUoVZRM8QMYOQuNTrkyz2IFJukiv5++Euk0QEwJ8vh3MAV3?= =?us-ascii?Q?evOya9LpBCCig6hg3VvYtICj66hEKIK7HAq6vf7MIyjqYYS2ihfYOGfQvwgE?= =?us-ascii?Q?MJut0JqUntNkjT69ET46Z8bC/rYIuepVxI8JagXxwo+rpgHOw/YAoaBlD/e/?= =?us-ascii?Q?Eog3xHFnnt+Cg0o0Xqw43Stb3YN/05f+IkxdsRkEKTl7hSQ9Rba5r9Hz+8zB?= =?us-ascii?Q?Dd+CrDMy4HFuLRJ2OShL7S66zU1sZTLWicbiqrYAH9LN14YzLaOrzVf0RXU3?= =?us-ascii?Q?Guigsh/nna1Sx9298pvXZBsnfO3rP8xIqEDwDTRlanw5Z0yN9es9lMK04Qho?= =?us-ascii?Q?GyPZ53XIH3/WrmSYtI5cuQUPXoC1D7/GOIdnOpcvxt2Ylk03BqgUbm43+8S4?= =?us-ascii?Q?0EmWzWWfmZET0EeHLd9g62EH01UJr/z+LRB8pReyeTAdOdU1fQPLPLpo8iXt?= =?us-ascii?Q?1M2nmz7XcKpwIz9PY3HmTqXT1s2PmC5sDxJOUV5GwwYEIjrTFzK4fPw2lBed?= =?us-ascii?Q?Mw=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: RRH3ryhYmoFEF4Jn9EDnPMheRbChzy2uTW/xIzdzP2YpmEzThgU9EEIcwce6NvV+ANXJSiXUbFhYEjY7Kc3CRbYeeMgOMQOUckyw0daVUpcK+9m2Q0GbgM8sFcw0mG/Pouj5u5+PCxSxDu46S4dG4e/cexySftnfsZml9UsFuz4t4mV+BDOWcZJ2+C5+8oXtrYicS4Fti/vaYjKww7f1MO9ffreM/jfpxtjOzk4lTogDkSlq+U5w+T1mn/n1vbVIHDWOkmb6Wq6U8R4D4GPUX8DMIRZTNr+mpGExbq46f7Uais/bvVOSDVjqmnu9Pyq4YO9Fo78um7E3nxNDY+nw069un/iAa7Qy11BuccleEjUCxbL9H/qDR0r5Z/FJJhf2ZFsoB0xiiDEM5bY5/cyXf/GBnVgrSf+9d/bNgt10OEzaqVXabO2ucuztXE/c/Gz/m2AEdMmvIHr8wTz/dYL+6XoapvpEp7dCBVnoSXq/XSR++BIKgjk7lDCztHF+EZmVuzos+VT82f0LI7MpseBN84MVqNNv/n5KCPJbrFBHN32kcDOre1o1Q3q1M6TLx4I0ecQyQLYHROxpGjgFPYk7zc3iIEuFqF+cXCxTJD4LyV0= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 9ef1313c-d9cf-476e-ed46-08dca115cb65 X-MS-Exchange-CrossTenant-AuthSource: DS0PR10MB7933.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Jul 2024 19:23:35.9514 (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: rVEObsdGaMrw1TIoCziNi/dfH/DdxpB6RwnUN8FtlBLtqv+YsGUfors/zWLLXJusyqmCzxiTe3YiZ+qtwXiJxg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR10MB6106 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1039,Hydra:6.0.680,FMLib:17.12.28.16 definitions=2024-07-10_14,2024-07-10_01,2024-05-17_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 bulkscore=0 malwarescore=0 phishscore=0 spamscore=0 mlxscore=0 suspectscore=0 mlxlogscore=999 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2406180000 definitions=main-2407100137 X-Proofpoint-GUID: d2Azyu8hUA4IQ7CrbOnTAHCmTHXtFNRf X-Proofpoint-ORIG-GUID: d2Azyu8hUA4IQ7CrbOnTAHCmTHXtFNRf Content-Type: text/plain; charset="utf-8" From: "Liam R. Howlett" Without an arch_unmap() call anymore, the check for mseal'ed vmas can be moved lower as well. This has the benefit of only actually checking if things are msealed when there is anything to check. That is, we know there is at least one vma that is in the way and needs to be checked. Only call the can_modify_mm() in do_vmi_align_munmap() and the MAP_FIXED case of mmap_region(). Signed-off-by: Liam R. Howlett Cc: Jeff Xu --- mm/mmap.c | 24 ++++++++---------------- 1 file changed, 8 insertions(+), 16 deletions(-) diff --git a/mm/mmap.c b/mm/mmap.c index df565f51971d..c343366b3ad2 100644 --- a/mm/mmap.c +++ b/mm/mmap.c @@ -2849,6 +2849,10 @@ do_vmi_align_munmap(struct vma_iterator *vmi, struct= vm_area_struct *vma, struct vma_munmap_struct vms; int error; =20 + /* Prevent unmapping a sealed VMA. */ + if (unlikely(!can_modify_mm(mm, start, end))) + return -EPERM; + init_vma_munmap(&vms, vmi, vma, start, end, uf, unlock); error =3D vms_gather_munmap_vmas(&vms, &mas_detach); if (error) @@ -2899,13 +2903,6 @@ int do_vmi_munmap(struct vma_iterator *vmi, struct m= m_struct *mm, if (end =3D=3D start) return -EINVAL; =20 - /* - * Prevent unmapping a sealed VMA. - * can_modify_mm assumes we have acquired the lock on MM. - */ - if (unlikely(!can_modify_mm(mm, start, end))) - return -EPERM; - /* Find the first overlapping VMA */ vma =3D vma_find(vmi, end); if (!vma) { @@ -2963,13 +2960,15 @@ unsigned long mmap_region(struct file *file, unsign= ed long addr, if (!may_expand_vm(mm, vm_flags, pglen - nr_pages)) return -ENOMEM; =20 - if (unlikely(!can_modify_mm(mm, addr, end))) - return -EPERM; =20 /* Find the first overlapping VMA */ vma =3D vma_find(&vmi, end); init_vma_munmap(&vms, &vmi, vma, addr, end, uf, /* unlock =3D */ false); if (vma) { + /* Prevent unmapping a sealed VMA. */ + if (unlikely(!can_modify_mm(mm, addr, end))) + return -EPERM; + mt_init_flags(&mt_detach, vmi.mas.tree->ma_flags & MT_FLAGS_LOCK_MASK); mt_on_stack(mt_detach); mas_init(&mas_detach, &mt_detach, /* addr =3D */ 0); @@ -3341,13 +3340,6 @@ int do_vma_munmap(struct vma_iterator *vmi, struct v= m_area_struct *vma, { struct mm_struct *mm =3D vma->vm_mm; =20 - /* - * Prevent unmapping a sealed VMA. - * can_modify_mm assumes we have acquired the lock on MM. - */ - if (unlikely(!can_modify_mm(mm, start, end))) - return -EPERM; - return do_vmi_align_munmap(vmi, vma, mm, start, end, uf, unlock); } =20 --=20 2.43.0 From nobody Wed Dec 17 10:46:22 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 38DE6199EB0 for ; Wed, 10 Jul 2024 19:23:58 +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=1720639441; cv=fail; b=GHC5KFKx6kL9BXmShHxpaX32KE3MO6BJ32ixjgkDGAROmiSjd0hV/xZOy5YqJsmFKj8r/kOa4wIKX29rHsU/H8RaqBFcDk/NQMgOXECle5dGnrznDjIDsqXBPawaDS9fumCJynU4YyzPFd+tu/YqtxZJvN4qfqF5K76+r3EtYTQ= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1720639441; c=relaxed/simple; bh=07i3jwQFSibzX/qVQbZ5TzR6u+LZCfNIXvmON2B7WBo=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=OUC26jjs9/YW3wjzobYH+o5ys2zcIMDuEreGtcAGGoOJal04ktqbtFZ9Cjyn3YuAqQfaHj00MCAUbRovB7/J0QnoHl9dbhAXGw/o/fb9KrsVe7wNYPbTgoTuuvj6mbpUzo/ouhO99OxXcahsnDcmxLSKqkQEXFw8CyTXHN3lDbA= 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=HkDpNiZv; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=CVj0QTQ/; 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="HkDpNiZv"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="CVj0QTQ/" 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 46AG2MZ9017489; Wed, 10 Jul 2024 19:23:45 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h= from:to:cc:subject:date:message-id:in-reply-to:references :content-transfer-encoding:content-type:mime-version; s= corp-2023-11-20; bh=Bpx+5nt3hJiamwLBX4gv68ojQ6NnvKXOC8koNrrVhow=; b= HkDpNiZvoTyS0ci1plBmRso2yTmEUNSEbkD+K3dLWtSuIJ/PKr+PXrl3oaKrKW8u tV9Os/oD91STb3pRfMsmjDKy349PGaD2xX+WAVkXwBnHw3wqDY6DT+H5O39oikD0 RnNF5ZY35xAHfvMwkPnNjEa3n47rpso9kpe6JOuo17vjp4KCxbSvKNVxcm2lKe3X W93Nywt9m36xGn/j7lctteYwM9KVOPkRbH7qlVlDDhYEmBEJ2xefjw6Dh+XfQwPS rWToIrCp1M1clBEmmPKmnVgBC9porL6FnZ+/3+F1Kkp/JqjPC4FD8jzazEkhc9RF tdS04gcSH3SCKCap8zBhPA== Received: from iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta03.appoci.oracle.com [130.35.103.27]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 406wybr4dt-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 10 Jul 2024 19:23:44 +0000 (GMT) Received: from pps.filterd (iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (8.17.1.19/8.17.1.19) with ESMTP id 46AIlfXv010839; Wed, 10 Jul 2024 19:23:44 GMT Received: from nam10-mw2-obe.outbound.protection.outlook.com (mail-mw2nam10lp2042.outbound.protection.outlook.com [104.47.55.42]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 409vv4s3w9-3 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 10 Jul 2024 19:23:44 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=AiP3JkxSgxHqvBCsSZz1Q+y9f7XVs3gyphSdRcPmdI/Osp/DyCHL7F4PnZ4uF6DQ/Ikck8wI1hKedwpmiqb/ExwMfZowtxC90II5YqXjl+hovgJEjIVBXLDGrPYTNo7OT3AQwqsM7D+nNLDWPPQTrD4tFbgV9X0b8MdbPJKibc+91Kn/j3AAVZgO1H4vJehHnkl1YG8kOFKr09+PAJHZQN9XMZ74o2KUtnQoUMlAAq8HM04zXlxGlzOSPu+0iBStFQm75NLVy+YMlnUbzjuGv10TVrkPjJY2K7aqSoVesTYYpEksDmzCyMTep2OhIfsbpBAc3GLeJhV95q47vFCt7w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; 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=Bpx+5nt3hJiamwLBX4gv68ojQ6NnvKXOC8koNrrVhow=; b=CwvlxWfn9YJ0e8K2GLYHZa+q80kKHYBxbtGzA9TkA72qtNX/9OnCvQu32/KmaPcQ/cxNRed1jLnq72zCaxSnh52utP1XthNQ5ZXHVPI2xqWxk3dpLvUBmzyUCjrkPfFCcY/L5hwJOkfD3LavhpiNYfjT8KwjWwOW1NnlkqRMmlCiK07EQ4tKU8RToA/TOjB/EfHCPB1IHw7zJ3f1KSX/+xAEWhO/SMrN7hSspzIRP6tkO62NmFtUW1auFiLFZ8ydURy33Hu0KaQX4SswwxCmZ0S4i1SpGFYLKzmHxx6WULv2j14AUoeW4FHz4a40cHHl36g1Qm1jH6QtBZVXuRloEQ== 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=Bpx+5nt3hJiamwLBX4gv68ojQ6NnvKXOC8koNrrVhow=; b=CVj0QTQ/NtNtmscxE/mQ667xCaZ8are3W9P6GiU3lhExOXTF/Q8unEOaTfWzyNNro3Xn1YUjfl1kKbMNx4vfaUZaeAtH3PWOhGPULyeP0TXs/J9MVbXUMDr9mH3qsPuqrKaVB9FNlCwO5LUC1VD039HX/7igpSyHYDTuBue2fKE= Received: from DS0PR10MB7933.namprd10.prod.outlook.com (2603:10b6:8:1b8::15) by PH7PR10MB6106.namprd10.prod.outlook.com (2603:10b6:510:1fa::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7741.35; Wed, 10 Jul 2024 19:23:38 +0000 Received: from DS0PR10MB7933.namprd10.prod.outlook.com ([fe80::2561:85b0:ae8f:9490]) by DS0PR10MB7933.namprd10.prod.outlook.com ([fe80::2561:85b0:ae8f:9490%3]) with mapi id 15.20.7741.033; Wed, 10 Jul 2024 19:23:38 +0000 From: "Liam R. Howlett" To: linux-mm@kvack.org, Andrew Morton Cc: Suren Baghdasaryan , Vlastimil Babka , Lorenzo Stoakes , Matthew Wilcox , sidhartha.kumar@oracle.com, "Paul E . McKenney" , Bert Karwatzki , Jiri Olsa , linux-kernel@vger.kernel.org, Kees Cook , "Liam R. Howlett" Subject: [PATCH v4 19/21] ipc/shm, mm: Drop do_vma_munmap() Date: Wed, 10 Jul 2024 15:22:48 -0400 Message-ID: <20240710192250.4114783-20-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240710192250.4114783-1-Liam.Howlett@oracle.com> References: <20240710192250.4114783-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YT3PR01CA0135.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:83::32) To DS0PR10MB7933.namprd10.prod.outlook.com (2603:10b6:8:1b8::15) 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: DS0PR10MB7933:EE_|PH7PR10MB6106:EE_ X-MS-Office365-Filtering-Correlation-Id: 3413d912-e0ec-48c9-e5b4-08dca115cc90 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|1800799024|376014|366016; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?9U1Whxo0UgPiBfA6sW1y61ZXXAUtRIVQyLrS5IF6+S2wblEoXZmn9vxdtVJu?= =?us-ascii?Q?GdSo/pCD3QU8nhqQSvNcwjSSQMKXScVuW5guuVgLWg1m5N23uWZxQoP1tgMF?= =?us-ascii?Q?32hXBIdyIfVY5NHb+BGf30Xhwtu6ArhbYbJhdhvoEKYYs0DUc6hcqXK9w9De?= =?us-ascii?Q?uOXcQWAHzq9DgH4/Mmgv2yScAUTbtB4htGiKKjwzbPRj6GqM0L0NKJDf+RHe?= =?us-ascii?Q?zfSsCcw8MyaKpAlMgC+oqToyD0SBY2uZPBI96oym9w9YKCbwlhjckx1Pp9wO?= =?us-ascii?Q?lNyP1YYZUHXgAD9SAyxc3zl8NIEukxC5Ua6ykR8gRQdIGGmrDnjU7DQX9w6k?= =?us-ascii?Q?W+cIeCWEN8YINMDDVD7BvIBCWJevsQs7oUMl2tOA3mMQzqYCycTCQBGwoO/f?= =?us-ascii?Q?2pvsNdNd8qLkwJq40TfKEqkw1k4Qt7bdSd579FsiMZhoRvCk8Yt/B1VhGpqe?= =?us-ascii?Q?KIjY1dzRJl6z0w+inFp3iHIIpaYK/UDDaPxAl09bGLdpCtTwyydcAaELO0RY?= =?us-ascii?Q?LgLnmkeln72j7FvnkNp0sYk3bvmhLzdZgvHY+cyac7tdgR4+I1RPb9pIh8pS?= =?us-ascii?Q?N6WX1iAi3h4w+PwAuARz82kTzHVBcJFwNqF8hpOvonLvub7FJIv/ktU9oYkN?= =?us-ascii?Q?3uYUbyQULXX704mob0wyrjPQKEYJNDltePqNglwxkBP1zFpls2EwtVqW3Wej?= =?us-ascii?Q?y2V951/nQV980NkoaZkSgSsdKGZ0oxF+XwMhoGPEh/TZYmx1PGKYhivk7qib?= =?us-ascii?Q?yEf+7lCZNvZSso06PK9AjebLhsIKQeXYRRygSzf6rcXlvEwnKBIwfB2Y4hN5?= =?us-ascii?Q?pCX2pBM8orEP2rgisPBP24rrLMhZZ6BA8VDbr+5jTxLCy4T46aAYonK8pIWc?= =?us-ascii?Q?1VprzHVBzte02lYNfNhSPOmSj5Iq4QJdyB4e0X9rSc+Frm8KfX14NeavSdWz?= =?us-ascii?Q?fO5L7p9EGqfCjG58a/013q0iwhO0W3+EcPuE8L0BnlSnF9z7EkA/Ji4OBIze?= =?us-ascii?Q?RsL9/7Z+3AfyN7BlQeW0FVZ8Rb7ITPT9hUxI6K3hGjkUwR5LYrUnJVcgyU/P?= =?us-ascii?Q?dGgv/5ez2VN1M/qLi/xNC2mM8bqSy+DXT5c/yMyH85LP048vgPSzBI2GtYFv?= =?us-ascii?Q?rB506TChQ3QeBW4omklKLSQ8GmF6eLBmN83VJcGUQZtpQZ0loU3hEqwi+2u2?= =?us-ascii?Q?JDnYzipmlzeFJkimghGYUcNDO58Myt7CnVfSEc6O0nmdQXFSYTHSKAjMtrxp?= =?us-ascii?Q?juBXHt5XCNfq8Wqk2TPIal+JIlQF/8O6YfZh730SSb/8SCLexhDCXmWsK9il?= =?us-ascii?Q?GHxkjqM5G5t0QTIR+UPJ8f1fAOHPL0KAnVAfflbu9Z0kQw=3D=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS0PR10MB7933.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(7416014)(1800799024)(376014)(366016);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?iFsWf90qc9YJ7vBAasN5sgryyf1ltZ+ab4nzeIc55mg/3BZU/iS5P1HzDny6?= =?us-ascii?Q?9c1QY7/ey7YfHSZ/0olTFXqFnEEtii7V/+3++XzPYGHldWxDyIt2Rf6Qv4KI?= =?us-ascii?Q?sF0ZyzaXy/djFQQqjbKSVzVzGnKlUsnwzXEXsELvGQR+caCtyfSWxGscJ50F?= =?us-ascii?Q?sqO6S8BhBkHMI68c7RYBD/hvWVdmLQiwJwzkcZ9MTq7gJ+zj1RfoVAOO4ug0?= =?us-ascii?Q?EWShzHSYzzw/HGOxZn021hgmNS1hOu6EDPL9Ur5nvoSrJjtKWQV6QmuuZVYG?= =?us-ascii?Q?w+X2PPKPkxE23Vqjq7BnlSwC9Lf4eaxhyAwippxB3RkCWlZIII2Pq5EcQz1G?= =?us-ascii?Q?OFkGAyjX1C47oi2szYEsIemVPx8B+7R+mmE1ImNbnXhyspXfB73j0u6p6erw?= =?us-ascii?Q?9edw6GElHD66L47SEq+KuPcVEVdxof3huKKbV8qLa55ws1ewddxVtyvcOS/+?= =?us-ascii?Q?mZLjNWSiGjmCMw7cMV1l7w9Ab7DrE1/0grARwy7Uc2rfUImrxbert5YxWDNI?= =?us-ascii?Q?+s40tO9zRFmqJQ4WpDRgtj1e2gj+iIyemUL6GAbhOD4epW098PqLwIugrpQY?= =?us-ascii?Q?ke1UNxlO2TVHecZqh1sFZ/PY04q13yfmMXBXtLyj6C/iumdP8DXtQSLhSE1F?= =?us-ascii?Q?b1xeN7bVrcXhwveTLMpVbTUPc81RBHQpR+P12yVIksbPyNLO6C4y7ZPUJz+A?= =?us-ascii?Q?YJnW6ctlJQrIjCgjgdHdg3mUBvL8M2K0aK+dYz6mZ+YzXsSQpec6peAw5cpf?= =?us-ascii?Q?IhYVViCbHLjhieVg6uumQ9+oYN8acT3WyCBZwGRXu6t0T5Y56lTJ2LOewtbt?= =?us-ascii?Q?lTDJQdP1LxVLmqDOTcpMdUXhXNkHTQCZ5J2VqOdHAPuv+mTnwm0W8lO6nGNy?= =?us-ascii?Q?+fxJEOx1KUagUo1D/ySdYZDFyjTHubcr5XyvD6UTVGl4F2DvUZEzdHFAC3LH?= =?us-ascii?Q?EXgqLpGlY7KWyx3cDmmwNVIEA5gJq0ZFmZDrDJuHezF22rR6EUVIb5NDuaqw?= =?us-ascii?Q?Dvc02dYlYdMrnWkdSDGM0q375MDDoZvJIt5AIDQcluTZXVZCXaPSjOkaqozv?= =?us-ascii?Q?d27p+6EUZkEkVcw6MWqH3iGcInHW2emaXKHDLM6hlHY+2JO8LDc9nqOkmX+P?= =?us-ascii?Q?4TkHwL9w5y0/TyuHJ6Q5qywtXYn9nOWgYPkZ+iIn39TG8WeRLXe2INx5FM6g?= =?us-ascii?Q?6BfdA2iWCkJAO8F2Hxr5MTU1V9w2ZKOv4nteyoXPXUCSO6S77cwI0smFGC+N?= =?us-ascii?Q?a1CbvkskfcQdJ3Ll82YsMIgK7SJgi2QeJl3vM9xJ61mVlsbfJcX4pCXtS2nc?= =?us-ascii?Q?1ZEsrxiSRo3ayZKUmo56W/nVD8/tDFYtFkGtoPM0ucnX1zF6md9uM+7tmUvp?= =?us-ascii?Q?5YpeC0bWkRb+o5GB64+u7YjlQM3Hew/JJLSxj9LXAGewl9QpZGZfI888Rp8L?= =?us-ascii?Q?36bC5gokaGps4qiQniBKRmisM2/Z4ugIzLYmvnpLPRUEZsJbsqb3qVVjWWkS?= =?us-ascii?Q?a8SnBvL/JDDN4pAWU1elz2+I515KlopLPWBl78N5PnGi//co+0obqrIONdqJ?= =?us-ascii?Q?fToFgT3Gzda51Puj/IAGBP1G0l1uFbdcZ8DngXlevNAqU1e9xeqVFiYOBGUI?= =?us-ascii?Q?4g=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: QsRfH5p7mAWDoFgLiUMLQUCn0vL/VDqGqgk7AqtT3ma32t82UtE791hGfNLpFbqM5J089Dpr4rD7nOPFyUVcDA5y40fwlYATTj/GcP3oU6fnaQ4zW8SwR3v9RQWNl6Nkm7SGTsGVpeklqFq/Cz2QAt1Q92Q0LExG9bgbsb36HEFdTAuR0VebAmVbHqtNlxcnFlbPdny3+HYf7C9a0Dyqg1o0mh3F8l5Hn40lqniLa/wsM2t52Rb6QG+Egrw24cp5T5RHFZgmwoQshNFy33DJNJInLRtab3f739jYp1U5HI9GDpkpgLz6kt2h8cSXGkQZB48LOaZvV97oeR6TsJfuflTy9ir2yxU3Kf58rYCERzny2e3KKh5UieMOIc1s6GyRiJGP4A8CtBG41UFm7CChHwkXCI+E0wP7fOebJFmRgluSXPuptrAZ/IQlTy7BNCFu3p2gyS8m+yXM09bWvHPEOrCL4purYZ+Kw1PjJCc/ElUsshakg6IqfHqPqeKw9sRbiB9ldTsaDigpKZv1m4VSLXjZdB2oFapXmiTqaK0FxZag7RJAEQC1DKWn+IjD0/HVLycFIAWiZ/1NzE4L8zlF1ZZHf9XU/8G6CGuylDBa4IA= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 3413d912-e0ec-48c9-e5b4-08dca115cc90 X-MS-Exchange-CrossTenant-AuthSource: DS0PR10MB7933.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Jul 2024 19:23:37.9389 (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: i2rQz9TCfj3FZY/eQ/mPhd40nm/fs7HyDlHFIFP2cbIvjfPI/sk3YPwMo1TYlx1SK98j7a7zj3pnjpC7qhCHZg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR10MB6106 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1039,Hydra:6.0.680,FMLib:17.12.28.16 definitions=2024-07-10_14,2024-07-10_01,2024-05-17_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 bulkscore=0 malwarescore=0 phishscore=0 spamscore=0 mlxscore=0 suspectscore=0 mlxlogscore=999 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2406180000 definitions=main-2407100137 X-Proofpoint-GUID: 1FcKdfosRXhYOwXFQVBbYeag7KEW4t-q X-Proofpoint-ORIG-GUID: 1FcKdfosRXhYOwXFQVBbYeag7KEW4t-q Content-Type: text/plain; charset="utf-8" From: "Liam R. Howlett" The do_vma_munmap() wrapper existed for callers that didn't have a vma iterator and needed to check the vma mseal status prior to calling the underlying munmap(). All callers now use a vma iterator and since the mseal check of can_modify_mm() has been moved to do_vmi_align_munmap() and the vmas are aligned, this function can just be called instead. do_vmi_align_munmap() can no longer be static as ipc/shm is using it and it is exported via the mm.h header. Signed-off-by: Liam R. Howlett --- include/linux/mm.h | 6 +++--- ipc/shm.c | 8 ++++---- mm/mmap.c | 33 +++++---------------------------- 3 files changed, 12 insertions(+), 35 deletions(-) diff --git a/include/linux/mm.h b/include/linux/mm.h index e2140ea6ae98..40f1db1fb233 100644 --- a/include/linux/mm.h +++ b/include/linux/mm.h @@ -3400,14 +3400,14 @@ extern unsigned long do_mmap(struct file *file, uns= igned long addr, extern int do_vmi_munmap(struct vma_iterator *vmi, struct mm_struct *mm, unsigned long start, size_t len, struct list_head *uf, bool unlock); +extern int do_vmi_align_munmap(struct vma_iterator *vmi, struct vm_area_st= ruct *vma, + struct mm_struct *mm, unsigned long start, + unsigned long end, struct list_head *uf, bool unlock); extern int do_munmap(struct mm_struct *, unsigned long, size_t, struct list_head *uf); extern int do_madvise(struct mm_struct *mm, unsigned long start, size_t le= n_in, int behavior); =20 #ifdef CONFIG_MMU -extern int do_vma_munmap(struct vma_iterator *vmi, struct vm_area_struct *= vma, - unsigned long start, unsigned long end, - struct list_head *uf, bool unlock); extern int __mm_populate(unsigned long addr, unsigned long len, int ignore_errors); static inline void mm_populate(unsigned long addr, unsigned long len) diff --git a/ipc/shm.c b/ipc/shm.c index 3e3071252dac..99564c870084 100644 --- a/ipc/shm.c +++ b/ipc/shm.c @@ -1778,8 +1778,8 @@ long ksys_shmdt(char __user *shmaddr) */ file =3D vma->vm_file; size =3D i_size_read(file_inode(vma->vm_file)); - do_vma_munmap(&vmi, vma, vma->vm_start, vma->vm_end, - NULL, false); + do_vmi_align_munmap(&vmi, vma, mm, vma->vm_start, + vma->vm_end, NULL, false); /* * We discovered the size of the shm segment, so * break out of here and fall through to the next @@ -1803,8 +1803,8 @@ long ksys_shmdt(char __user *shmaddr) if ((vma->vm_ops =3D=3D &shm_vm_ops) && ((vma->vm_start - addr)/PAGE_SIZE =3D=3D vma->vm_pgoff) && (vma->vm_file =3D=3D file)) { - do_vma_munmap(&vmi, vma, vma->vm_start, vma->vm_end, - NULL, false); + do_vmi_align_munmap(&vmi, vma, mm, vma->vm_start, + vma->vm_end, NULL, false); } =20 vma =3D vma_next(&vmi); diff --git a/mm/mmap.c b/mm/mmap.c index c343366b3ad2..18c269bf8703 100644 --- a/mm/mmap.c +++ b/mm/mmap.c @@ -268,11 +268,12 @@ SYSCALL_DEFINE1(brk, unsigned long, brk) goto out; /* mapping intersects with an existing non-brk vma. */ /* * mm->brk must be protected by write mmap_lock. - * do_vma_munmap() will drop the lock on success, so update it - * before calling do_vma_munmap(). + * do_vmi_align_munmap() will drop the lock on success, so + * update it before calling do_vma_munmap(). */ mm->brk =3D brk; - if (do_vma_munmap(&vmi, brkvma, newbrk, oldbrk, &uf, true)) + if (do_vmi_align_munmap(&vmi, brkvma, mm, newbrk, oldbrk, &uf, + /* unlock =3D */ true)) goto out; =20 goto success_unlocked; @@ -2837,7 +2838,7 @@ static int vms_gather_munmap_vmas(struct vma_munmap_s= truct *vms, * Return: 0 on success and drops the lock if so directed, error and leave= s the * lock held otherwise. */ -static int +int do_vmi_align_munmap(struct vma_iterator *vmi, struct vm_area_struct *vma, struct mm_struct *mm, unsigned long start, unsigned long end, struct list_head *uf, bool unlock) @@ -3319,30 +3320,6 @@ SYSCALL_DEFINE5(remap_file_pages, unsigned long, sta= rt, unsigned long, size, return ret; } =20 -/* - * do_vma_munmap() - Unmap a full or partial vma. - * @vmi: The vma iterator pointing at the vma - * @vma: The first vma to be munmapped - * @start: the start of the address to unmap - * @end: The end of the address to unmap - * @uf: The userfaultfd list_head - * @unlock: Drop the lock on success - * - * unmaps a VMA mapping when the vma iterator is already in position. - * Does not handle alignment. - * - * Return: 0 on success drops the lock of so directed, error on failure an= d will - * still hold the lock. - */ -int do_vma_munmap(struct vma_iterator *vmi, struct vm_area_struct *vma, - unsigned long start, unsigned long end, struct list_head *uf, - bool unlock) -{ - struct mm_struct *mm =3D vma->vm_mm; - - return do_vmi_align_munmap(vmi, vma, mm, start, end, uf, unlock); -} - /* * do_brk_flags() - Increase the brk vma if the flags match. * @vmi: The vma iterator --=20 2.43.0 From nobody Wed Dec 17 10:46:22 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 5F3AA199EBD for ; Wed, 10 Jul 2024 19:23:59 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=205.220.177.32 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1720639442; cv=fail; b=GgrQbxffGHr1yxvpEIORkLgL83k58vNpNcHNLrZyAmTpye05SfkScK7U/kKafdeftjxlZsHKp86z8n4w9Us5Wi3yNFRi6WYuZxpzrymss81XVoGFePnUMdgBl+gVm0LqsFHuSBpfLgJXIJNdx3epXyFdQV8xQfGCJMOGlfCZKi0= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1720639442; c=relaxed/simple; bh=ccNvsJjLiu5sdXDCgjbZojyXNc/oAZTUclMTtoy/sYA=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=C6o8Mi0wYhX9uGQW/2adqzeUP4Qp8vH4jA0y+tDOBfKbfKxN4dIsKGKgsXj0EmT5XrGw/BEIcnXcgqFsdf8Uqx1yeN9XV4yJ5yBela7KZnp2wwhM7dw8kP3MUM6o1T2tV2lYUx4gTK2Z0+LJV5oalfF2T56l2LaDW58LMtTL60s= 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=EYKbQRth; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=j0xantRZ; 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="EYKbQRth"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="j0xantRZ" 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 46AFWakw012654; Wed, 10 Jul 2024 19:23:45 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h= from:to:cc:subject:date:message-id:in-reply-to:references :content-transfer-encoding:content-type:mime-version; s= corp-2023-11-20; bh=R4F8rao3MjayBNoKJIVe/EoeHe5UK5E2GYhCX8D9hFU=; b= EYKbQRthbj7NQZ6eoauLLT9CJ/L62ZLEYdT1i4Y4oLUOKmF2mMTp2lKuFV7W6zC+ WyvDwH50Smg4hwWkQOk9DybtQCwgXedy7y1GY8pH0vmIFrABc1mBhre5fiGzeQmd bq66Nx+3heWhyz/XAz/J0IdnSymaZp20li//E0QSYpsGArligRsFaHwGp9J7csR+ g5WQNp8C52aYmGf9eoLVceAeF1DdFiWFOsD30PKUKz1EN+uDX6QNvMJvKHA0Bv7M TV5foTjn63QP4S4+u4mMN8xr+MpMUKnpgeOz76gJ4pLRTQ/G6qf1oAYxryypVZVA OZDbFY9xeTcnxLCJGmNjVw== Received: from iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta03.appoci.oracle.com [130.35.103.27]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 406wkcg0c9-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 10 Jul 2024 19:23:45 +0000 (GMT) Received: from pps.filterd (iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (8.17.1.19/8.17.1.19) with ESMTP id 46AIlfXw010839; Wed, 10 Jul 2024 19:23:44 GMT Received: from nam10-mw2-obe.outbound.protection.outlook.com (mail-mw2nam10lp2042.outbound.protection.outlook.com [104.47.55.42]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 409vv4s3w9-4 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 10 Jul 2024 19:23:44 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=bfXuo6kL6+QoquwV4ZdshoB/of6oLtHSggFhL3whxQXQoyuiYC82Nm116SBYUyJZVxu9rxD6aDG4btii9fiRMxJC7UKC1Fxx4iN8KKKhsySWprEvRMMvCTRgdZEbkl6M8wzi2C/poK2z9ZZ5CdH+o1OxIFsG/pBFdBadk/QF/x2VBTCtklOYjFPVkkHEQ7/ZNvjb0T9DEoPLsu+PRb9dkeLNfwe7hOGJDzqcF23+KLMw6MCPnXiTSwViisUbIZXSOmBwe9HtIihwcERKMk2f1nlKpZa43ks7NIrOggiWVdUjpYaQyQsAF7X7AOpQw/1QJp3gY86WCUxxGgII5GFGmg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; 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=R4F8rao3MjayBNoKJIVe/EoeHe5UK5E2GYhCX8D9hFU=; b=WabtkdCmFD7Vdvl6+tsxNQnORSX6TCDHe1sojUFmYxHDfNi5A278LAKDs203skXhNN0WaQ7SJa69Y+xeRL39gIf/ADknlWuEe1jzls4rtP9ZDCvaALXfuvm9qOmS0LaD1jDyw7pacXMZV4vScIKW4cVgufyGvx64rpkbQtwEaCk+BOg64+Iw2MA23Oo2KFiRzQ136RBbodTX9B2xZlu8FNj1Z5wfBT4Okd1A9jcdDM8BZPhuPMTtIHkGnbni8KAKS2+U7HUm7tkLC4rU3qrPjma9D4qNf9+aTyEk+wtM5QT/6UDllZemVKBHgl/MwM1Y94TmMd0NZRbRoskKb/oKEQ== 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=R4F8rao3MjayBNoKJIVe/EoeHe5UK5E2GYhCX8D9hFU=; b=j0xantRZF7nRYg3afkJ2ksqeVYnHN4sVaCtgO1g0IULyTGcy6LzJfk3x2aGZyiumyDFberlTtthTnZKT36GPFyHOO8mQX9CbFKbc7DazNZNdEzvVL6KbFDq3qWd9z/BQrUBa3XVo0J8D0qd8sC+qPAYUxJ7iHPhw8FCiEwpXa5Q= Received: from DS0PR10MB7933.namprd10.prod.outlook.com (2603:10b6:8:1b8::15) by PH7PR10MB6106.namprd10.prod.outlook.com (2603:10b6:510:1fa::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7741.35; Wed, 10 Jul 2024 19:23:40 +0000 Received: from DS0PR10MB7933.namprd10.prod.outlook.com ([fe80::2561:85b0:ae8f:9490]) by DS0PR10MB7933.namprd10.prod.outlook.com ([fe80::2561:85b0:ae8f:9490%3]) with mapi id 15.20.7741.033; Wed, 10 Jul 2024 19:23:40 +0000 From: "Liam R. Howlett" To: linux-mm@kvack.org, Andrew Morton Cc: Suren Baghdasaryan , Vlastimil Babka , Lorenzo Stoakes , Matthew Wilcox , sidhartha.kumar@oracle.com, "Paul E . McKenney" , Bert Karwatzki , Jiri Olsa , linux-kernel@vger.kernel.org, Kees Cook , "Liam R. Howlett" Subject: [PATCH v4 20/21] mm/mmap: Move may_expand_vm() check in mmap_region() Date: Wed, 10 Jul 2024 15:22:49 -0400 Message-ID: <20240710192250.4114783-21-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240710192250.4114783-1-Liam.Howlett@oracle.com> References: <20240710192250.4114783-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YT3PR01CA0129.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:83::17) To DS0PR10MB7933.namprd10.prod.outlook.com (2603:10b6:8:1b8::15) 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: DS0PR10MB7933:EE_|PH7PR10MB6106:EE_ X-MS-Office365-Filtering-Correlation-Id: 92ed5a95-e31f-4c7d-90dd-08dca115ce07 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|1800799024|376014|366016; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?wUJQwqx9tt5cfmT+qnVeW7vpEzE7yLYJQ5I6/NIGBy0dhKLvLgkYMQC0IHTF?= =?us-ascii?Q?a6WG6BuEH6MwIqAQCz1I15WmoU04rr6P1fQNFugym+c1r24J1lX56cLjmV2T?= =?us-ascii?Q?eoZSQ5oFotyU7Z0sizADm3KnXc+c5VKwHuEkG+0B7hL1wWqFuXbLTnqdIghe?= =?us-ascii?Q?Tmlpsp1BbogJOroGqN4V86YBn1bdM3eaGvCgIkW1/cVVCQIBi7X7cjLsvTdQ?= =?us-ascii?Q?/rkj5aJyb0ASRkFa3ORAEfVdVIzmFLE3mZnIkQFlN58C4Y38ZqZpV4nP0N85?= =?us-ascii?Q?SLX+VtGKIh3gwjn2NcippWrR4ozaePzAIQseKHkiLZqEXv1TsJ6Ldbc7m/c4?= =?us-ascii?Q?QcjfntrlB3ll0Jf1maXMQphv97OfUSj6nqxg9JCP0Byf121Aj+z0buVTFCcJ?= =?us-ascii?Q?isdLEI5l/F4l/1S1edrbuk7gqqWkejgAvU7k6zAhDPLGiUeOwOnT3RFogMwf?= =?us-ascii?Q?rTw+PTVNwLsY3X6NVxFGedYBuxha/kYJEfpgCeWmGV2uJDK7VfXVlsk7h3en?= =?us-ascii?Q?F+zPPwuxhhliy1Ddog/3/i/W7gTZ8KTmWCwJ84Doln5IE1jkaJaqbUmc9GWW?= =?us-ascii?Q?oxGKlL0PfoWRbZY21Rn8jVNvdUJqz17d53r6NtU6lEiuQmO9xfsO9CECyZSH?= =?us-ascii?Q?2hgzMbdLAzRZpgtnKWUeZs4tL7Ts69I1E5+nzFutvo7YiOoTBSyyokHhg6m0?= =?us-ascii?Q?1BCULgmmIsrGAnLL7aSEKCLwqDpX9heub5Y6yccNawlF8PlxSw48xM0rU9fZ?= =?us-ascii?Q?9qOzz8J/RJHQDQiyOkP4rKfWVpNcwS0umbbKpNKg9lAW4mvo4jLlSjR7Ysx4?= =?us-ascii?Q?oNi8BQb7ITqvdy9IWeVNl4n3Pq579vNRf9r45KC4bYjj2YhsUjFih2bnDyIf?= =?us-ascii?Q?KBx4oQEolxofJs5YRV0bwLgpaXyj6r0qLIwmicncMWA5qpuavGGW851yi8PJ?= =?us-ascii?Q?vuxDtq8WeUvemBH/GfzvDUqF3s9I46RGdRWGNWWPTklhP7+rY8u4YDb6gJ71?= =?us-ascii?Q?4J1ivxo9OIGfEC0r5fbfnMtnz486BpOqR5h/lXDej8JyP6YUzfm5hS3wpHt9?= =?us-ascii?Q?TRi7GaKtm2/uVuxS/VF7IWLibQgcFXd2MTCidb84LRh7iK+XXTwVnKnH0GWP?= =?us-ascii?Q?eOOu83N3cjh9ZzNWjzX/32pvlx3LgNSgsjuOrT8HR4bO2YFd3OEPDeqjGM8k?= =?us-ascii?Q?FKYSW0wKila+nnbDpYbeX/4rbH+FWEncklbvE1jVE8ZUJcAQXR4gREyR78Ds?= =?us-ascii?Q?GipKlT8rRSXqeDH1H8Cq1EfT7p66n9R1IOvPAwqrfpcGU6CaUmaVYhSd6ktu?= =?us-ascii?Q?wWMfsfqnfEEiNTx2wC8/Jwpc0zOifGSjYYkfPubIBG4wfQ=3D=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS0PR10MB7933.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(7416014)(1800799024)(376014)(366016);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?9FGTzLTqorJSnDScjEfMjeCn9mJITulKc46XZ/GHtplnktZYMwBG+ZDC7www?= =?us-ascii?Q?ye7AtqiMhuw/YO/TRgOIY7Un7uG2OnPQQh20KldBTmv2zHxphoXXFyprF9kB?= =?us-ascii?Q?YjCQZ6u5NtpI4YxCg5mqPlPYLIuc+AFoLNxQmjHdhAyVm3UEN4+hHVkw9Pzo?= =?us-ascii?Q?+fUI0U4pybM8O26C7/RzMD8nJOWFOqgFX5pnhLKvfJTDuNM5LLCX8r/QB32l?= =?us-ascii?Q?DdHJb/DM0DFloUqvZx91q477vsg/jR/M2efIqclbuYDny0j4l8Wo3+E9REHx?= =?us-ascii?Q?n+bSEZkyQfZnGvxuU1f6y9Z37NIgwV9GmB1gWJHbMr8Ea/rvsOzGcUJj6Fgj?= =?us-ascii?Q?DSRyhE1W1qUV3IwxKVu+k5kUr+7z/YOxKioY6/dBtk94QeJ+nerncNrhmavC?= =?us-ascii?Q?IhmQz0gc0Fg/gyt/18bTJySQ9Ctn05NHl9IqGMCvAU55FXeQuJ17OlR7cpkY?= =?us-ascii?Q?LCmVN/J3da60kW319xAMSYFMIT4Ei4XZQZum2g50VJgCB3j4D3VVkBnpZ5px?= =?us-ascii?Q?idp0KCVCE7aEaxKRai1uonXlJlgchZuCix1OYrwt2bWYdJsrR/p69O0T06Xp?= =?us-ascii?Q?Wx0A+ZlyVl/gEca6tlQrekhu2bx2GTRTCQ8qGVwg+vHm+PJELH6fQ2Lmt93/?= =?us-ascii?Q?rAS4d5kMRGTD7Eg5uH9lCawTsu/KdN54TFcN3wHmdMZG4OckAEdtLj/ucQG5?= =?us-ascii?Q?OLaMTvmpYMLxuAzZbuIQBiPtoKgeN+wIU6CR+uSqcN5BYv2iPR3Sg8HItPDA?= =?us-ascii?Q?dBHNHdD9eujommpCxkmKOW3RxzQUQ+yAhiR4gDG3Vgne2Pb5NyFwbw4WGBK9?= =?us-ascii?Q?2KbeiMw6bpxdsyue6I8Xx8HFavKqQAM99Rx5NQzpc8g8y+G380NOqpQ6oOa6?= =?us-ascii?Q?iEhOTtRNdCfheKP5lh4rkRw46MFtjlQtaM7Mu7+DdUZojkVCjOLrBrxddiQK?= =?us-ascii?Q?gBgT0Q2E/wM3TYnMgi0huqLv9GCmF5SVXjs3T/tjIWs4bB7+YABEcyrxz3Oi?= =?us-ascii?Q?gB5jSubZoDFeSkmoBzKMjoAk+PRGDzLZB75FGsvTfkycSAmaoKMtfdOsCp2B?= =?us-ascii?Q?I8qboE7rQnYuMufgdGMPNw2y6rl3qz6V26hwBosVBe2TGx3p16T3W1GPzi9A?= =?us-ascii?Q?iBAMiVxugyWYmSTIY7XxcFfY9H7cvawCNKJ7vJfCOOMOOiDTEeU8uoYLNhMH?= =?us-ascii?Q?2uv4Y7Ng5yXQhV74qxTgIeimtzeO2YhroUX8+n5PegIWy3dkXKVWNIrTqft8?= =?us-ascii?Q?QuxUcC+hifx3kd7DD38e+7BfOPx+pAmFeLfO8GQDg4HbGaexwd/PMNcVNhVl?= =?us-ascii?Q?H47z2AV8hNRJlpZh6VK16NVyvWDgaytE8M25+T/3LFcpnvfuhAQFIdzCzUfu?= =?us-ascii?Q?dmTUDggbLKrzDMS73iD/jSUgHpvNWcBQITKygvud+YQnT/iZspLyAbZOgBR2?= =?us-ascii?Q?QY08yzfncMn+YePVvxr9unOHVJZSgG5/rHeCcOTbBEIf9GPz8mdCDsEQ278N?= =?us-ascii?Q?fn09ykc2ILjIkZExo+aXuQI9N8fCjxicZ1DIrKJLlYZI9ZABk069kye8qJm1?= =?us-ascii?Q?fr28ITQweVN4zf/aXiKqBx6NLneGJw3o73QBJ6jE3BA5oIAmj4RXbJqk2oVy?= =?us-ascii?Q?Eg=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: 5jfqwHu3kvgcAmLQUf7B4pvkmIg9GmeILMP0sH4Mgp2vwZt0fMrjJ+urX7XWmbqGM0SJGYfGg/MZgotUIu6fpKb0tOiqWfDhDk2hIM4WBsj27I0bYubk/dYnqH7hS4Bxx9+kfdM3akYaNawDQ8Tkh84YVgPqeslS2mz28bDjk9qlGHg8Fh4k+sKrSZuZ7stRin1S8n0xTZzWXBIBziSL/p7jEJXsUPjdXYcpurK/HfPKKgR1e05z5NOEbhcX6wX3nyIRUoByG8/PRVuvaOOvjnGTOd/nTJnxV7MpTvzHIbSCRBsrc88xJSzsQ6IRo4CYj7wvTK5kZdyt1s1hEYik7S4beN+PgFZeSYb7vXULrqbTLlEO1eqdLrkraJSK/FbYVMklgSQd2Cu801m/mdQBWoVUIF/03lWqVJaWH/XXqDvykjlyGZ+ClcteuJvKxCbeqgiEkaihD8QIA15xotQwyAZcaGpoX4Wa5aPfUwwtpw0GDfoqAHZwtndgKLLBx+opUUUU1JxLignQ9cBYeQQmbwL9k+JriMXVZIoC1RZOLymY3CnxNQ7GpuW5o2rUkZqyISTPM8oyCsz10Px0T3ikfEdc/fU/x1zjZX478bN1frA= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 92ed5a95-e31f-4c7d-90dd-08dca115ce07 X-MS-Exchange-CrossTenant-AuthSource: DS0PR10MB7933.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Jul 2024 19:23:40.3483 (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: 6RtyGHHf3Z7ebEQusU/LtQ5gjoqjdF5jgbMy9t9Xu0XhNTRsCCAPQnuOJAG5Hdg78h8BqV6sw1SX8UGJZvAEOQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR10MB6106 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1039,Hydra:6.0.680,FMLib:17.12.28.16 definitions=2024-07-10_14,2024-07-10_01,2024-05-17_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 bulkscore=0 malwarescore=0 phishscore=0 spamscore=0 mlxscore=0 suspectscore=0 mlxlogscore=999 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2406180000 definitions=main-2407100137 X-Proofpoint-ORIG-GUID: KNAbtqKf8cPVN4NL7WcjgUnl-MgSzX4E X-Proofpoint-GUID: KNAbtqKf8cPVN4NL7WcjgUnl-MgSzX4E Content-Type: text/plain; charset="utf-8" From: "Liam R. Howlett" The MAP_FIXED page count is available after the vms_gather_munmap_vmas() call, so use it instead of looping over the vmas twice. Signed-off-by: Liam R. Howlett Reviewed-by: Lorenzo Stoakes --- mm/mmap.c | 36 ++++-------------------------------- 1 file changed, 4 insertions(+), 32 deletions(-) diff --git a/mm/mmap.c b/mm/mmap.c index 18c269bf8703..7a440e7da55a 100644 --- a/mm/mmap.c +++ b/mm/mmap.c @@ -401,27 +401,6 @@ anon_vma_interval_tree_post_update_vma(struct vm_area_= struct *vma) anon_vma_interval_tree_insert(avc, &avc->anon_vma->rb_root); } =20 -static unsigned long count_vma_pages_range(struct mm_struct *mm, - unsigned long addr, unsigned long end, - unsigned long *nr_accounted) -{ - VMA_ITERATOR(vmi, mm, addr); - struct vm_area_struct *vma; - unsigned long nr_pages =3D 0; - - *nr_accounted =3D 0; - for_each_vma_range(vmi, vma, end) { - unsigned long vm_start =3D max(addr, vma->vm_start); - unsigned long vm_end =3D min(end, vma->vm_end); - - nr_pages +=3D PHYS_PFN(vm_end - vm_start); - if (vma->vm_flags & VM_ACCOUNT) - *nr_accounted +=3D PHYS_PFN(vm_end - vm_start); - } - - return nr_pages; -} - static void __vma_link_file(struct vm_area_struct *vma, struct address_space *mapping) { @@ -2949,17 +2928,6 @@ unsigned long mmap_region(struct file *file, unsigne= d long addr, pgoff_t vm_pgoff; int error =3D -ENOMEM; VMA_ITERATOR(vmi, mm, addr); - unsigned long nr_pages, nr_accounted; - - nr_pages =3D count_vma_pages_range(mm, addr, end, &nr_accounted); - - /* - * Check against address space limit. - * MAP_FIXED may remove pages of mappings that intersects with requested - * mapping. Account for the pages it would unmap. - */ - if (!may_expand_vm(mm, vm_flags, pglen - nr_pages)) - return -ENOMEM; =20 =20 /* Find the first overlapping VMA */ @@ -2987,6 +2955,10 @@ unsigned long mmap_region(struct file *file, unsigne= d long addr, vma_iter_next_range(&vmi); } =20 + /* Check against address space limit. */ + if (!may_expand_vm(mm, vm_flags, pglen - vms.nr_pages)) + goto abort_munmap; + /* * Private writable mapping: check memory availability */ --=20 2.43.0 From nobody Wed Dec 17 10:46:22 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 CAE86199256 for ; Wed, 10 Jul 2024 19:23:56 +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=1720639438; cv=fail; b=YgoB9KUiCQD5GqpyGp+c5KbvsH8VmXHu05IZHxBJ8sR9w+c8ypJBQUMsZX7LQh7EcsY7Y7DlqqQLq1efLl8CF3WPvPJvh+Z1ymNm3D+h/ZaLikxsad9AfumhMXoBOQyCjlPBPZe38NrrrcSwATS4r9pT5Xg1I0/nrzzrYJ19Bd4= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1720639438; c=relaxed/simple; bh=QNO4lRIBFUpkoNIP3WQBpiQGDirrsXGNO0KSdsQ6SK4=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=FiLjQohJ3z8ElMVYWlWdjn/XN2paeH1oCqU0sWwYfHdkvc2ptSi+CAzpD9jhLK4f1QhlO3ZrSIWtITUWdFTm4yMoHlQvgtCQeYfDBsoZDzezwA0hDkQT/Crvg9nW/W59ebbtJ621YpBAvSs+jpR7iXRmv2HrcYR23GsUz4tGQxc= 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=ege1EWxD; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=WcDOuWbV; 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="ege1EWxD"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="WcDOuWbV" 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 46AFndMq017517; Wed, 10 Jul 2024 19:23:47 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h= from:to:cc:subject:date:message-id:in-reply-to:references :content-transfer-encoding:content-type:mime-version; s= corp-2023-11-20; bh=zX443Iheh2qc0Sqk+4vF3PSlITJU3/wSXCmEz+kPPYI=; b= ege1EWxDg8iyAF8C6IZMFroQpXLzn+xUA5EzhKog5ti3+NAADsji1zG8BrOAfyJy hmWjYEyzNl7vEEPGic/rGVTotHpQPnrTljtB8RlFJtVZvqfS5z9RC6JNJ5ozuOJ4 MURJQyt3LH8kglI57ZkV0WyyZK/fdNtK5dXW0hDLemF30M3OpVpsvWOoh0YoHxd7 H5PxJqbTjKvkECLqnPh4OFrZcXZcaD152hH9kD73LEXuqgVfPzqIaNtNsb1BDhzG yj/IYamLC+8PH0mrWhtgi85HBcLe9pUXom2ahaVPe+z3jkqbukCEqjWeKuSzOD9u snsaPhUlUBWFMcgn3o2ucg== Received: from iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta03.appoci.oracle.com [130.35.103.27]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 406wybr4dv-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 10 Jul 2024 19:23:46 +0000 (GMT) Received: from pps.filterd (iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (8.17.1.19/8.17.1.19) with ESMTP id 46AIlfXx010839; Wed, 10 Jul 2024 19:23:45 GMT Received: from nam10-mw2-obe.outbound.protection.outlook.com (mail-mw2nam10lp2042.outbound.protection.outlook.com [104.47.55.42]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 409vv4s3w9-5 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 10 Jul 2024 19:23:45 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Ld80O+onTBfY87Z+OWQCwTcz3mCbvJPcr1RB9EBNk3HzbcjgTV5MY6xx30XReG4f/nlZfiunHYSerNyM2FV/ipF4k4CWSLj9Qc8j2JVmRMHCvernm4HtoycqdqjvhW+zewATPqVjyt+KbmOo5EExhojVR+F9cgjtW5xq2CfhkP/Q2f1HdnENh0BEwC6Yz6RZrRzfj1X6fkX2gwF9L6/U5D3bDqwPvOwKQTyfY53n3lHbri+dWzfVC2flMglN86v/Skw+2vA4si4mMSdw1UovQqi9kfbrgqSTiFmOeI8SB+pE7jBbD7FXfCLuIQ0R1z0qFNL7TnYeAAyIK4kt+HvIzg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; 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=zX443Iheh2qc0Sqk+4vF3PSlITJU3/wSXCmEz+kPPYI=; b=EbCs5QGOuBG3HR5xgdk2k5FeSlgxMVojZioVAPpT0zaiSOO2TicMYrFx1MgmhqbMZe4KGCgLVZmsTpifQeFlrqA4avvNC3Pe2kyCbvpD3+dcCrz1A+BVuYqJWswXeN42qWtNS4P64cL+rgq2G1TwF/LMpttM6YL53FjjDvZpTfC8QsOtK0SQWYut2lctv1gsJH9mnKvDnR7WcZqHfeInAyohgXT4MWApqjeMyR/kbNBbStBEg54I/JiqplHhavnJXuPvv+06ysGTHjRdb2NLelIyWHAr+qY5rg3dbqTsQxvg2cD3x/kHla+jPOAAc1l0AIq9tXaoVYJnQDcNr3GRog== 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=zX443Iheh2qc0Sqk+4vF3PSlITJU3/wSXCmEz+kPPYI=; b=WcDOuWbVITf/hwKEOMm+Pk/ZPIMGHdwL/UfmHkWTzDLCj7Y+scWgOKeG5JkE3d3z/e8CY1JWvZRzeSmWPkCtYtjTeUN9ha8+jYTXXB4Acbnet1zGAq+ArKV6uC1ViBlfZEH+gBCECzhAojuFTst891K53sBNWNtXUEJiJuVysno= Received: from DS0PR10MB7933.namprd10.prod.outlook.com (2603:10b6:8:1b8::15) by PH7PR10MB6106.namprd10.prod.outlook.com (2603:10b6:510:1fa::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7741.35; Wed, 10 Jul 2024 19:23:42 +0000 Received: from DS0PR10MB7933.namprd10.prod.outlook.com ([fe80::2561:85b0:ae8f:9490]) by DS0PR10MB7933.namprd10.prod.outlook.com ([fe80::2561:85b0:ae8f:9490%3]) with mapi id 15.20.7741.033; Wed, 10 Jul 2024 19:23:42 +0000 From: "Liam R. Howlett" To: linux-mm@kvack.org, Andrew Morton Cc: Suren Baghdasaryan , Vlastimil Babka , Lorenzo Stoakes , Matthew Wilcox , sidhartha.kumar@oracle.com, "Paul E . McKenney" , Bert Karwatzki , Jiri Olsa , linux-kernel@vger.kernel.org, Kees Cook , "Liam R. Howlett" Subject: [PATCH v4 21/21] mm/mmap: Drop incorrect comment from vms_gather_munmap_vmas() Date: Wed, 10 Jul 2024 15:22:50 -0400 Message-ID: <20240710192250.4114783-22-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240710192250.4114783-1-Liam.Howlett@oracle.com> References: <20240710192250.4114783-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YT4PR01CA0088.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:ff::21) To DS0PR10MB7933.namprd10.prod.outlook.com (2603:10b6:8:1b8::15) 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: DS0PR10MB7933:EE_|PH7PR10MB6106:EE_ X-MS-Office365-Filtering-Correlation-Id: 4b0bcbfd-c7f9-4457-bc15-08dca115cf00 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|1800799024|376014|366016; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?ru25plP2nNE+eCboteehqD9svpaDf10LpS2OKod/Z4rBojvRo+k1tI8CVleB?= =?us-ascii?Q?kjlfcor8CO4vR05r+4fu/8/jn83Kb6PntLkZMSvL78HGqCWBne/0oVO618Q9?= =?us-ascii?Q?5SNCV0q2QamFSlt8WQhsuu5FQVFQKaeH1NxUd96BhfkOU2AwPHnPsAZoXOnr?= =?us-ascii?Q?Dxam6VqrbMIV15bmPKku47+wb/MRSz16aSotoVeyMN1zjpjc8UywqipEMPKv?= =?us-ascii?Q?4pXmvt0jfNuW3g1COLa6ISKwob44KeqF/QRwipn62MoNsnvfy+ARQWwHKN/f?= =?us-ascii?Q?Wwp8+iSxJnjBlkIbdH9vha8y8IKb2EVGzKOfSXXCe/nxpkqUgHMrprI/SMhL?= =?us-ascii?Q?I9MA124TWLeI7XPrSUgtHGXKgsCYpHs60EBEAxhoIfr3uBDZC41PuL6v5LMs?= =?us-ascii?Q?T+uaLdjUE1pkLwpiQQJu9Gl0f8OsenzBGUaZXyeTOIKYzU/Uqpa91Hm4seVW?= =?us-ascii?Q?d/j1UV16Ld9rZZZ6YA/7gkGKfbuT1+fMtJxP4W1YhNgnlUGwnANd3yHBtr1h?= =?us-ascii?Q?OJOoK+/i4G5jmoflfdvp15PQxRnhxdF7UeDmkhm2MaqqwLmzf28okJdUBkto?= =?us-ascii?Q?wRVh6rou+vpQN/NFKKr3fiEI1w9AR9ZcTkTjyOApzQIsziVPGQFnImJDJMjc?= =?us-ascii?Q?HMA3AyIOJ2xMoOBJxhMlQg8gMQXA1RcQcBxARZDjJpmU9ZRyee83lit9qMRc?= =?us-ascii?Q?r5z+P+prz+pSqz/lOFkTRrQZeqScPAbYwK1luBgBoxQ+UDLaBMGN7Z+Wi9qv?= =?us-ascii?Q?5uNAvt6aNclHb5X/qNjjBXd/aUGpl4cx0QJHWgxQUFQ0CkLOA7Dsr0BPeTtb?= =?us-ascii?Q?yh+h+q+5sVEnxzbebI7FcgR3DgTHeu3iFnS2zSKPaNEmLX8cVHsgt5I9XpKf?= =?us-ascii?Q?S1668T/YGElc1GzgRX5YzCZ6ITMn2eyIwQCd9R70E18m/YkmDzaoi3ZR1MyT?= =?us-ascii?Q?VgWqq2Nol9PutpzOe0H2/E8027vgnHmlDmnt8wOYgpFva30zs19Do0FyIbI+?= =?us-ascii?Q?s+fS6DKriR4kHMEsGPYUGjG9riqmgnH87UxDabq/zc/GA6F/JBADXEi47JAo?= =?us-ascii?Q?WAHC9afZ+pVJQnNtok9zJJ/Unn7rIBpjRma2xed1Jwv+w/iUPQYKwcVNUs6q?= =?us-ascii?Q?6yxpN+4jW/0grQrDfGSBjV/DAE2wX3zopfErvJ0Ie681GIpm/Y9Jzg1CS8pa?= =?us-ascii?Q?sjhNWrPdvmdM4AmZeMiuiKjVNdHrWjPVm+GiPJ/B3st7Z8GABBt204Qr34+f?= =?us-ascii?Q?+kS7EB6CxRZ+VRAMWeIwMi+gKYN/ihZtWY312AIyNkiHJLpvSFgNbAj66cKp?= =?us-ascii?Q?HhErg+VlLhNkwztpnLEJ7ExkoM++U0+D9yHFQaq08Jr29w=3D=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS0PR10MB7933.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(7416014)(1800799024)(376014)(366016);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?g0cP+ZgzV4pQZvQ2LQPyFOz5E9FuHdQ25qGsgDz9jrH4cITbapEh8fMv92P6?= =?us-ascii?Q?bQMYJzAjNJPdePD2ZRIFlRS5ekTH2FXYBFbRMSnCf7Lm9AILBCo3Z1kqK5VV?= =?us-ascii?Q?SBFvGI1R820kQSkCV/CvNbnL6HGtOgRQEgaFeX6AS/vvA2ANoneU8f6MsLVf?= =?us-ascii?Q?DUJy6jwKCl3FXA2KhoTNmMaACp3cxtn3ZGIoPwer3FyS8hzBA2D3+97QFVdz?= =?us-ascii?Q?A+B1TeaHWr/C3OC/JurRtAq++ZKa198b/QBC5E8knvftT1drSZqvYDttC9j/?= =?us-ascii?Q?8rqYy5pp8wSxrMsFDZqzv8JuUZXodUrf3rBd2m0SBXwhTUV3cyLHCNNfQob1?= =?us-ascii?Q?1754fNX2xG4p+TOtATP8eg1kBERNCnXFNgX0kQ34I7Hm+m7EjkVxouqpl9jG?= =?us-ascii?Q?I4TEQBWB6hv2eBzs4dqw8g3Ccxu9T9pdtFmCK2MzGRL9IJQJQVXgrNVPHAFK?= =?us-ascii?Q?wI/ZuPuvxb6u0XZh8nvh3ky7/EZrm45S35c1VMA+AHM+UcakFKsZIn6yahuo?= =?us-ascii?Q?63zAdAwDLybLcG3QvSot2UQ1K3l2dJgWOzGnI63IaMOy5G9e3QXZ2KMclcOt?= =?us-ascii?Q?EE/DRrlEL2CKAsZKcH3QYYwjEFIS8+N6yY2xXo3eBc9zFr0KLKcYZ/DgjHZ/?= =?us-ascii?Q?C38Lwf0jQsQsmpBx5UGWVWjHrEbbEw9Mi0kVEU5RWTkyJrkcLfCk9/SzOKSj?= =?us-ascii?Q?U3fY+jggtVC6CKntfev8+k89XPbH1ec91wu7wen5MGGhuYFsPLCcVxEdNCvK?= =?us-ascii?Q?a8MQ6nlnE96XnAzmFHpHfV3UtdxCB98dGMxof/2hgx1Jl/Qb49hHa9Ga4pER?= =?us-ascii?Q?Xh54yiNOtwMgeWfAc1GjDfA5Y1AuqeinbtDxcQH//eYJRiIVo/z5C1Myz8xM?= =?us-ascii?Q?aPWQM/Qp9+Tz1hOM8EC5DKu5s87ZxfJ73FPGKGFdOawYlRtJkBVtXzPuf+5P?= =?us-ascii?Q?Xb2TalI71lc95M3bJzAe8fwjB6bLpvy00d7l9DMyUl9Tiyq0xQYIG4ML4JM0?= =?us-ascii?Q?pdHfaXrGv/v3ANlj5grIEcioavwFHWTghUUwqhAT9ni9JS0mbyB/J8xH3q2g?= =?us-ascii?Q?OZHD6JxE2FvNOI6PV/Enh9SGmEIaya6o52P/EO6erHhYNqoI4mr+t2w4RkWp?= =?us-ascii?Q?OC1YvHDz8HKsTxV+rwGV4YqAo/IzH+qMdsULUtJhF9rYbQog5AhxH8094bBZ?= =?us-ascii?Q?+JBoDixQ0S9Cey/L1DTITmM8o9X2sCox/FZeZDUFJNNLd0hQ2HB+DhHkoH0m?= =?us-ascii?Q?k0vm5HFTYOcoN3k0pv0QaLNctbetr8kOBt0/kI7PI/D95wgohJbV1OiWoRWK?= =?us-ascii?Q?J1kA2jY5p/WfZZ0AL5MnDoVzA+mNLnSrxRqvG1ZAic2yPhwVfKs4bN0JDCje?= =?us-ascii?Q?+y9vrBC0WPncYLyf8AEqucxUvq7asvSJQzTJ2/SdV9mj35YNlB3zyTl4jbH7?= =?us-ascii?Q?qH9wXznB/ChBPPRE0HUH7whGw/T4v1gIAnC5xmvIcojbAM4nJgUBnuuEtLE8?= =?us-ascii?Q?SxVAl43b2Qw5hvd14f6RFXjkdyLPwkMIgUkiH2/m1ii5/bBNgsT8NHX1/riS?= =?us-ascii?Q?CmgT90U1pRSoABf8P0yI/kmRW1ysCvdlWjC8uKeKrI2jx/KpwNHwxzrxTt0M?= =?us-ascii?Q?Pw=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: 7WH9TQ5GiK6zlXnb0aQgfEeOLA332LnT7rG5sAEgDdiMVV0TzNLMI7TPH0BPNv7lKFE63q203k5DNXJ9ZpV6jhVdJ6vX2ImpZ2ed9JLcvQqNGkIwLop9Je0w62WU4/eHN3T7JE0QP+y4Y2/xDvfBAKVkiUJncoF3VXo1NsBPS+ovnvWUrqM0KP85cXCw9osx2HPDgNF8K9uu6BOC56fDR+/y307qKa4On8cziam2oJUBybVNrN2uFJat47rmbLAh0YLTZAszKedLcxxjMsgztS8QVVGj3VTjsBTs+OZTVCmQ+T0nuABC+wTGsJOTVB3bWHj1Mf9VRsVnt50IbaB9vieYCdRi8yb3XNbPli/TWFG4vP+rFzQAZzK/aciyvdIjDUBtdW9ULUB6bDq5kBHgMFaFyM0c5WjsPPsW+xdr/iHgE/H9T31W5Q+3ERz6GSZu1tOArvjf60E7mCf39BAIzl1uPMDADIYbx4vKaATCilyf6Ut4cwyTY+MINvobRGKB85mCWdyc5QIlUfSsW77nYh9heEmFnbosT49drataLPIYrIVSYQxWkt9zrRnPtkb4XA/NpDHpjO0OT5NK1v+n8Elw2tBkhQ4np/8Rtv5i3lA= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 4b0bcbfd-c7f9-4457-bc15-08dca115cf00 X-MS-Exchange-CrossTenant-AuthSource: DS0PR10MB7933.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Jul 2024 19:23:41.9972 (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: RV/cUp6xPxdLePf4bxO9ZA/p7pUoPeP1G6iZ668rPMJCgb/hK8Z5WaRJidU4ULnjfpdoZetVnrIKU6tyS0v8iQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR10MB6106 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1039,Hydra:6.0.680,FMLib:17.12.28.16 definitions=2024-07-10_14,2024-07-10_01,2024-05-17_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 bulkscore=0 malwarescore=0 phishscore=0 spamscore=0 mlxscore=0 suspectscore=0 mlxlogscore=999 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2406180000 definitions=main-2407100137 X-Proofpoint-GUID: j-UxD2jZbeyyCIx3Sd6hr7dn8wYMM8JW X-Proofpoint-ORIG-GUID: j-UxD2jZbeyyCIx3Sd6hr7dn8wYMM8JW Content-Type: text/plain; charset="utf-8" From: "Liam R. Howlett" The comment has been outdated since 6b73cff239e52 ("mm: change munmap splitting order and move_vma()"). The move_vma() was altered to fix the fragile state of the accounting since then. Signed-off-by: Liam R. Howlett Reviewed-by: Lorenzo Stoakes --- mm/mmap.c | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/mm/mmap.c b/mm/mmap.c index 7a440e7da55a..ca3872e5fbd8 100644 --- a/mm/mmap.c +++ b/mm/mmap.c @@ -2675,13 +2675,8 @@ static int vms_gather_munmap_vmas(struct vma_munmap_= struct *vms, =20 /* * If we need to split any vma, do it now to save pain later. - * - * Note: mremap's move_vma VM_ACCOUNT handling assumes a partially - * unmapped vm_area_struct will remain in use: so lower split_vma - * places tmp vma above, and higher split_vma places tmp vma below. + * Does it split the first one? */ - - /* Does it split the first one? */ if (vms->start > vms->vma->vm_start) { =20 /* --=20 2.43.0