From nobody Sat Feb 7 10:15:43 2026 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 F41F273448 for ; Thu, 4 Jul 2024 18:27: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=1720117668; cv=fail; b=prhdeWV/gSAhjwp9F3jqad5FiT1MPQSgeXIKJyhgKCWITMhRQq+8PgWd3PdBxMwLcRtFK10ERyERgFn0NWLesItHFb7pHmQRAbiDt1DyTG97D3G8RkDAo3xd5cBdVswB65fRfqDviaNd+9ahLS4EY+4aNX6jABbOTtnslPBs/xM= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1720117668; c=relaxed/simple; bh=ZPESTzeh8XvfaDK583IP69YPpytuZWpRLgai7JM9aKc=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=rQCMO3AolvLaFZLFzpR5M0XuQ+6pKFw5BmUpz8nIDq8dG839L0WtfZSNry11gYMWr72q9kIi56LIEAaKwfLoPSlGTrWpqeOTU4LyaDRiD6b+aE0zFp4bZ290p8RYYJKZc6xDmA8sKqAN/vZb49XWFA2+SvxnP2mSOF8F0DUBq5w= 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=jsM+xrnI; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=REUuntBz; 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="jsM+xrnI"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="REUuntBz" 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 464Dn5Yi016715; Thu, 4 Jul 2024 18:27:28 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= jsM+xrnIjqhzDKoVS9tHCNWhBskZomXjdCvR/Iqg6rZkTtWR0hEsAPTFqJN9irSN +/AtvZVMLNRElKE4sSp5LZgdpN7OZJH4K1HTHV3g140Siy+wao76cSADJmXaJE15 JLNIeL1Yg99Z4m9+40YD3q13O9nzEuzppJx5R5V2p+SjyKbB2flIf01/Smv40I8e QIqyNIsc9bV20RUqoENE2jCMjtfbeVuSTpNT300cuXcN5DIPOSCqLyhPALd76Ied bh4zP6nx+HTuywDVYCRfKKerSntCk+W9wmH5TT+otRgJ/qBQJl2kj7zHKG4hDT60 vEXGOvkebhrVRZ99ecahIw== Received: from iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta01.appoci.oracle.com [130.35.100.223]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 402attjpgp-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 04 Jul 2024 18:27:27 +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 464FVlJE023459; Thu, 4 Jul 2024 18:27:26 GMT Received: from nam02-dm3-obe.outbound.protection.outlook.com (mail-dm3nam02lp2040.outbound.protection.outlook.com [104.47.56.40]) by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 404n11kmh7-2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 04 Jul 2024 18:27:26 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=hpss7cz9cQdKGy9YGVCHriUF+LLEOzMeinsFobKbwuxAjzpAW4RhvDFfGtuufMRILBC1U78BsVQQsuDwq+8JH+fIGYNeMSMQb86FBTmJdMRzxbYPkoV4sDTj2EdS3wOjX2ApbjIyPyxOozkaaK0IKXpXybwUK3oEFnrib/48fncQWfwHwwEYmn54eFpeTwWRK/XSJS0pqZ6k6oZWodhN0rHKFDjw3VqtIeP46Xw8ae1nGu6zsjnez85628skBKyeehmQuW7lV5NRoDNGnebZKMbWzUIAlxNYLaWWsWuNnO/10GW8aU9EECpbspvtjdw4BpA02U7B0S8x0uExrpyr+g== 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=UyrF0d/3IpsWt8axTazaummk53SQN1O3emzkRsrIObSd7HtxCuWhh4M0O/eG9rjaPFM/3Bxfpa6Ywt67/PYQbXy1fJffG1qs3cfLFA3IrV6JjzjQPhkqc/NqgeZrJJcZXmllWc8ckYbyvwwPo7VC6nOWzWptyeVeLxTreMYoUwmU48+rO5SaCuVPCtzQDYOguSkUMj4Pp94PvAXo7QZozJ7ES5518K12TAd/Z4wg/WktdiYILYIUJRZ/R3L9UEitgn5aRO+xor7w/Bpfp4k3QR6vSz9mvCVAbxsVnPnF+x4PJwjNN0B1lrbzww1EPj68JZ8O4i1TsFonkL9VAXdR5w== 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=REUuntBzTEi1jtu4Dvpa54hr3mMxX4dKP9EL3OhQrcOBEouppUSDnRvaY9yMO99ticMsO5wxCicWXtQ7dD5iYkLmfq8d8oxcaiRwQ+3x0QCX8LMAgHTMtr9q3R3RVqOD6b1umvbQf6boqcGSnGumQ1jpCkoU0Yq++Iodr+yc4xs= Received: from DS0PR10MB7933.namprd10.prod.outlook.com (2603:10b6:8:1b8::15) by BY5PR10MB4242.namprd10.prod.outlook.com (2603:10b6:a03:20d::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7741.29; Thu, 4 Jul 2024 18:27:24 +0000 Received: from DS0PR10MB7933.namprd10.prod.outlook.com ([fe80::2561:85b0:ae8f:9490]) by DS0PR10MB7933.namprd10.prod.outlook.com ([fe80::2561:85b0:ae8f:9490%5]) with mapi id 15.20.7741.027; Thu, 4 Jul 2024 18:27: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" Subject: [PATCH v3 01/16] mm/mmap: Correctly position vma_iterator in __split_vma() Date: Thu, 4 Jul 2024 14:27:03 -0400 Message-ID: <20240704182718.2653918-2-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240704182718.2653918-1-Liam.Howlett@oracle.com> References: <20240704182718.2653918-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YT4PR01CA0497.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:10c::15) 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_|BY5PR10MB4242:EE_ X-MS-Office365-Filtering-Correlation-Id: 6cbfa750-f4e3-4b87-0df9-08dc9c56f37a 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?EJwSLKOxaIY6R/LuZK1Z0VZTx96+UKVnLd495amwSG51+pSWXwEUg/fXo0BX?= =?us-ascii?Q?ZvbefQUaWacBNrQjfSrb50/29645GNGQJQk180uVGD60O9dHeOuztRUcDshl?= =?us-ascii?Q?jZ0ZsRYpy4y2bxrk6Scss0b3Btx2PqwA6/DUfpMnHpDkXcqjQhYTN/nXgKNA?= =?us-ascii?Q?Nta4pQ1jvVkkQeWIAwo90CNIaEt1EFEqOUg+Wm8LSjKRWLjY7hHOeKiDe5VQ?= =?us-ascii?Q?1okvbH46Pck7Dk/Mwasn7Ol0rlgpAb6wt8kO/gZjOk8jzk1aD+2Fd1tyCVhc?= =?us-ascii?Q?fUVYOSlXJfPfB6VasIYCmSOQH/aTAXuYEr2MVzg2iO+zNPHrPMXXEk1B8ZQN?= =?us-ascii?Q?/5cXYu79YU59+xOxJnlk2+RSwZ7VBLFZC8x7BLpuu8w6+8R09vJnhRqqXUv1?= =?us-ascii?Q?ITxE1W1nQ8jp/rcARtpfKVfqxnZS284tRby9MEaNR0Ii+eN1R5cO00H/XUr4?= =?us-ascii?Q?Ue8P5ZP0go2ZkmBKwAexa5wD9dXORm7HzYkrPb08xkuPuQDjp8lnMHdqy4Dj?= =?us-ascii?Q?RSQu3PM4ai2zmtHInZTAbvSfMslXnT5+xPnAyooqvunW2/FYbRPeVkgSeMZo?= =?us-ascii?Q?hl8G2jfCzgF7ePy8QvugB6T3Iz2SiwEE39CUEbJCpJvxaftZO/WwGwl/y4bI?= =?us-ascii?Q?ZeKW/ihslIOLGMtZw0XJIW5xKU8C6GfXnmpCTpiwj6FRnZFWCDzbYBnHFZPX?= =?us-ascii?Q?5OfKOReRl3Cc+FjbkVOKKDfOW7eqxHSQbsv43LrONIm+9yvv9qknPRBC0X1V?= =?us-ascii?Q?UM8e6pCQuZuW1rIFZUTkHlykrvjuoCS8Z9mxq+Sgg1qh0Zzp6KHo1WBiz1Rc?= =?us-ascii?Q?qONk+zwwDxZEIWojZu8Dyu8y88ma3okNq2mDFV9sFVp216Jvs87/l4JyjxnS?= =?us-ascii?Q?sAQ+7TBCknIQEpHxUnohaFHjfuAuJaBdyf4FnGhY09VcQYcT2wrL/pmNjppi?= =?us-ascii?Q?j0/1dYvdImiU36VpLhL7h9/z4qyzoObys9++s6K/0qOOpMaqYOzRj0h4AbgO?= =?us-ascii?Q?0mvkyGtMf/iuU4Jx6zlsjyJXt0RoBRtjFJAFYrGrdtvrcnGUrqil8YyZdCvs?= =?us-ascii?Q?xjk6J4hMMyiw5PAYQBV4y4hG9KSpJvvqA72dheEXGin2rVKZ0mPbj6wiuFWA?= =?us-ascii?Q?YuNDSd7jbQAMuAkaVKGB5AHKakqzHqrybpsr8zqINbLoV/9xPKrgqtFtc/23?= =?us-ascii?Q?IAgjhSkrXOSHwTiINUlIfOiNHg5c6ZwOltW3jMYrrY8vN/W63HUE4F39o4NO?= =?us-ascii?Q?GrWiF09P5F7OHFfikaYLvZiYrdE5mnRo6EJgjp0n3qz0uUul24Q/AvHW1Ix+?= =?us-ascii?Q?eq1kqWs2/6IeNGQd9KL8nMdzzjyLMscWV4cbl7+tjPTOmw=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?sIqh+5WEvwQSIxOLjy3sKNYMThr0CgrZQXFWFRii5S1rVx20oxafVuRMtq6j?= =?us-ascii?Q?U0x3yomcGIh2au0TxY88jWIKgL1XeXju/Nit0OKu8jprluu0Xc+tGz4vKQEH?= =?us-ascii?Q?sUTbATKhPDCO9QO5tcavmG1OqqM/K0NRdLetBJFptYkcCPru8La3VMoHOd++?= =?us-ascii?Q?IjOnB9gllWGBBiw7aOsETF09BmyOYQmFV9UGiGx1HWCpjc8T9EG1cktk6baw?= =?us-ascii?Q?cntS9QWr9VlsAwKcd3TxyDgWp+W+nTlPlADMh2CThJvQUz//bZaXihSNuupz?= =?us-ascii?Q?BbADk7HV9xtZLmHt7vqUYD5VB7hT+rvJJsDwkeswNc2QcORTaRtIQdkF7GA/?= =?us-ascii?Q?WsQwG3yDrRfquXVkRRhYNzaWX9exm/9ABrhl8DtXzyABOqHvVBIYErYfNHNk?= =?us-ascii?Q?tjDxl2HmQUgXASkvo/JBnlqVARIuDkO4z/uj1cyVhfPC/kuhdb5hgTzeACRp?= =?us-ascii?Q?xocy+/HRe7bbpwj6Ba6ax8mi1doaFYNtJHmnaFWCEQP7BP/8iLGnTxIyRZXq?= =?us-ascii?Q?fOQ6QecO5bRoi4q+kQ/NDoPxcUdAHPdLcM/vhRAQQchvLeTqy2lzMmOYz5cn?= =?us-ascii?Q?cXmmkN6zGwQRJqeJPsxi/TtI9POWW69lBUJG+A7VbbcSN2tQlS3khwPFyyUk?= =?us-ascii?Q?eAmfvEbVC/t1uzO+nTO9RGOkKVTPSBygdocsrSUZxQSEG4Ev7mjiV4D4HQ6L?= =?us-ascii?Q?SdbsLAtQB4MhiDRybx204ZzmkUdLRaAFsINe+7rX7g12GRD8wsa9/Hkut/EE?= =?us-ascii?Q?uRyV6Ipz5DzVY9LpH70BDN2j+Si0m7kKcAtBMO8iXDh5/CbGDDVpYwTdVwiI?= =?us-ascii?Q?fO3b7yLYJMY6k7PHY30dFVAxidIuSrz+bTQRnan3dI2nttO7/YvyqKEx19CK?= =?us-ascii?Q?fFJKTqnoPBnujvqhy9e+GkMHXQGbc/+nMvJEnX+V8qBFN98cym6WSCDlETLC?= =?us-ascii?Q?l0CmgOBqAwh/VcZ9wNJv59DeDpsjLjjWt2X8bZ+8QCZQFXslJZNyfJHomu5G?= =?us-ascii?Q?9jvxeKsltd6hlWV9FK9jXykQVsfq+GWv2dEMuhtZz22PzjZtz7KMy23Rfkve?= =?us-ascii?Q?fRJ/1s7DZnb+fNcvX4TZXarD9Cwl3OaGSxK5KzxncWrS/jUN3ohsb12HpNRH?= =?us-ascii?Q?7QrQmwq5cTPwNS14tYvYc/BObhd92q9nNXoYP4ADiN2ca4INiKL9bFJab9Q0?= =?us-ascii?Q?OW8DRcxuPvPRchKjx1FhHMCuSMYpvKy/Mm4mrsIlfD6djswCy72drTqAenSy?= =?us-ascii?Q?pfAR4mV/e/PbvV/CI43qzLUWVxarBjCWdO5GQNBaxET+Z1Y8E2QmymnhF5bw?= =?us-ascii?Q?Q2ndMOkQNAUD6B69ghRyCFhjkQp4FLnkQX+AkiHGIgjYdfU+AWvvdOS5y3RI?= =?us-ascii?Q?ma4d924oOgNpusAjs/DM225WFFJPgaI/RUdiKPsJV0cz6PWqliLk7B36ph7d?= =?us-ascii?Q?a6R9VdQV/s46qjbCEmOtn+kDIv8fArRm3e5VMguDEbrqJ8AEs6g+qFOswVQW?= =?us-ascii?Q?8f4utmcJ063Bxm1R0muq6Ybqx6GKW51BG+EgWY9XHoZjLtKlnoq8wTVZPNJI?= =?us-ascii?Q?nImnLbt0uEA3vStB/n2SvYpjZ1jxCJtrCyKchxX6?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: ImesFqDqQqtFEofjEhPEZeBU3K6r4ic4AbmF59e4p6urZDW6kQChlrdDaW3pkcBkht82yuSHA76DDeRjPxXgmLj+ZdsXv6PENzCA6l4DuHwK7Y2cMMcvz7L3lvH9UhjId52Rg993OThhrBNq0ciA5zX8XwtNkSf1D+HB9OZEn5Hetv5bCA1zPaJ8KharSZWFIHYJorhxUqB7cde7FM0kt8WXzkaTkZXzM9UJfAHoe4+kRtrmCjOQOFG+ZLKIjMSU0481El3v59WRY+O47yWWB+BXgsbsznX3SPHFZCkRmeWEHlkJmXcxBfoQVr6Llij4vYn6+Bx/ipnZWCVf4VhWTcC0WPOiPIQYUA9NB8GBiG7oqex/erySEHYUtYGgv3db/+g/ibZEEJ4xNfYUD0ytT4YdWqmOS5KugJkORQ0RDBu82yx0I6yUO+w/n7Hp5wPkrv7eQ+yQCrL67aPFQExZCe5XSjwgBKIlQuvPP/cqf5cHqgcQx9IozFbF/WY8KRJQo5ojjRtqRK6OcOuc71KUZiNAdKjxJdlS+V1kahCmbUyLpkWKVb5i21TZ8P8ZSE6Yn6H+x3r5XY0x3FazoOOATQfOb+Gg6uuUAzr/VdkD/nk= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 6cbfa750-f4e3-4b87-0df9-08dc9c56f37a X-MS-Exchange-CrossTenant-AuthSource: DS0PR10MB7933.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Jul 2024 18:27:24.6500 (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: CmNKVhDLa0lmV7ySDbJ4DJ1ymIjaenoaZQl71Ro2w4IoN38iQ/ypNZerqkiyR2UdCVN9POZN1HKk0e41VDKTlA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY5PR10MB4242 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-04_14,2024-07-03_01,2024-05-17_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxlogscore=999 phishscore=0 bulkscore=0 adultscore=0 malwarescore=0 spamscore=0 suspectscore=0 mlxscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2406180000 definitions=main-2407040134 X-Proofpoint-GUID: qmyscRGXXsu5sO-R7I3C7fvSWV9vzbAz X-Proofpoint-ORIG-GUID: qmyscRGXXsu5sO-R7I3C7fvSWV9vzbAz 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 Sat Feb 7 10:15:43 2026 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 C00D96E614 for ; Thu, 4 Jul 2024 18:27: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=1720117667; cv=fail; b=GoCFDsqJ9AxDrLNrsDDLnrfdGmhYJL9tG8SrVdq4QBcrzNEYQvcf3zznMCZ0/mQVDE+93pYhVrjByeMPYxN7MwHQhI5g9VK87ZH5cixun9h4zeGPyjeXKMZVHSnyGdYwwAQmlz3CEVGRTPsYqIA79o0MTq/+wsDD/PrQdLifkEs= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1720117667; c=relaxed/simple; bh=MUdGcyuD1zj/hoz6fbwcxO8kS6iWTbAgAnBkUwwqZ2U=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=FHLbmugkVJruWO7Uj7f7nAjBSLR7D3HsHE/dp1hQ1nOIpFfytKCX1B8ic9ygU/aZsEr9q0ofhKIx95OwJlpMCFDBTbFVhueYImcPOKWwLOrTFnSE8m/jIfOa6aJ5ik/pmR0cY26FncMhnDyYJjnAhfRKZlI60rXSBaeIIknOvvI= 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=g1DsgPam; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=WdSGck6g; 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="g1DsgPam"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="WdSGck6g" 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 464EFGmF016760; Thu, 4 Jul 2024 18:27: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=zSu8hDWlGjMxPlRgldY+gYYh1jH3ES1rfBL14tJEjt0=; b= g1DsgPam6MzvUAN2N0Wh/TAJqZQullBmm0fHf3D7Ii0NZ5Af817CXf8rVrwUFjVk mtbyAlKzNTJg7CaXnBtArmJ7ItcL6iNgvBcwWIiZDPK2Zo6pivKJIGA27u+/9I/4 Udajg9rEqqUbhH3Ht6ky/9s97BPbV3jbBnNSL7OfmsH2FS5K2s2pu0W0NzaxlFC1 I/4pe+lE6dRA4fUvPSzya9R7vaIsrBG7mA/dRENHxmLiGciFom5Ks8dbQUy1ycPf VthEoCfSQCzHXWX9+UYD/nY8+mPaut+IcAMNmy5Qh8mwsH5sboBWAHv8OvjIZF/9 jfNFKRXXRoS0n6wbERMxCg== Received: from iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta01.appoci.oracle.com [130.35.100.223]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 402attjpgr-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 04 Jul 2024 18:27:30 +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 464IOVNg023544; Thu, 4 Jul 2024 18:27:29 GMT Received: from nam04-mw2-obe.outbound.protection.outlook.com (mail-mw2nam04lp2177.outbound.protection.outlook.com [104.47.73.177]) by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 404n11kmhu-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 04 Jul 2024 18:27:29 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=oGnu7+/bVBzrdlsYcz1h5iPbfhidR2GjcfqnKd31QlLBLOwzjypjDP0v6Sb9PRTjeeANQE+y1U5hoRt0SkEhB03Ous1SAw2Sr7nZR8IdLr2mPtwJN9JV5ms+X2lPomiDy6JNiyCY/6hdswoYZ1lWw+t9EmXobqYUjgowa0r/Mfzd/R6zEYTXUtwXJWjJaTFYqmUKnHuFlLp9alUevYqXIQAM5vTI2OEsTJkUqRyqY/U1q+Mu9jlhhiFWZFoZ2Hz5WUyCkb7ZzbEgnMY4XJ28Gzc6gQnFOSkZinfEOqAUSW8rkekr2aCOdHlvlRK7rAvbeltXnqjWJFpnGF3fKTCgCw== 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=zSu8hDWlGjMxPlRgldY+gYYh1jH3ES1rfBL14tJEjt0=; b=DIHyslZmdBcpZ+lSe4+YJxNZR2O8y/iJ4DcH/6H0TAaUSJIVC5tQPl3nGQBQ45a8ZWkVZL47He9edzlXJnggFekwimwYxlmoQjzUhkr3ywk70isytRahAE+eV4IhspMAgcbXlPQcUQfkyICcaTzQwg3djOW7diTHOzAa7imMo5Eenqtuey2/Bxt/Yv4iUvyNsljiP5Y7KfQ0a7Fpt9lrAa2pvOXyYXwqdDph1jT7Z6tTkV7IhYWDwG9max5JifOc/3Go76SkHgdOamuWXzCnHI7wOdjUyDDhs8j013XgPcJ4tKYSTYwIX7eM3TSnNLwNWvw/tOVT2r/bCfarVn/TPw== 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=zSu8hDWlGjMxPlRgldY+gYYh1jH3ES1rfBL14tJEjt0=; b=WdSGck6gLOUpA1uCn+lhxWkcSbGoLin/Ta+TDOLKerHlHodKuqKcdax2jgiZDIuggEkG9ILQBHjo7Rd7vOZB2eGDM7bMxUf4aBo/kKwDBe6pw5HamZsP7xAkcSosQcL9l9vNx9tlQG1S3sgiYaIcdJ9j5pYICmqmHRwgMFf0K9A= Received: from DS0PR10MB7933.namprd10.prod.outlook.com (2603:10b6:8:1b8::15) by BY5PR10MB4242.namprd10.prod.outlook.com (2603:10b6:a03:20d::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7741.29; Thu, 4 Jul 2024 18:27:26 +0000 Received: from DS0PR10MB7933.namprd10.prod.outlook.com ([fe80::2561:85b0:ae8f:9490]) by DS0PR10MB7933.namprd10.prod.outlook.com ([fe80::2561:85b0:ae8f:9490%5]) with mapi id 15.20.7741.027; Thu, 4 Jul 2024 18:27:26 +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 v3 02/16] mm/mmap: Introduce abort_munmap_vmas() Date: Thu, 4 Jul 2024 14:27:04 -0400 Message-ID: <20240704182718.2653918-3-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240704182718.2653918-1-Liam.Howlett@oracle.com> References: <20240704182718.2653918-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YT4PR01CA0230.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:eb::10) 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_|BY5PR10MB4242:EE_ X-MS-Office365-Filtering-Correlation-Id: d5341f8e-51f5-4782-0314-08dc9c56f4ca 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?X13V3pvLPrCLzYsRBqPrnZV2SsYa670J0BCTYWgVPizIIQ2SQLCZAnXm+V+N?= =?us-ascii?Q?sjPtrvESgkhHocxlcXvFHTtd2tdTSh+IzRtKF30Dj27DZCk4bE6kYdVbmBZl?= =?us-ascii?Q?Z1OWwvBfYm8oaanGWamQcyaFQLBX6t/cX5Zzgc7HB6WpnTLaJJJ1vm5lB2Yf?= =?us-ascii?Q?y3bgzIMI+IpQcz/izn4TN2Qd3CjqPHKj21JihXNVoxCBUF6vaZqJjZR31bHN?= =?us-ascii?Q?hUAI5fOv8LvZY5YqRs+xBHjvuQgP+iypyFOYgt+sa9/sEeavxQhfgW9f5hls?= =?us-ascii?Q?ZUsbcQt6r1DQ7izJsLUXGXEY2bhFRhRHfsx4Afj3OX3ziMh6HPGB3sPTgb6z?= =?us-ascii?Q?TeZKr3PRvURq2ibaZTzcAJJP6V89Bg2ECn6kFClOzxTFEFA+QRKbCTq4JMSG?= =?us-ascii?Q?J4dHbCCOVY22zPYyqitae1mLnbFDBu20YWmHgJonH06Qes+vul8avQHSpcLp?= =?us-ascii?Q?64KWXx1R+/fvzujRhZA8d/JOk/NA3mvYgjBTIdCBwVumS2V8o+YcyiHniByI?= =?us-ascii?Q?VEk89WDHjAJZsLDrIw9oltkpNP/2yiPJlUJD8o4Qo0BEmbGN0VIniNngDKmG?= =?us-ascii?Q?1q/Xwa2N2z3BPgxK3iwT475Xi3/IQjbUU5DxRWROVYTpLJX1VsoA5fYH0HC+?= =?us-ascii?Q?716a1peg0tZVVa/rGG/mjQuY64rhviKTPTDWHMQAC2yjTovnFJnD4f5bpqE1?= =?us-ascii?Q?KweEf0ipAl10SHHoYjLkhAyh3gMoL8vvDFG2lYtig4kOBkZ5kKZjrVDoso1O?= =?us-ascii?Q?0CEiBEUzn+oB4klMSNt405ZbfrRa7tWm6a0ZS3g9iqx5PlYF2kJMAa9hr/z/?= =?us-ascii?Q?IhriiQqfBKU3K/k9R999qVJds9Elyhyu9+Ee3pRceIDwB7UE4z27JsQjyCre?= =?us-ascii?Q?6GxX6JxSF8OZCJPwkWNgKc2rI+6mO1dvt4Y826cMbmm8Vyugh69sURfvJVRp?= =?us-ascii?Q?ITFr+rAg3jpHQzu/Ax/998AmZI5u5ETs5A6AiuUKPqst59Ac+hlmVOqaw/P9?= =?us-ascii?Q?TkEh8651c4DTburs0Ih9roLGa1ivxVOeN48dFbguAa2irE0wyRFa/4riaq3R?= =?us-ascii?Q?SyDrRBrejraUosRa9MOQUflpjia44dRtaM4Ic/PdwqCTM7HjdDlQrOTgxaEN?= =?us-ascii?Q?cvDGPgrD9rvfIIPaFnc3GW4mpKTbJtjMdvs1N9s/kPGPrZNM+6A8iFvZVVyT?= =?us-ascii?Q?zpbOKD8UF4Yms91T/cuOfmscYYApzI6tpWqdtkO9ySlONnVTQDwO2W0/eFki?= =?us-ascii?Q?Gu/PQfDcS7yDEgsFqlGc1qXF/L+3PDsyBC9HaZzITgSc1oF2TntOTVialSXJ?= =?us-ascii?Q?73b7iMV5DhUMZjSW/2SGYdxMqMZr/t0pqhkroLD4ymb3Zw=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?Q5obfn/sCcteA0szm8pGQ6Z27rJlbOZsfAhUyovFWygM7i8ByDSswyI/15Gj?= =?us-ascii?Q?u/+IANk+ykWF8Po8wbpi9vr5bA8my80a9pAHfTB1aQGT/M4DLvg7I6sBs14J?= =?us-ascii?Q?v94BH/cUSXbIE93MEvE2zqXqfIjSe5ByJOeNWCb05Qooclj+1wste9h4YslG?= =?us-ascii?Q?TbuMazjiUm5MrjywCsoS5f9VevtXIBbyym7X1x74wdsfSyKI1UsQ+XGkZ9Bw?= =?us-ascii?Q?3ZY2QGzEoh43JMZHZHo5qwwm27fnW/INY5eI8v4kM0mclkXv5urUtBw89Q7A?= =?us-ascii?Q?/klZtQP1x0w8EMvckmyK2RwP7vI4CWTh9ijhjN6+fknWjtT9faYaFrPqUgud?= =?us-ascii?Q?Hqwt8xV/VeXNaZc/+McHGOrjMsSRiqfgMVqo7Z5226FVLM57gWThtkcGSZET?= =?us-ascii?Q?mx4Z0+1PVqAfxtjnMTT5AR3vaFZse0NmCo/wLjwXKalLGiuHsQ7NSShx5Yd+?= =?us-ascii?Q?plCuS+rAuefbU5LKn+LNR+9Tna3YdsGPzGDMmjJHW/lXD6SKQmL3kuK+omft?= =?us-ascii?Q?ZqX5qLmn7ouDjGy3xqa0DUG4Mo9uN0kJgJk+n4dkza3wlFvy/ospctBnfUrx?= =?us-ascii?Q?TSUHnrgPKam1iUDKlUeYND8R83xFIzzG2oMIhe3lFhtLUB3b+yrpLuxbnkLK?= =?us-ascii?Q?8zLRM6kVGdDQ5gPsAtgS/vnoC6/yUa1gV/wZmNq0dT7oCQpmTQdNurVaDCd0?= =?us-ascii?Q?0olCzIVvWZ64KOY3Oow5JEEuZXTLOVj4rNG/AHKGDNnFdtFN9eVhkDOeqWPh?= =?us-ascii?Q?6t0KdrDAx1x27tL6U5HHKNCE6larLfnsBn0mtITr+UrW0s0mPuyVM8iRIxws?= =?us-ascii?Q?Im33FM+I+VqoAH19+N/Bp8UrJ8sqr87oUBX7QBjHLKVUk+mghuuDfqHboyTU?= =?us-ascii?Q?MYjUgLf/io6ngfc6j68rLp11UfyDMSsvkuUPMcpGk+TkX+xa5EL9ev3nqIGL?= =?us-ascii?Q?LBoia/VoIpALItu6aZFkDYfokExb0RoQPgaNvOLY3XtgD0GCvTks0uOWLUf4?= =?us-ascii?Q?jmbxhMTgoKBZAeHwBJb4rRJ9ZSANYcLAO5R2yNbAjWN0GxCT/OiJ2WmSiXGo?= =?us-ascii?Q?ILshSehvuzwGtPEQpzMGF30aoiSaIi8JBzdpwPg3c1Cr4n2fzJHmq+LPnBOa?= =?us-ascii?Q?EpzZSFsYSrFGpF7IvfdxoW2ZvVNrpRuJGmAdMjyTACYDdD+hJjJNiS2ue+Tc?= =?us-ascii?Q?XVJ2LKXcR0t6UplUGKWDj5tXRWBd0uOtqnY9TlzjbIJIT/pOVd5PxFnLJtCS?= =?us-ascii?Q?BTZ5dZFD5IqQAGWL0ilgBL8czPdtQKDzWf83/9Ipw3zGgqjes2CUUbbzdvuN?= =?us-ascii?Q?9/pwuN4xbvXNzeqPVI4PM7GorL4j60oc8HtgqoNDywwuRk0maqqaF3KdyS06?= =?us-ascii?Q?ya44YDUD4JysNSz/tm1HpqAvAd874kyyXcCs7SiNfr0fLSyGbXXcLOuN2fPG?= =?us-ascii?Q?o9tmzlZrVQGMVdWHvJJIDrwtCe00KtSt/dYTbUbpjT15fHpKlmM/hb35XN7N?= =?us-ascii?Q?dhHcf+BrqBV0wNPnvF19TwTJ5LLnERmE9A6tnykTo8B6tuMDoiObdYdSJjiU?= =?us-ascii?Q?YpUXfXCpRehiskoje1IVX8QPOjETASLSdDnWE7o9IhTB1y1luXg04k1DJbcz?= =?us-ascii?Q?yA=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: uSQVZIGRobKx4X5Jl0uSriZPjbI0XPv013u0j3ZFcdGKRseZagaN71lWST5/bA0sLpHz71hwqqvaemiXriUdcHitDfVXesxSBrwZMiM2Sj3dPG1vpQ4MaaH6IOiqrLsiUGKh7wbpdcnThttvUVZkvvY6eSsw04oGoY/NouyhvKgGxYkrS3qGgIL//yiw8hVX5L4qBaf40Bba10zuv79GPpO6SC5X5A2Ck9xcaisCDh/2Sf+JuOov+aT5paAvm8qCZGucx3eBOmTc/FsvYzUTc68G+LwSWIT3onxxlnBim3n+iuZuXhbl/SVpq8qPcfhHN5oGQ9TOISxAGfhfq6XswhyTXLmnqcfVUbfMBbPFFnc7UteDCg+d8/ZfW9FDwMItsWN8n0cQ8GrFD6HbRE2FfrSch8O7vtKqOWc72OTWnMP1cKrUqUqluuz688Ck03zzoWMEHfNuLj/DjHKgV1PAsOLJVMjP/JpXL7MbfzGb7pC87opPJiLY3TH7XbvhBULWN4/kfVzXPH8e01sjkUeTV3bIaotfPv+dhnMmbo2Gq942HUKBxqaWz0NKdry9AjMf89lvR28y6wDZVMpsdi/RnykYaDl5RWmChlHDAXvd1Oc= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: d5341f8e-51f5-4782-0314-08dc9c56f4ca X-MS-Exchange-CrossTenant-AuthSource: DS0PR10MB7933.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Jul 2024 18:27:26.8558 (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: z05dpTnnMJ+hajWPwozwqt/06k7Z4/bCKjExr0lyOM1cbD3ymVrTPukZCNAi2YbK3jhvbpfgZQswcCiw2XcI7w== X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY5PR10MB4242 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-04_14,2024-07-03_01,2024-05-17_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxlogscore=999 phishscore=0 bulkscore=0 adultscore=0 malwarescore=0 spamscore=0 suspectscore=0 mlxscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2406180000 definitions=main-2407040134 X-Proofpoint-GUID: jnZgk6_cF00Lr_d2tcDIcbLC4gG6xUxw X-Proofpoint-ORIG-GUID: jnZgk6_cF00Lr_d2tcDIcbLC4gG6xUxw 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. Signed-off-by: Liam R. Howlett Reviewed-by: Lorenzo Stoakes Reviewed-by: Suren Baghdasaryan --- mm/mmap.c | 25 ++++++++++++++++++++----- 1 file changed, 20 insertions(+), 5 deletions(-) diff --git a/mm/mmap.c b/mm/mmap.c index 28a46d9ddde0..d572e1ff8255 100644 --- a/mm/mmap.c +++ b/mm/mmap.c @@ -2586,6 +2586,25 @@ 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 detached vmas, free up maple tree used to track the vmas. + */ +static inline void abort_munmap_vmas(struct ma_state *mas_detach) +{ + struct vm_area_struct *vma; + int limit; + + limit =3D mas_detach->index; + mas_set(mas_detach, 0); + /* Re-attach any detached VMAs */ + mas_for_each(mas_detach, vma, limit) + 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 +2759,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 Sat Feb 7 10:15:43 2026 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 B57582F23 for ; Thu, 4 Jul 2024 19:51:16 +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=1720122678; cv=fail; b=tMHAXfVS1MYOW3ErhsX5M18Hd/VxgCrwIVbvQtGum53aUDhRtkCJy0HaCwlmkV1Srce0XUEqszJor0oLFh6T79lXU1z/uITwjYqu9yTIlJ1Mj/PLsSU2Oe2O3GZVfpbm5/oQ6P/x1gUi/aBWCGiJWG+Iq2mPQtCib1oLCTiG3kk= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1720122678; c=relaxed/simple; bh=7oU6qNd5I1YrI+pnQ6kplIj9Locb9846FE8DwKSEQC0=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=KxZYUpnmaHNTsUjaPJLbGkW5kNxiFsr/lxzZ0KFthUd+0hTES/GA+WlXFwb+XEpTzX8t7tQIm4J/y08/03u6gCREmMGOXbPkzKqvJCouTNwbFaFwarp0p2h8l7akU8AYWogA9WMkk4hQQ9g9AgDR1zdnKWEauhCuI8ZlrFUqiyw= 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=mHVHTpKr; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=aop8aYZh; 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="mHVHTpKr"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="aop8aYZh" 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 464DnZxW031278; Thu, 4 Jul 2024 18:27:32 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=60kAsYjdha+bVEANDM89tZg/qOvXIAnhtflm3wfsjyU=; b= mHVHTpKrVn2BTB9Uys9lUjDxy+THHK41/Qg958ObkVgi2vw6WVzBl4AzHuk539wi x/Xp+/kw/HstyZLVlwDwnK7RxChky9PHl2jgPzRtYoySB1/hpdjfmSI3z3w/zh/8 zwE0VuDl9ghvmE3D//GpdMG0sTylCdMicdmEMm9/SIYtNjLJV9HJlkWdhwgs2/XS IC+po83gnb3KVoAeOaZ40c6hzjhZa84dvBcds3SMhD/h8IJb7iKTZZIbZIdnupYV MUWYecgKLMckbImiABPQaBCOU7xSNCu77blnCPzdfivkIfPrkT/87xdeMWA+DIUk M+R8No+zd8UGbxMZFq2HyA== Received: from phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta03.appoci.oracle.com [138.1.37.129]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 4029vstk3q-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 04 Jul 2024 18:27:32 +0000 (GMT) Received: from pps.filterd (phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (8.17.1.19/8.17.1.19) with ESMTP id 464FBeiL024727; Thu, 4 Jul 2024 18:27:31 GMT Received: from nam04-dm6-obe.outbound.protection.outlook.com (mail-dm6nam04lp2040.outbound.protection.outlook.com [104.47.73.40]) by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 4028qb2gxf-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 04 Jul 2024 18:27:31 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Ob2NUXeRpCNm0DdHF7sZJHrU8S1Lb9GguhKds/7EEWa2pQvooRYLxKlfauFWE5GCDv4oHdytFgS5Hr/EMKY2fEaexWwH3IElJOICMr7JagjM9MaSjmya5eRCR1FKVhCHiLqNaygzc9MIJBFPDQmBPI3W9Iw9PVcq/OPCn3HCNLuWgc7M/wPQBm7RaGsHPg/j4emcCtkJt3TxFCOzrmAPL3eWfvij1H8/HhzDXxhPiTucRmM+ruF5TZU8JmCDp+fuH0Ji5L4vDf1pxXG7BcMz8ZYe8TfzUczoltUCj+XzIp0ubUn6CLT87TbIO/PXQlP7levz6rwOlqAnQO6HnW5jqA== 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=60kAsYjdha+bVEANDM89tZg/qOvXIAnhtflm3wfsjyU=; b=T4ZZB0XFgR167TI0fwzCRQKAt3t8NrJYMvueOcCqBTbMC3LMf31TZXA4dJzhyFoKERccveZIVQM5NJ2bjI/+zIkBEfR6JcIjcazxVkKg1Tp2mFpaBDiAB4Kmb9UYPflrD8YQk81X7NzM0sTIJ6IX2CvBJBWxEcsxCVviVnGRioXCQDrcVVVhm2p0FAjRBMKu5WWFQZFRTKdwPgn4JO7SHNkMGNX7s37QSZk3Lvm3hpjw2WIgM7eJFC4zKCPh74eYMIlEToZFg0YGUY7YdeU28Zj4NtkV9/2I2Up6P8xLyL5vmuz18j9nBs8r/5rk9SmWTwxCmfZ3ngf6YKl/o7rfiQ== 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=60kAsYjdha+bVEANDM89tZg/qOvXIAnhtflm3wfsjyU=; b=aop8aYZhsEZG5xlU2yqoJ+7LmdFDGrOoD91RSXYUH8XXdMNPnT67jh8ExQxj9j/raceX2bMT7+wYsQb0spi111o7cclIdQpF+EFIFVf03504gwaJMXWGFJmZpneDCSjUVD9xatT9ZkDb9xK9NWv6GH9ZiddaH3Go6CxkIC0MVbw= Received: from DS0PR10MB7933.namprd10.prod.outlook.com (2603:10b6:8:1b8::15) by BY5PR10MB4242.namprd10.prod.outlook.com (2603:10b6:a03:20d::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7741.29; Thu, 4 Jul 2024 18:27:28 +0000 Received: from DS0PR10MB7933.namprd10.prod.outlook.com ([fe80::2561:85b0:ae8f:9490]) by DS0PR10MB7933.namprd10.prod.outlook.com ([fe80::2561:85b0:ae8f:9490%5]) with mapi id 15.20.7741.027; Thu, 4 Jul 2024 18:27:28 +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 v3 03/16] mm/mmap: Introduce vmi_complete_munmap_vmas() Date: Thu, 4 Jul 2024 14:27:05 -0400 Message-ID: <20240704182718.2653918-4-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240704182718.2653918-1-Liam.Howlett@oracle.com> References: <20240704182718.2653918-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YT4PR01CA0349.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:fc::24) 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_|BY5PR10MB4242:EE_ X-MS-Office365-Filtering-Correlation-Id: b85fd3c5-05a5-47ac-dc97-08dc9c56f5f4 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?3J5MDAt+JC442yZu/4nAwjR2i2/qgtEhaoHHcP1D4K0pE347ekdsct7KuIM9?= =?us-ascii?Q?SxjmicWQPV+6apyZmx8n89cVkhnQtuCk12N8+LCmpY51AimFN4hTpJQ5gdvT?= =?us-ascii?Q?LY6dnEAXKe6wIwnIuVVP9gLF2XUyBxNf39BWeV2S3DWHdJmB4z4VlhHISVO0?= =?us-ascii?Q?qzi5XSzBWGXisZK0Y7kC4blS/qrrdGyq5QChmTXDCVeqsJZS03a/cd4nU4ml?= =?us-ascii?Q?LJMlEmb8Bfi+u4SsA2ka7MddW06WzZY+6r32gEkNnUL1fNA6i8GHXUnbRs6v?= =?us-ascii?Q?2taVmh8ueikTy3IGcm3sytkMm9AIPvav70TY+re1iHtX3bfDULSyrn5U031l?= =?us-ascii?Q?EciBpDvEwpe1Hl0olPPC2dUoV9nC+DNg9iQBaahFHoqvGrAzYDEnpHveMO78?= =?us-ascii?Q?zAjEwTeP2hjzLFn6u+aQtilgyaBAV5sfcGWxdOl9KPhU1k53naedKy085rA7?= =?us-ascii?Q?QWHbz8skKQU0wtxXZUHb1cAvVccslDlQw0tycmYiWfyzrQm9EGqyHnchCImt?= =?us-ascii?Q?q/diwc25DqzPEPk29i141CW8XotvO2Iu7Uk51XuWZGbYMt7Ted39oiBae+Vz?= =?us-ascii?Q?Ym7xf2/QkyWwU/KLY29ADTN4cDPsJ5lTlnD2vOUVDS/U2drytx6nC1q4T9u9?= =?us-ascii?Q?tySfZROAJ8Mk15NHShjzqCAg+4DmW0IvE9WLzZf2yT+8YdFCJPTeWP8WsYnp?= =?us-ascii?Q?5dGsQbYs82t8hejoK1fU9wJX2OjpJBN8tDhxWSuIoN0ZU8JmP02ES7DgnfM3?= =?us-ascii?Q?Vw1B1fi+q3REXafjrDGLy+oZYfogRCbf3g6pXGWUQVZgwQ32ftUIPUDwftR5?= =?us-ascii?Q?tFB7wMTI5IYtUSNuNmkyGmhz6BhUOT+qhXx5cogp62d3dBTwUoDw0wMWdRZA?= =?us-ascii?Q?XQP4BIZQdM91uPoRzAu6wWeU4OVocjtvaTbn3pE3oCPcP4t695aNshvawBmr?= =?us-ascii?Q?3Ee5lqi8HNngktgNSHWpwVRrGY8NBUfmAj78NYWTlRjhZKmUxBpkDVsmgSSD?= =?us-ascii?Q?v6n21OFaCXfVYeIWid90ZVlMplOTEHxs3LIyprHpSijb3wYcA8u5qJqFEvsY?= =?us-ascii?Q?y9KY44T5Z9Ar9Lk1R3kC88kjrfd6hbmEWLhgmUDqIrFbyziTLBDYmpvsgfXQ?= =?us-ascii?Q?wyOx/ESxoJ7JbqZQPwKXx40vjHdI+NlkLmRwB6mBd9RWAuXoATe5oHk7YOyq?= =?us-ascii?Q?mRBomC1QDL/Wjv7ejebATaiGSm+M/f7ECvVIiR5ff2665srPWTXhuCEiIpAY?= =?us-ascii?Q?zioKjJlctgXRAlF2+nXO7ZaglwIs+ejV0I1lnNB+Rs+rPNOnOBxD3vc8ltXU?= =?us-ascii?Q?Gdh9yKbB3lh8SZbK1LRS3Nwm+V8sMUN515AtpR2ztRJrUA=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?cBXxe9ape6UyPm9DTIcH+/BK8ScJ9g3v9bKYV0RTB0zHowJU9xJhZDfsO7nV?= =?us-ascii?Q?JVFue5SkpfNipHdfOYD5GnsejhErjZzx0AJlgdWNud76+OHJhALqFAbKbwo5?= =?us-ascii?Q?uWHU9JsKtFuP9hUwnxJMsjEBD5OSaOAKthzwCzYASvQfFra722Q4fDdSQZfR?= =?us-ascii?Q?5I1B6IA1lL3U83lTx/WvmmXLVr+xuLEm5lMqQ11UfRGHcAojWv5RQnQHQfD9?= =?us-ascii?Q?aEBrXY01EnO6r1K56xFT6uGPpp/1drApufhLbqi6IWbiZqjuCdjv29HFQG+F?= =?us-ascii?Q?wm/7Ik0Lq/qFAA2azYcLljvb6X9HY2jvaJKYukCaICwOfw+jUvyBULNS+AQB?= =?us-ascii?Q?XyO3rZLrfbQK3Ijf7LaFD830o/Vb5/vUosXedB/H/yo5eY+US3AXpf4u4ym3?= =?us-ascii?Q?c9i0wfVL27eMC+u/NKOIoF7WK9Gv/OULWcVXsy3v4ntAPQVgRS/8tYa02HQC?= =?us-ascii?Q?qfhOi0MYOHY/9eIjs0+cJo0UPiH9nmV+UlPFh85WezGk9L4/YAJG/VvnJ10t?= =?us-ascii?Q?5vkOEZDeiKI8H6wwyFSSdeDbVtpjufxmcLDe5uwFTtkfqP7m7n8q4bV4WM8I?= =?us-ascii?Q?MNxApPYyk6o4PLZJEdivnKuCgfQdrxb6JE/YSFxi6+BT5oKdhDTl7CCYW67I?= =?us-ascii?Q?F1cDaqCEDyDe8yRRGd60f9GBnqhwUvGDD69GBAa9L4FP2QKz1idYtpXZcMeO?= =?us-ascii?Q?qzctx0gsS8Dv3iDcZ4b98zkYxdYFIfrsDQNlp8w5HQePegPqLD1AkM+7nOzw?= =?us-ascii?Q?Bcosx9RKWvM4hx6wLwL9bVr/WfGmlVlbppaGAM85S9roU4KjItIIfyob2GYM?= =?us-ascii?Q?MiLPyjwNNykSlAcwbG+NBW3LnWIbAbmV5tcVXQHd1kNOVyrMeprMtRD4uZfs?= =?us-ascii?Q?j8bbZIQBjSuQHES8OPhQ98GurhFiPBY4O14L6W+4RBcLHZ5leAOSYHfCUgOF?= =?us-ascii?Q?FjLbUPvxYeKUfo6swwV6fZpKBn9jP4A7sWSUEBOAey14NHZ7cCMzYMbrL2+0?= =?us-ascii?Q?tGGbiLSXAEZMQ/SyOXV1wVEMC26iaXPL7xYWFaqzhXgKBWv9v5SUIuxWjma4?= =?us-ascii?Q?bq68heO5AKJ21p3vvEl68G1l2M4cXSjv07T/RLSTHwqLIHDZN6yvnw1BT5/o?= =?us-ascii?Q?oAR8m8qrfWFbiSVFxTyEjWqRgrbw02xoWcjOgSCPCHp/meneGTnNa3baKoN9?= =?us-ascii?Q?X/xvri0QAuMwy0WsOstOos07i5PoZImIPNbxCv3cixU4an9LyajVSz1S8/bZ?= =?us-ascii?Q?N334xJlQzB9DBb7c6poSXh/YbLWkydUhAu8RkJnDVBb2d/QkSdibGa0ivcSJ?= =?us-ascii?Q?98mxRWaVyAbOzc00oHP24rqwe1QjKHmgtSATrjeqet338PzVn3DV4nUqKCAh?= =?us-ascii?Q?bS2TZyoMK4gLhZuOA93jUMkqxO9MqEnDWoHrZ8+xjXktPVQ/MQRiu3GO6ShW?= =?us-ascii?Q?aXJAD0D8mxnxuhkRrYujcyoh/YPVDohTvUTmj2gEYEzLgmD4RQWwEdtaYVZF?= =?us-ascii?Q?idi/sL7oW76xzyjCojDJvitgB7DiGXxJ6Kq5s+S5OS/qDlCKs8VzrgIf/hQl?= =?us-ascii?Q?AnN49/vJj4hNdFV59AKzzM9rldTZX7skiixz7+Q6blI1JjSIA7bxyP53tfxG?= =?us-ascii?Q?xA=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: y/uA4k4PNF/fMxZ7r8XZybH+KhdL6N7M64U9BB7P3hWOFIaoz8s2vWSo7HqqwIKSA3xgRhLhQt1YkJaNaoCpF0bs4dUpe6GpHQSeI8TxHvdqiCp+5Lr7JTS9kBhsyj61lwHrq4srWL8wMatDG2vvLZm+6BkplHvoCbSQLXbj/vfd+0a52KFgM8uEgaBlIlwNqsRN197ANIFFv8tXMa6T/YyAHy4YIbkMzOxz+Ikpnp8wNeHaKflUu0aYW1Bnd1TFI9Xe2sq8qz0zY/IP5B4obsemNBGsdT9gP4oNN1c2qDPr0374PVAeE00HpZr/p5X9v8NaG7l5RMcdkXdREZXUYTvh84GoPeRXmT7xRC7iAypD79rSjgFvTlKRk5vU+gm3uGLBm3qth7VWQmseza/H2/db9PBTAKNcXuoUvJQajhxRerJudzLWtNbKKXADTqe5YDAUZtBrb94infpGtXCUmjffVMhiQZFNE2ewllNajp5nnyN6eVoRxdFMv0Zay33naDrpvC+ID1HNTLB4zbW7tlaPvMw30csPfBTI8UVwv0vTfx7BqIp9Kp9RJ/cZfFGglGEPFU1JtjPIhD/AS8LSsgHhS28mG4DbH0q7ZUx5V4w= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: b85fd3c5-05a5-47ac-dc97-08dc9c56f5f4 X-MS-Exchange-CrossTenant-AuthSource: DS0PR10MB7933.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Jul 2024 18:27:28.8034 (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: 4p6IgJ64JAsJ5WjVYB0nsFsEv2MQIYqOhq6Z2L3mpNcbh9JpKIuAFU5Ns6+hFXWSKxO1IxIlTWuzccr0oIzD0Q== X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY5PR10MB4242 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-04_14,2024-07-03_01,2024-05-17_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 phishscore=0 mlxlogscore=999 bulkscore=0 suspectscore=0 adultscore=0 spamscore=0 malwarescore=0 mlxscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2406180000 definitions=main-2407040134 X-Proofpoint-GUID: oESDTas6LM9Adzs7KUK2zW1Qrv6ZBH0F X-Proofpoint-ORIG-GUID: oESDTas6LM9Adzs7KUK2zW1Qrv6ZBH0F 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 | 79 +++++++++++++++++++++++++++++++++++++------------------ 1 file changed, 53 insertions(+), 26 deletions(-) diff --git a/mm/mmap.c b/mm/mmap.c index d572e1ff8255..411798f46932 100644 --- a/mm/mmap.c +++ b/mm/mmap.c @@ -2605,6 +2605,56 @@ 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 + * @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 @@ -2624,7 +2674,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; @@ -2728,31 +2778,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 Sat Feb 7 10:15:43 2026 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 394903219F for ; Thu, 4 Jul 2024 19:08:05 +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=1720120088; cv=fail; b=k+JRmDG/HjVM9IIX9rEKBqHgoTbRT/Wlafp04WrmNFyxcEkuDlImD9ozneRWjlAFiEhZE6Ol8IS41Wx6Do4ivUGAUWKMvjjR0DeaWaqW0/DlmgK4WWsqnz3SUSDZFUrrh3pHjlti69N7CtPXugOq/7WkxUHAdmjZWqhdcOWwrnY= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1720120088; c=relaxed/simple; bh=yLsCZojYpceWxBcHPMJfRXfVPYQ+yXjS5NbS8G6N0SY=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=kUKsx5XK6D9S+ci+/iXd1qH1Rqm6rd3v89C91CoeT26EMwYCjvuE5Dlqu/9QVdg6+QLJkUrEZJFOzVHS1Q/puXQ+//R6kVhcVbqH7BlYpd5BiEXgMyC1fCpBR7hPuZgW7HBfBe51jye5TjRMEs32gYAAGQCBajPMO/fWW4zoi1E= 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=k0/I828B; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=HvGdWVyu; 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="k0/I828B"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="HvGdWVyu" 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 464DUYbg031309; Thu, 4 Jul 2024 18:27: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=CR5r5SlcrI9HaSM6OStIkTOvAIfiXnGdaLZK//vb76c=; b= k0/I828BESnLBHiZfvYiG4k92TEbEtnrRsjPeO+6gxnOCysWsKcxqdn/59qEwLuU DF0aMB8XaeJZbRRWpX3eurFiekOpc39i0g3uPnn+UToJggdE+3Z8k4anZoYrO9hM Jlpkrif3XUyu4exLP6okHxeBrhjCH7DeQJmeAC5SctwrMeel5VW3UlRf58BMP+wn LRN8/pOv3EOPEKONSYT8RP/Op4CJWXDYlifNequfnut1EHJZAeRS6IMBAlHqP9sU JdHo24MjUhB5JrAqUKUF2wIHkM7D/60CgpIDhsW6SkwoAFM38HdaqBdUb32HqVxL RDOALb3D/yMwYD3uKJPGKw== Received: from phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta01.appoci.oracle.com [138.1.114.2]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 4029vstk3r-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 04 Jul 2024 18:27:34 +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 464HF6rN035655; Thu, 4 Jul 2024 18:27:33 GMT Received: from nam02-dm3-obe.outbound.protection.outlook.com (mail-dm3nam02lp2040.outbound.protection.outlook.com [104.47.56.40]) by phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 4028qacuhm-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 04 Jul 2024 18:27:33 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=iT3NTnDBUJ1bccDpogxpkL3EJTe2drl6FCF/v9CyInSbrDeRqT5H2SVglUvA9MF2b1dx5V/6LPx7XddMs9gp4/+K/9tx+pDvwGmfFRADgV3e8lib9v9z60THH+ApfpzlAGbnLE0O4MEFgHFAV9asijhrzi0O3QtiLkgSzAO8lWdfQaxSm+MChgYkkJCxcAjy/Wt38SB6TUaBppmbN91vDRRlqX0LQ79ksZavMaqYtVXQBxlK4NEDgXWUtSEQzRjuFcOOOy8wjcDiqLHp4FmDyviE7T+T2Vpokmb1zTek6ZyFDgt/x1f68874XzTgpXJAGEoAQR0HGK0arsd5ElbTyA== 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=CR5r5SlcrI9HaSM6OStIkTOvAIfiXnGdaLZK//vb76c=; b=lZP150JAUdvz6H8eTpiiVbOz/K/Oxv3yXSIyH9M2pnh5N17I3nrZXU20faJsyBU0VgxiO73KA4H2m9I0cANtg1YaJz54d0iKseBnSMyj3G4uw4uA34WYM2RFqCee6ICLx8r4+SV6dt6t5k/XmcgNWA84aLO691e6MjDXOWspVJA4IQmpvC5p0eqgEhagzpGZiLAkeHSxLXx5g8mt/wTQwdvaDSgoP2AO/f6AbxcZh4jUbxpz0wDIbkwlKuas1yI7OdQ7Okb0hDb7cVcKs+2Jz2CgvTDQ9UoTIPrbYShRVBHDiLOPUURuezV+ZSWwDMxqGF4PBOledCVg0VTDIBdyeg== 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=CR5r5SlcrI9HaSM6OStIkTOvAIfiXnGdaLZK//vb76c=; b=HvGdWVyuPqVIWCRgbVA0JXyvRr1d446JAYcm13rBvpqQYyT1f9ivdy61+Tn0x0Wk4t852O/nniZytnMNfMCmnDCexDeR55aObl+IDvH6lEC2ebRenQ7667gMevRu+lAWdxpmGInELddbh7yC6vnuHcGs88EMumRtd2phbS/4qQ0= Received: from DS0PR10MB7933.namprd10.prod.outlook.com (2603:10b6:8:1b8::15) by BY5PR10MB4242.namprd10.prod.outlook.com (2603:10b6:a03:20d::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7741.29; Thu, 4 Jul 2024 18:27: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%5]) with mapi id 15.20.7741.027; Thu, 4 Jul 2024 18:27: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" Subject: [PATCH v3 04/16] mm/mmap: Extract the gathering of vmas from do_vmi_align_munmap() Date: Thu, 4 Jul 2024 14:27:06 -0400 Message-ID: <20240704182718.2653918-5-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240704182718.2653918-1-Liam.Howlett@oracle.com> References: <20240704182718.2653918-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YT1PR01CA0098.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:2c::7) 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_|BY5PR10MB4242:EE_ X-MS-Office365-Filtering-Correlation-Id: f670aed8-e1d3-4459-a810-08dc9c56f767 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?iidFsdmsAN91xH90QafBtpV3UI49GFjIY/5+e0qWhGV9sIO6cCXJqLrQ1yuc?= =?us-ascii?Q?xV+xESEwsSG1UDmNHdNZrMf+OQ8yVV1CUtIk6+SjfZlURNuhwYwB4IX16s11?= =?us-ascii?Q?oVRcafoWubDFpID8uatR4+3EB30MIBysa7RaRe908EJlhccQXH+Wra058Zn2?= =?us-ascii?Q?NXaeY7FA1KhWmJwn107vrhTCOTSwTLTRWggjhP/uAxDXRdsLMRrJg8mmwsA/?= =?us-ascii?Q?z5BNe1dwdD/+vwTRFgX5xmORSbgZK0n2nxV5/cHqsHXNfQe1dXI0i37abK43?= =?us-ascii?Q?Cea/3hTwiyllFeLJq5McSFcJdu9p+Ulbxy/Qd4fOA/cioC3hZEbf2O8g0KJg?= =?us-ascii?Q?Edft15Ii+667M5YOFYrOjEMOGQW4Gmdbycduc33FjjHPbQhpz6p6O3caWA+Q?= =?us-ascii?Q?6UQXQtr4RN7+NziixAPYqIOrw6gxXhIMXOEArOqalrVA5eo/KyFpnnAgJb37?= =?us-ascii?Q?Cwt6Fenko9HMIyobKwUe7Yj/nEdV4SjC8jYFPcUeJL265oHf3/FMiMVg2LqC?= =?us-ascii?Q?xt14Xu/jNMWkjRhXz8bI8EHMJ/1AuWP2GG/bUnotIVuv/hTFVI6ri6CRUbBP?= =?us-ascii?Q?SnOXF6gvwcZcHNUepkzD28XVcO8vNYg02naCdQxacE3ej1XcfUxpibgBCrwL?= =?us-ascii?Q?+F/bctYf5XMDq7ae54X0oUI+SiYbIQvJ2UmQPwb810Cq6jd+wYTXEEaShkDz?= =?us-ascii?Q?yCM8J8G4sw5O58OWFDXPENI4jB1y95TC5XR/QwtGgC/7Ea4u6+nruYsszDGY?= =?us-ascii?Q?0duVdjLlYFua5k1UP9c+ZGOLQUWy5UU306qwOmrPGhNAXB61V69+UBKZorE/?= =?us-ascii?Q?3kQ5Lq0PQInR4cHHG+Fr8OqbwRtwu79UDVWs8i+7ZHobN2jiM71bjZ48WbbZ?= =?us-ascii?Q?g/FT9+tVlYjxapsdfvGZckT79ADZxFfNGPzIAv1U6t1MRTIOhvWgrCp0Lmuf?= =?us-ascii?Q?rSGHAQIWfCvlqCjwg7Hk9aCKCJUsuu1FT0eDdx3QBcPyqPCt4w6ca9/r/9t5?= =?us-ascii?Q?/iaWPOOaqrPUbTwAFN69QFaQx5LvIFieuCVyntoXdI++A1f5a8iapW79cvep?= =?us-ascii?Q?KOnfhhdZioXTrqKuOuUeHF1twq9uJh2EkeXoVtFps8BJXQYB+XBTD3nKRwkK?= =?us-ascii?Q?NdQPLSsWJ17FFpTaq/ltN23spkgLlg95u0fgka9TZSoIx8GnAJGPa+sCgUAx?= =?us-ascii?Q?LTw4sZxW5Kac6Ab666tk1OmNX44nxhR8d9KyLCtWjwn0ZT9PnTSvrTv9Qcdd?= =?us-ascii?Q?darbaKNxtsSpDk3QAJbT4cj9l17MiVMIt504j3CVrxjN5gj+8QhzzuSZxQ57?= =?us-ascii?Q?b1D++eZMBOH5rHV7DXuu+qwPKEbNQ33d538n/m+3Cd+zpQ=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?/p4oqDMQ/Ehpw63abDVFfF0CpCzWOU00SGE9Lye7N7ldqF9v53QH8UDicTRM?= =?us-ascii?Q?XsEBdbmEw7NexsjdqXtjKJZHRg+v4i1SJlLHqtGODKsHcJcGDRfTEyDDU92f?= =?us-ascii?Q?t8rMNBJLn0R0thWGN7aJKTw3P1Bat4eBNIInfnLFMUyi0cFGp0yimqG9B9La?= =?us-ascii?Q?mSyyONLxwr3eUjWLvMuDQMAAkvE4zDVYX9H2P2SD68lDegjeM2w3SVe8NsP+?= =?us-ascii?Q?K40NWNaN8ABbmo9up5fo05jtJqEg2d0fcefYGgMvWDjlDr7T/trg2KdLjk37?= =?us-ascii?Q?9MQ33hR6ZFtC3NefFPmiReP3VcR7YDhzeMc5yqBpA2a3vQmJRwxCF7ceAxgL?= =?us-ascii?Q?Hy+Qe5vt/yo2l/PWknNv42rT/CORPZpoea4eieGTKs2ZtyV0ZkzPcLeXEwD+?= =?us-ascii?Q?5dBVxIpVmJeU0MTIx3i3tPYL3ga6q7fE6tyjvzoJCgpyeI0BILWRMB0w2YCw?= =?us-ascii?Q?Tksd/622nYW8EnedMI2YrlHfBxDzMTLBzHekpL4QNZ1y0F7L0XBTecdjYpM+?= =?us-ascii?Q?z53wT60MFFl/Vi2AWioYZb+7cex/fQs+/PPW8bmq5OWA4num/uI4C1XEFDlC?= =?us-ascii?Q?SaRxjco4C932JkNTOAs2UdA012+3oJ6RAsXD9VkiRuYHLAWVRqEwt2FGMGcF?= =?us-ascii?Q?SMGAwFR73j0Qkao0VnJ3QMjfA/4D7QhMETQQkvG9RSYLuapaKjYmspVhgWNN?= =?us-ascii?Q?iyO7isRtl/00gLeHG96O9ax0wArHBhl/1wc8cPEuVrTm7TIYNHqnAu7gV/Hp?= =?us-ascii?Q?CTNi8lxrq64JMsV7XoBwDOZqwklofJ600kfp7aAS4uAqCjlC0yiqJzWICosN?= =?us-ascii?Q?ffps1XlmKRNihbcE0dvpTJSfZgkTe/aLs+dM/D41rchz0Ta6ognS5bjXs6hV?= =?us-ascii?Q?npe7F8u4mi2Kn+cqbaMGn5YYEvaKkUBM9t7AsWaLEjbthWA9AUF8HwIfUWBe?= =?us-ascii?Q?uRTHPjLgh+9MxTzkxt/wVRru3sod0EugigybvcOSwA4vtSILhBRW1fiiHi9n?= =?us-ascii?Q?d/6Fx5GrqSOiOOzG9ujdnNbREoikfnT+mqVh8XXECfdG0mQsErqS68XOF1Pc?= =?us-ascii?Q?rHlr6o2otYoA/JswRC4kSndMuvpge9h/X1zOgIZbajDLF+3ZeIeTPuYUEs7f?= =?us-ascii?Q?NPT1We6/SLUgoKnXnJjZrpn/aGGfp/c5WFyZ4uudj2GAEwLmjJtlMetL7TNB?= =?us-ascii?Q?h5pJoa4rKyxWUxIUrELlqeIg2KGe+TJlQtOwmfkuQ3nx6KOMdUDQay10+onL?= =?us-ascii?Q?EDh5hSageJYLSx+bNlK/+JGPIFCUP9wdW+l1v5E1xT8C0og1P4CxaVzCXZ0r?= =?us-ascii?Q?o0E+6z2RhIk1vLpQS+dsRviK0yfPTiPLnCIcDZptznkg4GfVqZiy5hI17VjR?= =?us-ascii?Q?vfBF0xu0UlWi7VAZXvjpnUAInwuSJLUc5wXX5EPKm1yMaWBwXGQEdrBy9q+N?= =?us-ascii?Q?SgmG6gVmx1jAnjQ9rpIzUdtNsVfazjH5enm6a0I9XULMqZqe6nBx0NQAatJQ?= =?us-ascii?Q?cPRhpH7VoIu/GHkGPvkm+1KNOBafkHdcoyzkke0r5GwW/KkXaHBIJeRSKpin?= =?us-ascii?Q?uVtCCQ4NCkbNl79ZGiWOCwP3KCwdaCyjlMJeKGXYa/KUDnWCR6XuewMus/1O?= =?us-ascii?Q?/Q=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: IriLtbFdEvg/aV+AeDSUIkshBv6PoN5gTvEVquLE5HwmwZW9nnUc2V4UYmSOu8KjHqQMKjUjMxlukIcQlUVdaipekIAfFeZ0YPA6MabHHmDs7eupFqkyeRqS9aB36DuET+34Ei+umAwZOzi2Ohy5Ev/8be8CEbOTeL9+G2xJ8oprst9WARwtZtMOAl8l8u/j5N+uEjPCX3Y5DDkA/CwR8bIb84fZZqbPN/YdwDv7MCG0YRUsTJix+Y21OM/n0ERPSeHSWfEJDaw8FhghVXKHR0om9KEt0lEVJ7+GcOe+y0J1XqVu6mX4bRgTACnELh449j2lHa/1/MnhIWjV/Jnx4QB+LcvcTBoVZZFJq4mDh+2Uy19eEmii0exAF/NkeKTulpu5ne6vD3XkZEckn5xCo1vZAgTuTtJj9D3HRA6Jtjs/v8g1wyNOFxv7k6RWFo+Ig9wVWFqN5ZRfl2IVSEh5vpn9eQxsMhSOcifrVm/TfrH7S3egtB0RPeLA+R4DruENCdtBS2qHpEAESQc0ACGvIiKVUv3zY9zKYtk9X/AQOscaRMA4O/VAkHNxk29B/gd4rJznSg5kPw2YXWDwmQqkAv8nGVBf9y2GaRQaPRPmbEM= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: f670aed8-e1d3-4459-a810-08dc9c56f767 X-MS-Exchange-CrossTenant-AuthSource: DS0PR10MB7933.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Jul 2024 18:27:31.2439 (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: /UbAupT1Dxp7r7PJ8YmW82wYmQ3nElQAf3TFizAFR+yH/GS35LeiE4APDYQXmfuWP7fZY4J+wDWSY12lTXKJPQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY5PR10MB4242 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-04_14,2024-07-03_01,2024-05-17_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxscore=0 spamscore=0 suspectscore=0 mlxlogscore=999 malwarescore=0 adultscore=0 phishscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2406180000 definitions=main-2407040134 X-Proofpoint-GUID: wE1rpxM_zspPWIc0_z2CuqokNmyF2go4 X-Proofpoint-ORIG-GUID: wE1rpxM_zspPWIc0_z2CuqokNmyF2go4 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 | 82 +++++++++++++++++++++++++++++++++++++++---------------- 1 file changed, 58 insertions(+), 24 deletions(-) diff --git a/mm/mmap.c b/mm/mmap.c index 411798f46932..8dc8ffbf9d8d 100644 --- a/mm/mmap.c +++ b/mm/mmap.c @@ -2656,32 +2656,29 @@ 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 * - * 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. @@ -2720,15 +2717,14 @@ 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++); + if (next->vm_flags & VM_LOCKED) + *locked_vm +=3D vma_pages(next); + + 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); - - count++; if (unlikely(uf)) { /* * If userfaultfd_unmap_prep returns an error the vmas @@ -2753,7 +2749,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 @@ -2773,6 +2769,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; @@ -2783,12 +2821,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 Sat Feb 7 10:15:43 2026 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 419EE136E28 for ; Thu, 4 Jul 2024 18:27: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=1720117672; cv=fail; b=YXIGIx/2D9GQffuBJUwSPePQjPxqkWlfQY1boQvRAWFQOIg+5b0GgSt6/X9PFsaoGlB43ouMwkZawfN9XlNlzWshdzd9gRID64qN6KTYG5aajpAu8d9h/WDYoF8Qzti46dEomUBYtfbJHFG7OyGUtgrzzk6pPMgXyLC1T8cq4w0= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1720117672; c=relaxed/simple; bh=ZhHASXsDjJQk35XUufOhjqy994W5LpS4Us3LUb2mv20=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=vD26LzWw3wmRHQebfG55stOivMopCAMVHb6bjFY6m20hOKfcEKskIapL96kqXBvec1Ds8QStCfoLkMItsyEKyBikasiQRSt1z0SVb3b0OLhMaQroodS+JV9voJlngu8843FJ+0CAc7WGVeVVt+gm3HZGY9Y/BcTQ+vhqWDREBTg= 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=akEY+1VT; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=UG4cY5XB; 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="akEY+1VT"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="UG4cY5XB" 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 464Db5N4016625; Thu, 4 Jul 2024 18:27: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=+94w+aUh7rIC0VkZLxNQUqvZi/AuuyUgrmfpptBAnKQ=; b= akEY+1VTpi/c/ugDSskvlHPJRcjGkxkohRKP7TZaxK0HWw8UTaHQtj52mI2rVWid sqorbVRgnIgCCI/+Q1yMmWF5leYUDh6Y5UDBnD6/COtCLWyw4KPZk20XmzV6h7ri D1WYJ0w5iGN+4tTujxfGmhswvHVB4TA+dDYRmy/JoA8veM0vv5d92T2Xav9jjpvM scwTxNCp5qOuwaY2rOK/AVNXAZc4UgXP1W77OGaS9MdkB19wNc65RdKNirPXG1wf zYN1arMwBUEvBA0yayDGiz3tRWyIRBnLmgRRUr4SGtrljCTOauexAm4P8GxOIqpj a/yXBIyOHJA0KpFgORYH0A== Received: from phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta01.appoci.oracle.com [138.1.114.2]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 4028v0tqkr-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 04 Jul 2024 18:27: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 464HF6rP035655; Thu, 4 Jul 2024 18:27:35 GMT Received: from nam02-dm3-obe.outbound.protection.outlook.com (mail-dm3nam02lp2040.outbound.protection.outlook.com [104.47.56.40]) by phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 4028qacuj2-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 04 Jul 2024 18:27:35 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=E7IAkSIRQOaxOpvrgDJbMAwsKZfzWBIwt2p/WLRipi4kGhSTGu548HIq/+RhE3xPq4m7woHwfFymTVOm3eCb0mpjOn8Z6l1aAerJDeewx1HuCoKIsELJwUqKtkgZUlNs/RZQGyYb9WjHQjxq6ZfBHc+X2x6dCAQGWnQmQVEVO+ryAzyaFUoh0f1kdmHkASM0S7iFVJ9JCN3lbFRP0OLt48xdz4RsvCkr4usA9F6ZoK9n3VXaEb8zavlm4EPFHVOaSca0S/CfcD6lLLNORAC3si0W/TdUfxLoAKsFFnon8TkgS9eTY975m0aHQ1HojY54PrPT5aF2XSxJcHfnkLYWnQ== 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=+94w+aUh7rIC0VkZLxNQUqvZi/AuuyUgrmfpptBAnKQ=; b=UIuhh9jpttPq8dIhVR6Og9QCDFzClc6wnIWvSNOqlwv34eqe2+cAvJAkM/1eV2kt7GBcDWGDb5Yg7z8CB2NWqIlw5sVDChiFyv5KbkgRHpmb68w+6YGTbMIK9QS/f/YxaStS1eHv0VhIP2CKIKLfd3qANMNx0JeQAE+Zm8dC3OfCZlsHTLUL/f+oI/MTJqZDLuNGpLNVlgn8Fu3+MrSmhSqqzcLOZyPsM2LYnb69w3MGaMiWJV2wUg/H4TGKGVLX98mwDcRtA6qndCX4k+wTqO5rvTX8Lb/mkOg1vCKrNvXNhhhyOxRC3YjgE7XObPEc3Nc/tR2hdfP+7ekYKsHHnA== 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=+94w+aUh7rIC0VkZLxNQUqvZi/AuuyUgrmfpptBAnKQ=; b=UG4cY5XBf15HzHIY7HOE/alDs5LjIqb1xr/IyNAh5Kfs3sdF95v4GVLiYOfEuE7TH2KoHx8or6vDarcF624PetVIWviL16guBPgIbAP8BKsi2OX27LFl0zs3Zj+shbN+wDXlgl3YualEwYerHA3XW6eAa70p7MU04Kn7wVuA/SI= Received: from DS0PR10MB7933.namprd10.prod.outlook.com (2603:10b6:8:1b8::15) by BY5PR10MB4242.namprd10.prod.outlook.com (2603:10b6:a03:20d::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7741.29; Thu, 4 Jul 2024 18:27: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%5]) with mapi id 15.20.7741.027; Thu, 4 Jul 2024 18:27: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" Subject: [PATCH v3 05/16] mm/mmap: Introduce vma_munmap_struct for use in munmap operations Date: Thu, 4 Jul 2024 14:27:07 -0400 Message-ID: <20240704182718.2653918-6-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240704182718.2653918-1-Liam.Howlett@oracle.com> References: <20240704182718.2653918-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YT4PR01CA0086.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:ff::19) 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_|BY5PR10MB4242:EE_ X-MS-Office365-Filtering-Correlation-Id: 6b4e607a-7910-4bd9-93bb-08dc9c56f8a5 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?TyBr4zn48apxomYf3ltYJ1rbNcrwZ2XMvLzCMOWkLITjVZKBUo81167Z/yGQ?= =?us-ascii?Q?3P5Slq84s2IhAZY49kOjYXKgwIDVVOGGuOat/HMIWNkR9Eqn18lQMKQF7V9D?= =?us-ascii?Q?BqRpb1Ox/2uW0Xn9RQdl0nEn7BIrGBvGNJk6ji/DhWNJWtFOWwzlwiUnQ5Bp?= =?us-ascii?Q?I5afhDXiD3BXlL0twp0Ae7IBanbzYaia872c51z53/dPvDtbrWEFkVn9zKgU?= =?us-ascii?Q?7+k2JmFXwrBpkVDZDri017N2H/OlCsf3Q0biWJqsVh2FV+nnGF28mjm7ioV0?= =?us-ascii?Q?KysNqTss93tQjImA0L4EZfUqw9PusNYvRb0UxTJHKRT+BttqF2DQpZXKJVR/?= =?us-ascii?Q?Vh49JIMr04NszGIfIMBEuTSmd9MFown90qw4QMHpxqLjgBJ+0cNrH1/wSxgz?= =?us-ascii?Q?WyZ+FaMGLUUx6WVYYn0fYEGS4pJaUyNbbwIXBGg/SX9gFDrY2oe/qdRQ8a61?= =?us-ascii?Q?ap/8iO7K6C74O8/J6hWttJ2xPr4Y9UYrviEh8a6kk7nkg36uuvZr5A6bSgOx?= =?us-ascii?Q?eKmuWqwNi1hcKWQBAJj4gQiNx9dG6tMXlqNKaaDbaj0ZbPsd6kuIF634LwWQ?= =?us-ascii?Q?Oc5Z7jWTcgcnfJwcsf1VPuIJzV5hB02mmeGk7J/vhxFv0wIytibf8QeCM25H?= =?us-ascii?Q?uTTyCxnE3ZtBBRIVOyXDcxevP7yBtdGsIbl2NWCd07n/zeyDQnaa7WEELyf0?= =?us-ascii?Q?bHU597FRITvlcSaBM3eagh+9UEZG+RWRKR96pPq85/ZnSDJaqv1JaMZxqsNf?= =?us-ascii?Q?2RDoOMKKnd5zRp1mnyxWIrvS+E/sCz0ENP4zMPSuquY+LDIDQ9j21XOI5Urx?= =?us-ascii?Q?C/gZNq940RN4u5HucfznS18bUWTanEUcBPnGs/X0JMVeDH/zH71qP/HDJR3/?= =?us-ascii?Q?wp+07NmLqygLUHdI2IDwtblCfOcKWt5BU3oH+a9+Rc3QZvlUEmJ0gFnatA3f?= =?us-ascii?Q?cmy7ImLY9mxlqOPjnRVCn6I3EIpyoUb04Svt2VgRXBSJS3Yp2zRoAcAFni0l?= =?us-ascii?Q?KVTozStPEk9yq70ns1AZvDic6WviVCkO27ANOWfxclrZQ503ZRwmD1gBbYsY?= =?us-ascii?Q?uoU6DTnAkQW+kQMneBHK498YlXgcDV0S2GqN7MQ5SkiWeZx5aTCESq3b+ROA?= =?us-ascii?Q?5iD3qr5ppcC05W220MTc8qP1V75PsHk6nlCC+GVaeGGbLrdzJhfe3p29RjaD?= =?us-ascii?Q?mrrL486PsfPc8w5tncV4oHU2FQ3wOpJmuAuMUFL0fukZmjDc67fWWqytxLd2?= =?us-ascii?Q?PFZ4LRqPomj5FADb8EHHwIUDaACWr4/BWaWTLVslaQPTn+w0O39qZpY6JZ7H?= =?us-ascii?Q?riilM/9QbPg6PskT+aUwn4zJ6DjnktWS187g+nkuaviTYA=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?quVJ2AYEDMXO41TKjou2ngrnrryyzgUDM+/ir/mcMWAcj7XMilDjc8yxL0J5?= =?us-ascii?Q?uw6R8HqPLK9isNbaGREYmZhXVhROaakqKi2+5GBIK8ggV08dZlWDrf8pXhRP?= =?us-ascii?Q?A2+fvOIAN4CRnZtzpa/OZme1sFnZgHoKBjcU56UgAB6F4BZ6Y8Np+CadBh4z?= =?us-ascii?Q?zoB5ZqeMp9EJrRurUA1rJCHSG23iZ/PXEhFCruTYYQJSYF/Cx0EV/jEt48j+?= =?us-ascii?Q?IfLCLIPZ3eMalfHODa6TiTDBbZal5smexgVO3Ch8952onh6VXtywK5LkyF7W?= =?us-ascii?Q?ZW9Nz/htooF2EHZrOsyDusLyxfw1VtJvkjex6ydueWb4kjBEc9ahMiqp//U2?= =?us-ascii?Q?7nMqDzBl1avcK5XeK33wJlzRB8jjYYT9tRwzhHm6FALn05g6IjysjwRHiKfi?= =?us-ascii?Q?PRrWSjug7AVM51/uOVyVkiJVy1N/TjekT+lIQHUUveXKL0moBitk8DGJOTGD?= =?us-ascii?Q?WluIjQYNa3fdbvA72K1rKPmpoFGMhsE+77ZtVWnPe8Vb0+P/0zr95QceXRxp?= =?us-ascii?Q?cRjjvNVUAD1FXR8JTdnQz1U6ihaBDX+eIsBMHLZDvST+9gsjTZy6+Hc9QC9/?= =?us-ascii?Q?D/vUd/vhdJpBxqJ3V0aL21fAK7GW2+d3zcfomqdn0MndY5ouvpOV3kqoQWxj?= =?us-ascii?Q?bvITAzUwNUl+td8ipeh3muGUMYzxriAc4aGJ1HLmaBc79SHa/SK6QZ6a3tpb?= =?us-ascii?Q?7uLOBK69NC9KVemYkTlwKyaBhJMcNMfRKdxtaQcPcVxg2H/Mj8pfNiXyRskA?= =?us-ascii?Q?CdOOExiC/bqZB0Lc40WBOTPJUkZNjXOBk203xVWBVrsP8yd3/yW0p9TN3324?= =?us-ascii?Q?uyOhPDiTCvO3rlwxYmZoFqaI6OMLbSMyHf4bbB9zZh76PR39RCStDRdOqKTJ?= =?us-ascii?Q?Vdw1CaNpqlk0CCeJz4j81suKORQfx3j0NuMTBE7vCzSIdERiGwjsvK7U+rMJ?= =?us-ascii?Q?+d0IswjbX5fjOVjzTQMmlWZJMuNn7/ucRwmI+PaaIxK7YX4Vv1R7P6bMIVlW?= =?us-ascii?Q?HoMLmnTbJ0MEmn94rSldN+91CrYzF7PBWCQUfV9jn7beLS82ltH/IpVYdbV+?= =?us-ascii?Q?2s60VETiYlnbTBY9ijztSS2jI9Z07gUGRRn+1wfMRrIsnU5fUUj0gsPXwKlC?= =?us-ascii?Q?7tCJvr3wc1koRSX3MyTak44JylWjD54bKd0tdyiAFvQDQM8aKOF8qYm0EAxo?= =?us-ascii?Q?o1FxKi+xUz9u7ksPSkQv6wql+R38ZnAnTRjk0g5HbtBBTTfsz3D0h+51wRvP?= =?us-ascii?Q?bz6tDI97HBAi+sVxwUpI4OcMI3S/eeZ9XU3J5dQv8Ek83RIoNPYycXsYylZv?= =?us-ascii?Q?x8G+Svq8kwYIC+E+U2N+dmQAjCSgQ3MYTw4E3wEsFAFaG6SQ3CkDPypfaeJi?= =?us-ascii?Q?M0BFGVZiky6jSCOha4m7K9+NLF7GnFPKQ97HzJrFnaNO/kYSjM3O3e0rW05z?= =?us-ascii?Q?55hiYHcUvGqtHrnl1jultnGGFpnzor7gOdGlg4J1m55sDZ7xtgEF3b/8qTYP?= =?us-ascii?Q?7OLUFxFIzqG76Cr8TpndheedGLuTfxX6U7vaimCEQLFavqXWGbW2tV5GotHO?= =?us-ascii?Q?Z5wLOMb5j/PVnJDiHvKNDdHHqbSFc94W57pN7tVJ?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: TSJ2QIDY9wzAWk01wGq35hPw8y/U1xTrjSr4cjBEktWCmg4R0RRel5S+mzI7QBXu4QYLy/lE/KQz4aB9BdhCL7HmAhP5gkSyAiHNxtH7vAxGxo+48RiQKaVDbZV9e3yRNiuupqaDBb0EfVBdugJxq2yUey7bHQRjf58kun75DNcXHHi6mj6kKKggQBq2xk+w1qnjKpM040wJRL9k5Ejw59fOPPg/Pzr87asdLikWXjlALS8h+SEvpntSuBQgeHbsJ8AbZv/3IrZK7RtgwUThIDjQZjclcIzNrijsITSLRmjYkXLVMeZ5T5QG+8L8hLp3tKXCVn0+E1FpMXbR+98z0r+BgRr7y51AyFnxljWrl2wD055TTVVUJIBLRRCxiwvads8alBhIwEdYkkdLPcSyYeNJX7oa16mdHhPRtZMZivYwQnvmoV8Szs5DS6SHXywsNmMM38PAfCR/9fgSWLhYuK5aJLJNegXN+GPMvQ6F/74fCNf1n8VQsnGdkrJtbXK2WtQnQUMfb+Gh/y+CZ2wqfCa36YVBcxIRF5TSBCIWZKjU+aNkVHUwi5nOAqFCE5F99L34xXY+P4r7obsrYGgBsMmycOUJJ3S8wPVJ31iHOBA= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 6b4e607a-7910-4bd9-93bb-08dc9c56f8a5 X-MS-Exchange-CrossTenant-AuthSource: DS0PR10MB7933.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Jul 2024 18:27:33.3273 (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: kg/yl5RrqNIG3EM6BiH2RTk/4+B54vo5sgpd1K2tlx0CWaWzkXN6cHvEUSrnw8MNUAFNv+GbaxerLWUdfSQtJA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY5PR10MB4242 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-04_14,2024-07-03_01,2024-05-17_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxscore=0 spamscore=0 suspectscore=0 mlxlogscore=999 malwarescore=0 adultscore=0 phishscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2406180000 definitions=main-2407040134 X-Proofpoint-ORIG-GUID: QtWr2BaTsvvemOnCSPMscJQ9mTV56EGz X-Proofpoint-GUID: QtWr2BaTsvvemOnCSPMscJQ9mTV56EGz 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 | 137 ++++++++++++++++++++++++++------------------------ 2 files changed, 88 insertions(+), 65 deletions(-) diff --git a/mm/internal.h b/mm/internal.h index 2ea9a88dcb95..f1e6dea2efcf 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 */ + unsigned long end; /* Aligned end addr */ + 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 8dc8ffbf9d8d..76e93146ee9d 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 @@ -2606,78 +2631,59 @@ 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 - * @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. + * vms_complete_munmap_vmas() - Finish the munmap() operation + * @vms: The vma munmap struct + * @mas_detach: The maple state of the detached vmas */ -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 * * 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 +2695,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,24 +2715,24 @@ 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++); if (next->vm_flags & VM_LOCKED) - *locked_vm +=3D vma_pages(next); + vms->locked_vm +=3D vma_pages(next); =20 error =3D mas_store_gfp(mas_detach, next, GFP_KERNEL); if (error) goto munmap_gather_failed; vma_mark_detached(next, true); - if (unlikely(uf)) { + if (unlikely(vms->uf)) { /* * If userfaultfd_unmap_prep returns an error the vmas * will remain split, but userland will get a @@ -2735,16 +2742,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. */ @@ -2753,21 +2761,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 @@ -2803,11 +2811,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 @@ -2816,8 +2824,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 Sat Feb 7 10:15:43 2026 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 6E4AF13C67F for ; Thu, 4 Jul 2024 18:27:54 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=205.220.165.32 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1720117676; cv=fail; b=fV/S3BIcZZbs7YWpuMjcNFOIIU//c4SY0mObNS+48bHbqGr5OVevAN4zBMtj7a9VvjPGaKZ07t/MHtIPFRhnJpn5yMNvHGXS++rmLqHh2tkseDRuASFFzyUSB7n5thtKjEDgrjSUYWYc54Qe+aFgVmMeNZR0AKChYl/NB/rMA/E= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1720117676; c=relaxed/simple; bh=QiA802zTVfmaJ1Sa6zUkOIrU01oWeRhuROQrUOtzoz4=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=oScen/YnTFDbXcLWyk6ml0gQmoRqn+WPOdCWoe1B0nyRRqqejjhrGW2QWfv5iiDtI9bd0SudyhtHo5XE7/9gqxY2pYIhg0C/wUBfSdsEVGH9W1vxrzLgGMjOAw9qJ1oiJZHek8+9r1jIuCiz/v9BZI3eL6FxlKrNoC2v0K6bEbs= 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=KZvdvvFC; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=PexNrpl3; 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="KZvdvvFC"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="PexNrpl3" 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 464Dro5M025896; Thu, 4 Jul 2024 18:27:41 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=UYtXybBvuR/E6XnNi/cBy7UHclkrQo+ecjovwhPWttU=; b= KZvdvvFCF7Y4CH1hX/caDfi212Wsz7D7lFk81CqU/97ZxwPUqzh3XUPRiikNQ3P0 Gr1x0sY46HJHH1lUj4dVvLEXNoB6s/uqaJr1CRu7czjlenKCycngPiHEGZ6A5Fo2 S9kh8PhKOBJaNrJrnC7syDoW6X7mB3rRuhdblqcYfN8ssEdFvwfQTapjxIyViA9s dVi+gRFqfiCrm1zzYj473PDOutvUYSS11je3wGNNqTLQ24fYaFFLBLwnUoDLto8u il55ssi+nt+r/9td4inhyWJAclv5CKIkhCYKQ3zEs9rUTGkkLZJB8Hun4MOysUDR JQPOpyt0bddTzIgQBR2jqw== Received: from iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta01.appoci.oracle.com [130.35.100.223]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 40296b2q8x-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 04 Jul 2024 18:27:41 +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 464GBDdm024208; Thu, 4 Jul 2024 18:27:40 GMT Received: from nam04-dm6-obe.outbound.protection.outlook.com (mail-dm6nam04lp2040.outbound.protection.outlook.com [104.47.73.40]) by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 404n11kmkj-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 04 Jul 2024 18:27:40 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=VwNDTWzecHWL6IlNzWvDYMJVm+J3g13pb6OhQiOvVpNPumFg1H2BsuvEQnvoZKpT3lwQnDceskXIXt4fXupPSh6cnuaVWHkXRK5THP6Gq1ZGNVePztGj7rTD102A7n23sUiTHS82xn4gX3f0mwa/+QiNc6liXALkNRc+E7/3o1Ez27mHp2u66ajMjOj9SiOaBZo2XIkNIXJGSf9OmnYfRrR9B9FnFxjlioEsiSP7HxIcBlSg3S2jc0EZYm0KOwJR6U02y/I7G3x0H3JaL0RuoYHZp3sAzUSlvKqLKlXiaMJXc6ACGbEeDHZZeq33+KVxnkk5buraTRr61An+b/Ir/Q== 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=UYtXybBvuR/E6XnNi/cBy7UHclkrQo+ecjovwhPWttU=; b=VWGpPHl31Cg4CShWHT1Dzj/6R+itHlPPz5bpyqhaKF5CCR8+CShjySqW5jH7dWmPIEcfnbLi3EnCSs6iGrVOM/ZU6xGWGc+FJu9dCyiNuqUK55T7vIXzPVev7XUt3FKLRRleeUq1h+8CT10HpNfCSMt07ATULwlt2OOk/g8dUK5SPnQRl5zC10uvkN15vlTSMbnmZQfgT5YXKLGJnXC+m8+cPYMf9Gx01GXVUdrk1yY5/N8DH7yDIwk19MiGFlqlIwwET8KkaV+GIjS37OAobsstPBQ2+XWsGv77t9WkwqOVfRcHncOO8SwxiThY+vpTLlykaRVG378WLHapuNAJ+Q== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com; dkim=pass header.d=oracle.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=UYtXybBvuR/E6XnNi/cBy7UHclkrQo+ecjovwhPWttU=; b=PexNrpl3hQVi4/dVKWfUEcEQldrjxdeDQaCFmyW8p7kwBsLvJZaWGi8fUWs3TUYOOQHdAEhZMD0K25FmEoPo0bAuNc/Foi6nzQbfV0EU1KikJ5DHcAhFji9tDxVzedfedqcBz6NrUkXQl341gfVzozA/41Rpw90NcppY5UNw5xA= Received: from DS0PR10MB7933.namprd10.prod.outlook.com (2603:10b6:8:1b8::15) by BY5PR10MB4242.namprd10.prod.outlook.com (2603:10b6:a03:20d::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7741.29; Thu, 4 Jul 2024 18:27:35 +0000 Received: from DS0PR10MB7933.namprd10.prod.outlook.com ([fe80::2561:85b0:ae8f:9490]) by DS0PR10MB7933.namprd10.prod.outlook.com ([fe80::2561:85b0:ae8f:9490%5]) with mapi id 15.20.7741.027; Thu, 4 Jul 2024 18:27:35 +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 v3 06/16] mm/mmap: Change munmap to use vma_munmap_struct() for accounting and surrounding vmas Date: Thu, 4 Jul 2024 14:27:08 -0400 Message-ID: <20240704182718.2653918-7-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240704182718.2653918-1-Liam.Howlett@oracle.com> References: <20240704182718.2653918-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YT4PR01CA0089.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:ff::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_|BY5PR10MB4242:EE_ X-MS-Office365-Filtering-Correlation-Id: 8e28b3b9-9628-4b0c-c1da-08dc9c56f9f9 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?QKeCHV/wez80tEs0HTVmwxODDyEik+SsqKOReyJXwjSKKx/+UUiX59iHTifQ?= =?us-ascii?Q?a0T7FcFw57CdodHkZWKXVKznmt0RnF/l03cAfflTgd+PO/jg4+F6aG8/DSFG?= =?us-ascii?Q?MewYT7qmj0DGutoInC4HYcrmikHTQXQ2uRNBxS+HdX6wtz7hEjgrVAkeSjWl?= =?us-ascii?Q?x+HnongTDN4caj/uukFx0gPyHcfRQP3lr5J82WkXEVGVLoOGP8jrsiy7sv0b?= =?us-ascii?Q?dqbRF/YfBSFu2uVPHFaOa9vdx3rkkOUzDfA7uowX5/bwmwIJ6qT+mtBebB/s?= =?us-ascii?Q?h4TqIHGuWwlhRGubMyS0J04wGf4XI8z8oOk/PazrPk8nHrTeGJEQjyzRVK8R?= =?us-ascii?Q?ddwOF5q7c5LfYFsF4kzU7nvVFc46eZtUrndwv+bzOys5LuFWeSMo/g5Qlz+f?= =?us-ascii?Q?zwSeRfNKlWEjuB2l63zZQws+1/B09hDpvh4flWwnYX/GnPOJKyNNAPtQXElr?= =?us-ascii?Q?yyja6rfpn1/6QyZwmE/97avXAYm12kZkRCuR3+hPISpyusKbS+9ZC5VwSuGq?= =?us-ascii?Q?xEnXzM5DMYKAHTIBJxWireWT5Y9CKv+EH8tK/knywBsICsorM1ovfwnESmy1?= =?us-ascii?Q?pAmUJDzbdhk0txCUPmkx+XgUz3lJ02qZLDnTTGQ76Husz344sUVQn4VLDdlH?= =?us-ascii?Q?19rY7jykjDYdac+6FJnSKBZNxNznCKVStnH+Q+otTKLhrOUUzyEvWAtWxoUl?= =?us-ascii?Q?4UEDcby9Iq4kFAFf9+mUc0qw2b5Ewo1Y0nof8mll+Og7qg/FK5ZCp3RU6Q90?= =?us-ascii?Q?qJgEy8VdsnHseIU3uLGx+U41J3mTVryyOLXkW//WmOu5/B6MtlAG2Oeh4k7V?= =?us-ascii?Q?Fq1UQLRrF34GDVJ7Uji2snJa1meW3AgLB2fhkh7ubMlrYbZoYbS6sAOi0QOv?= =?us-ascii?Q?9+W7fO9S5Nv9iKJQslmWf9gUHQlh5OFa5yj1s7FM+edGqYJWvepBYaIvVsvh?= =?us-ascii?Q?ilhAtwV+wXYv1T4XYee+OzwSxIDfsLFCwX4AMHfoinopsxCpLxMakNznCZSl?= =?us-ascii?Q?/WczfV6h0L23m1mY1idJy5Gi3NsldXKVPybGajH1nQElkzRfZRGwzkAgdFjl?= =?us-ascii?Q?oj6S3FuATRbHt7vfdNIrHuMOkuw7aJahWplWjqEQX2GhV7I/yVPQ+z07q8Gb?= =?us-ascii?Q?dGMynsaS2wVI9ArGTqttHxP0zfbRwqCBcQWvo8JYFyBjVnRzt7lV3c04tWeK?= =?us-ascii?Q?j+MidsqMDPU1yspFmnJVq3yoNHP0yhnHL9TVv53lOzmTynMoU+0g4sY458vw?= =?us-ascii?Q?ODVIkwkBIBvbQCgphfiE7JbYkCE0cKeXTS87DtHna0XWDmewfuhAgyUEHbZ7?= =?us-ascii?Q?yxOk3iERpVsNNkG29+0KAEFnnla+qq0dVPTMU6+FUCF2lg=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?j9wcy0XsBQ7U21DxIfaYD85tLGwvdnBwr95B3PwNQzw2zrnT26QztKSj27Qo?= =?us-ascii?Q?cUuUKnMSbQtE0qgCqKLKpBkWuMclbf7bT+G27WxLeCE8FQZRu27mJiFa+UMT?= =?us-ascii?Q?awxha7y+EBCxwChHmt/wl+A00xvOv8/Dqrr0LrL07GeWG036Wrd4RBHRmj++?= =?us-ascii?Q?oWblC6dMa9KqYQ2BO73yLjRxH9aLvm8k+VR/jdMfx5PpqhhugqOyFcnalyUv?= =?us-ascii?Q?pYMxu0dAJ2esKO8vXa2RhoUYgOn8Uc0Y5uCyYlh/Fi6b/YKkQdZc7Q7L90FK?= =?us-ascii?Q?TLZMdrjO/K9yDDxhy10Vg8tnWVJv+ry/S7asuUEc/ueELMBMeyCHB8LXjOJS?= =?us-ascii?Q?JTY9e2KIxnOE6hx2tVFc9bIhR882USB1tSzbCNFnKxoc7Wku0jH0WVrnI07H?= =?us-ascii?Q?xkC+7XuA8HZSNnB0W8FLfz2GZoSNspQRPJDmTSEZZ5dQbDei+CwmBHu8vWX5?= =?us-ascii?Q?xkI9o/TxiEl5VFlK40V0gmUBAnWNxCRmVvmeJnPvu+ittn7U6NVTPGdOR67b?= =?us-ascii?Q?b9JXj9BvrzeviAZeTHGBFBMBFyMckeaxUoXrWPyS3ocApto5Utz5q5cQTgXQ?= =?us-ascii?Q?xWkoOlyAk1Kksf5POzPG9IWwuFhZSMyxotPs8WJa5ku7osq1Dc8lTTWVNQKe?= =?us-ascii?Q?aZCWKaD5JUG10B/bl6Iy4Bxv/aR33fjYm8uy9H9NZ0hIt3cIiiEbZl873Mlz?= =?us-ascii?Q?J+WHYZ9DegHqFijaW1fE5bd9ZHaRrz5Dk1ynGZEbrSWHBR6jDz7nBU+GB+gE?= =?us-ascii?Q?oClWHwLFvlA9LALmSL/qVZg7F4t3CFoLS6IbRNu6xyq4+HtzOMovmRTlhXWy?= =?us-ascii?Q?m11pA6newXUqDnHPQtFH8J2IWQ7OT8p+3LofBR4YtubP+/Tif5SRVEq87a+Y?= =?us-ascii?Q?9vAqUteOFXwCpa/k2tW+v23ZnTIn9WaQcSGtHl0Q53d2+yVZeGxj9hYIm4PR?= =?us-ascii?Q?4CTCe7sb8+HVQYYaXo9UGCunywG5bgCp+9V2N/5AJD95k3iZfGsqTz2XQpZo?= =?us-ascii?Q?YW4iwWX763bubd1s1EEbckUzoL1HWy1/wiqDKzkdew68tjfxjcLc0gEhqePG?= =?us-ascii?Q?k8txgRJRj8bFFD/Ay0MtwVmARlS4wx5+0sz/IwZBtyEsuPM5KA+lkfXDLy9X?= =?us-ascii?Q?pBloQb4tn3Tlyj3ui/Tmp8+lRBA6fzfOw79RrbFGHFCX8JoYqOW871ZvsNru?= =?us-ascii?Q?4n0YA6Hj2AL3Rpewr+x4SSQ2h+3EAQtAIzG4rrnUM8EpLGuT7YMlKvCZ7KBg?= =?us-ascii?Q?2XhaAjBs/eOWA7Fda1ND4J6yNEziY8Yqo1wOOAUbACxKV2QZz2pxUFW5fo8b?= =?us-ascii?Q?cskzvZTbTXsU9eqXPPamjccpCHDi8Zh7aw81kEBMOQHUXAfH5piIaaSJ/DjB?= =?us-ascii?Q?MUAuAd6bRs5UH5b386Qe/XrDxA4EoVYJRk4y8J9wDJLozYNlVot3NnmitGby?= =?us-ascii?Q?CkEXme4fnPrjgM3LpRA+oYeaWGtKwi+BsfYLr7I0FHL0nh4k+Pf7ytdYWbK4?= =?us-ascii?Q?JdQP67NmD5eYwV0gR074gDdrr7/WG4CZeIhYf7vqwUgL+0besaTNToGbfkRa?= =?us-ascii?Q?Y0M731O4B8SG3OaIZgON+jOSf4ragF86whlFraNW?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: InH4DDtQ/SU4LRDJ7hXPiyE2RWj75KXAU7ek8uBxRXLa+uhvsEEBGpZZzY/kFzaZ2j42DuNqBcVmBVToNnLtxlHu5cvnzTFwb8buSC4SCKzQQlRjpcNxjOplpc+DcUpqC9ZgGsw/9jS+rGLr/BXVd3Na/RwoC03v9ZgCVTKAilENg0PjoV/LYPf0efi4fyDI1c825O2l46CVvJ3U9hDB6uuU4X6/S+azbQXvqnxdHlmoUoTELxtbn9L/qQXxMKfsYH7esz2PPUeyJSy8kb9jEdKLzgwYj6gStEg3b5S9PNcelPhNt94O7MQpb1RRqmysl0k4/bvIHFN9ydAUGELVsPa+XmesbSYNieN++18e0uxTY7d2S1rS5Vdw5f1A/Xh8jPbsxiSS3RsDmxmRWXIMrUGJlosQyn/6w1QGhof27JaR/o0OyElzESkNGY1T73EwVINNw74cfhQYIRJN3fKxWL8pES91Ivv/gisPd6DiWMfkbR+zZC9DHjUtB9gugTgsDyMNYMbv5C+XsmLdervxnXuMGhRb7tSpmO2fkzg1FsMunzKPrcc8C5U+vvUEFtapTS/loIEpz9JxclIQwMFVKX4ZF5hXNiJwffvOf3Rhg7Y= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 8e28b3b9-9628-4b0c-c1da-08dc9c56f9f9 X-MS-Exchange-CrossTenant-AuthSource: DS0PR10MB7933.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Jul 2024 18:27:35.5658 (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: KiKLy6SSTFDCdVTmjuB9QX9j0jRhbTsWbG88FR/Ig6ov3dSdzG8cLeElKNV5SF97gjsJAjvBNMogE6WRvGSXYw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY5PR10MB4242 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-04_14,2024-07-03_01,2024-05-17_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxlogscore=999 phishscore=0 bulkscore=0 adultscore=0 malwarescore=0 spamscore=0 suspectscore=0 mlxscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2406180000 definitions=main-2407040134 X-Proofpoint-GUID: k4iyov5CtiV4t3pG6rB3uVXpnd4FPTaW X-Proofpoint-ORIG-GUID: k4iyov5CtiV4t3pG6rB3uVXpnd4FPTaW 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 reduce 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 | 81 ++++++++++++++++++++++++++------------------------- 2 files changed, 47 insertions(+), 40 deletions(-) diff --git a/mm/internal.h b/mm/internal.h index f1e6dea2efcf..8cbbbe7d40f3 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 *next; /* vma after the munmap area */ + struct vm_area_struct *prev; /* vma before the munmap area */ struct list_head *uf; /* Userfaultfd list_head */ unsigned long start; /* Aligned start addr */ unsigned long end; /* Aligned end addr */ 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 76e93146ee9d..2a1a49f98fa3 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. * @@ -2634,12 +2611,15 @@ static inline void abort_munmap_vmas(struct ma_stat= e *mas_detach) * 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 + * 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; @@ -2648,21 +2628,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); @@ -2710,13 +2695,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); @@ -2725,8 +2711,21 @@ static int vms_gather_munmap_vmas(struct vma_munmap_= struct *vms, } vma_start_write(next); mas_set(mas_detach, vms->vma_count++); + nrpages =3D vma_pages(next); + + vms->nr_pages +=3D nrpages; if (next->vm_flags & VM_LOCKED) - vms->locked_vm +=3D vma_pages(next); + 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; =20 error =3D mas_store_gfp(mas_detach, next, GFP_KERNEL); if (error) @@ -2752,7 +2751,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 Sat Feb 7 10:15:43 2026 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 5CF0A13212F for ; Thu, 4 Jul 2024 19:43:21 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=205.220.177.32 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1720122203; cv=fail; b=M276NDd40Mlfdpu4d8O5hgBBSxmmMwqfmzBv3g89xzHiQuan9AHXOYbinJW9lKQFkyCp2GCSjZNc0oYjmUzun43jyStjIr3WSEEoW1UIgNeb6vjay53r445amhjq3o0O0eBMsbE7slh2aNiMYoQggT/rIJaa7F7gGSRQP9igg/k= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1720122203; c=relaxed/simple; bh=V4UvehlRwyVNFgxa/229XxVg9A19bIPLeQ/Fygw8sas=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=kwyfki81axjnZrlM395uDpeTckOvyo6Am29bHgU/OqW8wadKDKzdqWELqGg3bBCBGC7Kw7FFB+DlBLlh5qryZCXaTqtQFhVLNQe/bOCLSEdI8dwdjeamujNcbWXyzvp496+z+HAXZleCePxB8QgA6g/EYwgFedlF191z7V8NIvk= 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=YNaccPlN; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=HWhd+YOh; 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="YNaccPlN"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="HWhd+YOh" 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 464DQn4S013142; Thu, 4 Jul 2024 18:27: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=piltnTByFrtmgy9GlOmuLW0JbDdTYktoJ0ISndNfSNw=; b= YNaccPlN+Op4KzApCwLRBhYZGA2a6Tqv6gtRxf9EC0WD1DEwNtsWdxEULnkmbaw9 8pldx5mHHCPnPiOvxTgfJKlm+AygIOm20P5xVVOLPAHs64LTDCWT57z/jNWv5P0B riQVrq0xgb9868vWfk1cP56YXLy3n7hzy23mLXJ47exLkHdfwLZwv6qLNZr5+vhw ClDGRb75uGZ3knvPUKd2TKVa3tbLe4yOS6/WSNkF720Gne4rIHmuktd/ajVG2ZuJ mM1oJgma/+44myjYRE9OiYlicBHNpbMR3aP811nGQ//iJgbPTj8U875+jMEdd/fi k+y4+Jw/hNacIo5DMK8ZsQ== Received: from phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta01.appoci.oracle.com [138.1.114.2]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 404nxgm8av-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 04 Jul 2024 18:27:43 +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 464G46hw035991; Thu, 4 Jul 2024 18:27:42 GMT Received: from nam02-dm3-obe.outbound.protection.outlook.com (mail-dm3nam02lp2040.outbound.protection.outlook.com [104.47.56.40]) by phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 4028qacukd-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 04 Jul 2024 18:27:42 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=f1PT2LOVQPTe6JnzPWK8O0Y3naHRN6p5yAS+KpkdqFLUx70rMv7/hQF31O9czsBpTXjb9RuyOqtjAlZOQoTRmSYf7kYvMWNbntR9zwosCLl2+7zKODuhZOAlAhXksuCxbE7Tfeowgugb2yqShDPCCih5/eoRJE4ZePDDAzzzbLu74UMQ+t11QixpGETyM75i6eLqYxq88as9i0PZAaG+aOzseXUGo5U2Th3Sf+AhtB69ZlFiQVx5x6FpIJ6jmNAHaqqzfO61w5/XvjyW0XJni7fEjYNlyCroKgVS4zD2HGVfF9bSA/6aI0YPxfgBfDlydTmXeMuoq7VXYHu0+6iE9g== 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=piltnTByFrtmgy9GlOmuLW0JbDdTYktoJ0ISndNfSNw=; b=kKw5awA/LnTKKOYa9lxOX0JO1t2EDn7cE5RAQXi0BtBB6msB9AUnsY7cr6MbKHTrHGabEazbcxAS/tKIN1/Z9F15qKRdHMWOBQblHHohpt6AQa1p6TFcyBCH1kbFFBSX7KjKqYvL/cuwW9oUQrnvDnSZgeLPgPFyxVHUbpC5qnsf+hzexhTN2vHPICRMw2jIQtxjTkdRdXBv+8JcbLmSSufNhWzAnnWMDYMa5zKyPeoDiNjNtS0KY5bBfDc8JzkxuY8T+7IOKSg7wj6YJgM55XN0I0otuxtpjno9ygob8Hh09rVRkIkPlb5GUpaSgolUNYdDrPtDhycJpCRXLWR26Q== 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=piltnTByFrtmgy9GlOmuLW0JbDdTYktoJ0ISndNfSNw=; b=HWhd+YOhP5HbKhmhxgGK2WR/vqv/u+XAMzACe5HjOcyZctLHDpvl4fyrvDXXo6HaOUSeDH5lNPVatj0ov3o2oUbSIDdAI7aWmS+Tslm+0a2Eg4rFvhb8ag/RgKrmOLRyclQpncKsYLAlEx4EKMZclIUJhiPMrtqHeSeLMyhVQc8= Received: from DS0PR10MB7933.namprd10.prod.outlook.com (2603:10b6:8:1b8::15) by BY5PR10MB4242.namprd10.prod.outlook.com (2603:10b6:a03:20d::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7741.29; Thu, 4 Jul 2024 18:27:39 +0000 Received: from DS0PR10MB7933.namprd10.prod.outlook.com ([fe80::2561:85b0:ae8f:9490]) by DS0PR10MB7933.namprd10.prod.outlook.com ([fe80::2561:85b0:ae8f:9490%5]) with mapi id 15.20.7741.027; Thu, 4 Jul 2024 18:27:37 +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 v3 07/16] mm/mmap: Extract validate_mm() from vma_complete() Date: Thu, 4 Jul 2024 14:27:09 -0400 Message-ID: <20240704182718.2653918-8-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240704182718.2653918-1-Liam.Howlett@oracle.com> References: <20240704182718.2653918-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YT4PR01CA0012.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:d1::13) 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_|BY5PR10MB4242:EE_ X-MS-Office365-Filtering-Correlation-Id: 7e437039-e045-4221-a094-08dc9c56fb12 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?r5wwN2vl9snbJEdW3ZyQiOaFRxYL5aDAblklsBkFV8m6i+c+iMnj50gy4MIB?= =?us-ascii?Q?HLzS/xHuryJL4JuE0CgF1sHiSw0Ki9o8mrZYe5Kg247wksXrT/BZZplqRLQz?= =?us-ascii?Q?Mky3uhNGgCSnFBSCZgoU9FrXkQWvErtffu2qmeXQoPTfeHlGL6J5lIdyPgt1?= =?us-ascii?Q?zax9TC+FM2QLaDOpCRDN85fo+woNBZGqyeBj+5Cc53RY8rt2LZzQfuWNfLVq?= =?us-ascii?Q?y9F9lsC2w50k0o8/fE2+Q9RMimIYcNhXW78aMmU1CUJSwTCSrHw+KBXTSfGA?= =?us-ascii?Q?DtO9Jid0fWxFPujufT+EBkX2M0zlhGrMTLpQ/sf8Z+9O2g/jbIepdV0TlfIR?= =?us-ascii?Q?1YLJub2WmKtz1yzwngbpfzuxTKtjo1e/DK2K8fcqrsFtivwPpVNDtuozWKBn?= =?us-ascii?Q?XDUobSrGMafT22/kMCd7zRLxkFVe/Oiqkeuu6VKrcbGyh59NkSMMWH0Cu3NZ?= =?us-ascii?Q?D/YlJnOQmqsCizKo8lzR3O0n2Cwp4FiMAzk2b5iQGIkIcTK8DjFpx6LUPI/1?= =?us-ascii?Q?JJlBsfscxm5KbgxQYu+TJk9+imshBfeAEyPjBTZNXEkWojYcQYKqWGMr6PH3?= =?us-ascii?Q?ZVsTBqu0u2Dmf8PEhUmTHwWyZ7csH5Kuly4M3F3XXQroxp+BQbCyKgvYnwAZ?= =?us-ascii?Q?XUJCuK+3pCsllPxy8SKvT8mH/EhRufbH/uuQMM1RvdE5CSd6qFnRNGAeVBKj?= =?us-ascii?Q?2IYhwLz4VjdbRLCaZp2zhvTjMh+9YFQckHou8Dyo0FkRzOCuXxgasoiNZ2Qz?= =?us-ascii?Q?OxwDDhYeWh/Vvo80ZksbmybshZ3jN+FDiyOQSMMoy7KmQjA8JCjBfr6Gso61?= =?us-ascii?Q?WdkVt2dIMdI7u3Qm9i4gpdLI+4dv+VyWVq7GZuMz8Xtt6MQwvaOU8JdpOLcz?= =?us-ascii?Q?BjNd5CsJ0UPQX7vuk3O7tuA0uxa1+354vVYwyGGviQRbbj3iH+roCgzM5dzL?= =?us-ascii?Q?Kcv/m3ospj5zND9QHKWDB1sKqg26wgmhbkuPmMOB5PEG43/w79ZIKZSmqr+e?= =?us-ascii?Q?86t/Kl2YHxS1eyw0IUN4btTNw7g+WURBP7p+Cy7lqZdq2xsMde62JkmHMF+K?= =?us-ascii?Q?11/I0btVnMX1PrQLNDWATmX0eOBfKHc5gTUXk6RfviOKcQb0hDZoXNle1NvW?= =?us-ascii?Q?lFIFqNX9vb5oavS4EFY9psX8Ihielb+iqPQSUm6lEs5siCoZ/wiwYjJHHC5G?= =?us-ascii?Q?5anMXb0uRlQeUwEkO2sset5tfptLdtVDNsTJtxhyKp45ZEZB7hFyBBAuHp6r?= =?us-ascii?Q?fOJ0DRIX1spYbut4ZqkbXqR/ZmFT37pgYQqpmQVYInIplrtenDOZWxNJhhtm?= =?us-ascii?Q?SP8OsI/48T0muSNDpGkNOcOjvpljBo9kP/1ainUaR4y3NA=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?1t3KZRU7R/s3LvLSH6iyCyXWYkMZu9b+1zhsfWZPH+gBt0VztAPb+eSkQVEs?= =?us-ascii?Q?EnszsvQ9bYVxIpScdA37ZyJmk4ZICouGwojKs/0J33yXRw94T/EKqZULCcYz?= =?us-ascii?Q?mCVrwn0GTq7FnLoQtWsEwS2l+e9dy0r/uxRorWdBCfoZL8EZW1c04B8YNMea?= =?us-ascii?Q?sK4UkUK73J5BvTe1XlmB3D1RPQFG5vMDGpr2zCIIIJG02V8A1bf/diqCdlbR?= =?us-ascii?Q?5L8d5OvDev4FL/WY0uJ8AEbqDa3cFJYFIGn5RCmWOvBMvveF+y8j5qqJdGOb?= =?us-ascii?Q?6sAVxNkMnFG6ai4XlBh13IaNdVMx9Up/jMmi53rsorW1W2Ccy8248S50VYck?= =?us-ascii?Q?BmeuAHeJo5jkthC7eSo5Fb9hW7swtqQFtqfEcZqRMxkJYkstSSXFaZB3814i?= =?us-ascii?Q?gRJR3Hu1aVx14zg54PvspFgZ16Ju4TOOhC+uGZF94cr0S0Axuqb7bdvybpsM?= =?us-ascii?Q?NyNiG2ugxXz609xo8/PWhMgd4jzrBuaP2XyFff4iF9FPa+ZEyOch2H7Wv//j?= =?us-ascii?Q?ZjPK+sejtirWq6AIMMIl6vVl8mxAPkvnzSpBOPqjOVrn7px2pgru7aihPmbZ?= =?us-ascii?Q?Rc5iPewdxewmR4tVIvVe4P0rViwPUcCfe7Gc1G4STzjq8F2qcnMuR7F/s13+?= =?us-ascii?Q?+4bnR8nlrx5ugTnjEmgZbdmnfkzQoB++A7Ddt7xJL4o9+gK+ej5WrmOq92DN?= =?us-ascii?Q?NIYEBHLPRNVMHVCG821o+P+YW0UFc8My056ZMtZ3A32E1miLfw4MjjEGudAC?= =?us-ascii?Q?vuQTACn46F5VhZT3fWnB1113yjeOdR/rUu+7a24Ook1E9WLV+bUG1mVT6p0I?= =?us-ascii?Q?wSjysV1rjkvYaxPOuxz3ZVr/a/uwS3796PeGsKIQ50ARS9/OBlR4grahaLHH?= =?us-ascii?Q?7vMz4sJYVSg4TxDcT9ZNySxBJqs1plWj2yaXZEyHMcwwnk3asDNgO0ekt5Fx?= =?us-ascii?Q?KqgZAYD6bM8zw05YWLVN4URs4UkthBC9qSZcQLNcQAyOwaHXNPw6dPryjZbj?= =?us-ascii?Q?6UXfgbFFdIpLjf+wSod85Wz5zxlq6GdhORdV9e/c87O1oqaYVzjc9G2l1yIl?= =?us-ascii?Q?PSfRa/1gxKNnnig/oepbtJGK0robsyrdQgwikjpIZtkZx+uvvPQmemmEnhNp?= =?us-ascii?Q?9TfjnVlc5ejPQ3v+/sxj8sEbVC0OSdDOtU5TWp1fmlzu8RJf+WYlISpPJQO2?= =?us-ascii?Q?yKqL0HkIs2p23AGzGr92/yLXKtvo0A0i4rAHuN3tqNrPWa21HmWfi9lI7PQG?= =?us-ascii?Q?Nvb4MiVUQudrxQWt9aatcyh9EGnglkK6kiNmBRvvOzSRHYpfXUoAaDnRAb3Q?= =?us-ascii?Q?+jm8/JQBuqZGzt7nTZcIAnRp7DwrtXAkFYVOSxop/XugMc2oRcAS1xOCF5EY?= =?us-ascii?Q?suPy7s1pjA3Ow9jGisZBd4Kh+8juL6jMUAv0H0vS//bkn6uE2VMIa9ZUwYT4?= =?us-ascii?Q?Mt6uHTLnRQRom9xTFuBjcUqquZMa5aPj5gq3ZSRfEQ7j9elp43rgWsVRyp4o?= =?us-ascii?Q?C3sxDk2OsUnDMmzolVBKALLNv2jkeSXN2M8QIDOsajj5IjTPv3dNNkqXwDdf?= =?us-ascii?Q?VzQ09pI/ijAei12cgiMx/FymLyoLGH//acuCP8Ce?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: 9GtCMKcF+T6j7XS/5kfa3EH0I0xBjttnczG2sJoPFxMkeKl+XGcThaWU7p04QytVEBwfwHqLHvX53Qtj7+ofTnVKwqkE1VWkZhUz10rJPh5zWH+kFq2zI39/XdKQCKL57PdTdKSmwnrySWY+OdwRzJ1yXuFVUUhEJNEr7VhaoWpRWcsKmN4ZkIew2ff6MI9U97qDOROwN1KQhlt6P5lEdlktrvl2P2bkOUsDiijJ/Rr+xabfTZ+cQnoOpLyBzoWcnPLvntM/ffFd4b52YvjNHHMS+uool1Rz4yAQWI87xUnknzUOiNX9PsPgA8hKjeKT+wJpl6DSNLtX+SKA48uAechGMtlk3KyHPHkP8prO0JEVcdp4bq2aK5ZOydy4jdky3QMdQeCVJ4UHZNeh97Z3Fu5W1GlZXcJw7wuJ4P0C3RC34TSnqKyeYMN7w8G4lnh4SPZzJUFJuHqRdlkMMbzBdJ11JfXCOKHEPPnOLdyFuFr7QhOMY/jNsEqhKGizXx9z+iUzdyFbhOV1C4SMRPUSX5mi4lFRPUx4tdBex1Z9LFl7LzV6pUI9IvUQEadEKIrV+x4ZWyWH+hFDRFy8aOFweWsGXQ6CZMjgazDru+pVABw= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 7e437039-e045-4221-a094-08dc9c56fb12 X-MS-Exchange-CrossTenant-AuthSource: DS0PR10MB7933.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Jul 2024 18:27:37.4039 (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: ZlvP3qITeR6HjAzTFEJwNeNnDc4WUABgXsSbZ+67tTyWlpqnmzaTSsV42rEJUI7i76o5DF/UtDMGvoVGYBclfw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY5PR10MB4242 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-04_14,2024-07-03_01,2024-05-17_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxscore=0 spamscore=0 suspectscore=0 mlxlogscore=999 malwarescore=0 adultscore=0 phishscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2406180000 definitions=main-2407040134 X-Proofpoint-GUID: OmqTb5j7iZz6skuVwHvQX8O8_6BNGWUy X-Proofpoint-ORIG-GUID: OmqTb5j7iZz6skuVwHvQX8O8_6BNGWUy 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 Reviewed-by: Suren Baghdasaryan --- mm/mmap.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/mm/mmap.c b/mm/mmap.c index 2a1a49f98fa3..8d9be791997a 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) @@ -3353,6 +3356,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 Sat Feb 7 10:15:43 2026 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 95E7149651 for ; Thu, 4 Jul 2024 19:51:40 +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=1720122702; cv=fail; b=tEoFN2+A7Q9z6aBHkhB7v+s6W85n0rV9PISAsyLgO0atZiNUaLAiNLK60m5ZZox6sgFBw5xFFjNXWyE/SbepGYA6WRJiCtav50a8+/Ptsqza+HAMEcV27hLHLxXm/pR61T1bKuJpf11fHpCgJYFyqLSkKl7R23e8Qh93ugkk6R0= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1720122702; c=relaxed/simple; bh=12pxhC/DkUR6+FxwsbIlaRs+Y07xn/yB+ya8opPIXtY=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=LxQsTi4vmJs7qYbbpBODNVfqHFyxlLLjW0IZd2zcyfpnYImTydDkc6rO2UkjHKxdZCgzXuhM0+2l82pQxCPISRjxWZpXb9Ctba4Nq/5wlDVaj4m9B9wnovHbswpPy3s+V48wSHhg4WBeYpLLG5qxkJebEQU6t+wI3QCHP+ZBjDQ= 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=Rp0hBGLg; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=g00cQQ/0; 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="Rp0hBGLg"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="g00cQQ/0" 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 464DH5Xl012539; Thu, 4 Jul 2024 18:27: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=1DoxtPb5EdsWVu0FMLjwtMRXKfWWaZ02jMrwbY8xjCg=; b= Rp0hBGLg3zk/3uWnFbcJQ9n8SYmYxBgpB1lHwTHgcDZEH8PZe2b4I2Y5P++4aF89 tFFX++ADd0TgCVcqypfO8SCYCuj3+QCDq8ouOGDmJdk4u9gSL73RlVjzrgQh9wXF DCWB1VZpVjFeE+f8srB/DhtAPlppODaEdi7M/e/DdFhtywMwAbciDGr+bZNmdWlv 3jaBpt677YUuQVGgZMcumwQKoo6jef/IQeHG6MWObiiSv/fKLr7omfOvM8faiL5U hhuLOSFRxXbfjOZS478x18RsDsNnpkedu19aGi3AYBmuco+KK2Y7J02vnYPgafil 7O9+oTqZGIEhci4ViqLRnw== Received: from phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta01.appoci.oracle.com [138.1.114.2]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 4029232pdh-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 04 Jul 2024 18:27:43 +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 464G46hx035991; Thu, 4 Jul 2024 18:27:42 GMT Received: from nam02-dm3-obe.outbound.protection.outlook.com (mail-dm3nam02lp2040.outbound.protection.outlook.com [104.47.56.40]) by phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 4028qacukd-2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 04 Jul 2024 18:27:42 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=doZtJoiWDdvJGEBpz7J4Qqeen59EVhbNZZWcS/g/VMNo7GyxvtbKcZwO4UEiKzSn0Qfstt1dk3qbw5LIFoR4/6lFuDIclybma/7LPUK2CpNwAnHFj5jbZlrhexmHGUDRlobrcJI9UxEREdElNICczXYsVEfwEbCG6qYBIJzpv+RifpXGkleOYzisj7+thAslkR+SVP1/ED6w4Qd6SSBQ5WUqvXwOakHUZ0Uw4lkccouy2qjaWayN9y7vKA/0aPy5zMt/vi6Q6yRTSLjWDAm3BlxLq9j0dImiBD9xLNwsmrHvIDYvGkeq8D4vw20vcxnbOee82xHLT96B/plsrflLzQ== 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=1DoxtPb5EdsWVu0FMLjwtMRXKfWWaZ02jMrwbY8xjCg=; b=WeFcIufyi0J73iChWMTX2b6Hhd1XudSu38CiGadzc9VuvSDiQZE0uchKHN+fS5//BFVcqIrzFLIYzV9bAsPutLdz1ZrqVQQj48K4P8NQcfazVWdd7dbXLxUMrNkBeg/EvYCwZjLvNiEybdxQNJ1CaKE6XvUFnpEpq8/ioPQQ3fxxQNeOCHV4eMXqM5+XerTLmU9j7CjXg4I+yxwxBxT90rv0VZbLY4mpnWwV8/JeJ+dCjgRE0gOHb6f++Xn/1a7u1bjNgGyzK1UuD/APXp9Pcntj39R9GFpLB5tlnmvW7q0gprSWW2wX2/zdARSRuMC3C2p5z/3KNphQTkkye0KWVA== 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=1DoxtPb5EdsWVu0FMLjwtMRXKfWWaZ02jMrwbY8xjCg=; b=g00cQQ/0N1xgsOx0/rTm68aI9wiQiwL5dG3A597OLWiFlhFIL8MOpSfkdVZn8mxAuZhK+/y8UzeYwCg3bu8Fx4Go2uycb/UocWVAT69AjpLbmyNdy33rPm7Orv8biNWt11VkkKUh2HvY3oLhWxXrIUhTSsmaeufF2cQGYMafuFU= Received: from DS0PR10MB7933.namprd10.prod.outlook.com (2603:10b6:8:1b8::15) by BY5PR10MB4242.namprd10.prod.outlook.com (2603:10b6:a03:20d::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7741.29; Thu, 4 Jul 2024 18:27: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%5]) with mapi id 15.20.7741.027; Thu, 4 Jul 2024 18:27: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 v3 08/16] mm/mmap: Inline munmap operation in mmap_region() Date: Thu, 4 Jul 2024 14:27:10 -0400 Message-ID: <20240704182718.2653918-9-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240704182718.2653918-1-Liam.Howlett@oracle.com> References: <20240704182718.2653918-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YT4PR01CA0008.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:d1::16) 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_|BY5PR10MB4242:EE_ X-MS-Office365-Filtering-Correlation-Id: b3f76fd1-b360-4a49-40d5-08dc9c56fc41 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?YkL44PWwuzboSw1pzDqTG0xHI2Ntu7lxP2ECLqgRO+44oDLenjAwrD1L29QD?= =?us-ascii?Q?rZYKsfM2lATZok/SroLSalraFtAu7VZemddmKuPIp3QiHfgx6LGC6hV5qaB4?= =?us-ascii?Q?KjesWjhzm8KKVNrMbDv0hq8jjn2GwMKW9euygxgARpiKX5GKvKR4NuAzL+ai?= =?us-ascii?Q?tMtzr3+Paonee3aLqY7465/XvhS3Pz2W3byG7Zut7XFGdsJBKMIFXPso2S6I?= =?us-ascii?Q?tB4kYj46pbrWuLQEPaRea91Bhk434x09akiaBrkQW1fWOgrTr5fZVgvBvc7Q?= =?us-ascii?Q?KgGbFYP7IOT4YbwWKFBO0bC8iSlYytjLnX8aNzEEL3cnWi1kq5f/60Aiudxb?= =?us-ascii?Q?EDPs6dbWBYt7ZRx1LFc5Fz/9ycbX5j7FUrX3UtStW+9jxx7SjaTW950Swk+y?= =?us-ascii?Q?c9op6WQzUTYneAfVhq6OwA9xdRshqU949CBhi2kbGzCUHN7cfS0P7u3uupS5?= =?us-ascii?Q?wzDqeVkdbfgjS0jifIrHNgVsEXes3aZcwkaoMJoUbzG9tgUXq+8tQBgYucop?= =?us-ascii?Q?FGNtjpT2UpnolRxGwDGpzka5t520d2mD0BSVc9DWeMLFIWmBbPtjPLhgLKr8?= =?us-ascii?Q?KvptpkHkz6YChAwR487C6X7l/v7yl8TK2M1h043Giu7Y61nBb+GPApOUbILr?= =?us-ascii?Q?3q3b9wjQtKSQPJ5sbVZE2GW12fME/+DBCMfNSpS7TXKxt0ZCsu3/Lk970O0W?= =?us-ascii?Q?IjVQUK38ZjpaItLoWgUMeAsFKC3SfTdT2o2E8Py4UsnwoAVhXDpv9woX45/g?= =?us-ascii?Q?+eYrkYhDK5y0vm4soexfuPrULEQu51l+dp1/l37dFk7inQFMY8K8qsC9Oyd1?= =?us-ascii?Q?5GNfOHFbhNuqM0B1svulPTWS9LOsy3YwAGWx+06MPdG4Rwpp8B+T5uNegoEq?= =?us-ascii?Q?suCDXIIl7krmDTTii9nz6Jj42FVEjBjzQ2dl9hxXoRsDpxofBtOgJ7G+P+h0?= =?us-ascii?Q?ZySyQfs1lN1/zH6G91tWvU14VZgpS1iRlEZBZUPaKB1E8BxL5kKfUzzHssMx?= =?us-ascii?Q?tSTEwSQjDp438EoXBQb4SFD2QppmSsvhHPEydjVkGqSkevgjIse/n+fHWKRU?= =?us-ascii?Q?G2EwXbSURAwUkuMs7gr1/b+9CeiwGX0OfLE3af+DpgnO+THXJzJfuB3QB/6x?= =?us-ascii?Q?M7ND4eCm6Jou/gMUiU/g7RBrxYR0Do6REUutbYIzj9tQGk0zVUvaAdkVUTRF?= =?us-ascii?Q?nF2jJVnuChWpeinC4jCXUqd8SIxurJrMA0sYdcsqeA5tFtGUd0+WTIP5o+95?= =?us-ascii?Q?7qZX0RtbEFkzllg0huFKr1+GeLxA7orbZDFGSnyKNOqX9TdBM4mucZSoRyVW?= =?us-ascii?Q?c/6nJGytwmqPLWHYr2tQmyz8CAFqSoMMbrpw9yzkPlOVOw=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?+3b8MuH6coAjH6Llma83TMbtVUKZt48LlwqnlFdfKjFqctsdsqQHXtYPa23j?= =?us-ascii?Q?OXrZThjdrSr4cCJwgFQ1Xt1uHbqY6GL8Bup7Baad+FN8lQubenM+DOK6eRYA?= =?us-ascii?Q?d1sSjEHEWI/RlJQHYYgMuqAMcZNvlpaxd8fTvFNjFJrZKKW6+E3QvrJ+NSML?= =?us-ascii?Q?cuumEgnobObAeC+DAU02EvewA62oWB2XgoiQw2+PkxhhOpGnXqobd2844Umo?= =?us-ascii?Q?ceaP2lVEGvfRMsquoggXOGoEBDxih35kTWLiS2nlGHZt5OMfAylHZePdOtWG?= =?us-ascii?Q?VzxpzlGs4fllZWx8HL3IjdffQyq9yNmF58N5mgWSJIG2cxQ4kIop9pjGee6I?= =?us-ascii?Q?wJ6qxhST8ZFiRnGsfp8zGVxGuvsUO3aK7F8EuJfZoRCC6fEm2UEHCLkG//OG?= =?us-ascii?Q?dmQN80BES/10hQT7hvqgKYamQi78J4jL7z/ZccRjutDMHMomVjIbLViAxPDN?= =?us-ascii?Q?PJP8FOxEeY6RbbXToAnDGhDAgLroeDb1earbWPt5KaKHmZBRYvK3K+tjMuAI?= =?us-ascii?Q?k+Mkl0BrBPDeRjumRmIpZ0+WBW9ubRUa44ZqnNXX4U62oqYN7TkiBbJDeVDO?= =?us-ascii?Q?UBXq2s2NUF/85NJVWisNRgpnY+tl7ANKhG5OlIgeOWJSLK5BJTUxB8/TsK8R?= =?us-ascii?Q?elCfSFYGyzX3tpKkGQUxKJvRl5ziRrc6xzRq8bbcaczI1g2iFrRZtYKAtcYg?= =?us-ascii?Q?Lw9sRQIyZBHE85BF/hncGzmEaKGKmwR+GhUKt6igtO7uS9ZMC75GzRTLb4QU?= =?us-ascii?Q?QCa5lggf5O678+kFWpgqyqeKSN5bLka/IimBdXcvc5G4FmjOodRv1soy8maV?= =?us-ascii?Q?gQPhgxuiswwiSETaiNNJMeWVD1560q8h258m3g9tGDpm+t5s0nxR5/gHRtoY?= =?us-ascii?Q?vQNniwzhDFmMWMFNI0qM+9bOm+a7X80NLmRC2FA1fv6+mHkxrPhUXTym++jM?= =?us-ascii?Q?xydRhoUHIDTRn5lzOPRChxIFSu79XECnIvimI8dy9Uw08xEBXvTw81EZ5k9V?= =?us-ascii?Q?xbeevkQjuStkqz3jLDQr23DNXnhh/lCj9WzqL6koj65rDxpodPQ03ravnGeM?= =?us-ascii?Q?XkLyQVdciQAm8ERH8Fmoq1Ib26K+EJtAoUZ71cL74ldjkYPrOX1LIvX5x56o?= =?us-ascii?Q?RODg1f6tVNoFxfAxM93auzQWpfhrguA5SXXy4QKbLfp/KLZsgehSvcYUcvNN?= =?us-ascii?Q?LoFwWlQ+ccCMVgyETjSlyc5FtpbJyPc0Uapq9xec15nBV8sl38o6X+oNnHQS?= =?us-ascii?Q?5Z56VB16rPcQBEIo6yMrLhO7VdIS7EsyX4aei9Ri/yw1huMCwDe1ps7Ym2BE?= =?us-ascii?Q?/pu0awLb4gc2EcQvUA4kNGUMTN9cD0QcnJfJsQfDF3j/E3FdvBLzqn3XIaMO?= =?us-ascii?Q?VqJL9q3mtVaotLdYhh0EHIzy3i8KbsblKiHo9+p65LBs1ez/guQUjKpmNAyF?= =?us-ascii?Q?6/IvlnT2+VD+Kfm8I9QMYImTzMWHm2pJ9n6PwdphA/Q5wf5LXeIb1iiAhst3?= =?us-ascii?Q?s0XK+/GvyHSQwPw4rU6fZJqquA4Ak3VlWc7sSoWIHxhbwpoxto61MlfzbOW4?= =?us-ascii?Q?AJRjkxMRPMbeyxoqTcwKokr5R6Fa5DAef8XwKwlZ?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: DfTd5JWJkdJ7cKGaa5NRwC70PP/wLaoGSOP57bWmQffqVtDDwe0SHz2VNBhvAUby5w53X6cj/BkSp47tNCAp3/MzkDdq7HmAAYUmtcsncjYJW+VcTuPNJMlPpO3zwoj+Yw9AGDerqr8jwAo6Gx7NajKs8lagmPL/96Z52711iSOU0MhcRv/SPYaF698MfSQSl7p8HpWA8216UFrJhuOBXCgSeJgnBhSJJgl02hqVLxvk80Oep3pIZS9uM7hQa3ewutE/bc974XpiTjaa0kHge9hjQAHJV4bLWts+/5JXQ35+z0rXSIkkmWoOaRoaUgcvYpTc9H0sqHIeOcj8MbgwZdJAPiv1KjqeTiNfd573cSYABfNTYRRAH0rpzQddRTyYqUsB2rTYe6q3a/+Qz9SHW9QHAnu6II+BXIwiPYu0iO4DNLIYYyO+Isv0V8waqhOBlzPG2mUwiEJBSfr1lt0aOmHuwUxBo6JppeWqlEuCJVNUPhzXOC+mGYeTO1SeReGUcIdAZLo8lj6JZldkzZSK1yzqCXbfqVbpDl+W3ymynxNrRgIsGbBG8P0OKJRfdRa9gp9Ngut10YAmwkFWVAy+t8dlXoiP1VJa91HOb1hHmTA= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: b3f76fd1-b360-4a49-40d5-08dc9c56fc41 X-MS-Exchange-CrossTenant-AuthSource: DS0PR10MB7933.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Jul 2024 18:27:39.3730 (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: oEQwvvn3PdRiLOXAqNH1XgIZEcWMLNyA5wKZMeYGY5Z2DcgSTZ+6zYNJD5ZGUn/alCZ2KKJllNs8Zgkjiy5eYA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY5PR10MB4242 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-04_14,2024-07-03_01,2024-05-17_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxscore=0 spamscore=0 suspectscore=0 mlxlogscore=999 malwarescore=0 adultscore=0 phishscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2406180000 definitions=main-2407040134 X-Proofpoint-GUID: mt5-1i7PCObdFPUfG8sTTO23qrrkxFsH X-Proofpoint-ORIG-GUID: mt5-1i7PCObdFPUfG8sTTO23qrrkxFsH 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. Signed-off-by: Liam R. Howlett Reviewed-by: Lorenzo Stoakes --- mm/mmap.c | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/mm/mmap.c b/mm/mmap.c index 8d9be791997a..e9858ca8bbd4 100644 --- a/mm/mmap.c +++ b/mm/mmap.c @@ -2937,12 +2937,20 @@ 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) { + 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 Sat Feb 7 10:15:43 2026 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 66CD854660 for ; Thu, 4 Jul 2024 19:12:30 +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=1720120352; cv=fail; b=MLDbWGDnykKHAZ29uXk6MJSlSfyzZEz1Z9Q7U49BLrsQPbWZDHCjdqo4trvoPMemz54q0pRd9k8/zYaGndK9MEamOSGRyD8Mzqj7UsHyB167ynzMHEu8DiUVrmCoCLnVpJcRS3BeBgfZrwdTQsD5IjgHacXRN74JOyPJl+ZAkUw= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1720120352; c=relaxed/simple; bh=zgWIXyxRK0U7CMIKtGRdvF7rAXC0ub2aio/B27Rw0t0=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=VpKMZxdxBrfqfOCLQ9osuSg4m7BtEnt9rI1lknJBdu7DqArpAfyxxZzd6IGWmKUhU1UI8cQNR5bQa6f4QaJfPUgjkPUmpzwS4s5zcxNtT/zPVT7T+NHE+Dmt+kSRYb+sp1MnPWPYq7jS+UT6ghcEa0KKgNfACUM+EvL1JYMge1I= 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=N/VtoaYQ; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=YGvzjY+i; 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="N/VtoaYQ"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="YGvzjY+i" 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 464DgwIT031162; Thu, 4 Jul 2024 18:27: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=f12gUZaqT5CBj0qbmSntgTFf0542jsJzkP1hUweMEys=; b= N/VtoaYQugn8AsLp/G8mvrIzhSqBZHbaNrUnowmtS7UeKJ3SN4D6NmsRHKuCaxNg iJwLFz7rr0F2JEDYo/impwzD0z7DZ5n1LqxjcH1tBMHFpFOQvR8r5fhEWuDHZ2hQ 7pNh7SgRjmcb23m41AZD4iNMOzSJ4idOZyhMzHKI4xjqzoDGcW8q4FIGmttEXmUj uknoRsMy7L8RrzSVGEQWBup+I20UbT7yBaCpKNoj5FsL7u7oNyWDiDATG9P5Ifex df7x354cSug61UJpOHaZOg9N+kTS2cfX2NvlsQ1B8Q5lfUB2hmwTbbJ3hzNWNRSS DWPX7vru56wFeMY04JMlQg== Received: from phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta02.appoci.oracle.com [147.154.114.232]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 4029vstk3w-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 04 Jul 2024 18:27:45 +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 464FbZBF010972; Thu, 4 Jul 2024 18:27:44 GMT Received: from nam02-dm3-obe.outbound.protection.outlook.com (mail-dm3nam02lp2041.outbound.protection.outlook.com [104.47.56.41]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 4028qany39-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 04 Jul 2024 18:27:44 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=gRr4opVEg9aAtqnabHIPjDyznOpgj27FWENWeo11hJq7npXm68CfFsvvH5kCMvKJtqUzWmGbfl2Tr4kDDvaMxTIwmXjgdb8mc+hUxcoJLzcIaz22+52heSLXv8VBgRQtHzah9JW2geVK4GCOJDwtrwvfuErJPY6iAcK2SmL9jR6NlYQ4qhskp7kgN33SJPi8paaHzWf9uzJAZXmw12Sj7cAc0AjMmxbYrsGoePmV9bls1v11XFQTJj6EuTigvfXEuPHWvCPXP1jyVD8U88hJD1aK16N4O5St8nxpUNkhOIWLIe6MQmSO3Zq6zoBVmi2ZJk01itaY8EUHmVsU31nVTg== 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=f12gUZaqT5CBj0qbmSntgTFf0542jsJzkP1hUweMEys=; b=VJ3u8lnP6s+PtlDlszUHVy++QP3DY+HjyPJD8lmA46Mt3h66/ryOugSqWlMr2Dbv5x/x6iU5acf+dtEU+R7DaIWimMzmxRWoOhZ8tz0QB9s+vCoPPOzARf/jtJi+n0KFWeIGg00szvcJASOlLAItw9XL1IcDjHMDZMxLOLq4Knx9Y6B/qy+ENWuJ9YP2nxWZ8eqZwItktIa3OlBlIQxLmdMIicqq+Vw1m8xAI17Yd7ig7aL0ty52OoeQkpszPH9TNhH4Gae7kqrweI1ofMmKjXDVI4y1zZK46PyY/7AnKqkWgm0fe3VcOVEpFQ5DamDf+xRy+MWCZxIlmB8cF2BZ1A== 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=f12gUZaqT5CBj0qbmSntgTFf0542jsJzkP1hUweMEys=; b=YGvzjY+i1fKymX+A4XHtxKXVTO9pzJvo0GHh6ct67zGWDjHch5EJjzGNeT+AdZ+c2n79qiofvCNDLHue7PlETmUdZ131JN2p6y8xJCBUFrPmaNVwwCp9nmknZL8iADjrok8j8XAI+fg5ba6BkxiIPk83fPh5jAKKwNcL/xlgl4g= Received: from DS0PR10MB7933.namprd10.prod.outlook.com (2603:10b6:8:1b8::15) by BY5PR10MB4242.namprd10.prod.outlook.com (2603:10b6:a03:20d::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7741.29; Thu, 4 Jul 2024 18:27:41 +0000 Received: from DS0PR10MB7933.namprd10.prod.outlook.com ([fe80::2561:85b0:ae8f:9490]) by DS0PR10MB7933.namprd10.prod.outlook.com ([fe80::2561:85b0:ae8f:9490%5]) with mapi id 15.20.7741.027; Thu, 4 Jul 2024 18:27:41 +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 v3 09/16] mm/mmap: Expand mmap_region() munmap call Date: Thu, 4 Jul 2024 14:27:11 -0400 Message-ID: <20240704182718.2653918-10-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240704182718.2653918-1-Liam.Howlett@oracle.com> References: <20240704182718.2653918-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YT4PR01CA0070.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:111::16) 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_|BY5PR10MB4242:EE_ X-MS-Office365-Filtering-Correlation-Id: fd24335e-0390-46c0-9691-08dc9c56fdb1 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?iPKv38RdG5/R4XUPKOlduc3sR5sU7bGq9WEPqNZBh3KkIFwRSkOn6C2zxx91?= =?us-ascii?Q?9/ZL9FT2dMDKIenMaLqZ1af4fKAKDH9X5DDRaujOZaH9+o/PTmFkVDIWfbvP?= =?us-ascii?Q?iirBkhL+0/mRgY+Ie+bp25HgjKjqnXEg2cEh2WYUamEMOqJTko9ymB6dpuBM?= =?us-ascii?Q?yc+jQof9WKEHtvDdzhmhIKnRtPQ7m/gLu0hCdv5lC2OqnoNZ4Gh1PJPaEAc1?= =?us-ascii?Q?qRgJcpusEF9AIm+X4Mph2OA8eopgawFbT2CBBNwQybjD/Uj4fUMAoWgSliNj?= =?us-ascii?Q?iHmAySaCierKtVftSM7o5EQp01UGYImpmTjo+v1LDxjPefIYtZ1D+Uv5AAzj?= =?us-ascii?Q?KADWC2pIyaWNT5iTWGeXWuRyQqV4rAb0lnBP7+m9IUeggSsz7IbAAX80fNP2?= =?us-ascii?Q?E3d66J9Y/3fWWm1FvoNI/4ZMgKXC30cLc5UrQKNWvxYXxKC8lVF2vZdO3+O0?= =?us-ascii?Q?7DS1rpsowbpe+U4BgNNE0UL30mh0e9DLpou/zJZ860xDmfz2wLYk/cFCnuNF?= =?us-ascii?Q?SOvBLBTYCnjKRniLuDxPl1yeJ8ya7g8fNDKn5j7sbVrpyKeT8QysZX2zGYUi?= =?us-ascii?Q?ZQjj1fuxMrNghbip1FoCHJu3BG9jwrVjrTNvgTVyLrUHX/7isGpzqb+fNEsC?= =?us-ascii?Q?Ey+S2ZYLeo2qGacrfPEtmcyUfA12F1eSWTo+zVlkkD7Ncy/lVL8+ugcoI2N6?= =?us-ascii?Q?cIpMvuokhGfwoKCSQoDZIZ1Mc80R9o8vgJLLcEGDma0d4SY9drXzL7n0gBfG?= =?us-ascii?Q?mNtXpIBZXbNr+njjx8i0f3qUciaxzjHk37FuGhSzGAhXGywQAvS06Mkcb9Fc?= =?us-ascii?Q?ze5dYEvBdCa6CILfgF4IxBqbWFy023y76mhU3P1SJi7c2KRsObN38hodNg3w?= =?us-ascii?Q?GCTTFhzdF5jlWy3wKQHd2E7qLngpjN9v14bw5D5FHNdt4+osH5kCNXr3UBbH?= =?us-ascii?Q?1FYqh0zyA6+fhNlyDXSrbPnLS+Lw7L/FYOxpBjBu+Nw3YXGyrpYKbtjArm+f?= =?us-ascii?Q?jdIypACL/eEQVTlxTKe2aBHOioG0d+wbT5N6Kpalex32kkVrdJ4eKsTysTPd?= =?us-ascii?Q?Lin90PuwLNNG2o+bENv8YxI+AGl0BAUSQN3DulSDRAvCyOt/b0I/mHf0N5eC?= =?us-ascii?Q?NgPmjI2GVZu8AjyRptf64xiTytDTeyclq8FgisuQ9DQiTm2KfIv44+cjhwJ2?= =?us-ascii?Q?YXkyVmrbUTh3xeomCbaGDRX2z/c7s5UlqICGqqFhzLTwc8nS51Vu26ejDq3j?= =?us-ascii?Q?zem1xtd5HvI0bzkZr1AnVx0tDGWy31ReL5qlr2fZKG3UEWKHOiHH++73LbH/?= =?us-ascii?Q?bFGCBRXEdgrPrpZTHlfHCesHrOYhmQY3XBiHAh6SIWA4Ug=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?Yaqjqf7J6MSDJKDNQdJ8xPyyRz4LxvyToJ0M7FhHlIcQnLIf5wuPWtSD3G2P?= =?us-ascii?Q?pM+cj+AHf1d6JdFakrH1B/uGWFUxkthuWYX1zZ1tpucwY5N9iSvZMuvLs8D/?= =?us-ascii?Q?JakfnDojbj13ME88T8wIjC3s3xZHjSoxqGIkytNBEG1chUUQ8+kgXPqmXWhs?= =?us-ascii?Q?d36I0WWshcTtk3gJYwI+SYSu2ImlwDhrJHTQ7EwVQ239fAiUHGaodopq0/z5?= =?us-ascii?Q?cgy5k0fjrqF776/MGBjZW5R2q3WR3oYVUhKWRra+v7thQaBS6OU42Cde0GOw?= =?us-ascii?Q?9V/kCSYSQO3jTP3YJxLyylaU2Mm5EYZyOU8KqoWLLQVENDK6gs97+6dxOVNF?= =?us-ascii?Q?infUA2OZ1+3NWQW/EZFSQPADLsqya5E41BtCpeideyT1x5JYZr7z2bANA47X?= =?us-ascii?Q?DVC8KAi0urjDaD9cA7gFfw5EKbt+N78bvf1phP0Vu3dORopmTthJnuhI6264?= =?us-ascii?Q?W8/2JwgnSSjLX3Lb7D6XlBsgqOkr0LCYIpLo9CMASivfaeImkfEX64RYQfSF?= =?us-ascii?Q?b0er1Xq6V7Kl+nJnaA4X8dlqUHv9tL7QsDyuoy3gkXA2amYGTPjAxwj9VxXh?= =?us-ascii?Q?PqHSh/8FbsX+ggNHKHpgJQewua3LafrTQXCM9RM1ow2+qC7jOOv5rcQSYHUU?= =?us-ascii?Q?7Bf8Wnxw1z1DbFDEOMHH2cRaI4qVIUhBdk5VuvCLY1x2EqIjmyL4ZxXbX+xr?= =?us-ascii?Q?5Hx/kNnwG/UqVceQB4eK80y7DQFtI5XNfar5erO3/y6AkAAM36P8iDWWVbN3?= =?us-ascii?Q?KmEx0X8Z+cXHPzHwFfv1X2N+EConxyZi4ne0FFNRdvXX5Un+vDcqGegMw2dn?= =?us-ascii?Q?tCxiGfkQkMvETcFTPRa2qO+cV4U7v4s7vZOabrpuqcOC0AyOcHTZTbwbUeQg?= =?us-ascii?Q?3NTAo6/BuQfXVGzlA2MogwGsWZPSyRglbXSrUUjRV9vc3ItzUsWPkrbu72Ys?= =?us-ascii?Q?9eMFLWtZ9an9Y10wP3pk9ndpO+c1eqTIKMWh+reLQ4DCn7PjllV2cYO43lxA?= =?us-ascii?Q?XEpJc4AqlKYSbaMhIQL0/wC4oC/DZ80R1A/cFZcXDaKXNFnVN/B0beBMs8gB?= =?us-ascii?Q?FdoxCdbjVr39c7XFDDTWy99VgbqjEfoHhASjYxeIamaiL3DKiPFuCt7gbw13?= =?us-ascii?Q?aHiDQPRxno5cJHzFHZAh0oeCHmYXlIpwxwUIV1uB+M3MynA0CZzINccla8Jb?= =?us-ascii?Q?1guMHWHXUEDr3LYmcVX25Q0zcAdVy2XwCQcHKo0dSZ7TmYKg5XSqf54YDXVi?= =?us-ascii?Q?bUaBkWyOULMz05z/qj6o14J1alnwfoCbkXEVjXzKb8jNH3RUZO5Ck17yoklp?= =?us-ascii?Q?YKYKkzXjWjFcjc8yTgQklgREIcTaM+SMIDu0z5L62ywZE/A9xW9FpkXz8Maw?= =?us-ascii?Q?rNlhpeOt0r6K6iLm80vy67zIkI4Xm50NsJjVkWE1Owr3yg/wYhM7/hbscqHe?= =?us-ascii?Q?0EUzSiBlPNfELG3jyOmuRIf2i9m4+nWd1BmoXYu8Ux+22cRXeUrMFOf128zY?= =?us-ascii?Q?B8Bw5YBMDkpMcyWajtrZoBl2hcWyOL+hB0ZIFRnrzjbEAJ10qDbkhZzOIZWM?= =?us-ascii?Q?N6aUdVdJc1n4QfZIFiNG6yGd3PuzmZ2h6dPYHa1r?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: HTOGVy8GXqBmD+khfDnNToEDRgggxd4HGpzXs0Zk5PONO+5DTNcPVWq5988M9L8dC+CN3Hn5sUdWV0mxN9sLPnD7vH8Ss1F8fQi9upGF74BFuLYH2g5nl966mCnoIiFgzp7OgVCw8/zJeuNoWTtFgPunUJv+Bc7E8WmPAZh9V+8MydPXc5IGA22fYLRl9bfbeBdYfSpE81wvxihkKnt4Kx2dlDPXeW2m15fH+r/tXv3EbnG/J0YYvP/JKhmmUnRShF+FJHelBYMP0hugL6P9Fj4x2kM8ZX6t5ZhVcOOFvE6angjlaGyiLGofq3OXhtYm/xY2IiVIru8jot8zOgMfzij/2vN3ujvMtVFPUbnNmptTUs9SPvAeWaLujBU5kY6p9tfC+7O1FXqINXseg6zc6lc8nluAKFuyI3fVxdGGbEVd39F4tKb5anndqZFpLhhaYL2Ikw9y2N36rb32YPf07s33ffFrdJcQzSn/NSTXbAFpO4PRCBdySyHVwBeccIhtdK6FdjJED6djOX+ENLx4/mTOzq6UZ70wdr9HTkIpK7AQWZ+J4rVoU0KdTfA48RiQOxyVZ/0Yjrg5+p+mo75ORbgF/38+D3nJ4MEJkf5roBE= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: fd24335e-0390-46c0-9691-08dc9c56fdb1 X-MS-Exchange-CrossTenant-AuthSource: DS0PR10MB7933.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Jul 2024 18:27:41.8184 (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: m68oZl71O2BVaWlgTDQ7qq9eDOHwfo2rp/WOL25TJMhVg9F2cQg534MwP84fFzvkrE6BEccAAF7lGdKsdEYMQg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY5PR10MB4242 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-04_14,2024-07-03_01,2024-05-17_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxlogscore=999 phishscore=0 spamscore=0 mlxscore=0 adultscore=0 bulkscore=0 malwarescore=0 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2406180000 definitions=main-2407040134 X-Proofpoint-GUID: w_eBSliCizl4jkFpTOEI1fv9GAkYfc__ X-Proofpoint-ORIG-GUID: w_eBSliCizl4jkFpTOEI1fv9GAkYfc__ 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 --- mm/mmap.c | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/mm/mmap.c b/mm/mmap.c index e9858ca8bbd4..f5b33de4e717 100644 --- a/mm/mmap.c +++ b/mm/mmap.c @@ -2915,6 +2915,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; @@ -2947,9 +2950,24 @@ unsigned long mmap_region(struct file *file, unsigne= d long addr, /* Find the first overlapping VMA */ vma =3D vma_find(&vmi, end); if (vma) { - 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); + if (vms_gather_munmap_vmas(&vms, &mas_detach)) + return -ENOMEM; + + if (vma_iter_clear_gfp(&vmi, addr, end, GFP_KERNEL)) return -ENOMEM; + + 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 /* @@ -2962,8 +2980,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 Sat Feb 7 10:15:43 2026 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 CF22B13C693 for ; Thu, 4 Jul 2024 18:27:59 +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=1720117681; cv=fail; b=P/kuemaVP9IfTMyjX2X77CG6YLMJEN3fWYMieoLekOJM+EcEve9XvCF49PVceCQyUFGFYujwQRTwQa5wvfVxBFcyec4OU4aDgPioq8jIP3jxgWNOMlUqqUUTTCreH2M+GyPbyqLVRrCIHz5mSqwIrSbcuxQOfXPm72eqQMJrkp4= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1720117681; c=relaxed/simple; bh=lMkoTE0UomRncgbXd9RBLVAPkkh1qYs+g/CmVo7H8KQ=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=lvMDtYogI5c02Ok5nT8xRlR6HkCV7gLXwkwifoL5ccvex1Pnm1I58qUOgNuxN/t5PVtcD1E1JI0B7UnuEI3uhG8s4JYIvkMdnYQp52g2nY2NrqNa+JbafVXq0U3KNxKb1KKIvj777SAN+JY0SyjQSaGgMbH++t7pdgtqk8m2GHY= 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=H91Euh8s; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=YPpx8SEu; 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="H91Euh8s"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="YPpx8SEu" 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 464DeMQo025863; Thu, 4 Jul 2024 18:27: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=481Re+ATCvAQvWbPAjt9N9MaRrHnR8VIjSEjBs80iUY=; b= H91Euh8s/6G/SPZwZYKtADXzq4IjyRkjlZHDD+Tv8tDyziE/O/+qVnBma/kq2dgT //Rtu84af5MDpIzOfhXRbmUcw8u/t4R1V3rxFdVPWzd2kyOOgoMT+gTg1v9axtS7 k3uaFHZVloUst2wr4Sao4wcEPKed1Bw4sjRDo6nMfrqcYaI0rTYFq+vzcxDvw+5w yvHmhac+sDvEGwvXaHTQ/fPp6RFUEDo7nYJFcZfIjZkvS4dv5Q5EoPenCwDiBL3j f4YUF0Q3oKVHqOEcPBOL1Vd0x0N898Vx3qA5ZGjPjLlACBU09bwfr7qDYvSA3EQi H53DvsxpdDrjbBoviVK0mQ== Received: from phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta03.appoci.oracle.com [138.1.37.129]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 40296b2q90-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 04 Jul 2024 18:27:47 +0000 (GMT) Received: from pps.filterd (phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (8.17.1.19/8.17.1.19) with ESMTP id 464I56kK025028; Thu, 4 Jul 2024 18:27:46 GMT Received: from nam04-dm6-obe.outbound.protection.outlook.com (mail-dm6nam04lp2040.outbound.protection.outlook.com [104.47.73.40]) by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 4028qb2h1j-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 04 Jul 2024 18:27:46 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=MAXi58eHra9XTSLr3jsYPXZYZfZ+3Bje9n/E9m3y8ab+JDQ/+Il3A1nJSTECJYcHgHml47nstnW7fAK8/OtFEXRom07cImeIhsaMu+mBjHJMuECq+jMjMyk3d0bhqmkLAkwOQSG0Nd9yEx7BaeIc4IFVcw7UbqQUT1aSlxw6gVDqA1PAgybX5d1Heilu8obhcZd9Zgwd8bvx6OFplYBcWL+Xl/q9AurIhynonfwDLY99c2zL0QXaUdfxVtXpewLky6M1/JHjuSBFseFwTCPs4bN8w4MRlGZwBFrffc7BucnTIroDOEhTFKhZYsElJQd/czigjpqtsFsUr6HIYNv2Tg== 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=481Re+ATCvAQvWbPAjt9N9MaRrHnR8VIjSEjBs80iUY=; b=VJxVUVPDukRyuAlsqm0kAob/kgxcNc2UxZtGz1uZqo2Nylh9GlGDO3Ko19A3E2SqsQqfvDcRawoHcpoDnU1Ystb4nGIPb7RNhBWFrhx7oWb4VAryKRMcw4ZtfacitF10TiWsNp5KM0LB5YQGWDocQwWqeshNpsZnAS0UYbje/ph+MOP/wr6uLbpRdOcOZkLv890PKIAb1kZOM5LPgQbIiKRjFnK1xAbSkcgaxWhE+r57YL84MDL5s0M0wsq3vd/lHZP1rOMNdDvt6ZXNiPE3WeqfgphYJFMR2H9ILUPURvTkR2MKF9mpovrED0lSRRX1LtXxL/9ifPFkEpKuQPHV6w== 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=481Re+ATCvAQvWbPAjt9N9MaRrHnR8VIjSEjBs80iUY=; b=YPpx8SEuwD+Cw9kve/9s7qgCfAPM2Ho7W1P2oxMALKAu7/2WFzaWnVWwnKrMzknloqTvNQlx4TJtW2PVX4wDdvrJ3S4wRQ9SvW3L0ptDGJ89+Top8P7hZOC6WR6FBwEwa84ebNtbb/qDQjI4y3TTl5+Vi1pvPNfUzhaMmoO6Wys= Received: from DS0PR10MB7933.namprd10.prod.outlook.com (2603:10b6:8:1b8::15) by BY5PR10MB4242.namprd10.prod.outlook.com (2603:10b6:a03:20d::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7741.29; Thu, 4 Jul 2024 18:27:44 +0000 Received: from DS0PR10MB7933.namprd10.prod.outlook.com ([fe80::2561:85b0:ae8f:9490]) by DS0PR10MB7933.namprd10.prod.outlook.com ([fe80::2561:85b0:ae8f:9490%5]) with mapi id 15.20.7741.027; Thu, 4 Jul 2024 18:27:44 +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 v3 10/16] mm/mmap: Reposition vma iterator in mmap_region() Date: Thu, 4 Jul 2024 14:27:12 -0400 Message-ID: <20240704182718.2653918-11-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240704182718.2653918-1-Liam.Howlett@oracle.com> References: <20240704182718.2653918-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YT4PR01CA0054.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:111::11) 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_|BY5PR10MB4242:EE_ X-MS-Office365-Filtering-Correlation-Id: 49540128-172d-4e3c-7040-08dc9c56fef5 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?PTFWWoZWD1hoA8hnTdMk41POtbxk3G+UYOdCBuPG9gZQM8iqyNGILJkzcbyd?= =?us-ascii?Q?yKo1yeGvpZXjBPGBcX/SIhKLkpWNB5a+u3hzED0oid/xHAt0dRGEJGiryF1H?= =?us-ascii?Q?tg5ZLcilU8nhBL2wfNaM0T5S0BTKgPhGaU/cFkJ37hrIaMbRye/FGMm+p4sC?= =?us-ascii?Q?wV3xoPtR7KKBC1WSDgmFLBqa6XtZAPMHdph24vfxnb2nfEB5VNdB+u/yqeUS?= =?us-ascii?Q?zQtm7qh4yUL0n8mtvIE2x9U0HLl3+7A4K7VNdrV4PhvoMnYxUZkgi9w78OeF?= =?us-ascii?Q?fAc5KTY/248hFwrwewUfXLdiYtlAyYDqB0fvE8O+Kyh33ZEA/n+h4IK10tLR?= =?us-ascii?Q?xJ1/4L4qW6UC6vNpGwoOe/MLJp1nmwOoUpfe3AX2KG8MoJybg4Xdqq42fg1s?= =?us-ascii?Q?L+cF3SU2dGkUWmfG70GYqFX6Ff6K6lgrowTFBEwXN9J11/KO5mEDmVNABN8a?= =?us-ascii?Q?l/26pEYg7BgzBEVbm6rHHJmh+ikjJKEIPOvVbqDoQBSR7BxTbRsSYgbi65Ki?= =?us-ascii?Q?mE6LViLDSjUqZT/E26ySCJ5Kq7maCzA14eDPIC7emqNaLnex5LNEYZ/QZFmE?= =?us-ascii?Q?r8mDYtJqYqhFU/MfTSJqorEnhfSyUNwu/hX8tJxxmktug5XkWYnknJjQvjrF?= =?us-ascii?Q?ffPzbtkosYxnjm9d04IhVAYo8wMPrPi/MExJcAs5tcJbzH8EQGGj3b70k/Z7?= =?us-ascii?Q?SKWN3GZ+M5cflA8gJ4LyRMQxW13M+/T7LPaHSTp8ThR7TRQXYhVPvtqlkQR5?= =?us-ascii?Q?DNU9455aRteyP8v5WAGz/CEKQq1qm41mgcbB1KBplGR/Hl8e73XIgRJydfOP?= =?us-ascii?Q?FO7K8k+ug5WBmxE3gPfXo7s9/5J2/8K22HWT3tI83oqYHJfP81LockOFsu69?= =?us-ascii?Q?5VtbVCbHYm7Glj1lzADi4O0NfAA1kS8iZzHDrUyWZ7h0zqsxlu6l9XFG7RAq?= =?us-ascii?Q?zoKC9G6jmnnYNR1pFEnSl0kAnat7jLxSGe58QTw1DG1rer1GGeg2t2+sLB2B?= =?us-ascii?Q?BnknTjMffk+ObxialPBiwQ/WvIqxrWqTLINgFI7vCp02A2/i4torp5WSCwEp?= =?us-ascii?Q?eBtPX2mDd8cMhfKeha8u0ZrKrGaHrF8IC/7ccMIggoo+gMMJ/oL/jr4xihVb?= =?us-ascii?Q?pSuc+9cuCj5JSzAy29Hz2vuQ8H7maWD9610sshzrUKaKq4eHBzYp0blinDJ6?= =?us-ascii?Q?IPJGo8VfxG5fT0paOh0D/RKbujL82EchnGb3CafrY3wYafPtIPH4UqI30gZj?= =?us-ascii?Q?6+CwM8JLc+TVnc3Ys+L3+T71CsnRyEryxsEyFr/K0WIEeCZnigQIg0fBTo4A?= =?us-ascii?Q?n5dtffkD/QNlkwdkjrx2giu8PZs5ScFbuyjhkC8t6UBrkA=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?NyKB/JEVBK1UCifQMIAnm3Y95rK7XgTdQ7JNMwu14rQo6zOWNFLEAPHkmK8L?= =?us-ascii?Q?chy+AVoGXw1PH8JSPGN5YokpoBoXLLsvc9lSe2WvcromHdyYjeeglkEsvCvx?= =?us-ascii?Q?KDSbA/o0BUecdOzxLDxnqoBak5zORA83ZxpkNO5WaBo2gUfI168dzK8cX3r8?= =?us-ascii?Q?xL3X5WDn9DarB99lavU1bF3qrgzjTFWIYSHy096NJNL3I68+tWjaV9Wk7L4R?= =?us-ascii?Q?KrhNx/6+Ky0mjJiStAXjkJ9Qx6L+pAzsHIOwRZenzNSl138rbfnPRAoWbbY4?= =?us-ascii?Q?tF/qtL6PhaTPI5tqkKzUaTWpFjMSV+GPdA60r95U6Kf4DBYUQf8BM74qhigF?= =?us-ascii?Q?nqS9nT+i3ZeAutkdXSE9MwIzpbo6/J8Y2O05Xstjpr0pLQLZAghAfAJ35ul6?= =?us-ascii?Q?RVgp5FJUMqypYI9P/yxg6rhyw411UlDz0ijEUc6lsVfTmDZlmB2B6UvfU1SZ?= =?us-ascii?Q?6mPHOoom3lC/6FuJ36WA0gLmP5YkKYYziDQJXJzwYXeORMFXgeoC1i6A3jdH?= =?us-ascii?Q?HU4Z9axwR1K8GDvWi2ZrlLQvYMCTifQ8Q39/2Cy3FiwVnhaKeS8N45yyeV78?= =?us-ascii?Q?FhkYAACgtStiPoTXe+TqMBNdzXS+KJ+8cXYxSJwZX8bYAbxGTHLJtGBk9RYy?= =?us-ascii?Q?/HFOB98uN+EqcZ+5uVB8+Rm30pa9AeNJLYr8dI9lkhT+8A2c7LSYRIDS4svK?= =?us-ascii?Q?aj3swEcJtpDySmS8BFpWqlEOKiVdnAQSbA4OJxiq05BDUmGGMAjqrvybtjh2?= =?us-ascii?Q?30piEZZx0cA7opSOdI271MqCP5PEezIT24rEqmLc6hU08cMBWSncaqp9I9sv?= =?us-ascii?Q?Ms2JvvSkzKVDmY/ruJC420VCzB+Q5P2JQ7PsKrjZlhMl/ceCl9mCS8K9ab5o?= =?us-ascii?Q?cqBqU9W9ye3Y2KXOPDYe087hg2olRdSeKbJ+iUDlcsZJMaxngaW5CJkn3X9s?= =?us-ascii?Q?itcjY/zfINlnSjmpNA4j4frNi3S3uQqIF+ZvMjM06LIuexsSsU+9dVIYuTqc?= =?us-ascii?Q?mf5wep+9IWMp3ll6jJ1ShLG2lz097fEPTh7XN7tG4+uN41l3ER4sCcOCIJD4?= =?us-ascii?Q?2OvBHGoE5mjsv1sh6ad842F7ai+dUZPMobzW9sfz6TkdqnVmUExWkDPcisQ7?= =?us-ascii?Q?0czMRt53zEvbLpcftW6XO1oMjfqUzHirdxBT0lLdjhtycaRqSNNVjteXKARI?= =?us-ascii?Q?dUAAwXlmgWbMU7MMRRyYzCGFPidbJjn4D8vvkfx+urNB3a+0RGG0UHsZqD1H?= =?us-ascii?Q?oucU2Rhy10moG5kuA7VqdUFLRFjBcX/qd9OyJaoCa7uAo4HYGsPqPEohSw+q?= =?us-ascii?Q?HcstUCyOmKlxjntPAxVMwf6/mMTpDQJGbhPkIDDBZ+oeE42uClX+nSp4vDsR?= =?us-ascii?Q?cQE/AxD4AgPwL/tWJhNDdVnUbKiot7M4beoaa+zsZA5lrTyAHAAAP4cIdqZF?= =?us-ascii?Q?aeV/UWj96vC1sHMVeCNzgRH4FiZg+Jz+oNAMemir40AYPeeD4lKb6/wGeAKr?= =?us-ascii?Q?G//4KTwM6ftJQypyT6FKF/KylzIjMfLQb+v8dBkXYAVvIWcHynIMU+/pSOcl?= =?us-ascii?Q?s3MQnhrFk35H/UGB2kPA7l3vVKJsjXF65uMO9v81D7TVsxSmq73CB0DKEW23?= =?us-ascii?Q?5g=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: p8jz8eQ7xMZfeMG38J/jv6HsNZVyXnSIklhEFSupRV5m6873cxExf8km5CacasdcucpoWWUyMve668NE+kWvDsQFUKog92nUdqzDHBve3WglyPrQD6XhNZeXIUkdGlEuziCIExTplbQYfP3CELQlqD2Rf8kIblKNbEqeF9r6kAGIO5ASAxHNsHSnJvIaZ72IRXc0ievNrcrbeGoxyRxzq2/g5OOiMvhOo25vAscnnAy4ad8IYvRLKxkJYwZYW/LlPPgLtGMLMdjsdOcNk27xygN+oKc8u5LA2Tu0bxQPH5XM8bW0HqrbZN2c14eLcjOKJJ8SxBDVd8LS2WXn87zZSKV1lA412DgRv0wGOAz2FJVVqRCn/tjQH333pSVRpporZQgFsBPcuLy4+ka22TRxJs1OchdVEH55AB7SQ7/xOJdfFqBO3pvvsev7t1uAn+TrlUbA/xjdroVqPcxWOy3qtGQ4sReg9a54TFBaEYfKWUfRiLxUbohGj7dbF26nihH8qFi2oS4ohLwkP9aVpgx8A6B4+fyH+th7XzOUWnIzlQIQhAaLQgH6WMiO1O8vv9BRgmfB3Zm3bfFJr9C8ihk9wDa37Nl+F+CCKs5s3yi77ys= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 49540128-172d-4e3c-7040-08dc9c56fef5 X-MS-Exchange-CrossTenant-AuthSource: DS0PR10MB7933.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Jul 2024 18:27:43.9324 (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: SmXukzKk2dniENAKAg0ma6n6J1KuvX73aj2bvEMVc5HITQF0udpUy93a8fpL33CYJGl99FYziZWqahzbf59lZA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY5PR10MB4242 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-04_14,2024-07-03_01,2024-05-17_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 phishscore=0 mlxlogscore=999 bulkscore=0 suspectscore=0 adultscore=0 spamscore=0 malwarescore=0 mlxscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2406180000 definitions=main-2407040134 X-Proofpoint-GUID: 9D4pVqlZPk2fLMVlRs7vOwMzUIXr-m4r X-Proofpoint-ORIG-GUID: 9D4pVqlZPk2fLMVlRs7vOwMzUIXr-m4r 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. Signed-off-by: Liam R. Howlett Reviewed-by: Lorenzo Stoakes --- mm/mmap.c | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/mm/mmap.c b/mm/mmap.c index f5b33de4e717..ecf55d32e804 100644 --- a/mm/mmap.c +++ b/mm/mmap.c @@ -2963,11 +2963,12 @@ unsigned long mmap_region(struct file *file, unsign= ed long addr, 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 /* @@ -2980,11 +2981,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 */ @@ -3005,19 +3003,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); } =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 /* --=20 2.43.0 From nobody Sat Feb 7 10:15:43 2026 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 0E44B13D275 for ; Thu, 4 Jul 2024 18:28:02 +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=1720117685; cv=fail; b=YxEEMWZZ1SNjw+UR7It0lpJwb1hoCTrK4pc4jUMiInVDwR5szkCdtFvqFdvWXpJID2o/2yGveTw16R2WfCJ+Ia7OE0bBu3UXBv7lnsq027t1ovwG0bWePJbslKFv1iJWbWlTCJ4jPSg6cqswZ1tTQKd1Dikn3chZGyKnbXIPATk= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1720117685; c=relaxed/simple; bh=U8JoBHt8ZlQB3Jof04EK92Ouxf5sSu4bZwlXusGMPB4=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=p6qlMir+/w96fFivQVPceKGU7VSFpnyTyhbodUTL9FI6lRuWo4O+lsUxSUs2vlXAH+qAvvmfLjGnnnZUjoEz46JemiVhJWye7I7Dl1zB19sFrJ6Y5Txhd7p9pO/0e2SNsZ0RyuErJVeq7aO2OsCCEaHUM11btUetfs1qUbq6Rpw= 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=UBD7EYdA; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=msv0XSuP; 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="UBD7EYdA"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="msv0XSuP" 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 464DPnFV031070; Thu, 4 Jul 2024 18:27:49 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=MCMdiCS+Z5VLbHqW8repADVTOe8n4gC9NUWizk0m7gw=; b= UBD7EYdAxJ25XSUqum8nqiawni+4rhrttorJOO6WkprW/HvmZF8b9jp5LpJ46PW8 M/8eIKxRIo9y9mHWx727C4YHBIUMKNCo/c8fNQofq1jQtvUjRh4P6FCRozkhHb39 spT8gx2pznArV/NiB6XN0JSkW2VannlbqvjQhJdUHVn+lFwryxNU8FgbgekzyHZF Lg04zze2tpiVQWRpiIvmbMYeK6VXhJtaUHNZ0gKX1SicXYcmCpVawn93/EczTcJQ PEfhxc4h3CPCNovUqmAwcbr32+kn/VKIex/4TW5NaROGW3f0+hWJOB3J40INLIir PMv9G3MA7rmr2q6uz0aeMA== Received: from phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta03.appoci.oracle.com [138.1.37.129]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 402aacjt0j-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 04 Jul 2024 18:27:49 +0000 (GMT) Received: from pps.filterd (phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (8.17.1.19/8.17.1.19) with ESMTP id 464HwBNi024792; Thu, 4 Jul 2024 18:27:48 GMT Received: from nam11-dm6-obe.outbound.protection.outlook.com (mail-dm6nam11lp2169.outbound.protection.outlook.com [104.47.57.169]) by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 4028qb2h24-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 04 Jul 2024 18:27:48 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=SvoBqmQAtijar8bHFah0Oxu6hsFf+BFXaI1HA0AKKv1PbEkwx0Yml6MUHDJtdu5xG07etK9qBsPK2HoC3zdVPSWKwqJyQWZZICxBNpyaGEh82f2jGwv7teOYAqJbFech05ElK/2QA928nXhQh5u9iJ8dX8WYBb/AHs2af/30mAhkV2goIEGnYKtKZR1PNQaB1fdUJ7XJzoMFAREGB0y5f7jt2Yi2apIFviU0e+n0Z7cv3ydX0vJu3REk9oPIsS6P6gc84p3vyIcHGv3uQLMTc8PZnyKarsGhdXXc5Luy+DxuPnR9W4P/IWMdtemgLKuxqqeYEz8crb6xxkUqvAPmeg== 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=MCMdiCS+Z5VLbHqW8repADVTOe8n4gC9NUWizk0m7gw=; b=h7+jME1khQcU22M7TDz8l1zS4/VYULHdfKJqlK5fxKXnQLHKV6Xm/B8qnn8MICOh8mCcwyi+g1H4gbnpKSfQPSmz7H99iyAHXtcZ2+7py6HegyT4Eun5r4Y1kWR90sMy76tedfFmfwwauK1JyyM6tIj/kWZt0q01GMjBcfsp0wWmv4MLKz5dmXMtwIgvo1yNOXL9Sm4VnRC9yFBqVf8XQQwSuuMK6uVW/oyYju/UHWGWIbZMZdm7bk1zYCZblO7lpYxl6kPG1BAmH58wWFHsQwJ9b6Kr4HVFddmblL0lZf9RKC4gbMfWRjnCDBYfJEhAbfLvoK/Adb3XEU5Tv5/e9w== 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=MCMdiCS+Z5VLbHqW8repADVTOe8n4gC9NUWizk0m7gw=; b=msv0XSuPFGYKqYeuO7qSU92fqFXOhtm2b8PxUTr6DPPFKBH1MiS11HrzXOrvzqpgmSfRRAKeSsKIWn6UodxB0kRSc6MJzclH0IvsYCc0wKv8AjYzZQ5X+gGcjbQY5fQfXTOcTzTs0ggMTjSzjjql0Q2lCHcNwBjxUwxdhqAJSos= Received: from DS0PR10MB7933.namprd10.prod.outlook.com (2603:10b6:8:1b8::15) by BY5PR10MB4242.namprd10.prod.outlook.com (2603:10b6:a03:20d::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7741.29; Thu, 4 Jul 2024 18:27:46 +0000 Received: from DS0PR10MB7933.namprd10.prod.outlook.com ([fe80::2561:85b0:ae8f:9490]) by DS0PR10MB7933.namprd10.prod.outlook.com ([fe80::2561:85b0:ae8f:9490%5]) with mapi id 15.20.7741.027; Thu, 4 Jul 2024 18:27:46 +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 v3 11/16] mm/mmap: Track start and end of munmap in vma_munmap_struct Date: Thu, 4 Jul 2024 14:27:13 -0400 Message-ID: <20240704182718.2653918-12-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240704182718.2653918-1-Liam.Howlett@oracle.com> References: <20240704182718.2653918-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YT4PR01CA0445.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:10d::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_|BY5PR10MB4242:EE_ X-MS-Office365-Filtering-Correlation-Id: 238dfe84-473a-49fb-1434-08dc9c57003a 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?MsMnHtxCLr23JCqKYPkQAPL2J3nXpAPy9gzW+Quv25cXoO6qkl1xqmuzP/1G?= =?us-ascii?Q?JbhqMKDOFkA0o06V4Ft06d/K4Mk4gp1m/GONhsWy/MrB8n1BcSKuZJYuSfd0?= =?us-ascii?Q?GOdn8sQB1nc7FQOkmu0CHPLF41RpsFryt1Rxbfu2ip8lVpsF3qDBizB7JbPb?= =?us-ascii?Q?jeFcrt8lru66cUPs51y/pTXbARpthNSwMGvhVFY3cXjVagxe9+lzidfmah2P?= =?us-ascii?Q?KoOMo48/BM6Nqd+QX2KQhZM2Qtyh07n2nJ1rs+ZHVVfvDzVAsJZOCR1ymCIG?= =?us-ascii?Q?Ptvf23fsqQHeg8ta/0nscghtEPRSHc9x/DEEwmrXurs50UrfJImW4yD1gcbQ?= =?us-ascii?Q?tZ3fiQRr8bf5v8It+8SIe7XPAj4/BmyX7L4TB6Kd1gtS6zN/qI7mWYD51EX8?= =?us-ascii?Q?nlQNCOK54+gsoVasGxcjDZs066gfTASSDCLQYaCcmzO5iBk6UeOlz+giI5E8?= =?us-ascii?Q?5LJwTRLVpIwHvXgvKNzxSggrR7OrK0Qq6EyfSFABeCqLfFpI15eEVHTJ8syk?= =?us-ascii?Q?Tz/2DhxddfmpOpKsRWHO/luxTTPh+8ituYkaGykoqkzQEfiKgIXQ0DyMPZxl?= =?us-ascii?Q?Szy2QMEEMdmTnAcydlcwFIuSKV3Or/bTwXnmvdpwvM8FiJpTN4PLHKWhdU1Z?= =?us-ascii?Q?5WjIPKNHUK8XtYRsAenN348WHsEAknC2LEWUBFkze/Ae/Hv62H34dlxleZGd?= =?us-ascii?Q?ldZiC6j8/KL51yccEfF2FXgshyiJAg2enYzM/EFDy8vG04/ZYYPKuXdgLpEM?= =?us-ascii?Q?k5huxgTei90DCvyz+b8gGW5OFoxPBJD7AU0wF+54Czw8OGWIGBOjUtv3OQkB?= =?us-ascii?Q?4pqYG5PYY6AEuA1g8ykwRffa4kNFtcuq6N5Z/QWOiRKexZO7EOAVW5ABFAeI?= =?us-ascii?Q?xZLwYTuWkXjmv8BiVyMJTNC0njb1R9fV6JagoLDVwU1T+SXKv5hXgV1vZisz?= =?us-ascii?Q?cIZuH5DgKx7donUCR3PHOCwP0H4qlOGCbisrM/gIG92CsJB5uQ1wMQE4/t/q?= =?us-ascii?Q?n6CnynxPRq/yQZKb2h4XEjDipQOCHcRAlZ/rnacGKafYEho4r6UYOgH8mu3z?= =?us-ascii?Q?C/LPuy5qWriuyqIQwW8QOorDIi76N6+QUhWHPJGlU0OHrWEzziYmEwhivxrC?= =?us-ascii?Q?Y9jJWto3aN5Q9Z8+q8akozcz8raemJ0abuzP389Bv/k5X3cZdDGF1If2gT54?= =?us-ascii?Q?59wU3kWbMZY42kfsCseaH3Coav6D9l5OSBudL3js3Ab/wXRGIOxXWTkp19Cj?= =?us-ascii?Q?BV5H6ZOtI/lGJwSAZ2nw5fbqdEGuB9q5Cdn4LkKuRTaQADJPdcX6MVLDkfjA?= =?us-ascii?Q?0w+ta0BcEqul9aBZC21xZAQyKc2YUT8DQIWwvQqbLaHz0A=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?UzVSaES31IVQv/ReGwKIcb6ftMd4WoDreS7Yf3eKsk/adlN3Kdh6nc46Uv5k?= =?us-ascii?Q?HUh5yq/qCOpCeceTtOG40H9HPPN7n6ST6XF9TR5kwf3X6dT/+1I/smJqWeBt?= =?us-ascii?Q?vKUG8c+iN7YRvo0IUgDvERGqAA3VxRl8KbNUS76M/olVLrVSBDUNbIENV/rT?= =?us-ascii?Q?DzeZuSzpQL6zYmaE09Y6gPeDznCOXCbaciH5axwi5i0qZ1kxRnuf4M285ZxM?= =?us-ascii?Q?+7UyxWcJSxdrmxXndFN55FVtY7nN5dH9Y8u3wOy6X1v09BWDY6EKIbjYnJP3?= =?us-ascii?Q?YzWpuB+XuZccUmO7U4tlr9Kpx6VoutNHITw5lJwI1iFWvkHYPP8oQJGimWgF?= =?us-ascii?Q?0/Y3EEerTzpNFbOHwWCBae2loiZa3H5TPhRR4YpVTE3jGqbE0lHQGkPs4o7b?= =?us-ascii?Q?ed95Nh/yrL3RP2hHKJt69e9zKWv+V0IG3lTwWrUVcBzwRBoZWXZoUDoIZXNN?= =?us-ascii?Q?xpJHBlVGmg2jX/CVr+E9VACy39jl+oi7K1DrqynqTpJNtF70A2/uuQnUSj+s?= =?us-ascii?Q?uIAnr+xWYARKNVwaJMT09dhCu51fBgGVtphz5nagMnJ1UIBefjDmGg0f6r2B?= =?us-ascii?Q?adCcYw3MpNs4mxnpR5huPyBXOMFgBf2c3qVdsit6hD8mlkmKHO9sZhT9sKa3?= =?us-ascii?Q?pYn9Yqicl7Js1amxI5uwlmlca15XEhtfMjzaNsTaGK0/oIrC+SDPlO4k8u/5?= =?us-ascii?Q?Um02oVLZ/rKgZjwHXTt8Yvx5TBq8n4R66Avt0D01ogKw1Wre1HyuRi05Aj5l?= =?us-ascii?Q?0m9tNChleBeipPjU5Fab1iVWGiZ0LUI6pD1mskKCy4VPm+UxavEPKd9brrHZ?= =?us-ascii?Q?SkwKgvCqj4KOOcRDKvQJcnhT5q+uG141KV40vUCZyR7SEN8U2BRJ8LH/83qv?= =?us-ascii?Q?WLxF4+7mKG98aWD8FzC74eRrM8K5ZhBHsrzHXcw3BUkj1ilesn/a4uvo8BIr?= =?us-ascii?Q?6PPfTe+LcKBM4xcW4BGSKiJzI4jq8R44ckXspMmu2NyOBNGiaj5opr4HulB4?= =?us-ascii?Q?NGyj/hzeWApWACNW0p5iRSgTtAwRcy1IDGOBFJF9o93PqUc3WQeZqRcBR5/c?= =?us-ascii?Q?F6mPj2ILQnT9tUuo0UlHVtzmjw/QCxu7I95ii4KoTm84EalCIUztP9eVSXX8?= =?us-ascii?Q?0h15gBwR5Wm01FBKU0gNZOB+v2Ie8mwDCi6toiiDFCCA5Qveyy1ak34p6ydj?= =?us-ascii?Q?SYZRWFeydIAQFVzpTFAHG9mo9nI4u6BQlAj9yN86WVpz2qhpO0LuXArYNtwx?= =?us-ascii?Q?ZSIq+rrSNjrjr2U9+n2zWjGuEM6YGv71/RuZ68Kle41+H1s1sTkjIa7qrtLI?= =?us-ascii?Q?q7AFwWWKCqnJlH64y7oMcQzHE7Dv2e98fCqB1vcOraX3aoeHST8ecne7bS7+?= =?us-ascii?Q?0kTRn6Oggnsk16iBJpcWTlGLCVVlpEqN4sryONIIZ3/EKVqUCwzSwwTFmF0/?= =?us-ascii?Q?mtcdowhfbs9slFTAUhxhLc1QI+MUCXHrPVJ/Ce/1LZqA+t+6SMmOSPmWhl7Q?= =?us-ascii?Q?V6pgHMK7SqxA78BLDRczMQtkAm1W0lddpNUhY/UdCTi4e8lWGynEvFiepJi7?= =?us-ascii?Q?5gLZM1VDP0yaY/OpryKhH7CyXJuWlYcT0T3Ukx4epJeraQChbOi158pdGi3n?= =?us-ascii?Q?mg=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: 0T28tw0OraNmhehrEEayPutqKx+8FqurgN0ToUBMZL8sUSSEIx4WAthA5zIXozBA7yEB4QdZA03whxuNG3+/7FqXE4g2/pG/ABUg9fgqO8f5jmWDvGq1XFVaZC2AJ9h/sQ181keumLn0Hm6gWthbbF5XKqFccX9ezbvWMZHWHLHTOPBjKwrpDblszPC0PcVk6a+2XJt9sCpqzKMKppZ94aGZQmyqP+3Q3UvY/ZcbbhLUGWp/qRTvU1+RkdgTvKUO2Fgt7fGOjorAEikPv9P84DLdbc2shUKvwuHWqo8O0CDmE8BMEr+tV6oOE5tPSQ16PGAvAAzxMwt/Hibenxupw552xzVSZ5bKDfPml0jPPtesJW1qEAcr6AkDt/+TuBAA0+CEimN4zaj7dq4wTvjNFts5iop6Ivi/mcmvpua7MlGzQ6AoyXf+PSsVm9rPnUj4cNjnifAqXaBR1GwDI0s+lu6o9A7B62SYQ8uTGj2FLr3bPuMmz/LUfEUa4c6vRS1dQfufgX3o1GWinqj+7pXzuivupe1rcQHHMSo9mmt1EhNeML8jGC1roooCheRwxJqD3kkRW7ufHyMYcZSwVO8ogC/rK8PXC/QXRVEa3RLGSNU= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 238dfe84-473a-49fb-1434-08dc9c57003a X-MS-Exchange-CrossTenant-AuthSource: DS0PR10MB7933.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Jul 2024 18:27:46.0385 (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: IPlhPbjat1sDze9Z+3cp2fHThEjmDJ4acOJCPE2ghPwuAD1k9j/VbvMbn76T2AD3BNrOH22NLsc4FBqP6pgdGA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY5PR10MB4242 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-04_14,2024-07-03_01,2024-05-17_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 phishscore=0 mlxlogscore=999 bulkscore=0 suspectscore=0 adultscore=0 spamscore=0 malwarescore=0 mlxscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2406180000 definitions=main-2407040134 X-Proofpoint-GUID: v5SnP3N1kFsz-RgIiczIJiS0K88X5jXU X-Proofpoint-ORIG-GUID: v5SnP3N1kFsz-RgIiczIJiS0K88X5jXU 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 Reviewed-by: Suren Baghdasaryan --- mm/internal.h | 2 ++ mm/mmap.c | 34 +++++++++++++++++++++++++++------- 2 files changed, 29 insertions(+), 7 deletions(-) diff --git a/mm/internal.h b/mm/internal.h index 8cbbbe7d40f3..4c9f06669cc4 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 */ unsigned long end; /* Aligned end addr */ + unsigned long unmap_start; + unsigned long unmap_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 ecf55d32e804..45443a53be76 100644 --- a/mm/mmap.c +++ b/mm/mmap.c @@ -525,6 +525,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 /* @@ -2610,6 +2612,26 @@ 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); + 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 @@ -2631,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 */ @@ -2699,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 @@ -2757,6 +2775,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 Sat Feb 7 10:15:43 2026 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 47AD0136E28 for ; Thu, 4 Jul 2024 18:28:00 +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=1720117681; cv=fail; b=IrY0mdhA9TfyRfjtBnQHwlEC49pGFpXgIQGEwsBeXhmIOVtp42sjIvNti9eXw2H+NY1sE86tZ6241n+NmiQoxaGSeVHyqgOtY54miXpLTsUInHhqGkmO+yIy548gCnG7UYfSl7H4deGSTyxyRc6Mt5c5suoBAOdDVoY9zxreJqc= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1720117681; c=relaxed/simple; bh=KtmXlntIJsZ9aAv69msPttljIXKTSd//sRXT/DaVm2Q=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=tn71ibrMjDooJmVN3L8HtQWiqurAVIEmLvkhIBF77FX+NT1PxiM5jCChSG9gU7WwMtah9RIlaXjhmTAAxwlqq/AR1FfDDm2NKeJqPGuEBuHFOD/Ijy8fBEC8tY/H1/xagSbnZskTH1MkQA2jIdlDYhXEZUiPw4LH3Bbq4jILJ4I= 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=Jv2QmOvr; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=OG/tycNO; 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="Jv2QmOvr"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="OG/tycNO" 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 464DvgbR013101; Thu, 4 Jul 2024 18:27:51 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=VUB1loQelfJZLcP06vr/xQr10Kh4VR4vNOsmdqiWGcU=; b= Jv2QmOvr8UYOsBVns76ATreLrrS8H81QzlC8hL4cR/h5DbE4np3sypNtT/CqmLaP Hif3a/8EzhX4yZqYHJiil/ecUQWWtL3VLPcCmtqoqV5rT+zlfzU8sOp6TFC+Spot XqbpDGCIyf2eyo4AD2kJCTJooV8JJ6spdrdY7j3ex2yomgOVl7nWfUn59k4ZxoHn FRnm16AgE7SmR91H4D7J11h7P+l/xPOmH9Yl15OUToggYEsG//iZIAh9E7LkVdl9 YRIMH0tbUijZSVJWQK/9hTaiuRBudeglvm7QHlpZw5qeGTn2wS0zD5AX7FhP8H+V iOqiAFSK9I0n3R1witTv1Q== Received: from iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta03.appoci.oracle.com [130.35.103.27]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 404nxgm8b0-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 04 Jul 2024 18:27:50 +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 464FnbR8021479; Thu, 4 Jul 2024 18:27:50 GMT Received: from nam11-dm6-obe.outbound.protection.outlook.com (mail-dm6nam11lp2168.outbound.protection.outlook.com [104.47.57.168]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 4028qgqaqn-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 04 Jul 2024 18:27:50 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=C4ffWk5h4F8eLQu9mr9WAK2uEGZGGID7tBsGgExObGv1Kf8V9KTRsOtcZtAHKMdLI5c0YmN/rVCYy0OClsFIZV+q3262+3nJqGh/El0x2CZNX7ubwfz+yN/bXTrENZAM/PaAWiPzAzCLrIKrgHfCNTeedCLYTHewPh5+8tu4EgAkgJUhbx+kcWtHupBq9/8pb5Cd1hclHZnyQdkjeKJSr0aTKN1WqyXz8ixOHYf080k9PcxiqtXEjsG6vaFDIRHDwmLSv2ixdhnELQdrsK5L8K+FaTT9tkUh1nDx4RujwgBW8zprQXb3v5lv97tkOcXGrl2C+Jyd4QoYgFEwfQCTHA== 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=VUB1loQelfJZLcP06vr/xQr10Kh4VR4vNOsmdqiWGcU=; b=OmN1cElriIPSzKy/Q0XL4XEiO+CDdVP2Fi8xylUTEeb1o34nxjnhdzTr+FQdWHPqJS9CZTga0GmSnUdizCjgCPk1HrMuWhSXh8On9rpYju8JvWsUhREF8fVLbKzpvy4oURrNRLHVX2wHh0zLv28NeQYpeYlRNKRsnbxWhvlOjDxhQ508Iskq0ugpJKxAonpdsn57mhqtnx2980uZ0BbuGH2n9RhxtQOLK2bSI4tq/BuvlCo3ro6SmlKAZ1lmrsrXHFGVpHZdGcDGTxK7fRTkDfW5Ym6+Q29lwsWAgHrTpk/g+D+PyaTMathd8cfAelDK9125VD5kOsXstDbvdc5zfQ== 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=VUB1loQelfJZLcP06vr/xQr10Kh4VR4vNOsmdqiWGcU=; b=OG/tycNOE5Vn51mPf1K+LvdmJUuKoRrg5p0a4NT1HFwUBEqtZTcfTClrJKDUoYoNYP3uZTucpDMrqaU5gkvIaAppjy9OAlmXTApO20WKieLG2wBsIpjCJSdGAiyzKcHupFA34Ug00WgAkZkKIY/QDo5nfNZpvfS9xKgmooiHr0c= Received: from DS0PR10MB7933.namprd10.prod.outlook.com (2603:10b6:8:1b8::15) by BY5PR10MB4242.namprd10.prod.outlook.com (2603:10b6:a03:20d::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7741.29; Thu, 4 Jul 2024 18:27:47 +0000 Received: from DS0PR10MB7933.namprd10.prod.outlook.com ([fe80::2561:85b0:ae8f:9490]) by DS0PR10MB7933.namprd10.prod.outlook.com ([fe80::2561:85b0:ae8f:9490%5]) with mapi id 15.20.7741.027; Thu, 4 Jul 2024 18:27:47 +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 v3 12/16] mm/mmap: Clean up unmap_region() argument list Date: Thu, 4 Jul 2024 14:27:14 -0400 Message-ID: <20240704182718.2653918-13-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240704182718.2653918-1-Liam.Howlett@oracle.com> References: <20240704182718.2653918-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YT4PR01CA0454.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:10d::19) 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_|BY5PR10MB4242:EE_ X-MS-Office365-Filtering-Correlation-Id: 3153aabb-8ecc-414b-c180-08dc9c570141 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?ZPXH82L8iBpZtMTTCipKeqr1c8BGwG+slEGsj5VkBw5c7mCtby0nQTcQs0oY?= =?us-ascii?Q?JFGAvVuj3sxgstdtNI4UkzJLRHy1U3abwJcwqj6OY8XUCo5yWtSi1574JpdB?= =?us-ascii?Q?Nrso6R6sT1eI4aNFJeA0RIU1l7T4pXTTOYNMk+KbZed+0qfo1ZB2ZHviIeeh?= =?us-ascii?Q?nETfHMYq3ErK5f45uuUwd058sXgXM3YUw1qNY10o50edS2HsSlBB0xERyxML?= =?us-ascii?Q?a73MJQWt4hWQ5wwKKRDqZAEjILSyFx7ClOtDx1ho9bo4kmTqImNovawroGM0?= =?us-ascii?Q?nJbWGefZFccpFrA9GvWeOgIFw8HfMBnc/om4UFXv0FiWbK6fZ8kUuiRehd3q?= =?us-ascii?Q?/bejBBNaSsJOnQRWU6mlyD/NcyvzzSW9V6+sK2QwTUxfiNsbzqcj5KjbtfYe?= =?us-ascii?Q?g0xaBfo+Gt2AWg4o7NZ1IIjD7FJWxDxQcK9s5u/uJRbo2RhrTMhZSoy72xmC?= =?us-ascii?Q?r6rbK1ruopJ4YRHF5G78Gvg/nnZtz4BUTGddyoYbwsJfsAPZD2fo3OqYhDxI?= =?us-ascii?Q?OYxnz/OBq1zEbwt3Aaym2gwhyMTuV7Adr6iCbWVDxjl5HoUM/rbJ/SSIFBQ2?= =?us-ascii?Q?8Tx/0XjPf5XhiEEJzSLgzgeBvHvIZU8VIgA4Ycf2niJGNihj/liMkMb0k4Dw?= =?us-ascii?Q?I01orRmOn+sZGkTDeD5hOK6nLIhZ3SjIy04g08D9ngaAHMq1w32Zs6hSjFWB?= =?us-ascii?Q?8WXwEJFWw7iobu5WFukAiHQJt4GolZtpW0gCVLidYTaKz/kGxGYzPdu+KbSY?= =?us-ascii?Q?VpXeToAtMEjGWwueRQQS91XANiZq41Q/EVI2VRBDh422lLmY/zH718XYEt90?= =?us-ascii?Q?/BWOgT7WnJq46omH8D8QeYcpo2+P293yyv0VWppLKi4xKvZDbX/iNs/WxRIb?= =?us-ascii?Q?vE6WLA9aweXa5FknG5rB82YjAILD5c8oM1JcVm4QzcjnuPpB4vi+oIs/NrRr?= =?us-ascii?Q?j0g4TTiM+DNHx2ABzjdVsl025z/JhwGTf46chzKKrPKVGgUUqEUwbq87jAoN?= =?us-ascii?Q?FLENn0+dB8J2lGFjRkQRZw/AI9y3p+qeRSh6ofTIZkYvunw1uq1ZNzXJgUCR?= =?us-ascii?Q?IZ3HG3oAB9uoOKhGioaDueRKEAo0QKs6r3J//P4ttrHoemGon31vYnoVUeQv?= =?us-ascii?Q?hJQRhBzkbME3Fxpo+SknDlHV4++hvjSNGDulq2iODJL1nPb9qb2yo9wo/ogb?= =?us-ascii?Q?utmpdBayZbcEOsnmBHT6EJNsHIAMd8mqx7J26pgL3IFH+gR4IF+itpqIab8e?= =?us-ascii?Q?TcNLplHRF+F8untPq6Pal4btKx+uRq4Bdw0a6u0XdzC8N/7fr1hfJ4xZMBGn?= =?us-ascii?Q?bgRlrozZkqbKwTAo7W7v+v43qhTpPj3xvidOuhDKptKB6A=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?DQkpoYiTTU7r65oIaEoKFOYhkACNr7iSc58l1Olw5hoQ5t+NuPLiXz0pCDEv?= =?us-ascii?Q?bpjf/pY4XjpBLlyLZOqU3WAWVS/SI2VjnxNRr699flLiDPfRfu3nOqxeDOZc?= =?us-ascii?Q?WkBchGky/3hwcIgvhKI+lAQSmieGqNRZ4tF239LYeHN+6kgt8YK1JJN8sDW8?= =?us-ascii?Q?LZilwZvFf+SQlIowqdTUeLING3TvdEpMLjLV1D/BqKa19SoT/89KXKq9qb4l?= =?us-ascii?Q?/PXk/JoAdM2BLKfeEs81vC8P2IJkpXpQxIT09jcP9SAzukTWBSQkOqUvma6E?= =?us-ascii?Q?1/j8eRQFztSqLKi3v4c5AX+sgUKeTj160E3xPvqljYkShn7bl2oeHiRIZ0Y9?= =?us-ascii?Q?4NRjUQfo4myEqkxTG7AAGnIIMN3p/RIFAeNoMSMw/e+SdoykIx8UU14eLj5p?= =?us-ascii?Q?O7PbBUbjMgrPOrpKqvFQpmhmgZs1/zWu5/ehlQhxNhGTDw6QdyGktQUuX8ke?= =?us-ascii?Q?g8pOj53iqqZjDIOd2cezp1ZiSw5I/LBOur8PEhe7DnUoailWxVP1TUmpqsCk?= =?us-ascii?Q?FAtSO5OS6QkIK7+F59e3jkobnBsEdzldOYjyljrXNwKhG8FatPGZMH52K71i?= =?us-ascii?Q?XVGvFu5RJhc59QTWp1jGJcIJfK5foAIONT6fJcOeo57ro9NDSlHRVUFvGGIc?= =?us-ascii?Q?QaU6QWpBr5Vny3c0nJdTWG9affVRwvwyfu+qx1vFmwU0hTerIEjLzvUu/l4x?= =?us-ascii?Q?VDQQd59Ete64kUgJIolOVqVI0ZJ7od1cxFnW2o3FGzN0JnY/T93jSFfvTydB?= =?us-ascii?Q?LOQsWQTYS1/uM+vLYHp9fyrWW60DTFnEJ2/PNwV4DcFieEiN19c8WnSBRAmZ?= =?us-ascii?Q?8q2DNkcfklO1JUeYiJ9NOHEgLgkKapsB7MbJitCsxqBWJGi/xqFmocN7ScVg?= =?us-ascii?Q?fc60PkI6HtqKNTUkFJ2qH6LlZc07+lAl0dbonrpwf+xICWVCXcgm23Ysh8yr?= =?us-ascii?Q?C5rL+U8Df++v1ffmF8IOtZ2qBvWLbAoKZeosI/QfYqORBG8OHHAhpv8sb7Ns?= =?us-ascii?Q?B8ICSZt357K9nJWhhn+QF2fEEomEmDLJm9qzZuxSrdQYA83b72kq5LDab347?= =?us-ascii?Q?YxmfguTbtAN6afRHla5+a4+wxkGeR9zFHxzo/9rXSNIGM6A+hB6zDPRJ9+Jq?= =?us-ascii?Q?gLtJEL28bf2Z8I2R1GZSvfoqnufB3PTIUCjSM53/xXPZ0L6LOwYvI6bLG+/H?= =?us-ascii?Q?2diHh0vPnOYSxMxavnJtID4Uo9xs3o341r1Vel08BjpfSFnzkYnt4tMyZB0J?= =?us-ascii?Q?39jtHVHcQ1ODQIo9uUMu8EP8qLpJ/Zo5cxEubXDJ/M0gNVxsYt66nIkvsczN?= =?us-ascii?Q?TZMfXKG9/gxZIzePk6rioykBTKXyltKOEwvWcZpJDmCsqgoPGMG4bHp/UGSd?= =?us-ascii?Q?nK7qifH66YOcEznVQFDczfC5AuDKUb73NB+HEMg1cmrCIcC8TKGChG7LDOGE?= =?us-ascii?Q?voWmp/cj7yOpvAFSxok1PaPC650+H81eNuDIavPds4xcuX1Nk9AsO0kVYKcD?= =?us-ascii?Q?hUsYUPhTtXWA8B0yR1WKlzHaaMtRfTYo39EWMyleiwQL/1Pht63t5Xt41PdL?= =?us-ascii?Q?cL0sFSIh5uvQC0PU7otmH5ELuVVazVkybeh8VkmyvbK2TCV/pO8bp2ECw04n?= =?us-ascii?Q?tQ=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: IGvc/NFocsSEPd+JRFpBQs1sbrEMpKDJD85MvEjYIUvlX/XoDsLHIAEXTG8MoRdPimucJ0R2gWOw3GcrICGBX7/aw//ef5Bm7CAUfCU13MUcgEGg/BWDIgY7QCYb8rne9Au1PZ7AdwmTnBj7hlWM5BxSDdWsua2v3FHhPfyFiPjeqgn0WnEAfwuckik9hDIzqyujYERe062PfbsVXyl+5HzZ6zvg1tud+9+blIvgA17IO2nuiTDZeEUQeSfjl8NnWhNKtBIySFant2LQmX3IBVdQPW5vX6IlW1GKY305iyIg25asHSlx2ZJapoy2dPx6ZUnqtOLCQl/0l+/YRsfGR6E5aZkxSQBY6NjTwo4Wkg8yZtejgLMfQgIjamEELfH5s3aNMAB9C5HlwqyxW0Aw5Y58YOZFAJTV0YbzN9kxWlLPleCOOih+tt6asoaRlsJCFdhT1HVOJQFA0NozAxdNIQbNY/w54m244iXbR/M1dxZx7nF+MCrnqP5QETZsRray1gF+cHkH37xYWVMsuon4M3XOvkHnVgJx6N4U/7odL10fLFTriOgF7N9BexwSqBzStWZr4GNFYvYa7Tqz1hzgJsyFhcwS7j8Z2YxtuDf/5ts= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 3153aabb-8ecc-414b-c180-08dc9c570141 X-MS-Exchange-CrossTenant-AuthSource: DS0PR10MB7933.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Jul 2024 18:27:47.8185 (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: Vn9aICq0eNIZNFTS3FmfTPezlHJUqN7z3vkYXHoZvWkHasFnztovQly+RA0sl67pH3+Fw1QH4BDwNMU0LDFuXA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY5PR10MB4242 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-04_14,2024-07-03_01,2024-05-17_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 adultscore=0 spamscore=0 mlxscore=0 phishscore=0 malwarescore=0 suspectscore=0 mlxlogscore=999 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2406180000 definitions=main-2407040134 X-Proofpoint-GUID: lH9ouwsfx-iDhe7qV8cNLJBeMeDRpijq X-Proofpoint-ORIG-GUID: lH9ouwsfx-iDhe7qV8cNLJBeMeDRpijq 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 Reviewed-by: Suren Baghdasaryan --- mm/mmap.c | 25 +++++++++---------------- 1 file changed, 9 insertions(+), 16 deletions(-) diff --git a/mm/mmap.c b/mm/mmap.c index 45443a53be76..5d458c5f080e 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)); @@ -2398,22 +2393,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 @@ -3186,8 +3180,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 Sat Feb 7 10:15:43 2026 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 9D40613F432 for ; Thu, 4 Jul 2024 18:28:06 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=205.220.177.32 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1720117690; cv=fail; b=YjBDH2XKzZyvudmnDr73tuPNWjlH2jw5yvuUWgTpRP/QiQZqWzxAl9lxF1EELbDNEA4dfaJuFv48dD4qlijnMeJHGx27jC1AO6q27XwVfk7DGlZtww2PLyVoPNnyVxEc5mMIvRUGdxnFztADTYuGqvndvzLUdzNn6zowQ2miLfY= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1720117690; c=relaxed/simple; bh=K34Eix530ATcNp6na3e7VmzDiTBvudYMCZW3OL0+cXU=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=ZGiYH57FfpahlAw5G3VFtygcJrzi40HrqpUtJLzQF9jXwobdy2nsRrLipNhZcHtpF6hpjAzi8iGX+okAUr7YGPX17AHid/MYkOeOxZC1Ge6B4aieDmPJQENuZ1XV+F9ejgTavfUAdbDpu2Q7lwrc9lm4CcAdifU7CCOZWERab6g= 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=OtyaXuK4; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=C2m1VjA5; 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="OtyaXuK4"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="C2m1VjA5" 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 464DLweW031054; Thu, 4 Jul 2024 18:27:53 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=cbmWb7Ca9QhbidioktTVL2ube+NqVVmgF2/QsnRM2Ls=; b= OtyaXuK4A4k1yfwLCxOrsHN1quLSTws/Hqay6NuBYctF0kfm9L1q9Jt+eyTN0QCz QyDRXCc15uvO51A686VwBGnPjyqvqAKD8bVIVYdahQcVFVSUITZAo3O73I/VmGFw /ahZdF5ClHobJW5gVtKtk3wwRgjCMJUALo/W3f3URXpKhYhmYfG5EzXY1Lih3/MI LGVeHKjo16BiNsZ8aj/oGM3uhIqfKhnRx7CqxguanFOEhdRMNMy3q83ELgJMRBFD UFYledDSKbvVKZWlSm8n62W1mUIfskXRmtQAlmxo9We6TPZpPuHvXwbWp95pypm4 cpunknoDuRoFwQjvO4SVtg== Received: from iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta01.appoci.oracle.com [130.35.100.223]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 402aacjt0n-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 04 Jul 2024 18:27:52 +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 464FoemP023607; Thu, 4 Jul 2024 18:27:52 GMT Received: from nam11-dm6-obe.outbound.protection.outlook.com (mail-dm6nam11lp2168.outbound.protection.outlook.com [104.47.57.168]) by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 404n11kmr2-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 04 Jul 2024 18:27:52 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=W753l3eLhyGIokJabDDZPLn0BIeXWziPqzf4UcLjRfjAn1dTRSeDUPiNODJrCMh3jfA83AIPU6ESACNmZHW0qmoi1OVSZ1Wn3Nu5fLjT2VbDXWomcVQ7F4nq+f/uTcCbjq+6CFg5lkcAW914pQI3r4/bfp5VNxjrcuSKBbaSAWMoWYgKKaftxZOrt+nOtvDOz9Rsv5yEKRnGVgfU/1alVdw4cKY+gKtomBXPJJQIe4t5rDpDUbn2x2x0Kl2dZMJIwSHPsTFvPwHOiy5Q7Q22qbKb59SVPBtbl+ffB7Na6vJPYWs8YAe6t2otcJyZCAHgN+570rNIy7xnMNTtU2wAaA== 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=cbmWb7Ca9QhbidioktTVL2ube+NqVVmgF2/QsnRM2Ls=; b=m16VBkerahljIur+G3PqqUmbQbELObgMpnc5xX8vvrE0svLog5bhBcCSmGA/amJQ+tdc2XI1I2uhXW7U4IBYVUKmQfzWwF+LFbX25+j9i2t49+iyQAL2yFqFL6t3GeOulb3FDInZGOG2WNDkxwozzy/sB41DnmR8SyTmD6vkdLh0TZC84+EOG4/MeuvnCbcWvtaNsek9itcpOSDTDwTXlMvykWrAMkJCgiVeSnA2d39LIRJKxBX8JtIwvVxsDpcoWMXnF7t3qGBuC0kgxej5b9dEjEYgd5jRF4ST7OHpf936poZ1IsqyjEAEO4RA3LRUBZOwcjVYw+wTc+0XqZ8wQg== 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=cbmWb7Ca9QhbidioktTVL2ube+NqVVmgF2/QsnRM2Ls=; b=C2m1VjA5IC6p93a6IjVLjN4B6YjcO96Cl6lOVKVhWWF2Nv8XMVLEMMqWSzWeqdBXz5BqZw/bcA+U5OsTeT0zu88ILza0gMuWQROlaDqmCTF2UAPsFJznzNHXixqNQugs3ikZeo3KFnXMDoKZoC3d4/qv6JscXA5uEZcvV29QQys= Received: from DS0PR10MB7933.namprd10.prod.outlook.com (2603:10b6:8:1b8::15) by BY5PR10MB4242.namprd10.prod.outlook.com (2603:10b6:a03:20d::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7741.29; Thu, 4 Jul 2024 18:27:49 +0000 Received: from DS0PR10MB7933.namprd10.prod.outlook.com ([fe80::2561:85b0:ae8f:9490]) by DS0PR10MB7933.namprd10.prod.outlook.com ([fe80::2561:85b0:ae8f:9490%5]) with mapi id 15.20.7741.027; Thu, 4 Jul 2024 18:27:49 +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 v3 13/16] mm/mmap: Avoid zeroing vma tree in mmap_region() Date: Thu, 4 Jul 2024 14:27:15 -0400 Message-ID: <20240704182718.2653918-14-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240704182718.2653918-1-Liam.Howlett@oracle.com> References: <20240704182718.2653918-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YT4P288CA0023.CANP288.PROD.OUTLOOK.COM (2603:10b6:b01:d4::24) 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_|BY5PR10MB4242:EE_ X-MS-Office365-Filtering-Correlation-Id: 6344b4e9-d6c1-4798-b1ee-08dc9c57027a 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?sGbxOS4zDIz/P8l3ep74Cjg6csCXlJx5LQwkeezHYE4Pwg4kOnXF0emarQw7?= =?us-ascii?Q?/HowM94K8e+SCJFD0Fi/pGdryWddKaPMdi9Ou21pwp6rCQMjMnEPDC2ytfVe?= =?us-ascii?Q?kLQDiRpk7TjnSRIbubgmU/sPEOUeyVFCU1d9WY4cE1NxzRxq0ZWuB6Iy/zuw?= =?us-ascii?Q?vnkuFqT8GH+elt180YAz7DwSu7rDKv4y7AW/fnvDgwOt8gvRgcWWyJLRDWfL?= =?us-ascii?Q?2d4TD6RsjSlhKoU4FHIVyJCH2oBy/6G86zXvlHq+l/KhBq6+qadwzbxzHYEq?= =?us-ascii?Q?Nq9fCy+3ZzFLWLeie4R/P0luwEI2woNB3EM3KAQujvWJTk4VKMvntk6/Kz0g?= =?us-ascii?Q?kd3XzbtWB4LJvter1Qn4QKVl4jzxEHS3cp36v/llqDDXAVMUxJXDxDVH5drv?= =?us-ascii?Q?rQBmmorr3oVy/JJ+iddIIp6Kybq5k37insW1YzjBfZr4KbyJLCm3xYfSY68e?= =?us-ascii?Q?mMNwYckPpaaj7Y1iuV8aY0YVpqWj8dtWxZVoW2+xN9+fD+L9vfndqkOOAk6/?= =?us-ascii?Q?ruacHqIRCgYaTgS7BjdjtSKjeqvIgV9xHDBqfoNUj+Ic6s8h//xfL8g7rzYU?= =?us-ascii?Q?DRLrpv65OOnJGhQodJtVLXOktDoYR//SXCosj9hVQeNmhbh/qLu93vQ5qXfo?= =?us-ascii?Q?mT1NkQn/u8VCh90ZDiulgZZjdYGesiychl6vps7QLEujy3FJF3H+mSNuGaeL?= =?us-ascii?Q?socxWZJszOQD659o+2KmhSoxOw8/gepUgORN00R3D1NkX9e3db6NwLwWgIHa?= =?us-ascii?Q?GtscN5QHZbl532yZt+W1RY7SznRLtdvCanNldKoYr8seQPT4kihx1/uZIXUh?= =?us-ascii?Q?wUxqE9XudWif8+T/X5wJUsfUHm4q5XDgUh0Fdl4T7XUi7WbnyEfVnXbjA6r5?= =?us-ascii?Q?DW1iWol6SFJK0fHeIuUgbBvWDDaccH1yScHTZVPoGZ3MSM2Q3kptmj8FAexm?= =?us-ascii?Q?5E9ZPlP6zZgX/mDY1Hsy8xFrT9922ebvZcgkcSwBmncV/pDmfJx6WHAdA+fV?= =?us-ascii?Q?N2geA14lYiYL6ZDKQ0dFLl9l+JvyuqPeGgXaM1IYtdURv16dvxV2Us16RcOF?= =?us-ascii?Q?sETtLB4Ju0lRZ10sFWhW2ZemUidyLF2HryR0if6e1yc36J8E1lUA3MP6EpOv?= =?us-ascii?Q?JGRbAsfSMIZygTE4lKP3zwlzWgL5ou7SIDQCsbIF6E8eGf/gpo77x9iZTI2u?= =?us-ascii?Q?OvBSxt+c6j0ocWR3PIxOGfe9hijI7YmNPJIYx4wwmeAN+Jbb+nItqAk7Ud+t?= =?us-ascii?Q?4sPm7Seas+EjhzR5c+2pxkSbPI2WP1LZXLcRsmaEN78/55A8oAzzMMQa+WzW?= =?us-ascii?Q?mY6XNE0LyKKQbEBchHbBaSruORGSkhS3QqPImqdTb2tndg=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?q6SocswB4fkIIFzMcXroW9ZsrGD1ClLP7AbdNeCf/I3OGHMm9Z67inGW8KfE?= =?us-ascii?Q?ftNP/mO+jBx/IcK0C/sAblbCXPqxSjNisdiBIeaqsCey7rjkpJKjVDLg8KhJ?= =?us-ascii?Q?5zmIMUH+pX8z+ncUpaYrasn/gSQQSXocDqH19HmOP2tIU09Au9Z0Yh7vZXMJ?= =?us-ascii?Q?HXFLlRdeDis84wep3UFzz51CN3cJRLJwUek61oW3Wo41NvvZXGGEzdsHflE4?= =?us-ascii?Q?PC4CfbkdUEw1r/EgYSF4rl6opbEd+pBEUnQ2M8cDXD6wpMN0DyFyuVhsZbny?= =?us-ascii?Q?8+M2kkln9qYsbnDXhkcORsePqXegc1MqQXsg9jXEJWYFsJCue8iMQky7AG6V?= =?us-ascii?Q?c8fegP7hT/zrqbVr1qMlB7IdnCaGWUd7awYOWkfZ9C/MDhqaCr2oCLVnZuIH?= =?us-ascii?Q?vzAicv5+7iHI3ErMiUDLJ8Tn4KwcmEUSzDJfW/wgZdc3optqkat1Vc1H6gzz?= =?us-ascii?Q?jIbrN6deWuoyyhkmOhnw8iYUQQNCH+EosE5M3z4YiEpsCpA6rUQcgLTMBqps?= =?us-ascii?Q?AF3ZT4uJIUC5ikoE+ScoDFn3r4Kai7ptRA6Nf6aN8cF3NUWV55gpjbzTJyu2?= =?us-ascii?Q?JW8WfK5FK6fbgijjMJATA7Jtm48/DFMfEBSPvFzNeCEuB43leX5cJYGHk9ka?= =?us-ascii?Q?RjSD66cReFGUKXgSakmQmokSAzB3v9DeW3J5Oh666ZceWAV8bTBetJPhq6iR?= =?us-ascii?Q?vf7gA50xmVaMFWaGSAH0izdLSSHn/eoHj7AhgAU8aNJAvIH0RVH+j2AYIOdl?= =?us-ascii?Q?Aopx67ZEEieOk06fp6JWxyzMsxusoM58zh+lrwE3nMOGnWs4sO4bT/7IPEoz?= =?us-ascii?Q?3ar02CPAw847bsPDo6Pv9QB1bv1uXKRXi/ny/rzntIIVG+K+a1c2lcgqk3ki?= =?us-ascii?Q?edvZHYqryaxY+XJn4PO3d7gGj9r0qvL7DogzrXAUx64XPTF44Ss819MAkNse?= =?us-ascii?Q?WHbPvmHON0NRaWvw2E4KvopHfZflyyaboiB/WGrO4bdBzvHID6roo4Y9pIqD?= =?us-ascii?Q?Hv8ppVb5LZiq63P/SYTBy3Aox91x/OBBK2Y27JbtDWkK5H8TRKqHsFNKiNit?= =?us-ascii?Q?tXm7j82wZzYyr4CBUBbmnzSh9pXuq2KpSbk2RRGodVghDPgz/WGSmMc/HWdu?= =?us-ascii?Q?yNLd6aI9XUuNmP353nQI9DNsaaGrOmjEBFpIEC9NOjBZnJLzimdRAasVIrRv?= =?us-ascii?Q?DZjAM+ZeAfw+ZqK1v6AOC6QQZAZTsdE8PyS3AGNuS1cNKST3laeYWgdmhUEN?= =?us-ascii?Q?QyU25ZOz8TFHUHca7DFPUu0ox+p8AErLmM7DeFx5PYuaI6ti4iyB5levaFDF?= =?us-ascii?Q?R7N0r01O6xIDnpXzAp64U0ffl/TWwRaVBMdhHtoep3sFVAkHzcFhFNomsPe1?= =?us-ascii?Q?0PUcX43c6YNSDztFLjgzZrZCPQxTWewhybB6knZ/XKl1Nie9MTs7+FrhxKlD?= =?us-ascii?Q?/BMWrvcjUKE7OyjTko4DRGAC/MXIxedBpa0Cs3/hrRzdt8IuXCfxUliZ03LE?= =?us-ascii?Q?CgU1OQ50IIsLe0ctgj0xaD7o+zymmS1GoQk3PSCqiSELPhUYET5aeTxF9Hfw?= =?us-ascii?Q?7Pk4yjzDJQiLAf+FYIW4bGV5fnPsP3W2cGinq+1eOj9FieMUZPUdyGjrWZHF?= =?us-ascii?Q?dw=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: 6l0In6VKbF6m07eVf+xEqjhD3VSA7HwM1ZRre+kX6PDzO8TfAigI0kf+pc8tDNgy4V1PIfx25+pLZtf5PHVqk6SoL661Vx5lTOn1PWM0tjefE8pw9C6mRdtN/98vUGYLG/ba9ARY2lws0bEQSORIpG2kAh7cqoikJp/j3UVe2nP4R0luaYdeS1N3Tk7pC+j43+8Lv9n9bAda1reTB3s+PPYb3vka4zmXJJnI9c79jNiDO8ILSBOKrNLxG79c9mXUZqtkeqY8QKmD6CePlZ0/e6Z63M9aAplFh2PTVjcdtfQtYfBpajkc1SoBScGVBpS0Cd1jKIXXs/TcP8RQvEtF7ZCHDvSpHJ3p7UC2Vk2Pr9ghE/9VOm6sM2uBEfs6ykGrYTxwHFEtodPp40YFYV1psweWoqOX1syXryOvDb3ywpY+7pU6vbOdlbzeGC9dqZjqfbuRr6TrC1Chm5M18e2zj7nm0r6YUC3GPZLgJbvbvZNU0p1/N7LFAxCDWPaHCSU39SbY8z+0ohY5wViV6ovVziNhS/DJi7FKWf/glAxZdzBPsvlBJPjyx4l/qY5Q1m09eOnHN8/dhAUK9XjzxUC/UMhIccSe4ckjDfJh4a1EMBw= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 6344b4e9-d6c1-4798-b1ee-08dc9c57027a X-MS-Exchange-CrossTenant-AuthSource: DS0PR10MB7933.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Jul 2024 18:27:49.8147 (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: WOfMaTlvOnxEkasW2Cpcic7YRz7v1SRoUPI713b4OO2mUm4iwB+pvmWSnGUTiqmAhdXaD7CUEcS0oq8YO3XvVA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY5PR10MB4242 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-04_14,2024-07-03_01,2024-05-17_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxlogscore=999 phishscore=0 bulkscore=0 adultscore=0 malwarescore=0 spamscore=0 suspectscore=0 mlxscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2406180000 definitions=main-2407040134 X-Proofpoint-GUID: qpCWcEOB7OZ3GNrF1LOKsvGRj35glK6O X-Proofpoint-ORIG-GUID: qpCWcEOB7OZ3GNrF1LOKsvGRj35glK6O 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(). In the case of a driver mapping over existing vmas, the PTEs are cleared using the helper vms_complete_pte_clear(). 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(). Signed-off-by: Liam R. Howlett --- mm/internal.h | 1 + mm/mmap.c | 61 ++++++++++++++++++++++++++++++--------------------- 2 files changed, 37 insertions(+), 25 deletions(-) diff --git a/mm/internal.h b/mm/internal.h index 4c9f06669cc4..fae4a1bba732 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 cleared_ptes; /* If the PTE are cleared already */ }; =20 void __meminit __init_single_page(struct page *page, unsigned long pfn, diff --git a/mm/mmap.c b/mm/mmap.c index 5d458c5f080e..0c334eeae8cd 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; @@ -522,6 +526,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->cleared_ptes =3D false; } =20 /* @@ -730,7 +735,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: @@ -2612,6 +2616,9 @@ static void vms_complete_pte_clear(struct vma_munmap_= struct *vms, { struct mmu_gather tlb; =20 + if (vms->cleared_ptes) + 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, mas_set(mas_detach, 1); free_pgtables(&tlb, mas_detach, vms->vma, vms->unmap_start, vms->unmap_en= d, mm_wr_locked); tlb_finish_mmu(&tlb); + vms->cleared_ptes =3D true; } =20 /* @@ -2936,24 +2944,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; @@ -2971,14 +2974,12 @@ unsigned long mmap_region(struct file *file, unsign= ed long addr, if (vms_gather_munmap_vmas(&vms, &mas_detach)) return -ENOMEM; =20 - if (vma_iter_clear_gfp(&vmi, addr, end, GFP_KERNEL)) - return -ENOMEM; - - vms_complete_munmap_vmas(&vms, &mas_detach); next =3D vms.next; prev =3D vms.prev; vma =3D NULL; } else { + /* Minimal setup of vms */ + vms.nr_pages =3D 0; next =3D vma_next(&vmi); prev =3D vma_prev(&vmi); if (prev) @@ -2990,8 +2991,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 @@ -3040,10 +3043,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); @@ -3052,6 +3053,9 @@ unsigned long mmap_region(struct file *file, unsigned= long addr, =20 if (file) { vma->vm_file =3D get_file(file); + /* call_mmap() map PTE, so ensure there are no existing PTEs */ + if (vms.nr_pages) + vms_complete_pte_clear(&vms, &mas_detach, true); error =3D call_mmap(file, vma); if (error) goto unmap_and_free_vma; @@ -3142,6 +3146,9 @@ unsigned long mmap_region(struct file *file, unsigned= long addr, expanded: perf_event_mmap(vma); =20 + 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) || @@ -3189,6 +3196,10 @@ unsigned long mmap_region(struct file *file, unsigne= d long addr, unacct_error: if (charged) vm_unacct_memory(charged); + +abort_munmap: + if (vms.nr_pages) + abort_munmap_vmas(&mas_detach); validate_mm(mm); return error; } --=20 2.43.0 From nobody Sat Feb 7 10:15:43 2026 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 3A303142E87 for ; Thu, 4 Jul 2024 18:28:09 +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=1720117690; cv=fail; b=EYQ+GHkeiMiRT4A7k2YNyROubT8XMR6wflDi7ppt2F6hbXcEokmbcWLTZkyT+y0FONCyrQC87jUQtUeKFMjaLR7l3Zxh2Fq5sr7TaHT2g0X60bE0t+Zsqcjfesq8Y08go25+X4DHkT83ZZ1aGGUlR63/theQzdVk8xnYmjB+z2U= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1720117690; c=relaxed/simple; bh=psOkxb7iDuyI3+imAiN4r7EdGQrQ73DkMYZilaAr0AY=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=JGT/FTJfg9OLp1bL2EynMisYSckbHN86f6qv2Rll6bWsmTuXP4PbGqbss9SIMk2XvP/Q11qBmqNLhA1xbwt3SivKBVkASlesn/hMvR+TLBU+cs8XwIVx4Z4qA5Hv2gspbHq52PujVgQS2nKyRCiFOSl/KMaEw50jsYtq1fjzbzA= 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=kiRzqXIO; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=Sd6JnKsI; 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="kiRzqXIO"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="Sd6JnKsI" 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 464Da8ew031153; Thu, 4 Jul 2024 18:27:55 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=XTVQda/B1LDqelqTwWuPluxnpObvBBanz2FuJ3HyIMQ=; b= kiRzqXIOYpX9WQvQ13iVeNa5TJP/IFvf2XAagiepAuDsMFfyCa/gT41lDaKg+WE4 /HivymS9FELEeJW/p90fpOKiTUiXCJLwIXv4YW98UZvqrO2qzMvcdMwLNXqKnix6 jQFX+wQWFMsa1h6FlnHTMTScAK7aAyyw8PzbLIIMTMZHvBy9JGaZjDpXmD7oATHR ujuTjS6IrFMlsBMLLmfgtfXrYrSalpBK4I3G5ElOGoSkGWaTiCYvfuRSd4xQWPPa A8hEjLxBk+qnp9bPCHewDjadjKDTvuLIs0ZPjlB+gp8ubuF61gIbCNdINnoEnesO HD3+GBjQhCJ+kWMk3QRwGw== Received: from phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta01.appoci.oracle.com [138.1.114.2]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 4029vstk44-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 04 Jul 2024 18:27:55 +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 464F64KX035674; Thu, 4 Jul 2024 18:27:54 GMT Received: from nam11-dm6-obe.outbound.protection.outlook.com (mail-dm6nam11lp2169.outbound.protection.outlook.com [104.47.57.169]) by phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 4028qacuq1-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 04 Jul 2024 18:27:54 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=mEAltHsR6zYig+cry4SFJKO/dp5LBE2+hcjA8yCo2q5YbRisW3ZVIFMVo8k2tbvj/iquQ07Kx8ulWYqbwd/Xt6UvSQA3JAXQejBiOrmr1ZWwh5GOq6i539vjMERIyRzUAlHUzBOiTkPogGzIE5TB0lKS5+K/0/YQ3XINNj7AJUmjtsDWxZCyY/f/W4bnByTBMZ6vZWiTgLpWRTVRlHeDsPE40t2sX8bM94AvGl7mn8ATLKd4XcTaKXdwBBoASoyWcVY+wFlVGiClP9DbhSXHMMrsMEwsViibpTk+ym1hW0QThUhcUffEHLvHCK1gIsdpfpcnZuJ+4RfiS8yRz5QGuw== 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=XTVQda/B1LDqelqTwWuPluxnpObvBBanz2FuJ3HyIMQ=; b=PV1IDo16tyKnT0iHP1SEWv6YdqjLaU8i4847uvG/X2MivRsK9yY0+Ct+wAmrBoJlV1GwCWSzQkcAbR6VHb4fzqe5Vw8WLMBRsjppKkZdUxcch4z+rgPlFwhhrQmjdhn4IvsZfr2kxHljEGtU/9DBbsi2m0z3+ZuxYyml2vlkUO3arcANeTcvD/Ng5HLmBLLLogrnpdiybvJGxK7it3YCriTYqKNdc9g0lYD3Q5XKhPph9/zAWiTQx+JY77LlQ+NiB+N1K6SUx2q3X5kc+hCC0kl9A6AHvXWbP0Wu0d9UYi99QtQMzFJaEyAdBhpS7Jwi3Tn/MIqcypHHn6h55wpX2Q== 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=XTVQda/B1LDqelqTwWuPluxnpObvBBanz2FuJ3HyIMQ=; b=Sd6JnKsIWO3Ub1DCEl8PC1lVEF/InqkkQmqD73uZ6Sis+4EBGtQ6uCW/y/Y6dS5WDezwSbyuDJm3ig8X5d46TkEZr1KZpg6z2yoCvom0TlSfxIRGlG6I18q4kcI7J4o3fXDiRGczsXj4rwqd8qKC0zUgXBuQ9Z9h3TRDMNMp8h4= Received: from DS0PR10MB7933.namprd10.prod.outlook.com (2603:10b6:8:1b8::15) by BY5PR10MB4242.namprd10.prod.outlook.com (2603:10b6:a03:20d::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7741.29; Thu, 4 Jul 2024 18:27:52 +0000 Received: from DS0PR10MB7933.namprd10.prod.outlook.com ([fe80::2561:85b0:ae8f:9490]) by DS0PR10MB7933.namprd10.prod.outlook.com ([fe80::2561:85b0:ae8f:9490%5]) with mapi id 15.20.7741.027; Thu, 4 Jul 2024 18:27:52 +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 v3 14/16] mm/mmap: Use PHYS_PFN in mmap_region() Date: Thu, 4 Jul 2024 14:27:16 -0400 Message-ID: <20240704182718.2653918-15-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240704182718.2653918-1-Liam.Howlett@oracle.com> References: <20240704182718.2653918-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YT4P288CA0012.CANP288.PROD.OUTLOOK.COM (2603:10b6:b01:d4::16) 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_|BY5PR10MB4242:EE_ X-MS-Office365-Filtering-Correlation-Id: f8ec7f7e-931a-4628-91ca-08dc9c5703fb 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?NuW42Xe5BwYwx485L+Uno2nQfALzxBNbYaXzhkzDFnZv3yic78Vmhfn4qcJg?= =?us-ascii?Q?r++BdIu+stOwUcczJD1kSZ+dj2CdqkKF276DeXfD00pEGnTdRkHAplcwUU0z?= =?us-ascii?Q?ZMr5duo3JwBicJJw+PPbkwNVkmcfGikORTQp1i8aTxy1PROg/7Y61n80g14y?= =?us-ascii?Q?EdxucdFcJXywRpmGo5dXon8wN+ogvj6/WBDLJL++qh16TQs3k8fs+evMFnzT?= =?us-ascii?Q?lLSbY9YEhT4v0lu2aNVgAmWQHGpb6qTqtNatsDXyFchL6r3XCRqmGrbpbqb4?= =?us-ascii?Q?dMjdpop0DkJBRfnONZLQB/I6vyK2FfLcdiGIgtjE9trrXQKM52s57yiXTk1B?= =?us-ascii?Q?4ZNa9h7eSc9/YgyP55q2RE65+QIc0PfaDq9faH748tpXiDti4HFS2V05u2D9?= =?us-ascii?Q?TAWUt8dwlnmSBuusCC4AxAjglzG/Mei+SmtH98qzapEbza9GqZuVAiywp9BD?= =?us-ascii?Q?IgfdNQWaL8ie7P+YZBFbQw4x1lXi/DEY6gLrMID1+4UKqk/r2lm3/jjRQGbS?= =?us-ascii?Q?BgIloAFbOeBEKD7JR7xYk50AvLznWFrUbSqpzkQGzJ1gmUaMzWEfhnY7P33Y?= =?us-ascii?Q?dewpK00E+4kVhERUUt/lpVwraceAIDWlPeoZmRKz39EzZY6bb3wY6MvO9jV4?= =?us-ascii?Q?LtQo6vrJYg7Dv9NAZyDaPpapa9EOwyKaLHnL1IrkF7oGm+7m8z5LjfRQaBdQ?= =?us-ascii?Q?KXJDW4csWfHzjB3Qkxs5jKlvm/8bbbP01BmRZ4/VjWJNudrzA/ZNV9UR+z5N?= =?us-ascii?Q?I4/KHkrehBr5+SnlhfimT+uwSzV1AsjRojVmwasX0dP4313n0OAV+yv8jshV?= =?us-ascii?Q?U5ykfKhyC/9lTySPlt8XzqFpyFXiFzPnPGWlrafKG8tabyBTc4OIdFGyRco0?= =?us-ascii?Q?8XvtIJC+jms8ni9uv+TGLAzX0knyR5jklmx1xtiudJsqUrv1Q+mZZMPeFr0o?= =?us-ascii?Q?tbE/AnWS352jtYXLJhDdTlyKxL+oQgAzluSCcKjA9ESAAwxY+s2Sou/UobHq?= =?us-ascii?Q?U2tScVFFQOo0xmifjja07dnxUDQR6ePRcbwVQycCRf0lgk5W2GHZNbzuA+qN?= =?us-ascii?Q?ViL12/g+OB7WLjmx77QpfLTctbkEeDzqK7ZHS2g42aetvMeb8l7a+Wbp+rkA?= =?us-ascii?Q?w0eQ/6rM7x4CP3TCSDdLcjzg5f+kdg54I++RmDnt/AZCvkfpkhPwx8KgwoZ/?= =?us-ascii?Q?soq8z0kISBgNLAqPqTGWmnsI8My7f9zfTivuDdzxijmAjI94Iw/Gc0s9QQcP?= =?us-ascii?Q?KLu/f19uQumfvfg2L3PLodxqwbxFqWWOeFkHZaEpGb6tK0ki5JylVWxRP7+E?= =?us-ascii?Q?Ib/QElta5bZ+EkE2JK3j3v/F2kYrQewjN8K++SS9KpmnhA=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?o0VEtkHYdJy+3+dQ/7wqIaTg8NEFepI9DyCue3Y9rBmWsxFHnQTheYUkTxQ/?= =?us-ascii?Q?Uo8eFg2Q6q67n5qVGuaOoTnoKcSaQ5Be7CPN6gF+gNaCh2L1sJAINk1597V8?= =?us-ascii?Q?NyH67i/tP/yO+OTKVDdIWbCweaAwDLyd/o7W2fEn4qFuiAeWQYkRCfzVcoFs?= =?us-ascii?Q?CUe5hErPxg/h9VowzUUF/HS3uqB02cj9f2xSCmW8YIzFLD+8w4QAOGCnsdwU?= =?us-ascii?Q?PaA0wXXyytuBgMD9uLhK6891QTtX3DOC1aeFeNw9MMADgCDfSZ5BzmE2B0Bh?= =?us-ascii?Q?ZOkkqdFE+zfd1CfV/6N+n6Cfyno0tNzy2zJVg4bdct6/oDC2eRbMTyp4n6Xb?= =?us-ascii?Q?90GyalskahmKJtEg/xkGW0wv0k51yELCFq3xdyo7FlggiJ36QN3peVaKdNZS?= =?us-ascii?Q?VZ07GIQeHqK6VbvW0JE+2TZr8MYRpGZFKByx4EouRB/SW+7LgieyP+8YC2jw?= =?us-ascii?Q?EHSKNFHndpyoJJjbFmaiILhBSMiRuyEW8NDbYw4ds4LpidOJphC38hzJExdS?= =?us-ascii?Q?SnkzhUH/UC2bRPhAOcCQfIeyBy7ldCTUznj4393nU3A4qGtFVV/HZ1vRFzau?= =?us-ascii?Q?kHLwMDtX+LQZP1HDB2/S2cGv4bWYxDD/EgueHKwqmlQd6RTig61fUWMx0c0g?= =?us-ascii?Q?lGA7NwVS3qCcqq02ttVUY0/8xVT4FcuC4wyPX9px0LXL6AksGNEymuf5QL/s?= =?us-ascii?Q?7JCe2lTETNhYb2V3YyZNb/QBtioBmLDjjTwcECbP/WB+069I3qddMwVhkAn3?= =?us-ascii?Q?MzmjLnHWEaI6Aj9emw+SLUX9UM3MEiatEdZTdsoUcugihTiCHul0PBp+DzSr?= =?us-ascii?Q?G/oYvcIsugF3wP+qRozOfqHa9UJO/K3lDN9WhxhdtwaFkspaXCIObiFANORd?= =?us-ascii?Q?PTzv1aiedM5Y6uOz7EZ5ZEhOsCaTBd1IihDSUSv3bceVxfQ1Yz2OAAtmST+G?= =?us-ascii?Q?JRDVkgqk67XA5JxON06owTeApo2eK9j7nCwV4sr+0vCWWs4QFiu4MwpJBfxH?= =?us-ascii?Q?lvuI4XW8txulY49S4BjLC2ItKz7KL3g1RbSy9IKnI5JgIZp7oVWmMpFFWqV6?= =?us-ascii?Q?t9bguooA2WQC+7n3oL6GxkYsAveGCsMVMnGkn2Yb6oz89w60OwXMsbDNT3k2?= =?us-ascii?Q?sEoVfLCh05G+wzfMco6HcGxGlz7r+SMtq3UmqQrMZKdzuF0RZNmYhA7BnA2g?= =?us-ascii?Q?dGAorHEtQukU6fjoPEd/EjvO3Y/Y4PwU2ECs/uAW52xARguvSQFoYQwJ22dZ?= =?us-ascii?Q?hSr7N1kiWlyAwbJv05rVL+uW4hBZQvFh4cb07S522TXCfRk4jmJ0LzjUjfSM?= =?us-ascii?Q?EzYxh6ex8ARQ+f6BIjoc5ct7WbtZqmUYmUWeo7AucRuFJxsZrjtTErTHbYMH?= =?us-ascii?Q?LaMp8sPwaA+n+KYm5Os5r0VzSyRQe0GkVhOnPMreqL6IpHREQj8NiBSS0h0l?= =?us-ascii?Q?X5x9YrQdu21Lxxfv+HeEOgE3tnbqFKjBHH+MSNrujoAsApjzsL0nXjCWMbdN?= =?us-ascii?Q?eOkfN9uTaPY//AXu4P+jN1VyFQ2R7wZkQ1dTQ4WuuKBzwpv4vXuN2aJc2Jk8?= =?us-ascii?Q?hl94vKzYfMGSbQiIPzXY90fSgD12/3RjVSe7zDMwqR/I3RZncZW0cdXpU8YC?= =?us-ascii?Q?Sw=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: V0jUwuaN+8Vy4CthXtMK+3eougRh1kK16l0YISsbvvwmR18ISUuS6To/fTcX2KtWC8HMbeR4tFtTfPtcXpwGnmzfY+27AtqKgQdVDKHRrKuvWBeBSdOsgu5bdY39dH2sEkr6sGdrO8HB0MvUXTKjxkMo0s01gT2raQf2O3lAJEmDaQNsJpopNhRmF3tPxuRsBn7kFOpX5Y7CsxuN0r5s848VxRIDS1LSmhzB9CX48FWWfVAzgPh+/x9S4yyAcXUvgIVFpYAK1az/fW5m1i17IXHQriRTZv88nZlPTsD4KmG4gCVGq7oxDAFXOmS0bd1GR9hrhaMtD5PN0FZWmo9j8hqZZRUEhBb4jh3Nq8r/+zpz6utMw4aURSYrWzxnSTW7a0EA6nlqoyW9NvlVFF4raPZo0LoLpckhBijVvjuVpTJaKE0tEx96SZhltNku9/i2m8e0G9bQcejkX77/6mPSCbQiCkaQpQ6waVvmYZ7fkOixUcOPZaVk7t1vZxlDNuWGEvAiZR0zB+Wakyen3cdRkgvcWKPlmi6Fz5n/szfv1sMEz34Qus5Q5Z0cAQ3F2yAkqsbaj2Fn//mUmTQ8yINJDVWT+XELTM/Qp9eyM50GKFU= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: f8ec7f7e-931a-4628-91ca-08dc9c5703fb X-MS-Exchange-CrossTenant-AuthSource: DS0PR10MB7933.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Jul 2024 18:27:52.3601 (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: 98S4yYHPB24Zr5ZxdJno0jiGI7Coz3ruXq/dtYot93AJ1FGWEH99ZLSI0i+MLn8Gxu+TySGJouUvJ2jEIgVFNg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY5PR10MB4242 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-04_14,2024-07-03_01,2024-05-17_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxscore=0 spamscore=0 suspectscore=0 mlxlogscore=999 malwarescore=0 adultscore=0 phishscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2406180000 definitions=main-2407040134 X-Proofpoint-GUID: iThV8naY2yXnKOxOjPv6IdJlWPl4wiQe X-Proofpoint-ORIG-GUID: iThV8naY2yXnKOxOjPv6IdJlWPl4wiQe 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 0c334eeae8cd..b14da6bd257f 100644 --- a/mm/mmap.c +++ b/mm/mmap.c @@ -2935,7 +2935,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; @@ -2955,7 +2955,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))) @@ -2990,7 +2990,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; @@ -3149,14 +3149,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 Sat Feb 7 10:15:43 2026 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 2584114375D for ; Thu, 4 Jul 2024 18:28:11 +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=1720117693; cv=fail; b=fHXpBxcScW0ka/g97uGo808/jrJ4F0EB4lwk+EoaQjE1Oz1+6Mq/p6IM1C/LjYNMPDcCqShJ/wbZnb9n4QObC+ejSDqyRNQXMUcHZZsUa1WmEq3HLMlq8FAzpKhGuc4UIE4cgA7S632vGdoJ/lfUxWk//B9qSRPpD8a+9HdbZi4= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1720117693; c=relaxed/simple; bh=Y3/Bg/nbtTsEcK77auokgwmdompngI/8N4uz2SW4D78=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=BfDNCZQcyTQBwIeLS9d+PDIrXTLVL2ELYmg+aDYb9xn0WUytZAnrItUEMDzN8go1+N3JT2FC57C/YLGHwNBuUPRwqH/UzBVdhwKmWfEmg7uknC8D4pbKXdnmU//2ftLZ/gOuQwtWz8DxLx6n09gSeXXUWn3OKbzst9BTX8wptA0= 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=SEnYnF7x; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=hOH2ZfdE; 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="SEnYnF7x"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="hOH2ZfdE" 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 464Dn5Yj016715; Thu, 4 Jul 2024 18:27:59 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=hlZHpYovIetZlE6yqUMS7duN92CEaSAa4tUxocsHEbE=; b= SEnYnF7xaWZrmfqMD2f9fA7AMuAHjBD36vNKR/94PVzw2441kEsAIdJzt9dWXMQx XPi0ggwl8Cs5PB5XfOKgCfE04JZsF7vIU4hv4t8E1wK41igy80SbR6DjOq3I4e/A DEPOyydWUhvzc83EWBsvKkp59EKsPjKSoNxcL+/7/HGjwsSITj9HVn7iGdGJjHsK GaPb9IpG0D5EVGThwkpO5s7LTw7Ge9JyLOa7oG2vQmsuxTHXSs0qCdWArdWZEs/V t3n7s0ZOOfWl4C4UCYg37vLvpasjfcq+xcY8+dCWjprH1EnsTxpRytaGg3/8Mwv5 QV7lTZuKV/a7tZrcRnrn8A== Received: from iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta02.appoci.oracle.com [147.154.18.20]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 402attjph1-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 04 Jul 2024 18:27:58 +0000 (GMT) Received: from pps.filterd (iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (8.17.1.19/8.17.1.19) with ESMTP id 464FsRx0010337; Thu, 4 Jul 2024 18:27:57 GMT Received: from nam10-dm6-obe.outbound.protection.outlook.com (mail-dm6nam10lp2100.outbound.protection.outlook.com [104.47.58.100]) by iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 4028qh0phx-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 04 Jul 2024 18:27:57 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=gsn06GdbM9iTo5q4h+44qL47/71VSbIIFIFRpDxvQz6y8jKejrrYMoZ6s35ZAWKZc0HNvEmGIQVIq6tnBmHL3gD+zVR+W/CWgmRj3vMgNQ+Jcjb3NrVHrXg13zfd9blWOlPfPqHCL2Hu1dVVhth5pUT4+QhdKXnhDgXByFWO6iHP0l1/5qOAcHFr1vWU6x25SWpi4i1pjlcwnPMP1mQxLID5cEqqrIcn5TXch5f/nN1RgQM7HzSLI0m3QCFqkI+Fs/DgtyK1nKYbA2X/rJTyZ2fhOI3IgPhCDzr7WBDLQnSgFn4eP8d7r9VJP5zemTlP0OinbEoVTyVIOn21OzmACw== 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=hlZHpYovIetZlE6yqUMS7duN92CEaSAa4tUxocsHEbE=; b=KwOFavltI+HN/UaCigcUVbItezQf9ADXsFjV4kZzQkJYGUTIJfNL1Bh1XVcsQlTcG4ZM5vRS65FHfsWG7f7z1lzmk3fQMo7fWkyYAyccY1+XP5VjG66wnrAP9VGSaHfgvaZnquPCbyn8qhOQLEf1cukPyGsgA/gzwuArn/pHDhYnftolHK3/G94TuIZfM3VKrA7E9l5yYUBXcCFHpw9QamtXPZpPQRWQQkaodVFqTllJVx709wtBK+LMJe39v5JghNtZD90q8Gy08vmq5doH4aADaGS1Z5tsz+2JceGOcvSAO1lAyDX2nD5NL5UvmB/xVTudwWUI2UKayJ8XskkHyA== 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=hlZHpYovIetZlE6yqUMS7duN92CEaSAa4tUxocsHEbE=; b=hOH2ZfdEo6uMKslJsTPdpm5cez6fpcbauUs3qxGOUKUR8nYX06Pvf2CoGSbfDZj5Ifgt2YcPnKlc7RSX0SDHU96Q1d2jzwELkDtdWHJJ2+vwaeMJD8MTu9D9ESTFnKqUFJ5O0M8Bu7FeOhjQeY6BfcNOOPtZrBf+yZI1QCJsRs0= Received: from DS0PR10MB7933.namprd10.prod.outlook.com (2603:10b6:8:1b8::15) by IA3PR10MB7995.namprd10.prod.outlook.com (2603:10b6:208:50d::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7741.25; Thu, 4 Jul 2024 18:27:55 +0000 Received: from DS0PR10MB7933.namprd10.prod.outlook.com ([fe80::2561:85b0:ae8f:9490]) by DS0PR10MB7933.namprd10.prod.outlook.com ([fe80::2561:85b0:ae8f:9490%5]) with mapi id 15.20.7741.027; Thu, 4 Jul 2024 18:27:54 +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 v3 15/16] mm/mmap: Use vms accounted pages in mmap_region() Date: Thu, 4 Jul 2024 14:27:17 -0400 Message-ID: <20240704182718.2653918-16-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240704182718.2653918-1-Liam.Howlett@oracle.com> References: <20240704182718.2653918-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YT4PR01CA0322.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:10a::11) 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_|IA3PR10MB7995:EE_ X-MS-Office365-Filtering-Correlation-Id: 1ca4abcd-45a9-4d85-8275-08dc9c570533 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?KszkA+GMZ69LE67lNtKGRY35W3+eaqRTrBlA+UWCkwVMbC0ihTDoRrpTNUmg?= =?us-ascii?Q?Uv1N6eC03VXKvK+A/7VZg55mUafjoHCvnT8NAURxsHB6oIEQW8w98Soc2Y81?= =?us-ascii?Q?RVfxeCPBkWM+ll/G/+RJjKQhae6hVdGzZtsvra2dazN/GRglhLSD7P2K2joa?= =?us-ascii?Q?uB9JlU69WrbemoxWG5fEzdnILug/s3ue/2CoVNXo139LgQtvs+7VY3WfR19K?= =?us-ascii?Q?+BXUP7O5Z07MKfmAmE8LZugMFclmYvWxZWZ8Tkuw2O6zg3JpnkSteJ2g8bMk?= =?us-ascii?Q?Z8uqPQeOnnG3jJ4khCjQRt8UrHBXASGoAMbhHyq549h/Ri9U69ROyyDla2SV?= =?us-ascii?Q?YluM7bXwhN89MV3KVD7fzSOWSSmhThbsEXyAGWBv5CFQBkKhtmOrNN6rKio3?= =?us-ascii?Q?Q1EEWywnSdFfBg43GqURWY9ufVezSd4ESfo43NGpckuppH/BBSp/ftlC43LO?= =?us-ascii?Q?7Pd4aaAUMTM01Vn6xv0GJ78n+eDGo/j/vVQlR8tvUomu2L4ns8QDIOPEJo2J?= =?us-ascii?Q?5t23bvAa10FD+4fXfMASEh75rncyxNgpouvVDWILN4hPsp+jZNRTfcz9+7Fe?= =?us-ascii?Q?i5l1GMJineV57+bQFOECTUoXIkWcBJInhU1MYRYzhFHGGP53kY4dJhrvSauV?= =?us-ascii?Q?tkm9cSto74n9getksdBUCFKQOuZijkkNjEBpsI0QVLkw5H7Qn16U11N4hH14?= =?us-ascii?Q?XlSe47YEgMw2HTANhaJ/wbwf+kolVd7J0irRkbWvtW/9D3RTNQ3RG6BZJ0U7?= =?us-ascii?Q?A5KePmK8V/1z25W8sItLAIQSJE/g8EpNauc4ZJngT+uf9SWrxcaQkUD3NFsd?= =?us-ascii?Q?/1m5fkvQTIoVvdBAZyDX0C/023QxSoDIW3f4rAEOs5iukRjGo3cZap1Uh2eV?= =?us-ascii?Q?qXqe9UHnjRKnKppYW9FbzQW7/WkRSi1YeIMkUg3tcBiuQh8+foVHE/NimukZ?= =?us-ascii?Q?yYrodXjU/HIc25BCjpISuJZUndE2psrI8nyhkqweiYSq8SziXkkQLnK/zGqm?= =?us-ascii?Q?5gHuNPZabFozt3CQS2rMOFLqn5qKFYpG9RQNwlGqbiXEKaTwOn0zKvopeNLs?= =?us-ascii?Q?eeffBj5UptdKwHKci0yoOQ3cOSYM802+0cT7vQBMC+Ii2wdUitwuQ1owy8f0?= =?us-ascii?Q?ZbdPN7o/FbgX0/UAm25pQ/hfV+lCXYzSylGGbDxAG39KWmsFBqIXCgf1Rwmj?= =?us-ascii?Q?1j7cjs6EXQBODbcK8DzLgOyyvQMawIVfkDYQ2Ys07zVkAIMBn2WcHciFl7xw?= =?us-ascii?Q?TArAepRSGG81uDThFI3fCYT/Upt+WS/MubeIvNEaEPqC8Lj0+haz6NUrV9oC?= =?us-ascii?Q?v8V7/9KHevsrFQqRHVvbw8L7i6e8/YZAztkocVrhNeFwOA=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?GQWzJz7q8MYb3fmFx2HvgSFaRXauqRnR6GTWRVn958Aqt4kcqWJYBSoFtNUR?= =?us-ascii?Q?+mTsqsa0Qu48etqXM09/9agvkfpcS/3Vu9sfrPdx1NyhCQB7NxAAgkQ3Dw6w?= =?us-ascii?Q?0Zr8z6zTsa+heqv8+7oht+gr3FsLGYyIjZ8tuHnIS4bS/s9pWlIzKXcRikG7?= =?us-ascii?Q?A7WCfj6KOX4p80AolgeSBXk/WWSL5nUROTJUx40UV5dsFXSZLPs0POHRs8ah?= =?us-ascii?Q?F6Atx3uiIpPfdZnNcwuG6nwlKYQd/NZjuoSsxqH8xi/RQKn+CrbAbQpDbeGC?= =?us-ascii?Q?JjKQnZCTZLKa0iYu8u33O/7gQR/R1L44PZOnagwA3137f/v09jPHwWok2rxW?= =?us-ascii?Q?NhdfRzdcRDXXkgkxE4MOP0pO7a9KkFkyQlpT2Jxcu6y6YsabKcepFzGFNm0H?= =?us-ascii?Q?wLIXhLYtGzGsazRHLkyhxnK+3dvpr3dynxVwi+qNfgYEJvyAjj47GUQ8Vz2y?= =?us-ascii?Q?mhM9phTQsk0SwAya5gFBNyHtX9pD+3gliVmcR/QupXQa5fe3rHXCxlqUELV0?= =?us-ascii?Q?/Fc7kR95Xk1jINrvD1MmQ5j8KTbKouXBL9rn7z+phEZ2WybxXDl/WfjvhM6W?= =?us-ascii?Q?yRiaft8YpkOSh09cGEn8rs93lQ9l+i2GjQP8bLAIKpRJIdSx037TXi/B+J8K?= =?us-ascii?Q?a/WW3cGVx/k6ZX0SwwzsStlHcW6eQ7cmnNWhDp1lOrzEZN5h3SX/zU9/+MSY?= =?us-ascii?Q?731eV6aJOykg/64jdiv4dLfb86ap1q9/xkDAPyLDh0upA7OnEYc9sLZ0YfDz?= =?us-ascii?Q?eX9cb6a/NEKMDcF+Oblq1mOoYTdM3gn+1iop1MZMcP4r5wIXeqBHNZ8flOYE?= =?us-ascii?Q?qr4XM2f61GcY8FGbYr2rXtPD5zxujytHgjRhUIh9onwZZJU87uGj9D+V3geY?= =?us-ascii?Q?FOLzjb7hyCQJA6EgfUkaZuOZkxxWM+Av1L5wZ5b0NuYqKXmRUaBenmWVtC9f?= =?us-ascii?Q?A78mCa90JW3+rh+PwZ5uIs48y4iYthmjXZ+jyNf0QSKCvtIgooHISIG4fkaV?= =?us-ascii?Q?AbwAhggaa7D5OKmpXiFEggOVIU+bQxOe+yUCHsPgSoukIDpdbFlL4yGAFyb6?= =?us-ascii?Q?V8jN5dSSjNUIdDMWLGQmkPljGHYqQDrbyUpXmsZH8Ybk6kH+UMNWup/6hl9/?= =?us-ascii?Q?D5xlRnuVZ1YQZwrry1osYWacfoZnuPlgYmFLD6OYhf/vkMmojBhufZoAWiBC?= =?us-ascii?Q?hMxWckXt1kGQ21Ki7DALXzF9AMv7dlDwxsTdW85g4Hb+UGTTOOZw8cIQJTku?= =?us-ascii?Q?UCTAbU121P0CPBOrkpoZIGuMoB+UJnv58pxuKM4yiqmlvULAvWB219owzwVS?= =?us-ascii?Q?BGWRDXMToTS7q4Zj8ZXnYtOkemoU/tGGcHgsvPoOXu+4H2ifQcmLgkcrX98l?= =?us-ascii?Q?xNpP4YmKSXrougrRvnu/XmBMFgOOHD6VLX3dGmIsYYXzPMf8SOul5DyKE/Cv?= =?us-ascii?Q?QPOMPUBQfzctHHMSbwKEy9eGUJ3Q93GLp1OsRm6BgpU49d5a10ObOwKrkQtx?= =?us-ascii?Q?+1zLlB4gCFMSp1xvD5xcA0zi7iODfUOP9iiJVqYxq/3tNM/YJVVj/dmD4pQB?= =?us-ascii?Q?V3c1kPYfcVuOPYWVywhlyFJHV8vRhgCh4uOGBW6u3zxfJl+cU6YJDO68XHhR?= =?us-ascii?Q?fw=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: +ja5hMn8VCw3yBEdNkL7nbgqUz3ydt0gNFhPTav7ZgFyBgcQmiw2Grc3Hw/UqI1Hyi0l7RKwQGSdf5Gb7NBcXptj3xwZ/eLSjMj1blefVw9WPTeSOrRbYQprtlPPFQytrouyEtnTmyfxWZtnxp8lNNgyqnrkGKEt4tg5TyH1DG7d0q/knakXvmnDQh/ppgaJA9FL+vjFvMBu5p7ffdtCpXtKfmyMO+7ecoBKe+/uHrpiBaMCDz/wuhS5heK1f5+kHnyibX89Gl/Xmois5GroVn7dvCbmvh6r5+KS7BbdzQJyF5VoJ5ZdOakVHUoZN1b0gobnP7hH/N2m5gkW0q6cW2kuFP55kGIaccd/lAmgfgtu3LRewkRTjFV/VcbT0tGbGtDZY+9ABrWIf/RuBPkDYhy7+U/Z18MFR5YLYxMDIB2O8dCn5qKLGR9QPTiW0igNrgdWmF/mHYcfZS/oRtM9sHaa7j+MGePlHzgo+35PVICvIuFgEN+W3fBOCpXrg637U+My6ChQ6xfgNWdKSnHmzflEI8azEe1zUHauAH9ISS5DmmXWWs7moZvK0LaosDEQDnpjZ8PTBiZQgVczbb+3fdLPYmodKiItPD7Nvr4b6uA= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 1ca4abcd-45a9-4d85-8275-08dc9c570533 X-MS-Exchange-CrossTenant-AuthSource: DS0PR10MB7933.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Jul 2024 18:27:54.3939 (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: Fd2fusYWnCfFmLQ0sdahcNkoRKYo3I3U9wIquWfYT5M7zrhesOhCHLgJvEjPFabJ6Hz+gz+JIqfvbEQ3/1E75g== X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA3PR10MB7995 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-04_14,2024-07-03_01,2024-05-17_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 suspectscore=0 malwarescore=0 adultscore=0 bulkscore=0 mlxlogscore=999 phishscore=0 spamscore=0 mlxscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2406180000 definitions=main-2407040134 X-Proofpoint-GUID: IqP-oJW1nGM9zLSDfg3g7zc6hSrVDmTG X-Proofpoint-ORIG-GUID: IqP-oJW1nGM9zLSDfg3g7zc6hSrVDmTG 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 Reviewed-by: Lorenzo Stoakes Reviewed-by: Suren Baghdasaryan --- mm/mmap.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/mm/mmap.c b/mm/mmap.c index b14da6bd257f..b2de26683903 100644 --- a/mm/mmap.c +++ b/mm/mmap.c @@ -2980,6 +2980,7 @@ unsigned long mmap_region(struct file *file, unsigned= long addr, } else { /* Minimal setup of vms */ vms.nr_pages =3D 0; + vms.nr_accounted =3D 0; next =3D vma_next(&vmi); prev =3D vma_prev(&vmi); if (prev) @@ -2991,9 +2992,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 Sat Feb 7 10:15:43 2026 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 2C8AE14386C for ; Thu, 4 Jul 2024 18:28:12 +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=1720117694; cv=fail; b=RpYR2RgOBi+maEsNxZO7F0CkUTL59fTmNEAGjS+ueAcP8XWyOwuDccEH7o2ILgM/DByg1LKd9j2i78m7rYsECN0P2MkluR8fVwEFC/eVK07yZ6qzrpEcJcBQfkUG0pF5yRtHXluv1U4fPlbfCJF657S0/TECSzwrElqVbo5/XTQ= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1720117694; c=relaxed/simple; bh=xA3dNpPZAw+JpZraipDp0YWv+VivFlQj5zO8Wc4KM/M=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=cQWATQdkotPXmcigVeuREd8no6ilUOTvPG6HmYvvC/wgzwZXvwrTJTYS7OLXPG82zPzT4JMvDbm9QbFYJTd7u74ScVNhk9r1ugEpULPZbR/z2mlXLqy71tLVRcn/cMtFdayDRYLdT8Abeakwb6NSU71BqT99ZxPOGzwFGxtYHkQ= 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=CapaBp4N; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=guve+6pW; 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="CapaBp4N"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="guve+6pW" 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 464DNuh3031095; Thu, 4 Jul 2024 18:27:59 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=iJMd2qwdMvbAWEntWtILy35IFR9pga/f4uv1MeD4ONY=; b= CapaBp4Nf7EGZUSTfvZD0RrslQkJD+PJMbUlG7nFGzxrEOE4VIcxwbhfkFa/8AZM eyXfO2zXiwxZihWEKZdjbs4e/dooY3cZKpQKh5k/6ssfxsZ/W+Gf6iP2eKbKIJxB iWhwTMLKdai0JtcMRo+TDX0e0fyB41r0F7P9vOoNDjmNY8+s+5Y+D5SmgWWC9sPp JYQX/IQbdgYTEN8zfSwU1iPn967xROL1WjxX/Z/XeCZkbwesIKpksTve+QkqjJwQ VB/9RHHkCZEo+TUQbRPpiXUfn2tviBFWRtkP83r/DHJ6FIGZKVtUfKoXXD3Ja3aG lqaIaqDBwS8GVp2h7Y4kSQ== Received: from iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta01.appoci.oracle.com [130.35.100.223]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 402aacjt0w-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 04 Jul 2024 18:27:59 +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 464IBWLL023488; Thu, 4 Jul 2024 18:27:58 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 404n11kmsf-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 04 Jul 2024 18:27:58 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=YXzfnVw3Crdxu5uvVSZJAyGmGoaYYGADjkTvD/YZ4GGylmT/0QZGOnsny4bs9at/1GzxQRx52A7Q3wkvxz3I1VD72xM8b8Up9VEo72RZc58qFaOLcq5qop9pgJH9nn0SzqFiMf5N47PeFglcZZrPHFt12QlBWoadTOBQUgvP5OJYQM3vhQK3yQGtwyoiH7eRNSwMzO4tsio9S427x2kV3CybpTFsEvksdW/atswXTBdmWhGr+V0By1of3lmfFEi3LN6FEGiTaGfh3XNZZg0RjOsNoakWKlvUD39PySDamg3hhXrDMVHalkbXK/o7DpklzkQX/Z9zX8h+NPJYJxs0mA== 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=iJMd2qwdMvbAWEntWtILy35IFR9pga/f4uv1MeD4ONY=; b=MyrpTQreUybhIELIWLWuXJnIAG5EumvxuHHX9oEDko6753vqHTg0dDXQIJcnQnuO5ERvjzk6XPq1WvO58TI+oexEF9tEn4iNg8UuGdfRLS8DjXZY4R0Gk4nhI8c+3MeiGBUDdbhTbSHkWDLBSJdKTr8z9dNbl9vCgptiJ2BBVtZ2MyLr326f6nCRQ+Ter14AHiIu1mkeTs4LXXlSLuO5TigPCK2hQqvxXN2aDL50mQw84Jhbh7WrGVLw7IPPOoMC7yPubypcZMrHttf//wo+cZm0YNzbTSdsZSRSqzPtmtR/ZFJJuIGxDMjrI6gLlN+c8hEQ5StuzHA4jNYaOpTmgg== 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=iJMd2qwdMvbAWEntWtILy35IFR9pga/f4uv1MeD4ONY=; b=guve+6pWf3/1PMmfVk07ouFUdaSxb8nQqv2kbs8Z6aV46aS0yJ/LIkh+BW39rTzFX19+bcyIwze2uQ4R++BGwnSY4+RuQq5ykdNxFaFpj4ymg/Ic6Y3bvWrp/ur/Hv9wQdXGCe51ihVei7SENxsox04RtBk4EI60o0HayrGvGcg= Received: from DS0PR10MB7933.namprd10.prod.outlook.com (2603:10b6:8:1b8::15) by IA3PR10MB7995.namprd10.prod.outlook.com (2603:10b6:208:50d::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7741.25; Thu, 4 Jul 2024 18:27:56 +0000 Received: from DS0PR10MB7933.namprd10.prod.outlook.com ([fe80::2561:85b0:ae8f:9490]) by DS0PR10MB7933.namprd10.prod.outlook.com ([fe80::2561:85b0:ae8f:9490%5]) with mapi id 15.20.7741.027; Thu, 4 Jul 2024 18:27:56 +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 v3 16/16] mm/mmap: Move may_expand_vm() check in mmap_region() Date: Thu, 4 Jul 2024 14:27:18 -0400 Message-ID: <20240704182718.2653918-17-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240704182718.2653918-1-Liam.Howlett@oracle.com> References: <20240704182718.2653918-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YT4PR01CA0337.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:fc::12) 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_|IA3PR10MB7995:EE_ X-MS-Office365-Filtering-Correlation-Id: c13f5917-2166-4e6d-06cd-08dc9c570695 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?9hrLd7Slab6mCkDINJ//vAhdH3Y1DbUB/ZK4HeXDSaxGBbWioyuXRgf3KdKm?= =?us-ascii?Q?ZWdcOQLHHAT7cCQz22PvEQH/YHPoJ2zaoo3n3qWwKq6WYbwsrQt4oNCCVVmh?= =?us-ascii?Q?aU6M+WaiU0WST/F/eWET33A2Rk1/N+JlgTjLPBqQhu5+xp2mljdygOmp0l1I?= =?us-ascii?Q?TJXl0OcZRklkfUuG2ntKhULzjwlCopzT7cvcHBRvsn/uHWLj5Q7SkcXrODkm?= =?us-ascii?Q?bPsPuQG6BRb+b9uJWaHM/uCaK3a172RYflodq55WDZyLUQJVlZ6VKE7zK5DI?= =?us-ascii?Q?igCKtnvf1RH0cKznO+t1yDK39+6ftkYCNXnVL36oFWwgDierCQjmcXbzd+ra?= =?us-ascii?Q?zXI2neVKiN3WPDSvduF4feoCNCiaVDaYQDEPSyD36HUJ9X+Ibe5M1cdZR7S5?= =?us-ascii?Q?nTaBN3GSqf8qeBbcd2nkQ/Srh2d+G9lD4/iy9XknKRmRyARCjnDTpV6LrMIe?= =?us-ascii?Q?sF5UF6yBZOhdG3QJjzi5azZN+LXqz+YmeFT08Ft+y7vkPdt7E7oaCoc0diqP?= =?us-ascii?Q?IDrIOC8HabvHqQkrbclAx+BxXPWPZ84J/LKvM2I5I6Bmdeb83xFvQDRIs2om?= =?us-ascii?Q?0V/UCw9bbX1FetICYUjm0FI7krAIJSWlw68IxQshLl8DNOJt3fPNfxky0npX?= =?us-ascii?Q?mXJVK7rhRhuJXevF5UJs40SiZGjlIm7C7rnka9xhHy3xXWagvDYOfahOX9uM?= =?us-ascii?Q?vx3qOi9BJjH1YTgW4wjW/W0+r5ZTjM4MquPCZHWjaQuq3J3ziXPVcgiBUEna?= =?us-ascii?Q?RDkGxoXl8xVth7SZAqvbpGzG63Nfo14emNlNURCeQq3yY4IekB9DgJqcR8k7?= =?us-ascii?Q?bVb3SZFtaskaqsCJvY/mLp6PbglrxmSy6at4aBYWyIvvFeTEOIkos7V6v/I8?= =?us-ascii?Q?B99I+0FW/P61iS6zqCltxawMFYQEpotP+qNni/wzdGE+nnm4HQ5S5D29V5KN?= =?us-ascii?Q?mWm2Q3fJ3yIBElYRWv3DYDPTVk2RsOW2mzAvdsAzIhaTC2huk3VslchuJ7t+?= =?us-ascii?Q?WeJVK5S2C7L4NUXEtaQik8uOwiNUqWLgismykJUxsKLzKkiHwv59LgKYpEot?= =?us-ascii?Q?yTBKNlX/uGg8zCgWfqqacSyMjLcKNn4XpCGyM7ZnWAxn62wM8GwyviTOWQ4G?= =?us-ascii?Q?aCq75Fy4GJWs2HQtd8E5HWfB1YQFD3yPMW6TvQbT1XUFpfL0YRUuMcsDhtOJ?= =?us-ascii?Q?RF0Bbz0eSc2uj6X3q/yOJIrf0Y/RokN0XTHNkU6cX8Asy98pVQnpLOwIHQBp?= =?us-ascii?Q?Sri72sigl5Xnvd0I7F50um1S4AR+BvahdUK/R7T2/70oO8iuUWrMv1f+Mr6R?= =?us-ascii?Q?JkdpB8Z3u5Q05DQxSmDI875ioeq3tNPcL6OO7f+bdMAUiQ=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?+tI9tL1aXCQ8xtArz4N/ZMO2v7J5z7bn4QTQ3UOeAh63Y2ZvO0XsV86RC+DE?= =?us-ascii?Q?SNfeTXqA+JB96zLV5JW8rKibsQ+f4RmXtSgTyrv/p6EQZhsW4YCv1/VinxbY?= =?us-ascii?Q?77v6qjkzKLqyqgCCCiLuumdeXvZsTtWOrMycdaWJfo9ITZFJa+ez6m7NkUrz?= =?us-ascii?Q?bY7ytu3oVHenI4YqL2vlBPv44Iy3dfOrMA3JDc6K1AhKy0lewEaZuOhR1xdn?= =?us-ascii?Q?X5GUC7RuoBGHsIiYzwV7oscJUBJMLOWAvcmHzI8yjiXdQujpJ76eErsfCCHY?= =?us-ascii?Q?Ms41ZfaHPPOHg84WxhjEyzCI1jrvVIHGMQ9Z1wji5VEmt5sceDiHBh8MsG60?= =?us-ascii?Q?ldY6oiJ35lIGZEWgBXK6VlrZ3j/j15FGffJfDv5MYtDeJE1r75+wuSYT8Wbx?= =?us-ascii?Q?dK0qa/9Qt9sk2hDeptpfUaITuXlLqOPA2+iN5cVKc0Jc5kxH/PQiajI1J4Js?= =?us-ascii?Q?gUqg0abMRSzQrS5n65ZDey6gHA/ho+vrbTGkS5BXF6rQdwsn5/gx0A/MAFhg?= =?us-ascii?Q?5i3H15Uk1DG3KHcAFg9W/riMNXWdOXBYHyBJ6laXi7Ui9ZF27/UBvzy6cIHD?= =?us-ascii?Q?55UD69eRcqidb6qldLWAKsF4DnkEE3jaewcwcsug5PkcGaz0pgoHVqsqxIr3?= =?us-ascii?Q?5CvhvYeoPjut/WGh47pA+YycDlSiNcRZWbcHFdBeMp5yojuGE2aPA9dxqZyD?= =?us-ascii?Q?qKDik0N+ZcNGhB0ADOme1rPNZQVRhwhOZjqkPbvaEMKTcENagNlkr19XZnkm?= =?us-ascii?Q?OJB1Ltkt5ZQORUBuLJpwsAMoDzoZOuyFYzomhz4NYf+QxmC9KGOZm1r5UkB9?= =?us-ascii?Q?ok8JjVYogoj4aTx4FeL/qUuo6dMns6pyzoUQCNlzvU5GUdD+BndMeaMfgExO?= =?us-ascii?Q?RehO5t7Z0StP9anzWFGom63SOPiIwYi/+/lW5CuBbvj+/M8g+OJ9EWqnb2Ve?= =?us-ascii?Q?TNdCcRjm16FBzGHUA7J2Pox90YewM+6fsFKfc3TALkbt+JHUVhMGcihlLY4p?= =?us-ascii?Q?QFB1YA/jNtGpShBVNAc/ga7iIThLPThpLKSRJ9XrCAd5oosyNwXAlb/NvhWr?= =?us-ascii?Q?egGnCxnKB6ICcIyrKXVa5AWN7+GtkX5RhL44vQ1tc1kjyGLME+Ou4zy6o05r?= =?us-ascii?Q?LuzBseki0EVk63CyBDWJpbNVad+r9ddt5sUCsi3CyAdx58Bd2ZGM+oQ0u1Bo?= =?us-ascii?Q?RsUioFaAUeFTmKifyASy6aD/BHNjzBFMzb4NGlDaiZfFLTM1iDBmQMD1DisB?= =?us-ascii?Q?3NcF0D82re+K4UE10t3fYxpQFpHofc7bsKVlGcWIqikslg9JfcOKXGKO39QP?= =?us-ascii?Q?gsyU7NPVELObR+TgpGReD7y9kYcw3tFDnO0stD5e8nRCppRgKo1PgI8uO09W?= =?us-ascii?Q?EhUAXkmfEiryEKdE/w30TF0QYUxJPgCYbT3bHQWkLrcZBuydcyXTArxlHjXB?= =?us-ascii?Q?PPf3cP8o9Sj78u8E5I0L+EDfvWYRG4Nxoc+q+Dm407FQNyF61TmKFAVBpaXU?= =?us-ascii?Q?+dYCy/QACEjdA8+PiY3e84lurYJL4CT00bLQ3vxo77FGKeQQMtzBHciepRUX?= =?us-ascii?Q?XoVN/QjAjN1h136igH/e99xVmcf3kQGlY1yj8yB2XR5RdvD2hdB2yp7fYI2q?= =?us-ascii?Q?cg=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: yy37DRmdQsmDvv5W90ElizW1hJn9jQDovwDr6SyDHZDbBl4sxzlE4WfQ1FjW4XA3FpziPNh4EMJmIhLyDQ2oapWlBSjfd6NNWG8oQuQ8K0zxQG3wSM6GI0VG+LVGU31l4ikv5zVUY3npz+qZVuggUqrOIi0SPJn6Uorvr2Ku4Gcut/7Nqvp7hFb+kkteod4C08J3/i5S2Ysh4mAIqSrBenuej8cizavA43dHKUS+1osFeRPA6xutYx9c4SMhlHD9H8p0kvtR5+MI2AFH92r0fpAbAml6zzwG4Kgh1Z6cJw9BB7HTU06sytsdQHQe3og93Yd+gitIkUAuJztNcOx7ku+DPu0qhexOF2B/1k25XVFFbEMRPMoHRYDbQ6onHQYK/dm4dNnoK9hC/HZJB2fusvK15QriBX6ofIaHpMXmhnteUJgQJLHsSykeHHN+3+DBkcigVMBV7JFwUPjVMAqk3dL7UxOsA3z09eJdC0TI4X8MZrLQXvlr7HgHQhYVF0/5F6oZrEVGzqzzgEM+jujxzxoIC65zCiVmNJ1LAH6WQrb5m+vO/eKHvlk+5m9IgtyWAVK1WD+aQzmrKykySoOY27WTNn9NDi5MCtiu0X6pvJQ= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: c13f5917-2166-4e6d-06cd-08dc9c570695 X-MS-Exchange-CrossTenant-AuthSource: DS0PR10MB7933.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Jul 2024 18:27:56.6940 (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: TR7DKH3mmzU1t2CXIe9j0NffjBUkx2tArwWye85Wfgv3qBB5dnztialO8L3z7yIWgTzTyIQuiJB3Qx8oNPKoXA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA3PR10MB7995 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-04_14,2024-07-03_01,2024-05-17_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxlogscore=999 phishscore=0 bulkscore=0 adultscore=0 malwarescore=0 spamscore=0 suspectscore=0 mlxscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2406180000 definitions=main-2407040134 X-Proofpoint-GUID: ZFcKDY4dstibXBYjfC0XvFO9YYqTxAAo X-Proofpoint-ORIG-GUID: ZFcKDY4dstibXBYjfC0XvFO9YYqTxAAo 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 b2de26683903..62edaabf3987 100644 --- a/mm/mmap.c +++ b/mm/mmap.c @@ -400,27 +400,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) { @@ -2946,17 +2925,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 if (unlikely(!can_modify_mm(mm, addr, end))) return -EPERM; @@ -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