From nobody Fri Sep 19 02:32:03 2025 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 8A833C46467 for ; Tue, 29 Nov 2022 16:44:36 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S236003AbiK2Qof (ORCPT ); Tue, 29 Nov 2022 11:44:35 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41272 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232988AbiK2Qob (ORCPT ); Tue, 29 Nov 2022 11:44:31 -0500 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id B25074218E for ; Tue, 29 Nov 2022 08:44:30 -0800 (PST) Received: from pps.filterd (m0246617.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 2ATGP2cK031397; Tue, 29 Nov 2022 16:44:24 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : references : in-reply-to : content-type : content-transfer-encoding : mime-version; s=corp-2022-7-12; bh=m6Tx7nAJZ+GxOyzn9iiDwdI6oGCO77RYAvxfmdcFqVE=; b=aHOdDKavLloGafgH93hTJTglrGPWzuruOY+ChiztX/GHyKgJr94YDF3D3ZGKsZWBOv/d r091ChYYyrI0mGwOFol35+2WGt69z2dc3LFSBrOSBo+Ui2TwZbgVXDKkbZD2VCwIuGq9 ShGrj7y9a6R3Olh+tVqYrVhmet1xeKXWbQEYGnFH+N7GpVP3cFZKtl/d+drxNb07sfDw WnbM12uFuARg/EvrR45qKdQdaYrhvInawwiEowWOhkj1Bx3txGCpM3Q2d7z/vHVk0AD1 o8gkoA8wMoVZa6PeNLMdOeii+woRg42JsMhcLPBkQyuhvqz6kgDq1YWIU8N7zSb5RHAp ew== Received: from phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta03.appoci.oracle.com [138.1.37.129]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3m40y3xar0-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 29 Nov 2022 16:44:23 +0000 Received: from pps.filterd (phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (8.17.1.5/8.17.1.5) with ESMTP id 2ATG7rBT030968; Tue, 29 Nov 2022 16:44:23 GMT Received: from nam10-dm6-obe.outbound.protection.outlook.com (mail-dm6nam10lp2109.outbound.protection.outlook.com [104.47.58.109]) by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 3m398771pv-3 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 29 Nov 2022 16:44:23 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=D7oyOZ38OnMNuHPSushC5gKhoAbmurjMIEq+LmOKlhwPT55KlsONZxiQLz8LcVetx8/PyOEINjpraQrsZ9EsJmwRqb2moYlFOSJPWabynJmpz5ApvF0na8KmSlCZs2ZoPilTar0z7NQXfqkXWANfWLneQ4Z7tIV3z9WQgOU8WGno6g0U9JL/DmVxrU9jPTPFt6s0gHO5QX3PfaVJiFtFyg8is0R1Dx/Rld0hbqkwg0A6/F/wS+zWRm0GmpyGzoeBcPnsoQo3t1luuG16oV0AJ/PeWLXrRGLQ0MVN/SODIEZh2cZzLcsiu77ncqRSuq5fNa+g/UdlCkv+dGUGuhXJkg== 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=m6Tx7nAJZ+GxOyzn9iiDwdI6oGCO77RYAvxfmdcFqVE=; b=Enh93bhXoXalVoC9OqhBzy/9cDCSD4ha+wPREPqYb9UZIm2Q5OsxtopiP+f0HXF7PmneYivmLx6CgjsUsbDuFWxnLLvF4Ax88BkghOYxic9UDqQ7xkZGFNtLL9eZXCD81uSPeQV5Bn7ScfU9hfVOVllLZ9jN63+u8PElKaCdxn0L8YWcp29r39KLmBsxQPZvu4xTmpsVsjhgB+IaCvmITAdonBJtlK1g5Zqmx2fl5yWjqUwV2wxFzuMCogXB2eWgt99nUO1Bk3P4vOJZcCErAeYn3taQNXhK/I0IcmDectnhsVucXFkTxaSNs6ISj1qOIIxzHCZddAq8GBbZOP8TRg== 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=m6Tx7nAJZ+GxOyzn9iiDwdI6oGCO77RYAvxfmdcFqVE=; b=sZYACo7uue0zYh/NDoB5aPEejPCxNO4kBtwiPw1hmgzOrHZdsqVGex+3dgVBJQLY66M9UJGHTsIXcn4DHLs4VX3o1DECPkjW06L+4k0MuuQVvH703gDRFYWRxDmim2R0Ko4bScL3zkP/n6T1HTxDXxxUre0aggEvpWceSIb0cPA= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by CH0PR10MB5321.namprd10.prod.outlook.com (2603:10b6:610:c9::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5857.23; Tue, 29 Nov 2022 16:44:20 +0000 Received: from SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::a02:2ac8:ee3e:682]) by SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::a02:2ac8:ee3e:682%4]) with mapi id 15.20.5857.022; Tue, 29 Nov 2022 16:44:20 +0000 From: Liam Howlett To: "maple-tree@lists.infradead.org" , "linux-mm@kvack.org" , "linux-kernel@vger.kernel.org" , Andrew Morton CC: Liam Howlett , Liam Howlett Subject: [PATCH 01/43] maple_tree: Add mas_init() function Thread-Topic: [PATCH 01/43] maple_tree: Add mas_init() function Thread-Index: AQHZBBHUSiYwaMytbEaQHrYR/QRpdQ== Date: Tue, 29 Nov 2022 16:44:20 +0000 Message-ID: <20221129164352.3374638-2-Liam.Howlett@oracle.com> References: <20221129164352.3374638-1-Liam.Howlett@oracle.com> In-Reply-To: <20221129164352.3374638-1-Liam.Howlett@oracle.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-mailer: git-send-email 2.35.1 x-ms-publictraffictype: Email x-ms-traffictypediagnostic: SN6PR10MB3022:EE_|CH0PR10MB5321:EE_ x-ms-office365-filtering-correlation-id: b0d8fc19-8809-40c1-9ac6-08dad228f69b x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: wihFiZt84xLBQvlx5+8rqmjnnrtaijvMVc4aBp1M0+sPhiukcMyZ6jRyRq2y6A2yODCDSjxqLJ2xrsPewGnBAd2GBWcOqIWOcTnYfNf2IdRGCMfAw2nAZI+z41YOxPH0DcYNym4oTmpCFepdUCpFgr2ChQLteBbCvD/M1qTn869kSPqIrG81WHPol2RwTHmKgyGV2nc6/JRu/dxV7YVgf4drq3qSxh3MMIhrFIh+MQlVqj2OB7krm/CxipeCkAhZGxpiV0lRPmu79uaOsPb7wFszfddH0ezUDgA2Jg+78qxxOAaZjUMY49Fh0Sz7zEPpvXWDgnkiBbF+8RnnwfTPmaMDYbSG0ww3dRysAdHUHRWv24Y2Dtl30LnWOlPbuK7GhL9//Tu4o6KNcO5hvizFhL1GvqyIFoieTN9Uri7kEU0S8+S3gfQ+r6mk20PJe0ggQqMUZr6pYo6IGsfesxZOi7dbIU2oSPUOZPWI7/7JDiftnydLkhlB7S0Lw83fGWuYyJ9erQH+UdkvNjiQJw8BtlvmBArer8b7s2XK8BRObcclKqbPrjCXxS4js4ezWKTI8VlLqQijvPc0xDNNntNiqO/rs2qmNXJQ0xuZ9FOk81unn2lD6fzyTxvY3CGB3YpLesSSb8JlESBuGkgjV1GBtmYF76tw7qTBfYQ3iMS2EXV0jRbOR5BT0pI77DQn8BKfmzg7oGr+0qYNOLxkH0JkPA== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SN6PR10MB3022.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230022)(136003)(39860400002)(346002)(376002)(396003)(366004)(451199015)(54906003)(71200400001)(6506007)(107886003)(110136005)(6486002)(86362001)(36756003)(38070700005)(6512007)(38100700002)(122000001)(2616005)(26005)(1076003)(186003)(8936002)(5660300002)(66446008)(478600001)(44832011)(8676002)(66946007)(66556008)(64756008)(76116006)(66476007)(41300700001)(4326008)(2906002)(91956017)(316002);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?Q?KVjnEAIweWMz3mOQxk3kaZEaUvxxfKhaV6E6PV0l8DEswUoYV9Wop53lpj?= =?iso-8859-1?Q?CpOw0QKYu5gGFMdOc4RzHFfFzb8EWg9faE17+FXmmhA0T/crvqlp7BUo+C?= =?iso-8859-1?Q?GCUb44fEjGuLSfzRACmWAZN23t8FcwUSNsIxBNqJASpCat3ZocT09DGG9n?= =?iso-8859-1?Q?HMqxNHv4YS60aYwYXDSObyzeXRPFGNGrf4z/c68q+Dk5mkHFzte/fe/7Jb?= =?iso-8859-1?Q?No09Ehr/nf9W7oF0IYMTla2smeMFR1MV7EAgcel6JIw/X2WcUdnwJwa6cF?= =?iso-8859-1?Q?PiWFAPmIh+m+jSVpWtwfnQ1lreZPp7nayB1miW+ruNl1jOJCJ5BzBAE6CG?= =?iso-8859-1?Q?Hrn3Gm2Y/l/HHGkr8b27Irh/IfhKSOfaev7/4vOTwtFCM8G/5F+OPiDkqc?= =?iso-8859-1?Q?P2ooMJhIIBTDdsAhO00oVpiKmWAycLXSKWin1ldIAOrnjfXaR6EGwIQ4Uc?= =?iso-8859-1?Q?Nmts2sM6Szsu1v2WTOgvzNqy6onsHoAWWszJQfa9xGYtSD/v+zgdi1+5SF?= =?iso-8859-1?Q?Z8KOzAS4putGr2FdrWbNfZlgUN70mEulzjGELMnkgertUUwsWXYV89T5Lx?= =?iso-8859-1?Q?IjRdP6bXfw261eObuIeNd6fuGSmx5RW8UplHEorB5+VLFuVuvcN0UpTuu5?= =?iso-8859-1?Q?lpLq4KWr/sFSdCBOtA5qKDwZxOk7UnczQCByoAaOZfF4X3uJzTudwMpGbQ?= =?iso-8859-1?Q?u+hbj3tTefNq8D1ecQomLbXLl0FJqN04q68s4yRmy+/Uate+3EXhIZYhOA?= =?iso-8859-1?Q?y+BCuGqr1qnqNgYdjSY7n3C825kC1kGznvYJ3zFd8fEHbBpPMF/ZrtLc3P?= =?iso-8859-1?Q?xwxOukFFWyetuBupH5sxquln0g6efuvm6J6jieuryjKTHAWs1dlP0SNpLK?= =?iso-8859-1?Q?nEflXPpqXOqq2GBb/RqdjBTlEMg09cZ4RESLQPzRizG/qY5MeG/N0Lhmab?= =?iso-8859-1?Q?f6+bRasAI1MufyaQsb23bfs0Lioy7UVqyPqq2cScViy4RAZnIVGiFB5Af8?= =?iso-8859-1?Q?Fjr8sUGFLWCRv7T7MmDTxOb9ZK1CUflSwdevhNYTMT3gCoz1hHl3GZEEAg?= =?iso-8859-1?Q?WqUcRD15MO0SWLFMdFpnR64Pqtq24BbPX7q/drLI9GqWXhm55BrtvsyXH/?= =?iso-8859-1?Q?xCgHxyGxFt2oLptIwOhgKCoesi9nxxWCBEubN5muConKJ8540TWmWc4u1A?= =?iso-8859-1?Q?PuDFwBSsq+THN4+AuUlswO3d9/izYaA3piC5DRvr0RR/NBCXFnp+AtXJs6?= =?iso-8859-1?Q?sy+LseVWekmNtV4BSclNIB19dQFdAhcKpD9/JWb1KmGCqxOoLRddldqBeG?= =?iso-8859-1?Q?4E4ouOLqMPUF9LsmYAb8lVPxzzPaHvy5pAcUaxixZYjGKEwVXosDt0QQ+J?= =?iso-8859-1?Q?fjQLMse5eoGJRSsUk9cQ2mZR7rLEWYkG0SHDYMws/KNTvqtt2RzrgiRCtP?= =?iso-8859-1?Q?5eMgPKZoSYP0dcuybDWCLlEoPhrDKZCu3mVeGmXY3V0SWP90a0T/a2S/L/?= =?iso-8859-1?Q?qmKeU6L620QZfhF6L5YKwFz4pu08yO1+R9VcO5MkFm6lOzwBXyOrZiD+13?= =?iso-8859-1?Q?ZGxCyUuCylHgP3pLwoW6uHMlXxRKHaG1YVOLb46EAHvwRpGijyKgf6lFUq?= =?iso-8859-1?Q?C1NAXIm2In6n5/i/YGJZc3VzUN5rq4EYAnRB0FUvHhN7WQq0vFF5GPoQ?= =?iso-8859-1?Q?=3D=3D?= Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: NWR1F4xpIIsoaPQ/556naATNDhLi/yRIkwvO1NnUfhDX4GJii2wymsnd5LLXIZFaukR0YzOTiHZwgSG/SiU52NIO7Gz0DUMljZWGb50iGsS5Fa2xTv1aaVNXIo6PwCEdlCzBsAcn4PfXgaoPkMmLsuM2PCtlhW5xpyYMi0lf5gBZGv6zYkUinqY/vAItW8hkTtHN0D4l+iiCOnWpEWzrNMen8RSRG1NEhxFPtCDD5VbgthSSjVKQmuQq1eXpi5ql5SH/4+bB8T8VeN70/kQBpMDlU8JOjhUtv8xRqgfsivh9aKPfx+3CJhy2gvkexyMKvriuIAPggMXp8NkzsaftEI1RASmpCqJfR2ef1mn3Drv+MBnrF8cWuBI/TYHZI1fhCHcOgByuRNlelp0CRdsrnT30dUqwzseScDkHJFFrmkPWXQD81GbcCTDOw3MRTdtvRSi1CnOr/SxgHgGztjcofO2dyphSXSPEAdLHCx2yT0jlRWrlPDWXmEUa06lGlMzzUCgZ9xaOa8D29Bt7DGb7EYCBHhnYF5ngltTDS1iQhhzhqPdBs/uZzcoLfeHVLLPAYZN/NIT9t2rZp4tYpfc/Tc98VEx/ztBcBERtGReckQ1t5goe7LycV7bxZUgijl7QudYYUc3a4Mg4P4GSnkAgUSG5KWf1Er9TCt+ETqTvpnsdFmhWNlrdxAe6+GpStmaC2ASVjwvv3kNiekrTDqZrYL6ci3ZKKn1SHN7P9qkvYx78jkzZlMRhreA7tCb8wnoDbx5GaZSLo9zjRXUrqI5VKbnxdQtpcl0eNZE/HQjUmDo305/W+9tluADUq3LrgLoM9HYgexcIlE+Jp1nLxYj3d0h0TBdyF3YyFfdhwv8/KJE8huNGV1UB1xtk1pn9qkUJhEBHebWaM9x+5tUNpBaasA== X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: SN6PR10MB3022.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: b0d8fc19-8809-40c1-9ac6-08dad228f69b X-MS-Exchange-CrossTenant-originalarrivaltime: 29 Nov 2022 16:44:20.2389 (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: tZaESyCX9SSLTV6S0wJrOCIXH2XPs1yRjolAGjUFd1oeKx6ZImm9+CcE8eNN6XmVTV4VS2u145FvCr8mlE6y3w== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH0PR10MB5321 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.219,Aquarius:18.0.895,Hydra:6.0.545,FMLib:17.11.122.1 definitions=2022-11-29_11,2022-11-29_01,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 adultscore=0 suspectscore=0 phishscore=0 mlxscore=0 bulkscore=0 spamscore=0 malwarescore=0 mlxlogscore=967 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2210170000 definitions=main-2211290093 X-Proofpoint-GUID: Qw2IpEuFuFyv9RwtcbiIRYTQxwjR8QlB X-Proofpoint-ORIG-GUID: Qw2IpEuFuFyv9RwtcbiIRYTQxwjR8QlB Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" From: "Liam R. Howlett" Add a function that will zero out the maple state struct and set some basic defaults. Signed-off-by: Liam R. Howlett --- include/linux/maple_tree.h | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/include/linux/maple_tree.h b/include/linux/maple_tree.h index e594db58a0f1..3f972602c978 100644 --- a/include/linux/maple_tree.h +++ b/include/linux/maple_tree.h @@ -433,6 +433,7 @@ struct ma_wr_state { .min =3D 0, \ .max =3D ULONG_MAX, \ .alloc =3D NULL, \ + .mas_flags =3D 0, \ } =20 #define MA_WR_STATE(name, ma_state, wr_entry) \ @@ -471,6 +472,16 @@ void *mas_next(struct ma_state *mas, unsigned long max= ); int mas_empty_area(struct ma_state *mas, unsigned long min, unsigned long = max, unsigned long size); =20 +static inline void mas_init(struct ma_state *mas, struct maple_tree *tree, + unsigned long addr) +{ + memset(mas, 0, sizeof(struct ma_state)); + mas->tree =3D tree; + mas->index =3D mas->last =3D addr; + mas->max =3D ULONG_MAX; + mas->node =3D MAS_START; +} + /* Checks if a mas has not found anything */ static inline bool mas_is_none(struct ma_state *mas) { --=20 2.35.1 From nobody Fri Sep 19 02:32:03 2025 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 4DF0EC4167B for ; Tue, 29 Nov 2022 16:45:12 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S236110AbiK2QpJ (ORCPT ); Tue, 29 Nov 2022 11:45:09 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41344 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S236014AbiK2Qog (ORCPT ); Tue, 29 Nov 2022 11:44:36 -0500 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id F3FE354B36 for ; Tue, 29 Nov 2022 08:44:35 -0800 (PST) Received: from pps.filterd (m0246617.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 2ATGP27c031378; Tue, 29 Nov 2022 16:44:26 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : references : in-reply-to : content-type : content-transfer-encoding : mime-version; s=corp-2022-7-12; bh=5drOmKiaYPt7BOKOWcqRepYh9tBqorodN++B+8Q9gj8=; b=n/cJO0mBHvDna9ubXqyld95BajAkzcX716HYBFtMfXBsPnDM3IVgU+P/opmRbyBVWU3L KNXK9VB6NjHytesS7PZ3zt1S3W2orecXaY/oOTDR6QPWn1PGJsGApTCquKCfn0LL7RHg kZc9qslDP4wptzpmPLeFo1RFK5yomsUmoW742rH0IP60aDYRsuEshZJlKi+HBcE5WaEI uyNnlAWersS8bshV27n2Z3RmE79YBFNfJ+Qb7LXrV6J4RGQKcMo5vWuZiRW/ZbvxBc1G /6QsvNHHZjJ5Egw8nBeds7t/jlJTW9FtDalAvb+HGLraBBxm5oxu/nhWbR277eDYu/7f Jw== Received: from phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta03.appoci.oracle.com [138.1.37.129]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3m40y3xar6-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 29 Nov 2022 16:44:25 +0000 Received: from pps.filterd (phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (8.17.1.5/8.17.1.5) with ESMTP id 2ATG7rBU030968; Tue, 29 Nov 2022 16:44:23 GMT Received: from nam10-dm6-obe.outbound.protection.outlook.com (mail-dm6nam10lp2109.outbound.protection.outlook.com [104.47.58.109]) by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 3m398771pv-4 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 29 Nov 2022 16:44:23 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=RZeMDOP9OEOKEUXxPGwnQ6xRftquvcxneqgxzwUc6noYffCNKspm/c4EDND1UJWcBmgyUg3WvNmWyLk4Huwi7+P6zoh0kq6GNkq2gKzp1qF5+7oXQ83yynn6zCycVRAtbj7GybUD64LYoo6FJ8/6Ak7dpxwQUT9DEAV/WTjwXQBfWkH3nra9P/NsIu5zsXQK9fnM+75oLjNNsqh4DiBOuYc5vMI83R+gewYHaDDAx2MsplLhdesmak3pog2bBKEDVqpfT5DK560UbbIzDH86kh5E5bO9mgIha2P6PP6px0Vo24ZNLm5naNBwObI083F4GUVSEl2EpEdzgY4ptS9cSA== 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=5drOmKiaYPt7BOKOWcqRepYh9tBqorodN++B+8Q9gj8=; b=Xl7bkoNaTcRg/mkA7mSe0VBq1duVMeFGWYC5pCia8tdxgAErimmednc6Wfyzl1XuL7P+yBJncxDrjxN4Z04JyIoIwzQzpeddx90fkD6H5jalJYDMx88GoPrjRaTRJVK9lZcM8IJcMkQ2Hua/LreBULeB5pn0BDm6ISHHzQ2sbhGaY75n01YokqiCKPWS99rGKa/kK5AUhdc5E5eILiQsJ9knV3fEQxfA59OBc27o7goSiG+c7EsrJwIviTsG+zdBD0qq/a0/gKfthhvZNA1nDTCpmclTbXwP49yFxzNdX9LXTnr55SfKxo7aL0UjB7EIEa7rk8Uaff2Qz1AW/g79hw== 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=5drOmKiaYPt7BOKOWcqRepYh9tBqorodN++B+8Q9gj8=; b=w3nfOiALubOj8MKMgU5cv5Hqp8zTwbCnFSyfbt7eifaeQHpj4z46okdS9za6cweglV0pEyBJkBFuGzT2AUtkRSqrYAKhrbjS3/CKqGkZGt3xFFurjiwuvPc2o1ef8w6+xvQZVOMKS+0cXEd30dI06IsDlmJL+AC1TqdRpuQjBVA= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by CH0PR10MB5321.namprd10.prod.outlook.com (2603:10b6:610:c9::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5857.23; Tue, 29 Nov 2022 16:44:20 +0000 Received: from SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::a02:2ac8:ee3e:682]) by SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::a02:2ac8:ee3e:682%4]) with mapi id 15.20.5857.022; Tue, 29 Nov 2022 16:44:20 +0000 From: Liam Howlett To: "maple-tree@lists.infradead.org" , "linux-mm@kvack.org" , "linux-kernel@vger.kernel.org" , Andrew Morton CC: Liam Howlett , Liam Howlett Subject: [PATCH 02/43] maple_tree: Fix potential rcu issue Thread-Topic: [PATCH 02/43] maple_tree: Fix potential rcu issue Thread-Index: AQHZBBHUuoW3C1aCOE+ijZTnJhi4Tw== Date: Tue, 29 Nov 2022 16:44:20 +0000 Message-ID: <20221129164352.3374638-3-Liam.Howlett@oracle.com> References: <20221129164352.3374638-1-Liam.Howlett@oracle.com> In-Reply-To: <20221129164352.3374638-1-Liam.Howlett@oracle.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-mailer: git-send-email 2.35.1 x-ms-publictraffictype: Email x-ms-traffictypediagnostic: SN6PR10MB3022:EE_|CH0PR10MB5321:EE_ x-ms-office365-filtering-correlation-id: 67a1eba2-9be8-4187-349b-08dad228f6d7 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 0zny7NNAfveeEjVu495V8JhFKOY6pqss9l5vBV9UDV6reeF+Zwd1hxdHJQrUwABLnbXeShDphXASxXfovm8CgH4rPt6nRYfnsLiguRedUl80FVUmILqNsy5vz0PHQppepjml1DNB/ytFdIidjtAC7pm9jBRIGyTqIHa+fVBfEWP55dzNWB/DzxcNBk0/rk6hnnACub6rvEL4nbh+u+wSXmM/YyQnR2F2PQc9/pn4b5ZXuQo0Lktb4U2jwRFdBxqikJJZfYD0LPMCs+jUkASB22hSx+ImRljRNtPA52fiRwnxkuDXer7Yt5KpTyG/F6n6lg2ihgRGMMk0PDo3KJuDoEgoS6VL9/gEtGFUmfMH5Bkjl1fiYf9pPWQEkWdMYUcwwOT+T8lLry6DK//CX+ZLA2jK9BnN0JbXNwtakQjAwWSbV9Bb0gxTsFCcyamkdIWovwaQlj96YRYJDIwatjNWXZntuEnr4iggT5gj0ta/U7g6DU9VkzxrvYCaoYVsowimTPgPAGV+odaWAmmpYX9jFmGXy53gWkpMeef4rNubIJLcv25S8o7QQqzZPaW1kqtkpaj3KNwFIOyaez38+nvRFDWeUoQFvlozittr1Upx58so4eL7ppb6yqGTO0GUWTBJkmtKy/AOvSUXfkh9gpeCLvfKq3TCkKC6zUyYvlCzIcONcVTQOB06Ikq/gb7netz1WIrVE4fq3130TOxenJUYeg== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SN6PR10MB3022.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230022)(136003)(39860400002)(346002)(376002)(396003)(366004)(451199015)(83380400001)(54906003)(71200400001)(6506007)(107886003)(110136005)(6486002)(86362001)(36756003)(38070700005)(6512007)(38100700002)(122000001)(2616005)(26005)(1076003)(186003)(8936002)(5660300002)(66446008)(478600001)(44832011)(8676002)(66946007)(66556008)(64756008)(76116006)(4744005)(66476007)(41300700001)(4326008)(2906002)(91956017)(316002);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?Q?KS/VtXNdSd9dtYQL9ZbXr64WC7KeRy2yyA0Kas2w+UhdpSi9+9BxdnZlno?= =?iso-8859-1?Q?gYqhuRL6+7LEh76ZKyQuYqciBuyK/ffUH4fKSWs1/aCkBfdSDc0DnF7DZ6?= =?iso-8859-1?Q?brY5PA9BCPDD7hc9jDANl5LH8s1awiemNw3HTY8gPtNeOV3uPtbH0cDqLb?= =?iso-8859-1?Q?vlUqZobMLY3q5thBZ5/gQ+oGfn9J7RFUlF99jv6Wlci5NaKwgLZIdLn9ic?= =?iso-8859-1?Q?PCuXJkoW6ERHUWcVaVU7eEfF6KKA8vacCf6Qy9Y/w6mQX2xdnVu40SNqe3?= =?iso-8859-1?Q?n8g9jz/n23mn7xO4c4NmsYSxBj0bovaUqXdrBAF7od4OU39cmhubQpMmdJ?= =?iso-8859-1?Q?GP0gbXLHVlXWHzKaeT7wmEzoWfJL0hjcMES4Q3E4CQ4LQEYfg8gj95GiTr?= =?iso-8859-1?Q?Vx7Wj++6CErixYVUDiOvel5gSYKFg5jZuY4du3cFUDlCnNBQefYZPB+XPw?= =?iso-8859-1?Q?Dw2LqtVrS9mCucgFOPzTB5Uy9nvUHyi5/6nzYy5SNSPD93es/jXrjAI5lV?= =?iso-8859-1?Q?hyR329n9yyvkodo6Rhk9L16HRBvAF/qSdUKzTzFARejTej/K0a+Dd13W0M?= =?iso-8859-1?Q?XRgdUim6xEtIsD23ivGHWgtV4hmptAlQmIdxRhl9578csm2guf0ZOozRmg?= =?iso-8859-1?Q?TPny1qK3RGo2+FEDgCCtQfWAcSdi4PHU4oWk6gLYLki7Xp/1kOozsTPxy9?= =?iso-8859-1?Q?LIA8PxWZAj7p9HvDa5+dF5McuAN8YVyJLgbDkQkUni1olAOdkzOpLh7IpM?= =?iso-8859-1?Q?JSvhgr1SjCoaSFiLGR1jczmQb9FOhcWRXCIaflTgM+8423nUBEIkEpYm7I?= =?iso-8859-1?Q?koWDurZa3bDvcdEPFzrfIppBDwBL70o51WpjuUFyJWUmpDaNvKwgOrP+uU?= =?iso-8859-1?Q?75hXSrFq0J65z/AYOKVZSsnZYol6NjXN0nVqcIzm69hFPd1YMZgHMUrLTL?= =?iso-8859-1?Q?XxxepNym8I0YujMoHiSg6wNJH5lEJuRIUPh1NsrTcw00lXBXuvPS4UdMU5?= =?iso-8859-1?Q?wzFuEc0qXqeMpoLk3HkoQEckZ4nOdFVvN9ETZsUb0sHX29zZedvMzic2pt?= =?iso-8859-1?Q?11u5oMpxiEdYcJ/oRxVufJclQdLYWp4qNTL42dv3ZpLSAcWa4a47NzqQQO?= =?iso-8859-1?Q?TYkL1v14S/ByUprfPnS6p82DU7pzuJZTs8QYhLlz8otRa1R9C7zuR4B7fG?= =?iso-8859-1?Q?slA8xnh9IrF0+hbl5fjltqoPjgNeedO+FmCHIFHqqLlt/IHoDSFHo+MEGC?= =?iso-8859-1?Q?SLndpZZCWpNpLIKz/b5emcDyeylzjfj9dAK2mUYAe4fRJHTjbcZFhpB7Ih?= =?iso-8859-1?Q?LKdaurEvdVK2Us1sPVbAdM7jhr1SWx/jbQV4pCQJCS3aOldApxMszgJDT5?= =?iso-8859-1?Q?ouPLvVnAL74kAlub91VzxFo/0j/lDfmYKdxOGraF4gKvuCdiWiKu4ONzka?= =?iso-8859-1?Q?zdgHhLFpfKdd3yOs7TG/aPdGwXVdrhLOs8cdWWZYkgrhCrf5Ly+KCHhPM1?= =?iso-8859-1?Q?RU6WwLMTvncqxZoIt3sfoUeCOPa//qv39ekjc8wiS7GGjcqCJFc753/t7U?= =?iso-8859-1?Q?CAnWpaJvMdq0F7J/TL0fj3j7nFcxTL4XbVCYv4IB8EMUO+knfG5e5+MeCM?= =?iso-8859-1?Q?n1gYe/g2MGDtASLJFXtEbQbb+SBF7JL1OPofwiLp/MsrG6C8k8MlQGxw?= =?iso-8859-1?Q?=3D=3D?= Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: YYnwPO1GIOIq0wyc9QOzjkbEDVAPYS6uu20Wr3S2ct3IVa3yztUJmRwKQKBGWLu0zbIn5GMWqov1rNIWkfeTRz6jYVIzP20wAq/Oc0xPEQ6XyD26EwEFZYTL9gkJaFTW60p5gkQyEp+UaA5DhbaJiUqI2ezZMtv+srlVYmMosBzhlhxmnxPjB8GHaYZPuqzYmnix64rp+6+NrU0wxEvQ1nAb7l0/UQwoMt0oNzVFk0i9XuPRLmmjjczki5A4esDfJ8Sp+3yHwYvG4DDmaXt8SD3tgFAQQ48KXkZyKYG14RyZyFSumXkBvo0kuwnNeuYNr2I/xVRjNEroGJvhduLuOo+ehPCyQWlweF83CNAzz3wGbUSBgvxevskFeemGisyos+WYC+7wkbNoxqKtnm1U5iTny76Nwk2A5ZVjMzB3n7PGc5AiN2UrGcG9+idAP1vZAOtVYS7UM0krlUZJmY7XLgFrQTzY8MqH9aWPtznmIYCJrLR5JdtmY5MIRe+PXiccvR7uqwTstqacEEI4RWb7eKhyAdSuz2CFoTY14CyYWMONsz23jZfIWM99ShQP61PkYt15OQHevvqtZefE+rGoccDeP4gO8vrgW/W+7p2xz4A3COIgW/fa8LkvrK4xiqd/FWT6YpbuQPLwKg3cd5ReSy6F5i7LDicStRjrPUIqZc9woWsySvtWFOSuSDE0+/M4xTAOuGBIK6ODumikKAI2eCnl6beYHumG70/e+cM7GiMVnK847SFSKB67x5So6O8BEJtdMglzCgpQMfzjKKNp+fYLwKQbuiCxu4svYrCS2f8ZmmSE7dWM4UhPE4AFhZDqXkllUThWkfdRl38DetxnwGaocmc6XmACJowt2l0VNJ6CIk7smicoUQ1VgGXmcrq5ea7xrHK7Di1NFhsMjUJijw== X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: SN6PR10MB3022.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 67a1eba2-9be8-4187-349b-08dad228f6d7 X-MS-Exchange-CrossTenant-originalarrivaltime: 29 Nov 2022 16:44:20.5514 (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: TL3+mvFXqT3idKfXD8OcsNkMa0Ai+1z9HqJG3paoSgdxOuZ7R9BgDyXmfuHGEztFPuJja+tMd0DVO7HDuYXT4Q== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH0PR10MB5321 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.219,Aquarius:18.0.895,Hydra:6.0.545,FMLib:17.11.122.1 definitions=2022-11-29_11,2022-11-29_01,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 adultscore=0 suspectscore=0 phishscore=0 mlxscore=0 bulkscore=0 spamscore=0 malwarescore=0 mlxlogscore=999 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2210170000 definitions=main-2211290093 X-Proofpoint-GUID: XC9tTgpvHIhWAlw2Xb_T_A9oFmnQ0J7N X-Proofpoint-ORIG-GUID: XC9tTgpvHIhWAlw2Xb_T_A9oFmnQ0J7N Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" From: "Liam R. Howlett" Ensure the node isn't dead after reading the node end. Signed-off-by: Liam R. Howlett --- lib/maple_tree.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/maple_tree.c b/lib/maple_tree.c index df352f6ccc24..ff28bd6d4745 100644 --- a/lib/maple_tree.c +++ b/lib/maple_tree.c @@ -4654,13 +4654,13 @@ static inline void *mas_next_nentry(struct ma_state= *mas, pivots =3D ma_pivots(node, type); slots =3D ma_slots(node, type); mas->index =3D mas_safe_min(mas, pivots, mas->offset); + count =3D ma_data_end(node, type, pivots, mas->max); if (ma_dead_node(node)) return NULL; =20 if (mas->index > max) return NULL; =20 - count =3D ma_data_end(node, type, pivots, mas->max); if (mas->offset > count) return NULL; =20 --=20 2.35.1 From nobody Fri Sep 19 02:32:03 2025 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 14612C4167B for ; Tue, 29 Nov 2022 16:45:20 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S236123AbiK2QpS (ORCPT ); Tue, 29 Nov 2022 11:45:18 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41346 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S236015AbiK2Qog (ORCPT ); Tue, 29 Nov 2022 11:44:36 -0500 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 1E4EE421B9 for ; Tue, 29 Nov 2022 08:44:36 -0800 (PST) Received: from pps.filterd (m0246617.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 2ATGP2cO031397; Tue, 29 Nov 2022 16:44:26 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : references : in-reply-to : content-type : content-transfer-encoding : mime-version; s=corp-2022-7-12; bh=ZosB8rEVTgf5GQn/ef/szpP3vGboiqP7Fx3j/tGEBYE=; b=OYe+22U4hntdSh+mikxH5IaILWJ05agrVmwO1TU40btdipNDqkQnnpW1aZD68930y2wr vxNuJy4aF8+y+zKBazMRBE6eAl5NtCD+hS6ESH+c94UdssVIH5M/Z5IsUovRmgCJrh4q Y1C3eRmdl2nAbjrOWMQi/MfL8K09l+jUZybFnMGksM6GLsWJOQfUBmnkFgXMISc9Hhdz cSnJ6FGIQfARlG0bIG2SWspvixhGQkkflragOWCv7sB8ne/PRBscoDK/4PC1dzAF2im9 94elTl1T6Tv46QC5Gwws/kiObO7nADSHCTA8RWNYt9Uxxiv5EoYgZSLxL649WQ+SyrQq Ow== Received: from phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta03.appoci.oracle.com [138.1.37.129]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3m40y3xarb-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 29 Nov 2022 16:44:25 +0000 Received: from pps.filterd (phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (8.17.1.5/8.17.1.5) with ESMTP id 2ATG7rBV030968; Tue, 29 Nov 2022 16:44:23 GMT Received: from nam10-dm6-obe.outbound.protection.outlook.com (mail-dm6nam10lp2109.outbound.protection.outlook.com [104.47.58.109]) by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 3m398771pv-5 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 29 Nov 2022 16:44:23 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=c7seCoa/YRJysx32Ew0uYf2ugwPOJn80iMlTYw6fGkrUlFE5rK3pURFzHBTMiyyHERP/o9o112J2RymyBtIZXQHT2vhe9Bli/ZbGhc7v+aQAfHK2ZWZo66oJytcq6vrYdy0mzE3+5MFNY+dvm2l06hZp2c6tMNX0C5s0s5vg55Ic1LxxxDpLseVsV1DW11LskW2tCHoTFJlCAPNYKG7phVdfoIlXVT2daZIX5UiDkWfec3R0FmESdvo+0Sa9UPLDd1HmAF16TUM8A5GqE33tThqDaM/Uky4Egkhi6dmYlBvEjtqkhWR1qU66ATHQrTdWXMqY8Z5+9D8qE4KoFQLV/w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=ZosB8rEVTgf5GQn/ef/szpP3vGboiqP7Fx3j/tGEBYE=; b=cxoD3pT4h2E7Pkay788AD55TYk/Awg7rJUWNWyORmlNiqJd62VyDPOAlkGF1s398B7DtHE0usTBJLhRugYf0t9swq612TNVXSXig+cmu18K50m8QNh877BjXW9Zazi8CfpRveVhFtUx1mJbquM4PeOAralj0t2HZp9LaKlaJtcpjEM7K6vd20Dzx/g0hJVBgT1JsQoWn21fYxOp5E8ys83HIxFQg/Gk/kv5Q+dTx8LiJKoSZg3DW00wkUx3ku/XZp6paniAzdazDIGs7DP/ajpyd3hTYUdDN6xa9z9Ue7A3Zl3yadrZZbIdv9uBZPNVxTiGGEqXjZRhT+swTHVm73Q== 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=ZosB8rEVTgf5GQn/ef/szpP3vGboiqP7Fx3j/tGEBYE=; b=NiRD0gExVv1Tc79sDr5zJv2qkvYSkBjhOUAhHsKZNCVW5mgJ6/r0PjFbX6JEKKhIqaqXpfzqjJumIm39ct7TkOrZ8BHqkjAftglNyNwAnYP8/qDhS5OaVtnTQzwvQUA4P5HXcGd7f80lPViD+DHmFcqfKGyuGvtMG/Ey+qVcwtA= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by CH0PR10MB5321.namprd10.prod.outlook.com (2603:10b6:610:c9::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5857.23; Tue, 29 Nov 2022 16:44:21 +0000 Received: from SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::a02:2ac8:ee3e:682]) by SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::a02:2ac8:ee3e:682%4]) with mapi id 15.20.5857.022; Tue, 29 Nov 2022 16:44:21 +0000 From: Liam Howlett To: "maple-tree@lists.infradead.org" , "linux-mm@kvack.org" , "linux-kernel@vger.kernel.org" , Andrew Morton CC: Liam Howlett , Liam Howlett Subject: [PATCH 03/43] maple_tree: Reduce user error potential Thread-Topic: [PATCH 03/43] maple_tree: Reduce user error potential Thread-Index: AQHZBBHUUpiEpUBqt0CsvfaXX6r3tw== Date: Tue, 29 Nov 2022 16:44:20 +0000 Message-ID: <20221129164352.3374638-4-Liam.Howlett@oracle.com> References: <20221129164352.3374638-1-Liam.Howlett@oracle.com> In-Reply-To: <20221129164352.3374638-1-Liam.Howlett@oracle.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-mailer: git-send-email 2.35.1 x-ms-publictraffictype: Email x-ms-traffictypediagnostic: SN6PR10MB3022:EE_|CH0PR10MB5321:EE_ x-ms-office365-filtering-correlation-id: 3e1470d8-dabb-4f62-b9d6-08dad228f71e x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: d+XgLLe+/pr7/P4kEsZy+u6RqL+3axD6kIqO7xZYQcEYJIiAC4Ik+2SbZQBBG424lAj/R1WrGk6h6IaVbzQq5WJxv2Co29azgGamIykymetYTaSXShcJtB31fydnn2RIlpRIHaeHQoTSU5FL6GW3OcHsbSGGQ9KTyTTzAsp8HJpQvxGmv05vy2WCzz9dKvQVXA7hMBitbWiTa+rnGJgVCIecBZydJG1VMV+Wbc1PLUDFpvwkN7QSOnFZpae/mJGphuS2G/wyCi/5NLk3Sfxyar6Hqouyi3BdjRHLJx72PWl6PqNvfXsiu01QlgWFWlyu2xvyTQFMDRxtyUkf8UrQm0Q3JT1Mx7G2oUyZmw7AJqgSakkckcc/YF1juwvLO0pcEBDELa38MOToKo7o5Ln49+uStTZIr8NyD5AwJxGVF9t8sR3WT0YRpPbp6Y/GtG+DEkzvDKTzKngsQLxJf31Nm3tueKayLvgFHLYTQHI73YN+eMZCaHPkxs3ZYPC9t7DYog2fE5AcMLVsOZGe2fUPkeSOjq4WbJjgWp9B++v8nwEpWnQm9Onq9SZsWdXT5qO7mZVyb8f42iGVRAoJN/Kn5iit6O8bza3D5vlWzZydGNb8EVr2HWdidwL4YoYqZbDbWd1eYSJI4nfClMd212QhsFkF9j+veXL17fzUrG3Ca5qifWbWjZ+ZSU93/uLHEMeWPevGVaGWK4LHBkb8gsUIPQ== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SN6PR10MB3022.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230022)(136003)(39860400002)(346002)(376002)(396003)(366004)(451199015)(83380400001)(54906003)(71200400001)(6506007)(107886003)(110136005)(6486002)(86362001)(36756003)(38070700005)(6512007)(38100700002)(122000001)(2616005)(26005)(1076003)(186003)(8936002)(5660300002)(66446008)(478600001)(44832011)(8676002)(66946007)(66556008)(64756008)(76116006)(66476007)(41300700001)(4326008)(2906002)(91956017)(316002);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?Q?KqjpCkfcAuzvxAvA8ay6J/6Hfh1g7Pp0pxM71gvGfcua1DPW8rFwVEMizt?= =?iso-8859-1?Q?Hzd5Qh17on2quqXbTrqxTesYbA7kx3TxeE20GDFP7EU2kX7cnar49n0KK3?= =?iso-8859-1?Q?VH0VaeY8Y+CoIElS5S83oafcIg4TpKSwcVwkKMsysqjlIkQ/cWhj2MbM4h?= =?iso-8859-1?Q?Mjku6vQYTe+s+fnQ1AWPs5eENNvTgNp3psCTqgCni7glpXginokHsg39a+?= =?iso-8859-1?Q?L5uDJ4S/ZqDhjs1SQ9hxJ1RtpcmLomToLlbR69gtK/2iiq8bza/sok8brj?= =?iso-8859-1?Q?blRPv4mlfGOz69ldR3XMFpBzFTzIvxGPWAFMbuRU8xSZXF2PaIvd4+KQnG?= =?iso-8859-1?Q?kbMxa806jhP8Nh1+/+ZK0v6XGZVvgmKc0ij2Z7MMTVUKoEeocoMP3SkD78?= =?iso-8859-1?Q?UU3yq5tlimIeJcByksmhHpxk76/5eU0UzN9RPdy2ZRrtrn7aePU5IbhTwl?= =?iso-8859-1?Q?R59+rm4uttTmKlSpuI5BtpFftR7Je0FRWj0FSBBToENSDDKv0qkfRMqz5U?= =?iso-8859-1?Q?ny89a4qz7PrnHv45osAGwc8OWDCzHX6l0YdmAyziHxZZjLOykgBI8KyAKg?= =?iso-8859-1?Q?zT2jfz7ANrhTzSa6Thq5tk8IId+d6N0edYw3I7D45O7nUalGfc8cbf6Z30?= =?iso-8859-1?Q?3I5xItf8cf6vTgkmHLjHoaCc1y3G56ydH/+CTPK0ejcrd+c3CtYRP5lj2b?= =?iso-8859-1?Q?c6n7VE4qs+PfHk8A57KB//kPi+hvnAhNXlPsMSC6R6+tuVxYHCcetn0rNJ?= =?iso-8859-1?Q?9NCjdkgquYOTTFvaiLknZNdRzpNCdUceHv6sBwXUT6fAmsD0/JgbFFbUau?= =?iso-8859-1?Q?jjeMj1JspDc8hF7kvVkKF4EVyzdHmr/r4b4ogIFGCgIMyIrt8wy3UD+0By?= =?iso-8859-1?Q?WZQIwaUXwdqOtaFayMarBgC3uEV3zw+JeElHvlLa3iGFsfX5C6I1jjK83o?= =?iso-8859-1?Q?QQAKIpBvBvX7g1w2i9dULH4Kx+zWtLLkd83id9M/QRLIOymySTe0q1/66O?= =?iso-8859-1?Q?GKrruX0puJll0niZq+DqcfXpnpBcvbjNHprGDmT53OzBc+7MMCTaeWngQ9?= =?iso-8859-1?Q?hSb0p52nxSp9qfJ44KxnEzSYAE6DRsW7l3jRDD9jMGS+I7K27Nnam5wsdg?= =?iso-8859-1?Q?edvJxk+3tIenc3XQIK6041AjIWaiFcSLkips1fAp6mgIi8ZfBCYn185F50?= =?iso-8859-1?Q?GtjamLHyJv6kLOiGghAKytl7kUF1yBR1MjCJeTJ9WNiSQd6Oz9zCmkzzOZ?= =?iso-8859-1?Q?JOd+WHDhKQWS1A/iTi/Fv6ZjY8Q1bcoNX/qbN/QO8hKYtrtjFKMY+ZUOeU?= =?iso-8859-1?Q?2NLvuatZJ7PTvySpvJ0uinAOqasuGzy0oA2ma+4aiwUSbcR6UoU8NPR2NH?= =?iso-8859-1?Q?Mzusc9+7DdsRIQ5AEG0+zZyY0QdRm/TKfHeSIu2WxJPlW4ajHLMrZfhYF+?= =?iso-8859-1?Q?TLMqDtces71M+pS4Ua7Ll6YS0RJvEn14mlaPH1aggNzfZfcBN53G6lR70b?= =?iso-8859-1?Q?wHHlpsGqs0W7hJI9Ozbml5fpzF3mg9WKqhGOlKu5iTHdo8fldO5i5+vxmT?= =?iso-8859-1?Q?HdlFYWdzamWhTQySZpkd13Kck1RMuzL4QB2Qs1fMVq09pRa/SO6yF8FNd8?= =?iso-8859-1?Q?y1V1EVRBnrZ9feVUaBvQrcZdaAgNS9JILX4YdPk/1o9mz4mKJ42XTB+w?= =?iso-8859-1?Q?=3D=3D?= Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: 1BZtxfGdWEoXdw0jFPbpLKciD3Kk/tbD7qRe4W4ZzEP5ptDbRqjjo/k3FMLOx/rVjOjh6UbaVGMvSQ1LUohtCWVt2rMkWnncdP7tQmUoVNK4B+TuUpxeBErxDV2RIcL+YV+/mXraBbPlhTXPhbYwjp52eslvT4S4qST6am5u8lHyg5j85r4ViBqQxK/6nCVnwxL+O04WbwGdw5TpBhyCTklrV/xe0C9wDpeIzGpmGxinmZF9KlWxmduQoiSPiZTJUF0Fs4MoX2+AFOQpgBVYcZIQgOri7HtiZq3yNuw2tMCczo/9RfGn609hrpuLtU9qdzegP+Cq3fqhyl4/TdEkX7fHpuSwnYGgvwibILBDdkpuVm14WoyyWcpXAjSINQ5YDHgDwJT2zjqUYt3KX5K5BRMGcCkYh/epRPP4S/X8jiPGqgP2vKX5qtC9hOesQ3MrA8giGC5fUUiZq4IG7rJzXD8M+gz/1DMnlkrvhrAzPju+CtcOLnBr75GnpQ9CveYcamfi03dv+20ofHp7dYOPVN7wPIQO+R8wnggXwno3B6A5DqkRF74/fwpAuHROma3V3TAo6te/VFb4GhhE2cfU7C21Nb8G3AEwH+MLSqIct665y1ppYLlAmVcfHFh2YilGzIdfYte242WTYCAT2DabqHaFrW6jw4dob0a/jFMa4mw2w2vyCQXeJnRETToOLZ5VY260aURBCW2FSMoFfY/bQ8BUj5CZLf9qWSFtpXaF+gwXn7u+w6PFaAV4Ps1b33uM1Fut4UGjnBZ0N0GVBLOeI/M58+I8R5qwbxiEnyK+IX5m2BZYbIJOGxOwKiEiunHaQ41itGgdpOHryXH/tBisc5Rsap9YycdBfoIx0/PIRMbHcTyCpdfJXbTcfuY9C2u+Oh6kJIaOamncXTYXeCc6ug== X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: SN6PR10MB3022.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 3e1470d8-dabb-4f62-b9d6-08dad228f71e X-MS-Exchange-CrossTenant-originalarrivaltime: 29 Nov 2022 16:44:20.9263 (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: XwapcswNL4uANlnSuMcnYJlnuRUejqzL4fcS8ixwzgUiqAWI39nmze8exGit0nKT/Qxs/bAuw4MlwG5aZo2SFA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH0PR10MB5321 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.219,Aquarius:18.0.895,Hydra:6.0.545,FMLib:17.11.122.1 definitions=2022-11-29_11,2022-11-29_01,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 adultscore=0 suspectscore=0 phishscore=0 mlxscore=0 bulkscore=0 spamscore=0 malwarescore=0 mlxlogscore=999 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2210170000 definitions=main-2211290093 X-Proofpoint-GUID: IMMUhTvDqeyzXiiR3VVXyV1SdMbUg21d X-Proofpoint-ORIG-GUID: IMMUhTvDqeyzXiiR3VVXyV1SdMbUg21d Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" From: "Liam R. Howlett" When iterating, a user may operate on the tree and cause the maple state to be altered and left in an unintuitive state. Detect this scenario and correct it by setting to the limit and invalidating the state. Signed-off-by: Liam R. Howlett --- lib/maple_tree.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/lib/maple_tree.c b/lib/maple_tree.c index ff28bd6d4745..440539ff0d11 100644 --- a/lib/maple_tree.c +++ b/lib/maple_tree.c @@ -4735,6 +4735,11 @@ static inline void *mas_next_entry(struct ma_state *= mas, unsigned long limit) unsigned long last; enum maple_type mt; =20 + if (mas->index > limit) { + mas->index =3D mas->last =3D limit; + mas_pause(mas); + return NULL; + } last =3D mas->last; retry: offset =3D mas->offset; @@ -4841,6 +4846,11 @@ static inline void *mas_prev_entry(struct ma_state *= mas, unsigned long min) { void *entry; =20 + if (mas->index < min) { + mas->index =3D mas->last =3D min; + mas_pause(mas); + return NULL; + } retry: while (likely(!mas_is_none(mas))) { entry =3D mas_prev_nentry(mas, min, mas->index); --=20 2.35.1 From nobody Fri Sep 19 02:32:03 2025 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id BF788C4167B for ; Tue, 29 Nov 2022 16:45:15 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S236115AbiK2QpN (ORCPT ); Tue, 29 Nov 2022 11:45:13 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41376 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232988AbiK2Qog (ORCPT ); Tue, 29 Nov 2022 11:44:36 -0500 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 1E47B391FA for ; Tue, 29 Nov 2022 08:44:36 -0800 (PST) Received: from pps.filterd (m0246629.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 2ATGPo8Z012293; Tue, 29 Nov 2022 16:44:25 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : references : in-reply-to : content-type : content-transfer-encoding : mime-version; s=corp-2022-7-12; bh=xhabUoomI33CKrWaeZkUPrrW6+G0JIovywvm2M4c3RA=; b=QKzj2ubKzprgVA2vYEPU0+RBNGy1N2/ug5jdiJqkq4OlyFxCHhVhoBkmOoxVj05W8DPP F7dKqibYUQekpIFimryud3kq+URyh7N0KXTDJpbJx0OfYXX+/pFjZC2uXE345cgeCk7q u3BS83pWXNrCVbwgwDN7KFRG+AT4F0Hp22jpsEI5sxIUozsz59VMKYsPyOSa0RjYkxOI cB0oNbZuzy1vzysCKDl408D7FNs+a1BmbvvNHUhWDADumMKFSNslPooqEDYZGlikjKPm Gd3AF+FWdUR7nkxzjQcWjHFAURBdzbtx3pfnFg60/rU7zKCiv56KM6TWcdasL/d5+mF1 hA== Received: from phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta03.appoci.oracle.com [138.1.37.129]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3m4aemdn8a-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 29 Nov 2022 16:44:25 +0000 Received: from pps.filterd (phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (8.17.1.5/8.17.1.5) with ESMTP id 2ATG7rBW030968; Tue, 29 Nov 2022 16:44:24 GMT Received: from nam10-dm6-obe.outbound.protection.outlook.com (mail-dm6nam10lp2109.outbound.protection.outlook.com [104.47.58.109]) by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 3m398771pv-6 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 29 Nov 2022 16:44:24 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Ld2Tlc7FSndcAU4kCK8OrTXp8T6N8ZmuQg7miBEzon7fuzGXb+Q68S1e9JH0nH9n4xKFVXfK/78SuFOVT+H35ujM96szzqq0Qtw71C9nJRlpLsMNYltlbA86P7G2HdzjMUEgnCzgRt0YIlPw/vEPAEaIaoPcEHGGHYtui0F7TQjdstlbwVGC4rYnOv6uVzmQnzfxWV6Qj3NtmLz0aN3JqwZShrlooWaUVvmYYvgxEzfAZDqFfIGHRhtg65z3KsLWambX8DarhWwhGbSqApSYe5bVilkC9ROoZDy42QQSOB2sBwW1ID64/IO0Z2ehIAIiNiKxJo2gDBy5i2+A2rGn2Q== 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=xhabUoomI33CKrWaeZkUPrrW6+G0JIovywvm2M4c3RA=; b=iZloEAnUmnBmq96UN0ZRxfAAQjl3qyLW5LhMcbDQuhl8D+h5aWcZ6n9ToUtRTjs5moH/sIGChZz+HbTAq0ZB7MaIAZXRun22oY7KOsA1YCF4ehyT2vbFDelh8uzIi3ZsN2ePbsHRT+n62HcVUt7c8im9xoTN+e5rtB6thMVe73h6IQnB8V847gaA3t45+5vuP0MTl+4OEJls9+GP3OukVlV9cXpL84LssklkIGtUQyvPTUMGXvB3da4zXiDG4G6v4J30oFFq8hfWCOQrkR5syq0dzAef+dN8u2H3pw9Ao0+iSEWgrYqgVQOeI2TRnCijJ3RqFM7k2cQZ2alczL0SgA== 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=xhabUoomI33CKrWaeZkUPrrW6+G0JIovywvm2M4c3RA=; b=qwz5LsO8eIjM9WjnxwkwkB8rsSlb7W4J/GnBcVENf23VKM0GIWHenIB4WJxYbGW/PbT2PvypG7XdNosBWG5S1YShqniJ+VdK8kBROsdTTzdRBdnoVmmUHBXPjyHI+bAckx2aY1r8Ijicon2XQen9438PkNimSJZIJM/v33ztdUE= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by CH0PR10MB5321.namprd10.prod.outlook.com (2603:10b6:610:c9::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5857.23; Tue, 29 Nov 2022 16:44:21 +0000 Received: from SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::a02:2ac8:ee3e:682]) by SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::a02:2ac8:ee3e:682%4]) with mapi id 15.20.5857.022; Tue, 29 Nov 2022 16:44:21 +0000 From: Liam Howlett To: "maple-tree@lists.infradead.org" , "linux-mm@kvack.org" , "linux-kernel@vger.kernel.org" , Andrew Morton CC: Liam Howlett , Liam Howlett Subject: [PATCH 04/43] test_maple_tree: Test modifications while iterating Thread-Topic: [PATCH 04/43] test_maple_tree: Test modifications while iterating Thread-Index: AQHZBBHUEYb2GHCqzEqTyyGMfUs5Uw== Date: Tue, 29 Nov 2022 16:44:21 +0000 Message-ID: <20221129164352.3374638-5-Liam.Howlett@oracle.com> References: <20221129164352.3374638-1-Liam.Howlett@oracle.com> In-Reply-To: <20221129164352.3374638-1-Liam.Howlett@oracle.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-mailer: git-send-email 2.35.1 x-ms-publictraffictype: Email x-ms-traffictypediagnostic: SN6PR10MB3022:EE_|CH0PR10MB5321:EE_ x-ms-office365-filtering-correlation-id: d8c10260-f7bf-4527-b5e9-08dad228f75c x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: cmiZibVWkH4595dTDVKbMIocxTQ61D1gDg4z9a3Me7yIrfnJqSlyxE6pLy/5556emO77A7Y5lIMwL/Z4hUxNzP/QUPoIK4AfxdF8wQPQlW0cDYvzaSQ0iMN7OHogcBPGc3gCuy1SlhQNa94BNSjB2M8Pac7NtdwytGffytTEMk5kQg/Lk/9EnMChzXCxPeyZi99b4eB9PlGumKuWpy28G97W77AuWCr9U72M6jAdsasZpPmDo0FK+35KuOCBB5Uw9bN6tdkY/PIZJASzLuuLKHFLFxBAtv1VKxGWA9YcTixzecHuZYxJF33nYjRCuCRV3noYouNGnYVbHRyXHiJEJLTEZ7Ecet2yeUoajaz8MP9ECKY9VOiEAq2b0gkB2hKZ/W4/Zb4lzYe8fWFBvyUFjAcbsUknCReTcklclZY9XvU9NQennWGTDF8HVGo87EWSNiHme4Ig4OfMXIfGbqwmeX60VM22P0B/UNzLulzCpwc+NmHQg/ofgsoFA4akt77v+QteR6a3/h1nByz+P0ipsdRKBKOtCYiJMJMlW11PsvAS1u8r2xuFR4HwfTMlQmui1q1FAdlThh9SBS6ddorkd4Gdk8e/9jADN2TQQ5NFpmrevILQQRyyMAjizsqbo1oqKhIjHmg/If/cuBNsI03Kx6puFWJfdDSJXnwKwAmfIIIg3uWbldu82crVXN4AvoYzsKDE4bG+PKOd69Log7YFCA== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SN6PR10MB3022.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230022)(136003)(39860400002)(346002)(376002)(396003)(366004)(451199015)(83380400001)(54906003)(71200400001)(6506007)(107886003)(110136005)(6486002)(86362001)(36756003)(38070700005)(6512007)(38100700002)(122000001)(2616005)(26005)(1076003)(186003)(8936002)(5660300002)(66446008)(478600001)(44832011)(8676002)(66946007)(66556008)(64756008)(76116006)(66476007)(41300700001)(4326008)(2906002)(91956017)(316002);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?Q?qyUjUPaKBYSfoX4mlwHt15ajYsSALIOAsyzHlrk/vYEINVoGRKbfsL3wwd?= =?iso-8859-1?Q?se+iFw5BtxOIq28jHQoQEiLH6JOvcoSBUbZTZ6RbJR1HtKXk/DdAq7Wbz0?= =?iso-8859-1?Q?2zVrs+i66tQ2QseVYpRgCHk4aEV4aqZvGsGwfykpvjdGnydXiVzj0uU807?= =?iso-8859-1?Q?KQ4FdnvRHJmnqGKJ1qU5ZzpuJQcg6VT/ZsuMQSvVElJs5P/6E4flrpcpiM?= =?iso-8859-1?Q?T+vxFhv92glST7YrX/9fvjFQXVoEgbDasjc7s64Q282X+KRSYURT6iUCUh?= =?iso-8859-1?Q?B1HaoVSt0WEU5xFc/VtTdt+k/5O/aDTAfOSh5Q+XGyX8eBjPavbxzFGiS7?= =?iso-8859-1?Q?RiJ2wd9GfGx16wYMjRTTyl9umSi+5C7QoRxBxoDQcWaQZW6r1bduCnuzit?= =?iso-8859-1?Q?aCN1Hexo/8uzGZR/UAfoypDpIlm12+e51R/TXys+2gUJLrXuzvCjUF/Gmd?= =?iso-8859-1?Q?yVctKzWkXQFXIFzbGCNTUraSuDGmdLycUKT8Ke4xfFD8SgtO7RViA5gLDT?= =?iso-8859-1?Q?/l82xN/i1Mljfg6Fg/DoUndOeVpxzHYzZCjB7wlAAiU9+Zf6C4ZovgVNIS?= =?iso-8859-1?Q?GNxu6CbaR7GZkxxSm41kXx3SdVAYGvGvHQqMPhpVhUp22F3pO53kvBEbv8?= =?iso-8859-1?Q?uoBh2Yu0fUggRBrNIuhXXIIwp8Kl7Vf2VJXeQvU1rzjExopeMnvqa5hZib?= =?iso-8859-1?Q?u1aQ3fev7kutXqrMYD3yPs6M1SWd8ajdNPVQKpzYNDceIqEZC8whu+9IKz?= =?iso-8859-1?Q?cOkwNAZL5B03LXi+RmMTRtWxJVIC1p7fWVedYmtqolsVlBfJFsnJF1uBBN?= =?iso-8859-1?Q?6QEtQijpJGE+lIbucp23LuMnpmgMDlyXQ30WdahuwGcJKbn2rlMxUMg/Bv?= =?iso-8859-1?Q?h45iokUki/8WN3sTr9azB1LsG1fy+S5NFbGqyVx8qpzkNxG0uAaqq6Dx2S?= =?iso-8859-1?Q?dinVMQH0lT4bbFUNbf9URs2lCHb9quW25sm6W1BacmOYDX5NK9Rh2YFbBb?= =?iso-8859-1?Q?IJC5D5WHqCwG7r4mrlqyC+FCReLQQE6/VWMTLGax3qbWSdZOSCDwfiOvKX?= =?iso-8859-1?Q?bu2rgOOsN5G0Xrh+i5uNbOudwAVV/82OhK56bZRXAIsz7DGl3QlnDd/SVd?= =?iso-8859-1?Q?psgsiEM8aE0tnRLEOYFQpbFDO9Oi98CKqyHDsVZoXhLR/OlIsi5R3f9xzC?= =?iso-8859-1?Q?A9RGPxiV5au8CdcICB3LOF9bXoV4X8n4e33m1SDxtn8tO2JXLJ9lTYKgQt?= =?iso-8859-1?Q?0t+fJJmWalo+8FdwjNxuILkwMIqlnd8TNDz/qIAdKrHsXWDTs3laa5oHz5?= =?iso-8859-1?Q?T4tLc7U8LlVutWLIdg7PfZon8tQypKgHLu1fY2GQJ5HceQC2buiBFVMlqK?= =?iso-8859-1?Q?IheUZPPui0znl9uoMCeNG7dGQYU5Wi7qBcy6NRRwHN6kTYynfDiEhOeT8b?= =?iso-8859-1?Q?ERPnvd4hhCqgLrmNh/MKLfj5Cdndqdv50xg2x8OnNeOeygPvSVGojb5qkf?= =?iso-8859-1?Q?CsHyDHY6XhX9l/GQSJJQTMTxaU2lq+Xkhqd7W+cgoFfBrdHOdBQoj73s0z?= =?iso-8859-1?Q?bRmcRE7HRXvFzBgKBSDl7fEKb2dZ6//oxPyzLjRG5ipde/l09IRQdjldDn?= =?iso-8859-1?Q?DKjMVKeWCXW1p794obqOFBcuWsZ/KwJepXhPuOemb1dlkk49rEYxmZFQ?= =?iso-8859-1?Q?=3D=3D?= Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: sbUyVG+WqqT1UtMRWBtwmLufnmWd6yoquFGMlbix/hoJ8n6uFLBqlcG3tQsFp4/W8LQ6mZnFfJhXdQg9HZkN3rpFYVGGkLDFAq2JLbu6BdUTJdaKlHk1GDlZ1W+uOJy+PlTcaKiyMDko/0E2s8+DFjY7HbpvfqnrQjJKJ9J5VAT/P968OkxgzTSvOtdWRbXtrgPaWYJaTLxSwtYocc2Bjg5YnkdkcXVQI8JTddFdtcAkWiDZQPEkzt7vwGuX0U3nD7Bf9pDL4o3g09l/UGiWtrFvcnMIEwjKe6Hoaptt3FJfT9muIPZ5jyw65rTqdeHF+vyvqDyy4fNtvB11kH/prH1y5gIwCi2CyA3NDFqc3SF2RIIu1CDOg5/9MhE+FZE7j1diS6f2PcfIBE2h8MgFZjnnvSsxEv6bUo2h22FO+xX4qHJ9C/rTEzd7zEG1MxogbUXZAy7EbL4oEHUgxr9jKoOMX7u7d6vSJgDIGQSLqh5TSTG4zJnf293sMLgpQiqjhuqY1alKZJlolmb6sB2FuziYRoRewRSmk5MlhRyKuZnliI5JQ3yMHv3oXvXa7TwX4wC1Jqwust0VoQ5MI53Oy3HpJbLC7qmiVxLQNfuHYizGAEmgRZdkF9KvEkBNqUynZMqKrz238RsJN3OV81IBquehVfswOF+ujsJ1W/+TlIGXMTOKWc2p4qkmn2LGIZNGInD/Q8RdO5qSlbuMSyItFyxhEm3plCG4JgwD70AiF+j+ElMSvU+UOYS4zcSBGkB5aDKjt4jI//BCaA2FT/WSFysdsZbFSDybtQ4o9G84ponCYJHBQeT501y139URfg1XEn1mTl5KI65/j0hxo49cbZz3pfW41ZmswUx7S49mvc2n0aB0BmbCx23zmL5sxPdZNStnQP74UCa9eirMsTRymw== X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: SN6PR10MB3022.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: d8c10260-f7bf-4527-b5e9-08dad228f75c X-MS-Exchange-CrossTenant-originalarrivaltime: 29 Nov 2022 16:44:21.2857 (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: jjgYCXDksjshxA8kGfhbU2wS9221DKNLUdzbTdkLg8Pw5swM18jWWBiWw2eJYpgDznBat+ZEC6RxNX/YxVOx3w== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH0PR10MB5321 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.219,Aquarius:18.0.895,Hydra:6.0.545,FMLib:17.11.122.1 definitions=2022-11-29_11,2022-11-29_01,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 adultscore=0 suspectscore=0 phishscore=0 mlxscore=0 bulkscore=0 spamscore=0 malwarescore=0 mlxlogscore=999 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2210170000 definitions=main-2211290093 X-Proofpoint-ORIG-GUID: Yex7T016ZFWgS6uYas_95cqyAj6q0Sri X-Proofpoint-GUID: Yex7T016ZFWgS6uYas_95cqyAj6q0Sri Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" From: "Liam R. Howlett" Add a testcase to ensure the iterator detects bad states on modifications and does what the user expects Signed-off-by: Liam R. Howlett --- lib/test_maple_tree.c | 72 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 72 insertions(+) diff --git a/lib/test_maple_tree.c b/lib/test_maple_tree.c index f425f169ef08..ff471fea0194 100644 --- a/lib/test_maple_tree.c +++ b/lib/test_maple_tree.c @@ -1709,6 +1709,74 @@ static noinline void check_forking(struct maple_tree= *mt) mtree_destroy(&newmt); } =20 +static noinline void check_iteration(struct maple_tree *mt) +{ + int i, nr_entries =3D 125; + void *val; + MA_STATE(mas, mt, 0, 0); + + for (i =3D 0; i <=3D nr_entries; i++) + mtree_store_range(mt, i * 10, i * 10 + 9, + xa_mk_value(i), GFP_KERNEL); + + mt_set_non_kernel(99999); + + i =3D 0; + mas_lock(&mas); + mas_for_each(&mas, val, 925) { + MT_BUG_ON(mt, mas.index !=3D i * 10); + MT_BUG_ON(mt, mas.last !=3D i * 10 + 9); + /* Overwrite end of entry 92 */ + if (i =3D=3D 92) { + mas.index =3D 925; + mas.last =3D 929; + mas_store(&mas, val); + } + i++; + } + /* Ensure mas_find() gets the next value */ + val =3D mas_find(&mas, ULONG_MAX); + MT_BUG_ON(mt, val !=3D xa_mk_value(i)); + + mas_set(&mas, 0); + i =3D 0; + mas_for_each(&mas, val, 785) { + MT_BUG_ON(mt, mas.index !=3D i * 10); + MT_BUG_ON(mt, mas.last !=3D i * 10 + 9); + /* Overwrite start of entry 78 */ + if (i =3D=3D 78) { + mas.index =3D 780; + mas.last =3D 785; + mas_store(&mas, val); + } else { + i++; + } + } + val =3D mas_find(&mas, ULONG_MAX); + MT_BUG_ON(mt, val !=3D xa_mk_value(i)); + + mas_set(&mas, 0); + i =3D 0; + mas_for_each(&mas, val, 765) { + MT_BUG_ON(mt, mas.index !=3D i * 10); + MT_BUG_ON(mt, mas.last !=3D i * 10 + 9); + /* Overwrite end of entry 76 and advance to the end */ + if (i =3D=3D 76) { + mas.index =3D 760; + mas.last =3D 765; + mas_store(&mas, val); + mas_next(&mas, ULONG_MAX); + } + i++; + } + /* Make sure the next find returns the one after 765, 766-769 */ + val =3D mas_find(&mas, ULONG_MAX); + MT_BUG_ON(mt, val !=3D xa_mk_value(76)); + mas_unlock(&mas); + mas_destroy(&mas); + mt_set_non_kernel(0); +} + static noinline void check_mas_store_gfp(struct maple_tree *mt) { =20 @@ -2555,6 +2623,10 @@ static int maple_tree_seed(void) goto skip; #endif =20 + mt_init_flags(&tree, MT_FLAGS_ALLOC_RANGE); + check_iteration(&tree); + mtree_destroy(&tree); + mt_init_flags(&tree, MT_FLAGS_ALLOC_RANGE); check_forking(&tree); mtree_destroy(&tree); --=20 2.35.1 From nobody Fri Sep 19 02:32:03 2025 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 8AD2AC46467 for ; Tue, 29 Nov 2022 16:44:43 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S236052AbiK2Qom (ORCPT ); Tue, 29 Nov 2022 11:44:42 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41308 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235972AbiK2Qoe (ORCPT ); Tue, 29 Nov 2022 11:44:34 -0500 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 7C20C5475C for ; Tue, 29 Nov 2022 08:44:33 -0800 (PST) Received: from pps.filterd (m0246629.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 2ATGPo8c012293; Tue, 29 Nov 2022 16:44:27 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : references : in-reply-to : content-type : content-transfer-encoding : mime-version; s=corp-2022-7-12; bh=9QxF2bsty8tFgN1YU7NieebNj9Kp3YKtX501tgL1yKw=; b=fTAyGszwRZbG0e87btMGW9/C9ZzvAvyusfmTuelLeaq0KdrRvYXowdGOV9oANrZPTNAN Y46CR37rZ8rasq2ogLSROkMY6tgKO58wQeeghAOW6cGQlbfKZ3jJPtl0X+h8UNoPYnVc xxPD6zA1+bN2bnTw8MaWlMliVAwnmOfywUvEugx7dhTgTbB+FWC0VMbn0ZOzKGzmKqAA 1tCaMzNblnyF+GcfGjLZ3hA035N5BJjvxHRWOPIq9FP2tdMskuAfs+i1koeGqaOJdVD2 W4IknqsQllCGVYQx4pb+hiwVGphdMqcIP2q3a1hojmC9eypOUo0RThaSyziphdMkB/LB Lw== Received: from phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta03.appoci.oracle.com [138.1.37.129]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3m4aemdn8d-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 29 Nov 2022 16:44:26 +0000 Received: from pps.filterd (phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (8.17.1.5/8.17.1.5) with ESMTP id 2ATG7rBX030968; Tue, 29 Nov 2022 16:44:24 GMT Received: from nam10-dm6-obe.outbound.protection.outlook.com (mail-dm6nam10lp2109.outbound.protection.outlook.com [104.47.58.109]) by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 3m398771pv-7 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 29 Nov 2022 16:44:24 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=dlI2qbPiFa2ZKtl8mIVDoxqtodB2K3cBe+HguDc2Fjycd5jn3SMtmV3Z5F7qPQg242ELlBvG+OKKQ+yLpJreE/jgb0R38N/UcZJcxZNMeJbAvUBiMns2u3yrwKBMwnHc7R9GqD7xXK3fUVzAecbV9eVK/Qf9j26n8SIY5SClFrkxK6KmV1celgeOPpk/dqoU1d7G1Yv/z3Gz7V2dyGmKC6FAO39bAE5k7FdRpyHrrGj9a7P1zauRafwc68p7pVYbPRkS4bqU+IGuQZ+7T2Y5POIqcgLcYVW4NWhj4BCgiMy4ZiDGUv3mZVedVIa0laFMhjHTcgXno0uMJwFDTCkB7w== 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=9QxF2bsty8tFgN1YU7NieebNj9Kp3YKtX501tgL1yKw=; b=YymQ8/aWQtSi6N553A1YyHo2JFUiaP1cbGPkgq9HyvOpF/c0auhFDb7bL33khaNnJpXSNBeeA9de8VpKfy3n2VP/GXXoutZCb5RH2liUOqJ8/T2C/88/LpJVXgRIpIKMjK29tp/tPKf9TuZT7pWzf3h+nMo9lke6o7LVOVg/BZvhlc9GIqTaeGMRhkBguk5iyk/Opo3q9kBAQqb/FKDudxJKJRDM7qxqJF5cplr/mazaLoJYzcstFaj/jo/aL0pVV09wJPRF4rMPBgzD2Y5oya0xmi08rvgxtMmsd9vBvKbQLdFXywL72T4W3psr7VFzdoqTgWi9P3h2ickuQPC5KQ== 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=9QxF2bsty8tFgN1YU7NieebNj9Kp3YKtX501tgL1yKw=; b=fuQ5w8FqxUZgrgSvePsahewq4oqV63NZYKsjQTR9MvNKrAQ0w8/0owyszTCT7PEUqGomj5yKdSJyIFksRibUGwYnbIjKiwcYixtkWO+WFCP2Z+R6qBbqJJpB7OYqy43XfAoyOvRucqFIDfG0vjUYuqTIhZY5SdTSg1kqoubnrY8= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by CH0PR10MB5321.namprd10.prod.outlook.com (2603:10b6:610:c9::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5857.23; Tue, 29 Nov 2022 16:44:22 +0000 Received: from SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::a02:2ac8:ee3e:682]) by SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::a02:2ac8:ee3e:682%4]) with mapi id 15.20.5857.022; Tue, 29 Nov 2022 16:44:22 +0000 From: Liam Howlett To: "maple-tree@lists.infradead.org" , "linux-mm@kvack.org" , "linux-kernel@vger.kernel.org" , Andrew Morton CC: Liam Howlett , Liam Howlett Subject: [PATCH 05/43] mm: Expand vma iterator interface. Thread-Topic: [PATCH 05/43] mm: Expand vma iterator interface. Thread-Index: AQHZBBHU9foHbUxMAEi8caFhrTc+aw== Date: Tue, 29 Nov 2022 16:44:21 +0000 Message-ID: <20221129164352.3374638-6-Liam.Howlett@oracle.com> References: <20221129164352.3374638-1-Liam.Howlett@oracle.com> In-Reply-To: <20221129164352.3374638-1-Liam.Howlett@oracle.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-mailer: git-send-email 2.35.1 x-ms-publictraffictype: Email x-ms-traffictypediagnostic: SN6PR10MB3022:EE_|CH0PR10MB5321:EE_ x-ms-office365-filtering-correlation-id: f769a0be-3679-4a21-d8e8-08dad228f7a1 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: k3EWTr594Gyp8UUjm9iTLds1R9+7Aok2B9BQgYFRyQwxXZuU0sFg0nsEBstBUUkJWVKf4vrb89NrWPKg3o6BATPFRNsF0BHFywBe+Q0b2sGet8O6zemkhgkVmVC5NyqALSjp0RfDBZeOXERQQBzHtBpVWrEO2Ej70BfnYVOipxVwwLf8llpq5o1VzK1nUMX8JP8xk0oNfxLluckxPDlXHTBhs04WQhcN+i6kNDQuW9/zC+RM/xL336QItFlakGAYb4VwuI5bVWTs/NMSBLzLDiHSf+RQth6qM3QR9b/wb2ajGHAKDOEaEdM8w0u5yW3stXjd0nBfItJULeG/9bQ7gDWNIH992W+VhBaDDKLFv03QH4LKFPD9EZKhTDud5X9Fuq8/fKzRx8F9hD9Zxn/zRX5fdS+Gw+55t2cD1xKLjnNBERURDH20Zj9QlQ8xTq0sKaFKzvXnC1NLE0mmXa0oSFvkhsOrVMeS+ZMDzupIEBT3YkoZX78RuAzARSFjvf+wxx5kIFg5ii3ZIbMV0dirKLI0xYrkO2br6CprXxReYmuUryCNIcLpzr6cH1ksrtlKS3z8jL8TyyoCsRpRoIYJ801amedemA3D9slhICD5n/nU57Rf8GRsn8O/WXIyg4BgICPnzXvBVX7MgvdlOf5guH3PECK8leLDUmPnkbGZ/VGlzzkesX/oLEPQtmYwMidEkVm5qfm/FEh+EFs3hDIH9w== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SN6PR10MB3022.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230022)(136003)(39860400002)(346002)(376002)(396003)(366004)(451199015)(83380400001)(54906003)(71200400001)(6506007)(107886003)(110136005)(6486002)(86362001)(36756003)(38070700005)(6512007)(38100700002)(122000001)(2616005)(26005)(1076003)(186003)(8936002)(5660300002)(66446008)(478600001)(44832011)(8676002)(66946007)(66556008)(64756008)(76116006)(66476007)(41300700001)(4326008)(2906002)(91956017)(316002);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?Q?eAON6EEcsXo7cXTdJFLoC/pdctwIFXbAGWOkwZLBNlut6Uncyh995C9LKN?= =?iso-8859-1?Q?5s6QBGElArN3xYBxnJcl21kz37v1IDMaw55Xju5L4GPe56VgMCWR+jP6lz?= =?iso-8859-1?Q?pPtBWnkN1/OxcQEXMlMC6alQ8M0x1TYV8PaU2EOP60SDiP1vgGt16EnFrT?= =?iso-8859-1?Q?eJYT1IbkqPk72zoj87eLB9rfhnfhJ6qhj5axM5laurmUgbXLzAHaPo84aw?= =?iso-8859-1?Q?IfQ7Lcy9wH4eYdyVvko6gd2HDmladygzrBcBc20r2nX1Tvy7m7uXWFc8ov?= =?iso-8859-1?Q?lexuFMvWyYm1sE9FKukPgVXCi2SG6vm+nYnloLuBMfBOaHmmzuv4lXjO4G?= =?iso-8859-1?Q?wsTOZdNaar/SWgD852jzFQ8hE1ztn1TSJLmrZvPoCbDaLuOIFFGURAuZJV?= =?iso-8859-1?Q?8qGMPmPj3rqy89yNiP4S9WkKOlNPPAv1q4xrtmLGrMbLywDlYkw3+VxsmH?= =?iso-8859-1?Q?KETharZUsL1WffuypcUZw6uf1RtvHF7OS6iRSGubPSyAV/42JDZqN5ER08?= =?iso-8859-1?Q?tp24/MZka8tNm9HLc1GI1SDiCcrL5MR0XkAPOvLjQFXNSEiD6Uphh5H7rV?= =?iso-8859-1?Q?tCPfpSdGd/vpKy7kzW3VuFqg2no7ALxSJEqcgYnPj4dblfVxz+jshUZp0i?= =?iso-8859-1?Q?P0M50bvIYm4a4GhIZDnzKpz+Z0TtdNxCWB3z3u9DMIh5lXGdJjYYn9dk00?= =?iso-8859-1?Q?ndvG067MvI4jaVvHcFh+aIuwcGu/1DcvH7qKDXvHOsSSwk9QlAFMRRXOJe?= =?iso-8859-1?Q?OKRLa72qXUyyLmn9i8OG20QxfjnBsIr9ktdL++Xco5vuXmCit2QGSucVPl?= =?iso-8859-1?Q?9XXANs5a+e1ya6ddb1BVxAAM6K/0IkiXGoeNJoehBNxIpa4Y5tHOChVVPe?= =?iso-8859-1?Q?fa6UCW9awOccG4Klr0hfFE6IWUrm6PdUwqqbi31pxgDES9qO3zQOvkEuLv?= =?iso-8859-1?Q?9fyvwkfx/uLQe4dobwqKsG+t4rI/yT/wj5tii9CnsqZq0p51Auwqomm30F?= =?iso-8859-1?Q?OURwgXje7rspRTytoitnfFjCtCISDTA0+p4ujfE6RlGfJKGkVpOOCWJuKw?= =?iso-8859-1?Q?i88+XIuAX85+TR2gHN1rSoQaDyhv9k7Peql108mpu9QfM5QN/jtlWeMAea?= =?iso-8859-1?Q?s60/RatX3T7jkxn5Yx/o4xWYKcputyIqciDsdWK35x+ih0oOQudBnfjot9?= =?iso-8859-1?Q?BjubSsRawdI0/Nhl0xSwGXoVpq0juBUIDl8bYypkmnXuk4aJcfnaTUBStJ?= =?iso-8859-1?Q?l13vzZhaK+KgYOGrGmTVCJWGVU1OFvM2Ya6yZZuPlxpsK5pZBZ6zQO2dMU?= =?iso-8859-1?Q?9vX7NzrFud1tYlAkmWZgfsrt9oKOMbdQPMrNZ2tRW8XvC8QdvDMlbQOv1q?= =?iso-8859-1?Q?GcyItW14mqmBYM8zSVXQf6zp9Ldj16ttC8qI5ItwWG/PmQpiYy137GxETG?= =?iso-8859-1?Q?DFzgZfY+T09YHSefkLN02sUhnRbhbgMfCKdvpVZD/TJio6EFMgM+GCxaqP?= =?iso-8859-1?Q?G7oPQLW1tbBpvyH4H5GA8ihK626rmvRr0A4kjicg5inVwNPyGPwVy5FUSf?= =?iso-8859-1?Q?P1U3OEv7cAIIxZ2waQf707BDvXiYjrON/JT84BMk09tEyA/PM00k6AuFx4?= =?iso-8859-1?Q?XT/KDjIMS/3Bu1n2qkCvGS54Li6Pslp/qQ93sPrTY2bWA1RDIfl/pCCA?= =?iso-8859-1?Q?=3D=3D?= Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: +vnfkPxkPmUhtZdqC80uWNaVGGFVJ6EOYbCWo8EtYjoHBlle7XnTHmwxukbubNzMEhBt+bRhevCR2xd7xXd0+LrvenHdS/1LyrgS5rQC4C98Kof2lXIdCtA6bOXSFq42Xf0XcbUVmgL0LT2ROz0I3ojdl2e2U7DhXYPzwkO240xKtpwQxJual7cva/w4G9tqA4o88YIN9LleuVx7sAqIVC2aiqbvKs5MjVtoqGfvDV5YaU5ju6WG8lkJQmNjj5yuLZyC99L1VK26Ir2Asb89bE3gswpddRaMgnMiomTT6/mRZsRIiAbUtFIozGbGAlHOz7wc9oL8wA3KyA8EigVvfsumbh91BedIo5egSZ9wG+PDdDoXQsYzCRZ4CzMJ4B47J2khSIX2bfk4JrGJBJFk37MR06xTsUc2fUXxpiS8s5eZjEFOP2qd4OOxEIXOhywNzCLYzhZzxdev2qd+mEG+BKsjljoEqC2cynjxXjRkrCLg903dq5L8miyq29/2gEh9E0MqNVF0nRA3XLw8t1YVwTOMdV86srqfaeq/GXIT7vOef3uWNKkf186rVE4yzfYKKHoTNSOs1YQqGJXBep8oC6ZEmmzn2hvb2B/r6XugjUc8JZw9C6RhjYIoB2MyuQlqIYaFZDN12k5v8DTdNBbnZd4HkRmHe86WXjR8vPVTMzEEbF+CQaTHBdBYjPLB980TqPgxsqO4oObzN03noIlQtP6todUZY/Pe1kUrNIWpSg6nK2S4tHooYo61/0Z0n2qk60SRsLGu1KoPwHqq1lV4pYOHQ3QSPDxCmunhKmLn4ZcpDcuQuiVDCREcSd2W18FbNY3ta6uzxY3KAMFCn0y0joI6nraKXE4NtDkgn7lYMQ/BWXHe/K2cF1EvPDalGSazw765X153yjAw54fuK8cMjA== X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: SN6PR10MB3022.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: f769a0be-3679-4a21-d8e8-08dad228f7a1 X-MS-Exchange-CrossTenant-originalarrivaltime: 29 Nov 2022 16:44:21.6763 (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: Ox/3d3yn0B4Ww701y+UceTlOs5LcpcvB25iaF6pkxSEcosoNXdpTq0ECw/8q5inFTYJhHpEJlrnMjbVGNotQXA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH0PR10MB5321 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.219,Aquarius:18.0.895,Hydra:6.0.545,FMLib:17.11.122.1 definitions=2022-11-29_11,2022-11-29_01,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 adultscore=0 suspectscore=0 phishscore=0 mlxscore=0 bulkscore=0 spamscore=0 malwarescore=0 mlxlogscore=999 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2210170000 definitions=main-2211290093 X-Proofpoint-ORIG-GUID: o2JD8iLMVvtAMqeXFaX0d501FSwV3e73 X-Proofpoint-GUID: o2JD8iLMVvtAMqeXFaX0d501FSwV3e73 Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" From: "Liam R. Howlett" Add wrappers for the maple tree to the vma iterator. This will provide type safety at compile time. Signed-off-by: Liam R. Howlett --- include/linux/mm.h | 46 ++++++++++++++++++++++--- include/linux/mm_types.h | 4 +-- mm/mmap.c | 74 ++++++++++++++++++++++++++++++++++++++++ 3 files changed, 117 insertions(+), 7 deletions(-) diff --git a/include/linux/mm.h b/include/linux/mm.h index 8bbcccbc5565..2d3a49ba2261 100644 --- a/include/linux/mm.h +++ b/include/linux/mm.h @@ -664,16 +664,16 @@ static inline bool vma_is_accessible(struct vm_area_s= truct *vma) static inline struct vm_area_struct *vma_find(struct vma_iterator *vmi, unsigned long ma= x) { - return mas_find(&vmi->mas, max); + return mas_find(&vmi->mas, max - 1); } =20 static inline struct vm_area_struct *vma_next(struct vma_iterator *vmi) { /* - * Uses vma_find() to get the first VMA when the iterator starts. + * Uses mas_find() to get the first VMA when the iterator starts. * Calling mas_next() could skip the first entry. */ - return vma_find(vmi, ULONG_MAX); + return mas_find(&vmi->mas, ULONG_MAX); } =20 static inline struct vm_area_struct *vma_prev(struct vma_iterator *vmi) @@ -686,12 +686,50 @@ static inline unsigned long vma_iter_addr(struct vma_= iterator *vmi) return vmi->mas.index; } =20 +static inline unsigned long vma_iter_end(struct vma_iterator *vmi) +{ + return vmi->mas.last + 1; +} +static inline int vma_iter_bulk_alloc(struct vma_iterator *vmi, + unsigned long count) +{ + return mas_expected_entries(&vmi->mas, count); +} + +/* Free any unused preallocations */ +static inline void vma_iter_free(struct vma_iterator *vmi) +{ + mas_destroy(&vmi->mas); +} + +static inline int vma_iter_bulk_store(struct vma_iterator *vmi, + struct vm_area_struct *vma) +{ + vmi->mas.index =3D vma->vm_start; + vmi->mas.last =3D vma->vm_end - 1; + mas_store(&vmi->mas, vma); + if (unlikely(mas_is_err(&vmi->mas))) + return -ENOMEM; + + return 0; +} + +static inline void vma_iter_invalidate(struct vma_iterator *vmi) +{ + mas_pause(&vmi->mas); +} + +static inline void vma_iter_set(struct vma_iterator *vmi, unsigned long ad= dr) +{ + mas_set(&vmi->mas, addr); +} + #define for_each_vma(__vmi, __vma) \ while (((__vma) =3D vma_next(&(__vmi))) !=3D NULL) =20 /* The MM code likes to work with exclusive end addresses */ #define for_each_vma_range(__vmi, __vma, __end) \ - while (((__vma) =3D vma_find(&(__vmi), (__end) - 1)) !=3D NULL) + while (((__vma) =3D vma_find(&(__vmi), (__end))) !=3D NULL) =20 #ifdef CONFIG_SHMEM /* diff --git a/include/linux/mm_types.h b/include/linux/mm_types.h index 500e536796ca..faff2cc005c9 100644 --- a/include/linux/mm_types.h +++ b/include/linux/mm_types.h @@ -819,9 +819,7 @@ struct vma_iterator { static inline void vma_iter_init(struct vma_iterator *vmi, struct mm_struct *mm, unsigned long addr) { - vmi->mas.tree =3D &mm->mm_mt; - vmi->mas.index =3D addr; - vmi->mas.node =3D MAS_START; + mas_init(&vmi->mas, &mm->mm_mt, addr); } =20 struct mmu_gather; diff --git a/mm/mmap.c b/mm/mmap.c index c3c5c1d6103d..8f24021ef5b5 100644 --- a/mm/mmap.c +++ b/mm/mmap.c @@ -144,6 +144,80 @@ static void remove_vma(struct vm_area_struct *vma) vm_area_free(vma); } =20 +static inline struct vm_area_struct *vma_iter_load(struct vma_iterator *vm= i) +{ + return mas_walk(&vmi->mas); +} + +static inline struct vm_area_struct *vma_prev_limit(struct vma_iterator *v= mi, + unsigned long min) +{ + return mas_prev(&vmi->mas, min); +} + +static inline int vma_iter_prealloc(struct vma_iterator *vmi, + struct vm_area_struct *vma) +{ + return mas_preallocate(&vmi->mas, vma, GFP_KERNEL); +} + +/* Store a VMA with preallocated memory */ +static inline void vma_iter_store(struct vma_iterator *vmi, + struct vm_area_struct *vma) +{ + if (WARN_ON(vmi->mas.node !=3D MAS_START && vmi->mas.index > vma->vm_star= t)) { + printk("%lu > %lu\n", vmi->mas.index, vma->vm_start); + printk("store of vma %lu-%lu", vma->vm_start, vma->vm_end); + printk("into slot %lu-%lu", vmi->mas.index, vmi->mas.last); + mt_dump(vmi->mas.tree); + } + if (WARN_ON(vmi->mas.node !=3D MAS_START && vmi->mas.last < vma->vm_star= t)) { + printk("%lu < %lu\n", vmi->mas.last, vma->vm_start); + printk("store of vma %lu-%lu", vma->vm_start, vma->vm_end); + printk("into slot %lu-%lu", vmi->mas.index, vmi->mas.last); + mt_dump(vmi->mas.tree); + } + + if (vmi->mas.node !=3D MAS_START && + ((vmi->mas.index > vma->vm_start) || (vmi->mas.last < vma->vm_start))) + vma_iter_invalidate(vmi); + + vmi->mas.index =3D vma->vm_start; + vmi->mas.last =3D vma->vm_end - 1; + mas_store_prealloc(&vmi->mas, vma); +} + +static inline void vma_iter_clear(struct vma_iterator *vmi, + unsigned long start, unsigned long end) +{ + mas_set_range(&vmi->mas, start, end - 1); + mas_store_prealloc(&vmi->mas, NULL); +} + +static inline int vma_iter_store_gfp(struct vma_iterator *vmi, + struct vm_area_struct *vma, gfp_t gfp) +{ + vmi->mas.index =3D vma->vm_start; + vmi->mas.last =3D vma->vm_end - 1; + mas_store_gfp(&vmi->mas, vma, gfp); + if (unlikely(mas_is_err(&vmi->mas))) + return -ENOMEM; + + return 0; +} + +static inline int vma_iter_clear_gfp(struct vma_iterator *vmi, + unsigned long start, unsigned long end, gfp_t gfp) +{ + vmi->mas.index =3D start; + vmi->mas.last =3D end - 1; + mas_store_gfp(&vmi->mas, NULL, gfp); + if (unlikely(mas_is_err(&vmi->mas))) + return -ENOMEM; + + return 0; +} + /* * check_brk_limits() - Use platform specific check of range & verify mlock * limits. --=20 2.35.1 From nobody Fri Sep 19 02:32:03 2025 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 7B68AC433FE for ; Tue, 29 Nov 2022 16:45:07 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S236106AbiK2QpE (ORCPT ); Tue, 29 Nov 2022 11:45:04 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41322 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235987AbiK2Qof (ORCPT ); Tue, 29 Nov 2022 11:44:35 -0500 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 4E0A854B36 for ; Tue, 29 Nov 2022 08:44:34 -0800 (PST) Received: from pps.filterd (m0246627.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 2ATGPitT017353; Tue, 29 Nov 2022 16:44:26 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : references : in-reply-to : content-type : content-transfer-encoding : mime-version; s=corp-2022-7-12; bh=MeWAgNHkqtDGHNJyVDaXVgFTDWgD+IXgAuiuBpJtiEA=; b=2crd6MODmo0wIt7NRa0JXs2csMz5W5gzOHvkbc030KwdUpw+0DsNqvo74GJrhbh5TRNF IOfbHRKIZCaLVIVR6FGoYUzTNZMwsHBXUcWKEfBApwO1HRLVsdK72PzE1kiO1GJaozx7 G68EEPl1GpFAUAQZVdzeLDt75+NiAQagEZQukE6248w4GX3gzjcsgdQeNchLuZ6q1EYj ZdBc6GN+vJAmcuDSqjjzZY4eWig+DL+n1QW7gMvd6Yxhvf1WB+aM8MnAu28AfZa9Loi/ lF4qeox+Pqaa8O/qvCuufotU0nKG8D2Ni2hEozc0fFocA2Jhf0bhpZg3s2IwjD50Uhr9 IQ== Received: from phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta03.appoci.oracle.com [138.1.37.129]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3m3xht6hm5-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 29 Nov 2022 16:44:25 +0000 Received: from pps.filterd (phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (8.17.1.5/8.17.1.5) with ESMTP id 2ATG7rBY030968; Tue, 29 Nov 2022 16:44:25 GMT Received: from nam10-dm6-obe.outbound.protection.outlook.com (mail-dm6nam10lp2109.outbound.protection.outlook.com [104.47.58.109]) by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 3m398771pv-8 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 29 Nov 2022 16:44:25 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=jhBK03iYD64DzTBDGNiniEqkPXyU0JlGmsG59bFcqmtVmvhImmJyo4TytJ13NDkl7iXzF3Biz9/ve2JVGWbJeXvKoDGT8TVSDIdzTQkJHBkdDS1ztkWaXJYdozBX6uXrTugQMBxFsv3FMGMuknjVs7HQM0O3nk2K9CnnBIqeTGhhbWq/VJjXW3GTEO5fkBuwHcRylzt63Zj4g5Csadqi4gnalY3En2mlmGPou3r/hZKAJaGHjAEpGf3d4l06nae1RczAit6pMsDom5x/2xHJO2urChIYS/ySbJIw94OIJNJOaN5GlOkRuWbVRocVrNJFE1ni81ASxJuKcJBfrMqafw== 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=MeWAgNHkqtDGHNJyVDaXVgFTDWgD+IXgAuiuBpJtiEA=; b=C0VRugfMEvfKTplWtpeJVwa7AyJR9Gg70YxsKWv27I/U2VozQIh2xVshyhx69mraJGnvkAz8j755KvyZzdXjMnHKqmxxtBFa33gHO58PXoN1znI2MnmTiGbXSedAjNNMERR+s+804axO21n+3T2QxvJ09Ac8qOjaN0/kbCZytx+dhdJB111Ri441yBxnuvIa9K09KlodiyXnk3sck0eToQFlR8pPEdTI5rLwrbAMyKgQwl6hFGmiXJEqxiI/ThdUscS0grHPJtnbFlyO1On1/TVHGQoUk3YT+ZoP3LCX8JckEImVc6z0yQEdaId9ellOGq4yRn4jn1bfmoBvIurWeA== 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=MeWAgNHkqtDGHNJyVDaXVgFTDWgD+IXgAuiuBpJtiEA=; b=bPQ7Xamf0A6cS4yN6VeJ/0IfxqnDiCdRxImlC8lL8M+dczTarI3SI5BaK9x6nVv1FCMa5spMk/7J4AlZwqVZdDrqyZfB3g/EORqjeSrm4irRe4tkdagCoOZi9NdevJQRYcLD6cgaSAgPU1EWkU4faIwyCcr1RTW4nt0vjYJyh8E= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by CH0PR10MB5321.namprd10.prod.outlook.com (2603:10b6:610:c9::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5857.23; Tue, 29 Nov 2022 16:44:22 +0000 Received: from SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::a02:2ac8:ee3e:682]) by SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::a02:2ac8:ee3e:682%4]) with mapi id 15.20.5857.022; Tue, 29 Nov 2022 16:44:22 +0000 From: Liam Howlett To: "maple-tree@lists.infradead.org" , "linux-mm@kvack.org" , "linux-kernel@vger.kernel.org" , Andrew Morton CC: Liam Howlett , Liam Howlett Subject: [PATCH 06/43] mm/mmap: convert brk to use vma iterator Thread-Topic: [PATCH 06/43] mm/mmap: convert brk to use vma iterator Thread-Index: AQHZBBHVFu3dWvklbEa+O/yWENlnqg== Date: Tue, 29 Nov 2022 16:44:21 +0000 Message-ID: <20221129164352.3374638-7-Liam.Howlett@oracle.com> References: <20221129164352.3374638-1-Liam.Howlett@oracle.com> In-Reply-To: <20221129164352.3374638-1-Liam.Howlett@oracle.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-mailer: git-send-email 2.35.1 x-ms-publictraffictype: Email x-ms-traffictypediagnostic: SN6PR10MB3022:EE_|CH0PR10MB5321:EE_ x-ms-office365-filtering-correlation-id: 6ce2e79b-72c3-4316-230a-08dad228f7ee x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 8XURLunfrUz9TAb/p++Ph5h6UoaPIDBO3DZcZd4xloEWu4zMvXcL1ACyqUpNwefqGx4XcCj98bn2s7oah1VpJlkK9LouSoSPqo9snzVlPcklmHgJhk+pFNEh03CYl4q1TNJh1rlIULVQfYzxphgH67OlEzVWhXvZRcKX3dhsxFr1zSaVIs/CVRrgoLsaZjrZT3RNqy+F701e5eNDlXpc0JFTc1sZBwwQMdCBJg/2GkE8zus9seVwVrotHPtGBCC8TCuL9m9GEtqeEV1vnBVt+0rsGgjzIAUNw0znn4T8uZnRaY5zE/u27deu9yQMsFQVkcODdtuI4c2LAd4XgpRNyK3OVzl9F3v/AFRc4I1HqPS7SnrGTQM8A0BWz/eCpSltSpN5ajt9A3iGFIQRbPCvHshbXs1sRQiDDF/kUMfKRu8mBRD9H1G9+ymPCUPolt/Ihv3AP2N0E0j9SSw8yEPMdZR0bfTnnLN2xnlexBFGw9oTedWauwzfZqrUmpYfiy8PvIrqKKDzj+9ivEML0vSeewF0uMqFoM6QJrorgpKNe41M+zYo5W6N5YImXt5WGlLOGTfOVb4etuHlR0z9oVFOmMmsnGODINcHvyaMKgnQzqoDFumqV2xWboZDUZo+aazhwpqrYXIpaxlfEVB4D+Ng+7bMXQYWxRWzGLMh2iJYvJGpPYMNqfmVPrEALf4wWgWSSHY7NM8otgxu22qfowYNrg== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SN6PR10MB3022.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230022)(136003)(39860400002)(346002)(376002)(396003)(366004)(451199015)(83380400001)(54906003)(71200400001)(6506007)(107886003)(110136005)(6486002)(86362001)(36756003)(38070700005)(6512007)(38100700002)(122000001)(2616005)(26005)(1076003)(186003)(8936002)(5660300002)(66446008)(478600001)(44832011)(8676002)(66946007)(66556008)(64756008)(76116006)(66476007)(41300700001)(4326008)(2906002)(91956017)(316002);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?Q?pCmVH57N45iy43sy8oQOv5ucsDYOAgihgp9614grIX6RMOyLPKbOXZHpKP?= =?iso-8859-1?Q?y0OFbIxWfuPkj2vaeHsJh7aTYTi/saC68CBfrJyMNZ+JloNR4DbsYlcZHt?= =?iso-8859-1?Q?M2WM4wNKIhzXNxo81Ep65Gg8U7ti7BUxDHPAs1+/IvlcudAzvyfarb98JL?= =?iso-8859-1?Q?gwVl8kGv5OeiqsGDjYzSpBMmuDhFKoxs5xezNp9a8NpzIZQEnb+yzMay05?= =?iso-8859-1?Q?+lKVaF9f2zwD8AGt+mtHJ86AbYdxutDk6qTIiKZhUxD83IsQO0M3gi+7Xg?= =?iso-8859-1?Q?PSDbWUCmjFVyUi2ZxEtadvAezj/QbbO9Vc8Xi0bffvjmiku6l18wQqUqjC?= =?iso-8859-1?Q?Yuu+iZtb5maUxOEPdy9TIbD4LyeLbSgtmEKNNg3868eWTk9hS1Ws+W5pbT?= =?iso-8859-1?Q?/HCrLb9eQQ6liFivNK5Co09FkSZRK0kch4l2RpJu0QPZYQajXUCOeGesBk?= =?iso-8859-1?Q?FpUYGk9XnmGOSKGRCMe9uN2pWY11Z7O/vpnunHgFCN7w3hb0Gzec1aBaN7?= =?iso-8859-1?Q?O1hiD3xwLGcaaN5UrVs2qMA3sIgxXJMZ/dbkyurIcY/jUxXqJk2Vy5LMSc?= =?iso-8859-1?Q?cIkbw+2QV8dlLQ+Qg+7Fyp5gVB/RkTLK1WjDPC41XSkK7bQwy5XtWPpBUf?= =?iso-8859-1?Q?wB6CYYE2oWDWrrcDHywQOuO4GOkDJt4tiHUe6oBMKm/ptBeN45wTvN4uCY?= =?iso-8859-1?Q?jHC3X7wZr3Wq3tV8QREC6+CmnP9can7SQc2CisvaxeLJ5u4+dAfiMIujsc?= =?iso-8859-1?Q?NqPUqE8HFzxX7TeMJ6W7+6QsFteVbaFLFUdSyoWkIOiELUIm/W9vJw3smW?= =?iso-8859-1?Q?HmNxAbeBdydHewhJ4VcVtx86KaXUXp77FfhW2AvKTAvFocHTdQoBdLNVrR?= =?iso-8859-1?Q?OWGQu+tJ7NH6fWcbXnNvL2RAGbgjpz1sWz5aBzSgw5lYSZ0bJgzalYB6AT?= =?iso-8859-1?Q?V05pN+1ccxp8W/Nve0Fye5rscIUU17Ui57JfqX7UCAefRFKZ+h0oqx9CsJ?= =?iso-8859-1?Q?1rEEBE2cvlLda2BgrlNk6aL3w9tEJmidCsHH+V1LSDa1/EH0NugjURsQ5F?= =?iso-8859-1?Q?PPTOfKzzI3NY69uVgQN5+EUdVC6kX1EcN7ekvQ3uD9qrj6r2JsqFI95r8f?= =?iso-8859-1?Q?nkT1PmfhnFjetgZXlZADZOQo/uQq8f8uqtzXdBkpFGKYlA0En1XoguQRB2?= =?iso-8859-1?Q?updQV9HwDeZjF8aZ9rk+bBhd3LZwAxUg++ZsEmj2ol5sqv2lUKE5zUgshm?= =?iso-8859-1?Q?6haMA8O6/Pxx251FxVZHCSn90bG9Gi3WCHlozM3a9siHWJtkexVcqzzQOT?= =?iso-8859-1?Q?v347SZ7ANdkNcIkrFfZCIV2y895O0rqWR59lKny1I1RR1b9+PeTCNXeTzk?= =?iso-8859-1?Q?xtotEC5eTx5EEbLa7Xj/V5Eponuz7rYBpjY51bLVtJJRPmfbGbOTNpEhHj?= =?iso-8859-1?Q?j6pNg3AbaRYO91m/U9xwQ8Xa6tmjF9AxqBH7PkA00btademnCMn62BJw9v?= =?iso-8859-1?Q?cRwwNLy0H0KNlIRKwPbk8WRRiVG1x3LEGEipPt4wd7dI6tNBu8WxDv/sFa?= =?iso-8859-1?Q?Ksw0fcM3/KRNs4VKs4Kh7xLupjUvECoG2Nu13sSEGfP/JeQdv+x7Jivb7O?= =?iso-8859-1?Q?FvLZApWHs6Psydc8RlpFElL+H6Irq5ARtFA57hiRuZtJgGYbGx3OpzVw?= =?iso-8859-1?Q?=3D=3D?= Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: H4aOooYZd7rgR7GnDGckBxxK8Biw0zi1f8ImB9dU6IkgEFfmJVl4l7R+FiH7wQItKL2cS/3mQMGRw7mCu61ietPEhYx1BXYmsjjXL6gIYFDRoHqdW7CdXKo2c8jyCCxq7f/RK1+R9dC6Ju6unMWyX5V004vJt6Z2/rtwyrIosS2K1ZUwc6i64gkv5WxcxI9icTDlu7xov6LvQoIjSw/EvIwBVSrNRfSxQFs0P4A3WdD2O2RWVixn0uJwmn/rGu/Z/EAJUGx9TcHBUQNqcM3u5VCSb27BpUtGOHiLEW3RcZZcNjG5ZDoN1SZQOO3khDlbzGBnyLdtHj1iU3nWv3FwtlyKj96Ko3/5BAyERGww4bYF+atszE+ktygJpiuUBKfuIQlSMrEwEWAO7+YBfUw0g90F/uO/38MkiBajK919XFiBc2PYbXS6aql+m34fH7e/g8SJrkC9AVbU0h2nb61X9F2mVN7qWhhElU/nDNr1wqA4W4TcSZSVoS//4NUSTxHLBgX5Ci/aLos0J5Lm3t7GzdhwvJmDR7+Qz111o/P3UA8JPfxgKkzUE9A1hM7ARYOtDfsClI2eYQVu0Fq36k5C+Zrn8Zu3wjl4cFD3jApNMvt/gWPZPCqyvOHErh1p/Y2HJU66c6s5wA+TxQ3v99yyyFMJQHW/m4qi9E3/F2DIe3O3THFxY2Ey0rbpJmwYhtlHtOV3fMV7qcptLSxMGV4OBFW9qXoltvyAsXTiHjXgmmK1ABgEVvzjbKJJcOgJV+/9js14bhMYePAEu0cNNC9vxqezulCgBR+PFIEq2wkkUm5QKZ5HdjpwjMfxVB2slbKv8tXHDIgSNYQt2rgYSfzqUqE3uJV6zglMCsWgRGsMk/C+GqoEyJ4OxT0EWsjzZMiFW/SFeNdZMuwTHOw16z1r2A== X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: SN6PR10MB3022.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 6ce2e79b-72c3-4316-230a-08dad228f7ee X-MS-Exchange-CrossTenant-originalarrivaltime: 29 Nov 2022 16:44:21.9731 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: GNpQh3du73d3RKlFEI43Dy2Wi9Z6+//fJ0MfmiaVFl1/JNfeZBbERKW1TGdYTb9/Gr608HohNlowv/AaZVRIvQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH0PR10MB5321 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.219,Aquarius:18.0.895,Hydra:6.0.545,FMLib:17.11.122.1 definitions=2022-11-29_11,2022-11-29_01,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 adultscore=0 suspectscore=0 phishscore=0 mlxscore=0 bulkscore=0 spamscore=0 malwarescore=0 mlxlogscore=999 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2210170000 definitions=main-2211290093 X-Proofpoint-GUID: ZJOK3fIHbsUjKiuNJxOvZNNUsJC_NrXf X-Proofpoint-ORIG-GUID: ZJOK3fIHbsUjKiuNJxOvZNNUsJC_NrXf Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" From: "Liam R. Howlett" Use the vma iterator API for the brk() system call. This will provide type safety at compile time. Signed-off-by: Liam R. Howlett --- mm/mmap.c | 47 +++++++++++++++++++++++------------------------ 1 file changed, 23 insertions(+), 24 deletions(-) diff --git a/mm/mmap.c b/mm/mmap.c index 8f24021ef5b5..054dd3e8e1a4 100644 --- a/mm/mmap.c +++ b/mm/mmap.c @@ -236,10 +236,10 @@ static int check_brk_limits(unsigned long addr, unsig= ned long len) =20 return mlock_future_check(current->mm, current->mm->def_flags, len); } -static int do_brk_munmap(struct ma_state *mas, struct vm_area_struct *vma, +static int do_brk_munmap(struct vma_iterator *vmi, struct vm_area_struct *= vma, unsigned long newbrk, unsigned long oldbrk, struct list_head *uf); -static int do_brk_flags(struct ma_state *mas, struct vm_area_struct *brkvm= a, +static int do_brk_flags(struct vma_iterator *vmi, struct vm_area_struct *b= rkvma, unsigned long addr, unsigned long request, unsigned long flags); SYSCALL_DEFINE1(brk, unsigned long, brk) { @@ -250,7 +250,7 @@ SYSCALL_DEFINE1(brk, unsigned long, brk) bool populate; bool downgraded =3D false; LIST_HEAD(uf); - MA_STATE(mas, &mm->mm_mt, 0, 0); + struct vma_iterator vmi; =20 if (mmap_write_lock_killable(mm)) return -EINTR; @@ -298,8 +298,8 @@ SYSCALL_DEFINE1(brk, unsigned long, brk) int ret; =20 /* Search one past newbrk */ - mas_set(&mas, newbrk); - brkvma =3D mas_find(&mas, oldbrk); + vma_iter_init(&vmi, mm, newbrk); + brkvma =3D vma_find(&vmi, oldbrk); BUG_ON(brkvma =3D=3D NULL); if (brkvma->vm_start >=3D oldbrk) goto out; /* mapping intersects with an existing non-brk vma. */ @@ -309,7 +309,7 @@ SYSCALL_DEFINE1(brk, unsigned long, brk) * before calling do_brk_munmap(). */ mm->brk =3D brk; - ret =3D do_brk_munmap(&mas, brkvma, newbrk, oldbrk, &uf); + ret =3D do_brk_munmap(&vmi, brkvma, newbrk, oldbrk, &uf); if (ret =3D=3D 1) { downgraded =3D true; goto success; @@ -327,14 +327,14 @@ SYSCALL_DEFINE1(brk, unsigned long, brk) * Only check if the next VMA is within the stack_guard_gap of the * expansion area */ - mas_set(&mas, oldbrk); - next =3D mas_find(&mas, newbrk - 1 + PAGE_SIZE + stack_guard_gap); + vma_iter_init(&vmi, mm, oldbrk); + next =3D vma_find(&vmi, newbrk + PAGE_SIZE + stack_guard_gap); if (next && newbrk + PAGE_SIZE > vm_start_gap(next)) goto out; =20 - brkvma =3D mas_prev(&mas, mm->start_brk); + brkvma =3D vma_prev_limit(&vmi, mm->start_brk); /* Ok, looks good - let it rip. */ - if (do_brk_flags(&mas, brkvma, oldbrk, newbrk - oldbrk, 0) < 0) + if (do_brk_flags(&vmi, brkvma, oldbrk, newbrk - oldbrk, 0) < 0) goto out; =20 mm->brk =3D brk; @@ -2964,7 +2964,7 @@ SYSCALL_DEFINE5(remap_file_pages, unsigned long, star= t, unsigned long, size, =20 /* * brk_munmap() - Unmap a parital vma. - * @mas: The maple tree state. + * @vmi: The vma iterator * @vma: The vma to be modified * @newbrk: the start of the address to unmap * @oldbrk: The end of the address to unmap @@ -2974,7 +2974,7 @@ SYSCALL_DEFINE5(remap_file_pages, unsigned long, star= t, unsigned long, size, * unmaps a partial VMA mapping. Does not handle alignment, downgrades lo= ck if * possible. */ -static int do_brk_munmap(struct ma_state *mas, struct vm_area_struct *vma, +static int do_brk_munmap(struct vma_iterator *vmi, struct vm_area_struct *= vma, unsigned long newbrk, unsigned long oldbrk, struct list_head *uf) { @@ -2982,14 +2982,14 @@ static int do_brk_munmap(struct ma_state *mas, stru= ct vm_area_struct *vma, int ret; =20 arch_unmap(mm, newbrk, oldbrk); - ret =3D do_mas_align_munmap(mas, vma, mm, newbrk, oldbrk, uf, true); + ret =3D do_mas_align_munmap(&vmi->mas, vma, mm, newbrk, oldbrk, uf, true); validate_mm_mt(mm); return ret; } =20 /* * do_brk_flags() - Increase the brk vma if the flags match. - * @mas: The maple tree state. + * @vmi: The vma iterator * @addr: The start address * @len: The length of the increase * @vma: The vma, @@ -2999,7 +2999,7 @@ static int do_brk_munmap(struct ma_state *mas, struct= vm_area_struct *vma, * do not match then create a new anonymous VMA. Eventually we may be abl= e to * do some brk-specific accounting here. */ -static int do_brk_flags(struct ma_state *mas, struct vm_area_struct *vma, +static int do_brk_flags(struct vma_iterator *vmi, struct vm_area_struct *v= ma, unsigned long addr, unsigned long len, unsigned long flags) { struct mm_struct *mm =3D current->mm; @@ -3026,8 +3026,7 @@ static int do_brk_flags(struct ma_state *mas, struct = vm_area_struct *vma, if (vma && (!vma->anon_vma || list_is_singular(&vma->anon_vma_chain)) && ((vma->vm_flags & ~VM_SOFTDIRTY) =3D=3D flags)) { - mas_set_range(mas, vma->vm_start, addr + len - 1); - if (mas_preallocate(mas, vma, GFP_KERNEL)) + if (vma_iter_prealloc(vmi, vma)) return -ENOMEM; =20 vma_adjust_trans_huge(vma, vma->vm_start, addr + len, 0); @@ -3037,7 +3036,7 @@ static int do_brk_flags(struct ma_state *mas, struct = vm_area_struct *vma, } vma->vm_end =3D addr + len; vma->vm_flags |=3D VM_SOFTDIRTY; - mas_store_prealloc(mas, vma); + vma_iter_store(vmi, vma); =20 if (vma->anon_vma) { anon_vma_interval_tree_post_update_vma(vma); @@ -3058,8 +3057,8 @@ static int do_brk_flags(struct ma_state *mas, struct = vm_area_struct *vma, vma->vm_pgoff =3D addr >> PAGE_SHIFT; vma->vm_flags =3D flags; vma->vm_page_prot =3D vm_get_page_prot(flags); - mas_set_range(mas, vma->vm_start, addr + len - 1); - if (mas_store_gfp(mas, vma, GFP_KERNEL)) + mas_set_range(&vmi->mas, vma->vm_start, vma->vm_end - 1); + if (vma_iter_store_gfp(vmi, vma, GFP_KERNEL)) goto mas_store_fail; =20 mm->map_count++; @@ -3088,7 +3087,7 @@ int vm_brk_flags(unsigned long addr, unsigned long re= quest, unsigned long flags) int ret; bool populate; LIST_HEAD(uf); - MA_STATE(mas, &mm->mm_mt, addr, addr); + VMA_ITERATOR(vmi, mm, addr); =20 len =3D PAGE_ALIGN(request); if (len < request) @@ -3107,17 +3106,17 @@ int vm_brk_flags(unsigned long addr, unsigned long = request, unsigned long flags) if (ret) goto limits_failed; =20 - ret =3D do_mas_munmap(&mas, mm, addr, len, &uf, 0); + ret =3D do_mas_munmap(&vmi.mas, mm, addr, len, &uf, 0); if (ret) goto munmap_failed; =20 - vma =3D mas_prev(&mas, 0); + vma =3D vma_prev(&vmi); if (!vma || vma->vm_end !=3D addr || vma_policy(vma) || !can_vma_merge_after(vma, flags, NULL, NULL, addr >> PAGE_SHIFT, NULL_VM_UFFD_CTX, NULL)) vma =3D NULL; =20 - ret =3D do_brk_flags(&mas, vma, addr, len, flags); + ret =3D do_brk_flags(&vmi, vma, addr, len, flags); populate =3D ((mm->def_flags & VM_LOCKED) !=3D 0); mmap_write_unlock(mm); userfaultfd_unmap_complete(mm, &uf); --=20 2.35.1 From nobody Fri Sep 19 02:32:03 2025 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 41766C433FE for ; Tue, 29 Nov 2022 16:44:48 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S236059AbiK2Qoq (ORCPT ); Tue, 29 Nov 2022 11:44:46 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41288 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235927AbiK2Qod (ORCPT ); Tue, 29 Nov 2022 11:44:33 -0500 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 225284218E for ; Tue, 29 Nov 2022 08:44:33 -0800 (PST) Received: from pps.filterd (m0246629.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 2ATGPpWJ012335; Tue, 29 Nov 2022 16:44:27 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : references : in-reply-to : content-type : content-transfer-encoding : mime-version; s=corp-2022-7-12; bh=npaeva3yIdYG5SBveLvD0fvT3geOkeCIKlC3QjmSuE4=; b=aKtGEhtT1ioD0mPD1sj++CojNHLIZpi7nVjpXVORcc196ehkMEbIiIj/koI1/zf5IvS2 n2Tt/C+3afToTqfFu+J1r1D/bsqcJLimktVWjp9CJqli+6R1Ug34frcQrG9MYJNGZlsX N+MPIvhtdf+FVkjrH8sHocyj6WD0pOwtL3KIBTwZ3dMpriGQMzwSezHg6NVLBGoJLJR+ b6GX4HgviTvxZPAKprw+lNk46oK6na6KnU/qRCKpVuIlr+6YrNgygWFvXJLQShk9EXAg xPkvYsmpZrtEmyqqIm+N44lszTH0e7PNWXabdPVrWJbtgJGwx9u8eFQcN7CDL1ugTFuP xw== Received: from phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta03.appoci.oracle.com [138.1.37.129]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3m4aemdn8k-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 29 Nov 2022 16:44:26 +0000 Received: from pps.filterd (phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (8.17.1.5/8.17.1.5) with ESMTP id 2ATG7rBZ030968; Tue, 29 Nov 2022 16:44:25 GMT Received: from nam10-dm6-obe.outbound.protection.outlook.com (mail-dm6nam10lp2109.outbound.protection.outlook.com [104.47.58.109]) by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 3m398771pv-9 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 29 Nov 2022 16:44:25 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=DL5w1iLytWiHuRPQNSXGAtW3ANgFzXC2hD2jYQBskU26kwjjOOJwp2ZcfIB2pRCSG5G8plgvxqy6KmwyP6WufS8Z16k7ixuooA6HXGAximmWa2s513OTxMU1Ketg6GOUOiKbkLH/4jL/FHRegruUA6BYxD5ACvoc1u1YRVWKKFlOAQwK2DMwhtI8fXu0Z+1ASHbmK1CsKL+7EB2RXJgoIVwirE4wPOc49rrg3Mx23O+4rr969d4ZDcLYn50EPjZLFyv8a/TZryJr0b0h6hhoYGwgFJPIRKIZA8ffXNJyX9A9vfWoZGTxlG+2LebevDjwpuzAZD7gZWUJO4/k6HplHA== 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=npaeva3yIdYG5SBveLvD0fvT3geOkeCIKlC3QjmSuE4=; b=S/7VXbx9VdrOp6OXho50J3hkNoEKQ2tlN1MF49GXnCvNY7JPz6Ting3CyQOFoi7CTRkTmZMg30vepSaZhpKqsWNGWKKxCrg5X9655E6HZprfHHD9Oomk1irNg1mN9/NcgbQmu5VZJdDGJSL8Laim/9rArP4cgW2VQvJalj/GRM8IY+aOOQhlhvOqjxYL/HBJqyeZ7Cr2V9/uIjGAYNO3c20C5Xut6sd8XC4ZtMpgvZV2PCFCer0fEcFvwkw2ZhIYMkU8QycBWcGNkcNXVOqLuuQvgTeDXuGloZtcWhOiMAATi1nMKx7AkMLbYDVsmEzxQExZonzmtOBEuJCRE/o3EA== 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=npaeva3yIdYG5SBveLvD0fvT3geOkeCIKlC3QjmSuE4=; b=lJVIUlB8v2EAZ2O/rWbOjYdvTeo3OeO8VRXg9czMQdCBgXLxUW0qB2dGbDB9Yx5Ck5v5DOtiGt2lb03IOh3TmG6MIsj/abmnDSZR0uSFJK+ohSVtnJJIT9X6kVPEVob+WIxDwi6HX0spV2bPWLoUtAUxQxLAMgnoQtWSKFH1zvs= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by CH0PR10MB5321.namprd10.prod.outlook.com (2603:10b6:610:c9::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5857.23; Tue, 29 Nov 2022 16:44:23 +0000 Received: from SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::a02:2ac8:ee3e:682]) by SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::a02:2ac8:ee3e:682%4]) with mapi id 15.20.5857.022; Tue, 29 Nov 2022 16:44:23 +0000 From: Liam Howlett To: "maple-tree@lists.infradead.org" , "linux-mm@kvack.org" , "linux-kernel@vger.kernel.org" , Andrew Morton CC: Liam Howlett , Liam Howlett Subject: [PATCH 07/43] kernel/fork: Convert forking to using the vmi iterator Thread-Topic: [PATCH 07/43] kernel/fork: Convert forking to using the vmi iterator Thread-Index: AQHZBBHV/4X7tCg9AUalJ/KmEgTD2Q== Date: Tue, 29 Nov 2022 16:44:22 +0000 Message-ID: <20221129164352.3374638-8-Liam.Howlett@oracle.com> References: <20221129164352.3374638-1-Liam.Howlett@oracle.com> In-Reply-To: <20221129164352.3374638-1-Liam.Howlett@oracle.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-mailer: git-send-email 2.35.1 x-ms-publictraffictype: Email x-ms-traffictypediagnostic: SN6PR10MB3022:EE_|CH0PR10MB5321:EE_ x-ms-office365-filtering-correlation-id: d96387f9-b395-459a-584d-08dad228f846 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: Oost/JN1CJPON6IWkTC5EZiXTyCaHR4+QmAsk1wNpqLRPnj6qwtnN7ix0N5xjNY4uBvyUiiygfT8DJUBfdWb30y8YDcw1/D59SLGOunLJ7hSI43wUWNuHowdhHfATyvAnBSTbSOuSnty2v6FTKGWykfWc4ye5xUcMu9lpfwkfSgvcIPqQcdDdK/5KacRPiB+uWvQlRaldmXYWeUThFmxX0Rw+HZrnYCsu2nan6sRjZJHjtnK9B+QVC2Av++RpYUHQBGxcMu7KBnF0VSXVT6iwP2gEtMwT+HlVGKde5lOlwbEigxMshnvx151i+NV8F+JEK/SDbUcNOKeubS6yYr0VXM3EPh/fyd2CgdyFfxrcj+mPZWE4k+o2+6WBRW61I8BCKPWHWEGVVZ7zOMXrVWxY40jDRF1A8HaUdTwsDi2Szb9ESnidj+9lOYTTbPzhhTJqftwuQpw18P707y9xi75BgsyiXJ2P33oNTKLFjyG2aWmWHKqpNWmHZYfFfrikH57+MZF6RpNmDl2mWx+t+0GLSm1Q/TNGrm4hyU1eDqYcI/6+kyONMbIST4Q+rXjR2n1HUhVc6bnEUBr3NgdoAph+7aA+rOz6FRGIQAub4YDL+EV0rwjb5XmNSM041mG9sfNYDuOBHCEbunEItgbicU+ehY0WKOJzNObcZG1QJOHv7FFKOIztaaS1YHp1tFdb+L5tremeNnjVfyzo6qXXBEPaw== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SN6PR10MB3022.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230022)(136003)(39860400002)(346002)(376002)(396003)(366004)(451199015)(83380400001)(54906003)(71200400001)(6506007)(107886003)(110136005)(6486002)(86362001)(36756003)(38070700005)(6512007)(38100700002)(122000001)(2616005)(26005)(1076003)(186003)(8936002)(5660300002)(66446008)(478600001)(44832011)(8676002)(66946007)(66556008)(64756008)(76116006)(66476007)(41300700001)(4326008)(2906002)(91956017)(316002);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?Q?UQqTbqFU7kBz7JhGRgPxmJd0GKtfaGOQ/Jjn+meKWpLdT7g9KWIvhtPMV+?= =?iso-8859-1?Q?NgihQ2BCcIPD2X7n8UICDY6NFQGV9XtiGgMcZHpE5xcuyiwRDqWpeMuH4f?= =?iso-8859-1?Q?OneDb0wCyO/OFh93JqLToTPatmhYd7M8l202iiabHlZjAFL5n2ICU7ozOj?= =?iso-8859-1?Q?dc4v9cbjInlaL1YMPQ0UHoASPCeRzEcKGa2vVPJWosLsnzGgcUrusyBF+C?= =?iso-8859-1?Q?JeaxChbt70ut5iqMY7ZixbRkc7MAH3CS8OJJ4UEz0GzW4wFVjtxBut+7lu?= =?iso-8859-1?Q?RKrKhmr4T/uJpt6AWYasbr31WDNBrMJsuMsq5ZK7w8TyGrwYQmDpbJW1NI?= =?iso-8859-1?Q?NTjwAeGAixiqO5QRdKB2XOIrkbmJCfVMeJxUUQIXgr6+ECi+btLohTTjDJ?= =?iso-8859-1?Q?uvCdC5n1OmxkmJrfMLJTJ2WE9Ed1xDzu06JBqgUE6UXrgbI2BgeB66SvuH?= =?iso-8859-1?Q?Em+2uC773mWcHYBMK03wFZIChg7Pb05h6ONMTz/rPX2L5PVxg2/XKpUqmm?= =?iso-8859-1?Q?vpSNK0JCiVZKXDUETaqvwZ3LqU1hc/gymZ6shbrQBC++7q1V+z94eF5RbM?= =?iso-8859-1?Q?U+4C/15LQ/RbqxwSsAkvvDJ8bJUcSD8haaqYjCRaSBBZTeUxyhLtXAjoPN?= =?iso-8859-1?Q?ILADS4ha1TZzLbvbx9iNdGMQ+xPlkkZ9mGZ4TleQbVekvfstzzwkHD4WJS?= =?iso-8859-1?Q?WsI1PDSaaDgLr7UHZJFksOR6oonwDxLFbVG6crsU8Mm6AkRsj67Ar2lyor?= =?iso-8859-1?Q?YhaaxD50rp1rrayUvtWRPUFj26Txklf41DMfLsA7kfW7B5ATqxIQIZ4/QT?= =?iso-8859-1?Q?Nd1ydMLNbGNTbbB/CjRK/GOkznAGKAsYGbhdGHPKNmW0RP+yHoAGOyhQlP?= =?iso-8859-1?Q?zNUezN5dYrojH+O09zTG2ALczB0RcyV1X1Wf9KgG8XYQzQl/GSiFsUixiU?= =?iso-8859-1?Q?iRhfYZ5SKTl3SCEIyfTh5hFN0/4SJk2QHN7JubADMIR7l7ZPRmjAaLDVk9?= =?iso-8859-1?Q?MvtxP5gMYdRgJReirb3/H/YpjugBLFr4tG+oEV3bThI4l4PFNcSVymEsbB?= =?iso-8859-1?Q?MuUB+avbAK0ifdC7ocRxr/bITMPTtIYFVU8x37y8sUrR2ue6bd+DcOK6fm?= =?iso-8859-1?Q?89y74dizyLQdp8kipMqgbEJwmiFcbuTd63YUEY+jxCr1cJVfQm01LI7taP?= =?iso-8859-1?Q?3BQQt73DwzTenSp9YWUtOavCEBo84RmdUrl8Jg2MqO8fKW6RjrVsBMF9nS?= =?iso-8859-1?Q?brqQJHVRO2xfZMAN/zbkMxqDd7eEGYmcj+TOUDUzLgGLSOHUD/TDAl1SYD?= =?iso-8859-1?Q?xKsO1Pb0NVuVoS82joUVXfF7YJDhC9W22jVOOC+Y4K7t0QbDkcNXHqmVsZ?= =?iso-8859-1?Q?AK/tyi7WGuMClDhnvwIRlgka1DmoXdVIaAX9ssFZ3Du/yVctyKUK33uKX9?= =?iso-8859-1?Q?Kg1jAfFwckiMb0/jfxxBu2VsKC1WiSwTF3rjskG5w9/lZfKr2PKhESSpvw?= =?iso-8859-1?Q?hCddPTlINjKHnj+1z7N/5CPtZuJplUzeV3+mzDPiwGRwYbE3T9AoGTZZ4J?= =?iso-8859-1?Q?oCr9r4hQWkiC7Et7jQh9Mr25vMISoZAbqA/kqS9o/wT9kdG5Nl3C63CPJx?= =?iso-8859-1?Q?bzDwAIf5hmGXq5XT7c/0QtSLqjBUK53zQu6buIq9jMOY0CUIsHqAb+2Q?= =?iso-8859-1?Q?=3D=3D?= Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: oceUuwWq/2lYvphwiaJve5qCGLubNC94pW37IkxocFeAoRLzDL7RyfRjS23n85nOQB024/f7L/6ORy7t+2Q+gSANEJcFok6iIra0l45jwKfhP3BDNpWfqmWZbJbGuKwTXtmhyAMg9GuInNA1EQcTH32J7e2Mv2g/A6bTX6bb6IT4rxukC/HgDycKkpLce4tYfWnjnhzmEjCXIl9mwBVsDB1q9l/kqXMd0LRg5rPt72GcfI5GffAww+brGtIU8dQQzPzd/90G6CwvDl0vR8bp/8lcub881BcLnmDBz1SinuLc6J+wDUf/oQ5CwM1SNNcJeKq8POqqZUyMt1rUioCYcbhiTzAhmKkzRpbxOzhc20nPoyWpuXPwC3m95KYBD+AP6RR83wwte0TFJkkTXpzsrKvtX9HumrzaTjg4y2zW1NszaOgYY5mI4KQZR2paCRIo863dyVIKMIyAHnP2HrzDM4kRHCEz73wo608ZWgR4sjS2/E+nev0vIobrNhnTpGu4G+jpavt/To0/KtJYXKjVbm21I0s1R9dvNs7WqIhHJpeFafJxeE4FNJb8V9DcQkx3MGm7Hlf7y7T2/Yw6DCOAX10FR6WD2IEZONd+w4tjgo4ipyMqNyPRrWupeUia9SGQinC2QQy5S+Zv6qAGG8TGIyth1nsanZnu3f0SC6hdsbLHJxcZ/xy84qPrgDvV0EJGqxqdUdmMPrI4Drr5rAkj4aKi3whEFsMSxbGammawVErAzfx0xBe7yGQmcyHkcdtO2nk/tuBMIQUe5QmyTaYWOtn9lmEV30ijBiSDvXlVXyhL2Ae3v4v6D5hyQLCeAW1InSzpaMMtXgTOkAt7l+HYLSjTNyaBQmsBKOgYvqlspQ8X76BuiK+tEpVKElYNHVCts5FdN2m5VG26QeOyuex7gw== X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: SN6PR10MB3022.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: d96387f9-b395-459a-584d-08dad228f846 X-MS-Exchange-CrossTenant-originalarrivaltime: 29 Nov 2022 16:44:22.2700 (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: YeMczfJzM9w0IfwVYBAAy9CkAwSro4c2HKMpgRAkc1ZUxfrAckGIJBGOUHcY5rTD4x0ZUm0ME6lg5o77a04Snw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH0PR10MB5321 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.219,Aquarius:18.0.895,Hydra:6.0.545,FMLib:17.11.122.1 definitions=2022-11-29_11,2022-11-29_01,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 adultscore=0 suspectscore=0 phishscore=0 mlxscore=0 bulkscore=0 spamscore=0 malwarescore=0 mlxlogscore=999 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2210170000 definitions=main-2211290093 X-Proofpoint-ORIG-GUID: YRiXdIcGMduUsBiMt76TWNkvxZkf0l_g X-Proofpoint-GUID: YRiXdIcGMduUsBiMt76TWNkvxZkf0l_g Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" From: "Liam R. Howlett" Avoid using the maple tree interface directly. This gains type safety. Signed-off-by: Liam R. Howlett --- kernel/fork.c | 19 ++++++++----------- 1 file changed, 8 insertions(+), 11 deletions(-) diff --git a/kernel/fork.c b/kernel/fork.c index 08969f5aa38d..12f59021ff5d 100644 --- a/kernel/fork.c +++ b/kernel/fork.c @@ -582,8 +582,8 @@ static __latent_entropy int dup_mmap(struct mm_struct *= mm, int retval; unsigned long charge =3D 0; LIST_HEAD(uf); - MA_STATE(old_mas, &oldmm->mm_mt, 0, 0); - MA_STATE(mas, &mm->mm_mt, 0, 0); + VMA_ITERATOR(old_vmi, oldmm, 0); + VMA_ITERATOR(vmi, mm, 0); =20 uprobe_start_dup_mmap(); if (mmap_write_lock_killable(oldmm)) { @@ -610,11 +610,11 @@ static __latent_entropy int dup_mmap(struct mm_struct= *mm, goto out; khugepaged_fork(mm, oldmm); =20 - retval =3D mas_expected_entries(&mas, oldmm->map_count); + retval =3D vma_iter_bulk_alloc(&vmi, oldmm->map_count); if (retval) goto out; =20 - mas_for_each(&old_mas, mpnt, ULONG_MAX) { + for_each_vma(old_vmi, mpnt) { struct file *file; =20 if (mpnt->vm_flags & VM_DONTCOPY) { @@ -680,11 +680,8 @@ static __latent_entropy int dup_mmap(struct mm_struct = *mm, hugetlb_dup_vma_private(tmp); =20 /* Link the vma into the MT */ - mas.index =3D tmp->vm_start; - mas.last =3D tmp->vm_end - 1; - mas_store(&mas, tmp); - if (mas_is_err(&mas)) - goto fail_nomem_mas_store; + if (vma_iter_bulk_store(&vmi, tmp)) + goto fail_nomem_vmi_store; =20 mm->map_count++; if (!(tmp->vm_flags & VM_WIPEONFORK)) @@ -699,7 +696,7 @@ static __latent_entropy int dup_mmap(struct mm_struct *= mm, /* a new mm has just been created */ retval =3D arch_dup_mmap(oldmm, mm); loop_out: - mas_destroy(&mas); + vma_iter_free(&vmi); out: mmap_write_unlock(mm); flush_tlb_mm(oldmm); @@ -709,7 +706,7 @@ static __latent_entropy int dup_mmap(struct mm_struct *= mm, uprobe_end_dup_mmap(); return retval; =20 -fail_nomem_mas_store: +fail_nomem_vmi_store: unlink_anon_vmas(tmp); fail_nomem_anon_vma_fork: mpol_put(vma_policy(tmp)); --=20 2.35.1 From nobody Fri Sep 19 02:32:03 2025 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 8E3ADC4167B for ; Tue, 29 Nov 2022 16:45:00 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S236090AbiK2Qo5 (ORCPT ); Tue, 29 Nov 2022 11:44:57 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41320 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235986AbiK2Qof (ORCPT ); Tue, 29 Nov 2022 11:44:35 -0500 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 998065A6CD for ; Tue, 29 Nov 2022 08:44:34 -0800 (PST) Received: from pps.filterd (m0246629.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 2ATGQ1w6012682; Tue, 29 Nov 2022 16:44:27 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : references : in-reply-to : content-type : content-transfer-encoding : mime-version; s=corp-2022-7-12; bh=5xSt577sJrGE35wg57zTEbehUeim3s8boc/TbUBInTU=; b=l/dpp3adRAn24Tci609cemCa3rVO5zVaNXhxo9sv1AtY6LGWf9shvvm3F9B3WiCFhLgt HBTYueXbM+624Qs0MfbS03Ax+4rQoBvJQeq5wK5o1diStvktebglMkrlhHNICg+e9CNI PHC7XPeooX7RN43rObGGmu65g9wV2gQhXqQsWxZovQODxpHMU8jpvO3LWjBrbiCwUCTC 7OEVjlXdRI1shOTzsoiWjUjQ22VFtFrrUpl35ghWB9C6acSrK/x4I3EjTFzPnPgW8HNb cpSUyS9ZKoMGEx6Xcz8+l8MVuJMw05f4DOCbIRe78BkM7ZbzOSxT1zhf/kscWuNmNWRm eQ== Received: from phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta03.appoci.oracle.com [138.1.37.129]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3m4aemdn8n-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 29 Nov 2022 16:44:27 +0000 Received: from pps.filterd (phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (8.17.1.5/8.17.1.5) with ESMTP id 2ATG7rBa030968; Tue, 29 Nov 2022 16:44:25 GMT Received: from nam10-dm6-obe.outbound.protection.outlook.com (mail-dm6nam10lp2109.outbound.protection.outlook.com [104.47.58.109]) by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 3m398771pv-10 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 29 Nov 2022 16:44:25 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=eFyoSXUz6njhhXl/+QJ/ZISu81pXvh7GyYFnlerrJTqwyFGFbdGF1hqt/83p+Zl2MFiycAimx5O+PZJlsngHlceBUo/FyR0/LqO6Dg5lSKuohqalpKIJxRqT5e7+H/yjwHpfyfC0xPjxr1LBeq9bR9S+gbnYMqrrlbxo7LLuXhXD0QI3kell2Q+D2vGXPudgWeh2q7JZ7/qJQfvgR1ygKTX1pww2dnfsNEPKCtmKLCgb6LLlrR7luRy7b+fzOcvVsyVS5yJ9oBFls7oOTdPrHumevYbsa9oE52yM2slulurfj2ggQSWmEXgcQU1qfL+aC3e3yf87PC98ebNUcb27LQ== 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=5xSt577sJrGE35wg57zTEbehUeim3s8boc/TbUBInTU=; b=QwOslEeb4w8GA1TnUzi7zmt+hQzzL1hfOdbJD5UAeJHRWSDkBwl5tvTZRmbD5XyMpGF0mqxod+lOIHFtRiAS+Xck3BwVG6GQDdbNAn3/aqxm8gdzvcTvDRLXg9J/4SnVbWzLt0XYeENqaYSyKKaEpgCK0ps1Pe/yfFGA6j9zfQ8Jsm4YmKfAo1fp0fDK2xeeCbQUrzqPBCFjX6x7hI8FmMHDoFN7ePk1i13AOpp4rgUOIQTsjNcNQxxF7c+XreZdCfE6cjpFVEOEXO/Zu7n0+pgMd4gLzPInEMUrykXGk765kin1dm0H3O5UP2HWxn/Xg2mUGxe13+wtocOAV7LtOg== 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=5xSt577sJrGE35wg57zTEbehUeim3s8boc/TbUBInTU=; b=KIa9Efp/O+ccKs/OzhY32rTxZYpxxLNcBUqybkCgv+fIoK6EjO53tfs9o/6Cyv1Btzrg6pS0Z9dj4IzmzLbZktYjtZd1ee2TIyY6jdna5RDNRtIOolNCp6TuwREML1nsHF4iwrLOb34G9zwMFwtGHk3ceevsFIdIJQwN0yhXnZM= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by CH0PR10MB5321.namprd10.prod.outlook.com (2603:10b6:610:c9::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5857.23; Tue, 29 Nov 2022 16:44:24 +0000 Received: from SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::a02:2ac8:ee3e:682]) by SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::a02:2ac8:ee3e:682%4]) with mapi id 15.20.5857.022; Tue, 29 Nov 2022 16:44:24 +0000 From: Liam Howlett To: "maple-tree@lists.infradead.org" , "linux-mm@kvack.org" , "linux-kernel@vger.kernel.org" , Andrew Morton CC: Liam Howlett , Liam Howlett Subject: [PATCH 08/43] mmap: Convert vma_link() vma iterator Thread-Topic: [PATCH 08/43] mmap: Convert vma_link() vma iterator Thread-Index: AQHZBBHV/qxb8hfaW0mrYzN1uC2/SQ== Date: Tue, 29 Nov 2022 16:44:22 +0000 Message-ID: <20221129164352.3374638-9-Liam.Howlett@oracle.com> References: <20221129164352.3374638-1-Liam.Howlett@oracle.com> In-Reply-To: <20221129164352.3374638-1-Liam.Howlett@oracle.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-mailer: git-send-email 2.35.1 x-ms-publictraffictype: Email x-ms-traffictypediagnostic: SN6PR10MB3022:EE_|CH0PR10MB5321:EE_ x-ms-office365-filtering-correlation-id: 0b226934-9448-4338-5f0c-08dad228f913 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: zdheizxuji+WFp9c94Pag54ZcZWAeia/J7+j2BERFnNGuZ2efw5cizY4XD36YlUqiJ7xVgYyPC0x4UaGpUIgoPcetk5858zXB943u4tnzPg4KtPKmCHT4nBkTWiJLbVxXUF/90qWFjsxc3iBB7BKbGWpFgPESsGU9SUo2YstVsGNCrOKq0QwcJUtYvVXdgwRAUNDWOnlUdBxMbkt1ePk3HjBCDZEJuIwiFf0R7q/BbamANlcI91uL2GhPMOYGEtHWqosMoK1l35KFGHNEOsKjAqcrelP/3pZeGyiMGeuM1ZUg4/yyGDeFGyyEDuaFNWb1L+TqPpVlcqZveYqzCyNgcj7n9u4gMu/AyOYP1to7Rcmk9Vgghu4QzhAjPkGayDgjEnxGRpkln4nRb7Fl3XHOwLKIqZNhuNkvGdUI1OIfnyQojf4KFmTGh6CACRsJNF7zdRbrFvcelHI2owmS4MslL9fUSLO2qzZgdNKzsIWAv0Y4sgnGeM35BFAPb4ghGF+oQQXboVuzFszm7HjQBBGCyhFBHNF+GVF3htBnT7zG+aR38PdxoQotLzxHvbEfi34XmT3nXgstm9va3KUiN8RfM6HTpuKu7UfJkcX9L00WUSLNrPghExw7qVho3jYLC2ef6V5YR3oQWWCLhj+JXMzrxav7GbXM45aKHl931rv0EtuUskPmK5ZS61RYofhXdT5eP4phpjIrahX9hW1Y/OxAQ== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SN6PR10MB3022.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230022)(136003)(39860400002)(346002)(376002)(396003)(366004)(451199015)(83380400001)(54906003)(71200400001)(6506007)(107886003)(110136005)(6486002)(86362001)(36756003)(38070700005)(6512007)(38100700002)(122000001)(2616005)(26005)(1076003)(186003)(8936002)(5660300002)(66446008)(478600001)(44832011)(8676002)(66946007)(66556008)(64756008)(76116006)(4744005)(66476007)(41300700001)(4326008)(2906002)(91956017)(316002);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?Q?+0m6aSLuRWweLJ95mThtfJZVwpV2NxzaBvMgTQE+eu4/k8rnBlOIbqM7tS?= =?iso-8859-1?Q?ujnuJ6YOLq3V+wBNpbNuNJF2I+966h2FFBpiJlfEnImLmwUEbKbeP8aUXh?= =?iso-8859-1?Q?7zSTdf5OhPny4ZHrMmKU3SsZQBlr6vAstqHrWQQOpksOHAE8j+rkLwgHlx?= =?iso-8859-1?Q?08gU1MtY/EH3lmqEq/vL21lOmj9APC7uwkcEft0cP/LXqfolke3Inz4FEe?= =?iso-8859-1?Q?dhliWVo/+HqTs/NRaKLi43pMuEnC9wbhlDL3CipFOg+uXoGBXxsl+ZpHnu?= =?iso-8859-1?Q?X8WxoD7JYt0yqT3qoGFDNJqjfyn6vV1+j6xDifdMwl3ROVBQFJwRHpU3ze?= =?iso-8859-1?Q?RWrU6ZoLvV0xmrYuh2mVYYnphylM28A451rRTjoaYA1e1HUWkTbFSADAkN?= =?iso-8859-1?Q?SRvirvynt32Qk/IbLXxbT+ITj1oIMdFmQxkKdFmoNIdDxDFNamPHgME2dD?= =?iso-8859-1?Q?+mn6UGgyI47TrPzBhtkM/zLqh5hMpUmsRNQjLRhheOftVJkuOSc4+HvCV5?= =?iso-8859-1?Q?tuRRLY6DuVRQozXKGlREUh6Ox9vhIfsH8LxElogO82UsVYFmXMR22uUYNu?= =?iso-8859-1?Q?1Z5Pgjw7JvA7y5Pbbx/sz8cDYsrjG5F3mxzR6T3UVpFbGeBI9SBRkvowSV?= =?iso-8859-1?Q?lERTLxJO0J1Q2O0kdj/WjBfUWt4zAT6lF9xmWkLXtCXr+dNvBFGw5wmIdH?= =?iso-8859-1?Q?bsJeyCJ8PLUHra8+0WvAnrvudlEGeWVDkpuhoY3PvDHzdwpyGH9v0uxTGi?= =?iso-8859-1?Q?AdStTbrmiXk6b87a238vnyDHqaaUWOp1ibzVyHAk8HaudlebmUYEyVOIoF?= =?iso-8859-1?Q?CGN9d/tpqyNJzHzraTz3gMLTw3qOZ8CdqMBMGiH5XtvbzBH4YEThcMvn5j?= =?iso-8859-1?Q?z7oP8LnH+L+kdwpxgz7E22khy3UjiKVFxGdGHCoo+bMUJBGi/hEKRXhRTy?= =?iso-8859-1?Q?i926UzOM1iwXDt1Ru7Tw3zEXxeMiTroH5OaRRHuQd+cCXZMB7j+ZS9rBav?= =?iso-8859-1?Q?Yyh4SsBlXTeYl7eflG4yigs7lFMDcnqR7hKTMpPsxx/viwT8aJtFNONbDS?= =?iso-8859-1?Q?K2CRNhWyqKDYhNY9DhanaviKfB71w1ji3qWxOqojBUQgwXJhS5k78YOlAO?= =?iso-8859-1?Q?KeyQQNv7fCu9DCKO5BxxkMvG4yy5E7pBIdqwra0HV7yQzemi+dHxTLHVLm?= =?iso-8859-1?Q?iyUuTOORi186EH36sc0qXD9BBaVRe3lgpFgcKrgS/p8L7QfY94IG5UCJy0?= =?iso-8859-1?Q?wcKmyc7J4bXNMLlhnRml+7P++0yExuKNdNnuZFC/tn3ai5e8DNKvIjshNy?= =?iso-8859-1?Q?vIj+CO4Zf+5oUSM3DkeqM57tyfPyL8JDo/SVu4l1yBbHCVRTVeovw560Rn?= =?iso-8859-1?Q?9VtsC4MTyxBGG39dBD012UiW2PC3Thw8sYdAznD6+4bHFhBOHc/HidTrDx?= =?iso-8859-1?Q?TmO5ZJT4SKALz69NfGfrurWUmluD4gB1CKXRiwz9rVZ4xP39aqQgEceCbO?= =?iso-8859-1?Q?cgehqrp2vDFhdT1/9RCfONd0Jbl44a/DV4UEayQk+KSl1Ntjcunp+lNEoR?= =?iso-8859-1?Q?gtQFvztpC575YRw2NjdJBVo8Soj8eBi0lp6i7mkXUkHBHmXiUNUT2DO+iW?= =?iso-8859-1?Q?UEV1N2K7tOfQvQcbZfs3NHEdtN5VS4yOcs8VU9X5s3F5pzjTatISDSXw?= =?iso-8859-1?Q?=3D=3D?= Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: o44Kz5LXSGMRP7vSHHRMM7cUEvCFcN5MY0Iw5TZnO14zqTZwD7zpFYdDT6LJGkv8FvGVutZir5KrxyABRj/KwM6tA4Qsi4b7lSXq+5KP2I5mdRgKCRv5v0D+82XNJoOnKU/tmOD5Zm7utCww71t9TFSwDQuZ5AidmeudLJdLDfzCT6JojUjNApbRV+KwwK5ByoL/lqnRnD0YLOBw0JXWuQ69wAMqJw59TeZhYrhdoX168AKRV6W5xyeRC7RZZ0gRNY3ex9tWG2LBoqGH9EeZjF5zSiKnYC8VquwiK8r89NApcgePnBTh6As59nRlahBvK91a8C5x3Xk6onKuv97ItXYBK9I2cu626LixNPKHaPBjUdR1HiV4hvirAf2iLz9epbLl+PUBj3jiHArsguvCN5IhQ9H9hF738bCWyOX1JdJ+L7fQTSuivIZXCNCzOM+dqL+MPanvRFxnZM7upZK6KkuKHsUmo8kUI840VB2Z2gfU/tu3fUdRUPPSS/VIkDfJbWMSio7Iw7A/6MKn+EXF2TC1Y6bEjFEShf3yHgP8WKN6/cu5rYeIdT7T63pTr+tx9cpQnEZptAgcw5PK/4i1MZFaVSIub4a22xNDwRkcY1nhPDP/Cgfuhjl1CkfdUWIS4zKEVTjb97ZElK6h4TGBmv+02OSG7g/CXKRUVPOV7TNKjcNuaRpa66hySaib4WhthmgLWwaXEwJb2+zuL/OCfnfVmuvh73qufPPBPBbPvIAjOYOg8Muqj9Lq/Gr7IKhlTU7fOlNQSQ8RxTR1gVYWwhxW2ibNf3yRViEPyQT+v70Zx7jBMTEhESpW0D0n0bTGI/1oqxeBzgeTjVSYR6yLrIHYolFycrxMEg1ewO/c6jTQ4tDeKxIxq2ofD+MdMtDeBEQuRZ39DKAQbUR/5Ai7mA== X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: SN6PR10MB3022.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 0b226934-9448-4338-5f0c-08dad228f913 X-MS-Exchange-CrossTenant-originalarrivaltime: 29 Nov 2022 16:44:22.7231 (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: jl/X0OtJaNV8+GsNB/ylK/8GDHpbTJhFYt499QpdlLLnmSAdiaiCgkjAbYJXUZ7d36afu9h5ePxFOJp0exZBpQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH0PR10MB5321 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.219,Aquarius:18.0.895,Hydra:6.0.545,FMLib:17.11.122.1 definitions=2022-11-29_11,2022-11-29_01,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 adultscore=0 suspectscore=0 phishscore=0 mlxscore=0 bulkscore=0 spamscore=0 malwarescore=0 mlxlogscore=999 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2210170000 definitions=main-2211290093 X-Proofpoint-ORIG-GUID: RYnL5ElEcVukgYrzWcFWq1T9vOPa7Wsf X-Proofpoint-GUID: RYnL5ElEcVukgYrzWcFWq1T9vOPa7Wsf Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" From: "Liam R. Howlett" Avoid using the maple tree interface directly. Signed-off-by: Liam R. Howlett --- mm/mmap.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/mm/mmap.c b/mm/mmap.c index 054dd3e8e1a4..f4568a25d2dd 100644 --- a/mm/mmap.c +++ b/mm/mmap.c @@ -544,10 +544,10 @@ static inline void vma_mas_szero(struct ma_state *mas= , unsigned long start, =20 static int vma_link(struct mm_struct *mm, struct vm_area_struct *vma) { - MA_STATE(mas, &mm->mm_mt, 0, 0); + VMA_ITERATOR(vmi, mm, 0); struct address_space *mapping =3D NULL; =20 - if (mas_preallocate(&mas, vma, GFP_KERNEL)) + if (vma_iter_prealloc(&vmi, vma)) return -ENOMEM; =20 if (vma->vm_file) { @@ -555,7 +555,7 @@ static int vma_link(struct mm_struct *mm, struct vm_are= a_struct *vma) i_mmap_lock_write(mapping); } =20 - vma_mas_store(vma, &mas); + vma_iter_store(&vmi, vma); =20 if (mapping) { __vma_link_file(vma, mapping); --=20 2.35.1 From nobody Fri Sep 19 02:32:03 2025 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id B53A8C47088 for ; Tue, 29 Nov 2022 16:44:40 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S236026AbiK2Qoi (ORCPT ); Tue, 29 Nov 2022 11:44:38 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41278 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S234899AbiK2Qoc (ORCPT ); Tue, 29 Nov 2022 11:44:32 -0500 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 75135421B9 for ; Tue, 29 Nov 2022 08:44:31 -0800 (PST) Received: from pps.filterd (m0246617.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 2ATGP2cP031397; Tue, 29 Nov 2022 16:44:27 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : references : in-reply-to : content-type : content-transfer-encoding : mime-version; s=corp-2022-7-12; bh=Y3yTzYobRiVKkYcwPyE7QTfd9+fEiEP874Vs7vrGzKc=; b=l8fzbzGKA9VeP807+HR0w3syK7SuKXZG0hK+52OzEel/88wPFgQF7mBYxK1Er6DWM5Am DPZEFTzyIMONqGFZzPLhOgIjkI2nsWqRjp8ni0V7yK2o+TqSKTSWoqKyGIu15jwc/TlX yZT4C1jlO50qgta84qJLDKijLlT731dN3SxB9T7cSqQxv4fNY1NsCUf2lC4dr2fiUa0N Pyezt8gs0W7D+ojuwrvxIMYjUDdfuBd9HrEOdzF7WL3D0mCF/MHxImZVpf+lhvVIXkYe eCyYEGTIK/tvR3xR1+kyyK6VeJ88BkGXYg7xCgl8xzjKeLcQthDvUKbx9WPQySpP0Fag AA== Received: from phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta03.appoci.oracle.com [138.1.37.129]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3m40y3xarj-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 29 Nov 2022 16:44:27 +0000 Received: from pps.filterd (phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (8.17.1.5/8.17.1.5) with ESMTP id 2ATG7rBb030968; Tue, 29 Nov 2022 16:44:26 GMT Received: from nam10-dm6-obe.outbound.protection.outlook.com (mail-dm6nam10lp2109.outbound.protection.outlook.com [104.47.58.109]) by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 3m398771pv-11 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 29 Nov 2022 16:44:26 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=hDIIe/q1C9mzI1ONVbllfaBuf871C5cbcmWoe2ow8zx4kE8IwBtrnMJ2XwL1b3Sc03jx1balWj44B1+Fi361ozmUaEjRKkyu+eORuWAVxYxR9FpKub95ObH67QKlkoMmrmuJS5wkzXJnpqkmKP/WwAdyaqcDsRx/pHjGyjgssk6sCt9wZNAOXNmPeAbNMABT0rgw//qfXEQRKjRfdqhPmQSQ6yk14Olv50rmIuvQow0lyGLcXsCBbter6zRBb5pqkbd+ZxTZF3HznNQZoZLTd3kj4HKTrhcoI4YWqnTCiwQx8mxeXSg2g0wXutnsBmtSyc/aU8ktP2+aUdOco0Vd9w== 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=Y3yTzYobRiVKkYcwPyE7QTfd9+fEiEP874Vs7vrGzKc=; b=RSObpKpiIPpVr7GxwQXyPgzqNbo0bLqe9UI4sc08FUQklfZqJRDsnwVi0NqqNM2cOHODlL11ru3UNP4mRNdLD37pFWyDqJDBq6Vpmmop8aaSphW8L3eXRChbjoY0scgpbHWViwXpG9HFJCXHWIcCgiQoFiAfOUN3EZ69tRgDhyMsryI7vF5MIgrubZS9bQOg7MNeNr8xSqHlY4YRpq0CyyNqdHjuuVvLN1uL3fdLmReqIL/R3IAuAkS48D8WyVrdLo7v/LEmquIGyzJP1DRH8+9ELItYYTV2ZzEMcLMECEIK2bTbYEKo9/EwAPnto/Aw9re/LLpJmZL2A45db8WmYw== 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=Y3yTzYobRiVKkYcwPyE7QTfd9+fEiEP874Vs7vrGzKc=; b=WlFCCRDlehRGT4X1OhCKdNdngCKEfcH0WPyw5P8gW+ZHIaxCbZzwukHNrWX5qo18ZSwBHiGWczwkjPHWQvMYh8szVLe8L+MITOH6x41NMqkKTuySq/Sz1W/JjEhx4gUnGG9TJWQc2K8d7Y0IYOB6APhV6VvC9+9s85b4tbn+mS8= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by CH0PR10MB5321.namprd10.prod.outlook.com (2603:10b6:610:c9::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5857.23; Tue, 29 Nov 2022 16:44:25 +0000 Received: from SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::a02:2ac8:ee3e:682]) by SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::a02:2ac8:ee3e:682%4]) with mapi id 15.20.5857.022; Tue, 29 Nov 2022 16:44:25 +0000 From: Liam Howlett To: "maple-tree@lists.infradead.org" , "linux-mm@kvack.org" , "linux-kernel@vger.kernel.org" , Andrew Morton CC: Liam Howlett , Liam Howlett Subject: [PATCH 09/43] mm/mmap: Remove preallocation from do_mas_align_munmap() Thread-Topic: [PATCH 09/43] mm/mmap: Remove preallocation from do_mas_align_munmap() Thread-Index: AQHZBBHVxPIDFGM5WEet77BCeDVVHA== Date: Tue, 29 Nov 2022 16:44:23 +0000 Message-ID: <20221129164352.3374638-10-Liam.Howlett@oracle.com> References: <20221129164352.3374638-1-Liam.Howlett@oracle.com> In-Reply-To: <20221129164352.3374638-1-Liam.Howlett@oracle.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-mailer: git-send-email 2.35.1 x-ms-publictraffictype: Email x-ms-traffictypediagnostic: SN6PR10MB3022:EE_|CH0PR10MB5321:EE_ x-ms-office365-filtering-correlation-id: 45ce288b-7e37-4b77-9470-08dad228f96b x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 6WsBY74hgrIgLgMC22L3w/g/8CR8zCrNL0tWy2470ynowJkZP9vAVWq133YKZVgHgBKem1t3tcAXocAP4+TzbAdQqbZyPtXyuPjQeaRTsMxFiqaNIzBwjmUBWbV0loznVc1byKNumAQVVdTs8H5iv57zuRIG2NK8BbOtcPgw87ugbft7yHk1RzIq9R985suU7C45TrHC+Tj/lM1aIyBjhwzjusnUam75S7+kLTpneqTcNSWAiflJ0c0FZ3q4WKyLO0JvPYJNz3av5q13PX1A8D+59ynGM/babVcg5+dLsK24J1ZEuxSogldLqyjXFZqaSnmnYfZPz0tgjNM3VkHtPzMo+ZtR4iGe6GH0YBH/gDjxPkIuaB7DMC5UkPtDiiGfgQSA0UgiNxON+nizC/VDC9CwUQ4VPHmJA90Ctdg8sNksmacwQmGLXgBo2wcCtvylGfgWb/bzJauwb3YkTNaa/XrOmW5FuBjq3MG8VbHJ4vWvr8KlBNjbOU220cjptiJjirC+u/oDq0ggS2vXvh2FtvJJRssQRR53yCvTQ0tO+klHjRYgekH6/Rb5hL0fV8/z12lJ5pGuHctbM+OjtH5mmvXZPn4wg/og5vi5Zq5JVocCR2YAHZSz+SjZCL6aRl8dzHLrGCtuPUk1UtnaZOe491wEeDqP5PnkGhLwEV1wSM63nKlXQO9l2xk/2y7oqo0jN0dAZSM9lsYoiNMImCeuRg== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SN6PR10MB3022.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230022)(136003)(39860400002)(346002)(376002)(396003)(366004)(451199015)(83380400001)(54906003)(71200400001)(6506007)(107886003)(110136005)(6486002)(86362001)(36756003)(38070700005)(6512007)(38100700002)(122000001)(2616005)(26005)(1076003)(186003)(8936002)(5660300002)(66446008)(478600001)(44832011)(8676002)(66946007)(66556008)(64756008)(76116006)(66476007)(41300700001)(4326008)(2906002)(91956017)(316002);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?Q?byJRqC1P4vz429QosKeOAT7BL4YADTmRKj4DSIiPvIH4Q9OVaYw7IJzsGI?= =?iso-8859-1?Q?nOFb4Tmb7O8JUKBadzh9fa18rDK1Qcyb783TDT/LvdtkQGY6GqxFdBTKkw?= =?iso-8859-1?Q?juEWAi+L00TE5xNT19udwym7TMRSyKazQfewRAh05H9tiz54InrZ1/y8od?= =?iso-8859-1?Q?viWmj2TE94NliJUvle3wLOHPPbGnjUS060CpDH6ajpGQfrL7oLLx7oF6x1?= =?iso-8859-1?Q?WUpunDfV13dSTBT8xFRCSnFuHCrob/nNkVFoJTG3ZDfa76tDoGXtvsp6Gv?= =?iso-8859-1?Q?pKEoNAnDjVI49E6ZlSlugyOoG6FQCExrsUobBYNhe7ACLfrVNfi8SILAuk?= =?iso-8859-1?Q?d4b83VHIu73kJXVB9a9Tizk/leuVVmNqZyYeIJG0NQz2h96MUFYJ8OG//Y?= =?iso-8859-1?Q?QmbnZuPnnygVXK5PVB/Ggjw07Kpd9Z3FujV8GiGR0y63BfwdmIL/Haxfr/?= =?iso-8859-1?Q?6u98NgfQjbe18jlPTCsM+3w7VHtmfgWzvJ4i7yjh4kDR0svDNXy7GMhvYB?= =?iso-8859-1?Q?PsBx3wum1qoZghPC7VsssU/5kO7BFR3g4x9crTSRP2bOQTznA/wDCM+ETv?= =?iso-8859-1?Q?6juO7ERyu/KCRT1KbmWKrQbvSETAnrwAM6rIXh5SBW2wPQ7O+YedShHgxq?= =?iso-8859-1?Q?VUFQp9vzHM/fLWlFvCtY/YZWenak+x4BY8jH6XxWMr6RTCLQzzBhkldBQ8?= =?iso-8859-1?Q?w8yX8uEM2Kmv8ZFLFt6jSatuule7S3vugAEAYJjfA4MA++IEtOgGa5NaZg?= =?iso-8859-1?Q?/yk8iw7SXNQwh51lpy9ZmtJluyk/T3zKpJUYiRnFtbcO7yQ1hgHURdrJ5Z?= =?iso-8859-1?Q?k5Xa9cklzWU/qmOrZYpU9/xu7ZU++KnHnYG3kBpuTMAh+yyfH1JffXuBnf?= =?iso-8859-1?Q?lfOlCxdUqi9At+u/30QOqZFSwggv7wchMhtwMm65ocGpsbV7XF1yl1sNIV?= =?iso-8859-1?Q?E/yPCFbCEhlfZJ0vBMBeKC9+jLW3PtO1ng3lwy+IEolbXeVgD1Pvib2+2/?= =?iso-8859-1?Q?NNVJy+1lX/QFZrfY/KAHJyqFoA3mP7da+6EWsVCKOkdTQsK6q88VcnkwY9?= =?iso-8859-1?Q?1+hXZIjipBa9PTmI21qGtEVXL6SabfN8s+pNI1ahiRSfXgS2l8Vrzg57bW?= =?iso-8859-1?Q?f3hS/c9RPBn2WH49NjTqaO5FBkgKHI4ZAFl0mxAMDQZ6iy5K/38FK46W1m?= =?iso-8859-1?Q?HzAdMo0etuVD143we/D+PEtLwL+S5YsqT37fKc0WJhrcTU8uBshcM+WBZ0?= =?iso-8859-1?Q?/ASaLxinGikcSiKMFbMZo74OCAzY85naWst/LnQoRZF3I1xaH5WgaILZRv?= =?iso-8859-1?Q?lhaxea65gn/n7+Bo+Z682eeoKFnMRXXtPCc7OVwmS6qF387Xw1HIOCw3VV?= =?iso-8859-1?Q?9xjGtCQbyetVxppWzaWowuBOtdUePIf+QNhXGl6DP2U6p01HjcQmgBhu7O?= =?iso-8859-1?Q?Z3Gt30DcGYTTq/ycutAsHCKa9sH/meHSZ3bxFKcTSIQRnVQvXSnouQIWfk?= =?iso-8859-1?Q?G1zijjHxQa6s4S42ApCUuLsFAhKtsN2ViGczQTH3yHs+k6Ief5HAik7LBj?= =?iso-8859-1?Q?ZxEbQqkz3Sh7Li/NO6eoZ8xn+W9+y4TCgzsyuj3lzTuxmXLFegiIlGdx+q?= =?iso-8859-1?Q?LcEkD+orVHcqb3VvwhErJi1mYdOE+L3fYHQ+a2H+6+vIHf98wWOAjYtA?= =?iso-8859-1?Q?=3D=3D?= Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: sfKGwvk/SfuCzlKise/d9mOgj7MnYWV0qdr+MYFm/4NK+tSTCQNfhFeYX1yIfhE0iI9Kc16i/VgwyRelKQ/+nLDTyTSc30rZ2vmYqaaywYeGv+F2BhcFE2K6St9kffZYvJ/ueFIo2CIyFk8jTGEbUDNFxQ6Pd/HYbuxKJSGTB3DPdmEFSNl85CBn+7TwHt64+YObu6/CfCznMWUV7sjlK4SasWVEVyZU+oKdNUM4HIm0JA0R7E1dAzQdO1uqSXvHOk9VK0+rZrCs5cTIbO5s2C1cFmGYV4WixDVkj+HY51CxonmuCiFSMAT14uaJjRAZAYjm2zoojCT4MzEH6n1OmDPaCMTWhrPhTcuMn7jQHqQHWVtCdMeQCX+osGCPr0sRMKUJrQ2jzmmnu1W9BGnoTV2KGCsFO+cbkV+UDjgVmz7lI+2ODkk54CdPb7mDMzMqvPY2ZcggYBb0C1vhvL7Vwd16KP9dAOUgRC111b4qFYxCgXcVrs46RU25lSEEUwsCDHAMNdyd1CehjsOmhFN6AFK6CNLLUT2WL18vv61NOI0XCYmcPqWhNKgssMUGWGBUOs/0Ia+SFypMIF41FmFrSloJDRRWsJv2p1UncD1s8SutpbIlPd5v19vukBCpuxsnffP2hn4jUshyoh3v6ygb0TXdRw6kPQPlS2aMS+JfHOlGQgoJ5XJjbN2lK/0BmSWM9V4aK7BgAtwd/08xcfmIBJ0YUKW/xqjBQSmRDpoDDY20JEOKLskL4IigL+b+8KFs501V3IVTnGS6vViVmYW80YqJribWhoF7N6OTux2s8fvyItbVSiXv8g/ZmgdntBTB+riYhYhNE1opXjxpu9uZlhpNWmNDz7x2JogG9WrbRPirCy9ebYEx0e1ZsS3Vp3Gbk4ZqE8Tgp56M94be/M7nPQ== X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: SN6PR10MB3022.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 45ce288b-7e37-4b77-9470-08dad228f96b X-MS-Exchange-CrossTenant-originalarrivaltime: 29 Nov 2022 16:44:23.2230 (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: thrNU89uUsNtN+gb0Oar8qYmEcB/AYlXxy1vStvvX+Eb6SMbwEAEMOgjocCEAFn0dJPPkIBc141AQ5q1qL+PBg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH0PR10MB5321 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.219,Aquarius:18.0.895,Hydra:6.0.545,FMLib:17.11.122.1 definitions=2022-11-29_11,2022-11-29_01,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 adultscore=0 suspectscore=0 phishscore=0 mlxscore=0 bulkscore=0 spamscore=0 malwarescore=0 mlxlogscore=999 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2210170000 definitions=main-2211290093 X-Proofpoint-GUID: EuuLLvHrdjlbx6L0PBVookTm8wLaa6f2 X-Proofpoint-ORIG-GUID: EuuLLvHrdjlbx6L0PBVookTm8wLaa6f2 Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" From: "Liam R. Howlett" In preparation of passing the vma state through split, the pre-allocation that occurs before the split has to be moved to after. Since the preallocation would then live right next to the store, just call store instead of preallocating. This effectively restores the potential error path of splitting and not munmap'ing which pre-dates the maple tree. Signed-off-by: Liam R. Howlett --- mm/mmap.c | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/mm/mmap.c b/mm/mmap.c index f4568a25d2dd..f601f7b7dce3 100644 --- a/mm/mmap.c +++ b/mm/mmap.c @@ -2385,9 +2385,6 @@ do_mas_align_munmap(struct ma_state *mas, struct vm_a= rea_struct *vma, mt_init_flags(&mt_detach, MT_FLAGS_LOCK_EXTERN); mt_set_external_lock(&mt_detach, &mm->mmap_lock); =20 - if (mas_preallocate(mas, vma, GFP_KERNEL)) - return -ENOMEM; - mas->last =3D end - 1; /* * If we need to split any vma, do it now to save pain later. @@ -2478,8 +2475,6 @@ do_mas_align_munmap(struct ma_state *mas, struct vm_a= rea_struct *vma, goto userfaultfd_error; } =20 - /* Point of no return */ - mas_set_range(mas, start, end - 1); #if defined(CONFIG_DEBUG_VM_MAPLE_TREE) /* Make sure no VMAs are about to be lost. */ { @@ -2487,6 +2482,7 @@ do_mas_align_munmap(struct ma_state *mas, struct vm_a= rea_struct *vma, struct vm_area_struct *vma_mas, *vma_test; int test_count =3D 0; =20 + mas_set_range(mas, start, end - 1); rcu_read_lock(); vma_test =3D mas_find(&test, end - 1); mas_for_each(mas, vma_mas, end - 1) { @@ -2496,10 +2492,13 @@ do_mas_align_munmap(struct ma_state *mas, struct vm= _area_struct *vma, } rcu_read_unlock(); BUG_ON(count !=3D test_count); - mas_set_range(mas, start, end - 1); } #endif - mas_store_prealloc(mas, NULL); + /* Point of no return */ + mas_set_range(mas, start, end - 1); + if (mas_store_gfp(mas, NULL, GFP_KERNEL)) + return -ENOMEM; + mm->map_count -=3D count; /* * Do not downgrade mmap_lock if we are next to VM_GROWSDOWN or @@ -2531,7 +2530,6 @@ do_mas_align_munmap(struct ma_state *mas, struct vm_a= rea_struct *vma, __mt_destroy(&mt_detach); start_split_failed: map_count_exceeded: - mas_destroy(mas); return error; } =20 --=20 2.35.1 From nobody Fri Sep 19 02:32:03 2025 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 11056C4167B for ; Tue, 29 Nov 2022 16:45:40 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S236166AbiK2Qpg (ORCPT ); Tue, 29 Nov 2022 11:45:36 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41476 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S236045AbiK2Qom (ORCPT ); Tue, 29 Nov 2022 11:44:42 -0500 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 8C9F55DB94 for ; Tue, 29 Nov 2022 08:44:39 -0800 (PST) Received: from pps.filterd (m0246617.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 2ATGP2cU031397; Tue, 29 Nov 2022 16:44:32 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : references : in-reply-to : content-type : content-transfer-encoding : mime-version; s=corp-2022-7-12; bh=0ERewij8MCkLYisOrcVP4c3U2WBiodItLscmFtT0JNo=; b=CA6qm2mud76GQoPMbo+puxeCerO6ouEMfpWsnjTYX7IsizPa9EJ3hS2iRT5Bpjz+N5JU u6yXPInkAGDyUhtGMXzyHXuEaSNBYUt8TP31xttv4Ns6uAyzjIJyIcasZo7l8ruYlx1n uVdBFNhnzObjNpchbjYHPDF4yIre/+Ced1w9shu0dJEsvbE2XWHPAMPtnobOa/6qzUh9 XyuCradjQnbPV7n9PgKdLKmjc177RlGo9k9auf92iUn2ReHdjm8HpgR/O4AXshpIEDUE MwzC/JsE0WVejXQIVPw42MKZ3k6I79rluBWGssEk7xF4oDj3lpqujMeMRb4W8USF5kPn NQ== Received: from phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta02.appoci.oracle.com [147.154.114.232]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3m40y3xart-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 29 Nov 2022 16:44:30 +0000 Received: from pps.filterd (phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (8.17.1.5/8.17.1.5) with ESMTP id 2ATFQMIZ027905; Tue, 29 Nov 2022 16:44:28 GMT Received: from nam10-dm6-obe.outbound.protection.outlook.com (mail-dm6nam10lp2105.outbound.protection.outlook.com [104.47.58.105]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 3m3987f2a8-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 29 Nov 2022 16:44:27 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=mRIJQnnOkbpyg3rVmEPLSzA+cU7PBdmYIDEEejH4oeJuQ9ijN5hkIx1zhZEdRrw11e0XMmeFxluzugmdS5TzB6dtqujykqZ2rGzClnQMont/FhG740V3RUnVsGfEM7xmEHQ+ABflQGszB8HOjgMSGYZID6JMLFs018NtYbEw4beA+z+PCyyqEayLHWkVyvQS8MtSU6WaXOPuuOnEpcAta+THVBGOZ7b4k9O29Sx3QGzWmZ82kpEdJi6sSMQux6wOUWApVvice3r3bcsk/7+CjLrW0PKMtsQxB4RAkX37LXofmZKPa7HJ1HwFhKEeAdMoXI2ZSDkdctaltHL+IcTUjg== 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=0ERewij8MCkLYisOrcVP4c3U2WBiodItLscmFtT0JNo=; b=FfD0gTLuVj/fQnqG6LOKf55S7sOO8h8PoMZEaXOEqXiK/Kpf5LQkcChIB1r1KOSo4u0ND2cxTsFXP+WCu9tiko1DMksCKmS2/Jlf5JTd/wZWWJBNWOHPgNvqMqi5jOx8fFVYvUCvIROc3FrxRVvonhIUpYqdKMVHlWlg7GIGgdpl115vCx472jL2elhQr9/XlQtR58IWJigdQwq/3ugqJSJ9+JNmotm+AqDppE/iMbf2Bic3mxNbzL5VLzUudP/niqA76tFJ+vEcZBh6MxU6FvCcc/C7vdSrhcoXh5aLMWain463EFFBU/OrIFIkJLwK+K7HSSWtswwRn+Aev4WBMw== 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=0ERewij8MCkLYisOrcVP4c3U2WBiodItLscmFtT0JNo=; b=Y9wlVlHNq0639J3sY7QiIdDEPbv2JWyjTD855wCz4tS//HUoyMep9qZaGgTa9Z/wQ2R1B96NplInEVnHR6PWDj/RndDwWrjEfqbOx7dRh5dNlC2meMrw576nSsyBIauDV5UddALEWDvnbArNp3pO19ts6YjlcnNK/t9I88ETvjU= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by CH0PR10MB5321.namprd10.prod.outlook.com (2603:10b6:610:c9::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5857.23; Tue, 29 Nov 2022 16:44:25 +0000 Received: from SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::a02:2ac8:ee3e:682]) by SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::a02:2ac8:ee3e:682%4]) with mapi id 15.20.5857.022; Tue, 29 Nov 2022 16:44:25 +0000 From: Liam Howlett To: "maple-tree@lists.infradead.org" , "linux-mm@kvack.org" , "linux-kernel@vger.kernel.org" , Andrew Morton CC: Liam Howlett , Liam Howlett Subject: [PATCH 10/43] mmap: Change do_mas_munmap and do_mas_aligned_munmap() to use vma iterator Thread-Topic: [PATCH 10/43] mmap: Change do_mas_munmap and do_mas_aligned_munmap() to use vma iterator Thread-Index: AQHZBBHWApe0F7SRwkeNx9Ww7aOieg== Date: Tue, 29 Nov 2022 16:44:24 +0000 Message-ID: <20221129164352.3374638-11-Liam.Howlett@oracle.com> References: <20221129164352.3374638-1-Liam.Howlett@oracle.com> In-Reply-To: <20221129164352.3374638-1-Liam.Howlett@oracle.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-mailer: git-send-email 2.35.1 x-ms-publictraffictype: Email x-ms-traffictypediagnostic: SN6PR10MB3022:EE_|CH0PR10MB5321:EE_ x-ms-office365-filtering-correlation-id: ac972d83-5e08-4b55-f2d0-08dad228f9ab x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: EMgDYpcvdaQbvS9OJ6GmnURwEFs2a2MCwrK2hyqqrKzRZThykyQMIOMQqQ69511KE+L2mD+ExSmKmKJ4DNjgpbMfPD4bdfQ7sWTvOLJzFaIVxrg7+T+qrwQb9h5bTEGcVvkoGs2aEtjqvXNKKyv/5hfOgu7K2uqD/kelU5/rWhS5xpg0jQAwUzmObuDjmzewuTSe2ehS/Rs9erN80KWbaWpVfbsbFwOvgAKKGKs+FtLoirQMANQI9B/5lvByeDju+sbAaiHm82UhZAHRLQQ/7T1Nj60WuugO/b8NGRGJE2S7C817Qr5YoOJ0Ux9cpfsAS826EL6lrXrYhGWrMWQML6yaUucx+469F0rUI9K5yw7rPfJyP5hW9G+Bdw1k17nQTRNqBM38q22n6XSWX745OWYOnUbonwX9IlHhdZ7C1VDVGbJxGuJRuaeGSKoO3sHTaoa7XYPB996RIphZpHgj+SfwF43JLSwjQlCTPRLCryUuFDN5KxoedpsC8zOCZcLab0pOm1HchErt87zAbmN9flp6C8xeSyOmdP2g9t3eR5hAyh4i55VjH6Z/QyRsOh4dE8w1upE8BBfm0sZ+nFl0hQQef5eNtSYaZUlEibY99d35cv54FOQDYP7dgat7e3IwbL9YIeN1BkmXaAncWyGElo/+TOYWvpfXeMjTSsCbP7nhdDtfMgfBEcrNp5dWbV0spCZMxsMM4sM2vRndeZaNNQ== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SN6PR10MB3022.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230022)(136003)(39860400002)(346002)(376002)(396003)(366004)(451199015)(83380400001)(66899015)(54906003)(71200400001)(6506007)(107886003)(110136005)(6486002)(86362001)(36756003)(38070700005)(6512007)(38100700002)(122000001)(2616005)(26005)(1076003)(186003)(8936002)(5660300002)(66446008)(478600001)(44832011)(8676002)(66946007)(66556008)(64756008)(76116006)(30864003)(66476007)(41300700001)(4326008)(2906002)(91956017)(316002);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?Q?ocOJZJc1dzsyttUBXg0N8T28XFSJn7i3Ujqw3ListcvUR5BZNybzDV1Z7g?= =?iso-8859-1?Q?FH03votvFkCDeTcrInV3hFdyUpuf7UWa1j+0iaSpKuQ/BYBpWt0hLGupkJ?= =?iso-8859-1?Q?whm6ZpTegdX6bxU6eVHOABUBpvl2nxF7WE/8ljZn7y8qvNzTFRwA4KYqTX?= =?iso-8859-1?Q?XccfMLnsyGLf2nOvK3tBGppLZ8K3B5nTM2508MT7v/DiC/iFe9hsJVw80u?= =?iso-8859-1?Q?VUkBIo0J8Kb1v1ZLpbKH8z4m7vw/kgHsLQJcHAUBxUcJYgch4xjOaiuCXp?= =?iso-8859-1?Q?eo+BbXt7YqYk3PKmMuza8NS/4h1zZRGJNgadjaJmeYuWBi7a8wg0Dm64Ie?= =?iso-8859-1?Q?2aYwSpZpq1I5zx7zLvpZxmr4odQtEoS2mSXvmwhFDS1O+eoJxkbC/4m4X5?= =?iso-8859-1?Q?aGTOIN7/hFwmsqkcuPugHL4a7HTaM0H/kCG4ZI/fM13xW/ukGJiGJrBxUX?= =?iso-8859-1?Q?F3yw0lew2xD+9hYtnKWOZ1lepe+VScz0TUG+Eo/dBEMOMSIbw3K5H1KRTA?= =?iso-8859-1?Q?tou9FaPfJXjLCrk8HusF0CtxmVsj6qoLh3uiDLU+Dk2YFaFY0l/M80VqYH?= =?iso-8859-1?Q?l21LVAcoYLiniwQ7SOTKrEEorhrOckWrqFelcN4UL5JJJfZCndSl2YqWQQ?= =?iso-8859-1?Q?lT0LAPXrqKjZ3anDAJWo/mGsGfhdb/frECFN3HdlczcfZbhhBB1Y3BTXu+?= =?iso-8859-1?Q?hLzWdHFQUGesCFX4UKlY0E9N8hXIBTmg9ifamhU+Wk+m88yL1lv2C8MBx1?= =?iso-8859-1?Q?+9hgKv5fK8tdH6dcWGYJtKpQ9k7XWdxMlxogz6Bmg147IxYekiAx0Rydxw?= =?iso-8859-1?Q?E5nXc2QD+4mVjrKf5aCYijFlNLpJ9GEBNznC4SmS9ox2i7z4ZNdJLu9g8x?= =?iso-8859-1?Q?xw/brGgwSFcR7Ob4j5Z2z0XaI3u2KsgOjx+EQXFav+aLeQotzEbVqfA6sG?= =?iso-8859-1?Q?HsVRFv/fdyQtGHa9gpLTjqpLdhrTiScOSsWGxFBdhQdtmvJC40hfIao6eY?= =?iso-8859-1?Q?LMl8Ap2r9S3YS7AijhHpsiF613MgdGD3qNfZy2De2+eXCtsg58jkNRZFDy?= =?iso-8859-1?Q?ZJUHIzECWRlOrgcIkPBgcfaYaVxcZ/5DkW1Y60Bf2GEsHWETYjk4J/f+68?= =?iso-8859-1?Q?INf/A1G4ejsfkZvcGexhdgdxIPSh0bSsVr7D+KPFysmoj170WcGnndRyI5?= =?iso-8859-1?Q?oW9xBuoi69ThCLPpT8pYa48/r2nYS094iGCuw73fjYFWJDzSSE7riFhB9R?= =?iso-8859-1?Q?KcIrDxFuhFBVDqLQ7qooWZHFn03mGMpLwyROTM/wKPIUxPYTPctajAOE/M?= =?iso-8859-1?Q?UIc9b0kHYaWmp9zS3Xig5coMAiOqdegkWb3UygtsxhKvj7P0rFUlAffgDX?= =?iso-8859-1?Q?Jqz62ObGfivVSxxxrkdHXEmnqBg7HqdyPtC8rzsH04bpUzK2KqQVKzj2JQ?= =?iso-8859-1?Q?Yv30evnUc4wiy5mY8bFNBEQaQZRyKVTWXY0NjdKuzweWrKd49U4hvx+BOR?= =?iso-8859-1?Q?5aY14jNux8rlCcz82/W4YlumYnNd8CUS47hbcZhSiZO2qITDws5ByyZEib?= =?iso-8859-1?Q?Pa26DoyZXjU7kX85of5PUb0/buarLXsMwdLQDUJR+S8s4x9OyhlLctGJuY?= =?iso-8859-1?Q?0l2CMSadew4T9PnNPd7W/OzDZBRyPSCktjKQatzvGPGvwuuY1V+Zg9lg?= =?iso-8859-1?Q?=3D=3D?= Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: PhHmf6K6GeQexdqY0CzfQO/6aouMWCqXYP7P0tkk+Q+o5AVm/q2GDiw4CDaHMzi5D9L8bXxwhY660gZUWmqWJ9Czk4CoIEERgS/VZlbYFMJD50bu5Z3WFPiyYimM+ibRnZjdVeIcXwwJLj7hJpXnf42ut+dyeQyMlnJPjBoZsSYeQup2d0xRMZrewsJJPWcY7FugUUlKOSw/QwQSN7A8VtQZSzvfgsveOA1HhSz2uQVE9+tqXgsBZ/xBpJm7xfpxpqLZSo+gvJ2TaKFqcF4Nv3ZftFpWbkHul81dGGEjpC2VjShBndO8t1suEjP+RDpay8gIZf7DSrqfkDUf1jwJSvv6OVEhxn4OJTrGGkKov5hQ/54THhWCGqqdngGnzyJW0PUXQ4/uPEf6jHh+PuZQL/okb9KU9jaLzNNtE9Qat8mF/Rl2Ji0jeg7Oop8Z19VlzqhixxPG6mlRLEF/nklgAPdvGf6VJiw2ARBBGr2Wi0LiB7nJDA+4/FeiNSIeXrQJTK30DEggu86Iv6lmU1mE5P9/2VHw94z46wruk+96kX6WN8WmaNr4NHccYtiI71TpJktHL4iQUeqG9BV3XYkHRcDZL2hN4HI/1jTk/rBNcpXEtj6UG9MJhQGWH6K0EtOD+/78IvBSVTgTuJPik0nmBfW2t4FLnmm5CqQ2ea5pZt1+N95i6FX2PhT+j5R0JEXDkFyZtnTWwWtkDFaX6HosL/AciZknNlCOyNadMJVCmmuA/MFtntK8TOh0S0EBUqqnyy4izt+RJpxFMnqD6k6eSPD7ZniFaZ2BCOVJaZdPvQMe2W6Trlizo9M2t5PLGhctViucgKj7kCRQZ7PFpSdx3hvE7++wsycj0JgOZWX/tTZRGE0J80Pe225X6Muf1FE+cXXpZA5xlbf5S/7zOROsmQ== X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: SN6PR10MB3022.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: ac972d83-5e08-4b55-f2d0-08dad228f9ab X-MS-Exchange-CrossTenant-originalarrivaltime: 29 Nov 2022 16:44:24.5667 (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: SiA/vFBVfSsvumMxsmQkDx7OgOpUGULwTbqrrJmce/vgz1vcU8JSlOTEkZ9OZHOgIO+d4PJRPr9iLgsxRCEPIA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH0PR10MB5321 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.219,Aquarius:18.0.895,Hydra:6.0.545,FMLib:17.11.122.1 definitions=2022-11-29_11,2022-11-29_01,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 bulkscore=0 suspectscore=0 phishscore=0 mlxscore=0 spamscore=0 adultscore=0 malwarescore=0 mlxlogscore=999 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2210170000 definitions=main-2211290093 X-Proofpoint-GUID: VNj3kUAKQeoI1dwY4j8Qp_EMfr-UeXFF X-Proofpoint-ORIG-GUID: VNj3kUAKQeoI1dwY4j8Qp_EMfr-UeXFF Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" From: "Liam R. Howlett" Start passing the vma iterator through the mm code. This will allow for reuse of the state and cleaner invalidation if necessary. Signed-off-by: Liam R. Howlett --- include/linux/mm.h | 2 +- mm/mmap.c | 75 +++++++++++++++++++++------------------------- mm/mremap.c | 6 ++-- 3 files changed, 38 insertions(+), 45 deletions(-) diff --git a/include/linux/mm.h b/include/linux/mm.h index 2d3a49ba2261..c347509c5f9b 100644 --- a/include/linux/mm.h +++ b/include/linux/mm.h @@ -2766,7 +2766,7 @@ extern unsigned long mmap_region(struct file *file, u= nsigned long addr, extern unsigned long do_mmap(struct file *file, unsigned long addr, unsigned long len, unsigned long prot, unsigned long flags, unsigned long pgoff, unsigned long *populate, struct list_head *uf); -extern int do_mas_munmap(struct ma_state *mas, struct mm_struct *mm, +extern int do_vmi_munmap(struct vma_iterator *vmi, struct mm_struct *mm, unsigned long start, size_t len, struct list_head *uf, bool downgrade); extern int do_munmap(struct mm_struct *, unsigned long, size_t, diff --git a/mm/mmap.c b/mm/mmap.c index f601f7b7dce3..e2701bc92c1e 100644 --- a/mm/mmap.c +++ b/mm/mmap.c @@ -2361,7 +2361,7 @@ static inline int munmap_sidetree(struct vm_area_stru= ct *vma, } =20 /* - * do_mas_align_munmap() - munmap the aligned region from @start to @end. + * do_vmi_align_munmap() - munmap the aligned region from @start to @end. * @mas: The maple_state, ideally set up to alter the correct tree locatio= n. * @vma: The starting vm_area_struct * @mm: The mm_struct @@ -2373,7 +2373,7 @@ static inline int munmap_sidetree(struct vm_area_stru= ct *vma, * If @downgrade is true, check return code for potential release of the l= ock. */ static int -do_mas_align_munmap(struct ma_state *mas, struct vm_area_struct *vma, +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 downgrade) { @@ -2385,7 +2385,6 @@ do_mas_align_munmap(struct ma_state *mas, struct vm_a= rea_struct *vma, mt_init_flags(&mt_detach, MT_FLAGS_LOCK_EXTERN); mt_set_external_lock(&mt_detach, &mm->mmap_lock); =20 - mas->last =3D end - 1; /* * If we need to split any vma, do it now to save pain later. * @@ -2405,27 +2404,23 @@ do_mas_align_munmap(struct ma_state *mas, struct vm= _area_struct *vma, if (end < vma->vm_end && mm->map_count >=3D sysctl_max_map_count) goto map_count_exceeded; =20 - /* - * mas_pause() is not needed since mas->index needs to be set - * differently than vma->vm_end anyways. - */ error =3D __split_vma(mm, vma, start, 0); if (error) goto start_split_failed; =20 - mas_set(mas, start); - vma =3D mas_walk(mas); + vma_iter_set(vmi, start); + vma =3D vma_find(vmi, end); } =20 - prev =3D mas_prev(mas, 0); + prev =3D vma_prev(vmi); if (unlikely((!prev))) - mas_set(mas, start); + vma_iter_set(vmi, start); =20 /* * Detach a range of VMAs from the mm. Using next as a temp variable as * it is always overwritten. */ - mas_for_each(mas, next, end - 1) { + for_each_vma_range(*vmi, next, end) { /* Does it split the end? */ if (next->vm_end > end) { struct vm_area_struct *split; @@ -2434,8 +2429,8 @@ do_mas_align_munmap(struct ma_state *mas, struct vm_a= rea_struct *vma, if (error) goto end_split_failed; =20 - mas_set(mas, end); - split =3D mas_prev(mas, 0); + vma_iter_set(vmi, end); + split =3D vma_prev(vmi); error =3D munmap_sidetree(split, &mas_detach); if (error) goto munmap_sidetree_failed; @@ -2457,7 +2452,7 @@ do_mas_align_munmap(struct ma_state *mas, struct vm_a= rea_struct *vma, } =20 if (!next) - next =3D mas_next(mas, ULONG_MAX); + next =3D vma_next(vmi); =20 if (unlikely(uf)) { /* @@ -2482,10 +2477,10 @@ do_mas_align_munmap(struct ma_state *mas, struct vm= _area_struct *vma, struct vm_area_struct *vma_mas, *vma_test; int test_count =3D 0; =20 - mas_set_range(mas, start, end - 1); + vma_iter_set(vmi, start); rcu_read_lock(); vma_test =3D mas_find(&test, end - 1); - mas_for_each(mas, vma_mas, end - 1) { + for_each_vma_range(*vmi, vma_mas, end) { BUG_ON(vma_mas !=3D vma_test); test_count++; vma_test =3D mas_next(&test, end - 1); @@ -2495,8 +2490,8 @@ do_mas_align_munmap(struct ma_state *mas, struct vm_a= rea_struct *vma, } #endif /* Point of no return */ - mas_set_range(mas, start, end - 1); - if (mas_store_gfp(mas, NULL, GFP_KERNEL)) + vma_iter_set(vmi, start); + if (vma_iter_clear_gfp(vmi, start, end, GFP_KERNEL)) return -ENOMEM; =20 mm->map_count -=3D count; @@ -2534,8 +2529,8 @@ do_mas_align_munmap(struct ma_state *mas, struct vm_a= rea_struct *vma, } =20 /* - * do_mas_munmap() - munmap a given range. - * @mas: The maple state + * do_vmi_munmap() - munmap a given range. + * @vmi: The vma iterator * @mm: The mm_struct * @start: The start address to munmap * @len: The length of the range to munmap @@ -2549,7 +2544,7 @@ do_mas_align_munmap(struct ma_state *mas, struct vm_a= rea_struct *vma, * * Returns: -EINVAL on failure, 1 on success and unlock, 0 otherwise. */ -int do_mas_munmap(struct ma_state *mas, struct mm_struct *mm, +int do_vmi_munmap(struct vma_iterator *vmi, struct mm_struct *mm, unsigned long start, size_t len, struct list_head *uf, bool downgrade) { @@ -2567,11 +2562,11 @@ int do_mas_munmap(struct ma_state *mas, struct mm_s= truct *mm, arch_unmap(mm, start, end); =20 /* Find the first overlapping VMA */ - vma =3D mas_find(mas, end - 1); + vma =3D vma_find(vmi, end); if (!vma) return 0; =20 - return do_mas_align_munmap(mas, vma, mm, start, end, uf, downgrade); + return do_vmi_align_munmap(vmi, vma, mm, start, end, uf, downgrade); } =20 /* do_munmap() - Wrapper function for non-maple tree aware do_munmap() cal= ls. @@ -2583,9 +2578,9 @@ int do_mas_munmap(struct ma_state *mas, struct mm_str= uct *mm, int do_munmap(struct mm_struct *mm, unsigned long start, size_t len, struct list_head *uf) { - MA_STATE(mas, &mm->mm_mt, start, start); + VMA_ITERATOR(vmi, mm, start); =20 - return do_mas_munmap(&mas, mm, start, len, uf, false); + return do_vmi_munmap(&vmi, mm, start, len, uf, false); } =20 unsigned long mmap_region(struct file *file, unsigned long addr, @@ -2601,7 +2596,7 @@ unsigned long mmap_region(struct file *file, unsigned= long addr, unsigned long merge_start =3D addr, merge_end =3D end; pgoff_t vm_pgoff; int error; - MA_STATE(mas, &mm->mm_mt, addr, end - 1); + VMA_ITERATOR(vmi, mm, addr); =20 /* Check against address space limit. */ if (!may_expand_vm(mm, vm_flags, len >> PAGE_SHIFT)) { @@ -2619,7 +2614,7 @@ unsigned long mmap_region(struct file *file, unsigned= long addr, } =20 /* Unmap any existing mapping in the area */ - if (do_mas_munmap(&mas, mm, addr, len, uf, false)) + if (do_vmi_munmap(&vmi, mm, addr, len, uf, false)) return -ENOMEM; =20 /* @@ -2632,8 +2627,8 @@ unsigned long mmap_region(struct file *file, unsigned= long addr, vm_flags |=3D VM_ACCOUNT; } =20 - next =3D mas_next(&mas, ULONG_MAX); - prev =3D mas_prev(&mas, 0); + next =3D vma_next(&vmi); + prev =3D vma_prev(&vmi); if (vm_flags & VM_SPECIAL) goto cannot_expand; =20 @@ -2661,13 +2656,11 @@ unsigned long mmap_region(struct file *file, unsign= ed long addr, =20 /* Actually expand, if possible */ if (vma && - !vma_expand(&mas, vma, merge_start, merge_end, vm_pgoff, next)) { + !vma_expand(&vmi.mas, vma, merge_start, merge_end, vm_pgoff, next)) { khugepaged_enter_vma(vma, vm_flags); goto expanded; } =20 - mas.index =3D addr; - mas.last =3D end - 1; cannot_expand: /* * Determine the object being mapped and call the appropriate @@ -2706,7 +2699,7 @@ unsigned long mmap_region(struct file *file, unsigned= long addr, error =3D -EINVAL; goto close_and_free_vma; } - mas_reset(&mas); + vma_iter_set(&vmi, addr); =20 /* * If vm_flags changed after call_mmap(), we should try merge @@ -2752,7 +2745,7 @@ unsigned long mmap_region(struct file *file, unsigned= long addr, goto free_vma; } =20 - if (mas_preallocate(&mas, vma, GFP_KERNEL)) { + if (vma_iter_prealloc(&vmi, vma)) { error =3D -ENOMEM; if (file) goto close_and_free_vma; @@ -2765,7 +2758,7 @@ unsigned long mmap_region(struct file *file, unsigned= long addr, if (vma->vm_file) i_mmap_lock_write(vma->vm_file->f_mapping); =20 - vma_mas_store(vma, &mas); + vma_iter_store(&vmi, vma); mm->map_count++; if (vma->vm_file) { if (vma->vm_flags & VM_SHARED) @@ -2826,7 +2819,7 @@ unsigned long mmap_region(struct file *file, unsigned= long addr, vma->vm_file =3D NULL; =20 /* Undo any partial mapping done by a device driver. */ - unmap_region(mm, mas.tree, vma, prev, next, vma->vm_start, vma->vm_end); + unmap_region(mm, &mm->mm_mt, vma, prev, next, vma->vm_start, vma->vm_end); if (file && (vm_flags & VM_SHARED)) mapping_unmap_writable(file->f_mapping); free_vma: @@ -2843,12 +2836,12 @@ static int __vm_munmap(unsigned long start, size_t = len, bool downgrade) int ret; struct mm_struct *mm =3D current->mm; LIST_HEAD(uf); - MA_STATE(mas, &mm->mm_mt, start, start); + VMA_ITERATOR(vmi, mm, start); =20 if (mmap_write_lock_killable(mm)) return -EINTR; =20 - ret =3D do_mas_munmap(&mas, mm, start, len, &uf, downgrade); + ret =3D do_vmi_munmap(&vmi, mm, start, len, &uf, downgrade); /* * Returning 1 indicates mmap_lock is downgraded. * But 1 is not legal return value of vm_munmap() and munmap(), reset @@ -2980,7 +2973,7 @@ static int do_brk_munmap(struct vma_iterator *vmi, st= ruct vm_area_struct *vma, int ret; =20 arch_unmap(mm, newbrk, oldbrk); - ret =3D do_mas_align_munmap(&vmi->mas, vma, mm, newbrk, oldbrk, uf, true); + ret =3D do_vmi_align_munmap(vmi, vma, mm, newbrk, oldbrk, uf, true); validate_mm_mt(mm); return ret; } @@ -3104,7 +3097,7 @@ int vm_brk_flags(unsigned long addr, unsigned long re= quest, unsigned long flags) if (ret) goto limits_failed; =20 - ret =3D do_mas_munmap(&vmi.mas, mm, addr, len, &uf, 0); + ret =3D do_vmi_munmap(&vmi, mm, addr, len, &uf, 0); if (ret) goto munmap_failed; =20 diff --git a/mm/mremap.c b/mm/mremap.c index e465ffe279bb..841fcc70e017 100644 --- a/mm/mremap.c +++ b/mm/mremap.c @@ -978,14 +978,14 @@ SYSCALL_DEFINE5(mremap, unsigned long, addr, unsigned= long, old_len, /* * Always allow a shrinking remap: that just unmaps * the unnecessary pages.. - * do_mas_munmap does all the needed commit accounting, and + * do_vmi_munmap does all the needed commit accounting, and * downgrades mmap_lock to read if so directed. */ if (old_len >=3D new_len) { int retval; - MA_STATE(mas, &mm->mm_mt, addr + new_len, addr + new_len); + VMA_ITERATOR(vmi, mm, addr + new_len); =20 - retval =3D do_mas_munmap(&mas, mm, addr + new_len, + retval =3D do_vmi_munmap(&vmi, mm, addr + new_len, old_len - new_len, &uf_unmap, true); /* Returning 1 indicates mmap_lock is downgraded to read. */ if (retval =3D=3D 1) { --=20 2.35.1 From nobody Fri Sep 19 02:32:03 2025 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 52215C433FE for ; Tue, 29 Nov 2022 16:45:51 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S236179AbiK2Qpt (ORCPT ); Tue, 29 Nov 2022 11:45:49 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41470 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S236051AbiK2Qom (ORCPT ); Tue, 29 Nov 2022 11:44:42 -0500 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id E6B47450BC for ; Tue, 29 Nov 2022 08:44:38 -0800 (PST) Received: from pps.filterd (m0246617.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 2ATGP2cV031397; Tue, 29 Nov 2022 16:44:32 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : references : in-reply-to : content-type : content-transfer-encoding : mime-version; s=corp-2022-7-12; bh=iMSiY2Kgt8u88AkVi87ujqKYWqsXBtY0fjn9cNqk3nE=; b=gtgG+h2s0TvsEG2IADsyWl6XMHWU2iXBb9OR7xbT/l1JeNSPihto/0N2a6P/AM8/iWzX zuXLmu9nuyrZcbiVoBy2OYVMQGr4qKRz/C9zAqtj4OZN5PmAq2N8U9yNQieja6/A1Nw+ bchpLHltiFUMPnv6DgRiMN5Bh1ydk/yl5Ydj8s0GSsnwscrkhOPCXVVpjTJwK2PcsYXm BCO6qnbSr5fiST+4QPSHNQZkuTNj+nBXGjFvftvcDjB7Jjn+EP0C/UaboJv1u67hoAqU YwfQWX8fZGXUbxE+gfYpd/rDTxhh9nxjiJu5hMhLzyHDrttrdCvx223hCg0LKkd054Cb lQ== Received: from phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta02.appoci.oracle.com [147.154.114.232]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3m40y3xaru-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 29 Nov 2022 16:44:32 +0000 Received: from pps.filterd (phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (8.17.1.5/8.17.1.5) with ESMTP id 2ATFQMIa027905; Tue, 29 Nov 2022 16:44:28 GMT Received: from nam10-dm6-obe.outbound.protection.outlook.com (mail-dm6nam10lp2105.outbound.protection.outlook.com [104.47.58.105]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 3m3987f2a8-2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 29 Nov 2022 16:44:28 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Nt/R1xSwJk3ZTgG5E5cK9pRjMniIbkp2pvhjVCghQHzjx+yThYmD+SQ+q9JrbS+oAY1/TATONJQ8tI9XHzMYLxnHc9jQVl6tuHaJYffjrsS4QdR6h1E+toFsLsbJ9o69O4xqha3mF1OpN+5VKM6fe6L1Okpmh6+UcYUQUFzGAMzAT+jco/JGGj/7MZ3ZgD0vLQCC7+kyQbKvD1KRSTFU75s7IxgRG3vNjRvco1+fjdRLrB4nWgSZG+Yn9ZNdOZ8SsMouYMlhfVEwMdbs4oCSAA0MaTUz9rD8tv298HEiJawPKCpw/Cq3o9SD4KHiCaceKDahLen7WNHv/EjzazUiAg== 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=iMSiY2Kgt8u88AkVi87ujqKYWqsXBtY0fjn9cNqk3nE=; b=cRzjf4W/fGovPmE17I9+PcHTjXtrAYB3cjTqXM1yXexJA6dpeQk2jOAHXxuVkTjAaDmI1W33nHEXtDpyk5VxmXcnviGcQePCkg2lkHfv4FZBAvdYp6lm7mX3i+hYEkVu1SLGfQcEIfIdLa6wcGFnD+agnPP+7SVpUT9LzpnwF0UkyEvnjI9gvViVX80AKFnQUmGG+OTtTNekVp11ANN86+XJhv2WPIzIlZKaNe+yBqFVWOycnDhlJliyJum7CMQlFE099Xn4HQcQUqVJQB6Xuczo2/iLnsvut3CfkhZ/LtkdeOPaAW5DD0HpJacSM86UuBY8q5iVU5GN6I3KqmXarw== 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=iMSiY2Kgt8u88AkVi87ujqKYWqsXBtY0fjn9cNqk3nE=; b=lCFNIz9XmnYmBB6tbdBU33IY0J88sa1dxT88VhCkakWQJK8W3mYHcdlArVUd4mJiJgMa0I4TQoqwszvzMELM7R/FRUcnNlVcGprUUmaMEbwN3KBVSpQhWUyEHyRLi6JavfbRFgg6+A6OWLZtkAK3Ovm1mMCOP/V+F/mMnB7vpbQ= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by CH0PR10MB5321.namprd10.prod.outlook.com (2603:10b6:610:c9::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5857.23; Tue, 29 Nov 2022 16:44:26 +0000 Received: from SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::a02:2ac8:ee3e:682]) by SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::a02:2ac8:ee3e:682%4]) with mapi id 15.20.5857.022; Tue, 29 Nov 2022 16:44:26 +0000 From: Liam Howlett To: "maple-tree@lists.infradead.org" , "linux-mm@kvack.org" , "linux-kernel@vger.kernel.org" , Andrew Morton CC: Liam Howlett , Liam Howlett Subject: [PATCH 11/43] mmap: Convert vma_expand() to use vma iterator Thread-Topic: [PATCH 11/43] mmap: Convert vma_expand() to use vma iterator Thread-Index: AQHZBBHWGrAasNG0ZE2gooJ8S2qJig== Date: Tue, 29 Nov 2022 16:44:24 +0000 Message-ID: <20221129164352.3374638-12-Liam.Howlett@oracle.com> References: <20221129164352.3374638-1-Liam.Howlett@oracle.com> In-Reply-To: <20221129164352.3374638-1-Liam.Howlett@oracle.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-mailer: git-send-email 2.35.1 x-ms-publictraffictype: Email x-ms-traffictypediagnostic: SN6PR10MB3022:EE_|CH0PR10MB5321:EE_ x-ms-office365-filtering-correlation-id: 5ba2bd15-f94b-48ed-7839-08dad228f9f3 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 24/7pc8ix3rNoeEcLgFExK53zcpyD5mfWjttXCqL3XGZOqoirwGDkQbGAv0NDmUWaLS0en5+cKj2x4zsr9nYtfVEaQELmqeIzQsP43avRtkk9jvINBxTfHKOSAFKu4EmpAMgbAONlMye4K8ikl2CyMik3KDbc/Jqqd9B359k4lhE5mT2JZEcG/hQ98rx1fmKj4J7Yfoiv5zLaAxA/zEXt6ZSYl3v/fHRrpmxqiCjdkxNXp8MLtuvaM2HNE/adf5IsMQxJSluXJAc1LGADM3wM4P6GTALgKm2BscRYiQDrufODkoWPkMQo6iIzuUENLsCpFyvfhWGnUJz/lM60DD2rYn99wPtR+y173kvuqW0rRhbtakNyOdYcIgUPFKHfbLLj62nTjgBb5S7rDPlwhQNgfFkaoAT7YJBkEXE5op0wUV+BE9K97gTpvx35rApC3MOrQCrYuSWNqAOR0Pz2OhnWIMWmvbjB+adm0A0Fqo1A0+cdUE6G47Djx4ZZ5OZesI9XDQ0gk7vmpMr0zJzQ+hAIZAlNYWGAKSpApALrd8lJ/ugBjpsiJ7hUhP/3YIY/NtvkCPwzNFeo10nnO1bh8vEG6PJ4Tn01YtQTPcoCMVHaPf7j0NOm8ExyCVYffcwzXzQVL4HWJsv4oYNjerZE3mTkVPB+r1AAIfWVVC9aA/ZfXDIbgeJ8ZV4ubvOArK7New+7U+XFanUeohryw2s+wQHsg== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SN6PR10MB3022.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230022)(136003)(39860400002)(346002)(376002)(396003)(366004)(451199015)(83380400001)(54906003)(71200400001)(6506007)(107886003)(110136005)(6486002)(86362001)(36756003)(38070700005)(6512007)(38100700002)(122000001)(2616005)(26005)(1076003)(186003)(8936002)(5660300002)(66446008)(478600001)(44832011)(8676002)(66946007)(66556008)(64756008)(76116006)(66476007)(41300700001)(4326008)(2906002)(91956017)(316002);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?Q?U4DhNDUqhg2ItnJO9mkE2ZlHFJ+TcG7k3ZExKOVH9v4lpbhTiBZo4ZCnmw?= =?iso-8859-1?Q?64v4283Lk7PSXLxseiUHY+6eSdBiU9ksWs0YxkI54hlxOXvwYPbqip+Iqt?= =?iso-8859-1?Q?o38b1E9ET9Fy2MMQT6yGzCn4SP5DVpZipCTaTCVpdcdVmZxJC+p7NYmSds?= =?iso-8859-1?Q?gpQKm02GO5Nr78fSGI8jUBGFtYbhSkSO8DB2vVlOLkSsh+QDYJ9SLxNdLd?= =?iso-8859-1?Q?wA3oMDrAfKMxPGWe1hlPa/KXmI2UHEqeM2dZIFqGbElSXZ4Ac0Wg9MLdgK?= =?iso-8859-1?Q?BVbRGjJfOeffg9vULN+3BdFXn22x+3TrwIy3iuloNEAnkok/mYLOKBlchy?= =?iso-8859-1?Q?NPOlZrtnnMew9auq1xeS9AXapgrtAJrCuxLG7M4uFTFvv3U8TgZ8yHYY60?= =?iso-8859-1?Q?jvvQ0jjnAonDa1cYpztmBJX/VOLLS+pRw6z/2L3JXVhdxq5zqrgrhf8+6J?= =?iso-8859-1?Q?ghVhDb+uqeb7abOnQKd46UlgSWR5JJzHJdWZx7q8FKG6PHA8Azq8mHLQoO?= =?iso-8859-1?Q?0Cn4poI2C5KLdJ7Rn5BcN6hrYjxqpSY4QtaEPlyGfAk36BSFygi3dOZtRS?= =?iso-8859-1?Q?Dr9l4Y23QyUeOgNKR7QmiAnktW/T1MXODr4zvsBcP9emghvFFBVqvDMsML?= =?iso-8859-1?Q?rZf8lWERUJ9vcxx1IL+6F+s4Mphjaz9u1/gyDx8ty4htOqfKUQLcCQ8IKP?= =?iso-8859-1?Q?9x8RnwqblziZ7PibKxOZWfrLz6knJV0OBovAJ6j5/bWxrR5+iD2Xz/Fev8?= =?iso-8859-1?Q?auXMVRBW7UpVlsfkdpj36ANc9yr2oaOKHvjPQdEURIMiCTZ8HQ1NWBEfPS?= =?iso-8859-1?Q?5ifu8FY7YY4VYIw/yMraAQD11Rb/t+7snFZ0kxnABEt6e1doXxF5SEIfqh?= =?iso-8859-1?Q?hXg7Ao1N+OrXC4imjg27r/O95IlMykyyN7a4j4fl27LiDx1uwdBUByS7Nc?= =?iso-8859-1?Q?DaNMZdfkWtN5ELgr11dBWtSXtWkEp3SnQu96r9nYMpQWR95lLfgtjcs41X?= =?iso-8859-1?Q?oSQpHVHxxxH+1unv9fPS3eViww9JmwMvbtTKZFUvPpIl2GQmqx4ByakpTq?= =?iso-8859-1?Q?KHGpUuRHJqyzLbZarPAXEZ8p7gnTQluJEdv0GWV2zqPUJyxauP93TZo3l6?= =?iso-8859-1?Q?vXfu8E2SEi+EFaODqk+uaGNYdRgtCSTBVxMeHMGztGvBj3wFlGig3NgJsA?= =?iso-8859-1?Q?PSlVM07pw1etznj8ROADHiLeSbjGUIGc6E4HzrxRDgPKq0Qzj0oOzxeM9J?= =?iso-8859-1?Q?Y7E/xcqYAmHZWrajDrhalQ/nJ8zumqT82Sb/gYhqgqAVgwORTMtEd/9hDk?= =?iso-8859-1?Q?uQiQsZvqpgCKOajzd2IUb1bJxMV8rucrEY2mszyguBbI7vRSyE7IuK/Xio?= =?iso-8859-1?Q?JTpTbwG5/tJYQxxbz58M1uEsM7SguB1biLDb/MRixOS426tjsr1gp5JfiT?= =?iso-8859-1?Q?CUZT3uEj4V6OCbqi88UNP9KW6VsotP1YLmgJE23rTy/VQGgcT6rcBi8olN?= =?iso-8859-1?Q?3I9ac4W3IqMU3bEPYejI+a3/cZTpE+ns8oIwuktsLcbSscPUPHjPNkRDYo?= =?iso-8859-1?Q?ju4Ajo7Wh09zU6PRp3T15QsAEqqcs0SIfqHkvrRB1lVcjLZqCdAwoSVzuW?= =?iso-8859-1?Q?OHWRDWe1ep+IQOGF0SjAyrTeZ9Qm7x0SOvJRBcbsi+r+f8ZRP14DlBsA?= =?iso-8859-1?Q?=3D=3D?= Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: m6czUX7qhtE9yBZp+4J2C9Y9dxdo2oNdNHSJ+vj39T/4cW6lg2XGlXgj1IVex/cxXc3nqRIgyalgkfcDWIC6e/c7ZGB5oJQdwJZTXf3oEcedAXwrCMqPix1sCpjB540qIYOfhGItcQ1a6edWdWZ+a6ohUfFz/ahlPGJmP89xNPgD5zttVK27AS1ZRf0mjv6DJUvdq5WQfLvng1eesSDppYY7z/O19T6eozD8P27dXHDQZhIkkNaL348DYjtgW+JDf2Ytx+mH/cuVm3cU0f4pf2Ee7rcnSTj3lqHL132mBqayCYQUxrBqOJ98AkWUvHF6dmA+cL7tZXE8PEdeJHEKRJTOD5u0Ia5Onx/mNqrDuhfUp6Y2t7F6unu6+Mf2KA2s/sIJ9N/AJ6j9q4M6V4beCiIfhPXPfl6KCz3C+TSzgM60FKVf0iSIP/GG5AdT3cxXh/okW71i05SbZR3BF8jkRl5CHbwc43OvayVDaYqkeGSWylKKTbt+pZUPc/zJnDM3Gp5xQmcCtYtB3frBFIISegOIIGPaIwPek/6z5bkhudnVccdB0EuIC+V9gN01PxdFWIPEYnes1YjAxwo7hso+nJix3winEnuBN8MYIZ1wyMSGWlGPM+mfA0YCNSwWi4MPxy9fTx9DTa+v+KG1R4zkT20FAOsvDJ++7j4ch7RwMVSWCrHLBtHTDRobCRoSirFPrMVAOzelkwJooYUAQA9EbFd4JOS0q8GsAL6Y+PpXjCnbxikWL1G4sVpIn9KbKEI9Gg880+Ib/EE5XVPWJRUIKkj4HB9HKGKwAq12fDqJNlwz6mVJwhh6xCgzTdSAfkvkOKFppFtuhHIpbkb51Xwd2Oys/KvyHNdxdNPFwvcGaVw5yArfcxWPqfM5n6BXOqpkVzyTXndtBRf4T4Bl7ShRMg== X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: SN6PR10MB3022.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 5ba2bd15-f94b-48ed-7839-08dad228f9f3 X-MS-Exchange-CrossTenant-originalarrivaltime: 29 Nov 2022 16:44:24.9261 (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: Tctl5q6tNbypH3Lrg/0gOAU20EYD9qXVCSI7wKGCUlTX3QBYibea+CZWoOWgtpRrI+5rcTE/31nNnPdLdnC4YA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH0PR10MB5321 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.219,Aquarius:18.0.895,Hydra:6.0.545,FMLib:17.11.122.1 definitions=2022-11-29_11,2022-11-29_01,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 bulkscore=0 suspectscore=0 phishscore=0 mlxscore=0 spamscore=0 adultscore=0 malwarescore=0 mlxlogscore=999 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2210170000 definitions=main-2211290093 X-Proofpoint-GUID: 7yXvXFOj9-zYp5TS_2Y3lyCsTI1fuw15 X-Proofpoint-ORIG-GUID: 7yXvXFOj9-zYp5TS_2Y3lyCsTI1fuw15 Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" From: "Liam R. Howlett" Use the vma iterator instead of the maple state for type safety and for consistency through the mm code. Signed-off-by: Liam R. Howlett --- mm/mmap.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/mm/mmap.c b/mm/mmap.c index e2701bc92c1e..fb9dd634b1ba 100644 --- a/mm/mmap.c +++ b/mm/mmap.c @@ -584,7 +584,7 @@ static int vma_link(struct mm_struct *mm, struct vm_are= a_struct *vma) * * Returns: 0 on success */ -inline int vma_expand(struct ma_state *mas, struct vm_area_struct *vma, +inline int vma_expand(struct vma_iterator *vmi, struct vm_area_struct *vma, unsigned long start, unsigned long end, pgoff_t pgoff, struct vm_area_struct *next) { @@ -613,7 +613,7 @@ inline int vma_expand(struct ma_state *mas, struct vm_a= rea_struct *vma, /* Only handles expanding */ VM_BUG_ON(vma->vm_start < start || vma->vm_end > end); =20 - if (mas_preallocate(mas, vma, GFP_KERNEL)) + if (vma_iter_prealloc(vmi, vma)) goto nomem; =20 vma_adjust_trans_huge(vma, start, end, 0); @@ -638,8 +638,7 @@ inline int vma_expand(struct ma_state *mas, struct vm_a= rea_struct *vma, vma->vm_start =3D start; vma->vm_end =3D end; vma->vm_pgoff =3D pgoff; - /* Note: mas must be pointing to the expanding VMA */ - vma_mas_store(vma, mas); + vma_iter_store(vmi, vma); =20 if (file) { vma_interval_tree_insert(vma, root); @@ -2656,7 +2655,7 @@ unsigned long mmap_region(struct file *file, unsigned= long addr, =20 /* Actually expand, if possible */ if (vma && - !vma_expand(&vmi.mas, vma, merge_start, merge_end, vm_pgoff, next)) { + !vma_expand(&vmi, vma, merge_start, merge_end, vm_pgoff, next)) { khugepaged_enter_vma(vma, vm_flags); goto expanded; } --=20 2.35.1 From nobody Fri Sep 19 02:32:03 2025 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id F1BCFC4167B for ; Tue, 29 Nov 2022 16:46:16 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S236220AbiK2QqO (ORCPT ); Tue, 29 Nov 2022 11:46:14 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41870 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S236096AbiK2QpD (ORCPT ); Tue, 29 Nov 2022 11:45:03 -0500 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 3CA636456C for ; Tue, 29 Nov 2022 08:44:44 -0800 (PST) Received: from pps.filterd (m0246629.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 2ATGPpWO012335; Tue, 29 Nov 2022 16:44:37 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : references : in-reply-to : content-type : content-transfer-encoding : mime-version; s=corp-2022-7-12; bh=4KYrszjLtjYGDVaIj/ev9/wJZ/P7KwJvYJzh70J2uRk=; b=0v4ydw57MAZXT4eIpHhzpKdtdytFQBGR6Y8trjR931xG3jzEnI+SqA/Xsa0MaORYIjR6 CflGOUC7PZ3Rdc/NwNg74MyHGt87WH/UrkiAFtSja6FekPDKx72ilJQJhaSBAx8glLsE N9NZu2aIbZXCfyOs427KOquM3lSFZCH2M/E+pGx2g4KtGHuPgUP3fgyxdAEc0gwSsq5R sfTa+8U1WKiZZCi0tGl5GXPSouyYsls1ZfwIJ3LWdZ7/Io/v9yQGl7MO3EYAAdxC9AyY zcgflBeBbfWWZ8i4AQqBdt+bWYfR4TklZ7It+bpAwTjwOIHl7KoSp40xADZRgmmJvGvM Hg== Received: from phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta02.appoci.oracle.com [147.154.114.232]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3m4aemdn8y-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 29 Nov 2022 16:44:29 +0000 Received: from pps.filterd (phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (8.17.1.5/8.17.1.5) with ESMTP id 2ATFhsPa027963; Tue, 29 Nov 2022 16:44:28 GMT Received: from nam11-co1-obe.outbound.protection.outlook.com (mail-co1nam11lp2169.outbound.protection.outlook.com [104.47.56.169]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 3m3987f2au-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 29 Nov 2022 16:44:28 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=OFMCwxt2eoTQiPjPQ2bEX88FKDvEzBbyRRTpRO4tfp6uytdzl9BgfuELV3y5eAb5s63Yjb1Rm+7dtq/RFpU4pKhzxPOdIVnxjGzG40ElGNi8Sav1mjdYj9OOCRXOx7yzvEjRKtadqtYw9kEDufP0jDA9F4cIjMeS3LWK6rE8KUj/Jdi6lDGtJu7rN+EVwHidgVVuUCeTW048S+sKXOfp8fBraCRaUDjg3PNAXZCnQO5LBeChkZ40NIAo4XzD4wBMEOEtmgppG5k94y7EJFzIUes49B6laXgwiT3+toDKGngeNK5jakMMUaNRahV3/XkwbroXH+AMwqgwp0KU2L52Ew== 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=4KYrszjLtjYGDVaIj/ev9/wJZ/P7KwJvYJzh70J2uRk=; b=TwNGcoOUMle3Jce+kSBwiRmCN3jo/9usqw0UZSVqjYvjTgv0jo1J9FErhP8Gsja+WTlW53BoLQTu1aVmo9HdVvqpvo56NtzIKO8y2UyIJbdxb/7jRRCc4H9jt0fLcWH3lg3O3Y7HYQ/2iki973y/Dj0BvFeiZQWU/pYKkF5wX/ukDM5Q8NB/ZcRDeFrc3Q3++7Xr5ji1p23E2EL3AVNyO0RJU8HNeE7S+3TLZy3Nl6Hc/HtjgI4EfdKpW1LqensyIXQf76vasGPBKkEs0dMpgVoRI6a7WqW1+I1/U/OQvstJBkwX2AcBrvRZBbt4+KWMc2xjdIW1lYPUvcuJat3x2g== 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=4KYrszjLtjYGDVaIj/ev9/wJZ/P7KwJvYJzh70J2uRk=; b=ar7mQGmGWGGnOe8GE7xPkrDysNDrM+BoAQUPkJWDHI2Anb4M11gBZywAftifhPZAobsGXeKyYqv7ea2dxbX8xF3LH0BYh1QWte2v0kBvkFnJSB9rvD3He0NA4WuJa4z41GNaCQ8M0xV3SdLQp3sdWnkdbdoPIytZ7diMfHiRy9Y= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by SJ0PR10MB5788.namprd10.prod.outlook.com (2603:10b6:a03:3df::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5857.21; Tue, 29 Nov 2022 16:44:26 +0000 Received: from SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::a02:2ac8:ee3e:682]) by SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::a02:2ac8:ee3e:682%4]) with mapi id 15.20.5857.022; Tue, 29 Nov 2022 16:44:26 +0000 From: Liam Howlett To: "maple-tree@lists.infradead.org" , "linux-mm@kvack.org" , "linux-kernel@vger.kernel.org" , Andrew Morton CC: Liam Howlett , Liam Howlett Subject: [PATCH 12/43] mm: Add temporary vma iterator versions of vma_merge(), split_vma(), and __split_vma() Thread-Topic: [PATCH 12/43] mm: Add temporary vma iterator versions of vma_merge(), split_vma(), and __split_vma() Thread-Index: AQHZBBHXlbmXtJJ19E6sVmDSed5CUw== Date: Tue, 29 Nov 2022 16:44:25 +0000 Message-ID: <20221129164352.3374638-13-Liam.Howlett@oracle.com> References: <20221129164352.3374638-1-Liam.Howlett@oracle.com> In-Reply-To: <20221129164352.3374638-1-Liam.Howlett@oracle.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-mailer: git-send-email 2.35.1 x-ms-publictraffictype: Email x-ms-traffictypediagnostic: SN6PR10MB3022:EE_|SJ0PR10MB5788:EE_ x-ms-office365-filtering-correlation-id: 3541ee93-2d73-4ce6-2471-08dad228fa42 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 9i9SSudI0is5pQymK+2o0wIKBVrPROQo/t9AxNR4Iakq9S2vI8v0gMa//G4XPpY/PttlKkjtEOkYlyyQF2WRVNBN68eNYLFqGA6ZoSxiffOwmibrbtF0Avi1N92V3jUUFzFOPbudOhXBtJ+tyAOGU8YtejuRUK1IBvQzOUzDbUlcmhzPDtDj8z6qs57EyZAvsCe1ay+0kLKyzv8Deqr99LUbOzIqQKnARcZt5cmCsuYKvNIymu+3GXPv30ctghzBIwt/eZwpNA1EN2TDFKGh7pDgSIpm1w93g1nXJrE2T45vRYFiaA8xcmjbauRyOYNharQd3apDhJa9XWbmEA3pISFhIMIQA/EURTnZCNdGOfKWE9Dw1XfiN5s4iDjFK1+lRLOcXxrsHB0DtAyjMt43ixqweoSl4ETAd+Pzn2eIQ2khO+3kYoUizMODbkDOP8eO1Yj8U50E/W/g7/U5MFXEAz8kLfh4K+JpCsQ3bDyq+HQn41uSM1LKpsl+2Mw50HnmZ0mgJ/wV5cpl/nt4RMH2lmamgm3pg6Y9dEQDC9/1Kzjtk08gR+RMThpiC6Ra13H7pmutDpMH5NU/ZL0TVyorGy7rNC6jIinvdMIgqVJIRDquTUPKq8rbL8eg+bFzYEjxu9ydYB/T5zZfaH5cN1DO3T/7w5KPmE+XGVhCumHTUy16qxbHLB/YBFkgvFWLpDILEhihmzX9cPSu27x7EnETCw== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SN6PR10MB3022.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230022)(366004)(346002)(396003)(136003)(39860400002)(376002)(451199015)(2906002)(44832011)(41300700001)(76116006)(5660300002)(36756003)(54906003)(316002)(66446008)(110136005)(6486002)(91956017)(66946007)(71200400001)(4326008)(64756008)(8676002)(66556008)(8936002)(66476007)(6512007)(6506007)(26005)(2616005)(107886003)(186003)(1076003)(478600001)(38100700002)(83380400001)(38070700005)(122000001)(86362001);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?Q?SS6WM3k0nmV7wiQGTBGzTewdRjYOB5dT+lBZ33zp2Jkj6Jd7rzzeZqs5MR?= =?iso-8859-1?Q?CqqZJk559M0rOM6oojiNRqBskODsd2bd+v/uSow/Us0yYPPJF60RoUCkX4?= =?iso-8859-1?Q?IUvY07I1HnTS3bYDSPSoweJDnlCl/gJrg5UWjcUqMkj4Mxt45slDgyd/F/?= =?iso-8859-1?Q?TtKZVkl4KjlKR0Knju2bgEh6DpjTQqjSfg4H0EI5l36LJc+5VZxv3IAsoG?= =?iso-8859-1?Q?4/cVUreRV259cHSFpd4Nh6rT0CyfSZPnDQUuyHJkUn/91Ab4srG+HbHKKi?= =?iso-8859-1?Q?gK2RUoHCg86XmkSq05iwfh8HnybkdmsXFyf0BY172+J4RT3mNwB1Y6c3o+?= =?iso-8859-1?Q?DZD1lXGGskG3lkLiB3s15cJTkXzjOLmbpujqpVVdVsQfCmTTdd4vMjmGsF?= =?iso-8859-1?Q?EwSzjviRJaxyowpStrP3w//9ExJ++8d4OzU2wjBDcbDKBBwilg5gfiaJ+9?= =?iso-8859-1?Q?ezRcjfA9xHSPBPrMEmBxLLj74XcoN4MoyVTB8GUEpCxmuKbBqbnS4uKxFr?= =?iso-8859-1?Q?pD4tW8y769WnBuYDE0C6umvLP2xK8sfrSEFJwLS3FaJ8hZ+NSOI+KfTcei?= =?iso-8859-1?Q?Dl2MUXpYpWUkMGNtlJKcl0xSYTOGlo8OP8wnudOxSMs6edXYEP7ZJHW/85?= =?iso-8859-1?Q?1iZARm94EIRSdU0PKqIFAeEqhvKgHk7eKqPkHP6qWm0mgccfqp0cqlrJhI?= =?iso-8859-1?Q?6jqUi0gypnRlxDfw5wF1ptX0Q82oMvkTp3abDsB/Dln7KN8KjFvzfNiY9B?= =?iso-8859-1?Q?4QEZbaKhRKA1lYegSuZaTpAnps4tte++7T3EXuSDBPV9RgWtXHqkI5bVoS?= =?iso-8859-1?Q?ANjhzam1YYLYk3K1nZSqrg0VuHV7xMTqt+9lH35XjG7VT4x2b1bhkqPzYM?= =?iso-8859-1?Q?Ssu1CTf7B0M8C0fhGURHhIysOxI2PTT/5BshVxcJQFRG3pdhW2DKWMM1aU?= =?iso-8859-1?Q?tNMPsTC8rtj4cVCtdP4yapVtNe32andNjBZrUZXanEbfx/pI7MEDff8h3g?= =?iso-8859-1?Q?hE3IIP0Z3kx3IVaW2bkBHPT5gyOUSLZgx1KVLHxbYJ71sZzTBSvwWF94Wt?= =?iso-8859-1?Q?i5zJC2ywIpD8ZQl0QLZf36SEzNOH12fyPirGBsRIYdF8KMQDdJmcHi7qyb?= =?iso-8859-1?Q?PnvP5/dA2tviXr/Api6QrOhoIn6mjeRVC1NQRXZzpFgICSeEBi+jDiog1w?= =?iso-8859-1?Q?qX/UkrFMTu+m2PhMy9ullcOckP0YkY695Pvk/pPkvvJobyVi793FmMEj3p?= =?iso-8859-1?Q?0fSKrrok9XZOJKGD/yKfM80vzIPCMjpl+DjDR5IfLU9ZkzsQAschrDvqB2?= =?iso-8859-1?Q?DxsbXyDUNQanws+SxHN2QB+GWE+p+lPsuEhk3L7u0tBPpdTnXTEqcNGADp?= =?iso-8859-1?Q?sI9jyPwBjqJoGecEeRMZPmwkCKNkfn9la77AKG+8bz3jkuvz4IzuUFzJAF?= =?iso-8859-1?Q?FQWqsu6AP3o55Hw+zqhr0cE/JcEkQwzVdzH14WT57nb8iV0ZtEEvi3dArV?= =?iso-8859-1?Q?ULhWJo33Unjgz91eKAy3K2trjs5W/3OqLMmi9Tu53TNuAxR7GebJK+frOB?= =?iso-8859-1?Q?do4hRW1H3zrBlETgvkjjjhvlE1UAJnS+xtvvK0ieN0tbt9zb/4Qc0VGv4r?= =?iso-8859-1?Q?VHTt/fRljgh4gTU9r3MqAMzpMDol7xrmz0rDDol8CruB4WZd+qoBI2tA?= =?iso-8859-1?Q?=3D=3D?= Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: C1aLVgFRkGult9xXeJdeRijiQcFp0tj0vZSlrbhp7yFRtmHfwpe3Jl8BYmW7pDCT+6VGdjliVFP4CjbjGdjJGqqOI33u7Ix6kYZAUG0z/DluYpH7eS+nzGmGbtdmEKwTrGJlEHw3vFcXVMuaI5mszM7swpUf9PfqflFvjxp/bHmBOrU5CPtsJKgUtXFN1F5nks8qEFtQgjYzdwQCsTkeUR4sgXXnKGuNjnUbyrfTb8/9fYuLcm9WvVLZ/7U5G05QHEfq3vYyeGLLfNQYZhx0JRDri/cW4pOPrHn4OdrTzTYvxediZOUSLU6dL9/22Nj3KwnCrbL0ha4aTFLTngWMrFRzwJVUR4tBzJ76Xv4nLhpko+YWG81JTlGQOIUbjBR7wmt4DwmqEfaEpfsm8aukSzPTb8Gjls5yD51O7F/xzyAJvQyQacuADnMWg6gTy1CKjDroT/uML1VkUQqF2Tek7d2/Tfp46PiTOdxM0XtQiJna8o8J5Fmvy3WKWSxJWDkILEnKgx487U6oGUgftM0ozHq9vHKrlXkrDSpWtZeVi9A809WCBAM4/Td2qi5vlipeC/nkDYa0Axm1tPUxgxPfLHPeDm+wZLgBAXgkkOrPveIkm/Ceee0UqWGuOJBJ6kKN7VuAzoG+clqBczRqAmCdElnUL7evIi8/Dq8aX+oNK8DigbgpMzEzKPk6kPpQDuNwmfDM43vRqFMUnXOfYv9/AlRHtp+T5tUTKA4I3nBut0fR710xA2gKoCjyjGgBNeBq6T5MX8+yAi5FAS6aMbqYj9RtU6pI6TnowbtD7Uvb9ch5sR1V1IpIVmPNndJP914hUh8e+C19AWrUY39MfYvE/WqU1Ftuj8v3JjskhxtyXhh+7IU+N8e/sLFv17oVng6TaizNC+xjteSFcmWc7e7rvg== X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: SN6PR10MB3022.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 3541ee93-2d73-4ce6-2471-08dad228fa42 X-MS-Exchange-CrossTenant-originalarrivaltime: 29 Nov 2022 16:44:25.3167 (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: 75vRUM8rmkQcN5JcPSihe6ofV9YJL2Gp9H+mcDt7haWwJCZrKO2G00JyiHevnIq2IFSriHSlsVIhPjtGSHRNRw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR10MB5788 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.219,Aquarius:18.0.895,Hydra:6.0.545,FMLib:17.11.122.1 definitions=2022-11-29_11,2022-11-29_01,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 bulkscore=0 suspectscore=0 phishscore=0 mlxscore=0 spamscore=0 adultscore=0 malwarescore=0 mlxlogscore=999 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2210170000 definitions=main-2211290093 X-Proofpoint-ORIG-GUID: owIuw2BqaySaaUwO1CeCbZoHTq2FIfX1 X-Proofpoint-GUID: owIuw2BqaySaaUwO1CeCbZoHTq2FIfX1 Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" From: "Liam R. Howlett" These wrappers are short-lived in this patch set so that each user can be converted on its own. In the end, these functions are renamed in one commit. Signed-off-by: Liam R. Howlett --- include/linux/mm.h | 11 +++++++++-- mm/mmap.c | 44 ++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 53 insertions(+), 2 deletions(-) diff --git a/include/linux/mm.h b/include/linux/mm.h index c347509c5f9b..b9a6599f98b9 100644 --- a/include/linux/mm.h +++ b/include/linux/mm.h @@ -2704,11 +2704,18 @@ extern struct vm_area_struct *vma_merge(struct mm_s= truct *, struct vm_area_struct *prev, unsigned long addr, unsigned long end, unsigned long vm_flags, struct anon_vma *, struct file *, pgoff_t, struct mempolicy *, struct vm_userfaultfd_ctx, struct anon_vma_name *); +extern struct vm_area_struct *vmi_vma_merge(struct vma_iterator *vmi, + struct mm_struct *, struct vm_area_struct *prev, unsigned long addr, + unsigned long end, unsigned long vm_flags, struct anon_vma *, + struct file *, pgoff_t, struct mempolicy *, struct vm_userfaultfd_ctx, + struct anon_vma_name *); extern struct anon_vma *find_mergeable_anon_vma(struct vm_area_struct *); -extern int __split_vma(struct mm_struct *, struct vm_area_struct *, - unsigned long addr, int new_below); +extern int vmi__split_vma(struct vma_iterator *vmi, struct mm_struct *, + struct vm_area_struct *, unsigned long addr, int new_below); extern int split_vma(struct mm_struct *, struct vm_area_struct *, unsigned long addr, int new_below); +extern int vmi_split_vma(struct vma_iterator *vmi, struct mm_struct *, + struct vm_area_struct *, unsigned long addr, int new_below); extern int insert_vm_struct(struct mm_struct *, struct vm_area_struct *); extern void unlink_file_vma(struct vm_area_struct *); extern struct vm_area_struct *copy_vma(struct vm_area_struct **, diff --git a/mm/mmap.c b/mm/mmap.c index fb9dd634b1ba..4102cb0c2793 100644 --- a/mm/mmap.c +++ b/mm/mmap.c @@ -1148,6 +1148,25 @@ struct vm_area_struct *vma_merge(struct mm_struct *m= m, return res; } =20 +struct vm_area_struct *vmi_vma_merge(struct vma_iterator *vmi, + struct mm_struct *mm, + struct vm_area_struct *prev, unsigned long addr, + unsigned long end, unsigned long vm_flags, + struct anon_vma *anon_vma, struct file *file, + pgoff_t pgoff, struct mempolicy *policy, + struct vm_userfaultfd_ctx vm_userfaultfd_ctx, + struct anon_vma_name *anon_name) +{ + struct vm_area_struct *tmp; + + tmp =3D vma_merge(mm, prev, addr, end, vm_flags, anon_vma, file, pgoff, + policy, vm_userfaultfd_ctx, anon_name); + if (tmp) + vma_iter_set(vmi, end); + + return tmp; +} + /* * Rough compatibility check to quickly see if it's even worth looking * at sharing an anon_vma. @@ -2332,6 +2351,18 @@ int __split_vma(struct mm_struct *mm, struct vm_area= _struct *vma, validate_mm_mt(mm); return err; } +int vmi__split_vma(struct vma_iterator *vmi, struct mm_struct *mm, + struct vm_area_struct *vma, unsigned long addr, int new_below) +{ + int ret; + unsigned long end =3D vma->vm_end; + + ret =3D __split_vma(mm, vma, addr, new_below); + if (!ret) + vma_iter_set(vmi, end); + + return ret; +} =20 /* * Split a vma into two pieces at address 'addr', a new vma is allocated @@ -2346,6 +2377,19 @@ int split_vma(struct mm_struct *mm, struct vm_area_s= truct *vma, return __split_vma(mm, vma, addr, new_below); } =20 +int vmi_split_vma(struct vma_iterator *vmi, struct mm_struct *mm, + struct vm_area_struct *vma, unsigned long addr, int new_below) +{ + int ret; + unsigned long end =3D vma->vm_end; + + ret =3D split_vma(mm, vma, addr, new_below); + if (!ret) + vma_iter_set(vmi, end); + + return ret; +} + static inline int munmap_sidetree(struct vm_area_struct *vma, struct ma_state *mas_detach) { --=20 2.35.1 From nobody Fri Sep 19 02:32:03 2025 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 2C0D8C47088 for ; Tue, 29 Nov 2022 16:45:31 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S236079AbiK2Qp2 (ORCPT ); Tue, 29 Nov 2022 11:45:28 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41454 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S236037AbiK2Qol (ORCPT ); Tue, 29 Nov 2022 11:44:41 -0500 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id D850E5FB83 for ; Tue, 29 Nov 2022 08:44:36 -0800 (PST) Received: from pps.filterd (m0246627.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 2ATGPi3V017345; Tue, 29 Nov 2022 16:44:30 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : references : in-reply-to : content-type : content-transfer-encoding : mime-version; s=corp-2022-7-12; bh=Ufnemc5E8l7su13CiARu4CuypqBYWD/DnCBOjfPQad0=; b=pWDX0u0G37VVN0JAoEcpb6q99moeUBzKU9bypuK7vlfRRWTp8X1ekyIgQeFAo2hInO/b iT0GeZpzEF2HWRk5qsqoxqYtozgwlAEuDE5seHlsPChrfLoPtSKSWUMH87TXRnnI664f njOE/J280GViOGuLIBxmV32GAtGr1xSEBL2Kql6/gYGffjgnzyoBJX16ymlV8wPzKkFK 4JesEp0WV5ICzrgxri8HD3JTdACRcmmJ/o6vVhqSro7ePYgrDITA0UR2pGvfxeHqi26N QjGF/HnMIfYUbiQvkIhFLq42xc1hbl8Wdkxc8FWOlQ6K5ejNVPT4qBIoSdR+x7UdjYzb aQ== Received: from phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta02.appoci.oracle.com [147.154.114.232]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3m3xht6hmk-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 29 Nov 2022 16:44:30 +0000 Received: from pps.filterd (phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (8.17.1.5/8.17.1.5) with ESMTP id 2ATFhsPd027963; Tue, 29 Nov 2022 16:44:29 GMT Received: from nam11-co1-obe.outbound.protection.outlook.com (mail-co1nam11lp2169.outbound.protection.outlook.com [104.47.56.169]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 3m3987f2au-2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 29 Nov 2022 16:44:29 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=nULxEEnSGeMNS40XL+NEMXEK6RtRW25mv8UconbZ1tSh0YYD71vgu+Yi2WbKmQ0GAATCo2Ms/KpsYrKvfrRwavWJpdv4twCXNWOxnisGBY7Ba31v78T/aegsg649HMizD8BZjaDPelFQ4OQ5fBUP2w6h3t6YywR61TUpppHeYvUMFBZkmO9HU+ymDG495B9/aYcX4DRgS3UhCFB3xF9fXBxkfQziSHADNnHtpVkHgl+ZH9Q4Ji5I27YblWb5ydfBfJf4JzRH1hpTLS7cXplIomS6Dq3bCdmZi95q9TVn2GfE1DWdwwhqOHygOVyx1HS3wqbY5NFu/QuKcm8NgXESxA== 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=Ufnemc5E8l7su13CiARu4CuypqBYWD/DnCBOjfPQad0=; b=lCXjg4jBDanCLibEZu5I55AwIM7Dy8txKxZW3N/JFpw6ab1R0aTqg3N3THQUyFRQUlbPHerJU81mwzmcCWJX350a/uOhfoFddeAC0CoJIuuh/dYO1cAYAgXqVk+qILnyzsqmHDYREEVd40eJatPDA3D88AYYnF5ogrg+xfIoo9fe17G3caFMuOpFVgfwbTatKerqTpZxdOjsF9cBO8hR3brpB/vKPDMRwnavyYBU/sWBvikGnHweRlzLVyCL0ZflaZv+22607SKrwyNcJnqu13JBV0003Xxmt5sFpl+JgOTsXq8A1oY+8+3O8Cubc7pE8ooTYdvZBG9FQvGxJ55ICA== 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=Ufnemc5E8l7su13CiARu4CuypqBYWD/DnCBOjfPQad0=; b=xhuZ3HEiJnFlXTSUStNktkK/Hp1V46Jpf1oXHTNxH70Bmuv3cSRXjbD4ZNtK5w9a3BgnpAWDVQd2Sx2koLHCFWy5lb1W+J50IMguVf470m8EA7kw7ClV9BTJ77eGP3ZS74/tjmAYkkb2TcpwGfLXzbmJNgws76RmNVJA/L2ALYc= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by SJ0PR10MB5788.namprd10.prod.outlook.com (2603:10b6:a03:3df::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5857.21; Tue, 29 Nov 2022 16:44:27 +0000 Received: from SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::a02:2ac8:ee3e:682]) by SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::a02:2ac8:ee3e:682%4]) with mapi id 15.20.5857.022; Tue, 29 Nov 2022 16:44:27 +0000 From: Liam Howlett To: "maple-tree@lists.infradead.org" , "linux-mm@kvack.org" , "linux-kernel@vger.kernel.org" , Andrew Morton CC: Liam Howlett , Liam Howlett Subject: [PATCH 13/43] ipc/shm: Use the vma iterator for munmap calls Thread-Topic: [PATCH 13/43] ipc/shm: Use the vma iterator for munmap calls Thread-Index: AQHZBBHXQ2dH3de69kOOD2y6QD9gPw== Date: Tue, 29 Nov 2022 16:44:25 +0000 Message-ID: <20221129164352.3374638-14-Liam.Howlett@oracle.com> References: <20221129164352.3374638-1-Liam.Howlett@oracle.com> In-Reply-To: <20221129164352.3374638-1-Liam.Howlett@oracle.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-mailer: git-send-email 2.35.1 x-ms-publictraffictype: Email x-ms-traffictypediagnostic: SN6PR10MB3022:EE_|SJ0PR10MB5788:EE_ x-ms-office365-filtering-correlation-id: 5967641a-894e-4cc2-80d7-08dad228faa1 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: Tot/ScNto2RuoVR0KwYAhqU1E05AqwYPitBsG8OrbeY3dxQ+/1uIHaamdveHAOsr5fQynIEACCo+DZ96T5HpKL34fi+YRFQ2otb2JcofWxAelPFrhucPipAlkpTGk4luzeJKh3V14vFGRPRuXMVJAUTwl0XG/fVyNKpcA8RhsxSs4Qd9xFfnb/Xnt9qkgVDPe0j9OgbOSUFSuPgeIbAln0OAAB3xuEI9OUgHWvlx2DxYRKYUQXkVQrr+GUcrCS43Rw8s72zaM7rNPvRGVTqHwXA19e1cd3AXfmLRpQxIevR7YkEF2u4H9pTgdfvpzI6KqfutS9e4J85EeFhsJQkm8Pdb81G6hhxqqc5F67LCf3nDAiSbCBhU3cDksGAh5UPDyBc8+FvPE08LShUzBIyCe62FzddEPl9fE2heMsWaHmCK8MA/he+rZJznP3jEWa0JEYcTGOFKb1hkXdW37idQ6nEkKrOUkDYqL+oGbOYw0CmXjuwLm73Yt1Xw5JRj/o3l5VURFzVPhYoC4ZjPzkPxlpQXV+PehEFFIvBCjVycSdYznuJaHdwvNNcYRN/da07mhM4B+DjqFttpeiaxn5MPepH9ZDD8TXOrpdSvwe2YLBvHbi1vwEFue3mS6H3USlL/rbbNjtF8ge/oQZ9ZO1g5W3c8wiyyNGeHbX52jbjNurpxf0K3lJERayxJBImlsnHfWbqP5l/OLlUxs2+e8/IxYw== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SN6PR10MB3022.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230022)(366004)(346002)(396003)(136003)(39860400002)(376002)(451199015)(2906002)(44832011)(41300700001)(76116006)(5660300002)(36756003)(54906003)(316002)(66446008)(110136005)(6486002)(91956017)(66946007)(71200400001)(4326008)(64756008)(8676002)(66556008)(8936002)(66476007)(6512007)(6506007)(26005)(2616005)(107886003)(186003)(1076003)(478600001)(38100700002)(83380400001)(38070700005)(122000001)(86362001);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?Q?ZFWJvYYL4G5RhTO+KvydPzvvIx+xipRRo5gp3N2fYPXaQSSHaN3827WNSL?= =?iso-8859-1?Q?K8CNw6BYAZxIFEiTM2R7CaBgSWa+UIpVyzsTr85ooocazrn1N6m58qcSbi?= =?iso-8859-1?Q?qJ3JysdcNXYsZ1GmniP6BgAm6N2tnfw5VzaLEk478i0hxYCmaPo6yxsHpn?= =?iso-8859-1?Q?IS2YtLhwV5BCTmkxwhhNiYTpqpqGTi8gjeHuaMfiXCyJF0isN77tq9pf3x?= =?iso-8859-1?Q?MEinfJ9reSfyx07v6GutJpb2Xj7zTAsGuuvsIwOP1Hf6XgUYdQe1f3AaE9?= =?iso-8859-1?Q?L4OewFGwkzd+lGGjvv4wWTcbwxOixL02fgYm0LUVmHokACWgkrxtPkAKcO?= =?iso-8859-1?Q?FQ/EGswC+hJTuMIfTXWhCGwxFh09HLiPHedE7mgF2UfvS+4L3Xp/8Bdcx0?= =?iso-8859-1?Q?FLdkJ2bWTp2W5SkPdk6F7zSfvMb25bHSEqnjUkmR1WThehRzxDcKWk8KMf?= =?iso-8859-1?Q?k8MzTCOaKwJ99Z7xf0T6UlqnOEh6Ug/WRfb0xthnMYUyZYGPT5WrDz4D9f?= =?iso-8859-1?Q?fL8uEKa0RVIhj3kZOJ13zAepHPVkrko2J/cPTBQ0hCsQPxfnsRN10rVucN?= =?iso-8859-1?Q?fFFkC8k0jqweyN/5YnAVGfEojrvcGg+w3zccgcxyR/5z4fh2h/9IdUU0PR?= =?iso-8859-1?Q?B3gxNNFMdPGKXZh/7GyVHFjsmAsfnD5pU5YdGbKntxoUfnH8+IYpNrhvkn?= =?iso-8859-1?Q?VUBf2Xy0pYf5UI9nmvoDrCD2QzvejQdQU2foYrpOgVwUZhcU50d3ouDNrh?= =?iso-8859-1?Q?xL2N9rSYEWgMWIIXV11ynYrISdZr/2I0k8F3zmeqh2BT8PUSlrQfYIqvTi?= =?iso-8859-1?Q?J+k3Phard4nRb0i94J6QuEY/zjEToEo/LNI1B399AGNhler6ldpOf7/o46?= =?iso-8859-1?Q?oXmD0lfUoSUkYOM9hnjYWqAn11owk8UADVpNQ1fKAslAWEQFuvdYLog6AD?= =?iso-8859-1?Q?EGm74wV0CETGKiFT6TCHoxPndpKVW+KnnQDS2qFC135GMGXWuCZ+jyZ/Qm?= =?iso-8859-1?Q?6VypM99RW1IZRWCg3itX4J8rNRF7iHI8UBK0YDDdQM4xNGKR2mzbUwrQ0M?= =?iso-8859-1?Q?h8sIqx/Y7UUybrozD0szA8auyLsuEHiK0sy84kvGHRTZzdV2TrlN64em4G?= =?iso-8859-1?Q?eVgCyv/LR4MLUhHGaQGS/zXhfByhv5XR3cnpo1QYUATObmYQTzTov/M8Ge?= =?iso-8859-1?Q?dsCbAfES5ZX5jt3BjKaMmrDQA/5MdtcR7MF74Cy8cRCulb6N68T2HsAbM8?= =?iso-8859-1?Q?ynLHBDueRH5x8OaDP6aryYEJv3SeGqME940h8XFcQRqFBV+/HAGDPyP14V?= =?iso-8859-1?Q?tP0M/o3kqxXEDZTAchRPjkes467luhKtfj/ofm5we88odZGPwc1vxJswHs?= =?iso-8859-1?Q?FMbfkX4TOk2SzsbxOKLmsTYhMOAbmSj2tSiijFaynz7Uq4QaRQVzL15+Q4?= =?iso-8859-1?Q?2KUbnckoS2H8rXTcg9LZsyc9ab3Ytnmsdx+9OLf+NSIfQEDf9JQDo8iXMj?= =?iso-8859-1?Q?ZlA0o1qTcGpzasD8Wh5j7FyKQHKlm61gVpw28LvDfMpz/G4kuvOH+rP+dh?= =?iso-8859-1?Q?4P69AhCvr5J4SQs0gPIKR731NYsTAxubAyveUazaH4B1jhOBAdakMaqqjB?= =?iso-8859-1?Q?fFn0c+wM/BfGOUMVrz/9Awc90DOVcEKX00cGlEnpYkkf50j5+bM4zxJA?= =?iso-8859-1?Q?=3D=3D?= Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: iRdC+b17qSHaNRViSWpk03u1eB2Xa32CEYGHLSG+IDCI+lgV7DUl3EiNxHRZrPdph31N8h2kkbU3a3NP6sQtgPsdSHzJ3oYzq8c47ST1dJ09jWH9Sv06x9C1BASRXntocmDbhWfeIrfZ5CVW8hJ8+jPgaLAgZ3PZsA2KUCMt95lbqQK0m84lEmnYo9st5/M4wi3yySLbDG7QyjcamZf2U3kzDXc6x274PvVZQzPb/c5CXa9X/42rzFeXWdMHeEfsZoGv1sf/c+ZUSKMtIGfWxGntfzS2r8eGcYp+NFO+G1pHhaEm6IWDmW5cYE0Dccg4VNUWBcO0CdqcsFjoI+uDPXWzd4mGHktt8IfuIhtt5LA8qKYmGfZ+skRgUqs850JcTuagx0o/lna6+b62tWVPsCB+kn6Dw8/KFPvzCvIckRE8VN5OaRcBKYzvzRV0xle7JqFX9ZDeczkOzxmtVYGfMh+JbKsGaEPWePM+wlUwYp5hPBqkkll9p+h5qcfLW+ooBq3Qch1sLrEAnKGfFIfEYuX+TNINNVdJvNuPGGygrhTKere72dCvJrPp5m+idz8P1qS4qC7S3ZF8U3Ft+Q3KPKPozfow9BmmKyK9kqD1kgF0nhPzrcbKvOycr3SRF9c2r1K8q3HCavd1JUo3sLICU5+fr5xzLf7q0Cec0IK3TBykCUD7boFGUCelBkrHyNqfBfF0E17wb9hGuSp0k57JTHEH/ozAvimYB9FLk8NkM9cfblX6g/m4aaixGk5Rs9PxqsyKkEEpXbFGz+/IcrD6FSAmyT9onKVFQXLo57eyqF+VHe3DZZzFybJfitFV0lFi7CsvMV9PoeeBqh08gQBWi1iamsukcCOEfK091whPvFR9ygkOWIRYlJ/G1jVA/ANevwPJrzj56k+AF9NNem/azw== X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: SN6PR10MB3022.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 5967641a-894e-4cc2-80d7-08dad228faa1 X-MS-Exchange-CrossTenant-originalarrivaltime: 29 Nov 2022 16:44:25.9260 (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: nvE+VmwZnqupaEdbCCvIKLK1U2IJmplM3SB/sgotp7Ro7afLwgYrV8UbNZZE17FsoFd5qUJSMxiHcXM+cDzrtg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR10MB5788 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.219,Aquarius:18.0.895,Hydra:6.0.545,FMLib:17.11.122.1 definitions=2022-11-29_11,2022-11-29_01,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 bulkscore=0 suspectscore=0 phishscore=0 mlxscore=0 spamscore=0 adultscore=0 malwarescore=0 mlxlogscore=999 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2210170000 definitions=main-2211290093 X-Proofpoint-GUID: EeGPAVROID8zDfWFbmAM5eutt2hLEJ14 X-Proofpoint-ORIG-GUID: EeGPAVROID8zDfWFbmAM5eutt2hLEJ14 Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" From: "Liam R. Howlett" Pass through the vma iterator to do_vmi_munmap() to handle the iterator state internally Signed-off-by: Liam R. Howlett --- ipc/shm.c | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/ipc/shm.c b/ipc/shm.c index 7d86f058fb86..b866a5ea2e78 100644 --- a/ipc/shm.c +++ b/ipc/shm.c @@ -1770,8 +1770,8 @@ long ksys_shmdt(char __user *shmaddr) */ file =3D vma->vm_file; size =3D i_size_read(file_inode(vma->vm_file)); - do_munmap(mm, vma->vm_start, vma->vm_end - vma->vm_start, NULL); - mas_pause(&vmi.mas); + do_vmi_munmap(&vmi, mm, vma->vm_start, + vma->vm_end - vma->vm_start, NULL, false); /* * We discovered the size of the shm segment, so * break out of here and fall through to the next @@ -1794,10 +1794,9 @@ long ksys_shmdt(char __user *shmaddr) /* finding a matching vma now does not alter retval */ if ((vma->vm_ops =3D=3D &shm_vm_ops) && ((vma->vm_start - addr)/PAGE_SIZE =3D=3D vma->vm_pgoff) && - (vma->vm_file =3D=3D file)) { - do_munmap(mm, vma->vm_start, vma->vm_end - vma->vm_start, NULL); - mas_pause(&vmi.mas); - } + (vma->vm_file =3D=3D file)) + do_vmi_munmap(&vmi, mm, vma->vm_start, + vma->vm_end - vma->vm_start, NULL, false); =20 vma =3D vma_next(&vmi); } --=20 2.35.1 From nobody Fri Sep 19 02:32:03 2025 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id E499BC4167B for ; Tue, 29 Nov 2022 16:45:25 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S236148AbiK2QpX (ORCPT ); Tue, 29 Nov 2022 11:45:23 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41474 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S236041AbiK2Qom (ORCPT ); Tue, 29 Nov 2022 11:44:42 -0500 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 35A3A45A21 for ; Tue, 29 Nov 2022 08:44:39 -0800 (PST) Received: from pps.filterd (m0246629.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 2ATGQ1w9012682; Tue, 29 Nov 2022 16:44:32 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : references : in-reply-to : content-type : content-transfer-encoding : mime-version; s=corp-2022-7-12; bh=dwXa96mmtavLyIPWSQPEFi0lfaZOBC7s5fNRIY0AmIM=; b=qZC6ABVp6NVmfAQMQf/baXeaBywWla98HK1pfviHMFEses52yc7czsDWRFgEgSuodjsq jwpWi30bIwmDh9xfLG3x/y45tUCphLrpCeztXgCarQLtyy7pgzEUTEPKNb2J+3oOfqXd x8NNaGECcOuDKJPVe+Vf9fB2yWntIHD/zCRuNbYf/RESXxiE7PnjxKAIjD+zA+dFnivh rPUjzf4f0KkCxV/mlOnvytI6HY8ndMdjPLRYJai62udW32NepAnuOM6+PgqQc6PA03o+ 3PKL5IX8h06YeNt4z95Pe12+4Pon1dvnWeKRcSEDngWsHjsm4V7w8DizhgXAxZUMiuxS bg== Received: from phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta02.appoci.oracle.com [147.154.114.232]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3m4aemdn97-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 29 Nov 2022 16:44:31 +0000 Received: from pps.filterd (phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (8.17.1.5/8.17.1.5) with ESMTP id 2ATFhsPf027963; Tue, 29 Nov 2022 16:44:30 GMT Received: from nam11-co1-obe.outbound.protection.outlook.com (mail-co1nam11lp2169.outbound.protection.outlook.com [104.47.56.169]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 3m3987f2au-3 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 29 Nov 2022 16:44:30 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Xz0Bks5vH/8wveBZR4UwZooch1nzjvALHnSL9At8AIkabXhh1canu3Coqh7j1ytxtCwtqnjf6hJAXgqEAa7BPhnCSrBzDvCOzvDjtZYfAhPV5Fr38/0MeO/QjEoh6LHOR69+NVtW6eTv7IadhNFsZX9cLbYBj+EDUvAN5YrKX1zPVqdmNUG4mQio09c00Vw6ZUwU4PcxlPyaCgP7nyYYIEOk+sbaMoOKGz9u8xsrGzLb6332qY8lKQdV9goyYdgI0Rce7H2bTRHBhp1Y7bGb+a0wIMWELqc+g5+ZW7bj4RWCerlTNlOmP1whQEUrQacloYYiPPYf7p/iTbOJRPPhYQ== 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=dwXa96mmtavLyIPWSQPEFi0lfaZOBC7s5fNRIY0AmIM=; b=LxvFIi/SFUzpxSLQPtZvn9o79DxXsWY9reu80h6iw6lpJlPv3g2Me0PxTLI/OYgDLHRDJudN7sVTqEbEf3JBfvDkDAQYJ70sTYTust1rK/zwq/TFTDgqm0Y5+mrCn8YmB7+X6VqT1o148+1ZNmSejLaL9Z+/WmtkDtCNiyGgN2bqAIT0+f3s3bQ2v3oCPsVwqnXORAKmWH1/oyuV4ZRajE4ey8YF7M8nO7xh6ve9hDtoH4fUFHGXr3kb63w+xroEAyBe2OZORSA/KYPF3vpsEfi5+kxC0ID2vJA4jQqUJfRQuOPKBhjf/X6kg1p43C+mz21h+SE5vUmfM86QMqT6HA== 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=dwXa96mmtavLyIPWSQPEFi0lfaZOBC7s5fNRIY0AmIM=; b=Fz09D0/cF0l8YUUgKZmRYAoVRGsuD4f+vU39Xle4l9deSeKrGw26iWiQ7Ec17UZhrkZ9XWl3cUBavEA2j2JC03iSqAuqLcqexcnbYUSeHW4WWogazQrU2U9QtlIyh+TWEb6BUu7No6MFa7obFV6YMe2sAziKVVQ3qmjtBxrBQ5s= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by SJ0PR10MB5788.namprd10.prod.outlook.com (2603:10b6:a03:3df::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5857.21; Tue, 29 Nov 2022 16:44:27 +0000 Received: from SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::a02:2ac8:ee3e:682]) by SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::a02:2ac8:ee3e:682%4]) with mapi id 15.20.5857.022; Tue, 29 Nov 2022 16:44:27 +0000 From: Liam Howlett To: "maple-tree@lists.infradead.org" , "linux-mm@kvack.org" , "linux-kernel@vger.kernel.org" , Andrew Morton CC: Liam Howlett , Liam Howlett Subject: [PATCH 14/43] userfaultfd: Use vma iterator Thread-Topic: [PATCH 14/43] userfaultfd: Use vma iterator Thread-Index: AQHZBBHX3uY+RWqtqka1JFNycfUzzA== Date: Tue, 29 Nov 2022 16:44:26 +0000 Message-ID: <20221129164352.3374638-15-Liam.Howlett@oracle.com> References: <20221129164352.3374638-1-Liam.Howlett@oracle.com> In-Reply-To: <20221129164352.3374638-1-Liam.Howlett@oracle.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-mailer: git-send-email 2.35.1 x-ms-publictraffictype: Email x-ms-traffictypediagnostic: SN6PR10MB3022:EE_|SJ0PR10MB5788:EE_ x-ms-office365-filtering-correlation-id: 991585be-742d-4a35-2d03-08dad228faf0 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: o5srJ630F4/Ry+rF8MYYHv6GQvl+44cb10PGIFkLhG126FPnlf3pKH7dQv3XG/OGjeKclitDD3iSYtIkMczcwj1WLTtGV/BOEN9OYvESN9klia9dCaNWNGWkE+mhD93pqTXJZn32LjQjXNyLZmNo6J4iM6v/T3MVOt0aks7xBbLIEWolk8do30YteGvLOBnfy+AWTcub3Clm1A62Lbd4/ChGNIhMG6nhCLJvnUDkoBpqogmCauFwWXPTaPL2zWNNiahBHdatz/2WHEx8R/WLtspDUMgCSttjVQR4GRdcibYr/HXmxosyZ7vDeIXSFt3LYIg3zPGVYGJMYkVtbcmIGJ5voqohoh0zTKDG2IuNJe/YdYcaaU7waza7/L9pBHSVnqYGfMfAzCIIJV8YRD8VhfPKVL0vf3L2FcXo7Dk5Kc+xtM5FfqgmdzRPw4bFC9C9UcHYt5FgcMgMq656KZaupFIPbVyzBYsugfXBdk5+3EwRAr+1n/HYZ46mME83GJOf60SvM2LpudGdbdES3xXKWgNvkxfZBxN46v9xkUX9/lbNurMZp8qiU1CZCFdUE11oWwP78YYoT+Vv3JZSnBHgJtzNMp8bhSFIY7O8L7njQekLYXRwtczd0AjVpRSDjisXUWhhtZThjq5DF0OmDp5+A4AqENhOS4tuUTMsrdbeBfedB7FtU/pRL1hbcjUy8/7dg7h/MCEQrZjHag67vM46ZQ== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SN6PR10MB3022.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230022)(366004)(346002)(396003)(136003)(39860400002)(376002)(451199015)(2906002)(44832011)(41300700001)(76116006)(5660300002)(36756003)(54906003)(316002)(66446008)(110136005)(6486002)(91956017)(66946007)(71200400001)(4326008)(64756008)(8676002)(66556008)(8936002)(66476007)(6512007)(6506007)(26005)(2616005)(107886003)(186003)(1076003)(478600001)(38100700002)(83380400001)(38070700005)(122000001)(86362001);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?Q?TRkzgKfP9OK1bxSRvYpHDinZdiJBVWChSmpMRY4QxF2LKN/0XIbvYFNqI0?= =?iso-8859-1?Q?xoe60iJETDHhESNkZ42ix7s2fas4Pf3Dz9oS47MlWZAYMKNi1jnvcTn03f?= =?iso-8859-1?Q?buzt6RtE4BmpTSz0o85GxN1IsRXNJFlP6c4NkwM/rNuG7eARhs1MbhcvGG?= =?iso-8859-1?Q?x4weYW8e8xHc029D4Y45H5Ww2Y/J4y+kaU9r+2GBGPG4Xml6ddJfex+z9j?= =?iso-8859-1?Q?uMBDngkNOSRNRBkB4UJtpTF4v4Gx/DaiUhkUxlmciueGHw+EYDQWmt+nOS?= =?iso-8859-1?Q?VOMCmikButGFSphDdnfp7P9ZlKLAqrchEERU5ROLDQQd82scdaaFYT+3Xe?= =?iso-8859-1?Q?E78/8kGCEncFdhi1CRcFZevGl0MMMRWIDD3mSiG0TP0jie1o+EtJliYIds?= =?iso-8859-1?Q?n6czASHVR1HvXHxZHyDkgY3EgN/9bkNs6i8jOGNk2L3cqwDJkhO6lTW4NR?= =?iso-8859-1?Q?TraaBUfBQcZXRUHcEvJW+N2PndcPX8wG6U67yUypaVTk2BIw8zZvYTMPLb?= =?iso-8859-1?Q?+iQvQPTmFtu8FmadFJruKVQ3GP9SMOvdU/Dmqomr3ZHTiAA3LJhLhZodcC?= =?iso-8859-1?Q?2b7SapxLcERav/ZjJFQf95qTaiPRniIF7MnLNNKmFoAOs4Cfa+f1wVTvAF?= =?iso-8859-1?Q?SJtxjmBD3q2P/klPsHn/C5fO4sBKOekZ9l+5LZnr+ZBqRHD1vsUr3veL89?= =?iso-8859-1?Q?hWXHrdfyY4BsJkXtP68FbPVGofyUQhpE9U+VBMsievrNoFriONSTTycXad?= =?iso-8859-1?Q?Kn0omVOj5XLsCV154P2VpCYAOr1CrLTpnSufR9jct01rWd52/cY1WWwIw3?= =?iso-8859-1?Q?ZowXiFr/ZG7p2ZMgfPuQgQO8zXumAkPa4/ekG8v2lWSpasLqBoFUdSL03y?= =?iso-8859-1?Q?CkCfVUWqPBQUmf5EoP78vvXWNFml5bS+wxwkwW5gQ4DcTQMZBwCzqt47Qg?= =?iso-8859-1?Q?LTAOQpPtwO1i/KxJqzbFq14hnxxDfP2faXNlIUpSCT2S3ryM05MqqEymF9?= =?iso-8859-1?Q?f3uP28+8JVREmPlqWK64shIAZOLf0BDw1oEHfSFqllAX1hhiXXNimNoX1C?= =?iso-8859-1?Q?DcMVOK6QT7a0nfWK8H0tiLLHe1cngt3vehVcOFLbUUKAoxzOAyjY7BKgKU?= =?iso-8859-1?Q?X1tvr1BDju/h3cunlfiDC0tzWZGeiibbrMk3JpHf+KzLAQCA3QL6j+hzGk?= =?iso-8859-1?Q?bylClmPyRJLFpO140CmNDFrAmVUlbRzn9MQcAK9px3OpL44haxCTHYyRxh?= =?iso-8859-1?Q?dY+0LacwvwYb30zqWyavgkQSIAhwoZqU09MecgU1K7zj/UsOf9oBed7eY6?= =?iso-8859-1?Q?0+PDjqtXqHI8Bxz4fdzZPGd2SMOUMIoP38Nc05rrJdByc+hiSLSbP4Iiyg?= =?iso-8859-1?Q?hrYyEPFcRalGU9vCZFdXGnQE808828vBQRguupJrt/czpde/Smq0xS/0rT?= =?iso-8859-1?Q?aB5GIjbcJKOngEo3+iTseAHtKKIMUDUQvMuBkPzTrl+UM7mA/FE3uuQbUx?= =?iso-8859-1?Q?v275RNoiIh8hM+i9GtejeUVzzfEbg7U76d+wvC3I1/69aQY52SLQ+HrOgi?= =?iso-8859-1?Q?E1yKfsxBRpr4vyy57e9SJpudwauqqTyDrVrf85joZrM59t7wdqvUBhWeAO?= =?iso-8859-1?Q?tRe08TvAvjhqoLZGor1bZX9b7FL0+hOrQpZY14LIEbAL5gmwDufVPpVg?= =?iso-8859-1?Q?=3D=3D?= Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: FYPs9CNaVHZ307CUZTFI10AvihGHqRdHJCHqu9E4C4C4SRUnVJHS7z/JgjNNhYW7jaCB8kLsEijKV9idMB2IW9vY0N0lhfKVcjUi7hEPfGIm0wKKIX8eVkutDa36KO22+MB6gTCstGj7ZXxiEVVITgWFRdmldJ4nl2d9XlZSmwOe/1nPEP7QF/R6TgZ85bMueVoM9cdh4eRBxaP0UDwDsl6rUCbzEvGXRRCPbwDnw8mt51e1YNfxQfZ6u6guiWP7gMwrGz4dM3FPw3mp6kCbfXr6CPl0laJLyqTdE+AqvEWLf0vFYH1qnAAyul4HIyNB0A22V/F7rsuCUwogSKW7Ss5jttN9G+6qCYT+UUFcYO2il/kmwtbH5l0UlHUpql0g2OgzeuKlUN8OmZfsrQqoU2ap+XKNt/LRXuNEN9ng2BRkcnLhV382d8C3XphL/4jPN238sNYAW5X8ewFRoIVI/FEfTLeS3W8962YpRwdDY0rvP3LOX78G8tIv66JiSqLUk467xtQ51ZQi4bkIk7nEYoLPVNiMRfkv4BykMm/k/zKrQ+hFn88329hi4drMCKygHPooQHmcq/6pR6G7yo8vNJ+3HFoXcUm4FEJFZnCn13k5H3s1KzsPFeii5xOIxY3S8NLhMvFsBxCPAUOWzY67E+YM7n/vPhXiWBTtqkvLhBX6VXW0uDeBMgzzVVtsTR8zldjfkVhenqnGayh+fVZfpdqWHAuO0VhNIcHoHtqoVOB0ZvJQG1SefZkESeqit5iEA1uqqapV77TalsucG6bGD+QMkch11h3vHuaIwmUTb7dofSnEwFDKLU31di1GV7syES0e+Ahdz7BmjK2e9GzoWMUdmfiydiZmIKLYxccKfFOnqB2d1Fh8645I+SLO5ClrivBfjo6Bat+zLe/aOMa5Rw== X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: SN6PR10MB3022.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 991585be-742d-4a35-2d03-08dad228faf0 X-MS-Exchange-CrossTenant-originalarrivaltime: 29 Nov 2022 16:44:26.3791 (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: 10EMOJUE3mEAJCI9txv82yd0Wrt5xOP3I0ojDBLM+jBCZ1vLH6BL99qqmxVgJp0GaESVwREc+nIuz9HYInkFhQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR10MB5788 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.219,Aquarius:18.0.895,Hydra:6.0.545,FMLib:17.11.122.1 definitions=2022-11-29_11,2022-11-29_01,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 bulkscore=0 suspectscore=0 phishscore=0 mlxscore=0 spamscore=0 adultscore=0 malwarescore=0 mlxlogscore=999 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2210170000 definitions=main-2211290093 X-Proofpoint-ORIG-GUID: gJIjFeg_44BfRx2EX6AxeBTR5ezgQXsq X-Proofpoint-GUID: gJIjFeg_44BfRx2EX6AxeBTR5ezgQXsq Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" From: "Liam R. Howlett" Use the vma iterator so that the iterator can be invalidated or updated to avoid each caller doing so. Signed-off-by: Liam R. Howlett --- fs/userfaultfd.c | 88 +++++++++++++++++++----------------------------- 1 file changed, 34 insertions(+), 54 deletions(-) diff --git a/fs/userfaultfd.c b/fs/userfaultfd.c index 98ac37e34e3d..b3249388696a 100644 --- a/fs/userfaultfd.c +++ b/fs/userfaultfd.c @@ -857,7 +857,7 @@ static int userfaultfd_release(struct inode *inode, str= uct file *file) /* len =3D=3D 0 means wake all */ struct userfaultfd_wake_range range =3D { .len =3D 0, }; unsigned long new_flags; - MA_STATE(mas, &mm->mm_mt, 0, 0); + VMA_ITERATOR(vmi, mm, 0); =20 WRITE_ONCE(ctx->released, true); =20 @@ -874,7 +874,7 @@ static int userfaultfd_release(struct inode *inode, str= uct file *file) */ mmap_write_lock(mm); prev =3D NULL; - mas_for_each(&mas, vma, ULONG_MAX) { + for_each_vma(vmi, vma) { cond_resched(); BUG_ON(!!vma->vm_userfaultfd_ctx.ctx ^ !!(vma->vm_flags & __VM_UFFD_FLAGS)); @@ -883,13 +883,12 @@ static int userfaultfd_release(struct inode *inode, s= truct file *file) continue; } new_flags =3D vma->vm_flags & ~__VM_UFFD_FLAGS; - prev =3D vma_merge(mm, prev, vma->vm_start, vma->vm_end, + prev =3D vmi_vma_merge(&vmi, mm, prev, vma->vm_start, vma->vm_end, new_flags, vma->anon_vma, vma->vm_file, vma->vm_pgoff, vma_policy(vma), NULL_VM_UFFD_CTX, anon_vma_name(vma)); if (prev) { - mas_pause(&mas); vma =3D prev; } else { prev =3D vma; @@ -1276,7 +1275,7 @@ static int userfaultfd_register(struct userfaultfd_ct= x *ctx, bool found; bool basic_ioctls; unsigned long start, end, vma_end; - MA_STATE(mas, &mm->mm_mt, 0, 0); + struct vma_iterator vmi; =20 user_uffdio_register =3D (struct uffdio_register __user *) arg; =20 @@ -1318,17 +1317,13 @@ static int userfaultfd_register(struct userfaultfd_= ctx *ctx, if (!mmget_not_zero(mm)) goto out; =20 + ret =3D -EINVAL; mmap_write_lock(mm); - mas_set(&mas, start); - vma =3D mas_find(&mas, ULONG_MAX); + vma_iter_init(&vmi, mm, start); + vma =3D vma_find(&vmi, end); if (!vma) goto out_unlock; =20 - /* check that there's at least one vma in the range */ - ret =3D -EINVAL; - if (vma->vm_start >=3D end) - goto out_unlock; - /* * If the first vma contains huge pages, make sure start address * is aligned to huge page size. @@ -1345,7 +1340,8 @@ static int userfaultfd_register(struct userfaultfd_ct= x *ctx, */ found =3D false; basic_ioctls =3D false; - for (cur =3D vma; cur; cur =3D mas_next(&mas, end - 1)) { + cur =3D vma; + do { cond_resched(); =20 BUG_ON(!!cur->vm_userfaultfd_ctx.ctx ^ @@ -1402,16 +1398,14 @@ static int userfaultfd_register(struct userfaultfd_= ctx *ctx, basic_ioctls =3D true; =20 found =3D true; - } + } for_each_vma_range(vmi, cur, end); BUG_ON(!found); =20 - mas_set(&mas, start); - prev =3D mas_prev(&mas, 0); - if (prev !=3D vma) - mas_next(&mas, ULONG_MAX); + vma_iter_set(&vmi, start); + prev =3D vma_prev(&vmi); =20 ret =3D 0; - do { + for_each_vma_range(vmi, vma, end) { cond_resched(); =20 BUG_ON(!vma_can_userfault(vma, vm_flags)); @@ -1432,30 +1426,25 @@ static int userfaultfd_register(struct userfaultfd_= ctx *ctx, vma_end =3D min(end, vma->vm_end); =20 new_flags =3D (vma->vm_flags & ~__VM_UFFD_FLAGS) | vm_flags; - prev =3D vma_merge(mm, prev, start, vma_end, new_flags, + prev =3D vmi_vma_merge(&vmi, mm, prev, start, vma_end, new_flags, vma->anon_vma, vma->vm_file, vma->vm_pgoff, vma_policy(vma), ((struct vm_userfaultfd_ctx){ ctx }), anon_vma_name(vma)); if (prev) { /* vma_merge() invalidated the mas */ - mas_pause(&mas); vma =3D prev; goto next; } if (vma->vm_start < start) { - ret =3D split_vma(mm, vma, start, 1); + ret =3D vmi_split_vma(&vmi, mm, vma, start, 1); if (ret) break; - /* split_vma() invalidated the mas */ - mas_pause(&mas); } if (vma->vm_end > end) { - ret =3D split_vma(mm, vma, end, 0); + ret =3D vmi_split_vma(&vmi, mm, vma, end, 0); if (ret) break; - /* split_vma() invalidated the mas */ - mas_pause(&mas); } next: /* @@ -1472,8 +1461,8 @@ static int userfaultfd_register(struct userfaultfd_ct= x *ctx, skip: prev =3D vma; start =3D vma->vm_end; - vma =3D mas_next(&mas, end - 1); - } while (vma); + } + out_unlock: mmap_write_unlock(mm); mmput(mm); @@ -1517,7 +1506,7 @@ static int userfaultfd_unregister(struct userfaultfd_= ctx *ctx, bool found; unsigned long start, end, vma_end; const void __user *buf =3D (void __user *)arg; - MA_STATE(mas, &mm->mm_mt, 0, 0); + struct vma_iterator vmi; =20 ret =3D -EFAULT; if (copy_from_user(&uffdio_unregister, buf, sizeof(uffdio_unregister))) @@ -1536,14 +1525,10 @@ static int userfaultfd_unregister(struct userfaultf= d_ctx *ctx, goto out; =20 mmap_write_lock(mm); - mas_set(&mas, start); - vma =3D mas_find(&mas, ULONG_MAX); - if (!vma) - goto out_unlock; - - /* check that there's at least one vma in the range */ ret =3D -EINVAL; - if (vma->vm_start >=3D end) + vma_iter_init(&vmi, mm, start); + vma =3D vma_find(&vmi, end); + if (!vma) goto out_unlock; =20 /* @@ -1561,8 +1546,8 @@ static int userfaultfd_unregister(struct userfaultfd_= ctx *ctx, * Search for not compatible vmas. */ found =3D false; - ret =3D -EINVAL; - for (cur =3D vma; cur; cur =3D mas_next(&mas, end - 1)) { + cur =3D vma; + do { cond_resched(); =20 BUG_ON(!!cur->vm_userfaultfd_ctx.ctx ^ @@ -1579,16 +1564,13 @@ static int userfaultfd_unregister(struct userfaultf= d_ctx *ctx, goto out_unlock; =20 found =3D true; - } + } for_each_vma_range(vmi, cur, end); BUG_ON(!found); =20 - mas_set(&mas, start); - prev =3D mas_prev(&mas, 0); - if (prev !=3D vma) - mas_next(&mas, ULONG_MAX); - + vma_iter_set(&vmi, start); + prev =3D vma_prev(&vmi); ret =3D 0; - do { + for_each_vma_range(vmi, vma, end) { cond_resched(); =20 BUG_ON(!vma_can_userfault(vma, vma->vm_flags)); @@ -1624,26 +1606,24 @@ static int userfaultfd_unregister(struct userfaultf= d_ctx *ctx, uffd_wp_range(mm, vma, start, vma_end - start, false); =20 new_flags =3D vma->vm_flags & ~__VM_UFFD_FLAGS; - prev =3D vma_merge(mm, prev, start, vma_end, new_flags, + prev =3D vmi_vma_merge(&vmi, mm, prev, start, vma_end, new_flags, vma->anon_vma, vma->vm_file, vma->vm_pgoff, vma_policy(vma), NULL_VM_UFFD_CTX, anon_vma_name(vma)); if (prev) { vma =3D prev; - mas_pause(&mas); goto next; } if (vma->vm_start < start) { - ret =3D split_vma(mm, vma, start, 1); + ret =3D vmi_split_vma(&vmi, mm, vma, start, 1); if (ret) break; - mas_pause(&mas); } if (vma->vm_end > end) { - ret =3D split_vma(mm, vma, end, 0); + vma_iter_set(&vmi, vma->vm_end); + ret =3D vmi_split_vma(&vmi, mm, vma, end, 0); if (ret) break; - mas_pause(&mas); } next: /* @@ -1657,8 +1637,8 @@ static int userfaultfd_unregister(struct userfaultfd_= ctx *ctx, skip: prev =3D vma; start =3D vma->vm_end; - vma =3D mas_next(&mas, end - 1); - } while (vma); + } + out_unlock: mmap_write_unlock(mm); mmput(mm); --=20 2.35.1 From nobody Fri Sep 19 02:32:03 2025 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 68F22C4167B for ; Tue, 29 Nov 2022 16:45:35 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S236160AbiK2Qpc (ORCPT ); Tue, 29 Nov 2022 11:45:32 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41478 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S236042AbiK2Qom (ORCPT ); Tue, 29 Nov 2022 11:44:42 -0500 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 165A65DBA1 for ; Tue, 29 Nov 2022 08:44:40 -0800 (PST) Received: from pps.filterd (m0246627.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 2ATGPitX017353; Tue, 29 Nov 2022 16:44:33 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : references : in-reply-to : content-type : content-transfer-encoding : mime-version; s=corp-2022-7-12; bh=ybgEjmcxyXzn6SLbjDkyF2beeUDZYojyrkcHjBc8Iu8=; b=OEWLMLbffHslJ/18Awg0yEguRcbo8lLg/dSWzbvLaNtsva0VU4aDiTM1RrVHRD0x88tj g5xgn9RPqQULJk1tNz4uuhefqZb9ud/GaIsu7xtXJgJHrWW1KkifilIoM/GVU6hKcdeu nc/2saK2pcL033QvI4i5bQHtIbutQytAobF1Zfo1s/nseqy+iVIgGYP5Bg4ZAnKoj9oa JL2ip7jK5QnFtbcv0Aoq2N3La4806l5TZamj8+8Q37dUsqu5HSZ7EHlQosl1nIbFDEoE 7cpV/x1DmUvPccmjt6DD43LU5uuelbU3QQzQSYw7KYw+orSdhY3wln3CtDvPFwp3Gj8z cg== Received: from phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta02.appoci.oracle.com [147.154.114.232]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3m3xht6hmt-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 29 Nov 2022 16:44:31 +0000 Received: from pps.filterd (phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (8.17.1.5/8.17.1.5) with ESMTP id 2ATFhsPg027963; Tue, 29 Nov 2022 16:44:31 GMT Received: from nam11-co1-obe.outbound.protection.outlook.com (mail-co1nam11lp2169.outbound.protection.outlook.com [104.47.56.169]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 3m3987f2au-4 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 29 Nov 2022 16:44:31 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=U4Akz1FZz6jA+McFm5JBGtYqorh1BhVYiYUwLfwBZjGD9zZXWhz/YykpYmrWFFAosji93kjUtNo2R6/GXvnE0+PYXuSBPiqSwsa6VcZeE2Quy4eI+/b8PDq2XN+2V92yCMe5FyUKb/roLh7LEo8a4c3yB0yZx7vNQm7YWH9aCQPmi3zBvJJbpoKLuMsNLkx3UEsbkwZOF+GcM0X+XLrwfnLctCV5L3aZ3cfyohArouzW8//hv78yEtriPf/v3BU2LgDq6be//df5yl7tEmwLLryzJrixYHlHWV430tdJ/Hqf2ba7G4potFxs5R4PriwPsJSrfcauZrUzxOXwjzb6NQ== 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=ybgEjmcxyXzn6SLbjDkyF2beeUDZYojyrkcHjBc8Iu8=; b=JNg+JsuugaTMXV/Mnb9/VK3sLuoEa44oFFxPn5feOFPX1q3MfSHfqzY4+2KSQWPPf/MbQ8dzJnOfdtFyawf33FV+yA12UYsqEeRB6zNKgkkCptpPcYsKT1XMJ3Vww9XIgOPn44IX0XeXGzGbNUKmt13p9q33or5NE4WzkEuPsV439lGx8aev40sV13swWnbn5q63PdTwFW30ycBnYwS6m8Ml8l0Oe5p+w0cgP5nJ0RGobmJAP8SBMFwrzzZZvJRpLCcfFws997uVrgp5FFfnVFcb8rVM+2MtuLRayjRhLnuh4Qa7gDYoaJVvAHkA2A0B4fuGfIQ7ZFh/w+j4jxtghg== 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=ybgEjmcxyXzn6SLbjDkyF2beeUDZYojyrkcHjBc8Iu8=; b=fyRMBgAzrhMmL5hUyslvImeTLw/aH2XQ3hsKoTiAZvbEGh3KfhuODjexI0Rg66c9QSTZdJz2Uz5kHG2mx14atRVDkYcxhSLeJgLjbBIGWGx6ovuHu+6urEIw9G5DqG5oHsOSdwxm5cOA94f4DlzEh4bGTG4vyuEFzL/gTmx/VNs= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by SJ0PR10MB5788.namprd10.prod.outlook.com (2603:10b6:a03:3df::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5857.21; Tue, 29 Nov 2022 16:44:28 +0000 Received: from SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::a02:2ac8:ee3e:682]) by SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::a02:2ac8:ee3e:682%4]) with mapi id 15.20.5857.022; Tue, 29 Nov 2022 16:44:28 +0000 From: Liam Howlett To: "maple-tree@lists.infradead.org" , "linux-mm@kvack.org" , "linux-kernel@vger.kernel.org" , Andrew Morton CC: Liam Howlett , Liam Howlett Subject: [PATCH 15/43] mm: Change mprotect_fixup to vma iterator Thread-Topic: [PATCH 15/43] mm: Change mprotect_fixup to vma iterator Thread-Index: AQHZBBHYq25QsAsFGkuJY4+12x9qFA== Date: Tue, 29 Nov 2022 16:44:26 +0000 Message-ID: <20221129164352.3374638-16-Liam.Howlett@oracle.com> References: <20221129164352.3374638-1-Liam.Howlett@oracle.com> In-Reply-To: <20221129164352.3374638-1-Liam.Howlett@oracle.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-mailer: git-send-email 2.35.1 x-ms-publictraffictype: Email x-ms-traffictypediagnostic: SN6PR10MB3022:EE_|SJ0PR10MB5788:EE_ x-ms-office365-filtering-correlation-id: a81fd741-1559-4f0b-14a4-08dad228fb3a x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: AhP29fq4oiWkcLtZfK2FfBDQN8hLrBJybBQEp3AWHEYTfQeNwX8FkGZ2wavL7Tw3QpDXfJ3zCDB/eBoLrdYxTOAvifJpYzdgbf1mHZpjpUy/36OD0KtIRWtS6TqR18Rc7I1PGtOe66Z5z4SBfF6AVeVioRQh58jvRHSu7tUhLQZqyzNxOe3RPXtH76E9WstdJNup8nIdX3qOzZXXeuftgS7lufiJsNtPjkv30mDHT+K6M4YQj2dbwa02bGP/FjzQsyfWZL23UafTG97H63NaR7DApVD6NcBMJ3e3lA1yqm99buVeAGRyH8Xcay/mlXrKPUVc37uOGgHnbngg3vKwfw6CecYKthzaFuDnB8XXbvNXgC20uB7oLA3XdKgRr1/sT8ugS2zsOdzx1CRLIzdrgnzijdfI+ilmyRIito92FnSD5rC9Tr9UhT9cSInqXy/vumeOEHnlfzSjhNi+xFKkxUE4mGKdAUwGiokQ8AkLCrve17Hssx7mpguPDasXuzrft59M8MOsNK13aU3tr6AhjhqTg6iQ5WyGbdWi7nAW7Vcbw7ktP4SSttQZVQwpNa8kSunATywNQ5lUMtLPiLkC4f4mcqWHF8g1zlxa9urd65PB+mbHHsAhcMpvq7k4QjAGXjRQSZJDHNzEfZMztS/qY9qVVRaM4cpS+wo4sPov3qA9LsZU4J/mbhSuvYFLza4Ct3q6nIvY53BrfZO2tIslJA== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SN6PR10MB3022.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230022)(366004)(346002)(396003)(136003)(39860400002)(376002)(451199015)(2906002)(44832011)(41300700001)(76116006)(5660300002)(36756003)(54906003)(316002)(66446008)(110136005)(6486002)(91956017)(66946007)(71200400001)(4326008)(64756008)(8676002)(66556008)(8936002)(66476007)(6512007)(6506007)(26005)(2616005)(107886003)(186003)(1076003)(478600001)(38100700002)(83380400001)(38070700005)(122000001)(86362001);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?Q?mpTdzyUUghgHK8x5tmaAbRKMIBV8y/w8dPze5xLingkBzwMEoKIphPDM+F?= =?iso-8859-1?Q?YaRy7hdzPBr7zT06k8uFXUCH86CiNLAg0WP5TabsR+3nF1Px2NYjsRNv+/?= =?iso-8859-1?Q?ZXP2Gd5sedF6jRNvPVDSAT+poCp9dKFL4N+7+LXSTdsuQ6NN80JeoIuQqp?= =?iso-8859-1?Q?kTTJi8Pv9joLOi4P4kXstzdfYfvYsrWBNE6VRd0xk7Tf3jNEr+CkU/Q6Lz?= =?iso-8859-1?Q?klYbOeKgjP1q0bTd8fSXV5J6OHwbRnzUBbJg+jLJoAspWyy1u5P/XCo1wM?= =?iso-8859-1?Q?KnZDqP95AtDihcMMOw2W67668UbgCkT3GC75DCtx4qP3J7a/9sv40AdrGI?= =?iso-8859-1?Q?z/ABZLSDTaquQl7Ek98hfYgQGGZsax+sVOBCmXAhFMryg4rBgdBYi1N/WA?= =?iso-8859-1?Q?agmFrMywzPjQPAaBzC/H+joGc/EtjdExRx2EX09vyVmZ6b+w+A4UDgKuKH?= =?iso-8859-1?Q?A4GUQ/fsvgJKeNFrxAebEOwKL2FydW8hwidkMXy3WmiAO6rZHJV+SgIxF9?= =?iso-8859-1?Q?VdvQ8XOhrsyz/oFwiGHgSS2iSoWwPFbAzRAJJgZtQPfrAfHqKv9WhWSF5x?= =?iso-8859-1?Q?vWhibJB23rq60Kh30AsyBhMcY0xjTnm78UVw5Q+kpoWod4LR5GTnex1Ct4?= =?iso-8859-1?Q?iz7G9yHiw6An+0xejKpzrbLq/P2aE7PG+n/cZbMwxMbjdlWlebw1z7a6eZ?= =?iso-8859-1?Q?wT/L5b2QT21yyYLS/UzyxGA4oAmQ4KWhkIuN5Ng5xZCzFE5SoY+68aXAr7?= =?iso-8859-1?Q?bVPmBjRYqHdZpR3vXkHJmIP1aRGCaHBlANQmd8eCtP6HK8M9J5Z8ufbQPl?= =?iso-8859-1?Q?P+KZqBUjsnwN2ryB6jwFoFuIO4stKwVQcEXMXCIBICXDi9EJ1Jpuh6djiq?= =?iso-8859-1?Q?vkRbI+J9HKkxlUMkGlza7f/cVzbjN93WyZCJnX/Lc7/LSCNzYyLadjVwZB?= =?iso-8859-1?Q?OgVAU0SNAQslT2WoY1g1jnS7xwdmIdfmK5EyFb2lR66eNGg0/ljzQVD6Kz?= =?iso-8859-1?Q?QycxUx1aY3dKEyH6fpP54hHXjGW1/zW4EqhjKI8IEpX20XDRSZmtDTdMAg?= =?iso-8859-1?Q?ajDRXklH0aEuY1ttQlaaATotHatYxiABMkXD9I1BCav+ZqWm2HfFbypL7G?= =?iso-8859-1?Q?6U+KfKqEvNeegGCg7Sg1FNYzxwaDqaRrzUC+1cEu7yKlPgWNRzU8IQ73n2?= =?iso-8859-1?Q?PuPswQGGyfQW5tvMvPQV45g4UuBvq1BpLP7ZvsS8I9aOB7t6cC+E/aY3wP?= =?iso-8859-1?Q?TaGO0o5v4vkW9XTviCAuC1M3Tuk8zAlxsnr9uT+FG23tFD5mcZzt0U3MEV?= =?iso-8859-1?Q?vZDtvaP7AYSzOacjG8bY6SWiSS20/xKaCnSgihDrsabfwA06Qx9Ctg+6fs?= =?iso-8859-1?Q?2HFvC2acLLEy9Iaws3W5EBSE4S4aNheNwE27LOkQvn8QDSISpSRWYqiPNP?= =?iso-8859-1?Q?+gFpucQ9Eeb2x30f3Bj80cemVw4AgVeWuO5+Gx8DgnCkoiQZNxAaGzwcVK?= =?iso-8859-1?Q?PlYp5d42Wl5O/kR2/O5SzXMi+FVk28CeboROwoTLhVrl8m5RyAPSGdLFGR?= =?iso-8859-1?Q?N/JKgw/5g4TN6VBZFWSSXrnFr7zyakXSIs1WlrsvQ/37dAzXhrqMd2S4Nu?= =?iso-8859-1?Q?kHU+INVH80QDbSOhwdHBSIYpQPc9JBTj4hApClfHStZHHhhPAW4Bs4TA?= =?iso-8859-1?Q?=3D=3D?= Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: +/Yk90iMIPqAYKwZCH6m7PaVxzeJRXEazq1iN1/cnwy4t+SDrB8BeOuS08q1PFJ44hIEl5maolm+Cmc61GYDS6QfCET1xlVjunJdQo6Pesss17uCGKC9zgUR6TGUsXwpMCTXIFQVlV+DrAQoMt0RbY3OZs+609FRyXUJcKGtAQj3jvp775xl4zNPxgScdfZ72Jq3htPUOVIaQtfIXqQXs9ZkeExhRUp/vyjG4b6dzxxgjuKpIwnQpqu76/xfInoZfd4VyFfNwKerCUnfE0bVi3c4Yszy5U8tFLuwVYWEL9fk4Q7JAuR5CWqRMfpsLbgsvpx7bY1JlHMdqjYWiZeiHuSTDjPZ/rrByRGjN2wsgPvnTBR3YtcjlWo8Ibyou01CBvbtKzGlTMwiH1MMBFHvRJvzULPs1LTjK4NJrk6Txz1S52Oe8a2HhxRMwt+eEmFLS9d4/F6BAEQLXMOyVRjuclVWXzpFXCDCw2wE8jCR9HRmP2fwOJDOGimPW5+2Xqw1pUWY/Qn6zB+BPy6FaMl9/UHJF2BO1Ka7lZvJph4rJkeqV35I3BR4JU6JPRYBgi70XbCoeJsdaH1tuaM1mhjBLhlKBOc+U0XNCVnLFbaq4LVqKASxBW5GDyaPd+6q2E/AGexTrPxM4QZYl3JkY1qNWGKCTdrFemjVe4clSv9cmJCX+AHswnCVGYDgQ8uI5j7ByocTbPVsZTccmOXdBSCt4HxWvOtgF2uhlme3ZKLj2hl8KETXbu8GjDouqqAMGlqP52DwMmT/86Q5+3kXEKVj4OU+BSE0VvZ4ACnS/vsM89Umy12GiB46uAN60KS3IzRz1st8Q4NI54WShYB84UO9nTfw61uzVm5nh0zHblumySY8Do1SdGCX4f0TcBLohoi7tkPqxfVjxKHJUWP2ESsbXQ== X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: SN6PR10MB3022.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: a81fd741-1559-4f0b-14a4-08dad228fb3a X-MS-Exchange-CrossTenant-originalarrivaltime: 29 Nov 2022 16:44:26.9884 (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: 4gwJkyMRyt4Nyrs4r/j2weEKx3xWZlARv32Z8swXSNqVx037+jR0rq54XoZCKUmapeFF14BGnrlRwZ0rawemZg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR10MB5788 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.219,Aquarius:18.0.895,Hydra:6.0.545,FMLib:17.11.122.1 definitions=2022-11-29_11,2022-11-29_01,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 bulkscore=0 suspectscore=0 phishscore=0 mlxscore=0 spamscore=0 adultscore=0 malwarescore=0 mlxlogscore=999 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2210170000 definitions=main-2211290093 X-Proofpoint-GUID: sX_l3AvoDQGt89o4MDAYimroHTiCh36M X-Proofpoint-ORIG-GUID: sX_l3AvoDQGt89o4MDAYimroHTiCh36M Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" From: "Liam R. Howlett" Use the vma iterator so that the iterator can be invalidated or updated to avoid each caller doing so. Signed-off-by: Liam R. Howlett --- fs/exec.c | 5 ++++- include/linux/mm.h | 6 +++--- mm/mprotect.c | 47 ++++++++++++++++++++++------------------------ 3 files changed, 29 insertions(+), 29 deletions(-) diff --git a/fs/exec.c b/fs/exec.c index a0b1f0337a62..de9eaf5926bc 100644 --- a/fs/exec.c +++ b/fs/exec.c @@ -757,6 +757,7 @@ int setup_arg_pages(struct linux_binprm *bprm, unsigned long stack_expand; unsigned long rlim_stack; struct mmu_gather tlb; + struct vma_iterator vmi; =20 #ifdef CONFIG_STACK_GROWSUP /* Limit stack size */ @@ -811,8 +812,10 @@ int setup_arg_pages(struct linux_binprm *bprm, vm_flags |=3D mm->def_flags; vm_flags |=3D VM_STACK_INCOMPLETE_SETUP; =20 + vma_iter_init(&vmi, mm, vma->vm_start); + tlb_gather_mmu(&tlb, mm); - ret =3D mprotect_fixup(&tlb, vma, &prev, vma->vm_start, vma->vm_end, + ret =3D mprotect_fixup(&vmi, &tlb, vma, &prev, vma->vm_start, vma->vm_end, vm_flags); tlb_finish_mmu(&tlb); =20 diff --git a/include/linux/mm.h b/include/linux/mm.h index b9a6599f98b9..17623a774e02 100644 --- a/include/linux/mm.h +++ b/include/linux/mm.h @@ -2046,9 +2046,9 @@ extern unsigned long change_protection(struct mmu_gat= her *tlb, struct vm_area_struct *vma, unsigned long start, unsigned long end, pgprot_t newprot, unsigned long cp_flags); -extern int mprotect_fixup(struct mmu_gather *tlb, struct vm_area_struct *v= ma, - struct vm_area_struct **pprev, unsigned long start, - unsigned long end, unsigned long newflags); +extern int mprotect_fixup(struct vma_iterator *vmi, struct mmu_gather *tlb, + struct vm_area_struct *vma, struct vm_area_struct **pprev, + unsigned long start, unsigned long end, unsigned long newflags); =20 /* * doesn't attempt to fault and will return short. diff --git a/mm/mprotect.c b/mm/mprotect.c index 668bfaa6ed2a..994e8d991e78 100644 --- a/mm/mprotect.c +++ b/mm/mprotect.c @@ -545,9 +545,9 @@ static const struct mm_walk_ops prot_none_walk_ops =3D { }; =20 int -mprotect_fixup(struct mmu_gather *tlb, struct vm_area_struct *vma, - struct vm_area_struct **pprev, unsigned long start, - unsigned long end, unsigned long newflags) +mprotect_fixup(struct vma_iterator *vmi, struct mmu_gather *tlb, + struct vm_area_struct *vma, struct vm_area_struct **pprev, + unsigned long start, unsigned long end, unsigned long newflags) { struct mm_struct *mm =3D vma->vm_mm; unsigned long oldflags =3D vma->vm_flags; @@ -602,7 +602,7 @@ mprotect_fixup(struct mmu_gather *tlb, struct vm_area_s= truct *vma, * First try to merge with previous and/or next vma. */ pgoff =3D vma->vm_pgoff + ((start - vma->vm_start) >> PAGE_SHIFT); - *pprev =3D vma_merge(mm, *pprev, start, end, newflags, + *pprev =3D vmi_vma_merge(vmi, mm, *pprev, start, end, newflags, vma->anon_vma, vma->vm_file, pgoff, vma_policy(vma), vma->vm_userfaultfd_ctx, anon_vma_name(vma)); if (*pprev) { @@ -614,13 +614,13 @@ mprotect_fixup(struct mmu_gather *tlb, struct vm_area= _struct *vma, *pprev =3D vma; =20 if (start !=3D vma->vm_start) { - error =3D split_vma(mm, vma, start, 1); + error =3D vmi_split_vma(vmi, mm, vma, start, 1); if (error) goto fail; } =20 if (end !=3D vma->vm_end) { - error =3D split_vma(mm, vma, end, 0); + error =3D vmi_split_vma(vmi, mm, vma, end, 0); if (error) goto fail; } @@ -678,7 +678,7 @@ static int do_mprotect_pkey(unsigned long start, size_t= len, const bool rier =3D (current->personality & READ_IMPLIES_EXEC) && (prot & PROT_READ); struct mmu_gather tlb; - MA_STATE(mas, ¤t->mm->mm_mt, 0, 0); + struct vma_iterator vmi; =20 start =3D untagged_addr(start); =20 @@ -710,8 +710,8 @@ static int do_mprotect_pkey(unsigned long start, size_t= len, if ((pkey !=3D -1) && !mm_pkey_is_allocated(current->mm, pkey)) goto out; =20 - mas_set(&mas, start); - vma =3D mas_find(&mas, ULONG_MAX); + vma_iter_init(&vmi, current->mm, start); + vma =3D vma_find(&vmi, end); error =3D -ENOMEM; if (!vma) goto out; @@ -734,18 +734,22 @@ static int do_mprotect_pkey(unsigned long start, size= _t len, } } =20 + prev =3D vma_prev(&vmi); if (start > vma->vm_start) prev =3D vma; - else - prev =3D mas_prev(&mas, 0); =20 tlb_gather_mmu(&tlb, current->mm); - for (nstart =3D start ; ; ) { + nstart =3D start; + tmp =3D vma->vm_start; + for_each_vma_range(vmi, vma, end) { unsigned long mask_off_old_flags; unsigned long newflags; int new_vma_pkey; =20 - /* Here we know that vma->vm_start <=3D nstart < vma->vm_end. */ + if (vma->vm_start !=3D tmp) { + error =3D -ENOMEM; + break; + } =20 /* Does the application expect PROT_READ to imply PROT_EXEC */ if (rier && (vma->vm_flags & VM_MAYEXEC)) @@ -789,25 +793,18 @@ static int do_mprotect_pkey(unsigned long start, size= _t len, break; } =20 - error =3D mprotect_fixup(&tlb, vma, &prev, nstart, tmp, newflags); + error =3D mprotect_fixup(&vmi, &tlb, vma, &prev, nstart, tmp, newflags); if (error) break; =20 nstart =3D tmp; - - if (nstart < prev->vm_end) - nstart =3D prev->vm_end; - if (nstart >=3D end) - break; - - vma =3D find_vma(current->mm, prev->vm_end); - if (!vma || vma->vm_start !=3D nstart) { - error =3D -ENOMEM; - break; - } prot =3D reqprot; } tlb_finish_mmu(&tlb); + + if (vma_iter_end(&vmi) < end) + error =3D -ENOMEM; + out: mmap_write_unlock(current->mm); return error; --=20 2.35.1 From nobody Fri Sep 19 02:32:03 2025 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 57FFDC4167B for ; Tue, 29 Nov 2022 16:46:09 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S236210AbiK2QqH (ORCPT ); Tue, 29 Nov 2022 11:46:07 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41726 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S236077AbiK2Qow (ORCPT ); Tue, 29 Nov 2022 11:44:52 -0500 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 9C2C75EFB3 for ; Tue, 29 Nov 2022 08:44:42 -0800 (PST) Received: from pps.filterd (m0246627.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 2ATGPitZ017353; Tue, 29 Nov 2022 16:44:35 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : references : in-reply-to : content-type : content-transfer-encoding : mime-version; s=corp-2022-7-12; bh=GOm614tl429iOQ+POVCVrJ+RGa5kuncI+Q8HcO7IgjY=; b=uzyUfyuwtkna79XCAvBNwagjfUlIOKEzMVWB4Sle/eEi3U6WiUBZ2u0fQhlM3LBXcryH L1k3zbQ4i7GXQqNZppeUdJfHTPtKMwKAXTGM1Pr+1ySZgtE5bCWmQNmXza0aZx7wGrGo SFTOZC57yx+SzX02QqAdCmA7fZdG9wbi4vGmRScDON11AdjokZbjOKw9wC/wF7otyIrp RAdaSh15aZcJx+57ntbM1iF+La4S5bk3tS0WGWWhnjwcpaXbB3quHI9E9RgE1GiNAwoa X42gM8WiZFFzvK7a6yZP7LSRVQgjHrDeboFFn3PHog58vK3/pP9ddUORUdCFZCyo6ge+ Gw== Received: from phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta02.appoci.oracle.com [147.154.114.232]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3m3xht6hmx-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 29 Nov 2022 16:44:33 +0000 Received: from pps.filterd (phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (8.17.1.5/8.17.1.5) with ESMTP id 2ATFhsPh027963; Tue, 29 Nov 2022 16:44:31 GMT Received: from nam11-co1-obe.outbound.protection.outlook.com (mail-co1nam11lp2169.outbound.protection.outlook.com [104.47.56.169]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 3m3987f2au-5 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 29 Nov 2022 16:44:31 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=m9s4Sc5Lqcate3hz88HHjTyiPMD02qZwZEDi1Ym8IyaM5PWz3UK0+8tsvz/eFOh487F5Yygtk8XwKFibhFW1ExNcm17MkwY/W4fB3zNggj/tEsBF5aNex38mKNNHx2Z8pwDi9ERes7zWtiqZHg2us3NotxIlsmFunDGYswVw+Lu9Wc1EP63/GbNCurQK3O/72vB3eBrTjbe2V3j3UZBfwjpkpYeyX8YZVp3LBXCg0FaLzp2RCbzLChmGInwQ/x+XarTTbcnoLeA8+G33nvL9q6UNf1NRO6BQHGJx/xA8mxq8zzQ9CytJTjaZN52euqa3fINS6mzHRw9qkC2iN2fCMw== 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=GOm614tl429iOQ+POVCVrJ+RGa5kuncI+Q8HcO7IgjY=; b=Hwf/CbmXWUu9WTbR5HUV2v+vEnv3/igRdfwUi+XKwYgK61nb8qhMb0wf5cwaQFypfMfZspM0/l13YSVfykw37pn5teccixa9L5DYPPTarNnksynKmrrH4lRFd0WcCXQgW+1jS6WbYx1+NdtXT4jnW/SquBBUvRzlCrW3ern4MCM8RnF95V771xmXHy9BbfmTevSrBRtxLt87ru2gmVOb2PNGZjjoO+DG3H6x91aWgW3+xIiwSKmUrz1cXRAdqLw2+vyqMCBsFvnGWfQEu1nnylRzc/p1iNtpbGpOAUs68haC1xZ42/MUaM62BbFIrD3FYGvI9Naow6lBUmmBq91Agg== 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=GOm614tl429iOQ+POVCVrJ+RGa5kuncI+Q8HcO7IgjY=; b=rYtSisGYkvsRW1M9TN7zJpTpDgZQYuAInq5Kn13J4YbC8u4YDkt1hGW3IvIk2VZyVmrYzcBphnbbBNqLm/Z+gHld/NppmEb9ti/ONogawHz+SHr4l8slOzIOFjbDNPViXDerOqZVzDKU0fCPQBi3NtmPy9tneSCAnHzjGll4mYk= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by SJ0PR10MB5788.namprd10.prod.outlook.com (2603:10b6:a03:3df::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5857.21; Tue, 29 Nov 2022 16:44:28 +0000 Received: from SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::a02:2ac8:ee3e:682]) by SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::a02:2ac8:ee3e:682%4]) with mapi id 15.20.5857.022; Tue, 29 Nov 2022 16:44:28 +0000 From: Liam Howlett To: "maple-tree@lists.infradead.org" , "linux-mm@kvack.org" , "linux-kernel@vger.kernel.org" , Andrew Morton CC: Liam Howlett , Liam Howlett Subject: [PATCH 16/43] mlock: Convert mlock to vma iterator Thread-Topic: [PATCH 16/43] mlock: Convert mlock to vma iterator Thread-Index: AQHZBBHYWjp8mhR86UCgc/OVUkasHg== Date: Tue, 29 Nov 2022 16:44:27 +0000 Message-ID: <20221129164352.3374638-17-Liam.Howlett@oracle.com> References: <20221129164352.3374638-1-Liam.Howlett@oracle.com> In-Reply-To: <20221129164352.3374638-1-Liam.Howlett@oracle.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-mailer: git-send-email 2.35.1 x-ms-publictraffictype: Email x-ms-traffictypediagnostic: SN6PR10MB3022:EE_|SJ0PR10MB5788:EE_ x-ms-office365-filtering-correlation-id: 4cbd0d5a-97d0-4cd3-e7e2-08dad228fb8f x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: U7dwCBQkN7lv1l6lUM3yN8ENuknFr1J5PKkpTr7I/dse1mAt0/8GiUgF02peZy4+E2woHeAKIjT0xj3bQ0NOVzwF6RhgLEAU6KjXdYYbZBf27p3r7lxoEuAO0+Xullmyln7ALfsSDhEMPwrLPSZzoLZaYRis7qSgeJXAMelE520J/T22JiyNTefRuPXZjX29vTWmhuwALPqomUdJQTzJciB+4O+y/rVgdRZqwoXONd/cF/hsMgoBVD9ffENuY0R/P1upi+N8pOOiPV/sBx1MNnwUXgMb7/IW4Lu2cEK8t7vqHAihcM5E20XDi++JDxj81j1O7sYI1Le8woOhMnsi8iub9H9lO18jIzCs6bxBadU84YQk6Y9Q2k66nmeU5h/ev+kXwXjANKVIoxP/u7G5vZUceStdhHkV1sEnzB8UvQmNhfndN7pC2gVyNuVtuqhROYVY9BaPKR/os0c/+F7tPcRf0a9bGiT50slQYObPtJrh8vc0J3Yb1pUB3qWyjFNaHSFcpW6jBlSEE1kkdBYyYZyzU6VERVaFRxivlVvj06zq0ZwngPHXi3kVn4kScPPSHNrCNqTdFvDqZsQCNBmM3H5rlo1MFPScZVyToQIfumUet7BTOISY9pN0RxDBZ9I/1n1tUbWBJ6V6kE22ZMc98bOfGUv6urw8fmZgZiZjmmYQNg4IUGv9ZfvQp1Eht/gv60MTPzxT0vilTgIfSMCuig== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SN6PR10MB3022.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230022)(366004)(346002)(396003)(136003)(39860400002)(376002)(451199015)(2906002)(44832011)(41300700001)(76116006)(5660300002)(36756003)(54906003)(316002)(66446008)(110136005)(6486002)(91956017)(66946007)(71200400001)(4326008)(64756008)(8676002)(66556008)(8936002)(66476007)(6512007)(6506007)(26005)(2616005)(107886003)(186003)(1076003)(478600001)(38100700002)(83380400001)(38070700005)(122000001)(86362001);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?Q?PodY0m6F3HoV8S0FyJyWrqObHVS12bS+7fYmflISGbaN6zsruPvXF/EnC4?= =?iso-8859-1?Q?fTsc1FOJy3Rn+pm9VRVzrHwus7gLMjO/7B5xr3OLjsI9DbA2acpKwrfRt4?= =?iso-8859-1?Q?jBPyyeqR1yz57T8ubBbHIb0WHv3ydl5lShPHwPLjRKMCWwbY17GehT1Nkk?= =?iso-8859-1?Q?Gi8OLrlMRtuPpkUh2gAg181KBKh2oDcQ3PESg2QYTuoisZyYS/k6gkEUXi?= =?iso-8859-1?Q?+W+1lF1jXBSqF78DmKHseu/i5QQZ2r+7shFDuUXBwM+tHqWcA0U3dW+UNY?= =?iso-8859-1?Q?JKKGCA/DzoPbKTQhMGSg7/gCLLR6S9zugGZaEVOMz0rAClCbJv0IXuXWB2?= =?iso-8859-1?Q?yj4ipJtcA2jURw3ugf9FWBKBgLP+FItzlm8hwndJdGxEvYcxZND6priJLs?= =?iso-8859-1?Q?aI49/EdAR4PGfU0j5X94Aj9p787PvUtaR70DBXTypJBhri0CoZptU2vUpO?= =?iso-8859-1?Q?jlEyR4gvNbTd85PyrW+Q4CogS08yywf8j9Hbv42a4qwrYhvAeZyh8XUOXH?= =?iso-8859-1?Q?d8dFKGe46uuo+p2UrUTHqldTa2A1RjzA4jF1TrpB9WnQ9FyRq+d4yIN+A6?= =?iso-8859-1?Q?L9V4fmNMBtYKEGLbuwB9TXNVnJwDRHDOjDRbmy3UdW2ee1eUUNxfCRufv9?= =?iso-8859-1?Q?MxeuTqrxLaHpHGjCYOSAPjsjq/qP1RcScv6J5qSsf/sWmaCxQoCceXcqfx?= =?iso-8859-1?Q?lAb6WdzxmhNKfwQBVu5Upw49RK7G1SUdfwpqdpDpIS9LVBgIfotuy2P5gA?= =?iso-8859-1?Q?YWoXIbrxhh4O7VsH2Ur7xrn80clTyzNjNcNE4dCu4FAPHAruAXhVxssvrw?= =?iso-8859-1?Q?2obCdsWaB+O3z7aGE3JcmgBmOFwmjYkRgk7Ipoys9tuJw8JW5/SfZwiJqn?= =?iso-8859-1?Q?o2/7vV2sXFuUKQAjPcFYBAe3ULewjEGINc5phLHRF0o1m3jcVm/3uL4ncW?= =?iso-8859-1?Q?q4yravFDKKoIM6HACb2yXLFeB6zk3E7JF7xDzNRPs9QpdoxVEfBEkxX1cZ?= =?iso-8859-1?Q?kP3gT4+wjtYnQaVs1q24d4JAz0rkxMwXm2j8dtG9w8tqfYL4THXmezzlQK?= =?iso-8859-1?Q?iGXbt0oUor0BQfeazLPck3jRszJbZyxKh5fGOqPV66kbIo3fQ/ZYKew5Mu?= =?iso-8859-1?Q?6Xf5VcSF1kII5JQonzL99KUkgY7tD7UVC/JMkfIHvwazG34rJ1pqyDVgCd?= =?iso-8859-1?Q?QTce3YEeVrsLjyy6hWKPFuOY6GQsfNpykVbtcFWAlkAVv/I2ZalJCMgwgy?= =?iso-8859-1?Q?w6hAt5ATyq9gI+LEp1DNBorpin0lWS+0fScrZeA4ft05uLtEZm9yL4C/3C?= =?iso-8859-1?Q?B+mgfjPaWXnFuh0pA2vi6PRhdTOHVmNiLH1IBaY3LXPRLtqAAUAFsrK9YP?= =?iso-8859-1?Q?ef9AGrqPS9phU0V6BXnX41mGFwz0RoGz4rLw1lse4Zk2t42SJeWCBFMhFL?= =?iso-8859-1?Q?+1Kwa/m3JvXN6dIUkQHLDovSqb3CZLUrJO48shS788+skT+p/c5gYvW4Q2?= =?iso-8859-1?Q?4Xnl9Ai/9zpk5DV/uZxcvc2StjsQAHDHkdD79KI1PZkOnCgMTPRkW7y70B?= =?iso-8859-1?Q?DAs9pIiy1sejbcF1q6sgciEZG5JT3YoLv3ktzORHmAJOWMl7RffRmeLESN?= =?iso-8859-1?Q?DK0TuGj5CWOHiLkftUvM1oFtAdsUcWWLucAOtZpEEpRK/EbOo0tdd9Vg?= =?iso-8859-1?Q?=3D=3D?= Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: rqruLL/KQCF8ZV9Vl52B0cBDvAGCWEtT7y8TtTkRBlaJZ1DRDVlkF8gpq/8t4nVZcOh7rfLGzbKzy2xzQxsLR7TwqhdYF3YKOTiLcxPeMUzpS2al+vrEM+ASAw9SqoeiejiivpB87qqywRomgWY1c9JRC7SywxFEjROqUIH33m1HvtBxaZkbJJpC1PhO97Tw9xPGKjLRLSWORTfOQOti2fn8znk4RQZriB/oRc2ElzJydCSEQc+/mHFxMx8n9UztdwmfXH0KAVsTPz/a9mRXpRLz7NnK7nialkSekpSTRISb2Rt+eL9fCedmp1MvHrQ/ytaiX/9K4U1yhILcvvH11eMhFpmkA6dfdADpbESYPvIiTUX/1+QVwbgP6erq25Z/Vwm32ZlR5DVszptkFtWsmw2vGsehXOnkR/fstQRjYbBRriLZ7r/9r5+mg2Y69ltlulwYqoGUwJTRuOW2xKWFYQRIB8Z/a96iUgsg+HphiPuWUec1Fc6+Ifhix4vRsfvSuEM/1VaJ4fC9mjrFuH4kHq4594yQGCIVlfWbxIgHRL2l6SfY9+EXQ9kOZXQhXhxx3NuZsF23Bfhsa+mJSrMpNe0DUlKtcrG9rAUSC6dEDu8izpaIU/JMFWuL1pNQe5jksFpMgYJBPCegV/W7IDxKiCeLLTNIbEXh3DZa0obemc8siP0gtecxAOCCs3wTc5hw+WVwW2FbkPRRF787PXctJFY1wnY+wGPjBYhqmZZvcWaVYSzepk+/VtCaJm+Re1WE+1vPnmXb1jYzHN1taVFm0Sy1OLZmBil7LkiGFB2fwlFXi1HCYuA62hEykEDB9PPT36eHhnC0aL8RKbactlNQN/IpNOvn0BE1HOrNFvfeN3ndQrrclPpcpOIeSki4YUvm2MbPLs2LjBafNze3RK+C0w== X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: SN6PR10MB3022.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 4cbd0d5a-97d0-4cd3-e7e2-08dad228fb8f X-MS-Exchange-CrossTenant-originalarrivaltime: 29 Nov 2022 16:44:27.4415 (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: TQAOXTXMNTyabjriOYiFNVmeXxmrVPTUa5tFqQ1qJC88y4zh9ibHaLbY2l8Hu84A40ph2g1N3C7crH9QMf3lAA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR10MB5788 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.219,Aquarius:18.0.895,Hydra:6.0.545,FMLib:17.11.122.1 definitions=2022-11-29_11,2022-11-29_01,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 bulkscore=0 suspectscore=0 phishscore=0 mlxscore=0 spamscore=0 adultscore=0 malwarescore=0 mlxlogscore=999 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2210170000 definitions=main-2211290093 X-Proofpoint-GUID: MZ-jChB0kaPxvTw4NiPOTae775zkNI59 X-Proofpoint-ORIG-GUID: MZ-jChB0kaPxvTw4NiPOTae775zkNI59 Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" From: "Liam R. Howlett" Use the vma iterator so that the iterator can be invalidated or updated to avoid each caller doing so. Signed-off-by: Liam R. Howlett --- mm/mlock.c | 57 +++++++++++++++++++++++++++--------------------------- 1 file changed, 28 insertions(+), 29 deletions(-) diff --git a/mm/mlock.c b/mm/mlock.c index 7032f6dd0ce1..f06b02b631b5 100644 --- a/mm/mlock.c +++ b/mm/mlock.c @@ -401,8 +401,9 @@ static void mlock_vma_pages_range(struct vm_area_struct= *vma, * * For vmas that pass the filters, merge/split as appropriate. */ -static int mlock_fixup(struct vm_area_struct *vma, struct vm_area_struct *= *prev, - unsigned long start, unsigned long end, vm_flags_t newflags) +static int mlock_fixup(struct vma_iterator *vmi, struct vm_area_struct *vm= a, + struct vm_area_struct **prev, unsigned long start, + unsigned long end, vm_flags_t newflags) { struct mm_struct *mm =3D vma->vm_mm; pgoff_t pgoff; @@ -417,22 +418,22 @@ static int mlock_fixup(struct vm_area_struct *vma, st= ruct vm_area_struct **prev, goto out; =20 pgoff =3D vma->vm_pgoff + ((start - vma->vm_start) >> PAGE_SHIFT); - *prev =3D vma_merge(mm, *prev, start, end, newflags, vma->anon_vma, - vma->vm_file, pgoff, vma_policy(vma), - vma->vm_userfaultfd_ctx, anon_vma_name(vma)); + *prev =3D vmi_vma_merge(vmi, mm, *prev, start, end, newflags, + vma->anon_vma, vma->vm_file, pgoff, vma_policy(vma), + vma->vm_userfaultfd_ctx, anon_vma_name(vma)); if (*prev) { vma =3D *prev; goto success; } =20 if (start !=3D vma->vm_start) { - ret =3D split_vma(mm, vma, start, 1); + ret =3D vmi_split_vma(vmi, mm, vma, start, 1); if (ret) goto out; } =20 if (end !=3D vma->vm_end) { - ret =3D split_vma(mm, vma, end, 0); + ret =3D vmi_split_vma(vmi, mm, vma, end, 0); if (ret) goto out; } @@ -471,7 +472,7 @@ static int apply_vma_lock_flags(unsigned long start, si= ze_t len, unsigned long nstart, end, tmp; struct vm_area_struct *vma, *prev; int error; - MA_STATE(mas, ¤t->mm->mm_mt, start, start); + VMA_ITERATOR(vmi, current->mm, start); =20 VM_BUG_ON(offset_in_page(start)); VM_BUG_ON(len !=3D PAGE_ALIGN(len)); @@ -480,39 +481,37 @@ static int apply_vma_lock_flags(unsigned long start, = size_t len, return -EINVAL; if (end =3D=3D start) return 0; - vma =3D mas_walk(&mas); + vma =3D vma_find(&vmi, end); if (!vma) return -ENOMEM; =20 + prev =3D vma_prev(&vmi); if (start > vma->vm_start) prev =3D vma; - else - prev =3D mas_prev(&mas, 0); =20 - for (nstart =3D start ; ; ) { - vm_flags_t newflags =3D vma->vm_flags & VM_LOCKED_CLEAR_MASK; + nstart =3D start; + tmp =3D vma->vm_start; + for_each_vma_range(vmi, vma, end) { + vm_flags_t newflags; =20 - newflags |=3D flags; + if (vma->vm_start !=3D tmp) + return -ENOMEM; =20 + newflags =3D vma->vm_flags & VM_LOCKED_CLEAR_MASK; + newflags |=3D flags; /* Here we know that vma->vm_start <=3D nstart < vma->vm_end. */ tmp =3D vma->vm_end; if (tmp > end) tmp =3D end; - error =3D mlock_fixup(vma, &prev, nstart, tmp, newflags); + error =3D mlock_fixup(&vmi, vma, &prev, nstart, tmp, newflags); if (error) break; nstart =3D tmp; - if (nstart < prev->vm_end) - nstart =3D prev->vm_end; - if (nstart >=3D end) - break; - - vma =3D find_vma(prev->vm_mm, prev->vm_end); - if (!vma || vma->vm_start !=3D nstart) { - error =3D -ENOMEM; - break; - } } + + if (vma_iter_end(&vmi) < end) + return -ENOMEM; + return error; } =20 @@ -658,7 +657,7 @@ SYSCALL_DEFINE2(munlock, unsigned long, start, size_t, = len) */ static int apply_mlockall_flags(int flags) { - MA_STATE(mas, ¤t->mm->mm_mt, 0, 0); + VMA_ITERATOR(vmi, current->mm, 0); struct vm_area_struct *vma, *prev =3D NULL; vm_flags_t to_add =3D 0; =20 @@ -679,15 +678,15 @@ static int apply_mlockall_flags(int flags) to_add |=3D VM_LOCKONFAULT; } =20 - mas_for_each(&mas, vma, ULONG_MAX) { + for_each_vma(vmi, vma) { vm_flags_t newflags; =20 newflags =3D vma->vm_flags & VM_LOCKED_CLEAR_MASK; newflags |=3D to_add; =20 /* Ignore errors */ - mlock_fixup(vma, &prev, vma->vm_start, vma->vm_end, newflags); - mas_pause(&mas); + mlock_fixup(&vmi, vma, &prev, vma->vm_start, vma->vm_end, + newflags); cond_resched(); } out: --=20 2.35.1 From nobody Fri Sep 19 02:32:03 2025 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id A2335C433FE for ; Tue, 29 Nov 2022 16:46:20 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S236229AbiK2QqT (ORCPT ); Tue, 29 Nov 2022 11:46:19 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41474 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S236126AbiK2QpV (ORCPT ); Tue, 29 Nov 2022 11:45:21 -0500 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 962776457F for ; Tue, 29 Nov 2022 08:44:44 -0800 (PST) Received: from pps.filterd (m0246629.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 2ATGQ1wE012682; Tue, 29 Nov 2022 16:44:38 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : references : in-reply-to : content-type : content-transfer-encoding : mime-version; s=corp-2022-7-12; bh=fQ91Lje7tYkNzBw0bSrk3E2yqJ1Cv76dP0pNqKsHZ5Y=; b=LfScxEWOx259Bh9VC6YS1yiA+FDNpbwUKCtDEuCdjwyHljNHMqN1l+/f24Lts1QPOZfJ F5oPSHo/gSesnQA3et9hzWRt/2Qct/cHvHIdHqzTQhkgzu3QO5Bs8m07K++/ngZJgNUr aaMa2KFaQYQxDnV3VKtZ31TUIzSR9wviw6UTAjwsXiCb93nbr3ItUA6O1DGEQYL4ZOBN E8Yr5kzT1eFS2LexNGi8ltBkb+JuiY27eOix1At2G9enjoilwdOYkgsrYRhs+UTH1F6t 3Xwq7nPiYk95Lk0f2e6bqKuMgDU52QZxNDIdbzPFoovBEUAfWXxp15L/AqPHFDwmP+Bh NA== Received: from phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta02.appoci.oracle.com [147.154.114.232]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3m4aemdn9d-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 29 Nov 2022 16:44:34 +0000 Received: from pps.filterd (phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (8.17.1.5/8.17.1.5) with ESMTP id 2ATFhsPj027963; Tue, 29 Nov 2022 16:44:32 GMT Received: from nam11-co1-obe.outbound.protection.outlook.com (mail-co1nam11lp2169.outbound.protection.outlook.com [104.47.56.169]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 3m3987f2au-6 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 29 Nov 2022 16:44:32 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=VS7ixbCLEKqnRafSFZ8m3HbQ5kvzkema9NPUn4oJsBASK/mMtMiePUe4AfQ500Zg/vF5PcEl/5a+hliKvP12VP1LQCHXmgiiCk1CofSRvTsKSLTsTv8SmSnHmRY4CNf7YETo78JUHP4xrDYr/mA7vlPzxugNQU3W4u9MB7ZHiQLkcjNKVpANj9W3b1dsxvVvNowIVhvN2DwIq+LPXtrjh/DOtIaPiUefwtNxEqDiwTyzSAECXREzHeuUq0wiIWane+0M8pDBPeuJKMGhrWl/P3JN9cpw4cGYnp86NN7MLpxssrmbYocm+C1OtiZJZBsAhVIihwUcc+yTzCbGOdmVvQ== 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=fQ91Lje7tYkNzBw0bSrk3E2yqJ1Cv76dP0pNqKsHZ5Y=; b=UaH2ffDOxi3Htz6O4tyGifIPL6/PnJvi0YGTl26dn8vEnxjxIFXtOaIo07MzvU/G35iTs9GVZBkuVVBk0L1cy66K2shlYsLcFEPydL7BHv7qvjZDlMwmDzbS2TdOy2ruE1wxd3es7oN/75wvbHt+ZhYJdHxMsKItfltmkbgiz7Gw/h0QEfTpcS0JxuJ1oBOWdXfqZ1B40YzALQ/VTX9KzvPwGBqd61U12I7ly2imaxMpUR1aZwZDbagXF0fjwkTQStos7YQuDB9I6JCrP3hAsOOhl9HK5TxG2RN8B1vr4dhJ7ncu6gncAF2j7dbxyaPU7KaCDy7PFU6iSQGn3W5dlg== 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=fQ91Lje7tYkNzBw0bSrk3E2yqJ1Cv76dP0pNqKsHZ5Y=; b=ChDZWGl+oGQjXSlJIk6tADLrFOppjhr2OiSvOpu2H71qQj3R+CPqG/jNT7BDvqkmSyTZ4LOLunxFxHEEJQQQ11Eqaz0pLjiAJFEmVXTl5yPWTll+09HSpu4oM/aL/IZcD0fa7cSvUc3gfoluvYnQ6X7AYbkVapO/gJMqnu8ivG0= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by SJ0PR10MB5788.namprd10.prod.outlook.com (2603:10b6:a03:3df::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5857.21; Tue, 29 Nov 2022 16:44:29 +0000 Received: from SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::a02:2ac8:ee3e:682]) by SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::a02:2ac8:ee3e:682%4]) with mapi id 15.20.5857.022; Tue, 29 Nov 2022 16:44:29 +0000 From: Liam Howlett To: "maple-tree@lists.infradead.org" , "linux-mm@kvack.org" , "linux-kernel@vger.kernel.org" , Andrew Morton CC: Liam Howlett , Liam Howlett Subject: [PATCH 17/43] coredump: Convert to vma iterator Thread-Topic: [PATCH 17/43] coredump: Convert to vma iterator Thread-Index: AQHZBBHYMBt6S0euQ0KP7f6cIcv6Wg== Date: Tue, 29 Nov 2022 16:44:27 +0000 Message-ID: <20221129164352.3374638-18-Liam.Howlett@oracle.com> References: <20221129164352.3374638-1-Liam.Howlett@oracle.com> In-Reply-To: <20221129164352.3374638-1-Liam.Howlett@oracle.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-mailer: git-send-email 2.35.1 x-ms-publictraffictype: Email x-ms-traffictypediagnostic: SN6PR10MB3022:EE_|SJ0PR10MB5788:EE_ x-ms-office365-filtering-correlation-id: 75895d58-484c-470e-1d3f-08dad228fbe8 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: NNTS8ToaY9McGF3CWJjDYny6BhCT/rRgAfdhK1/TPGXgeOpf2kUSSPOzQB+YpXcIyP134vPT+AQEqmQAhxD2CISnmq53kY0yOkL3INp254/wPYFho7m6aA6uhBdfYQ+srWcBZyNtVqTb5eaWkYxM7U5syPgJ3s3ARs4JBsSTE0rQJsGPdsgGlPeMNgFZmKj9ianZ/khztNQ1EbYyAa2mvJkr8JNzLBNdPH92M6RhY2I+OUbIPILvuzJA3hwGDwORr8VPjMuQRNmyu1fL2fkdg2hyunEdvZh8rPqXxLR9b9cOLkEvmIYKoYZkizdL1I4af1OobRUzB27TBWLY1VD4COBB6VYL1rbiLWao5MliIS4SK6/rvvNnnOlBdNpJKj4/nL7g7q5GAXvIHRhfd+7f8BpZvXguCD8hyyrD3agnpohnxOtoAp7LeyNaNijrYBcsj7zIYk1MnUo56QxU4a8bXtSmTV8G4jx7+fODGdoiGo819QP6rGRcg+5khnrZR5/F9JwvQXuUKm24LqTPRawYtwC6pQTHMaVxkOfteL+bjf5QFwbTHjlqlB5zRGUTZB+DGOaprA43RDe7XVEcY5bl+1lbdpS4zB7nxSJk9x+B1eIVvIAwTuHEPH3rSsYUflRmMB1aOn6oZ1wJKtu1Apy3wnHZ2zLFYi6J7cK7Ml7OsZ2TZjFZ0LbyW9tdxwFHEDTFSpI1tLYfwBp9kgrcX3BX5g== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SN6PR10MB3022.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230022)(366004)(346002)(396003)(136003)(39860400002)(376002)(451199015)(2906002)(44832011)(41300700001)(76116006)(5660300002)(36756003)(54906003)(316002)(66446008)(110136005)(6486002)(91956017)(66946007)(71200400001)(4326008)(64756008)(8676002)(66556008)(8936002)(66476007)(6512007)(6506007)(26005)(2616005)(107886003)(186003)(1076003)(478600001)(38100700002)(83380400001)(38070700005)(122000001)(86362001);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?Q?nVQXdseHe4XZXDb15qUpM3kcrBsSk/ssHYKOStNYoKkjkuBir0FmITqSed?= =?iso-8859-1?Q?AVru3+ux3f6jMABP/EaUTof1O8FH49TnWWkJHT5jxw+26WqT97uQEHTQ0Z?= =?iso-8859-1?Q?+xvWHYGPZa1i8G1jhJ+S/JMjlpR7EazWw6cBuL8sRFidVpQTD6+lHftzix?= =?iso-8859-1?Q?avCSwrxUlbT83SFCZQbs6KYrFL8LCwaVFMco6lf3C2qW8pcuYUiQ96E2bv?= =?iso-8859-1?Q?L1caGwkEdjuY/7OQHoQHmBvm7IEToHXArNDtfXlgGhrAk7htdSUU+HgDXl?= =?iso-8859-1?Q?oYYno+0/fJkqqDK7/1BioszPntB8oI7DXwixqt4WUpWI9NzKFO+54tHddn?= =?iso-8859-1?Q?Yf9JFtSWcIDuAwjxNalnddj3qnry/3/9k+E/fImCjlnm2rBXkrxlq5Axgd?= =?iso-8859-1?Q?dlBZhoSr7gQgqSc52B7gyFn3dsH1P6G4gyo+2FlCUfv5euBzdImPBggwje?= =?iso-8859-1?Q?CP1XSpptwFll+hzku3UTlLIkUAye3GRxjQQzxlBol4qO9cOoBYfxEoVL85?= =?iso-8859-1?Q?9s0z39ucdTi4ZclBBJOavGsewHSfwx5pbbFTRZIKJruMfU01JOihwWEc25?= =?iso-8859-1?Q?Zw5OU7VfUzG9todFiIGsfygnkgSoCewo9TrPmKcjz+slcSy2IdPf+LVqP9?= =?iso-8859-1?Q?sz3VR41t/lvJfFApdMsmHxRorR5WOvdcmbxPm39NOWiMT1r4JsYZ1PkA/4?= =?iso-8859-1?Q?gbDEHiGN3adIeaX/Z0NUBaZi1xAk5cT5jvBp/f+507CGs7O5kKlAwGyE8W?= =?iso-8859-1?Q?Oap/d+OvkG2s23UztfSefmjU5j0BH5HgR/zROvusEN8P2gPLRi55VCmNbD?= =?iso-8859-1?Q?Fe1QDzrarGMPb81eb7/3DkMbnhhOAaaU+8/II5wzXwG13loOyj5kVLnUwM?= =?iso-8859-1?Q?oe77snRQluw7oZYNMDKfFCUKJtLs+vVgMmuYN/Bvw6zHs1gN5Vh7QqC/Ok?= =?iso-8859-1?Q?1pFW0j/yMCLyfeE4hRh86W9XuilFK6WEM6B4YbqR2MGD8IA3Jm9cX5N4SV?= =?iso-8859-1?Q?xyS9t+rJ564fct4Cf249uZggvYRde2RNSOvkPbosA9e+y2T2JA6qFuNT/j?= =?iso-8859-1?Q?U7xfvPx094soNjyLfOG97EDgNdz3umoaiE+k9wy5YcBsxTqDrCYMPoPVwo?= =?iso-8859-1?Q?0Xgw1j8N+k3klnV7A7N2ECpEPtwOwvxhwD5w67yr1Y9GTGuQ2LDZ2FBD4q?= =?iso-8859-1?Q?VfaUiqG5EqPjn2gjKxfRUiQNGGbUv89AbFa/OaouHQy8hyDg4RazaiwyDf?= =?iso-8859-1?Q?/obi68ySzruBrmZYsa4+CCWbewbxBBxUlqpHp3Wb71h8jqZ54NkQmyqJgG?= =?iso-8859-1?Q?lE+nIxPqAjTSLQFUzmf8B7z0tj/xlUljrhp42yq2izpjfZ/VkjaE1kSfWj?= =?iso-8859-1?Q?u4H6g0c8QO9aBgbO7IBN9PD4eFmudArCXYaN5uw+LKfiVS3p/oQ3BJ+47T?= =?iso-8859-1?Q?L0cgTq1hkXaQmrcA+LiRYqan85L5d8PNcXNxsT+JuMqiMlaDibBkY2x+YS?= =?iso-8859-1?Q?ONAgpWp4Zz0O1zZf2ZzxhWZnRyRpV4MK4QJ79X5fM0kHIS3ENO571LfpYn?= =?iso-8859-1?Q?2A3qNbILOb/NG9te4PdPxbxgEdny53o1sHqAXaiaczbwjFFaKH1avoBaiC?= =?iso-8859-1?Q?b7zEcgnedaytcajmRbbs1/GqQZbkSIwmVUeRvgFMpN++LYiWpit5hLlA?= =?iso-8859-1?Q?=3D=3D?= Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: 2XeViv4Rs4PzDzeSxCZzTXNAEgSwm9/HAbHUTgURh7fJPBR+wGjXh8+oa0Tz3XKxFR2re9x5Dlis6XKkudT1Wdgf+rMElg2rVormuNHTm6xaJP/m1PuVgBYJOlqpJg3/MyloIkBbaPW5Ms+nEPz1vNoMbsatZVuCmZjPesumLtf/T/ZvswI7JNpFYh5PT5UpmfexxZ3HNHA42AlvT/GLzGMwrXL68w1wOuaysTLl5IgucxF4qmH7z6+pxfEtty1O0CiTrH582mFuy5tvXNMq8DSDKOeNt74xP+utEo2GF06aKInYaRsNZLW9FXyMjIP604dfXsaOFovkH+e5BFi5l2dIimOpao6ZlfCQfWWJteR82VoZf5T7UA3Nq4yQdZR4Tf8f1wKO5Auvln+gAxQBLNRsCc434KYmhx9MkYPKb4XtJWkfVAN9TKQBMnE3VlOzarEkvuuk8562V07wm6KmAA47N2epxMRi23W/A991EkncW3Hu2XGvWVnmHwTXwhEwtfBcJEWRm8AxhP7uLAQu95XK0tGxtvz56TkwIngOM3RqDuyEaf0wqUmAOVzlypRb0jvmYSeD6Ten0MXz+hSly92cdd1iUN1bIc50SPWwhdsjm3XeASRoN9qB7t/xIJodtk3YG8H106ZpgT5d2oenggcnppAd2wnfe36bbJE+bL+kDEiDQUQ+AE7uSpUQnP/SMVNUs8FjBphCLCUHek9DB5O+1hTACWuqsSR/p6DjOru6uF7WHqQVMcMdO+NPO+Qshc+iavWTQsqIMhH4gwF/RPV0H1cCTrV3n8CqHc/lszFCw+QZoKofoIjd9Va66d6aYa7jQWHbyfIrAwWE1oRgCvBhwqEKeH4MuyZtnapAav6YvFh6dAzIhZsJL3NQZptsF3fBnBgtz5pMnqCxoWrvng== X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: SN6PR10MB3022.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 75895d58-484c-470e-1d3f-08dad228fbe8 X-MS-Exchange-CrossTenant-originalarrivaltime: 29 Nov 2022 16:44:27.8634 (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: mcCeykb8hXfpaFq+ezHvGvCby5g5gKn6CfDocbL9TXS0XNwYjlC8ponvJBRS1rzxAX3rCtujj8O6pqAAHt5YNg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR10MB5788 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.219,Aquarius:18.0.895,Hydra:6.0.545,FMLib:17.11.122.1 definitions=2022-11-29_11,2022-11-29_01,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 bulkscore=0 suspectscore=0 phishscore=0 mlxscore=0 spamscore=0 adultscore=0 malwarescore=0 mlxlogscore=999 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2210170000 definitions=main-2211290093 X-Proofpoint-ORIG-GUID: 1wd7gPArU9FACsIbvHlYtqVI30DI88h8 X-Proofpoint-GUID: 1wd7gPArU9FACsIbvHlYtqVI30DI88h8 Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" From: "Liam R. Howlett" Use the vma iterator so that the iterator can be invalidated or updated to avoid each caller doing so. Signed-off-by: Liam R. Howlett --- fs/coredump.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/fs/coredump.c b/fs/coredump.c index 7bad7785e8e6..bb1afce78f45 100644 --- a/fs/coredump.c +++ b/fs/coredump.c @@ -1104,14 +1104,14 @@ static unsigned long vma_dump_size(struct vm_area_s= truct *vma, * Helper function for iterating across a vma list. It ensures that the c= aller * will visit `gate_vma' prior to terminating the search. */ -static struct vm_area_struct *coredump_next_vma(struct ma_state *mas, +static struct vm_area_struct *coredump_next_vma(struct vma_iterator *vmi, struct vm_area_struct *vma, struct vm_area_struct *gate_vma) { if (gate_vma && (vma =3D=3D gate_vma)) return NULL; =20 - vma =3D mas_next(mas, ULONG_MAX); + vma =3D vma_next(vmi); if (vma) return vma; return gate_vma; @@ -1139,7 +1139,7 @@ static bool dump_vma_snapshot(struct coredump_params = *cprm) { struct vm_area_struct *gate_vma, *vma =3D NULL; struct mm_struct *mm =3D current->mm; - MA_STATE(mas, &mm->mm_mt, 0, 0); + VMA_ITERATOR(vmi, mm, 0); int i =3D 0; =20 /* @@ -1160,7 +1160,7 @@ static bool dump_vma_snapshot(struct coredump_params = *cprm) return false; } =20 - while ((vma =3D coredump_next_vma(&mas, vma, gate_vma)) !=3D NULL) { + while ((vma =3D coredump_next_vma(&vmi, vma, gate_vma)) !=3D NULL) { struct core_vma_metadata *m =3D cprm->vma_meta + i; =20 m->start =3D vma->vm_start; --=20 2.35.1 From nobody Fri Sep 19 02:32:03 2025 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 11759C4167B for ; Tue, 29 Nov 2022 16:47:18 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S236224AbiK2QrP (ORCPT ); Tue, 29 Nov 2022 11:47:15 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:43728 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S236222AbiK2QqQ (ORCPT ); Tue, 29 Nov 2022 11:46:16 -0500 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 62E9669DE9 for ; Tue, 29 Nov 2022 08:44:56 -0800 (PST) Received: from pps.filterd (m0246629.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 2ATGQ1wH012682; Tue, 29 Nov 2022 16:44:49 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : references : in-reply-to : content-type : content-transfer-encoding : mime-version; s=corp-2022-7-12; bh=WCzbFNCHID8ATnEHut/rkD+7xDHl0WXUtnEUwL54p4Q=; b=gnR4DEkOViVvRmVTphbHHbDjMq4fMT7/K0GwaARYY98h3gIXz+g0+guKJ0WosP9+AELD 5vnngfM1xicGNkDqAl71SLquxFyBhdMH7IGV0axbYNfzteIXYgGGhbwPn6vDjrDyp7BW 7uUQRiBZzNmIh7NLPOZ/6IY9Lm3gKW9BKV5pccOagerY/DTZj5haWRHIOV7OEMg4bU0m rtKOp0L7UABjG4N5tGlRKtbXKNQPBhV3UmYUME9F3Dygmj8NeveP0l5t9FLUWDNqQ5xW V+f4ZZ618d5Z6F+lOqRBE5pR5St5T9W0MP/7SvWl7AoQ5koAj3/LolhZJ2u5a48u1N4e oA== Received: from phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta02.appoci.oracle.com [147.154.114.232]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3m4aemdn9j-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 29 Nov 2022 16:44:35 +0000 Received: from pps.filterd (phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (8.17.1.5/8.17.1.5) with ESMTP id 2ATFhsPk027963; Tue, 29 Nov 2022 16:44:32 GMT Received: from nam11-co1-obe.outbound.protection.outlook.com (mail-co1nam11lp2169.outbound.protection.outlook.com [104.47.56.169]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 3m3987f2au-7 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 29 Nov 2022 16:44:32 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=mAIFJYsLrdlen2e7/dsLtAdvA/rL0lfi46lNS9myGqlKRGHaB9bPt3w2uAqwcU03yvD+o1rn5N4leXHv06pDqKsmvE2/uc/CsLZIavyWhsgXYEwIwiFj2i61h8JkN2AEPDBx4HqUaVLSPpV6drefQbP5t54n4Vs7IhALPjkVcS2K2YVYmWmssp2wrrlzcMK571eeb0IzyeS9UtCY0kenPakEDqUHyAGniGsqpKRP3KX67ucWeupk9woyWb0JUD9FwJ400ae713/v1yF34APwLG2TvWV1GAftcKW0EzQZ9G31IdLp+GqdNIxs6vEQFA6F67uZGPEtwSr6VvUn23X+YA== 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=WCzbFNCHID8ATnEHut/rkD+7xDHl0WXUtnEUwL54p4Q=; b=Giagn3aosE+2xAxDe0oij2fvm/i5jTGfrlkUsVld7BXbQSwNzmjNZYkEa0NjZUaAH6iPsRo2eU0/xhgjaFfQ1uWKiOcfVLLgo+i1DZjsOq4TUyKgEsDrp/82eF3H4C/I0W22smAM3i/o7Nz7/GLOQ5fO2G7xLtUIILN/wpAui7NuZyQheC62ph2Y3+TJL/XsnIxULjoHu+wuN668ohztzQpYx8CEP5zIJ2rxkP/VcE3fJll2zfZVOJQL/V9iB9wxmS6YZf5wnLa1ikxWX7jjW9yfrwLjAd2UKczJdXLYAanR4jaVFHTJ+HXUJX/hmUrkLEa/05clXd7ILm0br1a+yA== 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=WCzbFNCHID8ATnEHut/rkD+7xDHl0WXUtnEUwL54p4Q=; b=aar0dvFu1N9sg0rPoFYK8VWgJgCkRCWwLHrjhdj1D4njvbVc+tWQSoFHkatkCoumM9AbTuZjY51HzLNzRJuYtB4Unbs/i/9Us7UTJjzax3mdy8KZwDFId3Le5vI3IZTfoPjeWNBkEBVBU7tUihTE28DoyAIAfv08oA+yzF3s5Do= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by SJ0PR10MB5788.namprd10.prod.outlook.com (2603:10b6:a03:3df::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5857.21; Tue, 29 Nov 2022 16:44:29 +0000 Received: from SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::a02:2ac8:ee3e:682]) by SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::a02:2ac8:ee3e:682%4]) with mapi id 15.20.5857.022; Tue, 29 Nov 2022 16:44:29 +0000 From: Liam Howlett To: "maple-tree@lists.infradead.org" , "linux-mm@kvack.org" , "linux-kernel@vger.kernel.org" , Andrew Morton CC: Liam Howlett , Liam Howlett Subject: [PATCH 18/43] mempolicy: Convert to vma iterator Thread-Topic: [PATCH 18/43] mempolicy: Convert to vma iterator Thread-Index: AQHZBBHYqhL1Jdjebk6SmrW+9ULbHg== Date: Tue, 29 Nov 2022 16:44:28 +0000 Message-ID: <20221129164352.3374638-19-Liam.Howlett@oracle.com> References: <20221129164352.3374638-1-Liam.Howlett@oracle.com> In-Reply-To: <20221129164352.3374638-1-Liam.Howlett@oracle.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-mailer: git-send-email 2.35.1 x-ms-publictraffictype: Email x-ms-traffictypediagnostic: SN6PR10MB3022:EE_|SJ0PR10MB5788:EE_ x-ms-office365-filtering-correlation-id: 6e3c80d7-7e3e-45fb-2be7-08dad228fc39 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: MBPmFXwVYx7Vbf4yKoqzhORYG3YDioMInSZRRR7gb4RExHGH+haNyudDj/Q+aKK1/bUtG17AeP5eVpmoZjC2fQZUHCzzyDiA4aLKM5aA3DA+Q2hhG2xdboQukurgMFc00wkdIjX06FQxJDsmQU6eS4ELbV4Qv3HybbCe4+iPs0M+lPEmMDSQoo2JcKfbRrS7wROqmRX9mqWf4Fbl9FKq8jbBaJ+/vlpwfvVY8vMC2R2BGFvHc0ZOHMrKuChzrt+PLbwWfjCaYA4S+FEURSO7XvXXAvcMtafSYM4xlcSeYcOLo0GbdhtKP1nlzyfYM+pwAxBe5gXbqPSdXf72TxZH2WPb+jNaT4h42OGwmm5Aa4nMQVUNyx4+Xp+U2jRSN7aRJjJjSq778DRVAKMLl4zg4It3jox8QgAJg8M098sccCev41G4XVAc+yGzcDQTIjKbmvI9mpihftqrEsYJYEv+/Pcp9dMv/CPjKM3bEhmLgUyV6MJ5g5qivReuD4KLQbhCVuFMhoJ+agAKD/yhx+nw5R8+39sE3amJ06/jVMjUh2Bt3NMXQsWPiC/4/IUR8pp0ItMnDwj/bsDoCN0ar/6/fC5lKwF9QuUHAQw2jJ6s2NAMU8IlzCNRau/X8jjyurogqcnnuA2EdUJpZETwCmMV+szBqm4J8QfuwmAA0cVpK7TihlJor6Be7rUzKH5ZiQqwoqvLFE1mMDl1FG4fkZwZyQ== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SN6PR10MB3022.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230022)(366004)(346002)(396003)(136003)(39860400002)(376002)(451199015)(2906002)(44832011)(41300700001)(76116006)(5660300002)(36756003)(54906003)(316002)(66446008)(110136005)(6486002)(91956017)(66946007)(71200400001)(4326008)(64756008)(8676002)(66556008)(8936002)(66476007)(6512007)(6506007)(26005)(2616005)(107886003)(186003)(1076003)(478600001)(38100700002)(83380400001)(38070700005)(122000001)(86362001);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?Q?NosAFbsXebxQpAfHo+9NkwBOzAzpUQjOjUtJ4dXPjDFFIC5eYI6qLLb3hO?= =?iso-8859-1?Q?A5BrOCivwoyjmKASnq0IvYVkUzmaEKvgijNYVd6visYVm2uT8cGR8gqzgc?= =?iso-8859-1?Q?wijUXm1fPo4CcjuzR/im4H1yxtU5vl6dqbZqIQFwSN5E5olIFgbpFlpl7U?= =?iso-8859-1?Q?tAxLMdZM/MSN6IW8C4y+lOdC/6oatyT+DCk6O1k5ZzCcAH0RrVDoRksw+t?= =?iso-8859-1?Q?/nR/nuCqiJFrXLoKH7IDkz2SPRNElH0EJXoHYVY1gS9pLrB9hoCBVH5Pwa?= =?iso-8859-1?Q?Y0BiZ8rnScZURTVd0A09K34/87g4o86NnAMFULNt6k8sOT7nJdGHNRDSqK?= =?iso-8859-1?Q?FsUfywUb7YNk/SKTvLE0r3JZ6IPzflshs5Jz4X1znts6cyRkuw5pCJT3n0?= =?iso-8859-1?Q?kJMD1UifNJAhUZQcNX9EHJyfwheA3RbfluBLajKrg0Hd+rfGoV+EKee1vs?= =?iso-8859-1?Q?nSZjKRs8TgqgiVpCiSiktW2HNss98zFPVSzzW0t6CR96EzkpmpyphVRSZy?= =?iso-8859-1?Q?3n78e/3cd0pboAS4XKkaz9xZ5j9FhVQyz99/EP9NyPmOuV7i9LvqZQH4Zi?= =?iso-8859-1?Q?aIw0d9coHA8nTsZQ0wA9FrF7PJzYxPMQVotNpcftSjSaLy4GJsffZQ7jwq?= =?iso-8859-1?Q?J9pO++ZUiPeHSaoIqPJZjR5Qs5M5wBPVKtXN1ShtfEgX3JWjEI6zg7tB3X?= =?iso-8859-1?Q?0o94iqtlVNt082UmInyqZMoUOqHQdKflP5SjxHwn6517VX6zcDKAN3QbXQ?= =?iso-8859-1?Q?WldYcDBNMkgrjTwb21Xybhjqywv0RdITfgmO/Sq3J2iaGOlVgvmXYdMV6H?= =?iso-8859-1?Q?fPU/r1w4hx5gfTNMwdMTCOYqWaljKbzNlp5vqcdGPggNLSvlGrn/lcb6cH?= =?iso-8859-1?Q?Yd1+46PERPD61pOzqFGi18VJu8IFVTiud/sRd3vmHSxsRGKCjqVdJVR542?= =?iso-8859-1?Q?Fp9rkmDNlGjUYjKsr9UHXyMuoJV+/n/RfiP2AF9QefC2Rr5jvWoA/Lhq2+?= =?iso-8859-1?Q?QfrTsWnyoEs3z5W/za5RiYE4/apCbwj1FZfeCyxrdEgsioYC/0HpO7S70l?= =?iso-8859-1?Q?X8XMSqGE7ybRoMwF2EDc+eB1mfO0Aw1qr8A1uRTCQw1T+ss4taQnDE+qes?= =?iso-8859-1?Q?IU9Aep8GJgHPVpW7bkoG67c28LOTwYBkQZpVl3yQ/k9lwBrgXWf8I5hdLK?= =?iso-8859-1?Q?B9VbEYKNeGD9935223xcZAuoDom2SauqmnvuTFSsVX6j94xPH1n2eskpdL?= =?iso-8859-1?Q?25zAiYlfpG0NOOYNQhVWu3zdpZrcON402nMg+bpZAe5dIjILHoWaVt5qOC?= =?iso-8859-1?Q?Vk7FdrMLBn/+RxewkK7BNiq2zazW0okTGMyUUBJKZkhUptRCeWZh7X1nXN?= =?iso-8859-1?Q?S/Lkc+CxwuNGz27bbfGKlRvRvP+6GmAXqNpHDDDi9X3UpiV7E5ZPf6Sg7q?= =?iso-8859-1?Q?VUfz07DyxPhxaFonyTPeYeIOS4bQyrmafIuk72Qkws6kBOtGWQwBdreNjQ?= =?iso-8859-1?Q?3OQL877M5V2ape4RUya2sTN+z4tE86gx48KvVnXFVpe38ZagPHpOJ2vvPD?= =?iso-8859-1?Q?kjk01DBIrrV7ltZRHxHfSPkPw/NhFx0V8lrNMxcYROgV3qspy/mGflekne?= =?iso-8859-1?Q?Ypj/XPFawEltKNICl/OF3a59q1IAoTVRhPuBpFOkvrCnbcE2epq1gEKA?= =?iso-8859-1?Q?=3D=3D?= Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: tlxWaVcESzRclb00N1pt4SDiBbGENZEzZ01uXihj+PwNPtkz3EIxwt95xkKmHoxp78eS/CHG55WiF1Rt51gkzPPcAANmhiyPMe4A5/h7DxoCNnmWTe9aq3pRhz9MKoHdd0nRXetyyTdZzeiSw3ecEyNnzzzfDUrlfPCF9I1L9l9QEunXuSq1ju4DmU6Qho5uP6lB2uhpX7OJ0ffTlFEcaYqofFDPsDQKdUWu6f/I0lGwYUX9DocpItCvPZ7FK56gUmXo3jiTLV6VJf/vZ7khFGocbObD9mQXmK5wFTqvcWJGgsuimpyWvDmor7vFUxC0ETWssRZYaeJgKofPVZ4u+TMgQLIygv51xJLmqbQYuvdmXkbKsgsDPl8zd5mfquI+MVyyR3hbsR8PJNNJkdpTAbH4f64Mj2DUuEqW9r/roC2VgyTphgchiF2futT4SvnTsOnALQu711sVk0AEqQTDJbW7FkdsfOgl8Z3V7uwTgDLbO5tX0KLmLVcH4NN0Pf3y5YPLAkI6NsJKK8RtD9IoIBYZ9bJPcsAzDXKobDYxJ69+8yEdJgwn+E5urR1B5eNkePNmBNcn5D/3T75D4aqMfH5SrizqyxUPI1yA6F5+tv4rvInMt09VYCcIfCYWdyNgncns3EbkFbp+QXPbEufjYxj4VC8ANg11XtBz/Ni3eUqMCsFBPHhPVDMDOjr35v6SEcWLnaN/R2CmladTRRM69/l1V0keDDhBdFPY85Sle2DAycbGkYHZRhmqNHmvQ3SCd62AhzekLn5+Uiq4QxqtPxhS2Racqn8fn1+8vxPFoc0h1Fs9f/XZ8GO4B950FjFEB2CPzBuZj80jUxS5p/7ZOQsjiZjtoIm1y+lA1G/vmT7p6wjM6YhX6oneTGRPjTYwD/jqQBYCohZdFEgJfzZgVg== X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: SN6PR10MB3022.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 6e3c80d7-7e3e-45fb-2be7-08dad228fc39 X-MS-Exchange-CrossTenant-originalarrivaltime: 29 Nov 2022 16:44:28.3946 (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: Vxh/4eh71xwEJfzyh4nBlbiH8SvvviCtzDNbtPh36ULBNSbGQX+DcwkPt1pVW4glFs8RxyImXygZwNhuoF2etA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR10MB5788 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.219,Aquarius:18.0.895,Hydra:6.0.545,FMLib:17.11.122.1 definitions=2022-11-29_11,2022-11-29_01,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 bulkscore=0 suspectscore=0 phishscore=0 mlxscore=0 spamscore=0 adultscore=0 malwarescore=0 mlxlogscore=999 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2210170000 definitions=main-2211290093 X-Proofpoint-ORIG-GUID: 7iY1iCxjeEVUtGBrIfrmAjfd4R6gbxK0 X-Proofpoint-GUID: 7iY1iCxjeEVUtGBrIfrmAjfd4R6gbxK0 Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" From: "Liam R. Howlett" Use the vma iterator so that the iterator can be invalidated or updated to avoid each caller doing so. Signed-off-by: Liam R. Howlett --- mm/mempolicy.c | 25 ++++++++----------------- 1 file changed, 8 insertions(+), 17 deletions(-) diff --git a/mm/mempolicy.c b/mm/mempolicy.c index 61aa9aedb728..5bf4ab8eee49 100644 --- a/mm/mempolicy.c +++ b/mm/mempolicy.c @@ -787,24 +787,21 @@ static int vma_replace_policy(struct vm_area_struct *= vma, static int mbind_range(struct mm_struct *mm, unsigned long start, unsigned long end, struct mempolicy *new_pol) { - MA_STATE(mas, &mm->mm_mt, start, start); + VMA_ITERATOR(vmi, mm, start); struct vm_area_struct *prev; struct vm_area_struct *vma; int err =3D 0; pgoff_t pgoff; =20 - prev =3D mas_prev(&mas, 0); - if (unlikely(!prev)) - mas_set(&mas, start); - - vma =3D mas_find(&mas, end - 1); + prev =3D vma_prev(&vmi); + vma =3D vma_find(&vmi, end); if (WARN_ON(!vma)) return 0; =20 if (start > vma->vm_start) prev =3D vma; =20 - for (; vma; vma =3D mas_next(&mas, end - 1)) { + do { unsigned long vmstart =3D max(start, vma->vm_start); unsigned long vmend =3D min(end, vma->vm_end); =20 @@ -813,29 +810,23 @@ static int mbind_range(struct mm_struct *mm, unsigned= long start, =20 pgoff =3D vma->vm_pgoff + ((vmstart - vma->vm_start) >> PAGE_SHIFT); - prev =3D vma_merge(mm, prev, vmstart, vmend, vma->vm_flags, + prev =3D vmi_vma_merge(&vmi, mm, prev, vmstart, vmend, vma->vm_flags, vma->anon_vma, vma->vm_file, pgoff, new_pol, vma->vm_userfaultfd_ctx, anon_vma_name(vma)); if (prev) { - /* vma_merge() invalidated the mas */ - mas_pause(&mas); vma =3D prev; goto replace; } if (vma->vm_start !=3D vmstart) { - err =3D split_vma(vma->vm_mm, vma, vmstart, 1); + err =3D vmi_split_vma(&vmi, vma->vm_mm, vma, vmstart, 1); if (err) goto out; - /* split_vma() invalidated the mas */ - mas_pause(&mas); } if (vma->vm_end !=3D vmend) { - err =3D split_vma(vma->vm_mm, vma, vmend, 0); + err =3D vmi_split_vma(&vmi, vma->vm_mm, vma, vmend, 0); if (err) goto out; - /* split_vma() invalidated the mas */ - mas_pause(&mas); } replace: err =3D vma_replace_policy(vma, new_pol); @@ -843,7 +834,7 @@ static int mbind_range(struct mm_struct *mm, unsigned l= ong start, goto out; next: prev =3D vma; - } + } for_each_vma_range(vmi, vma, end); =20 out: return err; --=20 2.35.1 From nobody Fri Sep 19 02:32:03 2025 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 878EDC4167B for ; Tue, 29 Nov 2022 16:46:05 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S236205AbiK2QqE (ORCPT ); Tue, 29 Nov 2022 11:46:04 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41472 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S236075AbiK2Qov (ORCPT ); Tue, 29 Nov 2022 11:44:51 -0500 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 2E9DC391FA for ; Tue, 29 Nov 2022 08:44:42 -0800 (PST) Received: from pps.filterd (m0246627.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 2ATGPita017353; Tue, 29 Nov 2022 16:44:35 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : references : in-reply-to : content-type : content-transfer-encoding : mime-version; s=corp-2022-7-12; bh=cLs1VNDaoPWQ/GhtH9G+nOGR/B2yLNx8FYL80Ieaoh8=; b=sbv4EzvmFZHNIHt+VHYCQd2BMOdQ2aXarD95EI5VXtsJx5dzbp4o5LxdJak4ow9pN16v S69t1mOQTmhVwXbA0MLrp5Ny93+WI6kLOFlWf/iVz/dv9UtmbQfZTyyLWiIXFBek6Cy5 FL9fDiizrk0Dq81v2tpLmDjdwYajHOQFzqDCQxdqmOPFVaILubeJf81uFhIdx4OWSLjz c0s6dtRxsJv6ozpvS1jc6+7akTK2om4/kaPmZqowdkUSLGgN1F76gsAx7ZJWgeFsuknu 40f0yv43wpwIi68XH+4DgK2WjbkHRWweRALRPsrb+MZ+8zQEVMzDuRhY3RYGJVPE46pv wA== Received: from phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta02.appoci.oracle.com [147.154.114.232]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3m3xht6hn3-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 29 Nov 2022 16:44:34 +0000 Received: from pps.filterd (phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (8.17.1.5/8.17.1.5) with ESMTP id 2ATFhsPl027963; Tue, 29 Nov 2022 16:44:33 GMT Received: from nam11-co1-obe.outbound.protection.outlook.com (mail-co1nam11lp2169.outbound.protection.outlook.com [104.47.56.169]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 3m3987f2au-8 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 29 Nov 2022 16:44:33 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=YtIfTITP3ckwsP26mZhxH+KXp60Y+DEpWl1Uz3E//gHBnfVuUFFdonHgJbuT/SSxwPovw6WTPsHjG3MZTwo8nuM8OhJaLG7H0EGToAfWwzOyfwV7s1vt+Krz4DCU8f1+QzOkBwEEPlkdmj5HEUVTPZSj3g+5rBEQPImCj2XYVPQcIpr8wtkWhGQl5uKOGNTNUjNejHV2fyiOfEmPOsboMXbunHjm714qDYRM8ST5CtmQqPu9CTMTRxr5WJtDZfo/N6ZgoIemhoyZqAK87+UH9WqN85Qxcq6PU9zFDdg1icyn92P56AuUvChNEVPB5A8hmek8gHZFV0aXcPIva89B5Q== 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=cLs1VNDaoPWQ/GhtH9G+nOGR/B2yLNx8FYL80Ieaoh8=; b=Ec2w7HOpzzL6GlwKuBClifAXjEe3lD0qiP0sIztAx/Exz0HJ4CS9bN1qj1DwZ5MoItJ6hfBPbcuYhRZoeGL8nmsf5BxWO6pQwz+C6V7OptyNt7V7v1Tfcygl/j4zErBpQsZzjufI6NIoqD0qlFyh8QkR4wdrPVhOIuI5tApkOATF132Xf7tHRJl0bhwmst9gl703vGW/xCiLN3HQmyrTc1T0Q8hk/RmOPHs1oI2WEkrAGBWKl21na+S6sxFytLqk4zQ5TXL5Mk7PC1AKd16s8A6/cjmdQbdjlMtnzIPMdfcn40R1Fmk6zgCs/TX6zz5DE5hpnZ7rqF2tA/BG2mIDyA== 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=cLs1VNDaoPWQ/GhtH9G+nOGR/B2yLNx8FYL80Ieaoh8=; b=JexFFvk3gCW8d5E971kT7c4M4HP1v4G5WSh5r/202tpQ1Dhqp1KtgX39pShCqjR6uXQ1WBgRQxQnXx9yx7/HgrhpCBNSaDvQtQOl7b3hBewzrz8zAmLdi7765RxYvUD5HdBIAK4IibLtfX5YNL914lKCwvbUHUxxlkCQO+3XxyM= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by SJ0PR10MB5788.namprd10.prod.outlook.com (2603:10b6:a03:3df::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5857.21; Tue, 29 Nov 2022 16:44:30 +0000 Received: from SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::a02:2ac8:ee3e:682]) by SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::a02:2ac8:ee3e:682%4]) with mapi id 15.20.5857.022; Tue, 29 Nov 2022 16:44:30 +0000 From: Liam Howlett To: "maple-tree@lists.infradead.org" , "linux-mm@kvack.org" , "linux-kernel@vger.kernel.org" , Andrew Morton CC: Liam Howlett , Liam Howlett Subject: [PATCH 19/43] task_mmu: Convert to vma iterator Thread-Topic: [PATCH 19/43] task_mmu: Convert to vma iterator Thread-Index: AQHZBBHZM8nz3i4/xkm06pBVRDx9JA== Date: Tue, 29 Nov 2022 16:44:28 +0000 Message-ID: <20221129164352.3374638-20-Liam.Howlett@oracle.com> References: <20221129164352.3374638-1-Liam.Howlett@oracle.com> In-Reply-To: <20221129164352.3374638-1-Liam.Howlett@oracle.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-mailer: git-send-email 2.35.1 x-ms-publictraffictype: Email x-ms-traffictypediagnostic: SN6PR10MB3022:EE_|SJ0PR10MB5788:EE_ x-ms-office365-filtering-correlation-id: 53cf5ac2-fd47-49e5-d808-08dad228fc87 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: ZxZJ38mQEMVq7KW/cJIlZopYsceNJN1wXpD02Y/Pk77yZFUump8lYN9mCVOP/B8teIcCRFRclLYil25kZG/Fxg6wEvK/OuE5xn6t+TtnHeS6VWuZpRH87kyWLL3ZJx92TMk1KGU4NqN/K+mWsyV2zoi3zjSvgc+udqDHGu4kAX+bEkltilzzFVzypzx0m9kN25SovzdyuE3mZmZKIS8DHOjSyoe7Z5AVhsXFlXZraSFxq2u0JSeREjrKm3ZovYe3b+rq/xrDUbP6tWFtnZJiQRrQ0gommp7jVHKLVwEkG5Boeo5fsxcjzERCoeHVGAIv0OaiPG9K0J7i2WM/o4OVvAnIgRHzMK+UMVjE4lJ+EwStteNVd11hNhpEeVhbSgnk5k3nTPwPKW0M2c4K1Mz18w19X4wXa7SLSTPpBGmhmMMgzEomW2V2kfEmbSfcSSA0oR49aJg2kNGDL6PHbPTOeYC4jUNEYWAZP/DkcoD1TbE46rR9apOx4TGi3pDLEAGW0YJtP4dp75DAQwLmgr5cIpapiCZsH25BW73iTFLVMV3YJCf6PLm6Lx+O1wdscW/uvUoi5Nrz8/vb8aFd1uoiIEdTD9DxikCpe+Oj8j5Hp+tMpz5p8HEqJTEmsx4SGtoXVevvOvFz2GG/zOUl+XhXdL/4nG2lt0uml5h4uMrrECWnvJFvNcCRPkxFHbRk+jAgReY8sHGL6r7Q2FJaaiAong== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SN6PR10MB3022.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230022)(366004)(346002)(396003)(136003)(39860400002)(376002)(451199015)(2906002)(44832011)(41300700001)(76116006)(5660300002)(36756003)(54906003)(316002)(66446008)(110136005)(6486002)(91956017)(66946007)(71200400001)(4326008)(64756008)(8676002)(66556008)(8936002)(66476007)(6512007)(6506007)(26005)(2616005)(107886003)(186003)(1076003)(478600001)(38100700002)(83380400001)(38070700005)(122000001)(86362001);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?Q?X+lvYfF8tD3kZYHRM2ns96n8wc5vnUyyDWXU5PNQRcxTpz0K3V1JGdvZwV?= =?iso-8859-1?Q?eBAfksOmnAX0x2AEp+xF4V3JXO6WJc5f6raqUPRKyt+zlso0eDrkDwdpoz?= =?iso-8859-1?Q?49zk/QouASPEa0MVJXTILP/Byql0WJ6nZcbUl7Z6vs9UM3NHoEojHXQNOy?= =?iso-8859-1?Q?SAyBuCtamt+Z4CQYW0o0SqRnt8J/xI/H8X9lNIDtZXhdmcI17FTaHU0JUq?= =?iso-8859-1?Q?iW5mpJ7xpsMJDrWRpxqAO2nwbaz+ki3HwaNjXZYZ4s/wGp8Jpd9XR/VVIG?= =?iso-8859-1?Q?CYcCdgUtzy2fj4rn0zwvl7IXnzHRUzW35p0ztRIxfiCOSki4dX4nbwfqxO?= =?iso-8859-1?Q?mTYTWEyEMbxe+mjGMFHcjG9QYoteX7XhBomPafXODcurMq9XBLufp9dBRe?= =?iso-8859-1?Q?CkRumqZ+hHE+SOjqUqV9LmojEw/Z64WkD5wrSGcSPb0Ell1pfWDCwfx5wX?= =?iso-8859-1?Q?9k8TMQKNTQ/ZWjWbKqv57Y4+roo8euaJINhBTG0+8w0SKpotbIDwQhLfTR?= =?iso-8859-1?Q?LetzoRe4/plrf3EXtWGbkBr++mlVRs1qBmHx2gjUAB5jHZQH4UwEAbm+J7?= =?iso-8859-1?Q?BwfNJaOPDdRfgWFQagQm1qUMuCrcSDtGXxxW4JQViFxBciGRTNJWVR9Eyq?= =?iso-8859-1?Q?vSK0sBwYV8r1QV2vLG6H1kaatD8s9eB6TSa6bnAswYmNby9wjoWHkAaogc?= =?iso-8859-1?Q?voRStvvaARtvnVKjqPvj252uqHTsunGSjjYr/DXK09XVvOz6fdvmAXyzSy?= =?iso-8859-1?Q?k1kj9MuBZPGk4/FSLDOt97ELuPz8lQUYr+E9lIvpT+RUr1jOQPM9O4Z1TL?= =?iso-8859-1?Q?GCAHp6YBOgf52ZXhm7l7fd16B5SzKt8CFSYfUA0pFMRiX6rTQPwZUwkgCs?= =?iso-8859-1?Q?IAFbKZ1Iq+ZlQEGyippqzEdKDJXIAFpsVFr8i02p00lESGAhw6jvIVnc7u?= =?iso-8859-1?Q?3g5Hu3ir/RWjSB1IjIkWNe4Ry3EkA6ERhyQqJ8WUDVWnVsE2hFdDC2YqAY?= =?iso-8859-1?Q?p/70XX6HPW3VpsyPuPl2iFERpWNk2tpIIwIbs3BaF7fmzhuGdbOYP6jp/G?= =?iso-8859-1?Q?XuOgJQJj0oyfazJ4hsnEjzwOINMIhq1BkG8K8OossYrlLSMGeEaATHwKWE?= =?iso-8859-1?Q?IYSuWuzHHj/BOKnk8RSAvZPug8ob+77Gc7B2j4QmQQYR65ZVLqXdrXMFQK?= =?iso-8859-1?Q?qHIzsCD5RXZne3/3qLy3O5nY7GDMHFHG4aApoxqLJj9/tMs6AmZ1/la0nX?= =?iso-8859-1?Q?q837e1oi239MMv88F8TNuNZ9QDHZbJaBIAWpdgBPilD5PAnU0sLoEFtAI7?= =?iso-8859-1?Q?c+wX/N417bHzERDUPZT7uUtnxDblRIR53Z7Xx2ivKF5FAok8cCIIsODI0n?= =?iso-8859-1?Q?LXxcnYGVfPDVNAwaWvKSouS3ZQ9vPmPaCKT79iXP4ta+wmUz1udKgTrGgi?= =?iso-8859-1?Q?kIddtQgwE7IbcwOADjRMqT8VOQUEbvd4QSaixZH85CpufYREwgxpmHEWLp?= =?iso-8859-1?Q?lRPQRt6tGlakSlZ4Q8zZ6xIaRP4FXv+SaQEefV2cejGCR8imFTIQtyljLg?= =?iso-8859-1?Q?9y1RbqXy6fsywiuCS54s/ZKVn5iBO3p+V6xiSm0KOyEVt2GR4cJGZb3o2N?= =?iso-8859-1?Q?5GcVuEKjj9oaI0EErFeWYiAyJ0g6vZ4f6pFhQI5BVL6pHZbpiHLGJd7w?= =?iso-8859-1?Q?=3D=3D?= Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: KBJVBtVD1vTmqO7auxmihpy+KiP0SZymOv96btyBY/GoITfHYPhfheYcr7MQ0pyp5oohAg/quPPMg+o7c90wxtRJFSqVa2GWJW+MJLbKO2DeMJ1EEgws1LSwxtsqdXnauZ+lwIGkSMjGxzoRtFsLDqv6UH8Af3b3GxWs3qjaN53zsZuS15of/ix/7HU6vSlWgPuerqo9xer4kx/fotw2RxpevXyEg77yEWxbxv+m8t7b/wPTCpmAOFCj9YN0XIhiKgeu4/uz0jPi85PZrJTfiPg80D8sJFpF3et+rvbI8a3UMS9hYpHqTxLlkEHqhfmCVXaNodU72XUJCP5wiQ5ewXMHz7UcKinSAbDWocCHMLF66imDm7iMe/aptXlZAlthtqAdxoyI1Z9Bov9c8gJKkCNOidLCSswTZoSfZPKJuUXBhQwTQOnwA8oUNC3hT9svYfUKtnQXYBdFHj8+l40VZVbT/0KSfI6qb4jwKy/xWg7/Z9f+0j09Rfmm/KpIR8jpcnPk0rVGrMYTH7mzl+QNJh9nydfvaoB0xQuvaaYYMlbA/w3R/ITtAnGVxraafjL2AGLcGR1F2EkiDWVKxOM0re9mnGyXnBuqK3spIRSWGCp+KLBZQY+nXPQw4lsOtX66pNMAKBq5SVKIwKj1XvzBOc+vOMDAwRDDLB6MX5P9DIaJmjWP7rSERPKK1RXOkeNFLllKnNrB/ROJtjMckVrj8L78yRCATI01Tha3CQ/RislKx0NkHoNNhcGJPnR8nNhYpjgMl+mHs7VQuNvNSJHM304TqhUx6mbS6FzHdRLjreUHok8gLA8feVZcNisC9bsyO2byqFThjyN8H/8zxI/X+KRFjwnB8RP8Do/e/s/VyEGrUQHtCEMn7N6FQLsWyawAB9dR81KCxgbo2YVDSfrLAg== X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: SN6PR10MB3022.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 53cf5ac2-fd47-49e5-d808-08dad228fc87 X-MS-Exchange-CrossTenant-originalarrivaltime: 29 Nov 2022 16:44:28.8633 (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: emR0zjespX73xJZalf7A8XAE2cylVSiz/kl7DJvpNWcPj71JZ1POiruP3jEFXkbRXNboAbqQWsZVfVcBbxFRWA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR10MB5788 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.219,Aquarius:18.0.895,Hydra:6.0.545,FMLib:17.11.122.1 definitions=2022-11-29_11,2022-11-29_01,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 bulkscore=0 suspectscore=0 phishscore=0 mlxscore=0 spamscore=0 adultscore=0 malwarescore=0 mlxlogscore=999 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2210170000 definitions=main-2211290093 X-Proofpoint-GUID: ztbK3Wv2XE-kgSXBPWxf1EKkwIm3ROj9 X-Proofpoint-ORIG-GUID: ztbK3Wv2XE-kgSXBPWxf1EKkwIm3ROj9 Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" From: "Liam R. Howlett" Use the vma iterator so that the iterator can be invalidated or updated to avoid each caller doing so. Signed-off-by: Liam R. Howlett --- fs/proc/task_mmu.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/fs/proc/task_mmu.c b/fs/proc/task_mmu.c index 8a74cdcc9af0..1b0bb36c51b4 100644 --- a/fs/proc/task_mmu.c +++ b/fs/proc/task_mmu.c @@ -884,7 +884,7 @@ static int show_smaps_rollup(struct seq_file *m, void *= v) struct vm_area_struct *vma; unsigned long vma_start =3D 0, last_vma_end =3D 0; int ret =3D 0; - MA_STATE(mas, &mm->mm_mt, 0, 0); + VMA_ITERATOR(vmi, mm, 0); =20 priv->task =3D get_proc_task(priv->inode); if (!priv->task) @@ -902,7 +902,7 @@ static int show_smaps_rollup(struct seq_file *m, void *= v) goto out_put_mm; =20 hold_task_mempolicy(priv); - vma =3D mas_find(&mas, ULONG_MAX); + vma =3D vma_next(&vmi); =20 if (unlikely(!vma)) goto empty_set; @@ -917,7 +917,7 @@ static int show_smaps_rollup(struct seq_file *m, void *= v) * access it for write request. */ if (mmap_lock_is_contended(mm)) { - mas_pause(&mas); + vma_iter_set(&vmi, vma->vm_end); mmap_read_unlock(mm); ret =3D mmap_read_lock_killable(mm); if (ret) { @@ -961,7 +961,7 @@ static int show_smaps_rollup(struct seq_file *m, void *= v) * contains last_vma_end. * Iterate VMA' from last_vma_end. */ - vma =3D mas_find(&mas, ULONG_MAX); + vma =3D vma_next(&vmi); /* Case 3 above */ if (!vma) break; @@ -975,7 +975,7 @@ static int show_smaps_rollup(struct seq_file *m, void *= v) smap_gather_stats(vma, &mss, last_vma_end); } /* Case 2 above */ - } while ((vma =3D mas_find(&mas, ULONG_MAX)) !=3D NULL); + } for_each_vma(vmi, vma); =20 empty_set: show_vma_header_prefix(m, vma_start, last_vma_end, 0, 0, 0, 0); @@ -1271,7 +1271,7 @@ static ssize_t clear_refs_write(struct file *file, co= nst char __user *buf, return -ESRCH; mm =3D get_task_mm(task); if (mm) { - MA_STATE(mas, &mm->mm_mt, 0, 0); + VMA_ITERATOR(vmi, mm, 0); struct mmu_notifier_range range; struct clear_refs_private cp =3D { .type =3D type, @@ -1291,7 +1291,7 @@ static ssize_t clear_refs_write(struct file *file, co= nst char __user *buf, } =20 if (type =3D=3D CLEAR_REFS_SOFT_DIRTY) { - mas_for_each(&mas, vma, ULONG_MAX) { + for_each_vma(vmi, vma) { if (!(vma->vm_flags & VM_SOFTDIRTY)) continue; vma->vm_flags &=3D ~VM_SOFTDIRTY; --=20 2.35.1 From nobody Fri Sep 19 02:32:03 2025 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id C8F8FC433FE for ; Tue, 29 Nov 2022 16:45:53 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S236103AbiK2Qpw (ORCPT ); Tue, 29 Nov 2022 11:45:52 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41484 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S236016AbiK2Qom (ORCPT ); Tue, 29 Nov 2022 11:44:42 -0500 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 7C2E35E3C6 for ; Tue, 29 Nov 2022 08:44:40 -0800 (PST) Received: from pps.filterd (m0246617.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 2ATGP14g031318; Tue, 29 Nov 2022 16:44:34 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : references : in-reply-to : content-type : content-transfer-encoding : mime-version; s=corp-2022-7-12; bh=uSweNQ5DK3Nmh4aAYiVtOYJ5qY4vzSTfB3J5vg25+g4=; b=ojHYmhnd9IFUv7lsVT0cDNd00i4yvcvE/BANR2F+zcBZSMYpzpacCoPejo96wZHBgzWU ZD4tlPo+sNg3W+o7nEgip62HKyAZb8z8LoF1YEGxXYgb5bn2wTZc7d2Uwdt/jtRrQJsn K0ScTCIYJgkJUaTL0/evsso7qw4nUTJkEqxXOLa65CvoOC8UBNxzU57igMJ1NUIyeIru ewBTjxx2vtx65NQVFKCnxg3158nR2DKtVQAl5Vq7Tsq9b9lUEy/whvpuirKBN1FCNy1k Pn1HRnYZTjyufanovVx9BPyzz7/WIMYLbe45hb5t/nvCzyiKSp9oo0PYGX/mK8q+agi2 Aw== Received: from phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta02.appoci.oracle.com [147.154.114.232]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3m40y3xas9-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 29 Nov 2022 16:44:34 +0000 Received: from pps.filterd (phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (8.17.1.5/8.17.1.5) with ESMTP id 2ATFhsPm027963; Tue, 29 Nov 2022 16:44:33 GMT Received: from nam11-co1-obe.outbound.protection.outlook.com (mail-co1nam11lp2169.outbound.protection.outlook.com [104.47.56.169]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 3m3987f2au-9 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 29 Nov 2022 16:44:33 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=mdflu/4rGFC+s0A64AnGxr6obk2krdfNluYcTkdvJI/wphIDWIO+i9yQcDzyKteh7Z5gZd4fRwqCw21yJSVsLy/T9mhLGcnrcQaiRRsX5D3UtS0IFNaLYtWFXL3oKn7aLrutPH6bqTC79T+rKkyUdELmwEGV0BihOfM8/IYO0sA/jHf9diGkqNuSGZUjBXqvKw0lL90AO2VVgrKjZJel5LCqRk8S80Nm95U59oSxO0+XvJXdxF+zlp+AErvGVBii0vgYb3A35D0Eph43UESYvUnOpsnGtRqdvGMfFxn7Yc8ER5rSQ4A1b7PjQwTLF7llgYyfLsKkAD6H2YtzeNtsIw== 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=uSweNQ5DK3Nmh4aAYiVtOYJ5qY4vzSTfB3J5vg25+g4=; b=B3cBaJ36Mz3nH4JEkuP141K+KzKGXJgfkrKAGJQyoVe7FbC+c+5gUg8PH6tdtStQhf//JBsRPeVburRg2mqkYHmjDWwfxOTAbXNzHbrHfP3BRb7GLiO0pVhQgCLCf1BRCTaBsaURcJ1I3Xj/DWuI71vDtZ4x9L6mWknCWjmEt3etEbRUfKAUbY9JuJOKNGKVCjpBf4aHaaIFrNW8a8nfLlkO5aidvahFU60Ldtt6mgeJiC3AzJe6CeQTiUCOTdV4GMb9jVzdwgHAEvuJXIiPguzUlSPkWXauaMsSr75t54pUW5ZaW5fdJnYomwvjatpP5YEBS8Z/ZTPC8iPeRsTikw== 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=uSweNQ5DK3Nmh4aAYiVtOYJ5qY4vzSTfB3J5vg25+g4=; b=v+yj5/Hj2R344ukP/hpKQZI4Ie3fXBXrqL+R1Klbi1elbEZwo4HFPyqcWHdeez3PGmrnU03gxcAaynPNnHWOc67i96jktCubi3RmFEmJ8H1zvkxWrT4P0WKzVmA9+t5QPXh53CwpM72/hKmSVxuYQIRP7EGbBa4Pz9YxnwRBQwE= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by SJ0PR10MB5788.namprd10.prod.outlook.com (2603:10b6:a03:3df::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5857.21; Tue, 29 Nov 2022 16:44:30 +0000 Received: from SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::a02:2ac8:ee3e:682]) by SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::a02:2ac8:ee3e:682%4]) with mapi id 15.20.5857.022; Tue, 29 Nov 2022 16:44:30 +0000 From: Liam Howlett To: "maple-tree@lists.infradead.org" , "linux-mm@kvack.org" , "linux-kernel@vger.kernel.org" , Andrew Morton CC: Liam Howlett , Liam Howlett Subject: [PATCH 20/43] sched: Convert to vma iterator Thread-Topic: [PATCH 20/43] sched: Convert to vma iterator Thread-Index: AQHZBBHZQOLofThL1EGav6weVWb08w== Date: Tue, 29 Nov 2022 16:44:29 +0000 Message-ID: <20221129164352.3374638-21-Liam.Howlett@oracle.com> References: <20221129164352.3374638-1-Liam.Howlett@oracle.com> In-Reply-To: <20221129164352.3374638-1-Liam.Howlett@oracle.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-mailer: git-send-email 2.35.1 x-ms-publictraffictype: Email x-ms-traffictypediagnostic: SN6PR10MB3022:EE_|SJ0PR10MB5788:EE_ x-ms-office365-filtering-correlation-id: c94f2fcb-cfa2-4db9-5d5c-08dad228fccf x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: OCvbzgBdXCeMU8UW3naQ3ydokMkknvLgqlkmjQGmOmLriSj5v6DmXVF2gXw/3l+pjMM3BoFb0bHgIphHHlM5vdJomEMIQZesMkvalgNDWP8afsKVg3YmkOiIsXqvoe30XPoqOGvn6IlkA7tTMppZ2CWEpflUadIonNX1ENSojJ5uFRv6Qyb4BJqW6/ZzMAxFV3sajP03QIthMYJUpTOhwQWxJks6kek/yz5ste6vLmdPKo0MA6qm3v8aVe9M6UpVCCz1zhQWeAIgLq3uBs2k+8w+HrBdWNFRRAkv8LIe3/jJsBr1fdBBtAyigOTwTVAOxY/adsXjlNsnACscYLz2rBErRg0RJsvXX5S/X1mhq6EZk7hwr1oMxV+dIHQ+nPcTJg8H0nbeFelUdfRD49U3hBZTJJrZ+UQgjqkHPWHH/Mxj7t6pd6hrsM9g14CtiQK3kNed5D4u0HSM39MZNTLZjeteUCwslVLKCazMiSWnrphgJZkoDwe1nREuOeggoEPUF4oCaraiT4DJ0gqOv7jXuK9cSM0JU8MpWIm3rI/ubAnEfCM2beh8uNvMwmtZPmc51LDRY5d6ykGoOsLJzXELWN+rAASgCa6jLe+FkWI3WY+BHlpINWejKzAAEWaUFVoeHFax3iIzlxLz89RHW4T0EenHy3JlNVLZz8eba9ddTQsMz7MctMChM1V9xQS1ZgG6hkb5kaExSYYkkhqq25i2LQ== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SN6PR10MB3022.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230022)(366004)(346002)(396003)(136003)(39860400002)(376002)(451199015)(2906002)(44832011)(41300700001)(76116006)(5660300002)(36756003)(54906003)(316002)(66446008)(110136005)(6486002)(91956017)(66946007)(71200400001)(4326008)(64756008)(8676002)(66556008)(8936002)(66476007)(6512007)(6506007)(26005)(2616005)(107886003)(186003)(1076003)(478600001)(38100700002)(83380400001)(38070700005)(122000001)(86362001);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?Q?eqd3QRAUNxZPTTLF8RBPhY7iOLLfd27kXPM9eTBpoMeCHIEBRLyUc7AbLE?= =?iso-8859-1?Q?emaDHoDXY+/xLWaRthgbRdZlIS44RnfnSOf+x4skrB9QFuXSsCoEOA25F+?= =?iso-8859-1?Q?8BS109CFtgzfno3dCZgHYCzlewBqTYokxNeuy/GrHucYpLoiw9s7MyecjE?= =?iso-8859-1?Q?DFyDSITRMN5x1lhnKPa4TTQz2gSSztxQ5Q4L4VQQ7y9azRnhuu0Wbxy7cC?= =?iso-8859-1?Q?yI1ON00fYSJB++AL6u6TVKY2NaC+PFFgwaWCGKcD/2RNL93cDmUQVOoC9B?= =?iso-8859-1?Q?CsjJW3G8xl1sfzzQVKZmLxvOeqRIy7qdvVHRztRiD3V/er54HIub95xLW6?= =?iso-8859-1?Q?n5Bu21jNmuDUvF5nujvXwHoqu6BJ4seILq2chzq5mz3lY1aX/63OeOwMn1?= =?iso-8859-1?Q?ruEA4XPgdCgt/nx8HGZNUuPo/s4ciZKze6kGzF2gShaL6+JvTOYaxM1K0b?= =?iso-8859-1?Q?TB7O8lKYh/rdY9l2Ohh4dO38oR4r7AJWJLXuDiALTl6svyUQTDunJahDqa?= =?iso-8859-1?Q?x94Gc0RLfLbYXd2c3xTK/s0Q+gusV77lnST2xo69NLZ5+Xwf/1YSqwoV7S?= =?iso-8859-1?Q?xc9dkQ8NVGIoUV+w3tLxFZKjRBWIua3tmZrUsxoMewehrlD7uIf4BF5/ND?= =?iso-8859-1?Q?RjIYP0fPEX1CiGYC6v+tMgkUabBh8NIVq3DP+j/TVRaSk26Iz9ytaECv61?= =?iso-8859-1?Q?R7ieP11fa/AGAPTWCbbaBJzAXxQIUsYcDVYViyZra/dnFOEI0o4lqCDOIP?= =?iso-8859-1?Q?US6exy7J/6Aq01/BcSVHp0DpftCURlWE3Jbvh4ilBa6bpNw88gWe03z+pm?= =?iso-8859-1?Q?WNiXRqIE0i8WsfLdXgE6TT0RXOIvvFhTykWIdEuc0YaaXT4+/mZlrMFD7f?= =?iso-8859-1?Q?C7Ui5YJYzUyxDsPpVdbt75Qwr/cSq952svlYg4EuPbOJieWCnVN/WMaI1V?= =?iso-8859-1?Q?G8fyY/t9UaDihOCUegycai8MP/8pkYyZO22llN3fKYbUmCfQScSDHDgyrp?= =?iso-8859-1?Q?yZjQuleLe0cCMlRtH4HMTsaM2tEN/uhKUP8veGKD0jpp196Ozk9xY9Q0eO?= =?iso-8859-1?Q?bEIS3F09DNHTrO4tPWGvWBEm+ww7kZjPDjtGtBJsOci6BgHvJGfhp3xprR?= =?iso-8859-1?Q?F05sOeAJoNlJqjYx/hxvRTI3RRdwbY/gJjsGRMEU4ej16MYEWWDwvTkWUW?= =?iso-8859-1?Q?vJP/GAiZjbf15g1y/oKY+IkPzZg+RenxeWgExhHRgAlOF5c0Mx8jmOVhfZ?= =?iso-8859-1?Q?cxXrzRAYaTl+ar6UC124dAsaW+VztaXo5DTKBD/qu4XohkqBtg1g9dlyXW?= =?iso-8859-1?Q?AxindDDnER4C1wWjZlUwLSnzHKY1TmPSmlFS0yQ57zC7awzaCOjYn7GI5P?= =?iso-8859-1?Q?VNo/Nl7+q1Jw/nn4MDb+ZRlasGmkQrfA/GmC+QsGIY7YDofiazyBc5teXS?= =?iso-8859-1?Q?tiG/zZJcTRc+iioWPw1/m9oNGzxJmdoquO8WWNbDGuGTZYZ3y8BaJP8qzz?= =?iso-8859-1?Q?+9ulNNbxzk28+bLE6k6O1ENZLj7SlOiy8yc7izO6vLAzVfh0uE7YKRfe8u?= =?iso-8859-1?Q?zipSHRjHlGwp4FiOpyhhV8EtYD+W6ACzMKX4pk25CJBQmciDdCkTpZYKB9?= =?iso-8859-1?Q?UbP8mTy1UuB0IKr0QLNk5JwFhiTiUToC7igmquWCqEZ1lCrvkmiWjkIw?= =?iso-8859-1?Q?=3D=3D?= Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: HK78EchnmH/CnLR5dBmjF1jt1KRHIVQngxOhexR7dVXE++ERdjKfFeV1S1igc8YOps688g8l72iSytMeRY5GL+b5i3HoPaotkvmjwHL4BM4ILmJwtvSzBjtGLmTaupweKTG4WCiKVE1sm4rkMTCOjcbFnR0Tz55e42Pawh08uY854yGaGcovXNj/687WCySLMjKC5zKJEcnj0bvmeug/zUruieDdg8jyy2KLWyYENkvnwbu0ijbq0PvN7L0gZcrb35uKf4yBHAPRAVv4BHo4FUbxpDzgwLVH3CKFI009NCle/x/pF5VdhGK8L0Aja44e5MlJ0/LoThZCr5o0tQ/mxlhPWEenLidpbsSzF4boEUZPzzfvhTZE+giu9SA/ANEEnPI4OTnVvu8B75PQIuQdWj3nV2PABSkA2/S430jt4AaHyF9YJhZLYEsVOc+KYLvLtoRN5F/t0n+KJTsTH4EOvxmLIAJwRz08FlnEZeoba4T2mpelIVL1sC8skCLZyEkR2iJlsYaDBsYN/lNauAwSQCF5Y3ARTowZ0Yy/T9fDkE6fd0RsTBaY5qxO0tx2fF4uIGlhrV+MZbix5zmzEC5PSqnokZDd2CBI0Su1xKAOlSmU+ulohTlojGwgjglW5s/QYdM/v+5ZzEbUTqYr+di8uToinHWsX4iAQhdprU0ALdGDp5JFsGgokeIozIuG0Ujh9eaoDGEAKzuV/giopCLUg3llJFHe9RRwcYu42CM6gYbnfNHuNMoYZO9eYRSi1cN2/k4GZlafhmk5Hy6eGuEw8qyCgIPMsxcZ5Z2igpsWUIeTzoWwmDIFGd1gWP3wIIQWBH9BYsmkFsi9evtXb3NPHf8BU3HK7z/QY0rjeZV5LTbeqQ69sL73NxRlnDFeY+DqYWXAFy1Of4qXaF9DJCgyxQ== X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: SN6PR10MB3022.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: c94f2fcb-cfa2-4db9-5d5c-08dad228fccf X-MS-Exchange-CrossTenant-originalarrivaltime: 29 Nov 2022 16:44:29.2539 (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: SNlNWL2/A4TSYqnMy+1NEjAbeVgf2A3ks0aNc0f2hfhMj27fPYKN8BNaU66qbLIpJ53NRUYHUHlLGTxFSgKTSQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR10MB5788 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.219,Aquarius:18.0.895,Hydra:6.0.545,FMLib:17.11.122.1 definitions=2022-11-29_11,2022-11-29_01,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 bulkscore=0 suspectscore=0 phishscore=0 mlxscore=0 spamscore=0 adultscore=0 malwarescore=0 mlxlogscore=999 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2210170000 definitions=main-2211290093 X-Proofpoint-GUID: wIIPLfQDvp6TiXoTrAZRW6FRwSD0XcWJ X-Proofpoint-ORIG-GUID: wIIPLfQDvp6TiXoTrAZRW6FRwSD0XcWJ Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" From: "Liam R. Howlett" Use the vma iterator so that the iterator can be invalidated or updated to avoid each caller doing so. Signed-off-by: Liam R. Howlett --- kernel/sched/fair.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c index e4a0b8bd941c..aa780a00bf4e 100644 --- a/kernel/sched/fair.c +++ b/kernel/sched/fair.c @@ -2926,11 +2926,11 @@ static void task_numa_work(struct callback_head *wo= rk) struct task_struct *p =3D current; struct mm_struct *mm =3D p->mm; u64 runtime =3D p->se.sum_exec_runtime; - MA_STATE(mas, &mm->mm_mt, 0, 0); struct vm_area_struct *vma; unsigned long start, end; unsigned long nr_pte_updates =3D 0; long pages, virtpages; + struct vma_iterator vmi; =20 SCHED_WARN_ON(p !=3D container_of(work, struct task_struct, numa_work)); =20 @@ -2983,16 +2983,16 @@ static void task_numa_work(struct callback_head *wo= rk) =20 if (!mmap_read_trylock(mm)) return; - mas_set(&mas, start); - vma =3D mas_find(&mas, ULONG_MAX); + vma_iter_init(&vmi, mm, start); + vma =3D vma_next(&vmi); if (!vma) { reset_ptenuma_scan(p); start =3D 0; - mas_set(&mas, start); - vma =3D mas_find(&mas, ULONG_MAX); + vma_iter_set(&vmi, start); + vma =3D vma_next(&vmi); } =20 - for (; vma; vma =3D mas_find(&mas, ULONG_MAX)) { + do { if (!vma_migratable(vma) || !vma_policy_mof(vma) || is_vm_hugetlb_page(vma) || (vma->vm_flags & VM_MIXEDMAP)) { continue; @@ -3039,7 +3039,7 @@ static void task_numa_work(struct callback_head *work) =20 cond_resched(); } while (end !=3D vma->vm_end); - } + } for_each_vma(vmi, vma); =20 out: /* --=20 2.35.1 From nobody Fri Sep 19 02:32:03 2025 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id AB164C4167B for ; Tue, 29 Nov 2022 16:45:43 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S236101AbiK2Qpm (ORCPT ); Tue, 29 Nov 2022 11:45:42 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41486 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S236054AbiK2Qom (ORCPT ); Tue, 29 Nov 2022 11:44:42 -0500 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id C48FF61775 for ; Tue, 29 Nov 2022 08:44:40 -0800 (PST) Received: from pps.filterd (m0246617.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 2ATGP3uu031406; Tue, 29 Nov 2022 16:44:35 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : references : in-reply-to : content-type : content-transfer-encoding : mime-version; s=corp-2022-7-12; bh=um0K/4aaOxbF/SqNaTj48KVzfpV6UppqtVeLVAtEHos=; b=J0nsP2n+SYOD86ihthP4l5RRAsFslPj5vX+4xnxUzcSxNV/G++n/y7z32VkJPc2IAsVc n5Ruz7Rb8fhY7DBnFYn3rvBAfnnmvy5dXUTb1fSOuQ44JlwOvVc8rktY/gprWg4g0djY OTiU+eo6OHuxvN+Zjy2RCslziWdfqKSE8lgECj21H9MAjA1OGKJG0YFUVAsm4uDWMCs1 8O7rRBKAYIc/WHMW+xQwOcIZ0ia5GcVihC/PGAPfqFpqg4nTRaqD/jt6cgEnzQ2haIeY SibTBFp6wxOimD3ZHm2sKyLE0MLg4BSwpci16BTiKW+1o8E771Wh49C7WfvVtYK34uL6 Aw== Received: from phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta02.appoci.oracle.com [147.154.114.232]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3m40y3xase-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 29 Nov 2022 16:44:34 +0000 Received: from pps.filterd (phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (8.17.1.5/8.17.1.5) with ESMTP id 2ATFhsPn027963; Tue, 29 Nov 2022 16:44:33 GMT Received: from nam11-co1-obe.outbound.protection.outlook.com (mail-co1nam11lp2169.outbound.protection.outlook.com [104.47.56.169]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 3m3987f2au-10 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 29 Nov 2022 16:44:33 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=HpB3QMcWQY93lrEZu628YMS4LwufrLnqJeo8S/PjlFCF1olco7gQ6PCCQQCjbzFpbIxjyMisIrR5bEO6vnZcU0Xy+ffIAO5Z1vPyRDs6vlpOVErqfmg9TNDmfIRfnw+QdyZqWDZ8GS13QMoNgRmBq/ZQsL9DRkHRhHeHMvwOL4KRdDTYS6vDtlNdN7RVxl/ZDQvpNox/a3Rk2PGsW1zDLA+oP7h7CQIrwdXKF5UrkTgCVPvkOtY0OvmcuDsqWlqZTHPpzx+bNoWflHVTyVrpy1g9+2Z9+NKcNwrEgZX8ZiiM/68MmrBytcVWs4h08drh/52BsiiMQjFrhOkvX4CIyg== 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=um0K/4aaOxbF/SqNaTj48KVzfpV6UppqtVeLVAtEHos=; b=JIde+0EmiSiAYKWrNGfc1r+2SEMJi8lB0RKUhHJnorcoWj5YH33+yumnc69wn2TagTVrOxoTywZYwp5FC5zNB40BhG8Hw4ug9dv07s8r5SuRFYRYAhea16NFT/Xt2RW6oAmaYSf8ZxHVlOm71O2OXdxDVQI0lNhiZCHJjZsXWrZaDOB/DVoJybJNN1AByovB8JkbYHvl0uqiCy6spN6OWHev4hftj7Ev5VIJGh7tZGwjixnLZOTbFSwICEj/YxNjaAq/eASE08Px3xnyBOSkJ7taH4GmwZNZ67VWyLBqkLlt20io7M+COonz6tR0zCEIPFYFrP+8emg1RNkTLVPZfw== 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=um0K/4aaOxbF/SqNaTj48KVzfpV6UppqtVeLVAtEHos=; b=lnLxcaLxA8bbvyfG8Lj34+qlVAg4Rs9XQUktLPeFgweaTdu77YsZ65yUw5WnTmjGHP3jWyh6MxsH1K9jInddeXYhWJso3XvgQWihuWHMrj9gANVAkK+OLaq9LV2yfCw+hhluPuLcCW8UWhmwb+7h3l3oqzcYI1QqFplgpg6qrVU= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by SJ0PR10MB5788.namprd10.prod.outlook.com (2603:10b6:a03:3df::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5857.21; Tue, 29 Nov 2022 16:44:31 +0000 Received: from SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::a02:2ac8:ee3e:682]) by SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::a02:2ac8:ee3e:682%4]) with mapi id 15.20.5857.022; Tue, 29 Nov 2022 16:44:31 +0000 From: Liam Howlett To: "maple-tree@lists.infradead.org" , "linux-mm@kvack.org" , "linux-kernel@vger.kernel.org" , Andrew Morton CC: Liam Howlett , Liam Howlett Subject: [PATCH 21/43] madvise: Use vmi iterator for __split_vma() and vma_merge() Thread-Topic: [PATCH 21/43] madvise: Use vmi iterator for __split_vma() and vma_merge() Thread-Index: AQHZBBHZSYPQ4LsJL06xeWf0o94ubw== Date: Tue, 29 Nov 2022 16:44:29 +0000 Message-ID: <20221129164352.3374638-22-Liam.Howlett@oracle.com> References: <20221129164352.3374638-1-Liam.Howlett@oracle.com> In-Reply-To: <20221129164352.3374638-1-Liam.Howlett@oracle.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-mailer: git-send-email 2.35.1 x-ms-publictraffictype: Email x-ms-traffictypediagnostic: SN6PR10MB3022:EE_|SJ0PR10MB5788:EE_ x-ms-office365-filtering-correlation-id: 9b68fcc5-1363-45ce-308c-08dad228fd25 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 4UqCoxoAmAN4xudM/aEjnYP4iZD6qsOfK+EblQWNj/NnxFdC9qMNSRMaiTlI7okqxLnOErs/Y7p1LwOJCAx4iETpnlCeHt+OlukDQ3SQdfB5706MqFMWg9zUJrgHDP6o3nW+UzMzVXAMgyQK+mHznGrCSPy3uOWl/Y6KqmC6jofz4+o+FeLzkf2OUTKmnitdvRJKmaylbjvE53YElFm92lxArsTKnMyuqXuyjy/CA/BaniBgEEDnHYUlOV/SeVmUpcQ3nLmsd1OaX2WJNBLhqnCwSjtgTvYG2Pl+FUTqR0yTvoqDZ7TPisZ3Q1216PpVxGXs39Q9V1352eH3RsUZpcooR89WWSr5pgyCPatMdKrdNf88kuAfH2NHVekq2XZJlOmC3p42uWo4Ei9OyiqKe34i3kXMBE5eswOtOJbm0Tss/+Ayk4SxEQ8k4gToNR0jf518wOMm/0bWtG034xJ4HiwLQbSC62bP3bGRiN2k/mCvFdSOkRW0n0EDYmvHjCccXHjs/QLfQ89kKkmOUvsC9ZDVps05RybNaQNYiNDXkp5PHrG3y5tafPx5MnP1pMFpUkJ2XLe0b+jZzZ6gzlhixZJpTwCyvc3xOUl2W17ca291vfswa0Ycrikirms/xSICv9DrJ14hL05EdmPeZe6x73Kf8sd9o5ahwpH4Zol0LdT3B6RKlpjBMZFwR6dsK04Qa3R5o2KkQhRKiqsjHq8vAg== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SN6PR10MB3022.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230022)(366004)(346002)(396003)(136003)(39860400002)(376002)(451199015)(2906002)(44832011)(41300700001)(76116006)(5660300002)(36756003)(54906003)(316002)(66446008)(110136005)(6486002)(91956017)(66946007)(71200400001)(4326008)(64756008)(8676002)(66556008)(8936002)(66476007)(6512007)(6506007)(26005)(2616005)(107886003)(186003)(1076003)(478600001)(38100700002)(83380400001)(38070700005)(122000001)(86362001);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?Q?uMdMSwamWspRIP9VDzhkuaUqj2c12FYNGf4GywUBBDXnLOww6uXqZ8vQhg?= =?iso-8859-1?Q?YxAqBaT5AFUHt4DO0VlH3+V30hB418EoaWmZPitHLjAW+/ztDgWcVwk1h6?= =?iso-8859-1?Q?7GY5lbEYHnOMDvll2XaI4u9AhTbg1xF0Zyx5f5bk+CWNEtkhiC26PxhTuR?= =?iso-8859-1?Q?u8oJ6jc2BUUJ1nSA4n6nV/ZSBYbHejSy5erZ9U/PEqYbluHSKKo992GNbI?= =?iso-8859-1?Q?HLiuz9ECQLetby5Tl+KCLRBXr/QTqH/awqWP31zHpIjUo1nlQ72vae0dE/?= =?iso-8859-1?Q?fTrYrYvlbRWhDAfdr/yGXynddorhCFdhPWfUeRTCK2iVhI8CEsnrBL2JMg?= =?iso-8859-1?Q?ewICJmV4W+3HPpc9TFzq5BkXyUCOjMwxIVFtPrDg4ALRaNoATDN4bfXZCg?= =?iso-8859-1?Q?nJXHjjgmK/y5H5L0ADL//Q28xR0Ghql2PoGt/hnxFbSNEA7FNn8fHnOYsI?= =?iso-8859-1?Q?OfHOF0AbzXbhALaAMazd+HBMPgL6xCxZOTzdy6V8ionqqLSFKd7+8D5Xwk?= =?iso-8859-1?Q?r+BUsskjsSEAsO8+epNJ9YkHU64+gwnI6fyZLWvQJKe0eidHPBNyCgFusv?= =?iso-8859-1?Q?0U+B7eyk1+TmFXMSZQ3EJEl7UsL2684CJLg1KcL+U82Cm1bYAVwddIYeST?= =?iso-8859-1?Q?U80VUPf6tCOch9PPUS2eLmR3GKAAGaPH5wSqL1w4rKkQa+v3pUjANoy2aH?= =?iso-8859-1?Q?yBwikWjtn92xRD08PEzwlKbqDHMpUG1jNGk2GedHYpKm3Mu5Tc4rLbFwcN?= =?iso-8859-1?Q?dBIDM2dGexBRX+7F2ztAa2ek9IwHTnSAp1viLZk+VT7lGRc5fQz70m3uO9?= =?iso-8859-1?Q?PZRfjUSVJRYcSxwyjYoZASuXNFiIJf3qwn0FyJT2DZB1NsuuZNnjNDKNuF?= =?iso-8859-1?Q?fwpcfHj24WGGBp9lVBowopZ9RyL1JlRNsB5z+NPTNx3TIc+U2LgskSgwYf?= =?iso-8859-1?Q?MJz0MUYdye8Hc1V3P9MRc1Vv4Vc24RznEdiUKAlwobMIYnFTCx/36d2rKD?= =?iso-8859-1?Q?Gr1f8I0u4i9OKpr35N8Lh128qxGIG6Xkba+XpTbNzO6PM8oyz5zhtkN27V?= =?iso-8859-1?Q?RXq5Pu4c7zBLZh2gWSFSfkALpceEHevYQIYKv+HVSYLztGn9YTrvIZtNJp?= =?iso-8859-1?Q?JOFzfmTnFFBkSYRIZOtXVIUOfqHlpIHFwTCKCWgOCtAI4be+LBumzQKs79?= =?iso-8859-1?Q?S+iDjSqX7LT3CxoF+PgRo7vPfhpM7wEccL9UeTyQDOuR3d0cRJf3phrrDA?= =?iso-8859-1?Q?PSOhAL+KLxWtE9dQ6hMSsJHWMxLM0pqrwkZ07hL+PtfZBb0QaShhPw4Awl?= =?iso-8859-1?Q?sY801Ma8LEmiVVQ9jCv8pRnhJEAiJisqgvczSw436S2DtRUKKol8ZcRX4M?= =?iso-8859-1?Q?UpLsB4XGftuu02dTDP1NOfwrpjxUshH7mZViGXO2gbMeqXrDjEHrx7ANRp?= =?iso-8859-1?Q?0UTPpQvm5saJ0SjJqsM1VWN8Ez3hbKuMq3tv1rgtpCvhbinYZhBSepB14K?= =?iso-8859-1?Q?YbHIj1jgF+FVAUgrI24VtV0sxB132QbTdBtjJhuoTOWjy3ggpdXJLUT53g?= =?iso-8859-1?Q?0I5xFssmghdBR/4PcUEdEc+kfZCUWwqP0SlNn2AkQp4GM90CoY9lLgdWIU?= =?iso-8859-1?Q?KoLsSNN0qf7muUCVA34b+DFhleneNj2AFCqc8IJa5RADjev+7T2kxAeQ?= =?iso-8859-1?Q?=3D=3D?= Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: rVcFXItgIFMhpugIOq2Ci6Di/dE2fNEDysGAOq7+BWo2Ck4inHXSupKs+tFbdd46AqL3s0khiPO3KZ8vairYkCACQUCvsHqOxBgau+5qmsCouxeKLUR9TkpYMAtRwQ+NaaTLDfDINOLOU7QH2KUY3knN3cVStYLnZiI9SRFAa996CJp3W+/2RDFOwOZwWrqA2lucxOqjp9WD3qvq2QhShZb0Mr9OgEtxooIb/RcpPf3mD6KhbzAgER911UiXkHX0qeIfIZpKlOYXVxnsCH6XspzXo8XYYfH1Bc0lEAEfoj7IK4pcWWXEtA/ewyV+80u6jX/rtohWPd7bMiI/+w1cHkNXmxRV/WOVlBMh71NG/kRQR1419lgFX0sdRE3Z4WtzMewnihsDjO8UROkmgYLdVKpGVgD6KIhqQkB+s/cwPAFOwfRbHJTZwrjRdb0Q1CenHbWrfai5YLQ0gA5MqpJ3xpaCu0GHk543nDX6EtIffp2NRQTKtREz9AhFnprzUBahRPSaLtv+FtY+/Bwht9+U7ERWaoAftKThOQWxY2k5kX4XokD6pl6wLbXJPWCPy9aZ8dveFK9ORSWHBDAXtktfO5uqbA3dGz+LYtF9hS2a4H8tRnemIq2aTKsia7e5sjzVmpSN2X15E/30TiybEuE/cGXXJfdOTZjsROlg7IQV0tmpD53mT9Xb68+Zz9PEQYrk0NewCJZrDkpjgHn2NcHi49cDX1fl+SHuemBuhsi8Hf5NsY+wr09kuRJWdSKv8rq+JhwpjSBIbLmuOlHSVL2PjMU6b/b1p8ezryVobDywuZZfxG2J05pPwZ5UKIrtbBq2A+VZXUQck+zFiSr1Goa6YDVBJulZjpgTkv0f1DZotwWbaHBBcb5sPEd5kWYGOBwqsfZNMMSP/aybUXykqnA62A== X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: SN6PR10MB3022.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 9b68fcc5-1363-45ce-308c-08dad228fd25 X-MS-Exchange-CrossTenant-originalarrivaltime: 29 Nov 2022 16:44:29.7851 (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: dJNyjahXswfDRrYEfXOFmdEbxrbmK9QCWindq5RoOfSTCtQ9QZgVvtUIy8zQJSbcfxPmpOcyvtyy4UAG1bRUWQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR10MB5788 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.219,Aquarius:18.0.895,Hydra:6.0.545,FMLib:17.11.122.1 definitions=2022-11-29_11,2022-11-29_01,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 bulkscore=0 suspectscore=0 phishscore=0 mlxscore=0 spamscore=0 adultscore=0 malwarescore=0 mlxlogscore=999 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2210170000 definitions=main-2211290093 X-Proofpoint-GUID: D2zpaJRvJGQw5IsUoZJ-Zpfs7zF-poF_ X-Proofpoint-ORIG-GUID: D2zpaJRvJGQw5IsUoZJ-Zpfs7zF-poF_ Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" From: "Liam R. Howlett" Use the vma iterator so that the iterator can be invalidated or updated to avoid each caller doing so. Signed-off-by: Liam R. Howlett --- mm/madvise.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/mm/madvise.c b/mm/madvise.c index c7105ec6d08c..2beced2d5eee 100644 --- a/mm/madvise.c +++ b/mm/madvise.c @@ -145,6 +145,7 @@ static int madvise_update_vma(struct vm_area_struct *vm= a, struct mm_struct *mm =3D vma->vm_mm; int error; pgoff_t pgoff; + VMA_ITERATOR(vmi, mm, 0); =20 if (new_flags =3D=3D vma->vm_flags && anon_vma_name_eq(anon_vma_name(vma)= , anon_name)) { *prev =3D vma; @@ -152,8 +153,8 @@ static int madvise_update_vma(struct vm_area_struct *vm= a, } =20 pgoff =3D vma->vm_pgoff + ((start - vma->vm_start) >> PAGE_SHIFT); - *prev =3D vma_merge(mm, *prev, start, end, new_flags, vma->anon_vma, - vma->vm_file, pgoff, vma_policy(vma), + *prev =3D vmi_vma_merge(&vmi, mm, *prev, start, end, new_flags, + vma->anon_vma, vma->vm_file, pgoff, vma_policy(vma), vma->vm_userfaultfd_ctx, anon_name); if (*prev) { vma =3D *prev; @@ -165,7 +166,7 @@ static int madvise_update_vma(struct vm_area_struct *vm= a, if (start !=3D vma->vm_start) { if (unlikely(mm->map_count >=3D sysctl_max_map_count)) return -ENOMEM; - error =3D __split_vma(mm, vma, start, 1); + error =3D vmi__split_vma(&vmi, mm, vma, start, 1); if (error) return error; } @@ -173,7 +174,7 @@ static int madvise_update_vma(struct vm_area_struct *vm= a, if (end !=3D vma->vm_end) { if (unlikely(mm->map_count >=3D sysctl_max_map_count)) return -ENOMEM; - error =3D __split_vma(mm, vma, end, 0); + error =3D vmi__split_vma(&vmi, mm, vma, end, 0); if (error) return error; } --=20 2.35.1 From nobody Fri Sep 19 02:32:03 2025 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id C2155C433FE for ; Tue, 29 Nov 2022 16:45:57 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S236195AbiK2Qp4 (ORCPT ); Tue, 29 Nov 2022 11:45:56 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41452 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S236064AbiK2Qou (ORCPT ); Tue, 29 Nov 2022 11:44:50 -0500 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 00763627C2 for ; Tue, 29 Nov 2022 08:44:40 -0800 (PST) Received: from pps.filterd (m0246617.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 2ATGP27k031378; Tue, 29 Nov 2022 16:44:35 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : references : in-reply-to : content-type : content-transfer-encoding : mime-version; s=corp-2022-7-12; bh=n+BdMqSBEKRAz23d5y9YNpH7yoNXn0z9m0ocO3Wp8wQ=; b=y3w+7L1xrYIfHzCxGhlZHlGxgacLvK325DQZCQZrw9smi+EmAjHjqBc6IiT71/ehKKCy aZD/OQSvbiH1TPl/XHyrpe7yOK4KfLZpNaY5uUCCYD28Nu6XLH1bbBHoszqxSAmFizWw fMRy1BgvF4AIwlo36pvgSIXtm/oGM2GYa/sa9qAaKLLuKzFdZa2A+2up9pV1HjZsPjf3 eqwlrWQJQIDwS4a3XWQz3iSf3I9Ya6ikMF5K0Zrv0MpwP+nSmGaQTSiOlFgzE6rjpVMJ q8FWv+zHFc+GKJ2tXWU/bg3ZtUxLOE8IsGhqKHo/DVDVo5hlh7ZraGbAyGx4t0SJcua2 ww== Received: from phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta02.appoci.oracle.com [147.154.114.232]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3m40y3xasf-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 29 Nov 2022 16:44:34 +0000 Received: from pps.filterd (phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (8.17.1.5/8.17.1.5) with ESMTP id 2ATFhsPo027963; Tue, 29 Nov 2022 16:44:34 GMT Received: from nam11-co1-obe.outbound.protection.outlook.com (mail-co1nam11lp2169.outbound.protection.outlook.com [104.47.56.169]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 3m3987f2au-11 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 29 Nov 2022 16:44:34 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Sse000ct5mtm9psaeQRP7q1Ih+Pdub8BBoKyYLYRpwwfjdpgMDa/uQ2gZYWyWgcYLK54+EMLVgsBqY1o2bKiB/cFPmJHBlpDrezy7+8i3iquZ1kCQ3za6m+D7Rv++fHxAcFjME2q5EyMamJ8GeAjZcRa2sAaloLcSCorSR/SiOLYRSrifQBatUo3s/IXJmAJEnG9yYFNKJ38Ep2CA/EUUfkVbk9Qot3KapuZJVDoYbZ6i2jBUp6AHz3LIHCXUQxsrPUPTfACILGn0HK6eC+hmecpRYIHPdpHEAnq7hGo8bPQKRQLEfdttGIUu9s2Due0h1F6WZ0GllHOjGL+sB/NTg== 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=n+BdMqSBEKRAz23d5y9YNpH7yoNXn0z9m0ocO3Wp8wQ=; b=VPKf8+lnqO1+cuXd5S3cRU/dkUcBAL8pyBBN9lgIJ1/JRleLVHztuBm9jfwO9D3ry/KQsfCjef23a1tSqozdLvzlTih3Y6CZH9IyPqCI3NWAdeRPpBdxKzNUO9Ytg7mNUi8ceeV1BJW7g/3OR2reFmyrcLUwAAzK89qjIq9Vj4J3upXP1mYQ4jeP7ll8hCs6JtjLCyFS6q8Bq1HSdCg5JjV08rQrkm7bKyvgLoqptr7eOO2MV8TRpQHzEtqe867Jok9bUrqiA1fvJ8Mx8U/hlO1k/FWhHEzxDTQcP0v0fgeDAatBseSw+Bm7op0fVn36G1DT+b2DF4ACg+nwjP7GVw== 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=n+BdMqSBEKRAz23d5y9YNpH7yoNXn0z9m0ocO3Wp8wQ=; b=N45GlAccv8v5qfHJgto0w54FzhzAYZhf1cH5fdKlHnqDPFa9zdH0sDrbTw2qAq13FAfktpoIL5FnHsosNpx0w61cmkjLPg4yF3PJ6R/NXaGbme0Jsqi+LOS7H9Kw2fao4j9zK/d8+4twIG5jmcuWvpNY7QBNsQKkxF9+uj/5rms= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by SJ0PR10MB5788.namprd10.prod.outlook.com (2603:10b6:a03:3df::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5857.21; Tue, 29 Nov 2022 16:44:32 +0000 Received: from SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::a02:2ac8:ee3e:682]) by SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::a02:2ac8:ee3e:682%4]) with mapi id 15.20.5857.022; Tue, 29 Nov 2022 16:44:31 +0000 From: Liam Howlett To: "maple-tree@lists.infradead.org" , "linux-mm@kvack.org" , "linux-kernel@vger.kernel.org" , Andrew Morton CC: Liam Howlett , Liam Howlett Subject: [PATCH 22/43] mmap: Pass through vmi iterator to __split_vma() Thread-Topic: [PATCH 22/43] mmap: Pass through vmi iterator to __split_vma() Thread-Index: AQHZBBHZhKiCxadJgUC/0Bmp0ZJXfQ== Date: Tue, 29 Nov 2022 16:44:30 +0000 Message-ID: <20221129164352.3374638-23-Liam.Howlett@oracle.com> References: <20221129164352.3374638-1-Liam.Howlett@oracle.com> In-Reply-To: <20221129164352.3374638-1-Liam.Howlett@oracle.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-mailer: git-send-email 2.35.1 x-ms-publictraffictype: Email x-ms-traffictypediagnostic: SN6PR10MB3022:EE_|SJ0PR10MB5788:EE_ x-ms-office365-filtering-correlation-id: f89932f7-8d28-497f-7a75-08dad228fd71 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 8k8uiVm5a4yyoDv2n/lTneC/dTNWtK3wTRVxMeGEfTe3ujbtQvUev57lpKoW2pKVGfMFYrImSqFmclfVK+N1VFJZe+XK/fHHT6dFfUECV7cvBo/A8WOQvZ1hRp0F64X7wPJllFAky4kh73nTrtKnuBOtnvy0JRgrAj2NGdJHCCBoYqZNchT9O8xrFfOS07fqzoUO+Fp6mxGa6k049NTJ+WHJtV4m/2mJ/AszC8ECDdyYJyW5zKA+X0vcEKLoBbvVr+Auxdt8NWsP1SwF7RYmqvbJCu3xjsJajnrSSpKuXhsoRpsVv5M8Bt1U2J9XtRDWRIf3ehgNgtaprFoEr/HX/EVRuJ84rIgbK4CJhfeTPJ4VHnyepM2X8B6OVsIOlFERMZXXVZY4ELxwUPPmIZmsouaET3WrKsiVaGngpvbw/eM/MFY8kteCTK5zP9hDdmK5/kX9c8WUMyT2QQD6NvX4skILTeO7QvYsPTaLffo3OfuW1WD8ha6bmzagpsumUAWhpW1JcYdb+8tkxWBCUY2BVSmWV1ceA+IU/QoGZEsIKy8atA10+MKO4w5URB8WxpcMyllUtzh5Ieu7a6uSVpElSxCoAQ99B8EfJQd1GtquCuq0vLBc0gGhIJxj4gwymeZ6NUDsxVOibgscuz8W08S7kWyQeh5+b1xXZOqFd7kIFdZdq4luBh2MNZ48L3pHlBJK1CqxJBU7A1an4ff/ZZI6Fw== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SN6PR10MB3022.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230022)(366004)(346002)(396003)(136003)(39860400002)(376002)(451199015)(2906002)(4744005)(44832011)(41300700001)(76116006)(5660300002)(36756003)(54906003)(316002)(66446008)(110136005)(6486002)(91956017)(66946007)(71200400001)(4326008)(64756008)(8676002)(66556008)(8936002)(66476007)(6512007)(6506007)(26005)(2616005)(107886003)(186003)(1076003)(478600001)(38100700002)(83380400001)(38070700005)(122000001)(86362001);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?Q?+KdS8zFz36eQD5U8rQRIBdMCDxWxSDOch+L1LlyJiae8brWT5nCGhW102e?= =?iso-8859-1?Q?fbmh300NMZ8ewpnpdzJLHXap6erGDNna6HAwIAEB/n4I+DcYUoAnRMaLfN?= =?iso-8859-1?Q?zraq470sAvulMCdT6jGMEeF/bBLfCUxy88zn/w12G3tth5dl4CSKRis4sy?= =?iso-8859-1?Q?7xF/31LsuVGM+cEwIBijcN0gdp7Xve9vusrxcoKoo0CNFKy5+KHb1LDMDW?= =?iso-8859-1?Q?lS1TrBXHG0IwW7vxI12R4DFRQ6+VSNkU4FH4197OVNiCp/XalDRfTDD9Sf?= =?iso-8859-1?Q?hD65CLvaro6IF+VYcm2UvXFmr/JjqN6gg0wrJl6ep+SsI4IF9wW2wKynXW?= =?iso-8859-1?Q?kDFAOtcF7f0Jp0DN3YPxlV4OGal/H07i4vcrBDXZo5yVNSiwLXWiY7tM5b?= =?iso-8859-1?Q?+VXeNHjzOwbsHqM9uT5WsVcSOFFX/b/Dim/7QUcmogZMicaGCg7Yp5IfYL?= =?iso-8859-1?Q?cuRUyYq6gfgURhFVynr5PF1wzF3XUiH6XQlCjCdVUUJCrtmJVheXS2/Awf?= =?iso-8859-1?Q?fVxXDHRhuw1wS5E2ukpBDP65ikdriehiPJAUiOiL2i/5IFrHPD/eRgH4yt?= =?iso-8859-1?Q?Y9okQ+5JmJWhHlY0ZKFOQhcJWqDAVNHLyy7EH+BJyrbNwamc6pyZEj5G52?= =?iso-8859-1?Q?uD0l5eF92+9Oa7ym++hHmFJufXMfzEA2CJNRqXSaogeibax2vweyVaEsuk?= =?iso-8859-1?Q?wpmNgltVTBFAP1Kst0zQRmHpdBKwUsmb4+247o2SyWn3FHqNST67Yn2Lux?= =?iso-8859-1?Q?ImuHh+QulLVuP+SA3MkB87DohHjDn6TFlEaJsmNE2nH8huVJ0gY5wPjvu6?= =?iso-8859-1?Q?qy9zNOGRqUqEGn6N4IRZnscaTfWsK/GWU2B3f2TSnc/XeLIF43jhZb79UT?= =?iso-8859-1?Q?CR68dA24ep8/Ram9T5sI7juZ9QPXWINhLs4pHn2MpAcUV/kmIs6mN2Qqha?= =?iso-8859-1?Q?Ni+ge3c26wDo1Y/gUlMHJA/wcXrcirdEAGlkWmaHiEFUGufOrVY4IiOUG4?= =?iso-8859-1?Q?Uwr4eOkfdHo1Grh3ajGgQLJAh844Aw0XfdZbORfXIwkohdPA1jU2Vn+7yR?= =?iso-8859-1?Q?6hJdCmlBc6Qygtdb+bWaF8LD5DOb+R/1/mkXuv/wQ87AaSDe/SKOZ97QOZ?= =?iso-8859-1?Q?SjDCc4OkDAXi8BY8Id3bm65bWd7DH2/FvCXPQBDCBsHhX2K2YcrA2IKBWC?= =?iso-8859-1?Q?JI/O55s9j1CO3e3NQAT4tOSBqoxaWioZnUITOcmg8vfrvMH0mBchU/pwFF?= =?iso-8859-1?Q?LinrcXRufHuu3sBNNwD0Ca3fAqO1ecIfiI3keNk5FnKqpBJbNHB+oPiZCI?= =?iso-8859-1?Q?wFNntFiE+fFYRE0DaOCeY/JbibMSlwpOFTs1rHzgFCErIvedzLaa5GzH4N?= =?iso-8859-1?Q?ZIGJgkf8rqP8mmm4nSLgLOHdCSqGQUDQM8Zlb3yfMbI+D3bIwEkWo1SN6A?= =?iso-8859-1?Q?U1CPy8fmaLko0u3TkwSkEfQz3+1Z73g3ojcyDx1dvLtxgisU6A5odl61lT?= =?iso-8859-1?Q?Ub5sFv7efjBtSptP7lrseVlrtA57piLVFrc3SZjNlkAgW2UKOonm2cTzP5?= =?iso-8859-1?Q?sAtn55EzqbUH2aALm6zMwhpNEQxdMQVLX/g5I63wg18TiAdY3QtAbz8q/m?= =?iso-8859-1?Q?c+UnH/L1xoTb5j3tX8AxYO7YlJzfBzSTHwoE/gpO269zEeliTQsCUh4g?= =?iso-8859-1?Q?=3D=3D?= Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: JmXvnmIIptMEvWSJEmvt3WBxQjnwCz+0cciPMUVVV7LMjvS8xwXcarBQrZxMZxe0CcGb1JXD5pALbfxhoenevrJzEfrDtkALcsKk0Ni3uoG/ONfk0OaUm7p13tcgLVAya7Ga6W+qgYCeX8cq3pz64oj4rzmTDnCFm3KP70/qU3FTnK4xGbDXsJ0lsL9mrOSE/Ne+O78DMylE6m4bokahl3Dy4g4AXN13Y5ncSpN7sbaOAURGVFtuGannP1r3ubk1KpHmLcEDYxr+iSA7b6iUMbULxuXN/zafaw+269tuN97w8XVcSn/mcQzImiYDQz/sgN9MbJGABUKKnAgSrAKzzlL9hdhECjHtnaBDPvH8WPj08aDi3MAVztm2cuEBYHuZYhpbKcnZcE5mso6WG4FR7pRuhradff8aS7bEKKybOoQJdga8gndIKkfHNe0aenSnNu0PU0lOStmo9pA2hITsx5dBqTarRceK3d4wDq10tspuNLuFOm0WvDWxq+rC2DDDFsLCFnpsmqib1JZudf2vV/uBLLWnZC1EwqSkXO/rBPYBghdNYEg8JEzpIY5FYjXYsO3m33WTft4Kc3rzqN1Dj6JFLCCAHDPGtB4/UquyQ/HlQfTtF+pjFBV+4JpFmbKuqsCIVDtGwDnirFGmZ2Yj0h31tyC2wv3HPaKIFhE1Aw7PNR2EwOPUvKgHmVKDspV7PIfWebm8IuG/f6Do/WFFRS7S9uO/AXrw4WW0chxsgNKNIRPszQTab70f80UBguUlPpeKkRmU1HgfbMZNUUg7TEBu9HYSbkrHqYiJTRF/CKEu/ZY57tMK6qoC1Uu/lq3M7RuwQE3iueer2JVM3yi00qWt09v8PPor6Q/HIIHH4auDNk1j9s3S46Tl58anOt2rY1b99z4KbtwDBkR9DyJe9w== X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: SN6PR10MB3022.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: f89932f7-8d28-497f-7a75-08dad228fd71 X-MS-Exchange-CrossTenant-originalarrivaltime: 29 Nov 2022 16:44:30.1132 (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: bcN+xLgENNx/paSFdePwUC6nCr7Pwc04oGexfOAwB98OFTzCVzUvLYILCh6eSKuHTWV+ez8suxMOuG2sarijKg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR10MB5788 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.219,Aquarius:18.0.895,Hydra:6.0.545,FMLib:17.11.122.1 definitions=2022-11-29_11,2022-11-29_01,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 bulkscore=0 suspectscore=0 phishscore=0 mlxscore=0 spamscore=0 adultscore=0 malwarescore=0 mlxlogscore=999 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2210170000 definitions=main-2211290093 X-Proofpoint-GUID: FbAJ6ILbhI8RTpXuBbCAXdDJ7lNZ48PU X-Proofpoint-ORIG-GUID: FbAJ6ILbhI8RTpXuBbCAXdDJ7lNZ48PU Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" From: "Liam R. Howlett" Use the vma iterator so that the iterator can be invalidated or updated to avoid each caller doing so. Signed-off-by: Liam R. Howlett --- mm/mmap.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mm/mmap.c b/mm/mmap.c index 4102cb0c2793..4dda84378831 100644 --- a/mm/mmap.c +++ b/mm/mmap.c @@ -2447,7 +2447,7 @@ do_vmi_align_munmap(struct vma_iterator *vmi, struct = vm_area_struct *vma, if (end < vma->vm_end && mm->map_count >=3D sysctl_max_map_count) goto map_count_exceeded; =20 - error =3D __split_vma(mm, vma, start, 0); + error =3D vmi__split_vma(vmi, mm, vma, start, 0); if (error) goto start_split_failed; =20 @@ -2468,7 +2468,7 @@ do_vmi_align_munmap(struct vma_iterator *vmi, struct = vm_area_struct *vma, if (next->vm_end > end) { struct vm_area_struct *split; =20 - error =3D __split_vma(mm, next, end, 1); + error =3D vmi__split_vma(vmi, mm, next, end, 1); if (error) goto end_split_failed; =20 --=20 2.35.1 From nobody Fri Sep 19 02:32:03 2025 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 5BC2DC433FE for ; Tue, 29 Nov 2022 16:46:12 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S236215AbiK2QqL (ORCPT ); Tue, 29 Nov 2022 11:46:11 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41484 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S236080AbiK2Qow (ORCPT ); Tue, 29 Nov 2022 11:44:52 -0500 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id B35425F873 for ; Tue, 29 Nov 2022 08:44:42 -0800 (PST) Received: from pps.filterd (m0246629.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 2ATGPo8i012293; Tue, 29 Nov 2022 16:44:36 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : references : in-reply-to : content-type : content-transfer-encoding : mime-version; s=corp-2022-7-12; bh=8rfJBQyWGishCBgNUAzGadHqOqccStyZdhQtcGI4EgI=; b=168I1k9qhlj2TGTWBjkOhnKQZC8pxZ6t0+fW/BFB9OCEX51KRFgXsTVgZm6s5dWBftYL /CkThtiPVdAJTWA0WipHwzKlhiZJNRqhOtVWoyMzROCvYyh6IHm/oa+a5ywqb23wmAl9 FKXNS3yfOEHrkDES3GXQY4OBg8pV1GL40g6cTEn/vZKewcLjThnfRLWdbIrOoVIsHFyt JEAi9wK3Lq5l6Oym0ytUCi6uonTl+f9nTXFwOouLLtB1mGugGQMj9pGh7ZyaCGCpOqKG AuuLBHSS6cSQkhezvDUQhT+tgVfnigYbmV9/QkFmQSE0Pr9yYxO8Tb+e9ckbSTc37B+h PQ== Received: from phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta02.appoci.oracle.com [147.154.114.232]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3m4aemdn9q-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 29 Nov 2022 16:44:35 +0000 Received: from pps.filterd (phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (8.17.1.5/8.17.1.5) with ESMTP id 2ATFhsPp027963; Tue, 29 Nov 2022 16:44:34 GMT Received: from nam11-co1-obe.outbound.protection.outlook.com (mail-co1nam11lp2169.outbound.protection.outlook.com [104.47.56.169]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 3m3987f2au-12 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 29 Nov 2022 16:44:34 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=QljeSUWWuU6bhCEO1NlY2Owte7DNmqDVo2r0BmEIfu5rNoYJeKBFaWhONK8LbUCOQ0NB067/ORyVNcJX6bhbiCzsfd6UJYsZQDxTqMkWsmYK2C7bJJWCeUdUnaAzBPiP8do4+mHsfxSJl8mf7KsyYwBmmxdUTmSmPiaz0CbDrJ+gjd8jHQUi67pYmZnOE6y+tznkYJzpNEoyek397nuly/lz5bVqQd81BCuwdXQ9a0fs9hgo+2r1VdSs0BCR+Nor6AEbBzv0Jbt9pEGGxJibfim8tC1O8+FdL1Lszc+0nWBhPB2u+6T7LkOQoNBnjarCE4LDyPIh76Ta/Y/yPui+qQ== 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=8rfJBQyWGishCBgNUAzGadHqOqccStyZdhQtcGI4EgI=; b=O2YbvVZEolQfbQUgG5jpUhTTDR/jV+1Q5LyzIZxqryjLHPip6X4OJggk4z5omHdDqctKG98fvklYi4qJQTuSP26sgkucFpKAJ/F7KhktShlp0ULI7g6AA9liJK6zveEPLp9eViX50Xc2AnHA+rtRrxkDNL8Gn9+f8qcYN6ZLLUSvsK0ca5Dx2QdEiLyyR3Roy02zw4I5+ydYzJd8vvjpykW7/X7mx4OO1SQCv1F3lcqDEt6J1U86TJEaNIQ2DWRRoQ6Z6iNgLJXT5Ckms0xMqLNTAxpL8YoNLfc4bAVegCWb15nOCRRAD+a2W0eTI826c/mzSOQcNmDV3J471sOu9g== 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=8rfJBQyWGishCBgNUAzGadHqOqccStyZdhQtcGI4EgI=; b=xYjQ4nddrOp0XoVm+S4fIUs6udAi2v/81Iu2IgzArpFE2Nxsi6wLn5KfkYFzFtXUkq8G6pr6sCx8aZsvU7agyx2LXWkayUawAuOZsaT2Rw6h0NhfsffaWcbSfZcbsZDFgdiOzCFhcp8IVrhjmmn+jO82K3nXHW4n8gAhEBxqdig= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by SJ0PR10MB5788.namprd10.prod.outlook.com (2603:10b6:a03:3df::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5857.21; Tue, 29 Nov 2022 16:44:32 +0000 Received: from SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::a02:2ac8:ee3e:682]) by SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::a02:2ac8:ee3e:682%4]) with mapi id 15.20.5857.022; Tue, 29 Nov 2022 16:44:32 +0000 From: Liam Howlett To: "maple-tree@lists.infradead.org" , "linux-mm@kvack.org" , "linux-kernel@vger.kernel.org" , Andrew Morton CC: Liam Howlett , Liam Howlett Subject: [PATCH 23/43] mmap: Use vmi version of vma_merge() Thread-Topic: [PATCH 23/43] mmap: Use vmi version of vma_merge() Thread-Index: AQHZBBHa3+JEZlfYfECeuY8p8LE2tQ== Date: Tue, 29 Nov 2022 16:44:30 +0000 Message-ID: <20221129164352.3374638-24-Liam.Howlett@oracle.com> References: <20221129164352.3374638-1-Liam.Howlett@oracle.com> In-Reply-To: <20221129164352.3374638-1-Liam.Howlett@oracle.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-mailer: git-send-email 2.35.1 x-ms-publictraffictype: Email x-ms-traffictypediagnostic: SN6PR10MB3022:EE_|SJ0PR10MB5788:EE_ x-ms-office365-filtering-correlation-id: b4be7cf6-054b-4b0e-373b-08dad228fdf2 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: VAB2flg8xFRKsmc7BS/Z1uxVWviux5IwgDIsqBJ6u7Rp/3ydZHNW1cSSO9KUaSE1uxV9COD5m4V6bkdWHoSM8SBIGTxge0+GSm63PmYrQItI5tkcjp1abjJ4Dr5/7B0KmOEBuq6eZz51iHm9x/UMiRmgXFhpqYjRXMQAfuagqeVnlZGfx+wJehGkGQL9Vn1xfC5CCjlvKVXBfRv7iBEge+MMVmYVuQJjp0hA6sLwpQJoN1rkfmMvDZjAQYrORJxeLbXvV3LWhEXcmy1BdTFJmueJGr8ZeaIaJlQkX4+Yf3UkQCuAOVomy9OTsE3BLY3D1tn2Wmj3SqKEHDWoQlUY0mdSDq/SnOpAeMRmh5WAouDU+zht3Z4EUV468Iwd55QMxNxmU5COGxlGPvKufVx0LCyuy/R3jHRuyBGouZ0+H4mSWI6+NIrmX/K1L6AzHKlLtklEDqdbFkJe76Rg4sL/URXdmUaXTHqdtl8x9gkWlF9t6doWyWg/xP0Spp2Gr8WvYjWiEbZPwcpa0xnGkU+AGJKtbLGJ5PaTIs+Dsf7g/Wg0VCvMqMFSzF4aEuxbP6cRAZ9YzXWv5ZhWzMcNi0zCIG/nax3WMhaDozh4UgxRaZgtH1tVa4QX7MBvMwwJ8ayw4LfWrFYlKKDciJrR5RVUtfS7cMwbNBc8PrOkz0Qv58DSwCQm8Mje+tRVnP6znoen+nwewW01AriSkWDzQZCFrw== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SN6PR10MB3022.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230022)(366004)(346002)(396003)(136003)(39860400002)(376002)(451199015)(2906002)(44832011)(41300700001)(76116006)(5660300002)(36756003)(54906003)(316002)(66446008)(110136005)(6486002)(91956017)(66946007)(71200400001)(4326008)(64756008)(8676002)(66556008)(8936002)(66476007)(6512007)(6506007)(26005)(2616005)(107886003)(186003)(1076003)(478600001)(38100700002)(83380400001)(38070700005)(122000001)(86362001);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?Q?PEjri0PESC2LXGVbe2D1sZMwIMqJAbXLzLkgnYFiqdHCrwApaPn4/IjRPF?= =?iso-8859-1?Q?W9qfQAvWD6BGX8/tOP8tPh8x48HcF5ITwr5rrCHPtfwxjMGRdu285e6M9A?= =?iso-8859-1?Q?UKIfoF8fTL5uXpHcmFJ7X+zysBY6ZQ5ihFuFI5fKYkH5wVommcSafBuJaK?= =?iso-8859-1?Q?4jhCmJqksjG3K55K4g4YyL710NbdccFxEDId75oEwYKHzamXAZGpc2qZiv?= =?iso-8859-1?Q?MI75JfqBEXd9INTNZXI/V8IKKiy8p6qOi1ZvPHPaOGRd1orgcC5rhUqK3V?= =?iso-8859-1?Q?/ABhsjJeP822f1TQ1Fp1ICCY36mcozTSlRAwmYq5D/EjdI+CxGdf94+dDb?= =?iso-8859-1?Q?VpZEgPW7gwg/oJ+SYwC953WEY9To5TSblhQ8o3KgDtJppWiZkG6yvuI/IW?= =?iso-8859-1?Q?cBr78Oe91dAy3D8wVP96yf31JJkjatlDkB7P5z2p8pMQttWq5KaxkRVu1n?= =?iso-8859-1?Q?vN/TKsa8e2qX8rT3K6eIN5K7vLPQtX2f5jzEAYkw0D7AAPxIyepRrIo8cl?= =?iso-8859-1?Q?rhgyQVyG47MPhy8mv+ISAygN19vcU/kPnCIFz/UECHfH+ktR0cz6YccC7H?= =?iso-8859-1?Q?XnuH3RWShKwzNZwf8UYm3Utt28IlX89/c/0Ca+YvYrA9HjgU8QuHKiKHOF?= =?iso-8859-1?Q?mf5Zla985ogMnwgpvvWSgjl9I7mUg2GTRGvoKxeQC3KU6/a15vABZV4POQ?= =?iso-8859-1?Q?L3yQMd1crHs0WlRwcH5wrq2PITUzcnMGNpH3fra7GBZeq34e9kfeiOQO1v?= =?iso-8859-1?Q?ihP9nX+v2nSM4UaGr+isvgBo9QAPhCEyro5nxGnDTPbEDfjoGaeg/Zspfq?= =?iso-8859-1?Q?GLH3Muadm/Q1VgcwUe9sypz0efwUyIfSfiZPgaqPpTtfMSo52Lv97zub+H?= =?iso-8859-1?Q?kPVxD4cAeefw9RIFU1PRJ1eDD7rixTzq2EIjMHSG0AloaO76bHo0G2SflL?= =?iso-8859-1?Q?ABvszvkyQWdwHVZ08acT9QWKvGBt2aeJfCapHQcqzkKa0udvmeZGRyaimh?= =?iso-8859-1?Q?xbyfacFC0vRHex36682lMnashcoAx8zHEr0Q9BAcRD4OoXkve5xQzWqMIp?= =?iso-8859-1?Q?fUTitGV2ziMuj7EeUJR/Ue1yDOZmO2avLOTpnMrWWJWnDQjJbSi6Hcg0OU?= =?iso-8859-1?Q?wpjWksxqvJkfMCndRh4T5U5AIgQaUSujU8ebiLy8/dDsMBuwr7oKqC0wAI?= =?iso-8859-1?Q?x8l8mJDiP5LAExUWHdVrQzjcKzxsNnpJaUHJtLQldHo9zDCVoqS4cS+3zJ?= =?iso-8859-1?Q?jRWLItR/Cb8+wHCCXZc0f0jJQcSH9awDRjqYCGR83Qbz/yeoOD04kAD5Dh?= =?iso-8859-1?Q?+4AyT3PXw5+evRzw2FOQccrmSigtOtO7iCCabb3HOgD8qfzFbXXEin1nEM?= =?iso-8859-1?Q?Ll9XbqZn9q4LiX7d610+Amla6b+7MPyudB2nds7yZx8BQgQ1078cUcS/Xo?= =?iso-8859-1?Q?dzFBsZTj8tX40JQqskOU8cbnyXoLJtftIJRtCV+aOKOdT2Khxjbd/7ytEx?= =?iso-8859-1?Q?Z+0Uc+wG4z18t7NG3k2FJOhCXlVyI/SgViPVOStvFdNFW8FQ6Og3hVBcBd?= =?iso-8859-1?Q?okCl8Yn7ZGiWalk5zUcA+KGQ2RyR1WlD7NaaSKLF8LrMmKuUIO7W5/GfAi?= =?iso-8859-1?Q?/GCfIJTm9Zv/UBXH0R9A6a21k+Jt7p4oEJoyefn4GBMY9mmYn0pbF/mQ?= =?iso-8859-1?Q?=3D=3D?= Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: YzYp28jmwZpOcRSUorI4gDoSpHZhpucG8MgdhFjuhD/MQCeAqupy034rmfVmi2UANrGDEHOheQTxMK+mtakaVyDQ4qK8MNnx3A/xqry9nvUGQbsnmLaGZ5aieAarul2i1MBfjwtWAdghjJkejk7gy7uB/q6mWZIXyBhlz89F1/qnX5+2CngBka56aP2YA5tgrAjfuA+je8zGYVGZmjFL1yYCRBGRzSTVHFd4UxbVaF9YfMq9C2q74OKs+YdZb40nENVQ0VU8m+prmdFt9tmMFz4eYG9AnB7Lyo/gQZm0XUu97HYlvVRe+NaJHS3hOOLkye8xbkLtVgSHyjlN9HhmhbMhCJWtBlQpyOS2skLQxzzp5pXgmNaTUaVXWJTqp/eQGJ9J1ZRTwqD/Dlbg2SOJ3q7q0bjXX/d9nk7ZcjVClz7xTJ++LJuRYMQs5D6IPBPs/Vx3VNz/Rtc6icPASfjMK+i59QAcq3QRTvN8KCdWywWXy4inMkD8lCYQWk8CG3foFlKvD1hK78u7wgTIdwnCw7jUMtOsDuCXyTkCAbpdV70Rj2Gi6354hEJOs/Bha3nZebBhL67tyMNTCMrfZuoudXmMvd5A3azcqQUCgVab16qnuiPDMB94bOC6zTJAQLctUxEpO7d7Vt7F/Tax/7bJ0TSR+Js7PqhD4+lD6iARaTm8S/XDY8XkIfrryZCCmhkEavxibEgvYFe0hEE1/OfFH5IcTdEBRLaIHI0brmfb2otuKJPKn6KHuEgPnV5b8df+BQHDGwcCp9yTyxbqu5P7vfDxVHJct2aydr8SRGU1CpKBuGtjlDBY+dZuZUHFyBpfKrtux/WTz8YQfGg7WYq/p5Q8c5+Hks3CnH90CK38BQ8ucc/6/ln3J9XhS3fuGRyUE2KbCn/svgjvUkE6S30qCg== X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: SN6PR10MB3022.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: b4be7cf6-054b-4b0e-373b-08dad228fdf2 X-MS-Exchange-CrossTenant-originalarrivaltime: 29 Nov 2022 16:44:30.5663 (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: OrWBXcGQ7b/roZvWNmuWBF75+u4LqUwvBfANn560YeKz2GzI7hqoi9RbeEZmC4L5FTYWnPltpdT+YiR1e0CVMg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR10MB5788 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.219,Aquarius:18.0.895,Hydra:6.0.545,FMLib:17.11.122.1 definitions=2022-11-29_11,2022-11-29_01,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 bulkscore=0 suspectscore=0 phishscore=0 mlxscore=0 spamscore=0 adultscore=0 malwarescore=0 mlxlogscore=995 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2210170000 definitions=main-2211290093 X-Proofpoint-ORIG-GUID: HA6i7Z3dqcJR5AxHevvEpwoCFG6Qxt14 X-Proofpoint-GUID: HA6i7Z3dqcJR5AxHevvEpwoCFG6Qxt14 Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" From: "Liam R. Howlett" Use the vma iterator so that the iterator can be invalidated or updated to avoid each caller doing so. Signed-off-by: Liam R. Howlett --- mm/mmap.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/mm/mmap.c b/mm/mmap.c index 4dda84378831..c22365727ab4 100644 --- a/mm/mmap.c +++ b/mm/mmap.c @@ -2749,8 +2749,9 @@ unsigned long mmap_region(struct file *file, unsigned= long addr, * vma again as we may succeed this time. */ if (unlikely(vm_flags !=3D vma->vm_flags && prev)) { - merge =3D vma_merge(mm, prev, vma->vm_start, vma->vm_end, vma->vm_flags, - NULL, vma->vm_file, vma->vm_pgoff, NULL, NULL_VM_UFFD_CTX, NULL); + merge =3D vmi_vma_merge(&vmi, mm, prev, vma->vm_start, + vma->vm_end, vma->vm_flags, NULL, vma->vm_file, + vma->vm_pgoff, NULL, NULL_VM_UFFD_CTX, NULL); if (merge) { /* * ->mmap() can change vma->vm_file and fput @@ -3286,6 +3287,7 @@ struct vm_area_struct *copy_vma(struct vm_area_struct= **vmap, struct mm_struct *mm =3D vma->vm_mm; struct vm_area_struct *new_vma, *prev; bool faulted_in_anon_vma =3D true; + VMA_ITERATOR(vmi, mm, addr); =20 validate_mm_mt(mm); /* @@ -3301,7 +3303,7 @@ struct vm_area_struct *copy_vma(struct vm_area_struct= **vmap, if (new_vma && new_vma->vm_start < addr + len) return NULL; /* should never get here */ =20 - new_vma =3D vma_merge(mm, prev, addr, addr + len, vma->vm_flags, + new_vma =3D vmi_vma_merge(&vmi, mm, prev, addr, addr + len, vma->vm_flags, vma->anon_vma, vma->vm_file, pgoff, vma_policy(vma), vma->vm_userfaultfd_ctx, anon_vma_name(vma)); if (new_vma) { --=20 2.35.1 From nobody Fri Sep 19 02:32:03 2025 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id B6E7BC4167B for ; Tue, 29 Nov 2022 16:46:39 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S236045AbiK2Qqi (ORCPT ); Tue, 29 Nov 2022 11:46:38 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:42252 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S236143AbiK2QpX (ORCPT ); Tue, 29 Nov 2022 11:45:23 -0500 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 469FD54B36 for ; Tue, 29 Nov 2022 08:44:46 -0800 (PST) Received: from pps.filterd (m0246627.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 2ATGPitf017353; Tue, 29 Nov 2022 16:44:39 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : references : in-reply-to : content-type : content-transfer-encoding : mime-version; s=corp-2022-7-12; bh=XK+SWl8VPkKYLUcRoYE4/SOdllcXeYEOwMDiLDbC6Vo=; b=kSH0wy1zjn8Sjb7VzTyTtQTAQ9n6c1swSGpu0fBN6SJwT8nkzlc0uZr+RfDInYmuLo5q 2ZHyYNjyAM1njdLG7LC1QCGB3l/SOcCKZHkJ3be6owb5SmrugypM948Zrx6cJ7gXAl58 eUyphsg37zuXP4e1vETWiTK6GcRwwOVAcPUFDMei14jrNFacIzMNGAJiNQgs6QnlfSeM cflG1VlZmdnoIhaARp/4wrjrCzNUxirk8cT4+RfeWrN5qCut/L1mp6b/rUsyVmnofHpf DM84uda6VOdleoPBdsYa/fK3AwsGrYUmIDn9JXt/mdguOVUKeYuULct9PGhGDkdrRVpy 5g== Received: from phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta02.appoci.oracle.com [147.154.114.232]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3m3xht6hn8-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 29 Nov 2022 16:44:39 +0000 Received: from pps.filterd (phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (8.17.1.5/8.17.1.5) with ESMTP id 2ATFhsPq027963; Tue, 29 Nov 2022 16:44:35 GMT Received: from nam11-co1-obe.outbound.protection.outlook.com (mail-co1nam11lp2169.outbound.protection.outlook.com [104.47.56.169]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 3m3987f2au-13 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 29 Nov 2022 16:44:35 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=MskjC76/FdKRwxLhUo/Ix0wivLhN3FrVLQVZwUdpe4WFIM82cuAnI+Eq84Mqqe5L7VEfHQDvrtua6H45wOnAMM791Av3lAF6orwiIc3gZi4+8KQ5YpAwPGkC1lKKJGIVUv1T4fyjpMOfPAXVi0WoS7mL7K5QNWCVZJjBc78sDe9nnolp+c3iWRfe6QZQTy+U5E8afs8gIAKDDwYDEDvD8QsVjYLgA17Zq/5URWsgbiQuH9mJTc2B4zvwsA2k+X3IgU589wNr4LdSdDhsNjUsA/i8ULSpOqOerhXEDhUGpU2mAi5aDZkp7GpzfL1gLxn7KFm2UwsECqHzbq0kQItwvg== 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=XK+SWl8VPkKYLUcRoYE4/SOdllcXeYEOwMDiLDbC6Vo=; b=WjvWFDPq4UX7o58QJvAirU30ZFKrJP9EoReVdmlXB+6DACa/E5NuSX/1A97Gc6ejK/lmKoXyYrRfDL4v7XdMV8KhXgiJ2Wp8s6ZiG1PkjEjOC6FImTgSvOSQsB45TOYYJfVWdPgPOzt/ikumMJY7iFsISC1k48FxXd8kFMSDwdmF5isNbGIlh3CXSVIjmjXSEedmE+9mmOznTjh2sv9yzwaKKZKmPq3uvFldkOJsHKGTBD0qvocXgwo3FLXLt0ED8pglNl/Dk5lnbN4IvbwuWUPoUF4fnOpSeFWoi/KMNCb/y4gS6BJKDqMsXbFC/doKM19ab1EbxLaWyI9RBNuDiQ== 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=XK+SWl8VPkKYLUcRoYE4/SOdllcXeYEOwMDiLDbC6Vo=; b=0ECCfO6OZUhZL2gQ2zT8BdzbqNzqQrPb98z2mmY5xeDQvwd3lt0tZYYrFdiNMH38AoImyufy6IWoYQ5aTgVKs3sbizfxQF8IMAVYk4tjDRTj2OmnOmUxWlYm3o7KsXRzRf2VOOKGzgacQ/MnwWNp/S52BUR0+aPSCZWNYQe6ErY= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by SJ0PR10MB5788.namprd10.prod.outlook.com (2603:10b6:a03:3df::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5857.21; Tue, 29 Nov 2022 16:44:33 +0000 Received: from SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::a02:2ac8:ee3e:682]) by SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::a02:2ac8:ee3e:682%4]) with mapi id 15.20.5857.022; Tue, 29 Nov 2022 16:44:33 +0000 From: Liam Howlett To: "maple-tree@lists.infradead.org" , "linux-mm@kvack.org" , "linux-kernel@vger.kernel.org" , Andrew Morton CC: Liam Howlett , Liam Howlett Subject: [PATCH 24/43] mm/mremap: Use vmi version of vma_merge() Thread-Topic: [PATCH 24/43] mm/mremap: Use vmi version of vma_merge() Thread-Index: AQHZBBHa+cUerEdvF0eS+Eo2Wg1pFw== Date: Tue, 29 Nov 2022 16:44:31 +0000 Message-ID: <20221129164352.3374638-25-Liam.Howlett@oracle.com> References: <20221129164352.3374638-1-Liam.Howlett@oracle.com> In-Reply-To: <20221129164352.3374638-1-Liam.Howlett@oracle.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-mailer: git-send-email 2.35.1 x-ms-publictraffictype: Email x-ms-traffictypediagnostic: SN6PR10MB3022:EE_|SJ0PR10MB5788:EE_ x-ms-office365-filtering-correlation-id: 97c1cff8-5325-4a2a-f7de-08dad228fe34 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: ST/c4dhHWrkZDhf/xEq1emPIoektgK/k7qHR4dsFupNG/OE7ON4feMwXQyahHKCojbX9AIQ5IIdbcLlp+wRDqndJCGzMxrsxcMFLoGhKdpK9uMf6oDMybIE/J0mrD6MPwpUw+oEPJHTMppWwwsr/zEI7HLKE6c8Pgkdms9RsOf49Yvf/r1qcUGn+cwP2IYfkKARAga8QatDuG0IEOdCwjlwi5kNXMwjvG8W4i0zbHDrwPKAE4sLp0AMrt386kpU2OKio5a7zBgWwaqTTAVfEI6WiASHRfWHSZQLRq6ZEw6StnCo5DgcMK0oFGb0yYz/4UxJakUV3Gjk7Er6eNoiGKwunR7pL+jU2WZzaeVXFH4EPtzWBamBMZ+ejEKHxFZ8LXIgswfw08sOm/Ke5JiKOYxVYlHxxBplGaN4ZhRMigdsHCxM/Yk60Mgv+XJZRhArLG0UNlku8KFC5UMQfS3qfOp0D24JxnIJeExAckRbudXWf4Leu3OTAvxPNypuQb6AG8r0OiJdGEMmVM0c+zLa2Qes2PX/Oo2CyFlOw8pRd8gH0enxfWg250QUi3GaXXgjXTPIt/yHwEAwA81q2BhAbfPPjIBNpWGQAIXqK6Y6rjFSnrTqNnJ270K1VoY2pCUwQacLiNz70TTZBi0sKwe7QcV9N3st0s2i0nNx6MTceuXVflFpcqWSOv5Dg+VY9QTTdKb+v9nBxbrZaHg4zUsdCzg== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SN6PR10MB3022.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230022)(366004)(346002)(396003)(136003)(39860400002)(376002)(451199015)(2906002)(44832011)(41300700001)(76116006)(5660300002)(36756003)(54906003)(316002)(66446008)(110136005)(6486002)(91956017)(66946007)(71200400001)(4326008)(64756008)(8676002)(66556008)(8936002)(66476007)(6512007)(6506007)(26005)(2616005)(107886003)(186003)(1076003)(478600001)(38100700002)(83380400001)(38070700005)(122000001)(86362001);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?Q?CRRAHvKofV9VnTGwQed+vr3F/Gw1lkdV/mt3EmtMOr/0TLaEGZIFX9e53B?= =?iso-8859-1?Q?LH9XuQ4Z7Wryuu/tZV9OH1XFrp0yeGkg+wbI1ytwRX8ojAmRzQju2SKok+?= =?iso-8859-1?Q?vb7s+OEl5icUhk5ruCLaWhISN+JdVDB4psOdLMfbKRfzW7N0Mgkg0ZIWwh?= =?iso-8859-1?Q?f0uX9aIiGhkpjFZqub4haMlzVVovpqOutzboMrZEyCd1stFBbEGq2HCAiO?= =?iso-8859-1?Q?NFRju07cVKSOBxbyv7WZO2EiuptGaHvFWd8woGQ1BulnaZghWacf/nMGKB?= =?iso-8859-1?Q?I+LFwLUVpmZ3PxBkfNcGtuRItBCAmnf4OymBxo4GkPjqGEOKeemT13f/3l?= =?iso-8859-1?Q?tVFT6LlAd3HCcfnUo5zxv1NXtB7pE7zFg/Hqyv+VVr4nNrE+mJEZUpjxr7?= =?iso-8859-1?Q?X6u/8LU3SSuCnL8pPBEPeHctImKYW21R1KnRehMaldM12mac0MCG7XHuE9?= =?iso-8859-1?Q?+5o621HL0RlriP1Z8tuvtmKg3sebfEgQhsYQwmKr5nGWF4sTzTNvaky/k5?= =?iso-8859-1?Q?k8rWS/ltQqtCerEGfathYRfjgBBESUQfv63zu4zJ3yTV490rUD7B2Eyx5J?= =?iso-8859-1?Q?0FG3ko5t/MxB8joWHIaVFyofdPXO1cMF6FZmDDuNMUJeyJPACotQp8f/ys?= =?iso-8859-1?Q?uwvmsatEZeNLfcj+FmHy2owduQeezDL/ibIlLHf7+Bjpv7dJSOKwgTJ9K7?= =?iso-8859-1?Q?egoQcITg2Mg+COy5O1mc5k6GkQkF/f1NKLhUQ3V9GX7DnYkDiGGnzZXxzU?= =?iso-8859-1?Q?ZfE2zh03YghfPkiVAIQj9ZH2eV7AXuqon/AgYkxUzn5cU3h3tsjAG78kiT?= =?iso-8859-1?Q?CLj7FwhFyLmXmmKgVkx2JhWNmtFwkO/5xMD/iLdy3X6cpaDlS8/YT2J1KP?= =?iso-8859-1?Q?ZgoM2A3IPNhwrlGtS58ux3OF5JI5WIZYtgEnxuvrCa9KOrRxhx4bRqtr0M?= =?iso-8859-1?Q?Dl4liWxn6YSJrUqdOkFeiajNjon1ekc1XVofPoHfbHKb2SD8LUGcR5Aiu5?= =?iso-8859-1?Q?u6JuKSaPSwwyt5pts5Ss5tVJe/gudGhdZXucR38ukNcjA4p9zDm+Ox0LI0?= =?iso-8859-1?Q?gdVWEsWyD1sWnQJ3ZSeEE4gCVQBgHPo9wxCN0KcGf4QM+RA2i4z+VzmrJi?= =?iso-8859-1?Q?xxd1PTeMywdBO7QrmyE4hrTeJKrHfytsT79aq5z6+764yERXvfkdr3yuL+?= =?iso-8859-1?Q?gcTDWoT21kKsPwVjRZNQxMsutAGWaFv30pjCDbJYsDxM2TfA6oRzplIw5U?= =?iso-8859-1?Q?4RL5dsY8b354NTiEjdi8jiojvBkX0PjxlJS6XAQeyyfRO+7V1uTXmV+x/F?= =?iso-8859-1?Q?pHbzoQrrIb4yF4Lg0G30KZUT/3eMSxusRUT43ZF8Kk+XS8nCO5fAez9g7m?= =?iso-8859-1?Q?6EoauFhuNADtrk2TWAT2sbBwSh0IgW9uEFJPOibJMGlk/cyWPHv34duxXq?= =?iso-8859-1?Q?FKcR5kVQUhoUJO3UT0k5t9EIqQ8VYb7UlPiAkLY4BtvjaiPEeKznc8Rj8j?= =?iso-8859-1?Q?DFp1sds/Z1UOMKuOsTXGebm+N/DhX+wNb6V3HNzrL8NDcD2GCXI3OIr/ye?= =?iso-8859-1?Q?k85tr4clT/RFAXIswzW+rgQvXzRhNzbxEyKQZ5+AoaFt/f9vXNLHcZwDFj?= =?iso-8859-1?Q?ub+c5GcLi/tgWc3UlwEo8mLU1khqKCYbXATGxZikv6hXuKI32tAdYm2w?= =?iso-8859-1?Q?=3D=3D?= Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: 9MrnhmS7q/Fn896j14ypTK4HnlwYFshJijaAQCkYJncDaV4IMtQXkk8WMQ0iw66pW+heG4EDPVkb/hqFeJ+hfqkl30d6xNRue4vGLmhE79nycph8wVskQVa5ON+ic4XSbCJxxjQfPET133Z7x7oqMU2OdBz8Qcw+rmUcQUN5LKhSZjRF2pgIpwjGYGTDOZOCVHmFEtqAc7mi0vrYYntJl8LWe99S7I01E3026jaIH+yEu/E+4+XN9OBsGgBH7E9IM75QDnDsommnPD6Ltx3eWau2iVxbv5MHbWeUoNXgxZYnUev1nCzSnVs0E7JRnQpGy4VS+YfxocQC9Y8pBHk7qbeEVhCRN1HHo5lGn+mSHRJuWEuOqDhq+cfY/5G0bLNC+bbvo0J66FVs5o+/NUZNkvByLxN44g75pTXc3sa4/A9L1kMd9wQKjthCCvuoFjjDmJIN9bJXGtoTfAKXRE+/gZ5kpKySdvOg/5mF+wzb7W/+ypVIm2aIuk0DUVBq+Dg1D6aIz3UEwJqZVGehFtzVnMzFV331mCY1VE6xolneRbEUgvnnFRxkK5HibhQx83pbaIw41YdFfKMY3yOpqMpueitNDCeIqyVYNA2LqNwy6+LsRqnzaZd23EkxX1b/JNpTlRdPncsPdRjxhEcnIipsoULuS1f1e+NUHOPoLQuyBHz7x317+dqQRV2exfYaxHVg54CGYOD3WXE1NWUTfotscOq1Xn9Ahkh2stgWq0LydS1lUhYWNgkOMrIh8SvR3n1t0jMVKm/I1ghaXnLRfFaTeHoOCpPnUguUp858kHZrVAQybsZjjnoT/Iy3XBdI889Yc4olF5RBmPcKtOTWQPokoYAMKnXevM4WQmtN6VGfDuYc7P09bONPWAmj467vM9QwAFoNU7Y40GuRjTKOK6d8vw== X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: SN6PR10MB3022.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 97c1cff8-5325-4a2a-f7de-08dad228fe34 X-MS-Exchange-CrossTenant-originalarrivaltime: 29 Nov 2022 16:44:31.0663 (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: hMdEL/Rl7D8Tb6zEVGAYzN8TEZhPwi3adYdyHFPzgXFJPmmXy8ygesj8qL/TNHzsY61+6a2G0GsB6e2cN5Mobw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR10MB5788 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.219,Aquarius:18.0.895,Hydra:6.0.545,FMLib:17.11.122.1 definitions=2022-11-29_11,2022-11-29_01,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 bulkscore=0 suspectscore=0 phishscore=0 mlxscore=0 spamscore=0 adultscore=0 malwarescore=0 mlxlogscore=999 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2210170000 definitions=main-2211290093 X-Proofpoint-GUID: wFcge61FZHgMrvavmI-aZWitDGfNwN2U X-Proofpoint-ORIG-GUID: wFcge61FZHgMrvavmI-aZWitDGfNwN2U Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" From: "Liam R. Howlett" Use the vma iterator so that the iterator can be invalidated or updated to avoid each caller doing so. Signed-off-by: Liam R. Howlett --- mm/mremap.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/mm/mremap.c b/mm/mremap.c index 841fcc70e017..7302a71058ce 100644 --- a/mm/mremap.c +++ b/mm/mremap.c @@ -1017,6 +1017,7 @@ SYSCALL_DEFINE5(mremap, unsigned long, addr, unsigned= long, old_len, unsigned long extension_start =3D addr + old_len; unsigned long extension_end =3D addr + new_len; pgoff_t extension_pgoff =3D vma->vm_pgoff + (old_len >> PAGE_SHIFT); + VMA_ITERATOR(vmi, mm, extension_start); =20 if (vma->vm_flags & VM_ACCOUNT) { if (security_vm_enough_memory_mm(mm, pages)) { @@ -1032,10 +1033,10 @@ SYSCALL_DEFINE5(mremap, unsigned long, addr, unsign= ed long, old_len, * with the next vma if it becomes adjacent to the expanded vma and * otherwise compatible. */ - vma =3D vma_merge(mm, vma, extension_start, extension_end, - vma->vm_flags, vma->anon_vma, vma->vm_file, - extension_pgoff, vma_policy(vma), - vma->vm_userfaultfd_ctx, anon_vma_name(vma)); + vma =3D vmi_vma_merge(&vmi, mm, vma, extension_start, + extension_end, vma->vm_flags, vma->anon_vma, + vma->vm_file, extension_pgoff, vma_policy(vma), + vma->vm_userfaultfd_ctx, anon_vma_name(vma)); if (!vma) { vm_unacct_memory(pages); ret =3D -ENOMEM; --=20 2.35.1 From nobody Fri Sep 19 02:32:03 2025 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 0154DC4167B for ; Tue, 29 Nov 2022 16:47:13 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S236187AbiK2QrM (ORCPT ); Tue, 29 Nov 2022 11:47:12 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41454 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S236181AbiK2Qpv (ORCPT ); Tue, 29 Nov 2022 11:45:51 -0500 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 6CB5945A21 for ; Tue, 29 Nov 2022 08:44:52 -0800 (PST) Received: from pps.filterd (m0246627.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 2ATGPi3n017345; Tue, 29 Nov 2022 16:44:42 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : references : in-reply-to : content-type : content-transfer-encoding : mime-version; s=corp-2022-7-12; bh=5UFSEk5NWMUwkRVcsWr/X+7G5H1qm5MKYxeSEUpdMZ0=; b=vb49Lzj15yk9NOXHVPpWxxE7MOI++OqsBaRUielxdcrKXmPvGiX1UcaxhMH9xvTu1nFD Y2O5CQ1p2OyEpkB7OQ8uRFUoSxMJcQxsClFc1oR6dERHA97jBsiEcefR9Ouwi+3YPJOg ydI7PpP7LffJMLrrujQORFDud89Y/o90P4XZNTgJNyzasboltyj+37idVqlkZT6J9f+p +Y3gHA34MVWCLl31Wbx1uuwM+3/+H7ImL5WdQIdiV7GtAESL/LUUxocwyP6YKYbUsQ1a 6BorrAm52uLqC85FZBVBztWXnqXc6qaAe10ELrAFE1BUAAi6k5yWrc8MOBNUs9QWMBXo Ww== Received: from phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta02.appoci.oracle.com [147.154.114.232]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3m3xht6hn9-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 29 Nov 2022 16:44:37 +0000 Received: from pps.filterd (phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (8.17.1.5/8.17.1.5) with ESMTP id 2ATFhsPs027963; Tue, 29 Nov 2022 16:44:35 GMT Received: from nam11-co1-obe.outbound.protection.outlook.com (mail-co1nam11lp2169.outbound.protection.outlook.com [104.47.56.169]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 3m3987f2au-14 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 29 Nov 2022 16:44:35 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=HluYyemgF6OTvUcG9RmXZ6SYAjyLTkt6bUxkkfGU9jSsW7HMD5u6U0eXwmehzfX8KYEQlVeTh+I55hWXWFScT5Qd4IU45XsnJVHLJNgaoEZKfuwUPB24QSN2b3dnwd6z7E1yDZf/grwwc7zDeJ69hRcBTs+CPWJmz3X61nX+QU56zjdPB/1zN2dgbXhagOeOvELK3WXQifxPUqNCtFUgIxW1wsP3a3SqRAxLwRld867r7sdGEReiHAT9nr/+FupmY7EsauPpfhZOBl+aNPZbM9jKch3vRWokVjQGLw4cOWq+Sve4j3l5FA/Z6o31iZpx9odL6SToV5D/AURBhmDAnw== 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=5UFSEk5NWMUwkRVcsWr/X+7G5H1qm5MKYxeSEUpdMZ0=; b=YW2zG049/OTRPC29+x2FpFrah0kLbyBpL7xC1DjAbLUDYQcQZopWMz7KVOMF8EtBSptnW9jYUABrYcUgUJMumQI3ySB0j3A6VBRzrTsRoftNyJZoNniLCRjTJLbt8kXmMutCfZWMs5N7vnFp49imGIOR7t6Ic3m55gdg686B0+ycJoRyKJSpte388OWJgRCu2QGRY2ycN8AKXoeU0eKTRcRL5ZChd0iCbTT0u8LrNtqcM6C/e0qMZ1oh8WxaPpxFUdlL2Xm2Xtoj0gda0Mmi8xwkhknF9hC1DPEx3wcR+SKfkBNT2qIxsVtT/qGSZgfrRurSjikJsJGKOOspVmhZ3w== 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=5UFSEk5NWMUwkRVcsWr/X+7G5H1qm5MKYxeSEUpdMZ0=; b=Hqok8PXSLv0y+96GC+oTexZboVElzIPWZr7oLGMvROCs9aDYiGM5HL0NVJ+QSA1UgmJ+gp7K8HEEIIekz/cce336HP5yRtGSqXgzRyjaxiEPWFsHKQjXiV8sxpdEa1AXyKOsEqHqeUeoyYtgnqwxswvd9nI4yvlpb3NFQjO7DMo= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by SJ0PR10MB5788.namprd10.prod.outlook.com (2603:10b6:a03:3df::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5857.21; Tue, 29 Nov 2022 16:44:33 +0000 Received: from SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::a02:2ac8:ee3e:682]) by SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::a02:2ac8:ee3e:682%4]) with mapi id 15.20.5857.022; Tue, 29 Nov 2022 16:44:33 +0000 From: Liam Howlett To: "maple-tree@lists.infradead.org" , "linux-mm@kvack.org" , "linux-kernel@vger.kernel.org" , Andrew Morton CC: Liam Howlett , Liam Howlett Subject: [PATCH 25/43] mm: Switch vma_merge(), split_vma(), and __split_vma to vma iterator Thread-Topic: [PATCH 25/43] mm: Switch vma_merge(), split_vma(), and __split_vma to vma iterator Thread-Index: AQHZBBHaPR/BZRzVsUaIyw8MJ+G3Gg== Date: Tue, 29 Nov 2022 16:44:31 +0000 Message-ID: <20221129164352.3374638-26-Liam.Howlett@oracle.com> References: <20221129164352.3374638-1-Liam.Howlett@oracle.com> In-Reply-To: <20221129164352.3374638-1-Liam.Howlett@oracle.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-mailer: git-send-email 2.35.1 x-ms-publictraffictype: Email x-ms-traffictypediagnostic: SN6PR10MB3022:EE_|SJ0PR10MB5788:EE_ x-ms-office365-filtering-correlation-id: 12e7a744-1940-4ae3-2d5c-08dad228fe8d x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: IvnxrKiz3yi9L2JYAQVNUL5TbOW22YinFEy3/YcCqyY5HTmub14CJxMasGCxn9U/tRclfvXO6vlBbVFmeidJehBrNHJviffWwpb1GhAJdpx0/x5+aaAswRZRu0tX3/SMSJh702lFHAlyyIUm3dRfC01Z2DGuXyTsMjb/ULVnVjOor+cUyqfiNFTml0O1aRCRGpyRbezcMD6JSwjJOdfKIO3XGl+UetDAz1uNE6wVOUxWtQfHjKc7mKQL+GiIt3Z4WaVuA1XXe9bEYxUozKRWqQmpiJibBPRLyTnsF2dR3t/LC0VllM7mcYPQGNHsVJBgD5ntHaZt+410EQpqbt2TU655GkAkbA9/l2P5Bl7AkJImBC0cBPvNvc5bgt1nQANF2dINyX+BUhui7sVBD9dfnbAHIimizmUSgKNJMOThaOv43UD4D5nxX5m9j86HQ4RrOl4B4cpkVQVG6AIvm+ExFGSyn29SQcr7o5sC7XetDyZTQzuYzC92f/FBOPsZh8iGBZdIBSf2vn0HIBdkCnCV1ebEQuntweAmiGlTwvyoMVz914QhXNfinZ9TkSTQB5INvBB9pTrqGoEDHvLJwDQsGG19NcB5kSfeAdmwhT2VWWsOeXqHIEWWEh3Rk5hcz7aUhC/fWys6uL1R3rzZrmt2aRPH+npwE+5J7gCqnEcu8PX9V+KmJLh79SLnoR6IoiilpWQGKfsLIL5Ezc1D0RvnVQ== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SN6PR10MB3022.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230022)(366004)(346002)(396003)(136003)(39860400002)(376002)(451199015)(2906002)(30864003)(44832011)(41300700001)(76116006)(5660300002)(36756003)(54906003)(316002)(66446008)(110136005)(6486002)(91956017)(66946007)(71200400001)(4326008)(64756008)(8676002)(66556008)(8936002)(66476007)(6512007)(6506007)(26005)(2616005)(107886003)(186003)(1076003)(478600001)(38100700002)(83380400001)(38070700005)(122000001)(86362001);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?Q?GKzrrHH9I1CJ5/tz4CXtX7fxDEKWKulCtmUzebrJW2aK9+Yhg9HTLFIAuV?= =?iso-8859-1?Q?EJZ6Cy8YoRLYAWWaXG4XNCUOSVHVb4chu6UJaYxayLS7FDH6pJJewmz4aJ?= =?iso-8859-1?Q?pSKzcoCGMATRldHnmldlki/Q+z8T8+ciCeLGxwzHvnxzpzmol2xA/Nstju?= =?iso-8859-1?Q?fnCn39cWrnCGBt0gFRk6Bq+Dkkk0wX/2g48uF8FWuNW8nT/BXSA2lXjwbz?= =?iso-8859-1?Q?lOdrOZ4n7HwYsiZsENQyZHLTLHWrgwYRKGC2YBSdp33KmFT0H6BlYBorr1?= =?iso-8859-1?Q?1WzNc7a1W2TdraX61g+9xwpXlCnuerG6uZeReEOC/JNa/Bxj4IlN75pEe5?= =?iso-8859-1?Q?LQFPzP4rXchLtBmys1Nu/4a1EM+F9+VgZGlN25zwZh1Wui6BdLYJN7oARe?= =?iso-8859-1?Q?T1QR1USHfcWJ7kXExE6ybjJZPHhTtchOGLAkYOFIXrnNh8D03NcanHAMB3?= =?iso-8859-1?Q?ubSzDRPG6VC/C5Rw2qafxTA952HSExr4jA6qvMs4T4FJDaGVNgz41Ap9Zv?= =?iso-8859-1?Q?J4bHdMw7v8+8owRCQX+0C9Oj+Y753JUTw8FMG3VpmnSfw5g0Qlv9yPhHCh?= =?iso-8859-1?Q?MGR8t3E49itXu2TqpnZOSvOqAd3mKiOQWIBLb5uuLCeufkphe6qf0zW1iV?= =?iso-8859-1?Q?apmf6otxNgMMWGHHu7169hqElesBM7N9saekrs4DTA2uSPCo8kc1TV8Lsx?= =?iso-8859-1?Q?pb0P5ydZcFpJRhX18sJQPGZSxNsvZxY/YOjLh4VcDogUBjIZ2QIusWaStf?= =?iso-8859-1?Q?Drk62HY7uYAUJlBX7wdfDj/4WnLJq84AuFFbDB81Bj0Hl9eyQc72kOP6+8?= =?iso-8859-1?Q?bApqDQKtFoUgTMc5GTwo7dg2CJEhuk5gBh9rsXbIriZZuTUpiARbQQffWT?= =?iso-8859-1?Q?qL8XElXudX5KrwNlPjQYFPIPbYhN5RF1/QaYPgvW9tUO6ABINpR8P0lpl/?= =?iso-8859-1?Q?+n5O8n3EcGpTdns0tm2G1HHewu0ST/tsJWqsgBwpqcbqLbEnNDK+uyn9nS?= =?iso-8859-1?Q?njPTAz0jiYyGjS0+ePD0iivIxxLp+XDx0nOXCon7sLoGIvU0MWN1YJo/Wa?= =?iso-8859-1?Q?ZO52YlVNFBXHGXh7wDxJ+3SeWtTEnSJIjX0Bqv788fQeSvkb2uwaUVZETJ?= =?iso-8859-1?Q?u2eUDtISVUcmi2hDe3XaQFMoNB+gnh2Y9FyrVY2HDzLcJVc4ybMuZUZKvz?= =?iso-8859-1?Q?tTEyITqHJgCISWpz2r2vQ1j+Gq4hH9I1rmXsb9D1HGBHy30wFOwYrWlcyE?= =?iso-8859-1?Q?mXRClTreNdXlqceTnOu0EfCGdMVz9EKVuSb54F+pEmPTGSUAT/dsnBU0rG?= =?iso-8859-1?Q?ojVNiM1woA9miOTtMsUm00MPyT3wtf/upEOf9K5PviG22KPLIaY+0/RiFC?= =?iso-8859-1?Q?XEejZ3zepynQekfzx9Co87AyELjyyMzQ4GHVXSFedUm9QxmAZkx7mwhZsK?= =?iso-8859-1?Q?z9m6z1FFJ2PBp8rjKYcvzeQobu7XCDkMjxEV3UuRfhSuXej99G2XpOaagb?= =?iso-8859-1?Q?IqvC6EUfdEOpEpA0GWP1hA3CBikF5hbrx8IIGg1dfAbzbFDAbwk4ieRUAR?= =?iso-8859-1?Q?MQZhDoFseJ3Y9UXCuYUA5o2ro0QTORv1jjUZSTf2p0+DYGA96rgM2UDs1Q?= =?iso-8859-1?Q?v1F1l4Bpj9u7X4lneKVwcmZpBpA8hdJK9r1Ja33NDQ2EiwGAE8MnMjCQ?= =?iso-8859-1?Q?=3D=3D?= Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: Vu+v8nw/o98vt/kZP8aRWECIas99ApoTzb9PtVrPnJHPJu0KoOkdubuIPnyIWtEBfH+QLQ/exftHOHw1k0jGs9TrQ8JOJ8kqU7tv5RzuzzT+aqayQuKyvxovcxz4JmiZgzIiMo8348YYpvrpHbaAxumffTEY5UUHP6fY6R7Lv8VPOaWuXrzMP2x9W1AbeFM+uVuIX8STpazAo5SDV5pQnS37KBxOcs+TLBjKhD/sP5N4jEHh/LhqT1ydT9nWkyzRTz++786Pq1Ar2llFc5lfulPFCFfb221wkfk7naMNs09RvSnbtEFYyU52rOvxWsr4FFr5R+H+HSjj9rppYS7VewzQHYmE4ZUAW4TaAmf/W3E4TMtX2F+q9wgSYH2dzMBB/UqnKfJK7kN5s2gsMTy3dh0r+Oi/EL+ElbZRwqk2zGVhwgn1S3plb7S1sSEf1iwtxpA41XsVzHUTZ3Em5gtdzLOyBcGw40esyPza76pLbmIpTuYuqBhc1Bvm85HZpBsg+nhp2S94bI5KoIFz1qoavuuWwvMXqvPDmCpQlTC8GoE/sSflwRIXph0KPlJPqPGS62kS0juk72b/U+F/KzACPBQi94pYiMWBWdw+r24uqHuaxhbgqrevK8KxaNKqnIJjCRj+qLMabKuru47UI+1Aa26UkASdVISQLDbUk4vuIqevb54yv518Q1FCfzJo9XidCntAClAEiywfdEGP3fdG22Yk7gNJrAR2vGFd6ighZboEFrONg6/LfQhM1ncd8ABXGDZLMNHtXSqPAkUBBzZPIZYxbmXHttru1yXctaAQQbUmMHFMHsbfo4dlSXRTDCnUg44OEBVhlrFLrC5VgC+MCjtou7esrARnBdlFW97+ODVe/fatlbo+9GGNF/M/r38Me3FKuN378SzeaavQfWBG7w== X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: SN6PR10MB3022.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 12e7a744-1940-4ae3-2d5c-08dad228fe8d X-MS-Exchange-CrossTenant-originalarrivaltime: 29 Nov 2022 16:44:31.5662 (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: QXNhFbQTWHyk6wWyRr20MTLNmkUxL2saLXAr63Zi6riso8F0q9sNEHPiTU2tsJhQjgst2P7SvUxxAUhqaCpUBA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR10MB5788 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.219,Aquarius:18.0.895,Hydra:6.0.545,FMLib:17.11.122.1 definitions=2022-11-29_11,2022-11-29_01,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 bulkscore=0 suspectscore=0 phishscore=0 mlxscore=0 spamscore=0 adultscore=0 malwarescore=0 mlxlogscore=999 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2210170000 definitions=main-2211290093 X-Proofpoint-GUID: rKJImQPsKAfFWb9N5HwWw4g7x5vJ5MJ1 X-Proofpoint-ORIG-GUID: rKJImQPsKAfFWb9N5HwWw4g7x5vJ5MJ1 Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" From: "Liam R. Howlett" Drop the vmi_* functions and transition all users to use the vma iterator directly. Signed-off-by: Liam R. Howlett --- fs/userfaultfd.c | 14 ++++---- include/linux/mm.h | 16 +++------- mm/madvise.c | 6 ++-- mm/mempolicy.c | 6 ++-- mm/mlock.c | 6 ++-- mm/mmap.c | 79 +++++++++++++--------------------------------- mm/mprotect.c | 6 ++-- mm/mremap.c | 2 +- 8 files changed, 47 insertions(+), 88 deletions(-) diff --git a/fs/userfaultfd.c b/fs/userfaultfd.c index b3249388696a..e60f86d6b91c 100644 --- a/fs/userfaultfd.c +++ b/fs/userfaultfd.c @@ -883,7 +883,7 @@ static int userfaultfd_release(struct inode *inode, str= uct file *file) continue; } new_flags =3D vma->vm_flags & ~__VM_UFFD_FLAGS; - prev =3D vmi_vma_merge(&vmi, mm, prev, vma->vm_start, vma->vm_end, + prev =3D vma_merge(&vmi, mm, prev, vma->vm_start, vma->vm_end, new_flags, vma->anon_vma, vma->vm_file, vma->vm_pgoff, vma_policy(vma), @@ -1426,7 +1426,7 @@ static int userfaultfd_register(struct userfaultfd_ct= x *ctx, vma_end =3D min(end, vma->vm_end); =20 new_flags =3D (vma->vm_flags & ~__VM_UFFD_FLAGS) | vm_flags; - prev =3D vmi_vma_merge(&vmi, mm, prev, start, vma_end, new_flags, + prev =3D vma_merge(&vmi, mm, prev, start, vma_end, new_flags, vma->anon_vma, vma->vm_file, vma->vm_pgoff, vma_policy(vma), ((struct vm_userfaultfd_ctx){ ctx }), @@ -1437,12 +1437,12 @@ static int userfaultfd_register(struct userfaultfd_= ctx *ctx, goto next; } if (vma->vm_start < start) { - ret =3D vmi_split_vma(&vmi, mm, vma, start, 1); + ret =3D split_vma(&vmi, vma, start, 1); if (ret) break; } if (vma->vm_end > end) { - ret =3D vmi_split_vma(&vmi, mm, vma, end, 0); + ret =3D split_vma(&vmi, vma, end, 0); if (ret) break; } @@ -1606,7 +1606,7 @@ static int userfaultfd_unregister(struct userfaultfd_= ctx *ctx, uffd_wp_range(mm, vma, start, vma_end - start, false); =20 new_flags =3D vma->vm_flags & ~__VM_UFFD_FLAGS; - prev =3D vmi_vma_merge(&vmi, mm, prev, start, vma_end, new_flags, + prev =3D vma_merge(&vmi, mm, prev, start, vma_end, new_flags, vma->anon_vma, vma->vm_file, vma->vm_pgoff, vma_policy(vma), NULL_VM_UFFD_CTX, anon_vma_name(vma)); @@ -1615,13 +1615,13 @@ static int userfaultfd_unregister(struct userfaultf= d_ctx *ctx, goto next; } if (vma->vm_start < start) { - ret =3D vmi_split_vma(&vmi, mm, vma, start, 1); + ret =3D split_vma(&vmi, vma, start, 1); if (ret) break; } if (vma->vm_end > end) { vma_iter_set(&vmi, vma->vm_end); - ret =3D vmi_split_vma(&vmi, mm, vma, end, 0); + ret =3D split_vma(&vmi, vma, end, 0); if (ret) break; } diff --git a/include/linux/mm.h b/include/linux/mm.h index 17623a774e02..2fa8aae4c4f2 100644 --- a/include/linux/mm.h +++ b/include/linux/mm.h @@ -2700,22 +2700,16 @@ static inline int vma_adjust(struct vm_area_struct = *vma, unsigned long start, { return __vma_adjust(vma, start, end, pgoff, insert, NULL); } -extern struct vm_area_struct *vma_merge(struct mm_struct *, - struct vm_area_struct *prev, unsigned long addr, unsigned long end, - unsigned long vm_flags, struct anon_vma *, struct file *, pgoff_t, - struct mempolicy *, struct vm_userfaultfd_ctx, struct anon_vma_name *); -extern struct vm_area_struct *vmi_vma_merge(struct vma_iterator *vmi, +extern struct vm_area_struct *vma_merge(struct vma_iterator *vmi, struct mm_struct *, struct vm_area_struct *prev, unsigned long addr, unsigned long end, unsigned long vm_flags, struct anon_vma *, struct file *, pgoff_t, struct mempolicy *, struct vm_userfaultfd_ctx, struct anon_vma_name *); extern struct anon_vma *find_mergeable_anon_vma(struct vm_area_struct *); -extern int vmi__split_vma(struct vma_iterator *vmi, struct mm_struct *, - struct vm_area_struct *, unsigned long addr, int new_below); -extern int split_vma(struct mm_struct *, struct vm_area_struct *, - unsigned long addr, int new_below); -extern int vmi_split_vma(struct vma_iterator *vmi, struct mm_struct *, - struct vm_area_struct *, unsigned long addr, int new_below); +extern int __split_vma(struct vma_iterator *vmi, struct vm_area_struct *, + unsigned long addr, int new_below); +extern int split_vma(struct vma_iterator *vmi, struct vm_area_struct *, + unsigned long addr, int new_below); extern int insert_vm_struct(struct mm_struct *, struct vm_area_struct *); extern void unlink_file_vma(struct vm_area_struct *); extern struct vm_area_struct *copy_vma(struct vm_area_struct **, diff --git a/mm/madvise.c b/mm/madvise.c index 2beced2d5eee..bf23d64515e1 100644 --- a/mm/madvise.c +++ b/mm/madvise.c @@ -153,7 +153,7 @@ static int madvise_update_vma(struct vm_area_struct *vm= a, } =20 pgoff =3D vma->vm_pgoff + ((start - vma->vm_start) >> PAGE_SHIFT); - *prev =3D vmi_vma_merge(&vmi, mm, *prev, start, end, new_flags, + *prev =3D vma_merge(&vmi, mm, *prev, start, end, new_flags, vma->anon_vma, vma->vm_file, pgoff, vma_policy(vma), vma->vm_userfaultfd_ctx, anon_name); if (*prev) { @@ -166,7 +166,7 @@ static int madvise_update_vma(struct vm_area_struct *vm= a, if (start !=3D vma->vm_start) { if (unlikely(mm->map_count >=3D sysctl_max_map_count)) return -ENOMEM; - error =3D vmi__split_vma(&vmi, mm, vma, start, 1); + error =3D __split_vma(&vmi, vma, start, 1); if (error) return error; } @@ -174,7 +174,7 @@ static int madvise_update_vma(struct vm_area_struct *vm= a, if (end !=3D vma->vm_end) { if (unlikely(mm->map_count >=3D sysctl_max_map_count)) return -ENOMEM; - error =3D vmi__split_vma(&vmi, mm, vma, end, 0); + error =3D __split_vma(&vmi, vma, end, 0); if (error) return error; } diff --git a/mm/mempolicy.c b/mm/mempolicy.c index 5bf4ab8eee49..ee9751323c59 100644 --- a/mm/mempolicy.c +++ b/mm/mempolicy.c @@ -810,7 +810,7 @@ static int mbind_range(struct mm_struct *mm, unsigned l= ong start, =20 pgoff =3D vma->vm_pgoff + ((vmstart - vma->vm_start) >> PAGE_SHIFT); - prev =3D vmi_vma_merge(&vmi, mm, prev, vmstart, vmend, vma->vm_flags, + prev =3D vma_merge(&vmi, mm, prev, vmstart, vmend, vma->vm_flags, vma->anon_vma, vma->vm_file, pgoff, new_pol, vma->vm_userfaultfd_ctx, anon_vma_name(vma)); @@ -819,12 +819,12 @@ static int mbind_range(struct mm_struct *mm, unsigned= long start, goto replace; } if (vma->vm_start !=3D vmstart) { - err =3D vmi_split_vma(&vmi, vma->vm_mm, vma, vmstart, 1); + err =3D split_vma(&vmi, vma, vmstart, 1); if (err) goto out; } if (vma->vm_end !=3D vmend) { - err =3D vmi_split_vma(&vmi, vma->vm_mm, vma, vmend, 0); + err =3D split_vma(&vmi, vma, vmend, 0); if (err) goto out; } diff --git a/mm/mlock.c b/mm/mlock.c index f06b02b631b5..393cddee2f06 100644 --- a/mm/mlock.c +++ b/mm/mlock.c @@ -418,7 +418,7 @@ static int mlock_fixup(struct vma_iterator *vmi, struct= vm_area_struct *vma, goto out; =20 pgoff =3D vma->vm_pgoff + ((start - vma->vm_start) >> PAGE_SHIFT); - *prev =3D vmi_vma_merge(vmi, mm, *prev, start, end, newflags, + *prev =3D vma_merge(vmi, mm, *prev, start, end, newflags, vma->anon_vma, vma->vm_file, pgoff, vma_policy(vma), vma->vm_userfaultfd_ctx, anon_vma_name(vma)); if (*prev) { @@ -427,13 +427,13 @@ static int mlock_fixup(struct vma_iterator *vmi, stru= ct vm_area_struct *vma, } =20 if (start !=3D vma->vm_start) { - ret =3D vmi_split_vma(vmi, mm, vma, start, 1); + ret =3D split_vma(vmi, vma, start, 1); if (ret) goto out; } =20 if (end !=3D vma->vm_end) { - ret =3D vmi_split_vma(vmi, mm, vma, end, 0); + ret =3D split_vma(vmi, vma, end, 0); if (ret) goto out; } diff --git a/mm/mmap.c b/mm/mmap.c index c22365727ab4..0c194a2a568d 100644 --- a/mm/mmap.c +++ b/mm/mmap.c @@ -1070,7 +1070,7 @@ can_vma_merge_after(struct vm_area_struct *vma, unsig= ned long vm_flags, * parameter) may establish ptes with the wrong permissions of NNNN * instead of the right permissions of XXXX. */ -struct vm_area_struct *vma_merge(struct mm_struct *mm, +struct vm_area_struct *vma_merge(struct vma_iterator *vmi, struct mm_struc= t *mm, struct vm_area_struct *prev, unsigned long addr, unsigned long end, unsigned long vm_flags, struct anon_vma *anon_vma, struct file *file, @@ -1079,7 +1079,7 @@ struct vm_area_struct *vma_merge(struct mm_struct *mm, struct anon_vma_name *anon_name) { pgoff_t pglen =3D (end - addr) >> PAGE_SHIFT; - struct vm_area_struct *mid, *next, *res; + struct vm_area_struct *mid, *next, *res =3D NULL; int err =3D -1; bool merge_prev =3D false; bool merge_next =3D false; @@ -1145,26 +1145,11 @@ struct vm_area_struct *vma_merge(struct mm_struct *= mm, if (err) return NULL; khugepaged_enter_vma(res, vm_flags); - return res; -} =20 -struct vm_area_struct *vmi_vma_merge(struct vma_iterator *vmi, - struct mm_struct *mm, - struct vm_area_struct *prev, unsigned long addr, - unsigned long end, unsigned long vm_flags, - struct anon_vma *anon_vma, struct file *file, - pgoff_t pgoff, struct mempolicy *policy, - struct vm_userfaultfd_ctx vm_userfaultfd_ctx, - struct anon_vma_name *anon_name) -{ - struct vm_area_struct *tmp; - - tmp =3D vma_merge(mm, prev, addr, end, vm_flags, anon_vma, file, pgoff, - policy, vm_userfaultfd_ctx, anon_name); - if (tmp) + if (res) vma_iter_set(vmi, end); =20 - return tmp; + return res; } =20 /* @@ -2287,12 +2272,14 @@ static void unmap_region(struct mm_struct *mm, stru= ct maple_tree *mt, * __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. */ -int __split_vma(struct mm_struct *mm, struct vm_area_struct *vma, +int __split_vma(struct vma_iterator *vmi, struct vm_area_struct *vma, unsigned long addr, int new_below) { struct vm_area_struct *new; int err; - validate_mm_mt(mm); + unsigned long end =3D vma->vm_end; + + validate_mm_mt(vma->vm_mm); =20 if (vma->vm_ops && vma->vm_ops->may_split) { err =3D vma->vm_ops->may_split(vma, addr); @@ -2332,8 +2319,10 @@ int __split_vma(struct mm_struct *mm, struct vm_area= _struct *vma, err =3D vma_adjust(vma, vma->vm_start, addr, vma->vm_pgoff, new); =20 /* Success. */ - if (!err) + if (!err) { + vma_iter_set(vmi, end); return 0; + } =20 /* Avoid vm accounting in close() operation */ new->vm_start =3D new->vm_end; @@ -2348,46 +2337,21 @@ int __split_vma(struct mm_struct *mm, struct vm_are= a_struct *vma, mpol_put(vma_policy(new)); out_free_vma: vm_area_free(new); - validate_mm_mt(mm); + validate_mm_mt(vma->vm_mm); return err; } -int vmi__split_vma(struct vma_iterator *vmi, struct mm_struct *mm, - struct vm_area_struct *vma, unsigned long addr, int new_below) -{ - int ret; - unsigned long end =3D vma->vm_end; - - ret =3D __split_vma(mm, vma, addr, new_below); - if (!ret) - vma_iter_set(vmi, end); - - return ret; -} =20 /* * Split a vma into two pieces at address 'addr', a new vma is allocated * either for the first part or the tail. */ -int split_vma(struct mm_struct *mm, struct vm_area_struct *vma, +int split_vma(struct vma_iterator *vmi, struct vm_area_struct *vma, unsigned long addr, int new_below) { - if (mm->map_count >=3D sysctl_max_map_count) + if (vma->vm_mm->map_count >=3D sysctl_max_map_count) return -ENOMEM; =20 - return __split_vma(mm, vma, addr, new_below); -} - -int vmi_split_vma(struct vma_iterator *vmi, struct mm_struct *mm, - struct vm_area_struct *vma, unsigned long addr, int new_below) -{ - int ret; - unsigned long end =3D vma->vm_end; - - ret =3D split_vma(mm, vma, addr, new_below); - if (!ret) - vma_iter_set(vmi, end); - - return ret; + return __split_vma(vmi, vma, addr, new_below); } =20 static inline int munmap_sidetree(struct vm_area_struct *vma, @@ -2447,7 +2411,7 @@ do_vmi_align_munmap(struct vma_iterator *vmi, struct = vm_area_struct *vma, if (end < vma->vm_end && mm->map_count >=3D sysctl_max_map_count) goto map_count_exceeded; =20 - error =3D vmi__split_vma(vmi, mm, vma, start, 0); + error =3D __split_vma(vmi, vma, start, 0); if (error) goto start_split_failed; =20 @@ -2468,7 +2432,7 @@ do_vmi_align_munmap(struct vma_iterator *vmi, struct = vm_area_struct *vma, if (next->vm_end > end) { struct vm_area_struct *split; =20 - error =3D vmi__split_vma(vmi, mm, next, end, 1); + error =3D __split_vma(vmi, next, end, 1); if (error) goto end_split_failed; =20 @@ -2749,9 +2713,10 @@ unsigned long mmap_region(struct file *file, unsigne= d long addr, * vma again as we may succeed this time. */ if (unlikely(vm_flags !=3D vma->vm_flags && prev)) { - merge =3D vmi_vma_merge(&vmi, mm, prev, vma->vm_start, - vma->vm_end, vma->vm_flags, NULL, vma->vm_file, - vma->vm_pgoff, NULL, NULL_VM_UFFD_CTX, NULL); + merge =3D vma_merge(&vmi, mm, prev, vma->vm_start, + vma->vm_end, vma->vm_flags, NULL, + vma->vm_file, vma->vm_pgoff, NULL, + NULL_VM_UFFD_CTX, NULL); if (merge) { /* * ->mmap() can change vma->vm_file and fput @@ -3303,7 +3268,7 @@ struct vm_area_struct *copy_vma(struct vm_area_struct= **vmap, if (new_vma && new_vma->vm_start < addr + len) return NULL; /* should never get here */ =20 - new_vma =3D vmi_vma_merge(&vmi, mm, prev, addr, addr + len, vma->vm_flags, + new_vma =3D vma_merge(&vmi, mm, prev, addr, addr + len, vma->vm_flags, vma->anon_vma, vma->vm_file, pgoff, vma_policy(vma), vma->vm_userfaultfd_ctx, anon_vma_name(vma)); if (new_vma) { diff --git a/mm/mprotect.c b/mm/mprotect.c index 994e8d991e78..bd5c04974bbc 100644 --- a/mm/mprotect.c +++ b/mm/mprotect.c @@ -602,7 +602,7 @@ mprotect_fixup(struct vma_iterator *vmi, struct mmu_gat= her *tlb, * First try to merge with previous and/or next vma. */ pgoff =3D vma->vm_pgoff + ((start - vma->vm_start) >> PAGE_SHIFT); - *pprev =3D vmi_vma_merge(vmi, mm, *pprev, start, end, newflags, + *pprev =3D vma_merge(vmi, mm, *pprev, start, end, newflags, vma->anon_vma, vma->vm_file, pgoff, vma_policy(vma), vma->vm_userfaultfd_ctx, anon_vma_name(vma)); if (*pprev) { @@ -614,13 +614,13 @@ mprotect_fixup(struct vma_iterator *vmi, struct mmu_g= ather *tlb, *pprev =3D vma; =20 if (start !=3D vma->vm_start) { - error =3D vmi_split_vma(vmi, mm, vma, start, 1); + error =3D split_vma(vmi, vma, start, 1); if (error) goto fail; } =20 if (end !=3D vma->vm_end) { - error =3D vmi_split_vma(vmi, mm, vma, end, 0); + error =3D split_vma(vmi, vma, end, 0); if (error) goto fail; } diff --git a/mm/mremap.c b/mm/mremap.c index 7302a71058ce..cbafea7fe895 100644 --- a/mm/mremap.c +++ b/mm/mremap.c @@ -1033,7 +1033,7 @@ SYSCALL_DEFINE5(mremap, unsigned long, addr, unsigned= long, old_len, * with the next vma if it becomes adjacent to the expanded vma and * otherwise compatible. */ - vma =3D vmi_vma_merge(&vmi, mm, vma, extension_start, + vma =3D vma_merge(&vmi, mm, vma, extension_start, extension_end, vma->vm_flags, vma->anon_vma, vma->vm_file, extension_pgoff, vma_policy(vma), vma->vm_userfaultfd_ctx, anon_vma_name(vma)); --=20 2.35.1 From nobody Fri Sep 19 02:32:03 2025 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 1A537C4167B for ; Tue, 29 Nov 2022 16:46:37 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S236250AbiK2Qqe (ORCPT ); Tue, 29 Nov 2022 11:46:34 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:42238 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S236140AbiK2QpW (ORCPT ); Tue, 29 Nov 2022 11:45:22 -0500 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 336FE4A07D for ; Tue, 29 Nov 2022 08:44:45 -0800 (PST) Received: from pps.filterd (m0246629.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 2ATGPo8k012293; Tue, 29 Nov 2022 16:44:37 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : references : in-reply-to : content-type : content-transfer-encoding : mime-version; s=corp-2022-7-12; bh=iX98eDd1yhxIyFEsnty6d6K/n9n4hTMHagteSF399+w=; b=EamjOWs0oFlHrO8kFZp3ZVCG7byhMc+ElsvlDDCtqJeh5OM9s18Eyy/JuryxCdcFmykh Mr1Mv/C20psMRnTbo7gV0wtDx6qjVEy4X4IQpvlBawlWm5W9dHMhX3xvNINxN9nE4ReT agXt2R4ksMeNi9BozRC89k29UENWRlXq7qHfrVYIr4aIZT9NreN2FKPYoNfP3cQaYNbq cYWLQJwvCp8Jk3qTG9pOd0tgmdDclINYyVbprPxs3vEcaMQe9D9YsxEBATVpuhVdc1ne czr5D0XY+PVUD+Uu3itijopp8HMrqr0el9d9Q+Vy++zQtejxosAKPXYcE/TMaqPI4tlt +w== Received: from phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta02.appoci.oracle.com [147.154.114.232]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3m4aemdn9s-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 29 Nov 2022 16:44:36 +0000 Received: from pps.filterd (phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (8.17.1.5/8.17.1.5) with ESMTP id 2ATFhsPt027963; Tue, 29 Nov 2022 16:44:36 GMT Received: from nam11-co1-obe.outbound.protection.outlook.com (mail-co1nam11lp2169.outbound.protection.outlook.com [104.47.56.169]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 3m3987f2au-15 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 29 Nov 2022 16:44:36 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=lY7dvvPehCg4JkfibMaK5DUi+Wb/XkUl3487wQ15WFw4zKHi8FFCMrTQKUhu/V3l+CvAd2u3GG6iGfqg2v4OvpiVy/f9wN6G3PgZVveLDzlOC9DdeeTMqkE1/lRaMGz7ivhXFj9AImtZbbrYa1McUPd//aIBrUwtm306HkNb5tNUVZ6Hs39UKfTt5b5Q9d8LKT3Fpd/o8OAfC1e3AZGQ07XWdDGrZcIPShBBikrvh4NOWGlmjZk6XnBc8C36t4foCpvOs35Fs5a54mfUQNK+jxIKlZJwlyqT+b3JKubAAK0culVa3jrsIJBJmlyzM2Z8BUtcyrcmGL0IF2T6sCQBFQ== 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=iX98eDd1yhxIyFEsnty6d6K/n9n4hTMHagteSF399+w=; b=LyAhYKUT3FB/fmslCRfmM8EMGkJr7pFeFGhBh/7x3B3jDstjOpRjbGOmLowRrEJrj4WvllxizxkYKkRPxSsEcvyKLHF4qt3mJh7bFoTZ6iKY+jm+X6UIzBYUOoB0OwaXwbzGqDDKfKwpWddlHLdlbqxy5mbetkljlui4FrlmgimGBJYC4g4k9O1xEdCsAH4JTK7o1vfrFWnV4s+0fsmUp/uvro/VGO+MmjPgygDuGpEfdFgapTGpL4USx3sQxlWUGXax/yf5GDDhlVGqbDcEyAofUDrpu/YrPdbRGr9Rs6MAyomE6SqJymmG/Rd260JxzxrOSXLM65EYqTCiof4Yyw== 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=iX98eDd1yhxIyFEsnty6d6K/n9n4hTMHagteSF399+w=; b=hsVZ5lTQTf/QG2Ix0232AqM/AnPvoi4XHMm/8G2bTOuS4LoYo23WkeH1p3ne8sUXxVDMy7FhN3bAM5kxMyOhs/xWCDOzpdSErCV+mPA//X0374gQcbS5dSrt+LdLIRg7MkH3zauAsFPZS2uredh/yUCRX/kqzLpeg3yC+S86Xlk= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by SJ0PR10MB5788.namprd10.prod.outlook.com (2603:10b6:a03:3df::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5857.21; Tue, 29 Nov 2022 16:44:34 +0000 Received: from SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::a02:2ac8:ee3e:682]) by SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::a02:2ac8:ee3e:682%4]) with mapi id 15.20.5857.022; Tue, 29 Nov 2022 16:44:34 +0000 From: Liam Howlett To: "maple-tree@lists.infradead.org" , "linux-mm@kvack.org" , "linux-kernel@vger.kernel.org" , Andrew Morton CC: Liam Howlett , Liam Howlett Subject: [PATCH 26/43] mmap: Convert __vma_adjust() to use vma iterator Thread-Topic: [PATCH 26/43] mmap: Convert __vma_adjust() to use vma iterator Thread-Index: AQHZBBHbBu3yBS2EGEWq7dlxvaSQLQ== Date: Tue, 29 Nov 2022 16:44:32 +0000 Message-ID: <20221129164352.3374638-27-Liam.Howlett@oracle.com> References: <20221129164352.3374638-1-Liam.Howlett@oracle.com> In-Reply-To: <20221129164352.3374638-1-Liam.Howlett@oracle.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-mailer: git-send-email 2.35.1 x-ms-publictraffictype: Email x-ms-traffictypediagnostic: SN6PR10MB3022:EE_|SJ0PR10MB5788:EE_ x-ms-office365-filtering-correlation-id: 2cce1989-d201-4721-62d9-08dad228fee5 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: ipPkMT8BSeOt9n36wP45j8aUWlWU0bIliXgSxHttznuhL0QcEEifMczT7fwska0/byoFODizbXqKOLeKHI1KlCodqoGaQfnJOdprsLlQo0UuHeDZzU8N7BIAUWDFecmP7wsPce7pNub13KdEHCNjypdG/n+SxfcJ+rfalLRRYgrGosg26RzWlNRZ62Sd8d8bfTY9V8ggrU4DWW+JeTEbO6UkoAzcw8WJhDBU15akDDkvcy1wUZ+RsbIjrHU4jzcdKKNT3Nm/ZphmNbabb3Nw3va8QKwpBGdu0+UyMnbToFE1k40i5OS/DaRoEMM4b4Taiuq89sD506+ABcE+LzJzGe44OpZmRRNev5XLLS/CVmXDK5nlGstu+fvlNxKH3D2jm6bpf8h6+VFtlVNq/Gjp46S060a8nNEbUIgbdNOIz/32/2nYkkLdFebrRhoJzKkYDffdx7cC+q35IqccecAcCC0r2oRtOxU32Gy4+1NeN+EgJCEti/BBdxZeP+pwFT2JGOAcF4T5BEfqaTpmEyAS9nsu2sDx2yakS+wwadErE0ush+EtSNjrL+FTFmIX/iaEST4ICKkhEZ4tigjHTd9dM85W1h19aejSD5T8739aoYg+LzrfLwa5sjZ/8TzaCuc4Wtsi2SFDSZs/U+h+h/mgS0ViEEgH4iRJUdBsKoyq6VBbibTf2TtTJNSN1cCtjBB6/EU12WEcO+2HjlWkEF+72w== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SN6PR10MB3022.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230022)(366004)(346002)(396003)(136003)(39860400002)(376002)(451199015)(2906002)(44832011)(41300700001)(76116006)(5660300002)(36756003)(54906003)(316002)(66446008)(110136005)(6486002)(91956017)(66946007)(71200400001)(4326008)(64756008)(8676002)(66556008)(8936002)(66476007)(6512007)(6506007)(26005)(2616005)(107886003)(186003)(1076003)(478600001)(38100700002)(83380400001)(38070700005)(122000001)(86362001);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?Q?C/RmGgX+0gsESoKiRIrvCBqOO15Jy13TX12wSdHTBhR+Kx4XLa8Oanc7Dt?= =?iso-8859-1?Q?nrzG+KCU7gMdemF8I0qpO5Ve5sjqeXIIBuAUfU19U9ZLwkv88KO7BrqTPn?= =?iso-8859-1?Q?X3hdT4U47OaK6gyyTeBHbSWPOl7yviLrgC2Pmm8dqW3sKVOQrizD9U7t5a?= =?iso-8859-1?Q?WhN28i60TUyLTBJTj/cYPd2aXVuhrjP8yKa5cfifTo4WtUM2uw2sK+z8g8?= =?iso-8859-1?Q?En+klg4CC+G4UOt43dbNvUA8XrgRrbh+16S1x0liwEvjm9IOINdcVZgmwa?= =?iso-8859-1?Q?gGNXP+3ZdPPsxjCCR5Gu6DRcl3WeIL+P2FoV+Q6BlBusA6pg/U2hUT1HkT?= =?iso-8859-1?Q?iqqFoN6HhIKBWAC9a7mP+yZEkkrgYsQlQ+xjd5lFwNyVVITxfjYomtQkq+?= =?iso-8859-1?Q?Xew6ea5427nBATBdHRLu8pz8OofM9XOicDZr+EURijGuAsMSphXYd1dAeb?= =?iso-8859-1?Q?VCIZdRC1SECE+cN8fwJ+gBJupN20D2scacvPbMpWYA2dvluXu0NZ+cWvYL?= =?iso-8859-1?Q?LiGaSz1x/cUu26ECNJIeGdF2NNNHiSNNCIkdTQfrBCbOtL/7UwbvukQ4I0?= =?iso-8859-1?Q?QglHvv5dvuOIMUbXkSS4H7qyQNyOOEnJhlTpx+fecBWbZzY7isFBIzj2QH?= =?iso-8859-1?Q?JB4Kw6xZcVjN+AndNkb9dEg6j+OsGrtct384sZigfxWUIOz9UyrCkCaD6q?= =?iso-8859-1?Q?uiHvW98S/WZSoBTUs9buQ9xu4Z2wXl6wuf7QlOyBKP369uQNXjJn6JS5tl?= =?iso-8859-1?Q?Mwd8IRKhqs/ke9UJAd513VN8w8yx4KrdQdzz6tJQ3e+tctgmzbGpsO6x0T?= =?iso-8859-1?Q?Mgu3Y1JTYZJwi/iTSrWmr9441vJkk3alt8oRutspsbrXKOPKTOkQVhvYz9?= =?iso-8859-1?Q?e2E2sEaX9cIj+mhbmiNp/XfK16ZuuRBR8orWIs9G+rKKM7ofGWMl+09SEi?= =?iso-8859-1?Q?r9I6RJf5BfpaC6uarSRwNZKtAIwqHmTZQcWwARxhHCGT43i50Hx83SoZ9d?= =?iso-8859-1?Q?wiM5m9QEFS3f33Fmmd2R7xwQYRq/nCptKRkqZdAuPeYk81SMv8z4udzTtU?= =?iso-8859-1?Q?yu7LL8dt7pPdR3cq27lq2U4ZuwOPsJi2tn1XCPECYwN8vPCdBD/Sp58TWZ?= =?iso-8859-1?Q?4OSc+qj8/BZWD43nbUaApsJgfRJQzmfF4Y6ANiiov2Ck4xHAFS1PrW3LP9?= =?iso-8859-1?Q?ZuKWnS8RwLIn3XpKDeej7VGuIlXWfyIZOETWoz0gpjsOck9kxmuQqgzXQN?= =?iso-8859-1?Q?95MwhKLyo/MmLblp0MkmShgAHTs9jVRODUk2hcbd4srkN93dJY6A9jHgky?= =?iso-8859-1?Q?sM6bdJ3SDV/MEa0imJUhWHFcLsFAs7SqKVe10i6eux78yP54rd0X/ztSCP?= =?iso-8859-1?Q?4p3++IV3I5z1V6hedmAaOAfJXBxAm/SJUKJvxlHdQIg17OZecLgjJOHCmj?= =?iso-8859-1?Q?SxXgsStVN6C9PN1lKKZahPqHbYuYpKDmfVjzLP9dyqWH+rz1kpx83znoc9?= =?iso-8859-1?Q?hI2O+6/VmHXTu3V4PBEm5HAsdxCoVjzHgqjlE96kEVXIH8rJG9ymSBXz/E?= =?iso-8859-1?Q?wnxiMmrnYhWSYwHkX5ZEcXymjmvl0ztqR6Dog6q0ttEeQaupS5+lS1lRd3?= =?iso-8859-1?Q?Ca901MVr4fnqAUsVJhCjqn7IpxaIQIUg3LBUTUXeyB1s6xQ3PMALHIjw?= =?iso-8859-1?Q?=3D=3D?= Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: j2De7VhoLEUG7nB7lWVEz7CeTgB/YHV4kw1c6naY5EFOWkVC/93CxUaFhB56o/Ar2QMue665Ua+eNo3YSZFJISKzxEcGPCivAGiyH0ASlPPDONbmdnUI4S6gwHb18D/IQOGBcZGNV0jq6737HHPVcLqz+PBEIlN+dKvM7vg70RkqwIQc65pP81PAoLeSn1KP32ZqXmx0Jb+lSaMqKefIjXJX2cL5p2as651RRhjahocbASNLyY1tMfKTPHn9bcDoX9Q3t/Lh6jlQ4dP24N3fuI2WHWHzaq6dvAP4wA6Sdip+yXRul259IvUcZ1fnR4opodE7aoIo83D/fTOBxDdhQ6XAq6Y4Q1c0xmZ0zUqfazhB0EToT7svKI7xl+6QIyLUMax//wshWaVF2xoNGSYtuhMKrrh0jDihSGA/NBliOAUFMH8L3XRflYGftzi06B14IRKW5XlsS8srVQtQ+Qtp3G8ph9T0GyTyuOrJu5T2WUWoPUBetdKWrnNnfCThi5J+Imcj8CRAs+oIksgSD6qX5Z4e82CsZ40cfO02m+9irotZl8YyO2J1s6G5ghHJDr6zwyWXsl3dz4vBdHqKm4sXTLwMMi+5K8ETFcxHIcoxNFuBU38gFpCjT0rp0M/WnMY+S2gm6MHmYr2n9ymjb5q1GHhq8M0iWHNyXoDVhyfSaEgS5IrmkiafayVpXm5rywDF4Ap5deIy7Yc5YO4r7RBuGqnrtOsceZwQwdHul4Mr3faLjc3QvjX3NgQvMgz9FIo6ejBaTt4TCo7R4ghk/irtfk8/tQ0d9EYee56RtNmOwRypfe+kCiSifLwz+mnJhki8xrktMsjjZuu/bQ3AdRkCos9+6TakfVDk1ywnHCMonjpDDpNy+w7xABW3fCdfAvzMszRDtYq1ADy7ZCwhY4eBow== X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: SN6PR10MB3022.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 2cce1989-d201-4721-62d9-08dad228fee5 X-MS-Exchange-CrossTenant-originalarrivaltime: 29 Nov 2022 16:44:32.0350 (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: I5CNUUWS1UxmdYqP4JzW49WZ7v92iaxbJD+Fxr5NJmPaCjCJ9KRlNSPxMgMf7N2O3N2X8nkfOZlXUHjSYpcC4Q== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR10MB5788 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.219,Aquarius:18.0.895,Hydra:6.0.545,FMLib:17.11.122.1 definitions=2022-11-29_11,2022-11-29_01,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 bulkscore=0 suspectscore=0 phishscore=0 mlxscore=0 spamscore=0 adultscore=0 malwarescore=0 mlxlogscore=999 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2210170000 definitions=main-2211290093 X-Proofpoint-ORIG-GUID: x-Ff6NPBMnOx2aj5y4LmrWcA7Er89BtQ X-Proofpoint-GUID: x-Ff6NPBMnOx2aj5y4LmrWcA7Er89BtQ Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" From: "Liam R. Howlett" Use the vma iterator internally for __vma_adjust(). Avoid using the maple tree interface directly for type safety. Signed-off-by: Liam R. Howlett --- include/linux/mm.h | 3 -- mm/mmap.c | 75 ++++++++-------------------------------------- 2 files changed, 13 insertions(+), 65 deletions(-) diff --git a/include/linux/mm.h b/include/linux/mm.h index 2fa8aae4c4f2..3649acb9b0fb 100644 --- a/include/linux/mm.h +++ b/include/linux/mm.h @@ -2717,9 +2717,6 @@ extern struct vm_area_struct *copy_vma(struct vm_area= _struct **, bool *need_rmap_locks); extern void exit_mmap(struct mm_struct *); =20 -void vma_mas_store(struct vm_area_struct *vma, struct ma_state *mas); -void vma_mas_remove(struct vm_area_struct *vma, struct ma_state *mas); - static inline int check_data_rlimit(unsigned long rlim, unsigned long new, unsigned long start, diff --git a/mm/mmap.c b/mm/mmap.c index 0c194a2a568d..71e8e9cfd704 100644 --- a/mm/mmap.c +++ b/mm/mmap.c @@ -492,56 +492,6 @@ static void __vma_link_file(struct vm_area_struct *vma, flush_dcache_mmap_unlock(mapping); } =20 -/* - * vma_mas_store() - Store a VMA in the maple tree. - * @vma: The vm_area_struct - * @mas: The maple state - * - * Efficient way to store a VMA in the maple tree when the @mas has already - * walked to the correct location. - * - * Note: the end address is inclusive in the maple tree. - */ -void vma_mas_store(struct vm_area_struct *vma, struct ma_state *mas) -{ - trace_vma_store(mas->tree, vma); - mas_set_range(mas, vma->vm_start, vma->vm_end - 1); - mas_store_prealloc(mas, vma); -} - -/* - * vma_mas_remove() - Remove a VMA from the maple tree. - * @vma: The vm_area_struct - * @mas: The maple state - * - * Efficient way to remove a VMA from the maple tree when the @mas has alr= eady - * been established and points to the correct location. - * Note: the end address is inclusive in the maple tree. - */ -void vma_mas_remove(struct vm_area_struct *vma, struct ma_state *mas) -{ - trace_vma_mas_szero(mas->tree, vma->vm_start, vma->vm_end - 1); - mas->index =3D vma->vm_start; - mas->last =3D vma->vm_end - 1; - mas_store_prealloc(mas, NULL); -} - -/* - * vma_mas_szero() - Set a given range to zero. Used when modifying a - * vm_area_struct start or end. - * - * @mm: The struct_mm - * @start: The start address to zero - * @end: The end address to zero. - */ -static inline void vma_mas_szero(struct ma_state *mas, unsigned long start, - unsigned long end) -{ - trace_vma_mas_szero(mas->tree, start, end - 1); - mas_set_range(mas, start, end - 1); - mas_store_prealloc(mas, NULL); -} - static int vma_link(struct mm_struct *mm, struct vm_area_struct *vma) { VMA_ITERATOR(vmi, mm, 0); @@ -701,7 +651,7 @@ int __vma_adjust(struct vm_area_struct *vma, unsigned l= ong start, bool vma_changed =3D false; long adjust_next =3D 0; int remove_next =3D 0; - MA_STATE(mas, &mm->mm_mt, 0, 0); + VMA_ITERATOR(vmi, mm, 0); struct vm_area_struct *exporter =3D NULL, *importer =3D NULL; =20 if (next && !insert) { @@ -786,7 +736,7 @@ int __vma_adjust(struct vm_area_struct *vma, unsigned l= ong start, } } =20 - if (mas_preallocate(&mas, vma, GFP_KERNEL)) + if (vma_iter_prealloc(&vmi, vma)) return -ENOMEM; =20 vma_adjust_trans_huge(orig_vma, start, end, adjust_next); @@ -832,7 +782,7 @@ int __vma_adjust(struct vm_area_struct *vma, unsigned l= ong start, if (start !=3D vma->vm_start) { if ((vma->vm_start < start) && (!insert || (insert->vm_end !=3D start))) { - vma_mas_szero(&mas, vma->vm_start, start); + vma_iter_clear(&vmi, vma->vm_start, start); VM_WARN_ON(insert && insert->vm_start > vma->vm_start); } else { vma_changed =3D true; @@ -842,8 +792,8 @@ int __vma_adjust(struct vm_area_struct *vma, unsigned l= ong start, if (end !=3D vma->vm_end) { if (vma->vm_end > end) { if (!insert || (insert->vm_start !=3D end)) { - vma_mas_szero(&mas, end, vma->vm_end); - mas_reset(&mas); + vma_iter_clear(&vmi, end, vma->vm_end); + vma_iter_set(&vmi, vma->vm_end); VM_WARN_ON(insert && insert->vm_end < vma->vm_end); } @@ -854,13 +804,13 @@ int __vma_adjust(struct vm_area_struct *vma, unsigned= long start, } =20 if (vma_changed) - vma_mas_store(vma, &mas); + vma_iter_store(&vmi, vma); =20 vma->vm_pgoff =3D pgoff; if (adjust_next) { next->vm_start +=3D adjust_next; next->vm_pgoff +=3D adjust_next >> PAGE_SHIFT; - vma_mas_store(next, &mas); + vma_iter_store(&vmi, next); } =20 if (file) { @@ -880,8 +830,7 @@ int __vma_adjust(struct vm_area_struct *vma, unsigned l= ong start, * us to insert it before dropping the locks * (it may either follow vma or precede it). */ - mas_reset(&mas); - vma_mas_store(insert, &mas); + vma_iter_store(&vmi, insert); mm->map_count++; } =20 @@ -927,7 +876,7 @@ int __vma_adjust(struct vm_area_struct *vma, unsigned l= ong start, if (insert && file) uprobe_mmap(insert); =20 - mas_destroy(&mas); + vma_iter_free(&vmi); validate_mm(mm); =20 return 0; @@ -2058,7 +2007,8 @@ int expand_upwards(struct vm_area_struct *vma, unsign= ed long address) anon_vma_interval_tree_pre_update_vma(vma); vma->vm_end =3D address; /* Overwrite old entry in mtree. */ - vma_mas_store(vma, &mas); + mas_set_range(&mas, vma->vm_start, address - 1); + mas_store_prealloc(&mas, vma); anon_vma_interval_tree_post_update_vma(vma); spin_unlock(&mm->page_table_lock); =20 @@ -2140,7 +2090,8 @@ int expand_downwards(struct vm_area_struct *vma, unsi= gned long address) vma->vm_start =3D address; vma->vm_pgoff -=3D grow; /* Overwrite old entry in mtree. */ - vma_mas_store(vma, &mas); + mas_set_range(&mas, address, vma->vm_end - 1); + mas_store_prealloc(&mas, vma); anon_vma_interval_tree_post_update_vma(vma); spin_unlock(&mm->page_table_lock); =20 --=20 2.35.1 From nobody Fri Sep 19 02:32:03 2025 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id B5C7FC433FE for ; Tue, 29 Nov 2022 16:46:48 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S236281AbiK2Qqo (ORCPT ); Tue, 29 Nov 2022 11:46:44 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:42270 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S236150AbiK2QpX (ORCPT ); Tue, 29 Nov 2022 11:45:23 -0500 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id E0D5C62EA9 for ; Tue, 29 Nov 2022 08:44:46 -0800 (PST) Received: from pps.filterd (m0246617.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 2ATGP14n031318; Tue, 29 Nov 2022 16:44:40 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : references : in-reply-to : content-type : content-transfer-encoding : mime-version; s=corp-2022-7-12; bh=NRieCVJGLiJr8Cxv3p04LvXsdygC2aLULrDvNR7t6dY=; b=izbdvQhb/BJyzXX5IWlyl4bJ9YMAsrJuDjxyyYEHjy4KbcclEN3VJ1ePtLquBRTkc6YB TeI/NUetZYSQwJU4R1XsNQqTfjiyxeaFoNlHJAh4/RLvm0T9xYKryDrO5DA2EU5kJ+Ir dz1hRP1qMXekO9DonVbWrHqhxpKVKyAsMOv3z15zOI/pGydu7xAN0EkWGgZyC3BSMD/6 YHjpyxmIZQ1MGE2E2wP2zstecuQUOXJPrQC69Dc8g+bjJ4JeAZ22XeMiGVgvdbI6FsO1 NYKCwCcxEOv+WwKhEzUOjNkbUvHkHhs7Bq6cAjbjkmNgArvnnVMmr/ewVXv4VA46Y4up 4A== Received: from iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta03.appoci.oracle.com [130.35.103.27]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3m40y3xat2-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 29 Nov 2022 16:44:39 +0000 Received: from pps.filterd (iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (8.17.1.5/8.17.1.5) with ESMTP id 2ATGbKZS019412; Tue, 29 Nov 2022 16:44:38 GMT Received: from nam11-co1-obe.outbound.protection.outlook.com (mail-co1nam11lp2177.outbound.protection.outlook.com [104.47.56.177]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 3m398dr60s-2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 29 Nov 2022 16:44:38 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=bqHFUPuuPVVWVznN0KLBfLtsv51sOQAzsUZsVkLzXWAtQvszckBdyxrTiN/iaAxYxmLf5E+KIE36o2uiJ/xkZ0+S9cjc59eYbCXalTYhBq3hha7wiUtSixUztduMQsbeQn9VKlNtT53OU1P0Z2WFWmdzL8TgNm97wm8f1eKW9SnNOSx4d07Gf0snPdVBkgncJsjARY9HfJN1XgxdtutUqg8Dut7AobLRRRQAvIjaX6Q4xZ4+RKtR8k+HOY3kqmA/lGWwl/HP2PWooiygtfqll02EqzfGRWdbs9bn25Pte4AfHb6wmtMdfrAKBDRE4+BA6zEpLCWiC6s8tq1NIM8obA== 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=NRieCVJGLiJr8Cxv3p04LvXsdygC2aLULrDvNR7t6dY=; b=LyI2Jt9QcUoQRaQaL8Avp4Jd4a+HeqnZ/ppD/1I7z5E8owYbaebfvpPhwTQSsmK3QMsiDBWis5llMqkHgt4DI7Ai5keetbZnTvLKAjEzKuxVoQ+sJgiODJGoSEzLgqSZtsL6KY81WM05i+SbE0vc6rLAOyhxytHGpRT4gWKTM1jF+NS8OAnek89ZecYy0eCbXcCeD/39bjPGMML+NhXRPLFB787aoWVGNVUlHkO8LqllkOKwgSrw4I30vAUOgnKS+aMW+vxgyG0f0KenVChH6ololEkoqYVcI+CYx4tBz00Du5/gixdHuFExs8Zs4W6kO9doY4qNRQ7leErfQed3IQ== 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=NRieCVJGLiJr8Cxv3p04LvXsdygC2aLULrDvNR7t6dY=; b=oJ6uDbaspD2alI88uNMNjdBH3bmHwthzZFaocPzXCS+pQBCEqSq36Vw1JASSAKz5tdUrVPJncKPckyRVTgQvRlDkzpVvJU+Xom8BIK5s2TPeBpzbEs5eLlZCpocAgrEHBRefK/u4OIEWgwhHOsP2awd4LBH8AV8IxVykUKgDlJk= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by SJ0PR10MB5788.namprd10.prod.outlook.com (2603:10b6:a03:3df::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5857.21; Tue, 29 Nov 2022 16:44:34 +0000 Received: from SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::a02:2ac8:ee3e:682]) by SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::a02:2ac8:ee3e:682%4]) with mapi id 15.20.5857.022; Tue, 29 Nov 2022 16:44:34 +0000 From: Liam Howlett To: "maple-tree@lists.infradead.org" , "linux-mm@kvack.org" , "linux-kernel@vger.kernel.org" , Andrew Morton CC: Liam Howlett , Liam Howlett Subject: [PATCH 27/43] mm: Pass through vma iterator to __vma_adjust() Thread-Topic: [PATCH 27/43] mm: Pass through vma iterator to __vma_adjust() Thread-Index: AQHZBBHb715FSo7juE2ZW4C4HlLCLQ== Date: Tue, 29 Nov 2022 16:44:32 +0000 Message-ID: <20221129164352.3374638-28-Liam.Howlett@oracle.com> References: <20221129164352.3374638-1-Liam.Howlett@oracle.com> In-Reply-To: <20221129164352.3374638-1-Liam.Howlett@oracle.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-mailer: git-send-email 2.35.1 x-ms-publictraffictype: Email x-ms-traffictypediagnostic: SN6PR10MB3022:EE_|SJ0PR10MB5788:EE_ x-ms-office365-filtering-correlation-id: 82ea0d23-f84d-4a59-4a70-08dad228ff2f x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 9lVVEqhLGquMlw0LAmnIBpMODRwDT58HD7kQAXYS8Jb3z5jB6k+CslxHxansbYfkRzdl7UFFsMcWVI0UkM3hzOD0Aq2nfvyyBVFc0pAOOXtHRPpus2RYoe5ACurEM7VwoRyxo7CWwppBwXHAf01yPkharZTHzQvOd5Lx/pfVawNRMpDTtooyEU25QyDB3S6Byj3/1Wnf/Bb+I3DmF93OZ1ywVFEYVvNCoOcm1pzn/1KFpcOl1xUf3z6Se8Ts0kYoICp3S+I/pxXwkpytPhM/U1+f1G1WHbyvqcXFLyIB9HpMB8khox/214yqA2Zb0RK8QfGao8bT24NeHtH/Y4Zb2hFQTfo++k3RbTtOADfwOW4i/YSLOOJ1yCWglPCdmzb88PWnXV4LKt4FgP8a09vOZXslgTjlG7Lr1dtt5NGAuI3HjDkHoq1C4LCWyO3nPX0UZYEqXfSHT3qIc46E/ByCKSgcKdIH2apRwr/ZAFIIGApLKvNLMCfOvM9EfOkfP9hfBKpCHq0gcbnkRe7i3TD7/rp0Temd4asS1BXIvh+mZNjlztNy4f5Plc9D18xlC33R8SDcVtQxjvtYYNbXO2eYvZ+AUOvGADa9RyOyA9eIMSVindx18QoATNxFacN91fm9xZWDM4YFftbCWTz3/TyEoLX4i0guzJORMdev+1fqrBOUBUMzifJhFK3NBuiH8gtR3HXfkRquAMGb1Xjeh2BsoA== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SN6PR10MB3022.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230022)(366004)(346002)(396003)(136003)(39860400002)(376002)(451199015)(2906002)(44832011)(41300700001)(76116006)(5660300002)(36756003)(54906003)(316002)(66446008)(110136005)(6486002)(91956017)(66946007)(71200400001)(4326008)(64756008)(8676002)(66556008)(8936002)(66476007)(6512007)(6506007)(26005)(2616005)(107886003)(186003)(1076003)(478600001)(38100700002)(83380400001)(38070700005)(122000001)(86362001);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?Q?HFTEWYBqRDOHD7s4tRDkVtnrZ9xvwfevNaS73PA66Q2WG+TwUNeXImIvqZ?= =?iso-8859-1?Q?HhYE7U1cHT62A1ZUNL6Epv8W4QPla12zJCcw5hXGDfhFsHSX5zIZC6VeGP?= =?iso-8859-1?Q?C7vnTnkztNN68sXamOn5/24epcsTuXuwCXKUohrvlCcOaVpIjv1hZpNCYS?= =?iso-8859-1?Q?TlDJCYYFTyCd2ZMRToD1vF8zs3oOHrfCcS9Od+V3ev7FR99FNJhsLDYAY6?= =?iso-8859-1?Q?no0x0IF2skaUgLGm02DizNPDnrD34JKmgNKdf9mLQbKxboNmWp4JySACbw?= =?iso-8859-1?Q?RKTvMaczyoZZdowKPFCm9sqWKmyy41jt5uobMngGCOULG6CVv7ulw2aAv9?= =?iso-8859-1?Q?yvcr5Nrm3b1JL0w1mflywjORkXoELps1FvRerk93l5mam4EbbUhpVXYeBV?= =?iso-8859-1?Q?tMGdSs+aL4knC836d14eMKbsdaC3rMH/WFEJOx18UsvCD4xWJ1ENrYBOab?= =?iso-8859-1?Q?oSfT3PCHVJ1QWMJeKkZIOibJBSpAmWGJgJqJnY4U/gMAlYRtIlRAHi/9mN?= =?iso-8859-1?Q?OwiJ9K9toedZGwmfm8PHO7+G+JfRkVkmhvz0gHNnuX/mDYYY29zRNLl+8Q?= =?iso-8859-1?Q?Zpo+fbkBNfiYZTLpNthOeiTGUQPrLB7hS8n191RK7Q9c+U5AhpjeUezaG/?= =?iso-8859-1?Q?g2Ij64lPjKtn2cvFM1Y+L6hhY0GzrkRva9D5d3YjnwPWs6FsWxtF7yl8EN?= =?iso-8859-1?Q?AeFzuQ4VRPL0z15Q558SQ5XPa7sm9xHq9qwO19r3rgHLTStt1TL7F9vn+v?= =?iso-8859-1?Q?RZXSY0Z1L3D3BK4ZnYfkZ6K/M8tbbH7FvXgn0qGKqiW77L8R11cJ3MZdZg?= =?iso-8859-1?Q?2Y76Ui64JMEbXJ9koF+sgMZyRvTWMZn4029DsAEjRhD7MUWEhwPMKQboBJ?= =?iso-8859-1?Q?F8iwE6BUtgqNJQ9yc6p27aKQl9nvNWTNCEY0xHuOwOC9yChrIYx7B+IjZ1?= =?iso-8859-1?Q?vBERD61oXoYkUcWxVinUOCFALq0LuZC3ine4f77rbiEwfilzSj+Y2X3PKS?= =?iso-8859-1?Q?acvIRby0Ax9yUMkjZZb+rwUb/BoFfVb9AUMexd3MNrWxhWk2sV2scYP94b?= =?iso-8859-1?Q?tmG8PxIrpLqIxrH/Sln3JJHQYOW5y/PMdZoicQ5MQsmz9ry3s7O88E+bmo?= =?iso-8859-1?Q?3JJ/eSd446HW/I9Yzz9IGgno9x1rg2KGLuk3yQXkaHr9mpBGqKoYkI52TT?= =?iso-8859-1?Q?yQh/jkJhj+Y6Tvc57AUGRyUHUj9QarOFBhO4xBAPGIQGSmvsWzsHH6pAf9?= =?iso-8859-1?Q?Ri4hndVJxNbwEvgmThOamHhlFmjQbf0Dk1p7OuB94a8WVgM4Lk7NRcfpuD?= =?iso-8859-1?Q?FbRwinWhs4lkAWrykYpYh4pOZCRHsLVjP+XcjiXp1CqomfcjBjq29jZPuz?= =?iso-8859-1?Q?YtwOgXF/NKVcuz/aEUdROwz2r9RfERl/LplvvICbE0k+ucPSAaiqZ7R9Jz?= =?iso-8859-1?Q?aIFdc+0svueHV2L0w+zSK25GrJZwC4r5rJtmZ9J0y2eJdPsURRNgc9BgMm?= =?iso-8859-1?Q?u3NdSvMo5IFe3s2hvT/WzFekXiFaZWPhkfVFffOEtvUvL/aW4mXiJpnpEL?= =?iso-8859-1?Q?ltsjEYTt1xMJgcUsNrdi0/aFPGtmb0PM7P5u5QGVM1JdqmEXnj1hy72n+b?= =?iso-8859-1?Q?MleNyGvp5MgR2QePjRDmW50BzrEvdzSNXlra3+XUJVefMItC3UQ0M4CA?= =?iso-8859-1?Q?=3D=3D?= Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: 5ABPVsaa1vAYaIbhf+n2EQdVx4N8Xzvmstx5pp34RCJgj226boVRmHumo0aESZKHs74Wpmin8UCUDKBk1fFr67yCeHWhJOpjHFCVL4SSA1Xw8/Yc+NHSNBQd3mwyi0pEsAPWOGZl7JYxI4mnHP/whtiwGnrdD8S5QBhEMiM5tvFyyXtyf0xYlB9pIvABBoQjTteBu3nFnTe0s9IPuAgANw95GUzjmcqm4RJiOUklUyfDqSK9sYmVIiuRuO+asuC7XUApAjaaYCMhiz+g4pe/6BP7gXC26BuH06+8AdRMGCH0EUG2Eul4Xva5a9rJ92dggUbNxZhasgKJh6LCY8YRp/Ar8CQn9KehTK+pdhj7kdzZ+QqR53U0qrJzb/SJEZxekk+koXGe2ZkBHchNSxxqYIpuogUdVv7mZ4CQ+zBcD4VVwTJoKGcGlReH86gj3twFbSHNzhps5b9NsMZIguE2mAJ3V8bhtNkihoAuklzRStABeC/A+DThjxWvnrTceHJ5cPwiiKYRbiGKF3aKYUyHWA1dCcujI/3TIntvLPMP3sPe0Av7V5l8xv6DTQyrgx6QPuEKTIWUL56oZfW5V5NAajHxZJD0FtvdDZE99GRKJ+7NNSoXlGMUpTj3JUh+OKKM6zIyg0X7iByF86zIUpGMkJdn0YTHo5xf1m7LhSy7YdGrJQrcGo+ZOwJXAMCSb+kcuYb2/LVQwY5Y+QvA0pLss5yNzK7M33MN22FlfE7jb2nTvbztslze4BEbuwAG2Qk6PHes36qgO9XhTC844T5hrlc+e5HNsX7ppLZAYTgKNQn7HUbDALYg4FDjwzT6j3XFnFX7lv/dOtc1IbovwcuV47kmizoY3duurw1C7wlu5Q0+D0BQNRl7tGVQDxpibsZFRFHzq6s7WuxMW1zMrGeUrQ== X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: SN6PR10MB3022.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 82ea0d23-f84d-4a59-4a70-08dad228ff2f X-MS-Exchange-CrossTenant-originalarrivaltime: 29 Nov 2022 16:44:32.5037 (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: D3/25NIuw5chmnPL4reisQoKWik4+4vtqZuuwX7OffHDuZ4OnruX2TR6DgNQ/t7SMywjSH1eaX1T+vZEXABqdQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR10MB5788 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.219,Aquarius:18.0.895,Hydra:6.0.545,FMLib:17.11.122.1 definitions=2022-11-29_11,2022-11-29_01,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 spamscore=0 suspectscore=0 phishscore=0 mlxlogscore=999 mlxscore=0 adultscore=0 bulkscore=0 malwarescore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2210170000 definitions=main-2211290093 X-Proofpoint-GUID: izlFNsYdgq_YVIkU8LFI0omdEAfJT23Y X-Proofpoint-ORIG-GUID: izlFNsYdgq_YVIkU8LFI0omdEAfJT23Y Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" From: "Liam R. Howlett" Pass the vma iterator through to __vma_adjust() so the state can be updated. Signed-off-by: Liam R. Howlett --- include/linux/mm.h | 6 ++++-- mm/mmap.c | 31 +++++++++++++++---------------- 2 files changed, 19 insertions(+), 18 deletions(-) diff --git a/include/linux/mm.h b/include/linux/mm.h index 3649acb9b0fb..ed6495c66703 100644 --- a/include/linux/mm.h +++ b/include/linux/mm.h @@ -2692,13 +2692,15 @@ void anon_vma_interval_tree_verify(struct anon_vma_= chain *node); =20 /* mmap.c */ extern int __vm_enough_memory(struct mm_struct *mm, long pages, int cap_sy= s_admin); -extern int __vma_adjust(struct vm_area_struct *vma, unsigned long start, +extern int __vma_adjust(struct vma_iterator *vmi, struct vm_area_struct *v= ma, unsigned long start, unsigned long end, pgoff_t pgoff, struct vm_area_struct *insert, struct vm_area_struct *expand); static inline int vma_adjust(struct vm_area_struct *vma, unsigned long sta= rt, unsigned long end, pgoff_t pgoff, struct vm_area_struct *insert) { - return __vma_adjust(vma, start, end, pgoff, insert, NULL); + VMA_ITERATOR(vmi, vma->vm_mm, start); + + return __vma_adjust(&vmi, vma, start, end, pgoff, insert, NULL); } extern struct vm_area_struct *vma_merge(struct vma_iterator *vmi, struct mm_struct *, struct vm_area_struct *prev, unsigned long addr, diff --git a/mm/mmap.c b/mm/mmap.c index 71e8e9cfd704..8db711622d50 100644 --- a/mm/mmap.c +++ b/mm/mmap.c @@ -636,9 +636,9 @@ inline int vma_expand(struct vma_iterator *vmi, struct = vm_area_struct *vma, * are necessary. The "insert" vma (if any) is to be inserted * before we drop the necessary locks. */ -int __vma_adjust(struct vm_area_struct *vma, unsigned long start, - unsigned long end, pgoff_t pgoff, struct vm_area_struct *insert, - struct vm_area_struct *expand) +int __vma_adjust(struct vma_iterator *vmi, struct vm_area_struct *vma, + unsigned long start, unsigned long end, pgoff_t pgoff, + struct vm_area_struct *insert, struct vm_area_struct *expand) { struct mm_struct *mm =3D vma->vm_mm; struct vm_area_struct *next_next =3D NULL; /* uninit var warning */ @@ -651,7 +651,6 @@ int __vma_adjust(struct vm_area_struct *vma, unsigned l= ong start, bool vma_changed =3D false; long adjust_next =3D 0; int remove_next =3D 0; - VMA_ITERATOR(vmi, mm, 0); struct vm_area_struct *exporter =3D NULL, *importer =3D NULL; =20 if (next && !insert) { @@ -736,7 +735,7 @@ int __vma_adjust(struct vm_area_struct *vma, unsigned l= ong start, } } =20 - if (vma_iter_prealloc(&vmi, vma)) + if (vma_iter_prealloc(vmi, vma)) return -ENOMEM; =20 vma_adjust_trans_huge(orig_vma, start, end, adjust_next); @@ -782,7 +781,7 @@ int __vma_adjust(struct vm_area_struct *vma, unsigned l= ong start, if (start !=3D vma->vm_start) { if ((vma->vm_start < start) && (!insert || (insert->vm_end !=3D start))) { - vma_iter_clear(&vmi, vma->vm_start, start); + vma_iter_clear(vmi, vma->vm_start, start); VM_WARN_ON(insert && insert->vm_start > vma->vm_start); } else { vma_changed =3D true; @@ -792,8 +791,8 @@ int __vma_adjust(struct vm_area_struct *vma, unsigned l= ong start, if (end !=3D vma->vm_end) { if (vma->vm_end > end) { if (!insert || (insert->vm_start !=3D end)) { - vma_iter_clear(&vmi, end, vma->vm_end); - vma_iter_set(&vmi, vma->vm_end); + vma_iter_clear(vmi, end, vma->vm_end); + vma_iter_set(vmi, vma->vm_end); VM_WARN_ON(insert && insert->vm_end < vma->vm_end); } @@ -804,13 +803,13 @@ int __vma_adjust(struct vm_area_struct *vma, unsigned= long start, } =20 if (vma_changed) - vma_iter_store(&vmi, vma); + vma_iter_store(vmi, vma); =20 vma->vm_pgoff =3D pgoff; if (adjust_next) { next->vm_start +=3D adjust_next; next->vm_pgoff +=3D adjust_next >> PAGE_SHIFT; - vma_iter_store(&vmi, next); + vma_iter_store(vmi, next); } =20 if (file) { @@ -830,7 +829,7 @@ int __vma_adjust(struct vm_area_struct *vma, unsigned l= ong start, * us to insert it before dropping the locks * (it may either follow vma or precede it). */ - vma_iter_store(&vmi, insert); + vma_iter_store(vmi, insert); mm->map_count++; } =20 @@ -876,7 +875,7 @@ int __vma_adjust(struct vm_area_struct *vma, unsigned l= ong start, if (insert && file) uprobe_mmap(insert); =20 - vma_iter_free(&vmi); + vma_iter_free(vmi); validate_mm(mm); =20 return 0; @@ -1070,20 +1069,20 @@ struct vm_area_struct *vma_merge(struct vma_iterato= r *vmi, struct mm_struct *mm, if (merge_prev && merge_next && is_mergeable_anon_vma(prev->anon_vma, next->anon_vma, NULL)) { /* cases 1, 6 */ - err =3D __vma_adjust(prev, prev->vm_start, + err =3D __vma_adjust(vmi, prev, prev->vm_start, next->vm_end, prev->vm_pgoff, NULL, prev); res =3D prev; } else if (merge_prev) { /* cases 2, 5, 7 */ - err =3D __vma_adjust(prev, prev->vm_start, + err =3D __vma_adjust(vmi, prev, prev->vm_start, end, prev->vm_pgoff, NULL, prev); res =3D prev; } else if (merge_next) { if (prev && addr < prev->vm_end) /* case 4 */ - err =3D __vma_adjust(prev, prev->vm_start, + err =3D __vma_adjust(vmi, prev, prev->vm_start, addr, prev->vm_pgoff, NULL, next); else /* cases 3, 8 */ - err =3D __vma_adjust(mid, addr, next->vm_end, + err =3D __vma_adjust(vmi, mid, addr, next->vm_end, next->vm_pgoff - pglen, NULL, next); res =3D next; } --=20 2.35.1 From nobody Fri Sep 19 02:32:03 2025 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id B4350C4167B for ; Tue, 29 Nov 2022 16:46:25 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S236234AbiK2QqW (ORCPT ); Tue, 29 Nov 2022 11:46:22 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41470 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S236139AbiK2QpW (ORCPT ); Tue, 29 Nov 2022 11:45:22 -0500 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 8FFAF627C3 for ; Tue, 29 Nov 2022 08:44:45 -0800 (PST) Received: from pps.filterd (m0246629.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 2ATGPo8q012293; Tue, 29 Nov 2022 16:44:40 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : references : in-reply-to : content-type : content-transfer-encoding : mime-version; s=corp-2022-7-12; bh=CU1PjIzJaxLqRHPRO7lWY5yWv2ZbpypHxHV5zOV9gkg=; b=ocAEzzVFfyX78R9BJHHUzupR3tbSB7wp6M1kzY9CC/NNfdhEtUHpAlDNJ0zaTL8DoXq0 cycoAQewSo507gw8oTEYGMoWK90hzjiRYstBAKk94SUX7A90J97+7xjqZt5xaGX/TEym 8wmg3Io6btc5DsqRUHnJiengNDaP+VbAjkN5XhGcg80qJfeOt/qucDoPl7Jk5+phk4ox ftpRVeUarKKuvqA9DW65GaDJ3fYRwmuqgSaPNfJIr6+wpJ4q39IJEDmr7Nf6GcCYhDbZ 6phvrFxGRNJgu2UP9iU4/LhC2KESLJrUqyaSiEUrqqFJcBooXxG7kMYdDW39U6M5sS9I 6A== Received: from iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta03.appoci.oracle.com [130.35.103.27]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3m4aemdn9x-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 29 Nov 2022 16:44:40 +0000 Received: from pps.filterd (iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (8.17.1.5/8.17.1.5) with ESMTP id 2ATGbKZR019412; Tue, 29 Nov 2022 16:44:37 GMT Received: from nam11-co1-obe.outbound.protection.outlook.com (mail-co1nam11lp2177.outbound.protection.outlook.com [104.47.56.177]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 3m398dr60s-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 29 Nov 2022 16:44:37 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=F4yxCw67AqdpeyvwhRcsB7F+nhj3WyFQuNmQtQhvDz8xCA21yO2DzG2VyEc8eB3N9ZvTocnyJVoWa1vocPWasKZP6k0iCDwUq57eizdHfJRPCPoQRblUq8hFoSLCfSaE/b2bx197/jmxR2bFh+7TnsFyAi7FD/9cksQuG+oHPrnC/1QV0hsXWQruYZKgaOKMuhgg8tgcg5sD3ta23O8yUa3BljQMwVEtYiM5OZ/7DNtniKEwuhqD2YifiF4Z7hwWoE3pDFuzdDNTXsJYRVVZ4elPE6BsYL2fCv53K76ABcWkPnIhXqjAg5EfKS3Cvhm+h/9Kwgr4RfK78Crmk6dpnA== 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=CU1PjIzJaxLqRHPRO7lWY5yWv2ZbpypHxHV5zOV9gkg=; b=X30NivgkPcmvVqZ+uIjsF2LbZULHUbzzZ3wu7MZ4fumZNJ48YeKO5ld9DftpufsN+abdt6Da6o0uCR2i3hjA42yraBjHP2uNhUMncnVPUnqYxUMjBmBTq3Zjb11cLQM/zl3eASxj58xfW48SHuEd/yXRiQumB8Hx7JOjGOWrb7NiuMY/TeK02eYrDd1VdiMU9C+fmm3OoLxPPxSD2MvY/yq7BGz2+J8xt1qmJ0HpA+HQRU1nVvPjATENXMLzMJHoUNw2waZr4VrqfSMHkHC3UZROmqJoyrvr5AFRg/Zi32FnNI1cVzaynwIz7qMqM970b8rHrJSVDckbWwt2Z93EIg== 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=CU1PjIzJaxLqRHPRO7lWY5yWv2ZbpypHxHV5zOV9gkg=; b=iC2pqSXk9bS7EZC09hYXgBYl9ovCVcdAteuV0PPxikhLhSKzGnRiTHw5dmpnRCC+UxPpM1OIM1sriuRDQVfv1OpJmuqSRlhBrSeDZpUHdTv0NkMZgxVCOihzRx5Oi1gb/lNZ4XF6LTlKNPC6bvXwyWyliac1ybRXiYZQk4T8Da8= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by SJ0PR10MB5788.namprd10.prod.outlook.com (2603:10b6:a03:3df::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5857.21; Tue, 29 Nov 2022 16:44:35 +0000 Received: from SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::a02:2ac8:ee3e:682]) by SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::a02:2ac8:ee3e:682%4]) with mapi id 15.20.5857.022; Tue, 29 Nov 2022 16:44:35 +0000 From: Liam Howlett To: "maple-tree@lists.infradead.org" , "linux-mm@kvack.org" , "linux-kernel@vger.kernel.org" , Andrew Morton CC: Liam Howlett , Liam Howlett Subject: [PATCH 28/43] madvise: Use split_vma() instead of __split_vma() Thread-Topic: [PATCH 28/43] madvise: Use split_vma() instead of __split_vma() Thread-Index: AQHZBBHbxBCbVR3dvEWVodnZgq9HJg== Date: Tue, 29 Nov 2022 16:44:33 +0000 Message-ID: <20221129164352.3374638-29-Liam.Howlett@oracle.com> References: <20221129164352.3374638-1-Liam.Howlett@oracle.com> In-Reply-To: <20221129164352.3374638-1-Liam.Howlett@oracle.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-mailer: git-send-email 2.35.1 x-ms-publictraffictype: Email x-ms-traffictypediagnostic: SN6PR10MB3022:EE_|SJ0PR10MB5788:EE_ x-ms-office365-filtering-correlation-id: f94cdee4-ed2e-4712-6d67-08dad228ff74 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: gy9nn4bSqbd+EDPH4ajV2OVWlXczBcmE514wU9ME3zSc92S3wq2PAyGsXlRnUuQIkhuZaD6t32iQ68JKbytoVELN4aGwUWx2fn6V0WKd1ONPR/XmOOwj18ceC4dbd1r5nORdgzna75XcoRk0zR3PrjgqsgZF+asngw8q79v6Q+T2VfRy1HTYsuX/I5D60NMiVO1GGA1MSYAcdQjRNqWuEpR6pwqemG5Z0ETpuIAIxQUnPVn4fVB5nscdanWfVGMPrDdSBLudCcWyQMWSa6/jvk31env41rNp5f2lGaVLyqXB9ou7taYNfjzS6aGl9Ecy+MuY+eb9tiRq1JCat4/4iqSxsSZIbdPRXxfY9CgIMnqCcSsFYQJCDucpEDDfoqxPflFdx5Gz4hXZYMJud231xxCDp7/OFSoHqaNHZdxexZiScWBtOZE8urMIAGA4UhubjUrInLenzZQ/sLL6ryHXgeAiiX4bQs2CYkqLHsDjTswEDUiR5XintyB41ot/Bhd4LtxhdHZdUI+cqBgDbjefjgVI7iVJQyG59scoD1Lsw/KSX9CiINps22nr5L6UouJF80LqcQ9/H8Khmp1Z376+UM0xM2ZRqHwEw7iP/Q6B17hjHUJlvvSfY3B4gq2qVbIdyBOD6ovDhJn/oKn0/pRNUM1baiI/aTXekNYgdtPqqZ7ExVWyEmpIeq3K+dmVXCDjgzRT48opSM2ZjeMpC4JUfQ== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SN6PR10MB3022.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230022)(366004)(346002)(396003)(136003)(39860400002)(376002)(451199015)(2906002)(4744005)(44832011)(41300700001)(76116006)(5660300002)(36756003)(54906003)(316002)(66446008)(110136005)(6486002)(91956017)(66946007)(71200400001)(4326008)(64756008)(8676002)(66556008)(8936002)(66476007)(6512007)(6506007)(26005)(2616005)(107886003)(186003)(1076003)(478600001)(38100700002)(83380400001)(38070700005)(122000001)(86362001);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?Q?0DWkz9Uy49pxelDlW6OFAbp9mTjOmjHYpKOXYeCj1w+B4cz1LLf0s8bqQd?= =?iso-8859-1?Q?uOOfC0zsqXcLRce4URdX5LuVc/8Q68fDYOBFZ9IMHmncaF5Quw2mY/Sv9F?= =?iso-8859-1?Q?5BgZ9XJFVGhKNB9SBi7qHa2ZcXvdH/WOg6f/pgrK3G1yuA0PXuknVZJZDh?= =?iso-8859-1?Q?0Qp+NP6musr1Fp+KZu1ae+cdia6Cvg5SFEF/fVyGNqktMqUP3rEBu28odq?= =?iso-8859-1?Q?+nvn2xRQTah5Id2+UAOkNTux2v/Vstm+rC7KRPDFKZtVUgPlwYiQMI/xf6?= =?iso-8859-1?Q?LvMGOjjkeb4G1kjnQOwJkZfDleBTMjBEQbNGk6eKRbYAsMAJ9VmMaNRDy/?= =?iso-8859-1?Q?wgwLML8euggKZvNtJDy6gRY/GcksNBpu3epsy0BSduMdv6tls67FRgkJRB?= =?iso-8859-1?Q?q7w/9zTPo9gp/xOBHd7sVC2ee4H7CK6g+8zCcP7ZCMpTycFCV62ARN15cv?= =?iso-8859-1?Q?qzvEzpNe2nynT+ZdpeV5KpRl+7L7HYGg+sio/dozx3QIsVuwRrV+XlC58R?= =?iso-8859-1?Q?jW/w9G2xR/rjAhkK/Jof4XEqrtJszSxAch1bIhF1wLsElFcEDzvULGjfVf?= =?iso-8859-1?Q?VUVteGDXGiyBD2KaR9CgAYGgxbFN0G4S+nAA20gv97wxINduIrOzDcpiC8?= =?iso-8859-1?Q?YoD8aFlE6bxec0yQizN0TABe72bVLj29EMLLgK8ruUpxo+L4dZ004NbtVf?= =?iso-8859-1?Q?Xbc09h2Puo3KxulcS1sS0tJ+JnzLCZbj1Tievfv/GkcShMQ1QxUcbe6tpW?= =?iso-8859-1?Q?iNaLeY39/S41qjmBucgFwA1ToAdOwx4okjHSq0Q5rZ15qp4NSCPYUqziqr?= =?iso-8859-1?Q?DdQSsHFyQLqYd5w1mTMx9N5EPd3zl0x3ELlKDXYw/1SVIbOFZ8fgoPaVmo?= =?iso-8859-1?Q?ov7BD+7DopzL+Cum08HgFY25ICcQcrqdFB1/HxkMOwCiBUiug+2Kc9pkbe?= =?iso-8859-1?Q?3senKohUj5TrSbC09GdRcyL/LPrdHjsP211oK5isGx4Cwrcf15UGx8w73w?= =?iso-8859-1?Q?xVRltAx+N/MgdXLE8sait/5/1EUfIFeNhSiloIuOCNY/osKqi0lsA4pui6?= =?iso-8859-1?Q?wtz2T/desMU+R9WsCw213sU69JTUBpbDBT9GKZrjgpiVxbVRug/bqnLqg3?= =?iso-8859-1?Q?E9Ae5A6uZQeVCIIgjI+lM4kAhyPpWBzCFlaRpbpD2XNg5LvJJTKUpjNHsk?= =?iso-8859-1?Q?sOAA6ISnGpQF9yoOifIUscERrzNs5E8vqvMNDuIBAndhHyWD5cGZNC8Vjh?= =?iso-8859-1?Q?ofjJ79e54cPTcJomInuz4cheGw9S57ppyYyPk0qCFTosxkxQPncHrpNawM?= =?iso-8859-1?Q?mxd5CzihcMY1pHyiBTccA0d5+xn0lp0pL8VUioxJSXi50Z6s4eMBTYmkHT?= =?iso-8859-1?Q?HhJM6VP7EXdP//Jzjo8T9nYumaMgWrgtP0ma6CA518ZQHo7Q0hOMrsOqah?= =?iso-8859-1?Q?zpSosOEvXL/kmQV7AyB8x6OeKcxO+MbAFcjiEFBfi040JjXjOIBToUKaUP?= =?iso-8859-1?Q?J/gi/qdAfxfD8UXPqNT3PJ7CVLhK4ssxrdVXp44Wh9mso8Xi97r12cnbvR?= =?iso-8859-1?Q?hETwzuUAteHeBBg1d8O6dnUVj9/T1Kyem/KPeCS13LnaRinBL1ZaY6Rv4X?= =?iso-8859-1?Q?8AJnUflnAS0cYRHCXZ1Q7KcufUQvXplBu7LQ5PltfpLbjVoWZEEFP+oA?= =?iso-8859-1?Q?=3D=3D?= Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: 3PPk8UND+TJ+OjrjjPLmGU2gLMohOD838CPE2tzuZyDcez46YPF9P6QHWz1T903Sy3C2hw7JjTVY/cy93KyCM6RT1iD9DwGBzAumJ5n/c5+REYoT3j2eBmDYbLk4qcIuVavEv8Ex2GZHn3YvWMPXTmPO/QZMmy2eIgqLgpFuG/i4zBog5NE0ZVtTNpvWVvizDkdOXZZLwqaobutANAZv7rz1RmnVOnPNaXVa5t+UcvwGOrVva72WLa+JIL3fyVD2Fh+XJ0RdBp2l7/n01dkSWokLdX/UW255VCBSCU4uyHHNFavfQVL0ctOhF2QlEONvOBjUHll3YO/pSLgXM+3Jv4Z52fPMCsNatfeqXzL+o6VSB8v4Ii9kF4hEPQeiRX9aVtSwU9yrpnfdiSAwiJiUw1GKEoHhKW7c3nm5W5qvVc8OmixJcWZK1p5JTBWN2/oZMZcZL/ZOOWPlW2ru4EqVb4Sp4GaKL3L37tAchnjd+IurSeG4GL2gZrxrtZ81lxNxZjDVEIyvLADFmClZWuFxv1T+kJS3u4vcZrfBNzkNlUEkgLH0/8nVa4oKwMpZmfj1C6b/V5P/kJnSAlrdbFrF/MFWXNNfakoc3yeIe3RTzzCA6WEqbDEqCpVaGupW1M4vabqiknp1PCrBbanEoNaPIrW7ByolScFYyGV6+OLdgmwlgo0XACT7t12PzEpxQlGvfncZWZBJE4CtkvoLdzwT/KKb3TRObvVhp/KmpDlrwxZZ2M7dS29cxmEsEM0VeSP2xGDt+RJ4W/5tYFUm2XFRDyBGsubauYRir2rWVAnm+uTZPeqLNZtZrYvAakWxqE+8TD2jdsGI6BBAwLUTdlj6OsUC42h9uy8lZrIgv69UNkkBerAhNrWIwapeUMcfNTtPCuFuOm+RkqtH+1yZIn4gMw== X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: SN6PR10MB3022.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: f94cdee4-ed2e-4712-6d67-08dad228ff74 X-MS-Exchange-CrossTenant-originalarrivaltime: 29 Nov 2022 16:44:33.0036 (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: tu69SA4wqRD7e7CjsGK2l0VjNTKCqNE/hyMKPD0BousOCPJMJQ/74tsQ76vjldlWLgnymOdoLi2LhvA0gBlQOw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR10MB5788 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.219,Aquarius:18.0.895,Hydra:6.0.545,FMLib:17.11.122.1 definitions=2022-11-29_11,2022-11-29_01,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 spamscore=0 suspectscore=0 phishscore=0 mlxlogscore=999 mlxscore=0 adultscore=0 bulkscore=0 malwarescore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2210170000 definitions=main-2211290093 X-Proofpoint-ORIG-GUID: SjHmrr-ovh08z_vnxoPw3wWPythRmVYb X-Proofpoint-GUID: SjHmrr-ovh08z_vnxoPw3wWPythRmVYb Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" From: "Liam R. Howlett" The split_vma() wrapper is specifically for this use case, so use it. Signed-off-by: Liam R. Howlett --- mm/madvise.c | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/mm/madvise.c b/mm/madvise.c index bf23d64515e1..f29bfff3af1a 100644 --- a/mm/madvise.c +++ b/mm/madvise.c @@ -164,17 +164,13 @@ static int madvise_update_vma(struct vm_area_struct *= vma, *prev =3D vma; =20 if (start !=3D vma->vm_start) { - if (unlikely(mm->map_count >=3D sysctl_max_map_count)) - return -ENOMEM; - error =3D __split_vma(&vmi, vma, start, 1); + error =3D split_vma(&vmi, vma, start, 1); if (error) return error; } =20 if (end !=3D vma->vm_end) { - if (unlikely(mm->map_count >=3D sysctl_max_map_count)) - return -ENOMEM; - error =3D __split_vma(&vmi, vma, end, 0); + error =3D split_vma(&vmi, vma, end, 0); if (error) return error; } --=20 2.35.1 From nobody Fri Sep 19 02:32:03 2025 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 283F3C433FE for ; Tue, 29 Nov 2022 16:46:43 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S236276AbiK2Qql (ORCPT ); Tue, 29 Nov 2022 11:46:41 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:42272 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S236151AbiK2QpX (ORCPT ); Tue, 29 Nov 2022 11:45:23 -0500 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 2492A64561 for ; Tue, 29 Nov 2022 08:44:47 -0800 (PST) Received: from pps.filterd (m0246629.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 2ATGPqQV012398; Tue, 29 Nov 2022 16:44:42 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : references : in-reply-to : content-type : content-transfer-encoding : mime-version; s=corp-2022-7-12; bh=bhltz9kTcsgGhTlVX5M8hR0m0heTmi+4drVsBC/8924=; b=L0rVtcw7FQ9pG6Dj6sEUGT/HBuOo6grxYB4U/2owUdMNCzxlWdE8a0/tdGC88gkT/PO+ kWt732wh9AvrmV2pSQYPg3o40qJB62DMhIQkYf76tyoIYXQKnzN211M88BvI5QA/FL8o Hh8G7dp4u79XHigeYhifCeUtuOt3G7Onced2LG/AfaQNpxgQfxyT1vYr05t9p1VWyHWV Fd34UAIRU+0kwuUCM9WNN9UqR3XVKidXMZUunMw5y34IaGrbFAxxDMBkfepC6lvVY2ga 1xtYt+EQsezcTQTIBqVTiAUE5q/q31g6YVd8AQkIxol+04Hz61iTsYjMNFiuPtWfMSiF Mg== Received: from iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta03.appoci.oracle.com [130.35.103.27]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3m4aemdna4-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 29 Nov 2022 16:44:41 +0000 Received: from pps.filterd (iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (8.17.1.5/8.17.1.5) with ESMTP id 2ATGbKZT019412; Tue, 29 Nov 2022 16:44:38 GMT Received: from nam11-co1-obe.outbound.protection.outlook.com (mail-co1nam11lp2177.outbound.protection.outlook.com [104.47.56.177]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 3m398dr60s-3 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 29 Nov 2022 16:44:38 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=P7roZT3tNN15whU0b/CwSGVSBvHaj7+omC5kjh1uPWQLoIUIUYJGIwkPm/YRgK3/NIanJ71qXVH6GqkkP43bdO5quvxVFDZDRReuCVt4WxIAfJJd1nQTq5j8iC+TKL+tcRhoATvBEVQvu2mcYzunKSQBRjHar8jHyqt7KPs+P0nxFi+zLZSAgO2cwzafgPEsTwY9kv8E5z4iq6HdDDXctLXBh5pCGl0YHuWONYoirfMngZ0PrxTQOjabPbn8aWFEtSaut+gxJy4PXKwOwXYlNC2idf1lnL/+nvoX1ahY8L8x3UxoP2T+I24UtgucU37XkBimytYRdLUtMlUOPiV+zw== 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=bhltz9kTcsgGhTlVX5M8hR0m0heTmi+4drVsBC/8924=; b=jOS6MrCHofguXkXQXBKSk/v0trdj7LxZjeDQnAqIMeXiKV2c1Yvyud1K9+gfSuQyIusE3hRnc/iXXPaYEeVtDgosD/0M7qNHslzHv6gJLppf91IaCu1M/IpN7NUQUm4Li27nFmv6W+s2HeDIsdFibhfkm0013YvUqv1Q9PfuvHpzH55zMoILVqwtk9ANwaogeMOEXCv2fB7UZwzsob+N0cYCiwDSR1sfmljhqsFQ7R3zcyRk5yamAmZw/zTK6jFPBOeSvmLt3zFFml+i9wxnAJfNtT7s6MpR97k7kgTzfckqDAI0UxhPPO40wTOYrs/jRXmNTlHp7Bh94TAf28GoMA== 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=bhltz9kTcsgGhTlVX5M8hR0m0heTmi+4drVsBC/8924=; b=GgDU8bKZRc8AFFW/m+y2waOQLqsRj2vxV4OVHqo2TZprpWZLnbLWVVoukvIDr60war7T2YpN9PmkslXC0uFRiAiazF7I0tWwWJX8tn6Tan5LMZs7b53W1ZIxB7Dw1YOswcqBSDjYpeN/Xo2whdwSiaEBSBYDdvubFRUzknmg5gY= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by SJ0PR10MB5788.namprd10.prod.outlook.com (2603:10b6:a03:3df::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5857.21; Tue, 29 Nov 2022 16:44:35 +0000 Received: from SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::a02:2ac8:ee3e:682]) by SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::a02:2ac8:ee3e:682%4]) with mapi id 15.20.5857.022; Tue, 29 Nov 2022 16:44:35 +0000 From: Liam Howlett To: "maple-tree@lists.infradead.org" , "linux-mm@kvack.org" , "linux-kernel@vger.kernel.org" , Andrew Morton CC: Liam Howlett , Liam Howlett Subject: [PATCH 29/43] mm: Remove unnecessary write to vma iterator in __vma_adjust() Thread-Topic: [PATCH 29/43] mm: Remove unnecessary write to vma iterator in __vma_adjust() Thread-Index: AQHZBBHb+o3SiDFJbU+aPJDX4tvC5g== Date: Tue, 29 Nov 2022 16:44:33 +0000 Message-ID: <20221129164352.3374638-30-Liam.Howlett@oracle.com> References: <20221129164352.3374638-1-Liam.Howlett@oracle.com> In-Reply-To: <20221129164352.3374638-1-Liam.Howlett@oracle.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-mailer: git-send-email 2.35.1 x-ms-publictraffictype: Email x-ms-traffictypediagnostic: SN6PR10MB3022:EE_|SJ0PR10MB5788:EE_ x-ms-office365-filtering-correlation-id: de2a8555-e114-424c-b762-08dad228ffc0 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: +XKaJdd1TtMo7ljwURqsQWs+WRY60Hg/X1dWFuZTVqrBV5KxrDvoRVLh6uz2Or+QO4nfyBfXNoAuGlnbyKKj6pb6e4+saU2OdOKVCqkonSUJRtqhlUqqhpx7kkMcTYoNOEbH7jFXRAtXbG4aAAna/ImgLcawl+xztyM5sEww/aZQZDsF1osWzSSIC2QncNfBvD566Kjqq/S0XcfzMCRXZJnnCie+bBsBCdqskc3cJbj3qq8cy7bxxTrGD2IclQcjaFOm3+Tuxpxns2ZinsS2bzrwqz2e5ISRZ28poGYl6nuKPd9RwzWtjPnObGgeYs9Vj348pqajZxg+zKmsr/4w5+ZcvtPEP1Z0jJAIvqPEYZKg8DHgqX1BKDC2uJx/D5mxssa3cMA36IyCPXAW3tmQ7bidXO2n9aJ5tOGhAZdOMq46i39bR2wekAnh/KJtf0TSi7icvCISt36V7OIMx8EOB6ktP1wqPvumk3aSghPB4kL7De3dCG5y810QMoFspNl855LNjwNaH/ikDVyIoHOJtVmDHE2jxcSwr7OGO3IPlggTr7r54hUp5rIzfCF285Xkqu01ijUjzQhV1YHno9qqEXyvv5e7ciPvhkQubS/QCkambR1o4BpoYbdrPw0oF5otPNaLyl5BEl6Ee5WVrR0SrmMMwIAiQ4I7Jd49d4RkIGd9Dh77nb4g92x+UdsvGpenGR5kIYo+2ZYPnoTrnYuNxg== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SN6PR10MB3022.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230022)(366004)(346002)(396003)(136003)(39860400002)(376002)(451199015)(2906002)(4744005)(44832011)(41300700001)(76116006)(5660300002)(36756003)(54906003)(316002)(66446008)(110136005)(6486002)(91956017)(66946007)(71200400001)(4326008)(64756008)(8676002)(66556008)(8936002)(66476007)(6512007)(6506007)(26005)(2616005)(107886003)(186003)(1076003)(478600001)(38100700002)(83380400001)(38070700005)(122000001)(86362001);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?Q?QH2gc1aTVICVcxneq7Ss4UX9JOLaen01AMdC0cx8YRcaoPjOaqdU0WjcSY?= =?iso-8859-1?Q?8phe4IjXT6T0uwXNXkoUwCdxiDdkgX3G6qsCRzcMtQc6FPXe/Ojb6tSON4?= =?iso-8859-1?Q?d2ftFbcMCOhxM+QjrqrxPR0IyX+CfOeYccNU4HeGKySGLc1AMt0m8/nQdA?= =?iso-8859-1?Q?IUf2y+GwkourNgKRAky6yv8OigMgVn/UyVk4Vdpf/LhPYwiXw1IfajmwxA?= =?iso-8859-1?Q?Pdyltyzx7m/3z4Kmt7aQvzttwD8UVXC/86tfC62gGJtUASp6nYbNkFOAzS?= =?iso-8859-1?Q?+ErSHQQj6Sub2+gjo0cCl3wH8IBI/EymZ1spLO77TDjRCUVLfSlz7d0OmX?= =?iso-8859-1?Q?UzDSR9TU660o8AEoqutYaRW4ak4a5VNBaPL6ZKHYRh5+zcHd7g0nJhe5Ch?= =?iso-8859-1?Q?ve0Ddvg0KA//153FnTAbGJNTSWtsHDN9LZmC/MFcFaBZwJ/+uqe4ZQBSa1?= =?iso-8859-1?Q?WaLcprIImVdqwUQ9rqNDKOPkag9vxvxjjkuwS22L8+lkDkWU5vDHiI1aNT?= =?iso-8859-1?Q?z/XSBXyjuDUHgYi9k+E1m8lYDsjDG3x+8W25AKrkZAslYg9cDu3fHySd7C?= =?iso-8859-1?Q?cZvIIi4ZMoVelj3xhYfDizMwksXrDpjD9+Z7YHelJzu5GcOlCchOdI0oqu?= =?iso-8859-1?Q?xp6cs77EZnAjePfFaktgHwaQevZGLXYaUZ07W5+6BU7QNmIhcqw+bwTMWY?= =?iso-8859-1?Q?GfYZKJOOQl1pop85U51gn7Ar6+ICIgx0g7nCTI6e6kePD2Qq9fnhInbsoE?= =?iso-8859-1?Q?6E9w4mV3YszFQx+nCW68x8ikueVUCIU/V7XDV/LKcDOq6dDrOjh7am1eUl?= =?iso-8859-1?Q?Q/vUVA8byE6Ywv0OmltTN3H6Xo28yhg5MkrT+r6BJ6cXz/5jeUdjA0sImB?= =?iso-8859-1?Q?dvdsxAYLQeNcBe+3JuTnr4+8iWYNDWlZlAnlsAHq4HaHCfeNVSrKYhMx7h?= =?iso-8859-1?Q?Hpr4Sv5HoPQtHQr6ao3Y1/A63Tak9USq4Fjy2RtoLtLatYvrxbvFKPTqWF?= =?iso-8859-1?Q?IeoAjWVslApvbgpg78ot6PWvPVAHPLolj+O7cMXozNdFh5TUCxlPu6LeZD?= =?iso-8859-1?Q?8DmbDzOaqvEmU7n74qOQrxHbTE+BL2J/ezibfLda31ytgU5tkYKicJ/tG8?= =?iso-8859-1?Q?nmZO2BlHpxWMWaP4paFA0+lX1ind7QJ0OrE0/pdGeWlvPiRu2nlGTiPG3+?= =?iso-8859-1?Q?8+tjn+3CF09wd1zVU2Yz1jYyO9l9b7u6tFMdASmunaqdf1fo+VlyoVowFl?= =?iso-8859-1?Q?mZ7mKlGhK4WHnqpNUKwB4Bt6v0e9oDPKWxTqVfIyN+INY9AkT/MPeMhFc2?= =?iso-8859-1?Q?oebY1l5lB/c9JAW8PKCsE3jQWaOB700CCrq/r6dghNRFyR29tQhSfyDH+/?= =?iso-8859-1?Q?cejugYIagBwgBJhMbqXjZnGLM/QDJ+iHXbd+g000Hd2yTlnEY/Py9BzwBH?= =?iso-8859-1?Q?BrjCFp/I6bRpbnNFos+et379PqDaz6JJBjWWANMauM/5icmVT1ad+kSvwZ?= =?iso-8859-1?Q?A55K6ZhWxypga1y5w8315sMyH+qq1o984FA90yR9cCkkkFMS5UWJDJm3/X?= =?iso-8859-1?Q?aBq4Bcp63hELj6XYwYhgB9LhmD6oznEPqhFl40cW5uxU7cmSiqTFN4bPjO?= =?iso-8859-1?Q?932wojZGMMrWOXOCb47yuA9FC7kWOwHL2zFzxfL5jWl0a+Yn3MOuKtqA?= =?iso-8859-1?Q?=3D=3D?= Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: B4m/uV8kqBfddYKnPwXP1rmtiTbIKTe1og7vghOaYr8TwNKB9r5/v6DKcoUBs7f6mQCrm8sdBbvP1m7QZnyTGpeuTA8LOsg8UYFe9V+jtA+NS2ubXJFT21YcBEHniieIueIamOSHH3cPTwMvdQY3LSRuPHxPfEVNRgFc9nKFXM9MC2kjTg5yN/OOl+f5NWL0Hz+ThY9m6J1WhT/qntQLLUlmQQ7i/fxGvvy6pqpScW6+1KP1Vx8Om5DP9W4/GECpAYPHKT7Vz3d3urXeygYSEO+x9cM5ooFaBKJ+FUGTLYtejBTL7rxlM1fPIkDN6JmI8pIbwJKrUnB/07mm5vfe6MjH6UWloQOWNt5QoQcvH9GxetHwIyZm0jR9sYww/mkc3zR5gNdwVWqSQwMRAuy8kdWGzw1vPPxtc9VKpENPpv5a64hxlmikQYrHbheREr+fl19ov7ysMbgfABy2OnrVvHjoWSJrTqIspBOcoey/DvwTSyB2hAJH/gerupiRGlkA7WzW4JT+bPHpx3yVBp6xIaIWjb9dpZp11q9fEknYi1IpxhZNLUo3WzXnP6KxUwXUBLVbRmjj3/dCjKjbHBnBFZKn9l6/JMIzST2SxSHvRCLsO09itow0HvO8280x0lhs3q/tvQ38NTo2SJFpRt80ZfR5woC4VOpbVr1sYPqKB5lg8AmwZ98+ZXhKfBd3wlksPMFsuNgHmt3eESlyduPtALkoWHLNkw86hj79XnBwYjNk8QqlXsOqxXx4oI7RJ99qtEkbc6I4lIqaqIhwYUCg5eDO02S3Y6L3g7Po4hb499lKU3xKVe4/pGF9WVDrJSDsxOpFXGgJXcQOqnjf2gmllKplnLRLjHfHlORURXK4vNsauQ5FITkTzEJVDFg4ok+aAAivWMQCnBNdE49tp1yJOQ== X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: SN6PR10MB3022.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: de2a8555-e114-424c-b762-08dad228ffc0 X-MS-Exchange-CrossTenant-originalarrivaltime: 29 Nov 2022 16:44:33.3317 (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: QexvhctHGo00n3XbgYxxkZa0biERfsALcPXsZb7l3hz7nX6FooLOdYUu20tEavw3meP0e1XgojcBTlLxov3OHg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR10MB5788 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.219,Aquarius:18.0.895,Hydra:6.0.545,FMLib:17.11.122.1 definitions=2022-11-29_11,2022-11-29_01,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 spamscore=0 suspectscore=0 phishscore=0 mlxlogscore=999 mlxscore=0 adultscore=0 bulkscore=0 malwarescore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2210170000 definitions=main-2211290093 X-Proofpoint-ORIG-GUID: ouldFDfmyGmNOa9hh_v3IOiltlz00MPO X-Proofpoint-GUID: ouldFDfmyGmNOa9hh_v3IOiltlz00MPO Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" From: "Liam R. Howlett" If the vma start address is going to change due to an insert, then it is safe to not write the vma to the tree. The write of the insert vma will alter the tree as necessary. Signed-off-by: Liam R. Howlett --- mm/mmap.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/mm/mmap.c b/mm/mmap.c index 8db711622d50..f37a6b5a40d6 100644 --- a/mm/mmap.c +++ b/mm/mmap.c @@ -779,10 +779,12 @@ int __vma_adjust(struct vma_iterator *vmi, struct vm_= area_struct *vma, } =20 if (start !=3D vma->vm_start) { - if ((vma->vm_start < start) && - (!insert || (insert->vm_end !=3D start))) { - vma_iter_clear(vmi, vma->vm_start, start); - VM_WARN_ON(insert && insert->vm_start > vma->vm_start); + if (vma->vm_start < start) { + if (!insert || (insert->vm_end !=3D start)) { + vma_iter_clear(vmi, vma->vm_start, start); + vma_iter_set(vmi, start); + VM_WARN_ON(insert && insert->vm_start > vma->vm_start); + } } else { vma_changed =3D true; } --=20 2.35.1 From nobody Fri Sep 19 02:32:03 2025 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 14478C4167B for ; Tue, 29 Nov 2022 16:47:46 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S236238AbiK2Qro (ORCPT ); Tue, 29 Nov 2022 11:47:44 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41474 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S236314AbiK2QrH (ORCPT ); Tue, 29 Nov 2022 11:47:07 -0500 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 7C4766C727 for ; Tue, 29 Nov 2022 08:45:16 -0800 (PST) Received: from pps.filterd (m0246630.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 2ATGNtDk022642; Tue, 29 Nov 2022 16:45:09 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : references : in-reply-to : content-type : content-transfer-encoding : mime-version; s=corp-2022-7-12; bh=RHghaLX6pv2sfyk/b5fhnEpZNLjyUuZzYJY4y227BYk=; b=SVmuSpq/t54Bw1wtsarDlx/VAN1fmhhNANx4g9uUHHX0OHiLAz/VzKCOtuBvYFjISsMU skMmdXc3Tehbqv7XHg2HtNIZSMYhw4mxLK5f5B7i/fM+ctq2XtzX25mvUNAb2kyh+oJ7 IyJV4XxR4OOdmgcB8j4RLfwPiikK7cOpXelzqH9rAqdZFaZGK4iq0NtSLXSFpvUrR/4U yt4dfbRIl3mHbZSV5QSgQh47RB665J3+s+2VRkcgv+MbB1rSMYhcx4pAoWCP1yBj5jvL XGR/26hHEWpiabNOtdcUoQpPSIlua6CKdhZcyq3IOadv6SWdSltMoyQ/D62IQMz9snSx gw== Received: from iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta02.appoci.oracle.com [147.154.18.20]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3m397ffc6c-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 29 Nov 2022 16:45:09 +0000 Received: from pps.filterd (iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (8.17.1.5/8.17.1.5) with ESMTP id 2ATFkaTu026698; Tue, 29 Nov 2022 16:45:08 GMT Received: from nam12-mw2-obe.outbound.protection.outlook.com (mail-mw2nam12lp2040.outbound.protection.outlook.com [104.47.66.40]) by iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 3m3c1vkkp0-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 29 Nov 2022 16:45:08 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=BVTC+gE6iKqNDocXxG/R7AyHY3WIpxiY8s89gvB3kW5+nTQ308xMYhTLfpqHX/EgrTkXNQsKJZPgMb02j1XXHkWB5VaJhn6uaYIPIX1EIJtE7QYPOXxclfe2/GPqYmqJpCUgJKoBl96e5dKWfR6lAgMgwSpuMVkG+25Q8eumNrnumprDFl1G5GbRKajwJlX5Ba63v10rouML4T8JI0DjMaD1+jwIuCIMPtqwNDEaY5ayvnkRx9XpOS6/F1mNP/fNw1btgSS5Rhm6qoJNpczFtIQMJxeraegh8nPNRsC5Fv8jWdecax7kzcV6zmmlgLZGJ0KywX4+t/elc1SkXNvhOQ== 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=RHghaLX6pv2sfyk/b5fhnEpZNLjyUuZzYJY4y227BYk=; b=eCpHw5tHhGkQhbPpmUoyx0h1sK9mu7qunSyhuXISuaduSKOJ3hORbH+30FKIG2XR3pWDs1TA+q4tDqbqNL669nZGi828msgJ6eP1P29oBS0ye0owGGbF0zmLXEbqMii07/DyTninNMuFW1HwaGitrU1Ow5kaU3JYhAS9i0n4ULnBrPGdDO12R19v0dWkrADOPVoArKzxdM1SIXdWnWKNbRCjy+RxPAQ9umYYRmx4e902dot7GrG1O88tur1QQVMaNCMixVeV6ibdbUr8dckvdGvd8Q9SqrzMVnnfa9xYxfsc1GduDtkGELTx1/2s7c5XHzF+mWA91JuIyP2TMGuHow== 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=RHghaLX6pv2sfyk/b5fhnEpZNLjyUuZzYJY4y227BYk=; b=L3AloWIGdZUSyGnhylQu0ilm33cHaMxjOG+M6wib/mfmRWZhgEvGqkjYGGV9+vXiJkJ6Q9GxZyI5lDsKwEX974RwIokIq5A3ZhchgqVnKQ+28tL0btxb2vXHPZ6LyTXiuJrZ7bchLyKzEUiHtg8uDafXl1THMfc/s5fpVy+7+Nw= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by PH0PR10MB4792.namprd10.prod.outlook.com (2603:10b6:510:3d::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5857.23; Tue, 29 Nov 2022 16:45:06 +0000 Received: from SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::a02:2ac8:ee3e:682]) by SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::a02:2ac8:ee3e:682%4]) with mapi id 15.20.5857.022; Tue, 29 Nov 2022 16:45:06 +0000 From: Liam Howlett To: "maple-tree@lists.infradead.org" , "linux-mm@kvack.org" , "linux-kernel@vger.kernel.org" , Andrew Morton CC: Liam Howlett , Liam Howlett Subject: [PATCH 30/43] mm: Pass vma iterator through to __vma_adjust() Thread-Topic: [PATCH 30/43] mm: Pass vma iterator through to __vma_adjust() Thread-Index: AQHZBBHcOZh/mBGarEuk1bDv/0GJYA== Date: Tue, 29 Nov 2022 16:44:33 +0000 Message-ID: <20221129164352.3374638-31-Liam.Howlett@oracle.com> References: <20221129164352.3374638-1-Liam.Howlett@oracle.com> In-Reply-To: <20221129164352.3374638-1-Liam.Howlett@oracle.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-mailer: git-send-email 2.35.1 x-ms-publictraffictype: Email x-ms-traffictypediagnostic: SN6PR10MB3022:EE_|PH0PR10MB4792:EE_ x-ms-office365-filtering-correlation-id: 5c35bcdb-709a-4d1a-f27e-08dad22911eb x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: FQQydSipldy5iJDm/vz4nlhgBIaLjkyvIlZli2YZBM6bSw8s18BimX00ok7OWHyKoMwvBaITFICB5KA3XlOPC2ynI2faMRYVcl+HQZojY3rMEnFc8cDLs8u8I9Cwmo/jwarSPZ6CMmICD8DPxP5GmMO0XeRkp8P8ek57JvXX3Xzz8WPt03+YsFSot/sQ0TStMqqklOVVCwuKlGlwt0eMG8Z8PZn3sa6FSC6xD6Q7WeyFfaQ/XweYc2pw4FYs2r7Lz7i0w6rGz7N2mbujym7HK8e2t7Z+3fka025BrbW2JLg16kSEBkppxgiexyRQe1y+zBUIRICayonCKWnzmCwBAioeaDK0ZLBOnNWYqEFiFmxZG0smuWXonVb0ky8T/Y3tWiCCaD7mflFtIg9Y6ObN3QYv0osFdSWKZxICsnR6Trv7Xf4D6o/VIGzWdh9E2OeEu4/+EUaTyctF9Pbh1V3Up2FBgdkTzvdjDv0QrwiTcDEg1BCqGFDMAUROMN14m6U6rNpO6NfFhElZj+3GdDIHNev3DSwjcNT9OaGbc9os/uTzW0jWV3/PTGprDVkp66JHm3Nzs0Mr4k9MDcOQPr79dx4YAzZOdsP9pJEqFGC/db0G/x2zgBuIiTV0LtYuNihchZQt5y+DEEMouHb4jaN+x9C1TyyDiEWwFqzGG7GtgkfsNeqm9nVJrN1HR7kbMr5xA65Gq8HZr4N2eFzKWsu31w== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SN6PR10MB3022.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230022)(396003)(136003)(366004)(346002)(376002)(39860400002)(451199015)(38070700005)(2906002)(36756003)(86362001)(6666004)(6486002)(71200400001)(107886003)(478600001)(44832011)(41300700001)(316002)(76116006)(66556008)(66946007)(91956017)(5660300002)(66476007)(26005)(110136005)(66446008)(4326008)(54906003)(8936002)(8676002)(64756008)(6506007)(6512007)(186003)(122000001)(2616005)(38100700002)(1076003)(83380400001);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?Q?D+kXn9MZFlybRfRrQ9QQtW39yi/H/sl1rsfnDSvwbDCyotmb6FtQ8YzMRL?= =?iso-8859-1?Q?Fzy0MVbfD28jGMsazYEefGRa4zk1qFc9DzQEQt5i3gCtmr4Bkun80YFqVz?= =?iso-8859-1?Q?EY4Jbibt1g3IAlJ0bIsZa8b8wm4CwcpojuvK6eNbUDDhGFAab/A8xQ1REb?= =?iso-8859-1?Q?yFL7gss3plT2udVYI2x7DyiwoKH3an2dlP97vnfrnLfLTEq6y2KgPxIAsP?= =?iso-8859-1?Q?DiddqNsdM3rFw5nJ9Y2K4JJZCOs1My5bEiujusqpeNdqukt5auJSV+dD4h?= =?iso-8859-1?Q?c+FGTgt6HRV2nCNECtBL4AYsxFnAXWbt3IarsBAVAMEbLmyPhOlbpf4Qrr?= =?iso-8859-1?Q?YWTkIjqM9V/w/Q3iQ86IPwQdkuYBA7dfqiyA1XISrDc5uOlAs6Z8R59nIO?= =?iso-8859-1?Q?7OHg2h6EohrBobOl1HoZjgS2iHHq3SGEgpNDHAUGWGNg7cP957CCiiDg2T?= =?iso-8859-1?Q?HDCn8eBKEKv93PfFqNiHZTldc1dK3Vag/IUp6Mcp+7ZBcrmLclIDvvYyuo?= =?iso-8859-1?Q?t6DQPAEpkFh2bGpQQhE3nYBiA+kMXGPXtfRKwB4cUbLlyX+36SA0ZHxIZO?= =?iso-8859-1?Q?/7iAfXsI2aW2SBvmIuYXPRrj67ejGQ3QAvDoQDMp6ZUURFVNn/kmtMy5yO?= =?iso-8859-1?Q?i5NDMOTOznEsqD01qeBDf2intufBs602SJchsp+g490ds6Yg1WI5dtJX+e?= =?iso-8859-1?Q?AsCGSGThhPvHicVR3UKyYBW0njWQUWfAGG0JWofx9uvXQTsKnUJcFks0WL?= =?iso-8859-1?Q?KTSiKVqrMr6z46gAOgs5oJKTFul/IQ3EqVtvA9q64fiV4Xzw4LEofi0LLR?= =?iso-8859-1?Q?2I5wAzFNVe0TbxSGboC3La+hOmDJiW3tPKJCRv61l1kBrjmbbm5A+2+6yE?= =?iso-8859-1?Q?29cyUeqFTrT89AF4XTG7/Hhh9Gjkfi30LB9FGAg5Oucevxiz9y1YQqiH/L?= =?iso-8859-1?Q?qkktUEYko2FTUczkdlTf/BIo2VMEnhvro1mIz9WNXAhPRhro2Jui9pWRUL?= =?iso-8859-1?Q?+Iv2qny5EcndIuu+Owi76a71nCAor2ilwpGV0K3oIHZ86kicwSjCXrCO5i?= =?iso-8859-1?Q?jSw7vfV6zqgx6fDJqU9dVSu2KInT/o6zp3hSJl8rCZgGtC3vGSxtcIRsVK?= =?iso-8859-1?Q?fksPMYaVP1/wCZNt7wCz0vbwyG010jpxY41Kf/Po7eurDCH1n69B0LyzTa?= =?iso-8859-1?Q?gCAhEFAhXav1cTs3vUT+EnoFl11pvEe/mH++8VIf0fCDDG/BIDPUv3lMYM?= =?iso-8859-1?Q?/nObU5LkV6Kg2y1kygJcDlX1U6b3imzrkMjshUb+zvM2TnAPK3m87bAMkB?= =?iso-8859-1?Q?ZZcc/HniM1qp95q67IW98q6zeq7z3Yd8jBa1RtbBYqsZ1NX/1UMSmxYt0q?= =?iso-8859-1?Q?v+Y0BCTolO4k6Dax02l7/MSvpHqtzlpgD9K6+CC6/9m/EuKBG7StP0W0B5?= =?iso-8859-1?Q?DiLkzdI47K5G2Dps8bdD5nuuUUbrKVmYJryvQBt5j+Z3SP0UyTJGTJ/f5Q?= =?iso-8859-1?Q?FTsQ6YlmMmK+62tl+egyj2FwcnBaAZOs3u2TUsg/iDCSWH07B20W9HpRlp?= =?iso-8859-1?Q?6ReMoZSiTjH++SFG9L9sGpPDJBovmG/XcaSMJok4t0q1M4R/Fsp48c5ov0?= =?iso-8859-1?Q?/tVf2iWtwhsfKixZEJ7lOY3BbOFGQIGUnmvhtVbAiDfKZ5oCr4hAEhLw?= =?iso-8859-1?Q?=3D=3D?= Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: sBwMmRy87ExDwzgKNm2M+h5PQ4q7s9hU0KLuVdSHA6ZGb+PR0+s++/k61Tfo5hikWiVt/8DCRKT1k0skPsuPUm2H0vt+YB0VmdWn53UfgfOCzKhqFbNncEe5ZVCQgAuifPpb98QScM8+egTH9lQOo46/b8SsaS6VWIFyJDenE1hBUUeV8sgQF++k9aXDGgas/sV7L/9IPlvCmv0BpJDE8kNBvDBHWnfhFSUVfyfFqjW+sFm7yzFr93YllwhKZqwlHwMOoLAI0U11DcU+2X5Dm64RZ+1hKSlFcY3msoKGPAuto2YvObNcaqq1AE7dRr6G9LvoYX8VLr1vK6L9xHyDqJcRckdCrqSt9eKGenS5kD+tKUEk3icEZdFjy36W2AxJcCr3rab4/616shOPKzw9/BAxBawpcEBbNJMBFGRmegCcq2H/fESDpFS2ay4bfuL5EttoqZhlMtTTq383FN9iOjn9Qtyqrjmf5GQ3ja9RRiLw7YC8mcuddrOpYv5376VXxQ1EZus6ZSxWnwiRbF2rDtoqjaOHO0oN9ctW6GSudrYsDS1TgQwBq5yVqXcft6KlfFNyelVn06HPKQwhFUYJnPqKQKAA57LpNXXfINKPYuALvkA+Zwkqz/5OmH8IP3zBtA5EeGMo0T5EpG1ikdtijGHFs5kW/jcmFXVgvnyO7pRqNVztWtzsMvcjmzrJh4QLhUXD9L/jRnYvgIuEJ9GSNcC4VBYLBRkC62LhlB1RI3hiinM6V8X8XGReFvxv9sJJWLZt9YHg82YUEAe7toBAQF/IZXi+N7zJZGnhWAx4PbsY+iUdX5TEW8k1wGZm/R4KILSrgRulDUsjtqJxfZ67gCY50IJMl1VACXCUam8fYzNAHANQJ9FdfDjtX49KfBVMsbm2vQJY/eJzo7gTiVwCWw== X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: SN6PR10MB3022.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 5c35bcdb-709a-4d1a-f27e-08dad22911eb X-MS-Exchange-CrossTenant-originalarrivaltime: 29 Nov 2022 16:44:33.8161 (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: MgMyw8mTRG6aOvGiihGQ09pDdb1oZpx7kL0KTmjW6yF+s9O/ijnUgE2O8PUZevIUXV7ConVPfMrY6o1aiYBE+Q== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR10MB4792 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.219,Aquarius:18.0.895,Hydra:6.0.545,FMLib:17.11.122.1 definitions=2022-11-29_11,2022-11-29_01,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 spamscore=0 phishscore=0 suspectscore=0 bulkscore=0 adultscore=0 mlxlogscore=999 malwarescore=0 mlxscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2210170000 definitions=main-2211290093 X-Proofpoint-ORIG-GUID: TqjeCmm0Wy-MdAZ9wTHyZIeWZ2XVieKz X-Proofpoint-GUID: TqjeCmm0Wy-MdAZ9wTHyZIeWZ2XVieKz Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" From: "Liam R. Howlett" Pass the iterator through to be used in __vma_adjust(). The state of the iterator needs to be correct for the operation that will occur so make the adjustments. Signed-off-by: Liam R. Howlett --- mm/mmap.c | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/mm/mmap.c b/mm/mmap.c index f37a6b5a40d6..b1d17eb5fe59 100644 --- a/mm/mmap.c +++ b/mm/mmap.c @@ -585,6 +585,10 @@ inline int vma_expand(struct vma_iterator *vmi, struct= vm_area_struct *vma, vma_interval_tree_remove(vma, root); } =20 + /* VMA iterator points to previous, so set to start if necessary */ + if (vma_iter_addr(vmi) !=3D start) + vma_iter_set(vmi, start); + vma->vm_start =3D start; vma->vm_end =3D end; vma->vm_pgoff =3D pgoff; @@ -2223,13 +2227,13 @@ static void unmap_region(struct mm_struct *mm, stru= ct maple_tree *mt, /* * __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. */ int __split_vma(struct vma_iterator *vmi, struct vm_area_struct *vma, unsigned long addr, int new_below) { struct vm_area_struct *new; int err; - unsigned long end =3D vma->vm_end; =20 validate_mm_mt(vma->vm_mm); =20 @@ -2265,14 +2269,17 @@ int __split_vma(struct vma_iterator *vmi, struct vm= _area_struct *vma, new->vm_ops->open(new); =20 if (new_below) - err =3D vma_adjust(vma, addr, vma->vm_end, vma->vm_pgoff + - ((addr - new->vm_start) >> PAGE_SHIFT), new); + err =3D __vma_adjust(vmi, vma, addr, vma->vm_end, + vma->vm_pgoff + ((addr - new->vm_start) >> PAGE_SHIFT), + new, NULL); else - err =3D vma_adjust(vma, vma->vm_start, addr, vma->vm_pgoff, new); + err =3D __vma_adjust(vmi, vma, vma->vm_start, addr, vma->vm_pgoff, + new, NULL); =20 /* Success. */ if (!err) { - vma_iter_set(vmi, end); + if (new_below) + vma_next(vmi); return 0; } =20 @@ -2367,8 +2374,7 @@ do_vmi_align_munmap(struct vma_iterator *vmi, struct = vm_area_struct *vma, if (error) goto start_split_failed; =20 - vma_iter_set(vmi, start); - vma =3D vma_find(vmi, end); + vma =3D vma_iter_load(vmi); } =20 prev =3D vma_prev(vmi); @@ -2388,7 +2394,6 @@ do_vmi_align_munmap(struct vma_iterator *vmi, struct = vm_area_struct *vma, if (error) goto end_split_failed; =20 - vma_iter_set(vmi, end); split =3D vma_prev(vmi); error =3D munmap_sidetree(split, &mas_detach); if (error) @@ -2632,6 +2637,7 @@ unsigned long mmap_region(struct file *file, unsigned= long addr, goto unacct_error; } =20 + vma_iter_set(&vmi, addr); vma->vm_start =3D addr; vma->vm_end =3D end; vma->vm_flags =3D vm_flags; --=20 2.35.1 From nobody Fri Sep 19 02:32:03 2025 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 9FB18C4167B for ; Tue, 29 Nov 2022 16:47:42 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S236173AbiK2Qrk (ORCPT ); Tue, 29 Nov 2022 11:47:40 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:44882 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S236312AbiK2QrH (ORCPT ); Tue, 29 Nov 2022 11:47:07 -0500 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 1EC9F6C713 for ; Tue, 29 Nov 2022 08:45:14 -0800 (PST) Received: from pps.filterd (m0246632.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 2ATGOtVm013826; Tue, 29 Nov 2022 16:45:10 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : references : in-reply-to : content-type : content-transfer-encoding : mime-version; s=corp-2022-7-12; bh=RE1qYzJUPweAud9X48iXoGzgLX1BMCeUn+fFRSfSGME=; b=vsJNQXcXshc4kIs6hXlvFKXp+WPWKjPWRMuyzE6rfLVPa7mC0MEKla/pxkMBuVBl9/mN SHyQna2xLnekjlEDYyigK16YD8UhMr5+rVKGxQJbbvZRSBPcDq2JuOs26JCLAUgKMzGl v7nXgWlh9vODEuSvMsEPS9aVegvShlJhL7UI8BHsodN76zFFwOu7Y5Lmb+wyH5c55Ett ukYX7FHQMuIDwR9UVTh7MDchlBC/DLHAjFwAoLGMgsF9t9nsI4pNF3f4J/zPAFFrzTMx kx04LkQpBMk5raNqR/13mbWM7atUlOrvKNJ4Cv7w+EyM1qS3ZGgXRJNyJjs+7qF4vBge EA== Received: from iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta02.appoci.oracle.com [147.154.18.20]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3m3adt7e55-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 29 Nov 2022 16:45:09 +0000 Received: from pps.filterd (iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (8.17.1.5/8.17.1.5) with ESMTP id 2ATFkaTw026698; Tue, 29 Nov 2022 16:45:09 GMT Received: from nam12-mw2-obe.outbound.protection.outlook.com (mail-mw2nam12lp2040.outbound.protection.outlook.com [104.47.66.40]) by iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 3m3c1vkkp0-2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 29 Nov 2022 16:45:09 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=PwAvL7e4iOtX/bTxrJJqMXudKpwb66HbZ+MkEqp8CwNuCN+1iTOZpVkO5SgvTWn8rOX4lh1KFkwd9hQMd1EsIS5z0S1IDfzMMmyqzcxrENuYNZYghqIldTAh1iOXmbMOIBKMulg9amETPQae4560H+uNJzmYtqNMEsjD5aH6KWc7UiPokJqiFtNpSBNt7xrZDmMcuPBJlLwPZwpG6iXmkBNozI7mJsHPH/JvWr0Z69892gmn7RXXQuW5vvJJKm8eRYRHtEtVbD2FVtAYFT5jixWS80KMCRpXN01z62kd3OfPWkBAJo/agLdWrm+nFJwY7HM3rQ44YYKIuh1WZDJY1Q== 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=RE1qYzJUPweAud9X48iXoGzgLX1BMCeUn+fFRSfSGME=; b=jsIApXeZEYxRd0LA4OF3KQ9YyW059k9N2SHM7YEao/svxAKRAGuSJNEYaXOrTW76KsGEqKzLVbh0VzG7G9T8Rxg5KyjV0ZRh+x0LxIcdAoNxk361kqTkJiaF9Y3vzm7pgAJ0aF7sxXedXe0A7pAzWODNGzE5PZcW1vch1dzc5Zprn9nxuOzP9uuJzbW4HK7N2PkhIkptTX/InGs/pIjXYZsWKywSKWiueqi+hLPSAzb3nJwtH2ZaYInNwf2UCm5oztht5FeNkAieT9Tj5bZe2R3bH4kGR8rCgTfEB7J8OU33pwSRf2VlaxXWI0jdpKJx5gjXWcdrdpC8crT+9EJF8Q== 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=RE1qYzJUPweAud9X48iXoGzgLX1BMCeUn+fFRSfSGME=; b=dIIwS+8kRDHf62pIP+XwNIP5zWKK+3U+0oZ0reE/vPJWzH+cTWslwefH1EkKZqAsz0aCEhrgyTl8eGgFFP3VBsF2Qp1iUxyMwan6DBkq4Pe9TPl4tjP8mdaZdM8oJKfdqC30nSYc2Znrsno8anPNZbtVxCgvgvWDAUo2v0d58tg= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by PH0PR10MB4792.namprd10.prod.outlook.com (2603:10b6:510:3d::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5857.23; Tue, 29 Nov 2022 16:45:06 +0000 Received: from SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::a02:2ac8:ee3e:682]) by SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::a02:2ac8:ee3e:682%4]) with mapi id 15.20.5857.022; Tue, 29 Nov 2022 16:45:06 +0000 From: Liam Howlett To: "maple-tree@lists.infradead.org" , "linux-mm@kvack.org" , "linux-kernel@vger.kernel.org" , Andrew Morton CC: Liam Howlett , Liam Howlett Subject: [PATCH 31/43] mm: Add vma iterator to vma_adjust() arguments Thread-Topic: [PATCH 31/43] mm: Add vma iterator to vma_adjust() arguments Thread-Index: AQHZBBHcINIegAxAhESGSaQNm2bhHQ== Date: Tue, 29 Nov 2022 16:44:34 +0000 Message-ID: <20221129164352.3374638-32-Liam.Howlett@oracle.com> References: <20221129164352.3374638-1-Liam.Howlett@oracle.com> In-Reply-To: <20221129164352.3374638-1-Liam.Howlett@oracle.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-mailer: git-send-email 2.35.1 x-ms-publictraffictype: Email x-ms-traffictypediagnostic: SN6PR10MB3022:EE_|PH0PR10MB4792:EE_ x-ms-office365-filtering-correlation-id: 32faf6a8-b307-4b2a-15a1-08dad2291231 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: Z25Bfn/THauRl6lcmK8NPoZvOS47U5WTpV46ejdyxTKx71jopfRJXv38TRNm2dVT4tGS+hxqw2pU9NtrcvF/dmZmVaSWGzBye0CtxORQzbbDKyYiY8upDfkbjRqZOrE0ab+oMX1eRaH7PEGpasVcorWeQysaS3+VEZNUwgdDkq2IwKDndG9yAI7yCEOQTb7qaYNsOhMgwPdf6WfGUl1rzwj9DOWIzlU/tkIC5+PJDYs/qsq0WGEKvT00SG3kVIWZ0q59aVPV9OcdKc7ni0vAZa2kGVP2FshRd609QpnmPPWcwl1zfG9gJH4zjhuCejsyJu4IMRjokLF8aKzyFIO8QFfW5ZS7eTfqamCONnLBdfiNLTHpZfzSRtzVGsUv7XIg7M5lJh92zfxxcT+3gRDjxNvDr4U+RZVjcESK2SB0vs4HuTeek1fOdCwhsnyPYcqdf/fYaHA47sCBwWYtpOq/kZ92pRY4i6NNL9fVh66rOJqKZo0J2gDMZMekBDkq4/sjIlEQ2x3SYzMMl3IyhJoqpfAdvbQ0SN1cWyGjZZZXQipHFq4kbmer2wmvmKbbj5sOb/122wiF/D4NHOqlKvroiTPb2vFmPR5Kr58ml9Q6sQTZSoV+eUdGKR2yzEMT6uwK+2mrTWn8ZC6qYU1hJzqclk4CAPTpko38q4KLxN/iyFTsV0pSwnJtVPoc5Wbwo0aKMWpurCW35VF0ETIeXD3CmQ== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SN6PR10MB3022.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230022)(396003)(136003)(366004)(346002)(376002)(39860400002)(451199015)(38070700005)(2906002)(36756003)(86362001)(6666004)(6486002)(71200400001)(107886003)(478600001)(44832011)(41300700001)(316002)(76116006)(66556008)(66946007)(91956017)(5660300002)(66476007)(26005)(110136005)(66446008)(4326008)(54906003)(8936002)(8676002)(64756008)(6506007)(6512007)(186003)(122000001)(2616005)(38100700002)(1076003)(83380400001);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?Q?GUeccbMUr+w/5GgxjWxDF7Loul3sCxsinZPKWg6zXBpv1VmvgX6eNWzBmg?= =?iso-8859-1?Q?C6Q3phOw+C8qMWBTdXGkBAb+XZ8E+5C8BPL+ovGvzVTggxpYP0h7T4O0sx?= =?iso-8859-1?Q?tkAKn8euUbZBbH/P4xOnUpygIbVqo9Aur7cS2eV8uG2fU6CJDoJD4yBP11?= =?iso-8859-1?Q?+0W1brcreAau8OdJBhOYp1Hln7v0V5305E8VdlzoYd6AWD6Yhtup0Rom0F?= =?iso-8859-1?Q?YwdDFyOFg6Gzc4TkbGwbDW2IdO0TStFge9+PE9uJmGMKrmC7UTlNpB7oO4?= =?iso-8859-1?Q?kLsYYQMA7jP8rw2PmeVmxEMT1IqBb5RXUTYCiz16wcWZeG26uMhwQQuKkW?= =?iso-8859-1?Q?6cGf+TdOecshj4flBrGeeORZQk+0PS7JZ7xl81Ui02F94Jo3UCnuud0wWB?= =?iso-8859-1?Q?+5sQjOAt+bskcOYcwevGc8rlw19dtg/1kMQAnLGhxu+t4UzF1GOAKOgTLd?= =?iso-8859-1?Q?w1nVK95y6R43tlKsSOTETa6vZRnFWYqggbydC0q63jq22vzVNrGWzo4HjQ?= =?iso-8859-1?Q?/pKacuNPRH+lLbV3V7r6f8MqoGFcVxyRTDTa7/0lU14d4u4qkermxFr01a?= =?iso-8859-1?Q?xlCwrC69q+SRA0b9bBrAks2G+tla3CBw18dXLKFSDTmhfIfoSG1BcPH6qq?= =?iso-8859-1?Q?iEGuWM8h5SJWvNJyjcAM7etgRcsWU7oCYVop88/Dktue2ZEMoUDrpBJxdQ?= =?iso-8859-1?Q?14QZio7fGPgSCSs1uBFktHs6ktxipfCPapQzhsJHiF4zC3M0K7N0Kxo7c7?= =?iso-8859-1?Q?lxqMDLAzT4mKMkqIXx1h9dnC1XZkAh9i3VTLmBLkKFRoADxSxCWJerJl4m?= =?iso-8859-1?Q?1M1fIU8KVLQ34g6jJpSHi8RGgCBWjhRQ7eylz+VrsvJz+ZzLa/k3jFRv9Y?= =?iso-8859-1?Q?opJntQvIrJU4Lx9fPMy+Q3kkOmiYbrWeMGq3Dt7qp5/fjCnpHtMK95JlKm?= =?iso-8859-1?Q?zGviBzDpEq6PTQFnTO1+BXOhSvtbK/06cgwM/zQT+VcZUI493cSq6v0A61?= =?iso-8859-1?Q?hXKhlyR8gt5Ra4yyO/u4Zl5g/CTr7Dr61/dEBZWYZGYfUq4N0ZfQje4f21?= =?iso-8859-1?Q?EUkjuBgKna8uA5nQXsgA4pML/WGwN7/tj9eStOAbRhO8AN26fUTk36h2SW?= =?iso-8859-1?Q?e0j3BltV3xPl954m3F3yvEJvXTHV4qyE8cy9SmXcE+vpze1Hs+b96Itlol?= =?iso-8859-1?Q?OuOl5DmgW4yuKpphLSDV/Va4uN7MfhXT5zno11Dz6ViPTDfbB+SePEApOq?= =?iso-8859-1?Q?vwcT7LPKYqPH7XV1mQptJfIwQz8Y3PqMfXmzDUY/iH54Ai6yHesso7sy26?= =?iso-8859-1?Q?X9LooraIcMTlBFtrD/qseO04mEaRIgjDfLx5PKzI6LuhKN669BYXkMq/Jm?= =?iso-8859-1?Q?XK4eN/lTrqVknNN4nkG28/TQQFDNxm2Pb9+N6mDPhr6Une5/bCuEKFlBZ5?= =?iso-8859-1?Q?+pdnK73W3pooM1HDhlW1HUUDryVLlHnMaGn1A+UBzsWjMQSgWwkrhEBjoo?= =?iso-8859-1?Q?T5FljFwE0b0/Mzi0QkMXlvii5Yc8e5FNMe/wYjFX5jmWNI8UGrBZgQzvrU?= =?iso-8859-1?Q?EwRbsbuEkIEIaIqGTI0+DpnVWGdpxo4w7GQ7a0dtxFpdNv/nr+g7k4QwKc?= =?iso-8859-1?Q?G3AAhbnyDpMll9adoP5c7aDaEEIiMaRfp7efrXETqQVmHD+gWXvgDz0w?= =?iso-8859-1?Q?=3D=3D?= Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: u75OXopxrQcXe1eTs5ucJLmeQILjsbGOVAxCxrly21UXfXBDXYxORNODckhF+XYKmlOv9usLLXlpVAExhiBZzLbqtubpsI4A0CiLy1itvXbCqdIlVSEhR7rqFaS1KQwp5q3K2fuRgixWU9g3fT9UsmO/KJFNT8BccgWTizTItCMJ/qI8N2ej7rqkmkk2X+ZHTd0po+FtS7iixPpxT28l+XZ7l5S5qmwt7qQv/54NwWJFd2kKpymhN6hwmaPWlxHT53fyBQNogogbdxQZ75A1qcrt/eL2L6ZHJVFIrF2yK1B9g6ILiRAGtuMjPBFVroG9oNCPaOHEkdtFCLWsl5oP0EAdfVbxv4E1uiJp5SK42MCiybdJPv1sczxV+Zzze3w/f57dYen5U35XaBsXu4kGswYSzwJ2w92VeujxDS/Xzh7Z+TwSDEVepzuPcaQ43peKcK/LmYqLSD6T+a64oX0I8lp/bCoHC6ZwG3AEFCHlHTbrXPkeeUvAt0bGxEhJ9oNoUs77rXtY+TXKsp4V73YxMOW7Nx3OdMllVMKLGqft15mtUIJGwZul901QWlasA9lvdBqFE3dZSMB0wIcnW55B9BbC62P4OH4W7bShrrl5MiO7hgVMsu1yAnX85WW3IktTRQfwzlHT91NqeJGL1pMlhmocazPmB3o+8SrUeNR6No4MR7vi7F5YDrkaeAUEnyTU/5lSb0FLK4F2Ie8d4RPsaycl1zfe813GSvA1BlrJMGmlVmfGWKr3EOcla5JXOG5N8IAIyRa36NUS8FIbOX2cYtmBt9VQKoR4Mbqq+CDdfJD6o1u2DAhLVzKl6HSfDY5qqiu5JJ/jgIeqcei6xzcIIvUuGr4hEeKUQHxqa76psxtQWKr1dlWIIzgZRSJSD1V99oTxIksdO8ALX3d9UeS6Fw== X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: SN6PR10MB3022.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 32faf6a8-b307-4b2a-15a1-08dad2291231 X-MS-Exchange-CrossTenant-originalarrivaltime: 29 Nov 2022 16:44:34.1598 (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: wtbCV/stATfztdrnSgMhBuGYsHo2lkAy8FLDVNEFqTA7dFxuLVvE04Z8HRpgFmPO9jv4vb2/rXH1rnHeUFVW+w== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR10MB4792 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.219,Aquarius:18.0.895,Hydra:6.0.545,FMLib:17.11.122.1 definitions=2022-11-29_11,2022-11-29_01,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 spamscore=0 phishscore=0 suspectscore=0 bulkscore=0 adultscore=0 mlxlogscore=999 malwarescore=0 mlxscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2210170000 definitions=main-2211290093 X-Proofpoint-ORIG-GUID: WwNS8ncFWX6SLSR66VvwuzOfMC3IKYPF X-Proofpoint-GUID: WwNS8ncFWX6SLSR66VvwuzOfMC3IKYPF Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" From: "Liam R. Howlett" Change the vma_adjust() function definition to accept the vma iterator and pass it through to __vma_adjust(). Update fs/exec to use the new vma_adjust() function parameters. Revert the __split_vma() calls back from __vma_adjust() to vma_adjust() and pass through the vma iterator. Signed-off-by: Liam R. Howlett --- fs/exec.c | 11 ++++------- include/linux/mm.h | 9 ++++----- mm/mmap.c | 10 +++++----- 3 files changed, 13 insertions(+), 17 deletions(-) diff --git a/fs/exec.c b/fs/exec.c index de9eaf5926bc..8d2b47e436b0 100644 --- a/fs/exec.c +++ b/fs/exec.c @@ -698,7 +698,7 @@ static int shift_arg_pages(struct vm_area_struct *vma, = unsigned long shift) /* * cover the whole range: [new_start, old_end) */ - if (vma_adjust(vma, new_start, old_end, vma->vm_pgoff, NULL)) + if (vma_adjust(&vmi, vma, new_start, old_end, vma->vm_pgoff, NULL)) return -ENOMEM; =20 /* @@ -730,12 +730,9 @@ static int shift_arg_pages(struct vm_area_struct *vma,= unsigned long shift) } tlb_finish_mmu(&tlb); =20 - /* - * Shrink the vma to just the new range. Always succeeds. - */ - vma_adjust(vma, new_start, new_end, vma->vm_pgoff, NULL); - - return 0; + vma_prev(&vmi); + /* Shrink the vma to just the new range */ + return vma_adjust(&vmi, vma, new_start, new_end, vma->vm_pgoff, NULL); } =20 /* diff --git a/include/linux/mm.h b/include/linux/mm.h index ed6495c66703..b5cdb9d9e987 100644 --- a/include/linux/mm.h +++ b/include/linux/mm.h @@ -2695,12 +2695,11 @@ extern int __vm_enough_memory(struct mm_struct *mm,= long pages, int cap_sys_admi extern int __vma_adjust(struct vma_iterator *vmi, struct vm_area_struct *v= ma, unsigned long start, unsigned long end, pgoff_t pgoff, struct vm_area_struct *insert, struct vm_area_struct *expand); -static inline int vma_adjust(struct vm_area_struct *vma, unsigned long sta= rt, - unsigned long end, pgoff_t pgoff, struct vm_area_struct *insert) +static inline int vma_adjust(struct vma_iterator *vmi, + struct vm_area_struct *vma, unsigned long start, unsigned long end, + pgoff_t pgoff, struct vm_area_struct *insert) { - VMA_ITERATOR(vmi, vma->vm_mm, start); - - return __vma_adjust(&vmi, vma, start, end, pgoff, insert, NULL); + return __vma_adjust(vmi, vma, start, end, pgoff, insert, NULL); } extern struct vm_area_struct *vma_merge(struct vma_iterator *vmi, struct mm_struct *, struct vm_area_struct *prev, unsigned long addr, diff --git a/mm/mmap.c b/mm/mmap.c index b1d17eb5fe59..6b05e1dbf705 100644 --- a/mm/mmap.c +++ b/mm/mmap.c @@ -2269,12 +2269,12 @@ int __split_vma(struct vma_iterator *vmi, struct vm= _area_struct *vma, new->vm_ops->open(new); =20 if (new_below) - err =3D __vma_adjust(vmi, vma, addr, vma->vm_end, - vma->vm_pgoff + ((addr - new->vm_start) >> PAGE_SHIFT), - new, NULL); + err =3D vma_adjust(vmi, vma, addr, vma->vm_end, + vma->vm_pgoff + ((addr - new->vm_start) >> PAGE_SHIFT), + new); else - err =3D __vma_adjust(vmi, vma, vma->vm_start, addr, vma->vm_pgoff, - new, NULL); + err =3D vma_adjust(vmi, vma, vma->vm_start, addr, vma->vm_pgoff, + new); =20 /* Success. */ if (!err) { --=20 2.35.1 From nobody Fri Sep 19 02:32:03 2025 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 09DB1C433FE for ; Tue, 29 Nov 2022 16:48:22 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S236363AbiK2QsU (ORCPT ); Tue, 29 Nov 2022 11:48:20 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:42238 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S236226AbiK2QrW (ORCPT ); Tue, 29 Nov 2022 11:47:22 -0500 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id EBDF26C73C for ; Tue, 29 Nov 2022 08:45:22 -0800 (PST) Received: from pps.filterd (m0246631.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 2ATGOeuf005604; Tue, 29 Nov 2022 16:45:11 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : references : in-reply-to : content-type : content-transfer-encoding : mime-version; s=corp-2022-7-12; bh=XGmyq3cB/rLlWYlRNysOM7VIOIrvlGoPMWL5Np8VGjE=; b=Uv3z7awaUEQv+2NTZXNcxjDOyrbi6zwI8HgOjJNOkn0wCJM0SxlZqmg3L7uFMFS1KPTQ AHb6hiPKU5sNBK7TrviQ+ee1uuX6YD2bTMcBFMtUHJldMsElUY5TvVilpa9iR4bIm6eZ 2wKi+KNdjIVeUM39AlLbgvgDqv3bTF6L0fFBCjQkCYGa2H2zYq130fLkmxXL5jTj7Bd1 FBSDoeRKKTl4N2i0Bed3uh6pGQK1QJRhgY90UwJwsCfalhq5MYjAYr86V5q084Hy5i0p pEScVsIDGsqf9xuUS/yyBlPWaTwhRyAAYvIeVNjyGqvNf1FtdqcD519Iv4UK/fKo6eJe RQ== Received: from iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta02.appoci.oracle.com [147.154.18.20]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3m39k2qfcn-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 29 Nov 2022 16:45:10 +0000 Received: from pps.filterd (iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (8.17.1.5/8.17.1.5) with ESMTP id 2ATFkaTx026698; Tue, 29 Nov 2022 16:45:10 GMT Received: from nam12-mw2-obe.outbound.protection.outlook.com (mail-mw2nam12lp2040.outbound.protection.outlook.com [104.47.66.40]) by iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 3m3c1vkkp0-3 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 29 Nov 2022 16:45:09 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=iuXQLIbWupqVyaR/7Q4EFgXnqleQ/a+tQDraGp3FkagldRaFBD2DraRIXfDJXUz2NbpJp47DHKDd5q/EOw//vORh7aii8dMjIizkCiVZjQoxOabZL4qkcGe6cWOIgfm0x9bgNiYSd1icE+kwurNokDrJHfua3jSZ4AHV5YVDS+PmprhX9eOoyGSdTz3eUehYaEgpxGLP+6F+rvrH1lnOliTIu4rK4r9h7T+0ZYNjCCQjWhcUGKeTBDNRVbAljhq0TnNMHcaI5YNwL093osk2eU8sAmUTpAkaH7YfLOdiY/EgfJxNnvQg5aDympMElxbEj0wFJYW/rwJMPFoQF+YUzA== 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=XGmyq3cB/rLlWYlRNysOM7VIOIrvlGoPMWL5Np8VGjE=; b=mRXxIsCORvOcAyJKYRf08lYwqS8+aKAw/phezbcwzPJvtrgI55KY5Eoo9Vr97qicsG3B9ofB7/gQtOies1avOuIQVVxh829LWebVRAxnUEcQnkJ/GS5H0w/Ml9yr9IWTMtBH6q7cw5J1oYL5nHSJ2SIAdLBXe517gQGR/j4hNa0dW2k4ZaNN2ApLS9T8CxXjOPMWoJhgdYgDuHcwKXeal5ifbD4ghzzt/xaNkNTxQKr75lZNOk2cV+OAVZHUGkhDDMwvcqqo1IA/DjCkKdsFRvuZpEXd5yza3vabfa7M8vBIIfyDhoyTSJGrV65qQcCGtxmX8uKljl3zBQx/3XRkag== 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=XGmyq3cB/rLlWYlRNysOM7VIOIrvlGoPMWL5Np8VGjE=; b=pGJo9oRUzKkvZSWQMpKr8fZ/WTHi39mONblzEo6UiecSrVc1ghBDz1hJ9mk1MGPWn2wT4UGxpj5F9QLVMTpm+MzAsNt2riPdVEYZQEmkrRPXDE+9ynnPcKJR0o5P8mW+KZkUpasfyNFt1bxy/EI0k2/xWLJ0uw6ayJcPolOTySI= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by PH0PR10MB4792.namprd10.prod.outlook.com (2603:10b6:510:3d::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5857.23; Tue, 29 Nov 2022 16:45:08 +0000 Received: from SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::a02:2ac8:ee3e:682]) by SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::a02:2ac8:ee3e:682%4]) with mapi id 15.20.5857.022; Tue, 29 Nov 2022 16:45:08 +0000 From: Liam Howlett To: "maple-tree@lists.infradead.org" , "linux-mm@kvack.org" , "linux-kernel@vger.kernel.org" , Andrew Morton CC: Liam Howlett , Li Zetao , Liam Howlett Subject: [PATCH 32/43] mmap: Clean up mmap_region() unrolling Thread-Topic: [PATCH 32/43] mmap: Clean up mmap_region() unrolling Thread-Index: AQHZBBHcwoih5czY/UCS4h9Cleh56w== Date: Tue, 29 Nov 2022 16:44:34 +0000 Message-ID: <20221129164352.3374638-33-Liam.Howlett@oracle.com> References: <20221129164352.3374638-1-Liam.Howlett@oracle.com> In-Reply-To: <20221129164352.3374638-1-Liam.Howlett@oracle.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-mailer: git-send-email 2.35.1 x-ms-publictraffictype: Email x-ms-traffictypediagnostic: SN6PR10MB3022:EE_|PH0PR10MB4792:EE_ x-ms-office365-filtering-correlation-id: 64dabe37-894d-42f4-cc5a-08dad229130e x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 9JXqyakU7fFFabESP1BhDPfaP9L0GMFERNbKdCvKieR5VWFmILpQ7ZtjQW+4jN7Lf4PugjqSxLP3OmYNzBOtioEXT66/5PYnJpd0RZUWVmu3pekWuwwfIyeAGGdbZ4n59D5DOQXwWuvu1opqQ51LRlYPNXNzySi4nH1jCEHL+Yx+5La0V9WPiu2LqQ4Ny6uWAi6xoBpWdx+w1K5GK74edSNNu3Iw3anFugnvyJ1yLGWZDwayDL/d49jBDnoN8o6BeSDlZl5UkQDb7pjpCgAyBBbblk9LTq7n9ZK6c2h1jgNWOEKtNBnE7MPYjWyCkBS8gzZAPiifAjsxvlwu9WF4CZa5QGGgcZvlmE91nRyrH6kGrSejAiYskXOb/JZ6yNzzfYQvn2Xg5uQYN7ovrPbJLJBFTdNVqzNss/089u3GII+mfmqmJfH1ZEaGOPfvyvqupE19uHKO8y0lOFJnfWN66E7kG4oC0mhzUruyZA9vUhYAZDLMJEmq52SK0tnFIplTXmssDI6GiLmaYzsL/2AeuOuOkyYJynJ6tBrYBhe6kFrm3gDkLN4tZ4wkaigX+3uEEHz7HXYvjh6Z51rR5g8C3PskUksf2+gfbuh7lsyqMKOGrwQLfd2Y6e53e31P3v44ZjT0BW7FCXx5JCmT4BGu/npdyKlhqIq7i5OrKxfC4EK7jPuc+HV2I8qJbeLOBU7CwQamcBy7KwaJajqHRt//7g== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SN6PR10MB3022.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230022)(396003)(136003)(366004)(346002)(376002)(39860400002)(451199015)(38070700005)(2906002)(36756003)(86362001)(6666004)(6486002)(71200400001)(107886003)(478600001)(44832011)(41300700001)(316002)(76116006)(66556008)(66946007)(91956017)(5660300002)(66476007)(26005)(110136005)(66446008)(4326008)(54906003)(8936002)(8676002)(64756008)(6506007)(6512007)(186003)(122000001)(2616005)(38100700002)(1076003)(83380400001);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?Q?usnnlj476qc2QXoxVGATX1hipZgOtAQrzZqqeQIEW5K3fiVefYrgGbQ4gQ?= =?iso-8859-1?Q?/rAQCmp/gcRVYJ4oE0jAPIysImxvnF2LcS1y3/m7/t4ZnIInKBEY5VkQbT?= =?iso-8859-1?Q?qMC/vaTxZ6wvoZIpdDPg8uN1Sd9hFTwPHxV0JS43VYPJ0aRHep4b1HN/P+?= =?iso-8859-1?Q?xrmEZz8NXjkPkvfWrSI1cc7jOhax5oh8p0kbQb6JarQ2sWSR51fmc6U6g1?= =?iso-8859-1?Q?arWLaOeBt6DOyjN3HROR+NEy5hUp/R4etGM3h+uHjjoe7N7jteRHkPxbAa?= =?iso-8859-1?Q?AnqODAUb39i8KjVuV8Jl94HUsfiUhkwQoXmXIubu+yGZgN0DhMIqFIFDd2?= =?iso-8859-1?Q?G3yhjkMKGSDWOAvLXMvrBNVOdmAiesGKWrnWlXeIMY++ihB0m6NCGekAJn?= =?iso-8859-1?Q?V9oQ4O1DJG39pVvwHMuWUJtdVFERjucZHo5CFAVsPW1VeHQYDa4XFYwsuw?= =?iso-8859-1?Q?hscX8XnwPj78M3vfM3kLgOsDyKNrKjT3UDBWjeNB4IypYAiExcFrrZUXBv?= =?iso-8859-1?Q?lFNvR8GkerXHpZfujej4hZnOjjjZ7cYLJkOW5iarNXos5rhBJXii8u3IY4?= =?iso-8859-1?Q?R9ddAtMJ9rZvlQt/hV4X1cbgMdSLKRvcgV1ZIV7L8/XRIANHtK7F+bvYnZ?= =?iso-8859-1?Q?9VHuMabA8rDTW2zyLyPg6Ugk03koyFEk6H1mZmlt3yK7LRO3EqaIprLGOS?= =?iso-8859-1?Q?9N8+kZB05XinwSLqDiPIYy3FWFV9P3VEZGe+1DO+fWqcQWQUgE0XuYv3Ct?= =?iso-8859-1?Q?pV5nQNMFhqikYYroiH3KtF5SDw6NB/RVvVQNuE5QFGth8Gx0yfZLqzydok?= =?iso-8859-1?Q?QCixVXXoEHUhn0JHIQMrWRmjOQQYDCwRppMw1B3XLbhXMMfg+BVlWYQvNI?= =?iso-8859-1?Q?qCrKrkuF0uGOd6aQshJvJtc4k86AfbsHnSiFgi8U4F9RFSAW7I6TJ8EsFe?= =?iso-8859-1?Q?iwuMBlbelICxsp1TnJQveI20cD0nM/GzzbbXMwd+rBJJQgPOZi3Dz+Efwh?= =?iso-8859-1?Q?XwsQX/eroH1BBkbdzko+89dfLpYz8HCpd1JvDOvDyQMT9jVPgcgOlTSGN9?= =?iso-8859-1?Q?271vFLM2G8ILpOrb31moEvDkj3/024nadIjD46vhJmhQbuRAqPVmcn7nXT?= =?iso-8859-1?Q?g1GcjGn29pB4WH79iPLCtU8NlFyoe766bPZSudJd+W2RaeICOyaCoDn+JA?= =?iso-8859-1?Q?gz8/Xm92mMpFfCFs+FpYQnVCUj1IUsHd/CeOGtF2G5fkkq5p5MiO0193ca?= =?iso-8859-1?Q?cx02aKpX6Ek8J+CvIsHXLasWW46RYcU0/1nh59aYYP/wklsR2Xn7mruvqv?= =?iso-8859-1?Q?pEfWLVFhHn8jlqxDwrmL/QFzD82O+f2P999HMqgCiXeIT7OOgIn9erLc1F?= =?iso-8859-1?Q?STTsML+t7QmSf1aW06cVFCOQAo9+hVK88lNBslGr8EGGu/dXXMd/wKgNJ1?= =?iso-8859-1?Q?BN9Gcz16cIS1mfcHMQytQiOW3/16qjZi5dsvjUkyEdIGtZCr1MTZtFOYKF?= =?iso-8859-1?Q?Jd+7adokE6dEpMMQvsnboejHtOmh7L44SPg2qddZxd9kBB9xMfD1Kd056h?= =?iso-8859-1?Q?k2Ya6nPPwjOI6/xmHXZofgKLp4Fy9EN/l2vyXTfjKKiF0m5OM2DCf4Bz7+?= =?iso-8859-1?Q?GATx4IH5RtUC98+cTOnXVoqSTyCLH6KtwnLJaTOKak2zLgKOiCuHwdBw?= =?iso-8859-1?Q?=3D=3D?= Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: kUUiTvEheQ3j7M0bbE5edT4AYGkVUQAjDXHLgexS74igO0WAh9cbtxHacssXpoynGgoADCY62WbeEXe5CLQIOOaacTlxtY5hZcUIDbqXB6vzCqm3q6o2AjEVLUfd4nG4RcA+vtbfmjFLaXAWb0rWc8hoKcTYN4UcDoS3y90KvfYLK+5X0+ZJ8jl7WAzfjBmk9mtped7JjTolMrOYLSenXvAqUN++goesnNhVIt7X5ME9nzhfuNQQhokl2oZaIWLK7o5k6OnpkiezI75VzHKSRuw1CBeLHrbhc5yalNsT4ofA6DhxCd+Pa5gilxpOu7zcAG9A2WJ8b+YljQHqY9uk9kF6XlM9+wojELRISTugXmBsxB/eBfuuyqasBhPBTAwLwodH+qOO54T83ukL+4qPhvE8W32ABTL1hPWSLnvqxy6nbztjjhDQvkzeMl4iA/8+KQsoV5tWnJSLrsBCguVeB3UarwkGdL5STzbd0QEapF7MvLIM6/mnHfQJqGHK6B2oHogH76t4IK7Q1BuuTD9Lb2FKDkJNW0ZL9aCfpBB3EnU/L4GflKtle6DMjF2yz0LzzKjKOpXJwKy2ITC0ENsIvRgg9pYk7Qo3E71KLHo5NWS+01nDhvACUKzJVKjnxmfKyiApENaXlH1wQjPwEQHCuneZpofWUvLbNIdfBNfCYDFGoFUITVLZZfbzfHx75heRKlZfaifw6WMWeA4xb+KPxv8GIY/wCe3DUb8g5FEFvdCvnfnamv4497K3noZYDICwQawI1UPgATfDxAMWKowsd9SfAEbnn/tTl48gNKCnu37sFQa/PHYkK2rBuDP0YrJLf9nfw+aB0SIe3E7bi2ywShitsgOqZITnmmbwg/dpxnnYBojGws6RENHkMpUIxxymtSPMqkKFKAsheqhIpu3omXLhdTEAf3LMKWq6bDPoewg= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: SN6PR10MB3022.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 64dabe37-894d-42f4-cc5a-08dad229130e X-MS-Exchange-CrossTenant-originalarrivaltime: 29 Nov 2022 16:44:34.4723 (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: utYxDYz+mrsR0Iu7HR464uAQNN79l+gA4/a8y6xjO1QldmtE7tBKpccR6YX5YvPTNXZyhv3wUC3ssivYaL35Og== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR10MB4792 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.219,Aquarius:18.0.895,Hydra:6.0.545,FMLib:17.11.122.1 definitions=2022-11-29_11,2022-11-29_01,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 spamscore=0 phishscore=0 suspectscore=0 bulkscore=0 adultscore=0 mlxlogscore=781 malwarescore=0 mlxscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2210170000 definitions=main-2211290093 X-Proofpoint-GUID: 12fzLJIFI-E5w8L4VZimEcp_HIreA-Hm X-Proofpoint-ORIG-GUID: 12fzLJIFI-E5w8L4VZimEcp_HIreA-Hm Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" From: "Liam R. Howlett" Move logic of unrolling to the error path as apposed to duplicating it within the function body. This reduces the potential of missing an update to one path when making changes. Cc: Li Zetao Signed-off-by: Liam R. Howlett --- mm/mmap.c | 45 ++++++++++++++++++--------------------------- 1 file changed, 18 insertions(+), 27 deletions(-) diff --git a/mm/mmap.c b/mm/mmap.c index 6b05e1dbf705..af611f805776 100644 --- a/mm/mmap.c +++ b/mm/mmap.c @@ -2660,12 +2660,11 @@ unsigned long mmap_region(struct file *file, unsign= ed long addr, * Expansion is handled above, merging is handled below. * Drivers should not alter the address of the VMA. */ - if (WARN_ON((addr !=3D vma->vm_start))) { - error =3D -EINVAL; + error =3D -EINVAL; + if (WARN_ON((addr !=3D vma->vm_start))) goto close_and_free_vma; - } - vma_iter_set(&vmi, addr); =20 + vma_iter_set(&vmi, addr); /* * If vm_flags changed after call_mmap(), we should try merge * vma again as we may succeed this time. @@ -2702,25 +2701,13 @@ unsigned long mmap_region(struct file *file, unsign= ed long addr, } =20 /* Allow architectures to sanity-check the vm_flags */ - if (!arch_validate_flags(vma->vm_flags)) { - error =3D -EINVAL; - if (file) - goto close_and_free_vma; - else if (vma->vm_file) - goto unmap_and_free_vma; - else - goto free_vma; - } + error =3D -EINVAL; + if (!arch_validate_flags(vma->vm_flags)) + goto close_and_free_vma; =20 - if (vma_iter_prealloc(&vmi, vma)) { - error =3D -ENOMEM; - if (file) - goto close_and_free_vma; - else if (vma->vm_file) - goto unmap_and_free_vma; - else - goto free_vma; - } + error =3D -ENOMEM; + if (vma_iter_prealloc(&vmi, vma)) + goto close_and_free_vma; =20 if (vma->vm_file) i_mmap_lock_write(vma->vm_file->f_mapping); @@ -2779,14 +2766,18 @@ unsigned long mmap_region(struct file *file, unsign= ed long addr, return addr; =20 close_and_free_vma: - if (vma->vm_ops && vma->vm_ops->close) + if (file && vma->vm_ops && vma->vm_ops->close) vma->vm_ops->close(vma); + + if (file || vma->vm_file) { unmap_and_free_vma: - fput(vma->vm_file); - vma->vm_file =3D NULL; + fput(vma->vm_file); + vma->vm_file =3D NULL; =20 - /* Undo any partial mapping done by a device driver. */ - unmap_region(mm, &mm->mm_mt, vma, prev, next, vma->vm_start, vma->vm_end); + /* Undo any partial mapping done by a device driver. */ + unmap_region(mm, &mm->mm_mt, vma, prev, next, vma->vm_start, + vma->vm_end); + } if (file && (vm_flags & VM_SHARED)) mapping_unmap_writable(file->f_mapping); free_vma: --=20 2.35.1 From nobody Fri Sep 19 02:32:03 2025 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 74F83C4167B for ; Tue, 29 Nov 2022 16:47:57 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S236310AbiK2Qry (ORCPT ); Tue, 29 Nov 2022 11:47:54 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:42226 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S236317AbiK2QrI (ORCPT ); Tue, 29 Nov 2022 11:47:08 -0500 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id F25B55FB99 for ; Tue, 29 Nov 2022 08:45:16 -0800 (PST) Received: from pps.filterd (m0246631.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 2ATGOgx9005680; Tue, 29 Nov 2022 16:45:11 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : references : in-reply-to : content-type : content-transfer-encoding : mime-version; s=corp-2022-7-12; bh=0EzQlHTr4IVoG9FN3tDYFD5FcrsBLTtgf060eSOj39A=; b=STMKwKtuRH257NBD78u2yhCjTs9/lVTJ5ntVCxaSbdhJVOPh4osoWp0lmT7LTWej737X 2FdgTR2sQvTdX9fqGAT6htb23YDZ48+4bhqPv2N2oGCxGd7N9yOhOuNjNdISpaHwC/Lj Co7hjH7S7CFbC/b8EM7ntf9hhcAJKpEZWkT84eVbLBQnV1WInIQx8Lm/JX0JlMOaookH dypfPK8V3Cxwy2619fiQDqqQqyN0p4YJ2rbmOXAdbg6YeW+huUYGT4mMnWpIWUR+8VKo 8GYfNjyFL6JqSPXdzQFkd/RaohIYsXYi6NbSpBIfV0MWvC2Q9Sd9upQGySPjFsr1LjG9 gw== Received: from iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta02.appoci.oracle.com [147.154.18.20]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3m39k2qfcp-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 29 Nov 2022 16:45:11 +0000 Received: from pps.filterd (iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (8.17.1.5/8.17.1.5) with ESMTP id 2ATFkaU1026698; Tue, 29 Nov 2022 16:45:10 GMT Received: from nam12-mw2-obe.outbound.protection.outlook.com (mail-mw2nam12lp2040.outbound.protection.outlook.com [104.47.66.40]) by iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 3m3c1vkkp0-4 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 29 Nov 2022 16:45:10 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=G5pqdQjsbCF7KV6tXuTM82FH63Oqfrf3l6p4c/HHSEeLnEFbz9MY9GGKdunSePRcqWTAUseW3KgA7iNRYZW3Nh+m4eZQbamU2Nd8wXmmclp+FCEeKwx37BikFIGde37lM285Rr36A36rdUAdNbSzc3MfWwbSFjirS76MLu67C/DsnWl/bz0hzTmmJ/tmdQ8ANT/fAzc3NZsBGIuc5UJ7H+MICs5aq1rffEfBPKGkSruiEFJKsVeKMV//tG6pTNyX3rCC4pcY1G3SZbCp8LCspifeRtquLHmDDONdaGlYMw3iyr9i6izNxB8tTJ9Vr6x7w54l837wQrvVdE68e8UQmA== 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=0EzQlHTr4IVoG9FN3tDYFD5FcrsBLTtgf060eSOj39A=; b=Er9ReCfsyYeDhO6wpOgNCCDgqJdgTpG9XVgR1fjgmaKpLca2nEDpzxIYeF1OgHqNqVeTe83ZJkmUGneUOneqMCirSQLBN/uJwl9i9EKqDF6s0PIt3ajk6AfFnQ6NBCFBsRToKogQpq4qLjyvKKwv6kceC8ml7cpYLj33FxHaMMJjNHqSJQyZ75yx5KqkJQNUUD/2dOmih9p7RPPhQDScwXiroYVgaua6ZjfA6q+58eGm//zO5gXDUiqLNurofi41LzN8ja8XC9MVi23j4ckB9mKweaIEAKkvuG3mlOg+BEUwDY6Su7xCb+BAZfnsLHjSaipowZbhSE3dhR1PxYzllA== 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=0EzQlHTr4IVoG9FN3tDYFD5FcrsBLTtgf060eSOj39A=; b=f3kLLOUWtK0tY9WfKHCCu9kquplUI8+7hS0the2hYaDWUJR5NyCKBMDoYe9Tyc57iRrbc0PVvRqBuoG9abRSv7Ik+57eI6NWWiwKaLajqXynAT6oq2377sPZxIPJ1EE6dMbZvPGxDq6x2jVYv7aw99NvpLi+90Db7S/DZ+wjPKk= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by PH0PR10MB4792.namprd10.prod.outlook.com (2603:10b6:510:3d::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5857.23; Tue, 29 Nov 2022 16:45:08 +0000 Received: from SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::a02:2ac8:ee3e:682]) by SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::a02:2ac8:ee3e:682%4]) with mapi id 15.20.5857.022; Tue, 29 Nov 2022 16:45:08 +0000 From: Liam Howlett To: "maple-tree@lists.infradead.org" , "linux-mm@kvack.org" , "linux-kernel@vger.kernel.org" , Andrew Morton CC: Liam Howlett , Liam Howlett Subject: [PATCH 33/43] mm: Change munmap splitting order and move_vma() Thread-Topic: [PATCH 33/43] mm: Change munmap splitting order and move_vma() Thread-Index: AQHZBBHcNhY9kx7Ry0WMjLLG086Hbw== Date: Tue, 29 Nov 2022 16:44:34 +0000 Message-ID: <20221129164352.3374638-34-Liam.Howlett@oracle.com> References: <20221129164352.3374638-1-Liam.Howlett@oracle.com> In-Reply-To: <20221129164352.3374638-1-Liam.Howlett@oracle.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-mailer: git-send-email 2.35.1 x-ms-publictraffictype: Email x-ms-traffictypediagnostic: SN6PR10MB3022:EE_|PH0PR10MB4792:EE_ x-ms-office365-filtering-correlation-id: 83479740-3aef-4673-6632-08dad229134a x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: HVWO03LlJUbpkqzs48cBh78qtqxsXjkbjdSiI00jds/QJsV6FQBFnTfW2MDQcSS2daWlnypsgXBydN7jw6NXDpN3NRECV1H+5iXe55dY8xTcOfRKAPPlmRqu4lpDNZjnxNS29bWHzK9FpWfKU7naeucseqEvQdCnApd/tiUGDkTg4gvnFUC6ov9fnPAUB7rf5HwPICf1BGXE+wC3r8BM3Icc07SIbFc57p2EUoWUCRwJwtK/BTNXoW5oAVHD1S3ymKL/0cUkFCpnY/dIPGkxdLMMwPwop6CnI55kPA9dElx1gSoN032a/QeFPRch9JyKOlULrc1lKXNr8dxBUh0zAhC4C4n4L+JzHDewm/b4sECaggjfAxQ/v55ow7gg2xRuS7TnniY47ytXtbOcXHC20lqhAhy6i9Zu+RCvN2Ymja7vEjDa36RU62+VhAL2l1E1NMbphRVD4S9QUlRAaaofPud6tt936RDU6rIgeeGj6HakiskT/24CoUC7GD7tdABdgw41rHzZ75edHhVt7LI9tIoks3qdqC/up+8G23J0oq7ihltHcrVfh5Rwtq3syk2tgmij4PEF3Rwgswt1iZcl/6HpQO3s3FXmBEoIfS5cjnq2yyOV79y4Cscb8DXMHgXDMkQX/AvyRWmIjgQnX6tvUn1OSSQYUaAGmqZojb54vdj/bQhLATajB1mMmh0sHhUYP6adPRh0vs79oyHsEo5feA== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SN6PR10MB3022.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230022)(396003)(136003)(366004)(346002)(376002)(39860400002)(451199015)(38070700005)(2906002)(36756003)(86362001)(6666004)(6486002)(71200400001)(107886003)(478600001)(44832011)(41300700001)(316002)(76116006)(66556008)(66946007)(91956017)(5660300002)(66476007)(26005)(110136005)(66446008)(4326008)(54906003)(8936002)(8676002)(64756008)(6506007)(6512007)(186003)(122000001)(2616005)(38100700002)(1076003)(83380400001);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?Q?d7R/pU62y1cc2PkoPDkyO3OEphiDNV+TGf7c3w8LvC3UMbyiQdyj5hAxWu?= =?iso-8859-1?Q?iEvsnicbILFrlYgqsNUq3QGz6d7e4Q2JhrbR1DIlyiyS1tICkMBzs6nUkD?= =?iso-8859-1?Q?w7dLUh5Dd7aMRg0TV8teDiV+KI3/FEYdOxLMZMIHd+sNxggtKVPBsgTmmE?= =?iso-8859-1?Q?guw7DFGUlcq44NKqCYCYddboHVWBO87fne/teuk9OwasnAbxVJh/VOapzq?= =?iso-8859-1?Q?C9boXKLeAukIsnzgKuvjHKP/2jHlibzegQUgILZ/h7VJlAzooj6ci3t/Gl?= =?iso-8859-1?Q?AxygM8rfQT5cKdybSuv3fuwzd25vzXHr5AvtGwfOemAUnQNH+SmSd0HdsJ?= =?iso-8859-1?Q?lhWmcjWOQ6VSu+cBesp45BFMbLiIueDLyWdqkRg+VqfL/AfziBxwH4RMhY?= =?iso-8859-1?Q?N7vZbn0yofiP1b2w2SQ4L5R6oaVqB8fa9hUJQrK+jh+1TavwqPHH1zMwAQ?= =?iso-8859-1?Q?H6LhP+5ukX24G9pz21rkX8sT8wTusDZnFVqeuonRT05++mdoM1Rydq755G?= =?iso-8859-1?Q?vJGhNbWmt+uISKbYZNiMUqVWt29/NAHjwT2S1fVddOxyDcIpEiKpZsfWZ4?= =?iso-8859-1?Q?a3x4Mehak8CbuO5iMRbHY3SNfYxHsrf/2H5ZLyAxCU/D7jw8BIjo1G+vTz?= =?iso-8859-1?Q?XAcYyqPRb766fkfKbm2WgBrlGZvQWShQ8Cyo2njpRIEDGO+RcgK1nIbD1Q?= =?iso-8859-1?Q?lhC781wxS0rq5zJQwBRQzSiJd2m3qb+906/WeGI91SuZ4oC7mfa/rNisab?= =?iso-8859-1?Q?bmabU077FEzaF/PbVDiZS/FnnjMWSHo2oIXIwi3P2r0HFi7sI33qady99L?= =?iso-8859-1?Q?MutPejAqawHU+oylM8tRyCQG9kiItqmcNP6cbGVRxMEmt8swOju1D/lcy0?= =?iso-8859-1?Q?RkxcqyRa+CTVUQW58/RSETFsYtRo4bkSRJJc4RPE9nu9CHil3tRX1AHTLV?= =?iso-8859-1?Q?6dc3kWGhFVuHMC3NWgtXbsvHA1MUQK+DHKt0SrSSTfpMKRoQz8HL58rHzm?= =?iso-8859-1?Q?pkMepl4T/aUC0DkRmAM/hgONL01UmyCRbkQjsLfsbfk1fvUbodS4krsWtS?= =?iso-8859-1?Q?weudIJPHF5IIugBtNTOULDgEPhbIonidMpLkCNICo8/DBlgG8q+f8txFsB?= =?iso-8859-1?Q?/GDHiXudC3w0HbqwWmd/YRbUDDPYjWlpxD2X3mgZIcXsfZCltIzHwf48eH?= =?iso-8859-1?Q?ItemVwkcohhwut1X+hbcYOGZnmD+bW1M9kApvh1r0lfE6yebXbWJ0pO3Vw?= =?iso-8859-1?Q?KAcFEiPCWellsbiVflxE/MDCKFsKPZlRM1jAkP0NAXwF9x4J13flEI+F1l?= =?iso-8859-1?Q?ZUDKDvJz50dwUa1aqiiBN9PZ4HtsO3VzAx5bN7gH3osdr8PbqlRgIvjMvD?= =?iso-8859-1?Q?T/8LYQroEdpsDEdMH2HmrQ8sSwblpRUJrYWhcUzZ4cXbOvTAm9v6yIncBi?= =?iso-8859-1?Q?x2ZwnDoQl8aYTGbewqJSjfbDZMU9UBshInaAErLLwYqUQz5BLS6oCFzK3q?= =?iso-8859-1?Q?8HtbxMduuvhFl4zAKY/keSnPQTxfMvy1hnF2Y6BWylmQhj3U0JPnb01Rua?= =?iso-8859-1?Q?ELnsBArLnt1BWWw4KF9iLPFvmAiwhEQvq7rqqoSkbKp/prBcOsGRdwhki3?= =?iso-8859-1?Q?zWE/pqvBeN7xNbpBfSpQ5DfaRJW7p5L/MmTmAICnEngEYeF0z7shJZmw?= =?iso-8859-1?Q?=3D=3D?= Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: CgpK486Dy3tDEr03oHgot1TW2GUfT+/4ec72Ik1dYTjHS5Zh4hw5MbdQehtrDi2j1WvNKdtJEV6uQdQNwBb2+zvV5kCujjVvTjKc59QtOLMu9etzx3+IB88jOGVwU10dwvTw5Gwhz9Mn6Oy9b6gjUzKyVD99+/d7CsDPema1CGfLHeiOEBQ1p8ds4aG6exDT0Lk9ap8XcevVQhiJe65BCA7vIXBWoRLm7nhcKkOFpS+3dj2j3V0y1AibcK26vbvGp9pZOMExF2t8wOYKqqXX1H9gc/yzx/uCx5/60HClCVhpear3DZ4XR5vtwkpy6VE2zGEJdWpgFhDNvplrqOiufnNH1HdOjfuqNIAAFNVq4Sxa3mC8Ll7CA1EUb3au2UsvWIpEyl4vOEqg9jUNsV8bgHQDn5TUlAJ5wz/TTRKaodZpf8AujcwmhDYmaN/HZa85KQWyw0k5/n23GGA/FZlFlr3DPr0w+Ij7waZkEZdn5+idxd6pka8cCip1wzqYA/kq7NuJRALwP30epDWx5FffGpwgXeawO9RB4LPXljI5SAvpsmtbJQfXizfsjtt73uJQ3wq52VyHud77ZnhrCuqQbTrmPeVhsW4BvhCV5YVPlAqqUYGomDfGL8h6nklHm8QcVBlOvofc0OEV2EsrTI5SAG/TnIrGpF3HfRNqPSV/OUkVsfmsso4QljVCyTtUS5H08jeEQoVtfVgskSNNKlKFuPfUH8ud2UOpotZZjHC/xM+E2B45+H4hRDszZ/la4Xj3jc9x9SQINs3m2iJ58iBCxoTbnAt7BxZE48ZkZ068uZPB+CFI3lrsDK/Zkg7NUqD8UcirUK9bVhMSkFMRcIK/Dh0UR/JxTm7u34TN4QtMnnAILIRViIGFrN1J9KemLGWcFIV4V82XC0zJ6jAh+QmD9Q== X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: SN6PR10MB3022.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 83479740-3aef-4673-6632-08dad229134a X-MS-Exchange-CrossTenant-originalarrivaltime: 29 Nov 2022 16:44:34.8785 (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: AqD5syVGoyKXgfGufGTCEOq9x1RP9M9r7dSXkHegKbslfRXvnAFBuHbBjl5tv0d7euWAd8QskQSXfsyPtfXDFw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR10MB4792 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.219,Aquarius:18.0.895,Hydra:6.0.545,FMLib:17.11.122.1 definitions=2022-11-29_11,2022-11-29_01,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 spamscore=0 phishscore=0 suspectscore=0 bulkscore=0 adultscore=0 mlxlogscore=999 malwarescore=0 mlxscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2210170000 definitions=main-2211290093 X-Proofpoint-GUID: pBGL-FocDHj82SLMwfFUzZYszK3FKNDH X-Proofpoint-ORIG-GUID: pBGL-FocDHj82SLMwfFUzZYszK3FKNDH Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" From: "Liam R. Howlett" Splitting can be more efficient when the order is not of concern. Change do_vmi_align_munmap() to reduce walking of the tree during split operations. move_vma() must also be altered to remove the dependency of keeping the original VMA as the active part of the split. Transition to using vma iterator to look up the prev and/or next vma after munmap. Signed-off-by: Liam R. Howlett --- mm/mmap.c | 18 ++---------------- mm/mremap.c | 27 ++++++++++++++++----------- 2 files changed, 18 insertions(+), 27 deletions(-) diff --git a/mm/mmap.c b/mm/mmap.c index af611f805776..e0e70b9bc391 100644 --- a/mm/mmap.c +++ b/mm/mmap.c @@ -2388,21 +2388,9 @@ do_vmi_align_munmap(struct vma_iterator *vmi, struct= vm_area_struct *vma, for_each_vma_range(*vmi, next, end) { /* Does it split the end? */ if (next->vm_end > end) { - struct vm_area_struct *split; - - error =3D __split_vma(vmi, next, end, 1); + error =3D __split_vma(vmi, next, end, 0); if (error) goto end_split_failed; - - split =3D vma_prev(vmi); - error =3D munmap_sidetree(split, &mas_detach); - if (error) - goto munmap_sidetree_failed; - - count++; - if (vma =3D=3D next) - vma =3D split; - break; } error =3D munmap_sidetree(next, &mas_detach); if (error) @@ -2415,9 +2403,7 @@ do_vmi_align_munmap(struct vma_iterator *vmi, struct = vm_area_struct *vma, #endif } =20 - if (!next) - next =3D vma_next(vmi); - + next =3D vma_next(vmi); if (unlikely(uf)) { /* * If userfaultfd_unmap_prep returns an error the vmas diff --git a/mm/mremap.c b/mm/mremap.c index cbafea7fe895..00b39f0121bc 100644 --- a/mm/mremap.c +++ b/mm/mremap.c @@ -580,11 +580,12 @@ static unsigned long move_vma(struct vm_area_struct *= vma, unsigned long vm_flags =3D vma->vm_flags; unsigned long new_pgoff; unsigned long moved_len; - unsigned long excess =3D 0; + unsigned long account_start =3D 0; + unsigned long account_end =3D 0; unsigned long hiwater_vm; - int split =3D 0; int err =3D 0; bool need_rmap_locks; + VMA_ITERATOR(vmi, mm, old_addr); =20 /* * We'd prefer to avoid failure later on in do_munmap: @@ -662,10 +663,10 @@ static unsigned long move_vma(struct vm_area_struct *= vma, /* Conceal VM_ACCOUNT so old reservation is not undone */ if (vm_flags & VM_ACCOUNT && !(flags & MREMAP_DONTUNMAP)) { vma->vm_flags &=3D ~VM_ACCOUNT; - excess =3D vma->vm_end - vma->vm_start - old_len; - if (old_addr > vma->vm_start && - old_addr + old_len < vma->vm_end) - split =3D 1; + if (vma->vm_start < old_addr) + account_start =3D vma->vm_start; + if (vma->vm_end > old_addr + old_len) + account_end =3D vma->vm_end; } =20 /* @@ -700,11 +701,11 @@ static unsigned long move_vma(struct vm_area_struct *= vma, return new_addr; } =20 - if (do_munmap(mm, old_addr, old_len, uf_unmap) < 0) { + if (do_vmi_munmap(&vmi, mm, old_addr, old_len, uf_unmap, false) < 0) { /* OOM: unable to split vma, just get accounts right */ if (vm_flags & VM_ACCOUNT && !(flags & MREMAP_DONTUNMAP)) vm_acct_memory(old_len >> PAGE_SHIFT); - excess =3D 0; + account_start =3D account_end =3D 0; } =20 if (vm_flags & VM_LOCKED) { @@ -715,10 +716,14 @@ static unsigned long move_vma(struct vm_area_struct *= vma, mm->hiwater_vm =3D hiwater_vm; =20 /* Restore VM_ACCOUNT if one or two pieces of vma left */ - if (excess) { + if (account_start) { + vma =3D vma_prev(&vmi); + vma->vm_flags |=3D VM_ACCOUNT; + } + + if (account_end) { + vma =3D vma_next(&vmi); vma->vm_flags |=3D VM_ACCOUNT; - if (split) - find_vma(mm, vma->vm_end)->vm_flags |=3D VM_ACCOUNT; } =20 return new_addr; --=20 2.35.1 From nobody Fri Sep 19 02:32:03 2025 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 42A23C433FE for ; Tue, 29 Nov 2022 16:47:51 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S236145AbiK2Qrt (ORCPT ); Tue, 29 Nov 2022 11:47:49 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:44898 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S236315AbiK2QrH (ORCPT ); Tue, 29 Nov 2022 11:47:07 -0500 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id BCF616C72A for ; Tue, 29 Nov 2022 08:45:16 -0800 (PST) Received: from pps.filterd (m0246631.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 2ATGOf8w005619; Tue, 29 Nov 2022 16:45:12 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : references : in-reply-to : content-type : content-transfer-encoding : mime-version; s=corp-2022-7-12; bh=6+stm1aUBeIdjSmqEZqbrP2RxWcWKKZx6ArgspYqK/U=; b=BTaN4uumeQNWIEGiv7s9O+FMCydW/a4mykUWmUrr+mbMF//goYHfU0D91gE2cz/Mn2DX eOuuN7l25t1xwoEXUD60o25APz8rJedg04BL/GD1H2/NqMgF1zOv7kZl3+U+4SZs9Go7 jjBgy8IARjSGDQ8BTC21SHV3UDPCfUf3ZIP6nLEd6iWmCpeaBkcrUgfDQ5a8jvS6dNwB kdwv/Bwp4g0YY18VBIAXprzKeWqlp4RKTWt1e5L+Q1yvQGh/tabC5c0a8t6n0OLTwZoZ NhSk/sIPZl2HRY11YvZcN5CbuAsW77oJQknKY5Z/j7twGRsCqHVKdMTNN3loDZB7DGcW cw== Received: from iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta02.appoci.oracle.com [147.154.18.20]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3m39k2qfcq-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 29 Nov 2022 16:45:11 +0000 Received: from pps.filterd (iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (8.17.1.5/8.17.1.5) with ESMTP id 2ATFkaU2026698; Tue, 29 Nov 2022 16:45:11 GMT Received: from nam12-mw2-obe.outbound.protection.outlook.com (mail-mw2nam12lp2040.outbound.protection.outlook.com [104.47.66.40]) by iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 3m3c1vkkp0-5 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 29 Nov 2022 16:45:11 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=TJXD7HWtJCSW3qvey5mDdi55dJERLrmjSqtVNcsdJN45ZU3sTcLR21B+kl60Vh0ezZfD8f/+dVOMYLMKjNIuviLhOKYdJUqfvRm7FyOOFmILpB2XSltghMhduaPLGDsGFWM7aaNi6dxVjOzPGtY6bRSWfyJqNjJ2XkwW1NJkVLkp+Xk0Wk0j7iJ/W6c+iVBq79WxqIcH8hNdq0wqvViDfF86Yh5PQFs6Exp5jp4bgMcMcncre+px+p4+jTyVBHbX74KwrFAEWk3POvPpvzBmQd9ZOcCFbUzxze/EKp1jYU0LvuRdyaO4V9SfcxC5DFoDImQFyl/168EXQKWjiv5Lnw== 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=6+stm1aUBeIdjSmqEZqbrP2RxWcWKKZx6ArgspYqK/U=; b=C5Fjc52cyH+OJPhiYEBc89QFwGdt5HKXADGwKfWshcrQTtdrEIOv28L+ZkY0kUO3uaMyvm+cCSxVukMOgX+SYmW7cDaH2oZe7VoKhe4R50Jzx4IRFazby/QAVT+q/cdow7DS0ML1W4LUZG199u/wZb3+wQnuAmTT5ybQA17VhdPLwluPxi/8IZF7CDZAOJi3W9E1dq8sIm3lkjMLbR09363NllaoRUkP9ONxw/9LQU+GUdH+ja6rkl9MJ1Po4Ep83JSxHRfpPWbU91r8g64/jnzcBTQsZIVARQfFEsXXm+LAjfNo2s+ktuBgNq0g0q9Poku5+oG1UdV02xGe6X6QdA== 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=6+stm1aUBeIdjSmqEZqbrP2RxWcWKKZx6ArgspYqK/U=; b=bMFB2VcaupwFcPFhNkW+ng3gu2Dy1G1irkeZaAAgdlOMxf/8XwLTcP6VYeUBvMSvDVFiVfz6xXad0DGm1o9hzFbp7EMLRIKs13CEiN53hDkes0lVtRrM+9lLAcPiEqDe7Vcwr7cUarDonBmx2kOva+9FpqknqOPzUvYmmfYyvrs= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by PH0PR10MB4792.namprd10.prod.outlook.com (2603:10b6:510:3d::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5857.23; Tue, 29 Nov 2022 16:45:09 +0000 Received: from SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::a02:2ac8:ee3e:682]) by SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::a02:2ac8:ee3e:682%4]) with mapi id 15.20.5857.022; Tue, 29 Nov 2022 16:45:08 +0000 From: Liam Howlett To: "maple-tree@lists.infradead.org" , "linux-mm@kvack.org" , "linux-kernel@vger.kernel.org" , Andrew Morton CC: Liam Howlett , Liam Howlett Subject: [PATCH 34/43] mm/mmap: move anon_vma setting in __vma_adjust() Thread-Topic: [PATCH 34/43] mm/mmap: move anon_vma setting in __vma_adjust() Thread-Index: AQHZBBHcT7O6YMI3JEK/tAVcMet8vA== Date: Tue, 29 Nov 2022 16:44:35 +0000 Message-ID: <20221129164352.3374638-35-Liam.Howlett@oracle.com> References: <20221129164352.3374638-1-Liam.Howlett@oracle.com> In-Reply-To: <20221129164352.3374638-1-Liam.Howlett@oracle.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-mailer: git-send-email 2.35.1 x-ms-publictraffictype: Email x-ms-traffictypediagnostic: SN6PR10MB3022:EE_|PH0PR10MB4792:EE_ x-ms-office365-filtering-correlation-id: 73cc6c0e-4104-4622-9d91-08dad2291383 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 6G1+ohNU+VLrTNxlg71pwhSofUGpsAsT9cRheA7ck0bcBaFc+fCaF0z1SczrmzVY5wzFwVcFmoQC3JHb+jm0oH6+2AdEcn4aFpNKxvB93dQVLrNJaxyUHRro7qJS7Q1H0/kqz6sNpCquHN05Zx5xBXnC41jtNRBxsTzw6arHBqRouHKozzBKfWm4DwiRq4/iUUViI5jmUFHVDLDByOQaBRF4X5dkDxKJhes2kjMMjnUt2TXinZlip5cAysWq4ME5LwhfZLsXXJ5lA//Y2mPt2ancz93T8UN2zhzvJUWGvMIC1NLloG8YJ/o9kpkOHfR+xf+7uVulgHNf7RlNAtmtwpMLtzbA1orzgCe/UaXop4E/ImgOCkHzkT+Rt/lqcMWA7csDv2y9HaaUGmuasIj18Dj1rTywpCEVR4JYwLrHnzGpZiscqslyJh6QkU5y31QfpF8bqfsKMXPg+znxfrwwal/xSC4+GjhoCe29FpI+YVtd8+EQ/t5qZv8OWCF1QcZqL4XcgN6ZsXs7EKa1a4v7TdpsPgJ3eeMbgG17SXcpuO5I8ZSEj4om/Iqvm4Sy1UJwlS9a5BfmRhA3ASneu6fCGhGg6CZztuvo2UaiHIVDThCfo34NPB8TRg9hnHKv2ICsrhWWGPRkVl6k4MSUDy4wMcUvJsF4SMyCmlob0mfTZ0rRBFFtJT8wSwNWGLMjKVSC7DlKzfQ8sWZb2hjjyax80Q== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SN6PR10MB3022.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230022)(396003)(136003)(366004)(346002)(376002)(39860400002)(451199015)(38070700005)(2906002)(36756003)(86362001)(6666004)(6486002)(71200400001)(107886003)(478600001)(44832011)(41300700001)(316002)(76116006)(66556008)(66946007)(91956017)(5660300002)(66476007)(26005)(110136005)(66446008)(4326008)(54906003)(8936002)(8676002)(64756008)(6506007)(6512007)(186003)(122000001)(2616005)(38100700002)(1076003)(83380400001);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?Q?5WCOpbUQ8g1RwMyT7lBbaY6bABu9AOzchGNc/l7+Gx/RCKqPqMRnhwFFX4?= =?iso-8859-1?Q?L4TnX7mEw5m0KUPTYW4mp5AdOdnRfD/pv34yB0pE1MQevmxb+CDGWJ9btG?= =?iso-8859-1?Q?liJopo14ZMuu47dB3gqBtsraD4liKCY3tuzZPiJUatzL5jyPWiwY9qpFGx?= =?iso-8859-1?Q?isl/L+fQmctHmbNTsSM1EnHjpUHTNtwCpP6+jvpLz3LGk2LEIgr0UcalGB?= =?iso-8859-1?Q?dgnWjm0gDiNmpPUUKVaBH4GJkmRt9L8F8+ScaCmOWTKsjPiwVV4XbSZXT3?= =?iso-8859-1?Q?7vzTqLWGoC9IncOnD19bQPcmwkfCNyKAKiovxSCwjRPZy98Wd4B+uW/pBa?= =?iso-8859-1?Q?0IgHfY91xhLN9vtSIefrwazFw0fj2sgePctA1wI0eSVwPvhpLRyQmT0Yin?= =?iso-8859-1?Q?waBDiVPCt+DQzCSXn8vxGlv87WWnXgVaYcEKeLtYZyUkedkzd3ALPEHdYN?= =?iso-8859-1?Q?ikX/WTtBQdrwiaHOgwd5sO8k8pmKR2kxRxxTbotGzFzm/+R0vIXTrIXPKY?= =?iso-8859-1?Q?sdo3Yc4D9LQlGr3SeLpQNHXHaC10QVWTah+Y/MDULADDYALJaZ4lEy7ScZ?= =?iso-8859-1?Q?Qq3b0+04rTAo2rPj9t0C194RMRXfAOMJBc1Mpx2z9EsV9jgias4VCVMOnY?= =?iso-8859-1?Q?tiflmxs7zrCt3VZsq2cmjhRoyyjzk1/p7AgJ/SFuxvcTlnUsMspbOWV8bq?= =?iso-8859-1?Q?8uz7FTvC0py91+pk5prL3e0ysIFgwlkGZ603KfArIf0WdtRr+E8JLEZ00f?= =?iso-8859-1?Q?pw6mbc5ZKvO4K4jfz3azZVcWdPtKZj/QEFIZAiFGKcnzeGTug5HHHB8MPy?= =?iso-8859-1?Q?R1jdOORdBDrh9+4m9QT1O0+S4cVYqfyZdUsShw5cZjcKm14anEfdKGf5/T?= =?iso-8859-1?Q?baVdvgPXiSv1bM0MhCCzdq5AfGjaL6FepYtdPlaPSNCK+0nzWcqCupwb7H?= =?iso-8859-1?Q?8+RvKnWK9AZTOddUbUmPFKcahYS6doM0mM6TgmllYshtinZ+yvUOxSI3XT?= =?iso-8859-1?Q?CSyoGzu3cqPgG1v/QUVsT4nMZPe4R7QbmFhbqZ+uMobnOpreTyRqaPSe1Q?= =?iso-8859-1?Q?YodyG92ivl5KAee8eIVON83kDHPsYL/3hu0oQKIaCaP/YSbGQjuDLmAp41?= =?iso-8859-1?Q?kvsibnHKOZLgpADkN7rkV4byrPBBYojl7Y58aXLM/lF9j5dmyfKaOWvtYE?= =?iso-8859-1?Q?VV59DBubY0thGJiTY1A9FFNz7QPzK9oqryvciapIMnNGXLex5e28IFJBcz?= =?iso-8859-1?Q?rf+Q14yuThq7C45aoQyJNvFE8wHc7aG+gdQY+/mV5GPxKesX3nsjs/Yyj/?= =?iso-8859-1?Q?zpBWtOtfwKte1P+MqsL6xIbX1hYGoLCeKTXEUJa3LDbvutlZymdCn3oVIS?= =?iso-8859-1?Q?FtNtG6eXYWw5ayBdEHkS5P3o3PogOqVBzFBfcJL3lOuoX2+QIQfaDnkcPX?= =?iso-8859-1?Q?MVdO/m+XOlL2EErhNIyUrnA2hQS9dsbikA3qDUNgOmrqNlZs+JQoJytC4t?= =?iso-8859-1?Q?7h0WCqxWtl6kkhdx+X9KZcUBObEoAl5EjTNtgT51zzDrlHB5jGTwNHfjOX?= =?iso-8859-1?Q?mHXVCWHGVoeDWgj8Evqo38ir/A4jgYo5+nSuA0cXxQ4Q0JvIbDOxrF2mBh?= =?iso-8859-1?Q?oKAmRPdz3EkuegE3vXZETnb5Y0Oce6zu+WJXemv2zpWFqjEiLCES59zA?= =?iso-8859-1?Q?=3D=3D?= Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: nM5zw/jO3d11l+ojECGrO5rWUQvxXsG03UGaLjUn9ta/X9yRFY6RLMLq0Z58TLBOk4FYqEd3l81FEgC6KJIR7TqF9oDpQkfOTD/KKx4Jw62uERLBRRDeB1/EXjmUD8vw76nFkZiKXzQe/QjelAfatxDJ831QGDCxkvtQixjnxwBrAB4RPujHk0rCEfAEXeqZx0vo4Hilu9T8qsn2nvTqh5TEzDbgIMIg9F6j8eAhsT325DOTvyT5/+w3X5uCaSzx+GGUX4NrohC4B0bzXxequaM/mcQZ53O/UhcFm8jUevAJKS8T26wNHETsmWHEIjdS89VxfszxQsJA6boQ3XFtltbfYmXD8K/XELTX4MM+iu6oKT5QIBfC2GHYR6c14HTCaFmUeiugYO6Qzk1FC3a5gSofh2Q2uQSf7DWCUt3vnyKhk4vxZ0Dx27ZsvH/E+cffrmmZR/0He0BkURh1+DvEXPc3wANEwnBNy/Ra1u4OKouoLOF93udINJerQ3QNmCm/7dFxNlYrfRPqbb4YqzeBpedYJF0hCjhc0ik9fUMnlc1eTSNmaHJmg1ucAsMRsSKCiLrbh+nLqIjvH9ClPQT5f2cXmBrd7nLbx+hYKUDJY4LfEae1+S8hV8IDVX4OarutNWHhpqcX/TUYPMO/CA0i8tT8ewwj3A6irnS5JKW5aKi/ky74wpAqyl98W6EsQWj/YkVTayxHetqeeHwsxZpR+tah6c/CWA5xol5Vboy8JkjM58RED/J7QQvcAFBL4bcS87piEGXaIapDsvuFacK4PEeA315f5o9T9xRbmvIH8oBDPyIudS82fSGcGzKmVRieVf28I1JbuJJvXWquOa5yCfVrw/sZFfFNf0QYVXE2F7KqNhbL8GZfDiy5fbvXYCs5j1SDtZoqgRgmuVv+KxXkzg== X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: SN6PR10MB3022.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 73cc6c0e-4104-4622-9d91-08dad2291383 X-MS-Exchange-CrossTenant-originalarrivaltime: 29 Nov 2022 16:44:35.1441 (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: zNQkodUNGT9js6E9rY+aXOBIWCPVN7bMzuD42K7oeQ07k/IdiMGwFLvQlZ4i4OOZnZJ3y/AY9W1U7y7cnV0REw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR10MB4792 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.219,Aquarius:18.0.895,Hydra:6.0.545,FMLib:17.11.122.1 definitions=2022-11-29_11,2022-11-29_01,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 spamscore=0 phishscore=0 suspectscore=0 bulkscore=0 adultscore=0 mlxlogscore=999 malwarescore=0 mlxscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2210170000 definitions=main-2211290093 X-Proofpoint-GUID: zqcZMA4-gAMR9rgLwanJlpLlgQWTNSSG X-Proofpoint-ORIG-GUID: zqcZMA4-gAMR9rgLwanJlpLlgQWTNSSG Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" From: "Liam R. Howlett" Move the anon_vma setting & warn_no up the function. This is done to clear up the locking later. Signed-off-by: Liam R. Howlett --- mm/mmap.c | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/mm/mmap.c b/mm/mmap.c index e0e70b9bc391..5b5d5d856152 100644 --- a/mm/mmap.c +++ b/mm/mmap.c @@ -742,6 +742,14 @@ int __vma_adjust(struct vma_iterator *vmi, struct vm_a= rea_struct *vma, if (vma_iter_prealloc(vmi, vma)) return -ENOMEM; =20 + anon_vma =3D vma->anon_vma; + if (!anon_vma && adjust_next) + anon_vma =3D next->anon_vma; + + if (anon_vma) + VM_WARN_ON(adjust_next && next->anon_vma && + anon_vma !=3D next->anon_vma); + vma_adjust_trans_huge(orig_vma, start, end, adjust_next); if (file) { mapping =3D file->f_mapping; @@ -763,12 +771,7 @@ int __vma_adjust(struct vma_iterator *vmi, struct vm_a= rea_struct *vma, } } =20 - anon_vma =3D vma->anon_vma; - if (!anon_vma && adjust_next) - anon_vma =3D next->anon_vma; if (anon_vma) { - VM_WARN_ON(adjust_next && next->anon_vma && - anon_vma !=3D next->anon_vma); anon_vma_lock_write(anon_vma); anon_vma_interval_tree_pre_update_vma(vma); if (adjust_next) --=20 2.35.1 From nobody Fri Sep 19 02:32:03 2025 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 07497C4167B for ; Tue, 29 Nov 2022 16:48:01 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S236343AbiK2Qr7 (ORCPT ); Tue, 29 Nov 2022 11:47:59 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:44910 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S236321AbiK2QrI (ORCPT ); Tue, 29 Nov 2022 11:47:08 -0500 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id D79A86C72C for ; Tue, 29 Nov 2022 08:45:17 -0800 (PST) Received: from pps.filterd (m0246632.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 2ATGOtVo013826; Tue, 29 Nov 2022 16:45:12 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : references : in-reply-to : content-type : content-transfer-encoding : mime-version; s=corp-2022-7-12; bh=H5O2qrKfVCu4WvkzldgsjO8M5umNjWJsGJwucEotnVU=; b=zuo2KyGALaQGjha/1bB3jxKBkhQMr4htKK1cPBy4aWg2CitOkk+brEKjX2kzoz19kb6x aQ5+aNzXsV5/r5FG3ire178ywR3NHTQOB7uJhF0q/1+GGNQtB0lYz7apC/ARmvjJeRah eLG3I4LneEINUdvsHc+K1z/SmEw0eH01l8cvOdsoXB6eL9G6Blwpxgjobl7fd2cJdGpD DamwxnxnFCh65uY27AB6l4H4yfqCGfc+I2f/W0gyEphni50I5gqQz0VI1So8XGwkdpkR piUfPonPCu+CvipeHhed7Tzizd55NaxG+jWKxeDyHaBgDqxGUmya6LqiseqcQZeRMhvs 5Q== Received: from iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta02.appoci.oracle.com [147.154.18.20]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3m3adt7e5a-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 29 Nov 2022 16:45:12 +0000 Received: from pps.filterd (iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (8.17.1.5/8.17.1.5) with ESMTP id 2ATFkaU3026698; Tue, 29 Nov 2022 16:45:11 GMT Received: from nam12-mw2-obe.outbound.protection.outlook.com (mail-mw2nam12lp2040.outbound.protection.outlook.com [104.47.66.40]) by iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 3m3c1vkkp0-6 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 29 Nov 2022 16:45:11 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=LldYVL8toIezzLSYS1IHG+cY+6yrWRn5ogIRHGoDen8SB3vRg4RQq0qRaeKuGhge4mL4oKl6cCuE89MHHBTqp9v8BzC5k+0u2EBUDqyskoImQRsFoXvc5wYFH0sb3Fake3WxazOtF+4tnepNdpLtlFZOCSu2qZ72LL/VlMt1S00gPbBhpQklMb1XoMQ7+7Mmg9tNna0b4uGunTkZyIcwkWOt7MWkWRSZJry2Ez9ddefCcBk7fehGYhsQUEc73qZwdY5KdnjHeiEljO7hJubyZ3AEREqdC7mNa5fLQ5EDEJJ+mKQUr6y2F4FrlXuVW7IRWy9pPQo/DW/J1jUQHvCc9g== 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=H5O2qrKfVCu4WvkzldgsjO8M5umNjWJsGJwucEotnVU=; b=PgDF6ZFh0o7fumk53ntFwrJZrP+ZXpn+Lre0u+4pE/GRYNnviGnor4/LiqF6kUgbe5PHb6kQul125WgbPa6TbcCpkNW++HuTbgpLJePW/PfAc9URC1e1KN8tGhh7qMVYI+WeY1iI/DBf7BCFrcVIuFJ7gaPNpqFAzGL5Yu1DOMP3zCmPtcX1Gqxq52A0eanc3XkhY8wyl4M3K1KOVzsAsCm5r25yvtGoKWHKzdUIAKXRLChqdIfruhpCXoM7sdgpdRcPkwaM4oataZRCcygPQQUCKGqFuAkJ/oaGPJIxMEZDLxamByQNENoxG5cLnNEVZ8qhrqsk1lXmU9w+9oJ2qg== 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=H5O2qrKfVCu4WvkzldgsjO8M5umNjWJsGJwucEotnVU=; b=WR8zHfI7LufY5SjR491A/z5kkyH72Lrw96oPuGYuQ5PMwTvXSFBGzS5BMOsxi6XYkfFNhLal84JV3e7DjEhYZxsp7hHQn++ZfmMKDBNN9AJEfQL6zeY30DDclH0DD4uiMJnwhj1R/rbk45FxIy2Sdzzz9+l9JSEXoj7vtxdggVo= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by PH0PR10MB4792.namprd10.prod.outlook.com (2603:10b6:510:3d::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5857.23; Tue, 29 Nov 2022 16:45:09 +0000 Received: from SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::a02:2ac8:ee3e:682]) by SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::a02:2ac8:ee3e:682%4]) with mapi id 15.20.5857.022; Tue, 29 Nov 2022 16:45:09 +0000 From: Liam Howlett To: "maple-tree@lists.infradead.org" , "linux-mm@kvack.org" , "linux-kernel@vger.kernel.org" , Andrew Morton CC: Liam Howlett , Liam Howlett Subject: [PATCH 35/43] mm/mmap: Refactor locking out of __vma_adjust() Thread-Topic: [PATCH 35/43] mm/mmap: Refactor locking out of __vma_adjust() Thread-Index: AQHZBBHd2j6SeN81mEmcl3JrUDIEzA== Date: Tue, 29 Nov 2022 16:44:35 +0000 Message-ID: <20221129164352.3374638-36-Liam.Howlett@oracle.com> References: <20221129164352.3374638-1-Liam.Howlett@oracle.com> In-Reply-To: <20221129164352.3374638-1-Liam.Howlett@oracle.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-mailer: git-send-email 2.35.1 x-ms-publictraffictype: Email x-ms-traffictypediagnostic: SN6PR10MB3022:EE_|PH0PR10MB4792:EE_ x-ms-office365-filtering-correlation-id: 15186eb2-4563-48c8-fbfa-08dad22913c3 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: Ra7HO3ofmphVm6yJxBp7tned6DW8VjPbrf3Km8KAn86o5m686Yy87FHV9Fgz/IdsSjIwPlw57lltbZdfojhLgJS6V3Osc+eG84n/wyXvDWeD7hz3vqV5eDPGx5kbt5l0BaubesxtOEFkdFDfoRlZKdE5BdkmC+/U0eGrqRNplUyHDV6AIhRWcqUy0cFLQ/4urW8jAhfmPrIgg//YcY8tzR7p4BbwAwH9ep6zH1dCvyWJVlUZAHKu58SPZgHNmQjyR/xAmmclw18Dp7pta+RScoqohlW9Ht7MXpD9f1CgVJY/HuQiISD3m1CMe9AkIp1uD+3FKFR8E9DtBAo26k9zwvjYdM58SizXl3EvP5QLwVBZ51J7ugncgDM6YI2qFd1YUx2Z2NpSEgfsC5+22X1FBFFkGZ+TNaNWhXYmMJoBd8kcNCvJ1yEWO6+4wM/2wnbD154dNN2p9LqLFiLMTNfZoAYpfSM8O2NbyLix5+ScHI4XR16ybDznYgnu/QTdqpQe6HwDjN0jPAupU3Qwl33ucCD+Z4UsDkoL53SwnkDs1nMKtUjTrXRsQ/EjGShL/cI2Wn0OqScJJ7WqAMBONgrERVedIsMLKiEvHfOdttJz+y9PRLfKTz9/HqcHtMTN6TtVZnaCF6bTzWPeWZ4ZQB1Q93S1ZbPo8QJu9DwXoMFd1nzyW1k7KuGV+i1Y1hn7AtCMYGMVMFkB7ZxzfLFIa3W5lQ== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SN6PR10MB3022.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230022)(396003)(136003)(366004)(346002)(376002)(39860400002)(451199015)(38070700005)(2906002)(36756003)(86362001)(6666004)(6486002)(71200400001)(107886003)(478600001)(44832011)(41300700001)(316002)(76116006)(66556008)(66946007)(91956017)(5660300002)(66476007)(26005)(110136005)(66446008)(4326008)(54906003)(8936002)(8676002)(64756008)(6506007)(6512007)(186003)(122000001)(2616005)(38100700002)(1076003)(83380400001);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?Q?z8zDYfAEQt1D+9NMzeiKitBQ2F3KS1uRnzQLSGAJbsxYicS8+E1k7uMHiP?= =?iso-8859-1?Q?NjOa4OJBaKdVpB6lDLKgYVmfxZWwjQSHGoON4mlpowYo5Q+8gD/K4IG0bK?= =?iso-8859-1?Q?2m7PjZC1jpkqqpGHslwx7GYgu28MCSoKZIPgN7HQkBrE5bnYyofnOHZ80L?= =?iso-8859-1?Q?mqxTG5n8E3gPT6gGwORYgUDHKd4Xo7dbZK/zrp8HpAsNd/CktZHKMixufy?= =?iso-8859-1?Q?bfXzbgWAyzoeRu5CAJW8nfN3M6H45XsaB3kT/WV7HYMsc11ewPkbfJrahg?= =?iso-8859-1?Q?q9vQJdHzskJhFWwHN25NqyS9IVY4Wyh3jjMXdTxkJSghiev7sk/+KdShFs?= =?iso-8859-1?Q?y5pg2OFN+Mc/TRSvcmA9bS2r+/vLU/U/gmzpP+unHTOqtCap5E85vMtjVZ?= =?iso-8859-1?Q?8lyC9KV/pH4lpuXmsW2phU1FtMothh2SsVio7EtUvllXjapGhKIIe8gb25?= =?iso-8859-1?Q?uQx31aA9E6YITw/674nvVfcNJx4LKo7nLsRweP5ExqjWKTU4RYb+dJ5w9w?= =?iso-8859-1?Q?avhOXn+ozvnLzFCnHsTE1oZBWT6YoY7GKgR5yiS33ausAWGfz176d8EI7U?= =?iso-8859-1?Q?w4MF/rLsNt15p7SppPX40WhkNX1RYZJNltFLw8+xwJuplr+YnJuvCOgqMv?= =?iso-8859-1?Q?CwAS1WFCnCgz4i3fGxSEqXs0PCq1kKdhn9T3MZ9jyr6+lJV6WrjMM6MjY4?= =?iso-8859-1?Q?YvS/+EavT6VKamcXUVdMXjnlV90WX0QdQPKJdHrdkFD2PJbFp+NbAJPJvo?= =?iso-8859-1?Q?fNE1XPrzFsZfeJ3em1qWBt2uf82iTGk9xdcWRIh1t4kfqXMCbVzjamwbVn?= =?iso-8859-1?Q?5Vt1UWab2uRsOIChWaxp5dT4Nu/YlqaFja214lacqSAhT8oeFgtUaWV57L?= =?iso-8859-1?Q?Ms2mqDbAqi0946hYFWXhO8WAhVknwsjC7IJWyYjmkxsbJCoUt3KWou4Dcb?= =?iso-8859-1?Q?fD9fF5L9cK76xpv42OHp5dBthY7u9cw0nG9waSWzx+Z44nPa2f8Ue+vFa5?= =?iso-8859-1?Q?nxsfOOzpBSjZ9CJ+Qo0T7r5MlBgfPu+hmUdO7RCjZ+farfyt+dOjrQTd3H?= =?iso-8859-1?Q?Md7tSEPohpsG/xWMUJsu6dVDTvn1kiR2JPKiYXdthbGSd8L3K8hjaLqlb0?= =?iso-8859-1?Q?isIgDWM+UHBa//tWgeSRi0IUQ8ASHJFXojoMgxrUW8MAYJvDS4giYG3IQh?= =?iso-8859-1?Q?SzFT4UQjw8RrO5w9LbxR5vxIrBaGrk1LlVmLI6w5+82fwm9VonYNS636/w?= =?iso-8859-1?Q?ikTJcVU+30Zo0Tzj+B9Btfh54AMcP3C0vW71xJgHSBwfvbv1Fcwn5BBOmH?= =?iso-8859-1?Q?5rl1nPX+1p4uW/zgoso4w0npvru4PjEPhV5z4ab4QHT/hTD5gj9j/6OMbd?= =?iso-8859-1?Q?sk2Ekq1dUo1kjd2215JPrB9dBkI1e98vrjUR9h7Q3jmotQQpQ3AUvwORvx?= =?iso-8859-1?Q?ADyisZmnO1y0WUjxgPPTh3GmVoQ3rYjNGPGPvYJ0Fw2M5isbG7czoKr8Z9?= =?iso-8859-1?Q?wMTPpkBDnR0lBhFfUyVu4F4LVDuXQ+FTOKIGXWgokTgsQ4V/pEUrDT6Ylv?= =?iso-8859-1?Q?jKLvoC+8H3W3aHDtM/lY6ofmJE7l3qTzDCSrkCPQDTqBSO7gvHrOI3i4lB?= =?iso-8859-1?Q?l/fzytuIRTRQmdnF/Q/CmorFTS1owjWCFxU1Kc7eFCOeIEiYLEOeeFIw?= =?iso-8859-1?Q?=3D=3D?= Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: uL9UtS9sYHVlciYW2jPxcMPmH9grfYilo+A+VmLf04oOXDyI1HcHwgId4UGL5rG2Nw0+/5eSbS5oJMW0FQmgvlAtLIa2marI77tSOzhnJRdc+FrKcbs9ZbcVS7/PHwp9CuvXFKQZUp6usNoQ8TkjgrdVMZwFReAIJ0TlUvRg1HkRfri4aOla1K51Z+/M+3cEXwmbsFeBPyMhHxCpyzwiVwCaV9GLV4aPeXtoxhzVh21FUBNNzDpl6CCtTZEO2QBiIjXzZ04xKDDsqqlH4+QZz0I0Dn5fh1xqCjex7VtjdN5sOM1EA45qEnRODKoMNl/rzahyF/ZLry5595gryYxGR0P8ClXvLKmBh0eumo3umHnrvETKA+MKMfzLgOfKufFuDuLm52f0NxgdCTUToTUI0SxhBjFcP5ME7mBj6OoH58Jj8bKqQKpb6v0uAp4ZlVWh2WrF4bQSvDBFtjN9SptVdis6tOnBdPcUfserEIEq+5XcY1gbRR9AUS26kocZLCEbRoreBYWFNEwmM75Q5bdm93hzfFxrKaciMjST2amrjBwE/QIQyQR9aBF+z7yv1rjQ7VNMEVIwLASpvGZxjTNa4Fnyg/gNt9rW7vU6KnFGUagS8PpMdPJcejAQq/YztVTC3HfGzptgUXYprlUj/6OoEPTULtjCW8tE+rYMaRB/jhzEci46w89NHtEnrrSQW05RTSQ6rSjtLK2lZVJdn78gTCltUVnCfk2+wYMD95JHE/8plxAnZOyVmI1BSxjAl4Z9qDBJERTxiSKgf0t3UMty01mIic+iQ8qWz85uDro7JM3ylyqbs0BSTvXj1hHzHSjtl6fsIc/PlQGY+fyJTxmxbm4NUwW0sTXf3NmhA9R+MMD4kARbqCKOMbvFDuuB9R/t6x/Tl4I7cupMwSy5LY2Xmg== X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: SN6PR10MB3022.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 15186eb2-4563-48c8-fbfa-08dad22913c3 X-MS-Exchange-CrossTenant-originalarrivaltime: 29 Nov 2022 16:44:35.5035 (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: i9Stvd48BqmWOBRBiVn4O2jkLDja4uXg7L3lvT3Fz5/vceys2zVZjRJgEfH3UqRdJDSnydvyiVAAtu+6yIA2fQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR10MB4792 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.219,Aquarius:18.0.895,Hydra:6.0.545,FMLib:17.11.122.1 definitions=2022-11-29_11,2022-11-29_01,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 spamscore=0 phishscore=0 suspectscore=0 bulkscore=0 adultscore=0 mlxlogscore=799 malwarescore=0 mlxscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2210170000 definitions=main-2211290093 X-Proofpoint-ORIG-GUID: JznB5SdMNQLOnWg0qGAvF7VAPLRSnqoE X-Proofpoint-GUID: JznB5SdMNQLOnWg0qGAvF7VAPLRSnqoE Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" From: "Liam R. Howlett" Move the locking into vma_prepare() and vma_complete() for use elsewhere Signed-off-by: Liam R. Howlett --- mm/internal.h | 13 +++ mm/mmap.c | 231 +++++++++++++++++++++++++++++--------------------- 2 files changed, 149 insertions(+), 95 deletions(-) diff --git a/mm/internal.h b/mm/internal.h index 6b7ef495b56d..4dab33c2f3ed 100644 --- a/mm/internal.h +++ b/mm/internal.h @@ -856,4 +856,17 @@ static inline bool vma_soft_dirty_enabled(struct vm_ar= ea_struct *vma) return !(vma->vm_flags & VM_SOFTDIRTY); } =20 +/* + * VMA lock generalization + */ +struct vma_prepare { + struct vm_area_struct *vma; + struct vm_area_struct *adj_next; + struct file *file; + struct address_space *mapping; + struct anon_vma *anon_vma; + struct vm_area_struct *insert; + struct vm_area_struct *remove; + struct vm_area_struct *remove2; +}; #endif /* __MM_INTERNAL_H */ diff --git a/mm/mmap.c b/mm/mmap.c index 5b5d5d856152..c990a151e45c 100644 --- a/mm/mmap.c +++ b/mm/mmap.c @@ -633,6 +633,127 @@ inline int vma_expand(struct vma_iterator *vmi, struc= t vm_area_struct *vma, return -ENOMEM; } =20 +/* + * vma_prepare() - Helper function for handling locking VMAs prior to alte= ring + * @vp: The initialized vma_prepare struct + */ +static inline void vma_prepare(struct vma_prepare *vp) +{ + if (vp->file) { + uprobe_munmap(vp->vma, vp->vma->vm_start, vp->vma->vm_end); + + if (vp->adj_next) + uprobe_munmap(vp->adj_next, vp->adj_next->vm_start, + vp->adj_next->vm_end); + + i_mmap_lock_write(vp->mapping); + if (vp->insert && vp->insert->vm_file) { + /* + * Put into interval tree now, so instantiated pages + * are visible to arm/parisc __flush_dcache_page + * throughout; but we cannot insert into address + * space until vma start or end is updated. + */ + __vma_link_file(vp->insert, + vp->insert->vm_file->f_mapping); + } + } + + if (vp->anon_vma) { + anon_vma_lock_write(vp->anon_vma); + anon_vma_interval_tree_pre_update_vma(vp->vma); + if (vp->adj_next) + anon_vma_interval_tree_pre_update_vma(vp->adj_next); + } + + if (vp->file) { + flush_dcache_mmap_lock(vp->mapping); + vma_interval_tree_remove(vp->vma, &vp->mapping->i_mmap); + if (vp->adj_next) + vma_interval_tree_remove(vp->adj_next, + &vp->mapping->i_mmap); + } + +} + +/* + * vma_complete- Helper function for handling the unlocking after altering= VMAs, + * or for inserting a VMA. + * + * @vp: The vma_prepare struct + * @vmi: The vma iterator + * @mm: The mm_struct + */ +static inline void vma_complete(struct vma_prepare *vp, + struct vma_iterator *vmi, struct mm_struct *mm) +{ + if (vp->file) { + if (vp->adj_next) + vma_interval_tree_insert(vp->adj_next, + &vp->mapping->i_mmap); + vma_interval_tree_insert(vp->vma, &vp->mapping->i_mmap); + flush_dcache_mmap_unlock(vp->mapping); + } + + if (vp->remove && vp->file) { + __remove_shared_vm_struct(vp->remove, vp->file, vp->mapping); + if (vp->remove2) + __remove_shared_vm_struct(vp->remove2, vp->file, + vp->mapping); + } else if (vp->insert) { + /* + * split_vma has split insert from vma, and needs + * us to insert it before dropping the locks + * (it may either follow vma or precede it). + */ + vma_iter_store(vmi, vp->insert); + mm->map_count++; + } + + if (vp->anon_vma) { + anon_vma_interval_tree_post_update_vma(vp->vma); + if (vp->adj_next) + anon_vma_interval_tree_post_update_vma(vp->adj_next); + anon_vma_unlock_write(vp->anon_vma); + } + + if (vp->file) { + i_mmap_unlock_write(vp->mapping); + uprobe_mmap(vp->vma); + + if (vp->adj_next) + uprobe_mmap(vp->adj_next); + } + + if (vp->remove) { +again: + if (vp->file) { + uprobe_munmap(vp->remove, vp->remove->vm_start, + vp->remove->vm_end); + fput(vp->file); + } + if (vp->remove->anon_vma) + anon_vma_merge(vp->vma, vp->remove); + mm->map_count--; + mpol_put(vma_policy(vp->remove)); + if (!vp->remove2) + WARN_ON_ONCE(vp->vma->vm_end < vp->remove->vm_end); + vm_area_free(vp->remove); + + /* + * In mprotect's case 6 (see comments on vma_merge), + * we must remove next_next too. + */ + if (vp->remove2) { + vp->remove =3D vp->remove2; + vp->remove2 =3D NULL; + goto again; + } + } + if (vp->insert && vp->file) + uprobe_mmap(vp->insert); +} + /* * We cannot adjust vm_start, vm_end, vm_pgoff fields of a vma that * is already present in an i_mmap tree without adjusting the tree. @@ -648,14 +769,13 @@ int __vma_adjust(struct vma_iterator *vmi, struct vm_= area_struct *vma, struct vm_area_struct *next_next =3D NULL; /* uninit var warning */ struct vm_area_struct *next =3D find_vma(mm, vma->vm_end); struct vm_area_struct *orig_vma =3D vma; - struct address_space *mapping =3D NULL; - struct rb_root_cached *root =3D NULL; struct anon_vma *anon_vma =3D NULL; struct file *file =3D vma->vm_file; bool vma_changed =3D false; long adjust_next =3D 0; int remove_next =3D 0; struct vm_area_struct *exporter =3D NULL, *importer =3D NULL; + struct vma_prepare vma_prep; =20 if (next && !insert) { if (end >=3D next->vm_end) { @@ -751,39 +871,22 @@ int __vma_adjust(struct vma_iterator *vmi, struct vm_= area_struct *vma, anon_vma !=3D next->anon_vma); =20 vma_adjust_trans_huge(orig_vma, start, end, adjust_next); - if (file) { - mapping =3D file->f_mapping; - root =3D &mapping->i_mmap; - uprobe_munmap(vma, vma->vm_start, vma->vm_end); - - if (adjust_next) - uprobe_munmap(next, next->vm_start, next->vm_end); - - i_mmap_lock_write(mapping); - if (insert && insert->vm_file) { - /* - * Put into interval tree now, so instantiated pages - * are visible to arm/parisc __flush_dcache_page - * throughout; but we cannot insert into address - * space until vma start or end is updated. - */ - __vma_link_file(insert, insert->vm_file->f_mapping); - } - } =20 - if (anon_vma) { - anon_vma_lock_write(anon_vma); - anon_vma_interval_tree_pre_update_vma(vma); - if (adjust_next) - anon_vma_interval_tree_pre_update_vma(next); + memset(&vma_prep, 0, sizeof(vma_prep)); + vma_prep.vma =3D vma; + vma_prep.anon_vma =3D anon_vma; + vma_prep.file =3D file; + if (adjust_next) + vma_prep.adj_next =3D next; + if (file) + vma_prep.mapping =3D file->f_mapping; + vma_prep.insert =3D insert; + if (remove_next) { + vma_prep.remove =3D next; + vma_prep.remove2 =3D next_next; } =20 - if (file) { - flush_dcache_mmap_lock(mapping); - vma_interval_tree_remove(vma, root); - if (adjust_next) - vma_interval_tree_remove(next, root); - } + vma_prepare(&vma_prep); =20 if (start !=3D vma->vm_start) { if (vma->vm_start < start) { @@ -821,69 +924,7 @@ int __vma_adjust(struct vma_iterator *vmi, struct vm_a= rea_struct *vma, vma_iter_store(vmi, next); } =20 - if (file) { - if (adjust_next) - vma_interval_tree_insert(next, root); - vma_interval_tree_insert(vma, root); - flush_dcache_mmap_unlock(mapping); - } - - if (remove_next && file) { - __remove_shared_vm_struct(next, file, mapping); - if (remove_next =3D=3D 2) - __remove_shared_vm_struct(next_next, file, mapping); - } else if (insert) { - /* - * split_vma has split insert from vma, and needs - * us to insert it before dropping the locks - * (it may either follow vma or precede it). - */ - vma_iter_store(vmi, insert); - mm->map_count++; - } - - if (anon_vma) { - anon_vma_interval_tree_post_update_vma(vma); - if (adjust_next) - anon_vma_interval_tree_post_update_vma(next); - anon_vma_unlock_write(anon_vma); - } - - if (file) { - i_mmap_unlock_write(mapping); - uprobe_mmap(vma); - - if (adjust_next) - uprobe_mmap(next); - } - - if (remove_next) { -again: - if (file) { - uprobe_munmap(next, next->vm_start, next->vm_end); - fput(file); - } - if (next->anon_vma) - anon_vma_merge(vma, next); - mm->map_count--; - mpol_put(vma_policy(next)); - if (remove_next !=3D 2) - BUG_ON(vma->vm_end < next->vm_end); - vm_area_free(next); - - /* - * In mprotect's case 6 (see comments on vma_merge), - * we must remove next_next too. - */ - if (remove_next =3D=3D 2) { - remove_next =3D 1; - next =3D next_next; - goto again; - } - } - if (insert && file) - uprobe_mmap(insert); - + vma_complete(&vma_prep, vmi, mm); vma_iter_free(vmi); validate_mm(mm); =20 --=20 2.35.1 From nobody Fri Sep 19 02:32:03 2025 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 402ADC433FE for ; Tue, 29 Nov 2022 16:48:06 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S236348AbiK2QsE (ORCPT ); Tue, 29 Nov 2022 11:48:04 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:43094 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S236323AbiK2QrI (ORCPT ); Tue, 29 Nov 2022 11:47:08 -0500 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 5A91D6C71C for ; Tue, 29 Nov 2022 08:45:18 -0800 (PST) Received: from pps.filterd (m0246631.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 2ATGOgxA005680; Tue, 29 Nov 2022 16:45:13 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : references : in-reply-to : content-type : content-transfer-encoding : mime-version; s=corp-2022-7-12; bh=D7AHktccuhtvwQg420kJai5Cpf4bMzSkAcFe7bPajYM=; b=Xjj+NfV16kYdx6Ho5KsfEj5aRJMbm9HMlrmEqHXMg511c2ckfXzlHtumJsTQa5LIUx1d iFuTE/TEzvOLDea8RcXhPYh7dCL9OfwYLVlZO7YVsQXVRkXoEZufBmTFmTYRG+rTG2rt C3yqtrhkdKQ9WZOslZxQ4yZY5nnpi+vxas5QV/xIS2JZGmbseB/w8ibUzBuIW1vtzzM5 SlA65zMur28tEjqY2DyTOTNkzR1rECVnUE3mAW4UTdaCb1d25qlJfsjPsY/QldKL3RQM /Vk3+f5ErhKMKm9dczQlVSMiLmKx1R6QfFhTSbKVahRxPK1gmzBC6fo+kadrzowhZVWP FQ== Received: from iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta02.appoci.oracle.com [147.154.18.20]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3m39k2qfct-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 29 Nov 2022 16:45:12 +0000 Received: from pps.filterd (iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (8.17.1.5/8.17.1.5) with ESMTP id 2ATFkaU5026698; Tue, 29 Nov 2022 16:45:12 GMT Received: from nam12-mw2-obe.outbound.protection.outlook.com (mail-mw2nam12lp2040.outbound.protection.outlook.com [104.47.66.40]) by iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 3m3c1vkkp0-7 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 29 Nov 2022 16:45:12 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Booidj0CTtoAkZSfaZkqAjbAiBTpAVfuwTHujB/N06ZU5PO7n7RXvk9r/tzWNZFjuS6v6fgoIOh3lF0NqrqRzugZeOp6pj9vKzobklzFuGfMxkeyOrBv7w1lMyeIdoRrNzyhIsnTmC/Izg3tKQamXny1AgeMbk4ZGIh0Rzwa8B0Pydm/HrkWiJVOyzNE/ct/XCu6a5b7mJOinQ89D0ijfBCwuEOQ5twMpGVjw5sQm41TS9cWIE5gP6Y3IloMdvVYyM2gZOfBZAYSiTNaL2JECl73ZQbwGhNEJIs4lSQo9jjmlaE/yGWm3s+iT5W5QEK82G/y2Ne27zHF7dWnIu/w8w== 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=D7AHktccuhtvwQg420kJai5Cpf4bMzSkAcFe7bPajYM=; b=cF0XJAHk5NStOUN5fcCqpbJ9kuDPzR/Kc9MpZJVYY2oukrvu7dcDri47p/b23lB86teq0fBqtugUFaA6aULKA4fuH1OuEyYpDlNDdhs5bjAUV0ZZTGNkb/dTKa+v5pGdvX9Y/jCee/oBKoI9WLcDQv3psP1+Pqy+vwHW4Jr+JYubDvJAFZQIG7s5jukCT2SmaQ1aroTivZp76JKXVkxQU0Vp3jPnYIwLty0lL5jFhsbUw0B0nNsZuCtigfc1D0qDEr37utRnr/k8hTnAb9+rUlLb7g5C/Rn+ozhLnt0ARPg+vopv0S63AbH+N/hXtvvCRQbvryoUGipUC/akgKkg7A== 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=D7AHktccuhtvwQg420kJai5Cpf4bMzSkAcFe7bPajYM=; b=wqlHsjRVpqIWu+vhrBRlrcpqDWPPfAeb1DClxPhcEohc05DtU/eJyNyUy/XW+r2xQHXie23MSTe+fMTSK+S2T1axr4g6mapjXAdMOaKuselsnu3YXQ20q2aAl2QDyFAyXthyDqhcAbThyuskjKBhjNdprL5DQqg8efi3FzbiLx0= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by PH0PR10MB4792.namprd10.prod.outlook.com (2603:10b6:510:3d::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5857.23; Tue, 29 Nov 2022 16:45:09 +0000 Received: from SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::a02:2ac8:ee3e:682]) by SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::a02:2ac8:ee3e:682%4]) with mapi id 15.20.5857.022; Tue, 29 Nov 2022 16:45:09 +0000 From: Liam Howlett To: "maple-tree@lists.infradead.org" , "linux-mm@kvack.org" , "linux-kernel@vger.kernel.org" , Andrew Morton CC: Liam Howlett , Liam Howlett Subject: [PATCH 36/43] mm/mmap: Use vma_prepare() and vma_complete() in vma_expand() Thread-Topic: [PATCH 36/43] mm/mmap: Use vma_prepare() and vma_complete() in vma_expand() Thread-Index: AQHZBBHdAbYbG5CjqEiHO5lqEGIrpg== Date: Tue, 29 Nov 2022 16:44:35 +0000 Message-ID: <20221129164352.3374638-37-Liam.Howlett@oracle.com> References: <20221129164352.3374638-1-Liam.Howlett@oracle.com> In-Reply-To: <20221129164352.3374638-1-Liam.Howlett@oracle.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-mailer: git-send-email 2.35.1 x-ms-publictraffictype: Email x-ms-traffictypediagnostic: SN6PR10MB3022:EE_|PH0PR10MB4792:EE_ x-ms-office365-filtering-correlation-id: e54be76b-688f-4b03-95bf-08dad22913ff x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: xEEYWcVQ50h5AwwwvTKFAIU7t1FXIl1+assAZdxLL8zMLGYSQ0r+K/BG+Hnbgu0lRqIBLgv9A1OnO4oQGc8iZjp/tZ8e++xSEqPaTYy0N7V40DuRJb9IUs3yKtMVTWB7VuL+j8Q4hTp6H2tAtcOvSF9/lu+GUK2qu+AJ5BefM5NAffnAUWX8S7HtSkljj2oQWUjbTC4nyJSCmO+ktrJLZSsKHdSfdRtN3gecSNU63uf9YnszqnLXMFOPPmV1v2zsqzNqGwlAzbYv7qQ1CmVQXeDoyosVljeBlKBPkXRoLP3wWOiac0Y62d3kJP6wgN99xCR7Lak3uqZd3WJhRazQ12SYvJVuwTCZ7+OE7uEHIMUQtmb5AwRv8lDB38x00f8Nz2VxyfJG7AZ3P1mSsSbYKbamxkrj5gYAzV8aEbfzvxenv3yJ7vxe/wzgrcDYG1b8N5UPdm/a4BpBdaoLVsgE1YRUe6lMd8BZoU095YP/9pY8cI+R1uTecnRcMGp6KoG1EBL/8vGd+Jevs8iDMK85V1/DNt2ls72oSGxpy811fOJNmO/XCZA3GBuEzgBCwP+KHUf9SHg11lZWPrZ4BlNN/09OWYNJm1cWRgpN7h2Zm62rZjRP3SxoruSd8ugDozKTs1xYBaC9F1xV3xoW21xzwXeMQ1PE76nDy94ritvhdyfcNx4QfUC+bjs4Lxq0ykvQwGy51EdMpC1WRriMLo2Zkw== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SN6PR10MB3022.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230022)(396003)(136003)(366004)(346002)(376002)(39860400002)(451199015)(38070700005)(2906002)(36756003)(86362001)(6666004)(6486002)(71200400001)(107886003)(478600001)(44832011)(41300700001)(316002)(76116006)(66556008)(66946007)(91956017)(5660300002)(66476007)(26005)(110136005)(66446008)(4326008)(54906003)(8936002)(8676002)(64756008)(6506007)(6512007)(186003)(122000001)(2616005)(38100700002)(1076003)(83380400001);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?Q?vLcR6gPegKI66JmW64S/YTpZLNcZ93gvEt3MuTsEQ5nqvjJhiEvB5UqHjQ?= =?iso-8859-1?Q?waCHGZ1yDGqHdAoXZ5KJAbTknNSgB4WFuJTmU0eDSWMkTYMvFdkfQdFvs6?= =?iso-8859-1?Q?w1y4cykk1F+RqJd46Ee2Z3CPaa3m6qjOqpmzyVxXsZLIeeuaonOktnyE1w?= =?iso-8859-1?Q?nmYa3cBK83f2ETRS6gcVDfldr/DQmERgmJuMb1l1P5Y0Z/PqT3Ol/MkmFw?= =?iso-8859-1?Q?anc96Gj7kT4N0C4ChNKEgIcUiRMN+0g6ynDQNzZ/YoZlrnx1/qspBFk4Ha?= =?iso-8859-1?Q?K9LAc2dLT0KETpok98/xdmNHOTj8R2l87BUQL5+Y5pIkoVKX6E7m/VDTgl?= =?iso-8859-1?Q?4+p+zwBX9iL7UjJ1Bfb/mZBZjTUkdrlXB1iNHkqrPt19tLFZHVOiTmzmaR?= =?iso-8859-1?Q?+KFuipnUGLPum3BZdW3/SrIr6QuotRWlBQdI9NoZc1sX6VtsdQGQ7iR5Zq?= =?iso-8859-1?Q?tSAUOqWB6Yaq94THUwaEWgNjgrJGBpn3V6Yw/ZQ1HHjFKuZuLgqVznA+jR?= =?iso-8859-1?Q?GJEutl0Jlm62OLdDN9ampshwVH7mKSJiHu/ZgJvkfEZ50o5MkDUta0zhbH?= =?iso-8859-1?Q?vMeWtWD9u7bslMlYSMRnowsHvOppd9pBYthJsqBYDOoTRw6kK5BsT/Ndwh?= =?iso-8859-1?Q?DTW0PO78QgMPHQaL1o7B3ioWi2pae+I7O5RQ9uDQjzRPmVI5R+ZlAoTXT4?= =?iso-8859-1?Q?073kiBO1JARHrBhFqMlLJKCBa2dXUmAuDgzwfidGyBB7nBvCmTcgqwgp8Y?= =?iso-8859-1?Q?W4oOhxDKyy8hJ2pJnm6axGobn4ZzFIob0IQJ9F17Im2xixDqVJEEOeOkDS?= =?iso-8859-1?Q?VmFrJVDlokF8noQDf67DJjhkkcsT6a4vUkNACit8i62zbmxDQxeDCS++qk?= =?iso-8859-1?Q?Dnuj4BFvthCPnDi4oj0O84jw0rYXqz3h8JOp3qh0W9ZjLLdR4SUA4rxMxO?= =?iso-8859-1?Q?1lvAHDlkt1rIE37hGNKj5zySMlpIWzSSpGJPHQ7z6ef2lWcXglUzbT/0Rd?= =?iso-8859-1?Q?bGgS5te+Be0RRYqomOqTfQCxWeI7TLzx7x9l8XvMgQGdL8+baWVmX94YvO?= =?iso-8859-1?Q?k8Wxb84teBZyGtErocIGuQN5G//EPPGN8PfXaLdg+ivMTo1zvTAd3olxte?= =?iso-8859-1?Q?iMHvvDGcP+4V4ToSUmi/TGhv3Ts8WNeJ4PWV9du5joy6hfKfgYCxcczXUs?= =?iso-8859-1?Q?lqyhyQLzOBOPEazQZKHIToBS/taU44UyNqNU7c5zhiPbdeeI9CamytJQ03?= =?iso-8859-1?Q?QmjDSe1ady3BziZ7W6E8eiIYNfvf/qZF8vitHYOnJDdU0eubxJa5z5ZAfX?= =?iso-8859-1?Q?FPcsd5szYtQm6GtKcN2lMVj0pPY+QN5Rs+UuebUN75bkT+/9DsLr9ZVhef?= =?iso-8859-1?Q?N5VeUbXZ+xOoTzJidaVfbrUbVW95WgfGFWadwbGwa93xfSh6VTCV/sy7fi?= =?iso-8859-1?Q?YzUVIWYNZlWC2jnHmuyjfJ46moNtxubRqbOtnpvrTwHcWsgIB16FJIN6WS?= =?iso-8859-1?Q?WqRYNTD0MoTzR6bUF/OK0v3XkEHOCCj7YVq4HiEw5+xn+k/Frmi5WWaaYC?= =?iso-8859-1?Q?AhLJHtWTxuSlKfUNGHge81EnQb+3kI03GUgpp3h0Lz8ryI2LL4pq2DieDY?= =?iso-8859-1?Q?PuVUVSrJ06zybTVU5VoKaZojp28kBYA17rkfCYSRSZGP4FLrQPgW8ljw?= =?iso-8859-1?Q?=3D=3D?= Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: rtZ2XogGioKfHeKgOLKe6iZ8+T8G5Wkm7lt6zr+10iIesWFI5BRevFhS8KaRoMXbAawAHPRdgBkGwAlkhIpqAwByfXKFxhMxENfjQoGcPuN0ZHQQpw+4BMVfsWCtBlGGzcyCTUaAi/hr7CVSo5KPTLOmyogiE1wPVJ52R7wtfGwMlc8NNHxrPKARVFFXlqSJLMsEefQx7Gf68SAUt5XY3SObHQZ1FOVnks4sUSKhKPzgQV4eE537Uaq2fE0Rrhf2aAok4teRKXFXtSnqINoTwpyjmzLFPzJfNI7fvxU7YGCzQVCjTD3FgideGHqDG+EmH9Z52O/vPCHF3xu12WRx1mhRr0Gde9TPYuKpQZ5lAGkQJOVSZ6zJvJsSaUE0+RvnxNNZHu7l2fKBtHzIopAYvaKvUFAweVvvRlnR9mpn7wO6if2dIvLEA6hTwPC4AWSALlqHWq08aU7dDvagdyO5YkbL5NktYGYDdRugpyTm8dDiHqUNOn7XCi63N2E9XKsIVNCo30ox5mT88neQj3uPaNCjRP9PWys/r3Su/wnqefW4cUWY/McGYb3WqOPXcwXqlqSqlJAZyqjodopPC71y1TbDIfJv9JKno2NnA2qAelhSr0qakWMrOXEw2BDG5ze8TDjthtFkCPi3/2n7DOKC+BurPxal5cx5v5YrbkA925kIBUpTvYHSxx4FqbX5QXkLS1BBwhspKywULHR8z9vjtjeax4uv5yWVT+EE5zHG4YPpaQpiHBMUcBlv7ylJ8Pg/riMOaoZUfhiaIIWsbj0avpmuVLQY2r1oUmr93wsjD+KP/UXMsWmLZdCiiSrnWejj4r+7alYG8rCnKlihhEtH0Abash02YUXfcR7r6ZLqjZxg3pxDBKXIffV4XkwJfA+mcVpStQajeVLF2ktZ8bTfBg== X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: SN6PR10MB3022.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: e54be76b-688f-4b03-95bf-08dad22913ff X-MS-Exchange-CrossTenant-originalarrivaltime: 29 Nov 2022 16:44:35.8472 (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: UpvfAeYsEjOBpG/Z0iScVhN9NRtYz66JQS/J0scdyN+Ykdg0vvRWkd+gFn13YYKxoe7tjzA2P8x6AfcWE5ezhg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR10MB4792 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.219,Aquarius:18.0.895,Hydra:6.0.545,FMLib:17.11.122.1 definitions=2022-11-29_11,2022-11-29_01,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 spamscore=0 phishscore=0 suspectscore=0 bulkscore=0 adultscore=0 mlxlogscore=974 malwarescore=0 mlxscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2210170000 definitions=main-2211290093 X-Proofpoint-GUID: bD2cRgwrY-Edg-Gts5sw88HA1K_oQdZ- X-Proofpoint-ORIG-GUID: bD2cRgwrY-Edg-Gts5sw88HA1K_oQdZ- Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" From: "Liam R. Howlett" Use the new locking functions for vma_expand(). This reduces code duplication. At the same time change VM_BUG_ON() to VM_WARN_ON() Signed-off-by: Liam R. Howlett --- mm/mmap.c | 189 +++++++++++++++++++++--------------------------------- 1 file changed, 73 insertions(+), 116 deletions(-) diff --git a/mm/mmap.c b/mm/mmap.c index c990a151e45c..39555335f145 100644 --- a/mm/mmap.c +++ b/mm/mmap.c @@ -517,122 +517,6 @@ static int vma_link(struct mm_struct *mm, struct vm_a= rea_struct *vma) return 0; } =20 -/* - * vma_expand - Expand an existing VMA - * - * @mas: The maple state - * @vma: The vma to expand - * @start: The start of the vma - * @end: The exclusive end of the vma - * @pgoff: The page offset of vma - * @next: The current of next vma. - * - * Expand @vma to @start and @end. Can expand off the start and end. Will - * expand over @next if it's different from @vma and @end =3D=3D @next->vm= _end. - * Checking if the @vma can expand and merge with @next needs to be handle= d by - * the caller. - * - * Returns: 0 on success - */ -inline int vma_expand(struct vma_iterator *vmi, struct vm_area_struct *vma, - unsigned long start, unsigned long end, pgoff_t pgoff, - struct vm_area_struct *next) -{ - struct mm_struct *mm =3D vma->vm_mm; - struct address_space *mapping =3D NULL; - struct rb_root_cached *root =3D NULL; - struct anon_vma *anon_vma =3D vma->anon_vma; - struct file *file =3D vma->vm_file; - bool remove_next =3D false; - - if (next && (vma !=3D next) && (end =3D=3D next->vm_end)) { - remove_next =3D true; - if (next->anon_vma && !vma->anon_vma) { - int error; - - anon_vma =3D next->anon_vma; - vma->anon_vma =3D anon_vma; - error =3D anon_vma_clone(vma, next); - if (error) - return error; - } - } - - /* Not merging but overwriting any part of next is not handled. */ - VM_BUG_ON(next && !remove_next && next !=3D vma && end > next->vm_start); - /* Only handles expanding */ - VM_BUG_ON(vma->vm_start < start || vma->vm_end > end); - - if (vma_iter_prealloc(vmi, vma)) - goto nomem; - - vma_adjust_trans_huge(vma, start, end, 0); - - if (file) { - mapping =3D file->f_mapping; - root =3D &mapping->i_mmap; - uprobe_munmap(vma, vma->vm_start, vma->vm_end); - i_mmap_lock_write(mapping); - } - - if (anon_vma) { - anon_vma_lock_write(anon_vma); - anon_vma_interval_tree_pre_update_vma(vma); - } - - if (file) { - flush_dcache_mmap_lock(mapping); - vma_interval_tree_remove(vma, root); - } - - /* VMA iterator points to previous, so set to start if necessary */ - if (vma_iter_addr(vmi) !=3D start) - vma_iter_set(vmi, start); - - vma->vm_start =3D start; - vma->vm_end =3D end; - vma->vm_pgoff =3D pgoff; - vma_iter_store(vmi, vma); - - if (file) { - vma_interval_tree_insert(vma, root); - flush_dcache_mmap_unlock(mapping); - } - - /* Expanding over the next vma */ - if (remove_next && file) { - __remove_shared_vm_struct(next, file, mapping); - } - - if (anon_vma) { - anon_vma_interval_tree_post_update_vma(vma); - anon_vma_unlock_write(anon_vma); - } - - if (file) { - i_mmap_unlock_write(mapping); - uprobe_mmap(vma); - } - - if (remove_next) { - if (file) { - uprobe_munmap(next, next->vm_start, next->vm_end); - fput(file); - } - if (next->anon_vma) - anon_vma_merge(vma, next); - mm->map_count--; - mpol_put(vma_policy(next)); - vm_area_free(next); - } - - validate_mm(mm); - return 0; - -nomem: - return -ENOMEM; -} - /* * vma_prepare() - Helper function for handling locking VMAs prior to alte= ring * @vp: The initialized vma_prepare struct @@ -754,6 +638,79 @@ static inline void vma_complete(struct vma_prepare *vp, uprobe_mmap(vp->insert); } =20 +/* + * vma_expand - Expand an existing VMA + * + * @vmi: The vma iterator + * @vma: The vma to expand + * @start: The start of the vma + * @end: The exclusive end of the vma + * @pgoff: The page offset of vma + * @next: The current of next vma. + * + * Expand @vma to @start and @end. Can expand off the start and end. Will + * expand over @next if it's different from @vma and @end =3D=3D @next->vm= _end. + * Checking if the @vma can expand and merge with @next needs to be handle= d by + * the caller. + * + * Returns: 0 on success + */ +inline int vma_expand(struct vma_iterator *vmi, struct vm_area_struct *vma, + unsigned long start, unsigned long end, pgoff_t pgoff, + struct vm_area_struct *next) + +{ + struct vma_prepare vp; + + memset(&vp, 0, sizeof(vp)); + vp.vma =3D vma; + vp.anon_vma =3D vma->anon_vma; + if (next && (vma !=3D next) && (end =3D=3D next->vm_end)) { + vp.remove =3D next; + if (next->anon_vma && !vma->anon_vma) { + int error; + + vp.anon_vma =3D next->anon_vma; + vma->anon_vma =3D next->anon_vma; + error =3D anon_vma_clone(vma, next); + if (error) + return error; + } + } + + /* Not merging but overwriting any part of next is not handled. */ + VM_WARN_ON(next && !vp.remove && + next !=3D vma && end > next->vm_start); + /* Only handles expanding */ + VM_WARN_ON(vma->vm_start < start || vma->vm_end > end); + + if (vma_iter_prealloc(vmi, vma)) + goto nomem; + + vma_adjust_trans_huge(vma, start, end, 0); + + vp.file =3D vma->vm_file; + if (vp.file) + vp.mapping =3D vp.file->f_mapping; + + /* VMA iterator points to previous, so set to start if necessary */ + if (vma_iter_addr(vmi) !=3D start) + vma_iter_set(vmi, start); + + vma_prepare(&vp); + vma->vm_start =3D start; + vma->vm_end =3D end; + vma->vm_pgoff =3D pgoff; + /* Note: mas must be pointing to the expanding VMA */ + vma_iter_store(vmi, vma); + + vma_complete(&vp, vmi, vma->vm_mm); + validate_mm(vma->vm_mm); + return 0; + +nomem: + return -ENOMEM; +} /* * We cannot adjust vm_start, vm_end, vm_pgoff fields of a vma that * is already present in an i_mmap tree without adjusting the tree. --=20 2.35.1 From nobody Fri Sep 19 02:32:03 2025 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id EA7FCC4167B for ; Tue, 29 Nov 2022 16:48:15 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S236358AbiK2QsN (ORCPT ); Tue, 29 Nov 2022 11:48:13 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:43760 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S236222AbiK2QrU (ORCPT ); Tue, 29 Nov 2022 11:47:20 -0500 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 9FEC76C739 for ; Tue, 29 Nov 2022 08:45:21 -0800 (PST) Received: from pps.filterd (m0246617.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 2ATGP3vI031406; Tue, 29 Nov 2022 16:45:18 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : references : in-reply-to : content-type : content-transfer-encoding : mime-version; s=corp-2022-7-12; bh=QJbNDToPPBGmnKbH0hoXaHKCrKKZJy8f2tBnF9/nnTc=; b=fYXSppRl7bG/BgE3BxV1zWcGMG6BAK2EErFnDHamJUgQGVafPgPg5R6XFJJhQsSGbX8Z L2ZIcs5781tmEf0PMZ5bvGwTuRulMmcCOjef5M8oeoTnux0coCLJxU/8LI9K3/5Sfhg0 Olp4q5mNayhK+5xZsGYUYB4g4HBohPAjhb94tF2tqj2k33rgW8wpJXnWckRoSJ1ckUFA bSq/m3/MzgY8ICqTWcXe0kLvwStdo3nXB9BYAmpZMGyCmVTNJI7WomVGXgVvdsXfWivW 1Mkzv7tOZwq4QzDfhF5iNFtxK5Eqj0mEYvGKk3Eg7hc6876WK9CKZiUPu6eADvOmpYNk hA== Received: from phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta03.appoci.oracle.com [138.1.37.129]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3m40y3xavd-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 29 Nov 2022 16:45:18 +0000 Received: from pps.filterd (phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (8.17.1.5/8.17.1.5) with ESMTP id 2ATFm8O7031000; Tue, 29 Nov 2022 16:45:17 GMT Received: from nam12-dm6-obe.outbound.protection.outlook.com (mail-dm6nam12lp2173.outbound.protection.outlook.com [104.47.59.173]) by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 3m398773b1-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 29 Nov 2022 16:45:17 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Ft62VwvxdR44wbmqgLTR0fdgZ2pHWyu2h0YCVFfsMYXrg4uJ3dpBzRzx6YBZhaSkd81Zp9ilLvLqtyxLcjvg5wAY1ExZEa4jQpXm2vL7TwFZToiCL0HxGzZXj3wcYOdVkzYxdDoPy1VhQWkjS4HfNVOKP1hue0dWSjrTGbCJqY0y+OzmVXNFnxjooKk4C5lisHNp33ATsOf53pgPCIDecpl2eYdue+uiasHXB64rqNmE2iielSjGgtbRZLU4lTJ5SaXnl/kpSRNAO3W8MdmF4dM07Yr4jNPrI3JO92AL/pw8Cu0xQM7JZwZOX4visC150JdgYBGrkMLwrBCLLg6e+A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=QJbNDToPPBGmnKbH0hoXaHKCrKKZJy8f2tBnF9/nnTc=; b=aIGuzbzWFUp+7xzhRCMC79nOwlFPMlElwlCL39La0n9exn4gBqOTE0ufDU6Q+/AkUrvbSu9Xju4794T8l5oMC8CiLr+yzhb0Zur3fPzHY+E+Zba3BOYycvXXPCenKD+mRwitsCcCv3+DoKftUVP3qGCmoQX9/PUkf2wrF+nonXYjX6WK/QyOFrsgB+Qq3+5zwNLwEqVMLakOudAOUIPVSEPbL69xhX3yLS5G7b+5ZSgvQQmAUL8mwx97vpRK0XKkA+KhNSYOdq/s6pJNPyS+OZXiknj8aPvkyLAUZcjf1qstAaUiw/rRVjybRdvJfWq6cljtWMZuzSg01GzgsBmmCQ== 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=QJbNDToPPBGmnKbH0hoXaHKCrKKZJy8f2tBnF9/nnTc=; b=wHRBRj2RJ2KQ6nxpC9nSf6GCjiliZH1mnYA5yvsVJ4n72SLKBDZQtrsepQwmBWKK2kdB4A2UTC1FthPZ6fRuhkSn5gBAbF6mkk9KiGyR+78Ohycw+TgY479S2MoB4XEqmbJ+5zZB4xGARTei9I3L2odcJ5FU12yBy4QcGQlAnQ0= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by CY5PR10MB5937.namprd10.prod.outlook.com (2603:10b6:930:2e::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5857.18; Tue, 29 Nov 2022 16:45:10 +0000 Received: from SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::a02:2ac8:ee3e:682]) by SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::a02:2ac8:ee3e:682%4]) with mapi id 15.20.5857.022; Tue, 29 Nov 2022 16:45:10 +0000 From: Liam Howlett To: "maple-tree@lists.infradead.org" , "linux-mm@kvack.org" , "linux-kernel@vger.kernel.org" , Andrew Morton CC: Liam Howlett , Liam Howlett Subject: [PATCH 37/43] mm/mmap: Introduce init_vma_prep() and init_multi_vma_prep() Thread-Topic: [PATCH 37/43] mm/mmap: Introduce init_vma_prep() and init_multi_vma_prep() Thread-Index: AQHZBBHdzOqYp4THJkycaA0LAPe/qQ== Date: Tue, 29 Nov 2022 16:44:36 +0000 Message-ID: <20221129164352.3374638-38-Liam.Howlett@oracle.com> References: <20221129164352.3374638-1-Liam.Howlett@oracle.com> In-Reply-To: <20221129164352.3374638-1-Liam.Howlett@oracle.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-mailer: git-send-email 2.35.1 x-ms-publictraffictype: Email x-ms-traffictypediagnostic: SN6PR10MB3022:EE_|CY5PR10MB5937:EE_ x-ms-office365-filtering-correlation-id: bececc11-5593-4af7-7d59-08dad2291449 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: M4vCxOA2DNX/zNiQuWQlMzKiwhTZhn3OAXf03GicBijy3SmILadHLXmF03cu7SnFEvOi5Hrf/ODOKV4rMT/Q5C4OyrtxCr3JaNkberv74w9Cr36pvdJTeuBLeHVISjXkZd8d1vsylUj0qhGconJSWEJcYK2axYeZ5z8KLXk6JifWhY3q+heJhy9EfTZo7vA1VflJfN5SywNDPHRJ/PhzHud8bqyfJfnDe7HVGhDoICz8Kkq0GK13HPJsmYIWUdPOoKFcZnTRKEf1hDUFtBHIkglYsbJB3ipO9zvkWS417cGcd5WdZq9RI+tWFV71okGsfEZSH22bJZESJPYa+VtC0N3DOQIlp9DqDwedDxRYByRkGQy45phCP/MrMvhI58BRIwZjkVXNsMBdMnFgYjWTWnyxH0zIognukkR/6l26oLBIFwca7pxGLeSFRUCiy7XOAl4Sk8LrvDr+8fJ3FRAi+zh2tApxaBeNibaPYY4xyYlCL0XIcjfGnU9+5Lhof25FoVq1KiSxnx9ivlbDZg2YKtnNgxwqHSX+V75ueWQAA6/xVKUnA1LyJKFt5f8OLVALPHbOv0e59zkH7FV5ZGrb7M6nMOXwW8Jkudpp0sATNp2uNLTBZLh/XDBTD26Xz0xKoWeGO1IF3In6Hih0wbbJbfltCPQTxeNO3+6MNx/rJDocvb+fWeOjKvJ/0PuvIaASpmj3wXeAuFWJMKZ9t1MzAQ== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SN6PR10MB3022.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230022)(376002)(346002)(39860400002)(396003)(366004)(136003)(451199015)(8676002)(66446008)(66946007)(86362001)(66556008)(66476007)(4326008)(64756008)(91956017)(2906002)(76116006)(110136005)(54906003)(41300700001)(38100700002)(122000001)(6512007)(83380400001)(186003)(8936002)(1076003)(36756003)(2616005)(316002)(5660300002)(107886003)(26005)(44832011)(6666004)(6486002)(71200400001)(478600001)(6506007)(38070700005);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?Q?WZlKoGGJdfcdelhwfGlEd+RHHJC7JVBXBfTo2uiTex7lBA6O2qGFBcQesH?= =?iso-8859-1?Q?c/mcJTTmWMr72gvvLv7odvc39gq/gZ0EHCHjX9/7nRZvgXNrEA/kfyoy7C?= =?iso-8859-1?Q?2K81Z5CVVqQwZ5CaM+ITAWkMWy/A8Q+BO/RRKAwia2sCdOQGES0QyqMW9E?= =?iso-8859-1?Q?aDOQQFwRoccWufLrZvKCqROWe+aTsGnaM3Gvy7ugbT2vMfl1XNLrWnCAp8?= =?iso-8859-1?Q?3ai82gdUHJR45L5BXX/w2CJlN86ftIxBu5p7Pxlf1KA8ZTAuw3hCZ1/pcZ?= =?iso-8859-1?Q?upqjF1rRvYXaPVckwJDybEO90yb3lbnfXkcS9HmSyJiKSvlrhpeuKffz8n?= =?iso-8859-1?Q?f/wM6QkhjknQLYAO5tKwERM9C1ynZjUejhxhBnu5OxCZhyE029o1Cp2BT5?= =?iso-8859-1?Q?j7GhDnUtRFIq0T68EcP9iUeyiE2O8G4YywljZmwSb/hcG+WMV0oaBC3tpw?= =?iso-8859-1?Q?ltkIugF7lVmmWYbu4iKoZtP5x52XcyZhWCpX84gu8nyJOnCSrVJlcFTFIo?= =?iso-8859-1?Q?ftOIvObOqIDOQeT2m45KgqIQhP5Uqi7kk5VK3IHY4YkYupw8xLs2/l2+yM?= =?iso-8859-1?Q?qEdOMNCccbw/mzy0pEigFU+V/Kr7cNQrbI4XXeKC2Z7ywcuAhjxyaDhz2P?= =?iso-8859-1?Q?kdmhpFK14a9At4rQSgw2vzMrraoPqSfqL+Mjgqm6cMuPfgkdTnLNVZ+XSr?= =?iso-8859-1?Q?yMYpMTsnr/7fWbHqVYW29q/IA6G0Ue7JhQiu+ZvvCdkR0dsl5q40cDDHa7?= =?iso-8859-1?Q?KwqoQeaiWB4pjsrOw1dors7l0+q2cbtCrXQjvWDL3V0PMtoP4KQaJzij53?= =?iso-8859-1?Q?g32bQ/vmaEU1f4jUiUc5XyZDfJ+YsOD1M6d3jqcmXbIsBxPgxeYG11aNTL?= =?iso-8859-1?Q?wHmNK71BGM2G1tUHhpc7ANypBskopJGDn+PYhV+I5LGtoavpuq8XI/Qj6j?= =?iso-8859-1?Q?J1Ox+1HwWRqp47qnDik5jo01hIApio4NpK9ZbhfVQ6oB8br4gKDKWbg4DA?= =?iso-8859-1?Q?ax6wk30YxmRG9d/aitQvwHdm8PHfEkYHfHBzam3BcOsHxU56cUz62VqT3V?= =?iso-8859-1?Q?HeKhj11i5CtWD+mX56oPkdtXEli+d02sVuiRmj+jvYxI6MoBVCs7iS2yNV?= =?iso-8859-1?Q?HVRYzXvssZPDQQrH2/O2Kp+jJu5MGGgs9aVU/tz6ySyGi84IN4PVu8f27+?= =?iso-8859-1?Q?2ni5f3dG2Ldfjw/64A93Xrq75JMBmt35kLnxrllT8Ws8IYLHgpsKvCCtvw?= =?iso-8859-1?Q?sAA796R2YHr7hXsUAfBvlWGqPP/5mQjiG0l+2N018AFeAISMJk2csgdCcm?= =?iso-8859-1?Q?XYPGsnMukOLFR8Ag3KPtT0pQgAKTa7hFwKEWx6caqkEkMDYjYceTpLl8tK?= =?iso-8859-1?Q?QyaJ2Khtvh5Kctrx6UkjHnuItTEhv0+1pgqiCoyJ5X5ipRXEn7S+kLz1F1?= =?iso-8859-1?Q?LARA3vTVTqvF4SYY9P7pg0wiPECMiCCSbfY2wmcGtMejNU0cDSP7AoPJhE?= =?iso-8859-1?Q?DIeoFK3+jYwcNHUqsk8di3UtpUzK7q5dASuPh3f7Q/Lcty4dpWmN5o31qA?= =?iso-8859-1?Q?ysXhCLWBYlxKgrmCiuzhCNSToSn5ML5/vhNN/HAEruL9XWbKGN4sRgMj9d?= =?iso-8859-1?Q?u87UXLIM7tJnYhgwT3VXlwzRcxvob08Z498393t/wbbyIXsEBdgZlxig?= =?iso-8859-1?Q?=3D=3D?= Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: rcAlTzmD3J3eObcKNiBwG0ul+hSQotCjrhQ+lMFgnxELGQrWQqypZ9BXNsaLjFFl0HMklMZX3TxYxYP7sC4G2zY3s4wsHlU+oBuq7qtSi0xo6POwdsgTG/Hjga248wnO8hY+yVgkLCPCh5j69BbyhKjtMJJ4Ql5mZBScdZdGLtrFUWo634n5NCfIdZuhWS2ARSaZC+RKgCpdounIphjJnGHlhXqJry2Dx55vHzfBG1LstytutSR8NTi/VGQOYcIhfMHR4WYR+K4U3Zk/STwgjfYHEaVKWFx88OjwwJ3dBiYGI6/CR9UssjPLYNOxTSWtEzKcZaYwUHSy1bjCSSJcSyU0Oon0tcIEJwc/doeVQwac1tZEzGwC9PwG9wnjOkAbHuSEz+blOrzAB8+2CXHp2CJTTIIQ+d7L+rkGTll246ktnKCqQPWhT9TihFgdomo4oJlq8ebyqiZCBcEMraaNt3jZZR6Fo5NFJSpUrxaESzXUH3lTTuZIIPCDoa5CpPfE1ZwUkFvm5YL0Rn+YEcGavBZlJqZ1KFugIs2eAJGua1zeu3kslL0j9grt6CgmBeBkb4pz4NK+afwLj+Ww0BQMOC/POd5fQi/nmRg4vSmiu7h4u7y63BGq2rAHmCicTctNjSkkhIfnMRfAR9/M0ZvqaLXnAw86HQbxRhmy/1NyFASvf23D4IgL2wgpX6KTI69ytQH/yjKMKdNdoAM2cziemb7sdy7hVLigx07qVlkPEPy9nSszGAGbJYKJphUBwdfehzY62OuY6cMe0KDnPheb73iK31yX45JyDWsA3vNl3uPbuiWUwtTpFwfxjGKyp23Hs2FgC45khnebBI+v+exxYH6NbsBDnsMaME1SO8pgQXi04Qa7OTcjb3DH8PaiXs98kOhEoqRZKWsr7EucLNhVIA== X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: SN6PR10MB3022.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: bececc11-5593-4af7-7d59-08dad2291449 X-MS-Exchange-CrossTenant-originalarrivaltime: 29 Nov 2022 16:44:36.1440 (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: jGvYTMJ8OQpHj6bNNZs/3icboNIw85qbWCtlOL9ONMAXmqcC6gB7wQHTHVamwRtharQ4Gr/SGBKjUwWSp929Vg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY5PR10MB5937 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.219,Aquarius:18.0.895,Hydra:6.0.545,FMLib:17.11.122.1 definitions=2022-11-29_11,2022-11-29_01,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 adultscore=0 suspectscore=0 phishscore=0 mlxscore=0 bulkscore=0 spamscore=0 malwarescore=0 mlxlogscore=999 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2210170000 definitions=main-2211290093 X-Proofpoint-GUID: uryKGuMcLhkgRhDbUHGYqoSKn7fzIDg2 X-Proofpoint-ORIG-GUID: uryKGuMcLhkgRhDbUHGYqoSKn7fzIDg2 Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" From: "Liam R. Howlett" Add init_vma_prep() and init_multi_vma_prep() to set up the struct vma_prepare. This is to abstract the locking when adjusting the VMAs. Also change __vma_adjust() variable remove_next int in favour of a pointer to the VMA to remove. Rename next_next to remove2 since this better reflects its use. Signed-off-by: Liam R. Howlett --- mm/mmap.c | 108 ++++++++++++++++++++++++++++++------------------------ 1 file changed, 61 insertions(+), 47 deletions(-) diff --git a/mm/mmap.c b/mm/mmap.c index 39555335f145..258113e13a88 100644 --- a/mm/mmap.c +++ b/mm/mmap.c @@ -517,6 +517,45 @@ static int vma_link(struct mm_struct *mm, struct vm_ar= ea_struct *vma) return 0; } =20 +/* + * init_multi_vma_prep() - Initializer for struct vma_prepare + * @vp: The vma_prepare struct + * @vma: The vma that will be altered once locked + * @next: The next vma if it is to be adjusted + * @remove: The first vma to be removed + * @remove2: The second vma to be removed + */ +static inline void init_multi_vma_prep(struct vma_prepare *vp, + struct vm_area_struct *vma, struct vm_area_struct *next, + struct vm_area_struct *remove, struct vm_area_struct *remove2) +{ + memset(vp, 0, sizeof(struct vma_prepare)); + vp->vma =3D vma; + vp->anon_vma =3D vma->anon_vma; + vp->remove =3D remove; + vp->remove2 =3D remove2; + vp->adj_next =3D next; + if (!vp->anon_vma && next) + vp->anon_vma =3D next->anon_vma; + + vp->file =3D vma->vm_file; + if (vp->file) + vp->mapping =3D vma->vm_file->f_mapping; + +} + +/* + * init_vma_prep() - Initializer wrapper for vma_prepare struct + * @vp: The vma_prepare struct + * @vma: The vma that will be altered once locked + */ +static inline void init_vma_prep(struct vma_prepare *vp, + struct vm_area_struct *vma) +{ + init_multi_vma_prep(vp, vma, NULL, NULL, NULL); +} + + /* * vma_prepare() - Helper function for handling locking VMAs prior to alte= ring * @vp: The initialized vma_prepare struct @@ -626,7 +665,7 @@ static inline void vma_complete(struct vma_prepare *vp, =20 /* * In mprotect's case 6 (see comments on vma_merge), - * we must remove next_next too. + * we must remove the one after next as well. */ if (vp->remove2) { vp->remove =3D vp->remove2; @@ -660,17 +699,14 @@ inline int vma_expand(struct vma_iterator *vmi, struc= t vm_area_struct *vma, struct vm_area_struct *next) =20 { + bool remove_next =3D false; struct vma_prepare vp; =20 - memset(&vp, 0, sizeof(vp)); - vp.vma =3D vma; - vp.anon_vma =3D vma->anon_vma; if (next && (vma !=3D next) && (end =3D=3D next->vm_end)) { - vp.remove =3D next; + remove_next =3D true; if (next->anon_vma && !vma->anon_vma) { int error; =20 - vp.anon_vma =3D next->anon_vma; vma->anon_vma =3D next->anon_vma; error =3D anon_vma_clone(vma, next); if (error) @@ -678,6 +714,7 @@ inline int vma_expand(struct vma_iterator *vmi, struct = vm_area_struct *vma, } } =20 + init_multi_vma_prep(&vp, vma, NULL, remove_next ? next : NULL, NULL); /* Not merging but overwriting any part of next is not handled. */ VM_WARN_ON(next && !vp.remove && next !=3D vma && end > next->vm_start); @@ -688,11 +725,6 @@ inline int vma_expand(struct vma_iterator *vmi, struct= vm_area_struct *vma, goto nomem; =20 vma_adjust_trans_huge(vma, start, end, 0); - - vp.file =3D vma->vm_file; - if (vp.file) - vp.mapping =3D vp.file->f_mapping; - /* VMA iterator points to previous, so set to start if necessary */ if (vma_iter_addr(vmi) !=3D start) vma_iter_set(vmi, start); @@ -723,14 +755,13 @@ int __vma_adjust(struct vma_iterator *vmi, struct vm_= area_struct *vma, struct vm_area_struct *insert, struct vm_area_struct *expand) { struct mm_struct *mm =3D vma->vm_mm; - struct vm_area_struct *next_next =3D NULL; /* uninit var warning */ + struct vm_area_struct *remove2 =3D NULL; + struct vm_area_struct *remove =3D NULL; struct vm_area_struct *next =3D find_vma(mm, vma->vm_end); struct vm_area_struct *orig_vma =3D vma; - struct anon_vma *anon_vma =3D NULL; struct file *file =3D vma->vm_file; bool vma_changed =3D false; long adjust_next =3D 0; - int remove_next =3D 0; struct vm_area_struct *exporter =3D NULL, *importer =3D NULL; struct vma_prepare vma_prep; =20 @@ -749,25 +780,24 @@ int __vma_adjust(struct vma_iterator *vmi, struct vm_= area_struct *vma, */ VM_WARN_ON(end !=3D next->vm_end); /* - * remove_next =3D=3D 3 means we're - * removing "vma" and that to do so we + * we're removing "vma" and that to do so we * swapped "vma" and "next". */ - remove_next =3D 3; VM_WARN_ON(file !=3D next->vm_file); swap(vma, next); + remove =3D next; } else { VM_WARN_ON(expand !=3D vma); /* - * case 1, 6, 7, remove_next =3D=3D 2 is case 6, - * remove_next =3D=3D 1 is case 1 or 7. + * case 1, 6, 7, remove next. + * case 6 also removes the one beyond next */ - remove_next =3D 1 + (end > next->vm_end); - if (remove_next =3D=3D 2) - next_next =3D find_vma(mm, next->vm_end); + remove =3D next; + if (end > next->vm_end) + remove2 =3D find_vma(mm, next->vm_end); =20 - VM_WARN_ON(remove_next =3D=3D 2 && - end !=3D next_next->vm_end); + VM_WARN_ON(remove2 !=3D NULL && + end !=3D remove2->vm_end); } =20 exporter =3D next; @@ -777,8 +807,8 @@ int __vma_adjust(struct vma_iterator *vmi, struct vm_ar= ea_struct *vma, * If next doesn't have anon_vma, import from vma after * next, if the vma overlaps with it. */ - if (remove_next =3D=3D 2 && !next->anon_vma) - exporter =3D next_next; + if (remove2 !=3D NULL && !next->anon_vma) + exporter =3D remove2; =20 } else if (end > next->vm_start) { /* @@ -819,30 +849,14 @@ int __vma_adjust(struct vma_iterator *vmi, struct vm_= area_struct *vma, if (vma_iter_prealloc(vmi, vma)) return -ENOMEM; =20 - anon_vma =3D vma->anon_vma; - if (!anon_vma && adjust_next) - anon_vma =3D next->anon_vma; - - if (anon_vma) - VM_WARN_ON(adjust_next && next->anon_vma && - anon_vma !=3D next->anon_vma); - vma_adjust_trans_huge(orig_vma, start, end, adjust_next); =20 - memset(&vma_prep, 0, sizeof(vma_prep)); - vma_prep.vma =3D vma; - vma_prep.anon_vma =3D anon_vma; - vma_prep.file =3D file; - if (adjust_next) - vma_prep.adj_next =3D next; - if (file) - vma_prep.mapping =3D file->f_mapping; - vma_prep.insert =3D insert; - if (remove_next) { - vma_prep.remove =3D next; - vma_prep.remove2 =3D next_next; - } + init_multi_vma_prep(&vma_prep, vma, adjust_next ? next : NULL, remove, + remove2); + VM_WARN_ON(vma_prep.anon_vma && adjust_next && next->anon_vma && + vma_prep.anon_vma !=3D next->anon_vma); =20 + vma_prep.insert =3D insert; vma_prepare(&vma_prep); =20 if (start !=3D vma->vm_start) { --=20 2.35.1 From nobody Fri Sep 19 02:32:03 2025 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id F0039C433FE for ; Tue, 29 Nov 2022 16:48:10 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S236353AbiK2QsI (ORCPT ); Tue, 29 Nov 2022 11:48:08 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:43728 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S236095AbiK2QrJ (ORCPT ); Tue, 29 Nov 2022 11:47:09 -0500 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id DA6086C728 for ; Tue, 29 Nov 2022 08:45:20 -0800 (PST) Received: from pps.filterd (m0246632.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 2ATGOoMi013723; Tue, 29 Nov 2022 16:45:16 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : references : in-reply-to : content-type : content-transfer-encoding : mime-version; s=corp-2022-7-12; bh=x55XavSBAi4yOVyvkovD+p8FY0W8H7n0eGu3byOi1+4=; b=XT6pwjhs9Gmi7qrWbS+KJfdXEymNFHTgt0ZLM2jJ/2EJuhArdpLGeXchW/HGG3WCicw1 c+bB1bbn3DHUgd+Yi1mtn24CSN4QFfSs2FOHygmdLHE2YsVBeNvR7tpAG+kBKeuFGyY1 C9Eo7VzqP3HNNZDqhkZDVccZEr8SQOsMpgJdd44miPYXso+AIBdAS4VgFsBb2xrABtCt yugzgqLg7jLjtt9DN57gDt9WGMZPYb1JtN6vN7bddGDYtMCd9sXg3lIvrU17aOrzmZFx Fkoa/LUY1PoU5rj+jUxFeAS24WORebm/DOES2la3sHw82tF7OmD5poh69acV0tXW7CTJ WA== Received: from iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta01.appoci.oracle.com [130.35.100.223]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3m3adt7e5r-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 29 Nov 2022 16:45:16 +0000 Received: from pps.filterd (iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (8.17.1.5/8.17.1.5) with ESMTP id 2ATFgHOR011450; Tue, 29 Nov 2022 16:45:15 GMT Received: from nam02-sn1-obe.outbound.protection.outlook.com (mail-sn1nam02lp2040.outbound.protection.outlook.com [104.47.57.40]) by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 3m398drgfk-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 29 Nov 2022 16:45:15 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=dKpJLAI0eLc1P3y1xiPDwIrdvafsvjJM/++utN4dN7QE1Ny0CChNyYuqD6+knduMVYy56rZwKYGXL8gnyXtzI6JiSsu/rVgAKe9FZfIkSBj+m3yD8CgRcojoJGY1pvROvqG06TKHIGIy35A+f9tF0mYclQoALrHN8W+9Lggk7EkHI5gxqZg8c5PEFrMsspquphY5x7A4brxKN7MhbRHWrKp/y4F6v2JBNtHEK4Mpwz0gD2OL3aYU1m3rA6nZ4S6cwYp8wHxuudRG0F/s2wFPUnXUgyCIECLVMgyjkpv+8U5REpvNo1hBq08Yt8S6OQJdMhQLvsfQZBp1KkVVgdn3VQ== 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=x55XavSBAi4yOVyvkovD+p8FY0W8H7n0eGu3byOi1+4=; b=WiPmqyJAVyz5uwNK5RjXogiQTNpd/FmJNVkaVD4N8uwIp7BEEEGPqvkX2/zNoPUe76Q4y7xGUHw1MmobKWN8zsgqEiMfuQ9LkKXpK8LMi/U74Ufc9N1kGNPDDapwAVA0qdvznsif6vTgQHYJMXhcEzJTI7rEJW1TNWTZjTB+jvC5BUhFT+0x6L4eemM0WJWY8nQwJb8TbC8km+1rzjUaA9BxNwbcgSzii5/wn2AYHDyRaAHArFeZXxXLk6VLxdqePuon6QPNb9tpugAzoPUWtGdDfQx8TYngMJF9SqLN0ORN9MDOoVcQeuCRXwGizCiNhlSMTLu+FiV8PjQcSxmKdg== 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=x55XavSBAi4yOVyvkovD+p8FY0W8H7n0eGu3byOi1+4=; b=jN4zU5Oml5XNOeAd8hCKph3rwPBo9XpmZwTyK62vy30NTsZuCrbDFH/tr8XfqsMlAv+lKIQaR21UUYbhQ1CuMKbo+ODU7K9qIB72IeVuZi3LynbwUjdT6AN63YY5tSlooeduzwai3Y37qrQbBd8RII4fYPLs+mfJMzjdh0RaXRE= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by CY5PR10MB5937.namprd10.prod.outlook.com (2603:10b6:930:2e::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5857.18; Tue, 29 Nov 2022 16:45:10 +0000 Received: from SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::a02:2ac8:ee3e:682]) by SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::a02:2ac8:ee3e:682%4]) with mapi id 15.20.5857.022; Tue, 29 Nov 2022 16:45:10 +0000 From: Liam Howlett To: "maple-tree@lists.infradead.org" , "linux-mm@kvack.org" , "linux-kernel@vger.kernel.org" , Andrew Morton CC: Liam Howlett , Liam Howlett Subject: [PATCH 38/43] mm: Don't use __vma_adjust() in __split_vma() Thread-Topic: [PATCH 38/43] mm: Don't use __vma_adjust() in __split_vma() Thread-Index: AQHZBBHdg31AmCq0YkitidwPIgqU0Q== Date: Tue, 29 Nov 2022 16:44:36 +0000 Message-ID: <20221129164352.3374638-39-Liam.Howlett@oracle.com> References: <20221129164352.3374638-1-Liam.Howlett@oracle.com> In-Reply-To: <20221129164352.3374638-1-Liam.Howlett@oracle.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-mailer: git-send-email 2.35.1 x-ms-publictraffictype: Email x-ms-traffictypediagnostic: SN6PR10MB3022:EE_|CY5PR10MB5937:EE_ x-ms-office365-filtering-correlation-id: 3eb6ae5e-08ce-4027-dbc3-08dad2291489 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 2e58AWSw677I65ukj3bLVL31BX6t5qnxQKBHmGACHa674UHrFJcdIvOvej8jFwKY7ibLqdOjJpyC4wlgm2e0lvqQ1ddH0K/uhMlzzBEYmuiXSmHKmMS9fKUf74pxerQNnnxyZAufDrOZia78GBTPGDsqku0TtjsrIyvXu7ZlWohU1GVSMnXGw0IpF/RP0vDLPbz9xEUqnaQZY6AARuXPpoPMRlAd0B2ENHKwwdE2ptR9GXEtJFMRb0/rK3ou6hMvWPUCW2A0QARRei8Sk2zgOp/UMH+4xpcfpn3L+EA7hAP20nBORcxNf11lNXTBTY3p7mW7/1NAeSn32fO37KLuMxGr/N5VOFM/CIhz90TOMzuwqxUiyMMlHaCAEjc/aJv/lov3wZdudCMylEuT1iCe/nTTw2jTunUhqxyQxcOGVq1DIJ8W5QBp2tjgGCpDpTgJfRkjUtxEi9bfMfPMsdRU8+jKcF5w6SR6NfPymIxiIdlibGGyhSFwJK7San4jw3AxpSHyN2n9J2iASZAfqkvJb2NWRceBtjufDiukhNHXIpfeUYZhFFCnvESkqE8eKnT4i10OODpaRSSKUWdXpGH+12so7Bnwb3w9g65Z/DERUugO1+PDylbbeE2m9er/CezWPvC7ieQFz4cAt21A1LsgBYrVjenfza+15EAcSc0y0Oi6casBzLiwGX4gxG4NnaccOXrvyXAdXcECffDRa+s9sg== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SN6PR10MB3022.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230022)(376002)(346002)(39860400002)(396003)(366004)(136003)(451199015)(8676002)(66446008)(66946007)(86362001)(66556008)(66476007)(4326008)(64756008)(91956017)(2906002)(76116006)(110136005)(54906003)(41300700001)(38100700002)(122000001)(6512007)(83380400001)(186003)(8936002)(1076003)(36756003)(2616005)(316002)(5660300002)(107886003)(26005)(44832011)(6666004)(6486002)(71200400001)(478600001)(6506007)(38070700005);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?Q?mXU4B6iVJAqTajioUAHRVL0+H5hMwQHmd12Ry/AApMvh779BS2D4Nz/v9b?= =?iso-8859-1?Q?QdflOxbxW3hOAGixiTayUVcH3DPwEOi/P/56feRlEOE/4IVMkEdByy/eQe?= =?iso-8859-1?Q?V3bhoUyMAas+TSg/k3QYJcxdGxToEoUoqI0Z4bnIPeVSxGa1yDEdfOwPMQ?= =?iso-8859-1?Q?ytJ1ibrC0f1okCgzO5i0x4GrqNauuycmsGvETXnSGhf+q3d/5xxMeg9KgE?= =?iso-8859-1?Q?pm3xwhc24gWxWoqKXBSYcucTVSjmIUnT+Fadlkdp0XN5s4tHvxWo5F6vRW?= =?iso-8859-1?Q?YPc9acDt91dL62pi797W7ggizYbEfA9gA8AOjvZs/LATP04j5HdUBPG20F?= =?iso-8859-1?Q?BuCZpihQvQq0USZ+1f7tKZsWy23dhNEp5qJCunM0ehfq3GbNSCsZX1kutE?= =?iso-8859-1?Q?h9SReMx8o8hs2dp51baS4raTU6WWF/lrd+/STy2UcYnfwMVO4+uj1N2IOV?= =?iso-8859-1?Q?H48sX7j6wgOhflMOYEWVB21HYoOUwU+5MHzvr9qGoKDs8TA/U/0jZ6/hrx?= =?iso-8859-1?Q?NDo1gugPkTI53FmglEN+iUplq9OGYYETu2gd5jZlVaCHibWIarmdICnbrh?= =?iso-8859-1?Q?mqh/9vqcDUWYF10rUogL9ZTSU9qOpKI4Kj0PX/v6e08luYpYmLucfZnXjh?= =?iso-8859-1?Q?1Whl6nluVspt6GLglcGD8u9ccxW0rny9aFZNRuCOySxscw8upRP29286WL?= =?iso-8859-1?Q?RPV7ht0P60o5mr3/BoJBYKTY+msNH7Bq39OlQCzCL+xakOaqbEC8Cy3ujP?= =?iso-8859-1?Q?opQKcS81YkO0O7d8Qa8LX7sdP5dXpy3pLFjUb6kuW+8tALuXpRAINKroWj?= =?iso-8859-1?Q?vE+KtgAaJsjIxPB80Z4BZJVSZMGd2u5eyMzapJPm5Q4vifBk8uub9LmEYd?= =?iso-8859-1?Q?7y0lbuchgffUZQEOEYfIqrVRbaUuIINBwq9vAwjbNAvjCSKhLqsmgU+xQx?= =?iso-8859-1?Q?SBdhe9DHALQ1q2Q7tq0d9N2PgxrthecKW/DLo80B5va89NloajfT3aWYiQ?= =?iso-8859-1?Q?t5H/5NiSo5BNm4XFh0lja3GAYbB2Un9nbHL4AnLZMV+4b2KeYDpIXnFYEC?= =?iso-8859-1?Q?eJI+77TIwGP7+/ZgFzAcVhMOJcIkm/8LiErbVP1Ya1MdFv2mAWIpEoi7kH?= =?iso-8859-1?Q?HpS5hu9Dchk2oRZvWx4F73cJ+HnaRkNP/ZwazM194g2d2wSbt999dgGCfH?= =?iso-8859-1?Q?tSpP2nvnYIqFtnRRypXsAwc5FMoAvmHwHKBiyWFslR83bdwDtkpdL23bch?= =?iso-8859-1?Q?9XUhM/BaG/NDGdt6/gMAEVBuKFQjJ9I2apYKx21SeozCQdvKPMS7vaSq6L?= =?iso-8859-1?Q?NsXjRTyBi2ZL2z7DCMYdz5FW6ThYsFPnVdjuoTt3ZTikUqMWLXhGKUvevY?= =?iso-8859-1?Q?pUV6jeb4nlO5RC548/ZIVZf3rxpOeMsdS8+HhIL7TC8bN89uQJIXKJEt7S?= =?iso-8859-1?Q?yM9ZL+bkzVVtKhYJjb3HfZFuRz6TLbyFFO6zOHUAwFq9XDcwL2ZKZVIdI6?= =?iso-8859-1?Q?4asFFt6pe/36hSnTV/2ah8Qa7KkFmn8nqVYzDtxB51v6AlsCfHyi8uISIp?= =?iso-8859-1?Q?4yBWgyxV/nXXmuivhVx94lZkBUxywZcJvUqRRSmxz/41lrJzhdesrIP/dU?= =?iso-8859-1?Q?l909d3Lc4TGHXMCQ4/eDXdCPLrOZOUXw3b9HbIUaEwtegbzzi/6b2lig?= =?iso-8859-1?Q?=3D=3D?= Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: stp2Il4TfE9NAm69dQ+qdLyfLOv+rhhkQaG91Cn94UMVcMGJxqSzmoZ7kPoFk3m3JTRsbx6XEcnbHXjGWw52X6t/eYRvGxiedS/bZORPy9kgYZUa2fKoXPGT2aWsmzKha43lqtdHS/zn7MViVRk5kOc+9YSnqh0vrKND8axIm3WNKPEptrpn2W676TpFnUILU1OSOygWlNYK6EguUnli82RqNNhKQohWh4hLOMr7AR7KjO+6Jp2OU5cE4ctKCNycGt4wWmd8zs/Xd0x7YcrlT2KpJZwq+X4RUMNXDhT/Vplq1ElRuVL07ivcaGvRwYn42uOi9Dh7wO6QwkUO1jDaoCC0zH2Uh0NLgBu3qzpbOIYBICZMAg5W6k7S4wDFsKAhnQgC4rkxu4dfGkuK6hSjfYLZgIBKrErFloEl9olClD92xhnqlP4jsZAD4vpY06WN4cFvbvv/39tTcwN/J2QL2PT5sDmlIiw3Cp7y+jD5Byg9CVfApPiBL7ZGuHbpN6VLGzwuvZbH/vVDUHpTfbfGo/rugk9NPyIxAD8juE3yngiCEodFwcYGSzjqS7mvU7w4IiTRe/B6Gx4L0zWggENTbftlf2LYpDS98e6SyCO++LIcMiOmjyE5SWq317MXCBJ7koNC9ZdLPOtDU/GupeNq9I8WVEtgTC2vXqVjOnmCwIoEa+KtJuu3kSAlE68LLfZiE0sJAHc1lgsJWLCIuNgs/RapN8KMdvnU4BrR8zFcDyfrJyXr3a2MSAdzzNxoSxBWCvTqDtkccMyEecJuwT/WrcuyOw00TS9zVe1t6VZTSz5X8HIMTx8IEzVb0adhZPuMO2JXBaRa0y2/qxl9XqRVzsTFTqQk8DEtbV1VxMOZgkXP31OIOGCkfK1o55mPxTnEoGHZU4dOpGSKyIkFq3Idvg== X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: SN6PR10MB3022.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 3eb6ae5e-08ce-4027-dbc3-08dad2291489 X-MS-Exchange-CrossTenant-originalarrivaltime: 29 Nov 2022 16:44:36.5503 (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: DIDEwF3Iam3Mp7+owI9v7PhX3WdmpqzYB0mlfpfqtopq1TIVXKLZpFKdpAchlkP5KK3U9cI3H+ZojQvOm0ZwEQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY5PR10MB5937 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.219,Aquarius:18.0.895,Hydra:6.0.545,FMLib:17.11.122.1 definitions=2022-11-29_11,2022-11-29_01,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 adultscore=0 mlxlogscore=999 spamscore=0 malwarescore=0 phishscore=0 suspectscore=0 bulkscore=0 mlxscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2210170000 definitions=main-2211290093 X-Proofpoint-ORIG-GUID: zeE5lkwbYNEy7SMIoxGn5hWodzKgoufS X-Proofpoint-GUID: zeE5lkwbYNEy7SMIoxGn5hWodzKgoufS Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" From: "Liam R. Howlett" Use the abstracted locking and maple tree operations. Since __split_vma() is the only user of the __vma_adjust() function to use the insert argument, drop that argument. Remove the NULL passed through from fs/exec's shift_arg_pages() at the same time. Signed-off-by: Liam R. Howlett --- fs/exec.c | 4 +- include/linux/mm.h | 7 ++- mm/mmap.c | 114 ++++++++++++++++++++------------------------- 3 files changed, 56 insertions(+), 69 deletions(-) diff --git a/fs/exec.c b/fs/exec.c index 8d2b47e436b0..b3fa6dd2d0e8 100644 --- a/fs/exec.c +++ b/fs/exec.c @@ -698,7 +698,7 @@ static int shift_arg_pages(struct vm_area_struct *vma, = unsigned long shift) /* * cover the whole range: [new_start, old_end) */ - if (vma_adjust(&vmi, vma, new_start, old_end, vma->vm_pgoff, NULL)) + if (vma_adjust(&vmi, vma, new_start, old_end, vma->vm_pgoff)) return -ENOMEM; =20 /* @@ -732,7 +732,7 @@ static int shift_arg_pages(struct vm_area_struct *vma, = unsigned long shift) =20 vma_prev(&vmi); /* Shrink the vma to just the new range */ - return vma_adjust(&vmi, vma, new_start, new_end, vma->vm_pgoff, NULL); + return vma_adjust(&vmi, vma, new_start, new_end, vma->vm_pgoff); } =20 /* diff --git a/include/linux/mm.h b/include/linux/mm.h index b5cdb9d9e987..13abf070e911 100644 --- a/include/linux/mm.h +++ b/include/linux/mm.h @@ -2693,13 +2693,12 @@ void anon_vma_interval_tree_verify(struct anon_vma_= chain *node); /* mmap.c */ extern int __vm_enough_memory(struct mm_struct *mm, long pages, int cap_sy= s_admin); extern int __vma_adjust(struct vma_iterator *vmi, struct vm_area_struct *v= ma, unsigned long start, - unsigned long end, pgoff_t pgoff, struct vm_area_struct *insert, - struct vm_area_struct *expand); + unsigned long end, pgoff_t pgoff, struct vm_area_struct *expand); static inline int vma_adjust(struct vma_iterator *vmi, struct vm_area_struct *vma, unsigned long start, unsigned long end, - pgoff_t pgoff, struct vm_area_struct *insert) + pgoff_t pgoff) { - return __vma_adjust(vmi, vma, start, end, pgoff, insert, NULL); + return __vma_adjust(vmi, vma, start, end, pgoff, NULL); } extern struct vm_area_struct *vma_merge(struct vma_iterator *vmi, struct mm_struct *, struct vm_area_struct *prev, unsigned long addr, diff --git a/mm/mmap.c b/mm/mmap.c index 258113e13a88..061e92dab623 100644 --- a/mm/mmap.c +++ b/mm/mmap.c @@ -752,7 +752,7 @@ inline int vma_expand(struct vma_iterator *vmi, struct = vm_area_struct *vma, */ int __vma_adjust(struct vma_iterator *vmi, struct vm_area_struct *vma, unsigned long start, unsigned long end, pgoff_t pgoff, - struct vm_area_struct *insert, struct vm_area_struct *expand) + struct vm_area_struct *expand) { struct mm_struct *mm =3D vma->vm_mm; struct vm_area_struct *remove2 =3D NULL; @@ -765,7 +765,7 @@ int __vma_adjust(struct vma_iterator *vmi, struct vm_ar= ea_struct *vma, struct vm_area_struct *exporter =3D NULL, *importer =3D NULL; struct vma_prepare vma_prep; =20 - if (next && !insert) { + if (next) { if (end >=3D next->vm_end) { /* * vma expands, overlapping all the next, and @@ -856,39 +856,25 @@ int __vma_adjust(struct vma_iterator *vmi, struct vm_= area_struct *vma, VM_WARN_ON(vma_prep.anon_vma && adjust_next && next->anon_vma && vma_prep.anon_vma !=3D next->anon_vma); =20 - vma_prep.insert =3D insert; vma_prepare(&vma_prep); =20 - if (start !=3D vma->vm_start) { - if (vma->vm_start < start) { - if (!insert || (insert->vm_end !=3D start)) { - vma_iter_clear(vmi, vma->vm_start, start); - vma_iter_set(vmi, start); - VM_WARN_ON(insert && insert->vm_start > vma->vm_start); - } - } else { - vma_changed =3D true; - } - vma->vm_start =3D start; - } - if (end !=3D vma->vm_end) { - if (vma->vm_end > end) { - if (!insert || (insert->vm_start !=3D end)) { - vma_iter_clear(vmi, end, vma->vm_end); - vma_iter_set(vmi, vma->vm_end); - VM_WARN_ON(insert && - insert->vm_end < vma->vm_end); - } - } else { - vma_changed =3D true; - } - vma->vm_end =3D end; - } + if (vma->vm_start < start) + vma_iter_clear(vmi, vma->vm_start, start); + else if (start !=3D vma->vm_start) + vma_changed =3D true; + + if (vma->vm_end > end) + vma_iter_clear(vmi, end, vma->vm_end); + else if (end !=3D vma->vm_end) + vma_changed =3D true; + + vma->vm_start =3D start; + vma->vm_end =3D end; + vma->vm_pgoff =3D pgoff; =20 if (vma_changed) vma_iter_store(vmi, vma); =20 - vma->vm_pgoff =3D pgoff; if (adjust_next) { next->vm_start +=3D adjust_next; next->vm_pgoff +=3D adjust_next >> PAGE_SHIFT; @@ -907,9 +893,9 @@ int __vma_adjust(struct vma_iterator *vmi, struct vm_ar= ea_struct *vma, * per-vma resources, so we don't attempt to merge those. */ static inline int is_mergeable_vma(struct vm_area_struct *vma, - struct file *file, unsigned long vm_flags, - struct vm_userfaultfd_ctx vm_userfaultfd_ctx, - struct anon_vma_name *anon_name) + struct file *file, unsigned long vm_flags, + struct vm_userfaultfd_ctx vm_userfaultfd_ctx, + struct anon_vma_name *anon_name) { /* * VM_SOFTDIRTY should not prevent from VMA merging, if we @@ -1091,20 +1077,19 @@ struct vm_area_struct *vma_merge(struct vma_iterato= r *vmi, struct mm_struct *mm, is_mergeable_anon_vma(prev->anon_vma, next->anon_vma, NULL)) { /* cases 1, 6 */ err =3D __vma_adjust(vmi, prev, prev->vm_start, - next->vm_end, prev->vm_pgoff, NULL, - prev); + next->vm_end, prev->vm_pgoff, prev); res =3D prev; } else if (merge_prev) { /* cases 2, 5, 7 */ err =3D __vma_adjust(vmi, prev, prev->vm_start, - end, prev->vm_pgoff, NULL, prev); + end, prev->vm_pgoff, prev); res =3D prev; } else if (merge_next) { if (prev && addr < prev->vm_end) /* case 4 */ err =3D __vma_adjust(vmi, prev, prev->vm_start, - addr, prev->vm_pgoff, NULL, next); + addr, prev->vm_pgoff, next); else /* cases 3, 8 */ err =3D __vma_adjust(vmi, mid, addr, next->vm_end, - next->vm_pgoff - pglen, NULL, next); + next->vm_pgoff - pglen, next); res =3D next; } =20 @@ -2247,6 +2232,7 @@ static void unmap_region(struct mm_struct *mm, struct= maple_tree *mt, int __split_vma(struct vma_iterator *vmi, struct vm_area_struct *vma, unsigned long addr, int new_below) { + struct vma_prepare vp; struct vm_area_struct *new; int err; =20 @@ -2262,16 +2248,20 @@ int __split_vma(struct vma_iterator *vmi, struct vm= _area_struct *vma, if (!new) return -ENOMEM; =20 - if (new_below) + err =3D -ENOMEM; + if (vma_iter_prealloc(vmi, vma)) + goto out_free_vma; + + if (new_below) { new->vm_end =3D addr; - else { + } else { new->vm_start =3D addr; new->vm_pgoff +=3D ((addr - vma->vm_start) >> PAGE_SHIFT); } =20 err =3D vma_dup_policy(vma, new); if (err) - goto out_free_vma; + goto out_free_vmi; =20 err =3D anon_vma_clone(new, vma); if (err) @@ -2283,33 +2273,31 @@ int __split_vma(struct vma_iterator *vmi, struct vm= _area_struct *vma, if (new->vm_ops && new->vm_ops->open) new->vm_ops->open(new); =20 - if (new_below) - err =3D vma_adjust(vmi, vma, addr, vma->vm_end, - vma->vm_pgoff + ((addr - new->vm_start) >> PAGE_SHIFT), - new); - else - err =3D vma_adjust(vmi, vma, vma->vm_start, addr, vma->vm_pgoff, - new); + vma_adjust_trans_huge(vma, vma->vm_start, addr, 0); + init_vma_prep(&vp, vma); + vp.insert =3D new; + vma_prepare(&vp); =20 - /* Success. */ - if (!err) { - if (new_below) - vma_next(vmi); - return 0; + if (new_below) { + vma->vm_start =3D addr; + vma->vm_pgoff +=3D (addr - new->vm_start) >> PAGE_SHIFT; + } else { + vma->vm_end =3D addr; } =20 - /* Avoid vm accounting in close() operation */ - new->vm_start =3D new->vm_end; - new->vm_pgoff =3D 0; - /* Clean everything up if vma_adjust failed. */ - if (new->vm_ops && new->vm_ops->close) - new->vm_ops->close(new); - if (new->vm_file) - fput(new->vm_file); - unlink_anon_vmas(new); - out_free_mpol: + /* vma_complete stores the new vma */ + vma_complete(&vp, vmi, vma->vm_mm); + + /* Success. */ + if (new_below) + vma_next(vmi); + return 0; + +out_free_mpol: mpol_put(vma_policy(new)); - out_free_vma: +out_free_vmi: + vma_iter_free(vmi); +out_free_vma: vm_area_free(new); validate_mm_mt(vma->vm_mm); return err; --=20 2.35.1 From nobody Fri Sep 19 02:32:03 2025 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 3FB87C433FE for ; Tue, 29 Nov 2022 16:48:27 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S236368AbiK2QsZ (ORCPT ); Tue, 29 Nov 2022 11:48:25 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:44136 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S236139AbiK2QrV (ORCPT ); Tue, 29 Nov 2022 11:47:21 -0500 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id AE5ED6C73A for ; Tue, 29 Nov 2022 08:45:21 -0800 (PST) Received: from pps.filterd (m0246631.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 2ATGOeuj005604; Tue, 29 Nov 2022 16:45:17 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : references : in-reply-to : content-type : content-transfer-encoding : mime-version; s=corp-2022-7-12; bh=HZkGh/AK9aEBEeDLAsuHbDy6lfrlPVkrwWemk1krQcw=; b=HE0GIU5Ch9Zmrms719OjHQWhGOeRYe0pHG/TVKWUIuTA9GaA9BttcUcclii+NEE6S928 xSZBl+3xPgqEzNpE8K1QRPwrbxxbw0okRvf8HAmwSUqPkc+FTBHD8UncD5e8t0YpPO7V URJbK17vypb0JPnbE3Psb9g1M/yoS+vODeFZLJ062h8i6/b3apMi3ZU2wfyKKIU3bBL4 ERYGYS+RX2EV4ueSh7kTLiXJqu4n8P40GYLTM3ITnL90Y9Z1MjtcFCfTbm39MhdARW/5 De2kgl2LclRKgVOy1yVITu1KHujgDvpYtLETNhQzU+3Ca4IkbkjK6zCZ4hHBvNe706NI Bg== Received: from iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta01.appoci.oracle.com [130.35.100.223]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3m39k2qfd7-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 29 Nov 2022 16:45:16 +0000 Received: from pps.filterd (iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (8.17.1.5/8.17.1.5) with ESMTP id 2ATFgHOT011450; Tue, 29 Nov 2022 16:45:16 GMT Received: from nam02-sn1-obe.outbound.protection.outlook.com (mail-sn1nam02lp2040.outbound.protection.outlook.com [104.47.57.40]) by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 3m398drgfk-2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 29 Nov 2022 16:45:16 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=nkWj40sf8QTumMZ8rOFJFEqtAOHFG1b91xjaXEVwa8286iurBPJwDo12fueR6l+12qHucGAXI5+y/9tLK1tMaScNSWbbSuF7egfzXk1rmbUIomBmm/YRTHtjyyq53/QI3XTSwO2hXPtXviHjpT9JhsEfmc6OR7hBwZeB4/XKyDkskW7D/oLTKoPy8pGPpwdnYoW6JXb+GHqYG7RCjs+vdr7F0uk8QsZE4r3ciLyGw43xs/XRb9uoxMFPUm3VYAixx+uWXglu4v/7W3MKu+eY+8QxCtzzA5HpbcVdDKpNp8RkchFjc1DUrXHkHIY3iuRXAfcMtwc5tToCISNc0jXI/A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=HZkGh/AK9aEBEeDLAsuHbDy6lfrlPVkrwWemk1krQcw=; b=bn9AJWLtNdQge3mEiIviaAXUNuKsDhtUYntWLGiAlYZnTOb74109ffod7NE1CFkCPwd9DU703XjRuQpwy0yZ1uNWK1y5Ti/wH3d7r0vjfX38hPHjhF9jLAKAnrwXpUKXLAFC7KpRFepriIWdwOj4oGt751HQgGYnmBw2uCPejW7/avWgkYDQwAugMsSm0Kep/droilHCDLE2mR/sKPT7g69JbnMSxuGxnze1jX3LgNyp2r6VMsbXCHgchnjDImpHKD6W4pBJeNmGG1LF5A58ueKqSsNP73xUCpgMscZm2ZYQTsBykzZUI2UwyIv9WZxzGbJVEAyANX2vxr9CYUszqQ== 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=HZkGh/AK9aEBEeDLAsuHbDy6lfrlPVkrwWemk1krQcw=; b=qJ3f+KHHYj01bKBhj6DVY/YoL0B0QtLLrSzZCcmXzr+MusYzhB42W+sgrbmZ/t9NOhCnuKqxM6w1tX3FbeqNep3vbL0PQ0ikNulnVyJ4AjnluVQbgeMLcy7tNQV0xeWCPuDKkr+9TtaX8z3Fe1HFlL1b0gB3JFrO+VMWHkg8ncM= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by CY5PR10MB5937.namprd10.prod.outlook.com (2603:10b6:930:2e::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5857.18; Tue, 29 Nov 2022 16:45:11 +0000 Received: from SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::a02:2ac8:ee3e:682]) by SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::a02:2ac8:ee3e:682%4]) with mapi id 15.20.5857.022; Tue, 29 Nov 2022 16:45:11 +0000 From: Liam Howlett To: "maple-tree@lists.infradead.org" , "linux-mm@kvack.org" , "linux-kernel@vger.kernel.org" , Andrew Morton CC: Liam Howlett , Liam Howlett Subject: [PATCH 39/43] mm/mmap: Don't use __vma_adjust() in shift_arg_pages() Thread-Topic: [PATCH 39/43] mm/mmap: Don't use __vma_adjust() in shift_arg_pages() Thread-Index: AQHZBBHdtymiOJM5JESSvlvJ/6HVqQ== Date: Tue, 29 Nov 2022 16:44:36 +0000 Message-ID: <20221129164352.3374638-40-Liam.Howlett@oracle.com> References: <20221129164352.3374638-1-Liam.Howlett@oracle.com> In-Reply-To: <20221129164352.3374638-1-Liam.Howlett@oracle.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-mailer: git-send-email 2.35.1 x-ms-publictraffictype: Email x-ms-traffictypediagnostic: SN6PR10MB3022:EE_|CY5PR10MB5937:EE_ x-ms-office365-filtering-correlation-id: 099106b9-a1d3-4d03-d7bc-08dad22914c7 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 8PaOBWpLprrqCnNOoqoq/nNjwk8UIMWXNSICKcoJoxLXW9GLDRSEbP8o2NZEVGdrT2pz/q23KRXam/e/MKTctzCWPV30DcY8/q/M2szluVX2yXk9zK/iSX7N+gqDGcWS0uYWqGNCMUFRELvNgp7UGzatz9uF9UAIKtj8Nf4/MInhUcYK53JW2qnqaO68CphkU5jC2kwOVoomhEZO1wcUGN2VpVuFc8XFBhKiD4Bp8yhGeiGqf76ciVXsLyZWx8p60NYqa7FhpvGXOvHci0C4JAGdwwpd04EyBPlazhP6ajfG/9Ok/+wgf4wtJInnQUmT1GoVRu5Ku0c/S2Nt7NbdBTeDIZ419z4OLSPpMaMX7tT5W/RfY1o+6b8ahGoSz4xPGBK+JN1U2NJxzR2lqycjBEuRS6Ldmuvb392r/atZ10ARSTtSkP2IM+1R53x/zMWJKT3EQANVVBJdzGy90ntRR3R4wGs5RqSa6+o+cy6djmFYwJjnwbIII8r3dOsmm/1VL1uTBqS0oKG1DH26ozL+TgxWUqKq06MqIXU5pD8XHzR/tRUWjF9fo/vSOPaEz2Q46ib3xihI27nOJxSTvYOWLmJ3RTKQFKOQVzUW+VbS/q5gAqNsNyenagTIqCSkmThCZbdbXWkYQgGJni1pMBFIf7kd/08Z9pOnvt9GX0ja8FDhB5Tiw/IpSUeoc4kfI1m45+V4OuJ1Y/V3ch4DKfeQUQ== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SN6PR10MB3022.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230022)(376002)(346002)(39860400002)(396003)(366004)(136003)(451199015)(8676002)(66446008)(66946007)(86362001)(66556008)(66476007)(4326008)(64756008)(91956017)(2906002)(76116006)(110136005)(54906003)(41300700001)(38100700002)(122000001)(6512007)(83380400001)(186003)(8936002)(1076003)(36756003)(2616005)(316002)(5660300002)(107886003)(26005)(44832011)(6666004)(6486002)(71200400001)(478600001)(6506007)(38070700005);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?Q?jjZ4qh+vX9BzLCQ8toCltBVxzfc+NYkU/CF3rUYLWx8gMXf1a23yjZVWqm?= =?iso-8859-1?Q?QfcmIzpwuduP4NVB15PT26SSz7jHE4YexIbKuZrjSZ94u7M3j1nPbq65VZ?= =?iso-8859-1?Q?zpCobo/p+9jDxzSi30GoPVDyANosk+M+mCAa4qsnlfAHE9hGQ/tbbHwXmI?= =?iso-8859-1?Q?J3DFEIHSDP878L+l2a6VVSLeKu72JNhm6+Y2V53DGAKos/u+IolkS8ytr2?= =?iso-8859-1?Q?YcSQ9rt8LsXIyHerRwNHiNrNRHE5efcajST38mohsyHJMJnhVOwu3HIWDW?= =?iso-8859-1?Q?SooJ+taVmVHq6uIogBXNjbpdJWL7O0ddP+Pu+zisV8TjEqh384Rq2xCMIX?= =?iso-8859-1?Q?SLvhv980CEoH07DKZhONqbHsogDv/6dOmWOswEBvKuwfGGSGl8Jpg9Pbjv?= =?iso-8859-1?Q?jDGb0wNj9ekgQcRAzxiaxqZg0+UJ9SqovHJWxGb7lWN1TeQMIgmk0QdYde?= =?iso-8859-1?Q?NPvPo0PQsc9Ad6idtjC3HNiOswn++s6lt0ZkEUlyKFS4dGFRGpDgRZ4dvS?= =?iso-8859-1?Q?ACfjbyhywb+TZlJ2hdmWqn9yHXQzX09X6D0jN4bjZx4myTjHFLXh7XYdXO?= =?iso-8859-1?Q?9ELhjzsKVQb3yCUjoNbgeGsoXsCKiV4/zp2CAs+BU/WJkILazlxQB3LtWy?= =?iso-8859-1?Q?qlBq/2Nvn4yua7nTZryg6kYcGCrMytT0GegnkMw8okRi73ve/ENQELtWzw?= =?iso-8859-1?Q?nMTtbXG9CpzUuV1VnWE5eB+wxwcihVnH4amF3zFaJFV0WMN6411AylVklP?= =?iso-8859-1?Q?ZrgvAgpMLuTld3AxF8ADg39cOkOHqMFCTkGJ4mEDeVmdgUdayIwV59Uq+v?= =?iso-8859-1?Q?zIIZ6Cl2iC3krdMKjCX1HqUPlE/14Tedwq1sQUHQvAY7DMA2P2rPC/hC5G?= =?iso-8859-1?Q?aaUAmGlDOIFZRq3cKZbPQA3w/S0qSuW4/e+YSiTy1FRR2NBBaZ/MG1N98/?= =?iso-8859-1?Q?oAcM25gAp3IlCdRwcHuJez5MkdZrRz3tK4iJCWQ6LMpq8SZnoI5c9ZTk/N?= =?iso-8859-1?Q?5htHDQ7g0GxV9/Buf9HpQl2Qp7BkVmTn63c9QU4axPY/0o6lmKnSzvCYSj?= =?iso-8859-1?Q?5z+GXxPFMHKf/IWCUikAmiCNDngwD1lMbLNwxa6JHaa5fuCnJlw82fiy1Z?= =?iso-8859-1?Q?Ro4ZyaRMNIB9k1fO8+7Ctsi66z26JTAgY03sKPyNKGUHKxYnCJpxF95EX7?= =?iso-8859-1?Q?zodocpO3ikmvJJDG2oWSFD7v194/zMepbqWmnQyM1u9qtz70LrZN3bl5B3?= =?iso-8859-1?Q?tS8S4TO4R+qw+wNuByYOyX/P6izTMDNwuahYCjNvUO85SOqfrC0VAkuLvq?= =?iso-8859-1?Q?vAcw7cW4EtGtjKXO6iPCIA+y8sKXOu/0WqplYWIChp3EFVE0QMyPA76r5m?= =?iso-8859-1?Q?vxRF82Qb8wzC8+HOPw/FpWIUHtwRAWctT8Bb0P/T7lDOHpBW7w8cSQFhBh?= =?iso-8859-1?Q?sII4mLsrhZSxDMWxXjlDghbWqPa6nCGL1668eYkBQQR47+2rn3Yc7IuRbR?= =?iso-8859-1?Q?XA7wBF6FXXBMMla8gqUtiwOJDYxqg6GBrPMaqM4juISLeP/udcyGqJE+ws?= =?iso-8859-1?Q?xIQIe/e/EFPdeMmY+pZlJcS57/ryfaAP4/ZRk7uJw0xKiu/Y3BcECwEtdC?= =?iso-8859-1?Q?wS5mF66qQiCx29GuVbNiLvxvsLxrt7ss+tEatOngj5oPV+9uJWT3cYGg?= =?iso-8859-1?Q?=3D=3D?= Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: 4fTG7kniYP3IAvmujRcBNBxCq5+lQ9nvHUYILtCXK4Mq7FEJD61KspQSevPdFV+bsahWDiHJRgtQ6F8MA+BSlqpkFEuI/4zeTdLlNhN1eo6uf8oXDyRKxbvhks7xR15LhuWbwt00ZznrmNJ9Z3PMh6R+DK8HVsErKsxjz0MmrwtZtSi1dPI8FfH1thavehEwZouNL/rk18eA3eFCgyjkSf12EF1rgKK8fgDL73MtcKGV8L0cM/oGSCqnd8272UKO39IeP7UafQtGMmrVqyTccddg01RHyOdOyPwT+0vFBR2JNL2LeDIoWGR3hMwpT6fZI9pzdyJxwByI38PZCfZYF2AhHsLeMc0eXluohjhSuTLrMyTfuu3KTkYIOZAgCW3VBFI5ThnpxkGxAkqM0b/FWEBpPEPK2q4amX8nQ1k9dABCnQacSQXebQpC2NieV6Wykg+GbrYE1vglSbbUGZoOw/Zu7ixvxjcKUibejMMCuuhSAMclKY5Vj/TpF9H7X/BICHfH1RXZRmp6lTBQiJfymEH9cpBGeX6A2XYZJIWz4POXtZrRb/k5mqu23LYTCQdIsGYvYXyofef2ZBJJTODHXBlMjRt/YW8KeysGZ26Ca/zR8nHkYbtTj2zXKqOj7RJ7Tu1wKOc2hd4WtNfb9ygBltHdFXDRwQodRex6uB14gmJ0Txhfn1dJtN3bQGdDFrFnb7aK1cXzkHjjFwgg5vkz28Cq5NcEGcU5tNr+jJiEVWdtI8+SAgfxna9ACtSsQbgFYegreLOFmUdYQONdBCxOkpDrgYkp6fWAu8RFgMlE/mYZdgihGlL0XGitdeusVifjKjNbmBo6iKlr/dcWSDdnBYUhs+qlEl6YjhF/VOwcO+VHXHt+kOUhfFJ6Y2QcP+q7gJahzSv5h+h6mqJJS2u4Ow== X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: SN6PR10MB3022.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 099106b9-a1d3-4d03-d7bc-08dad22914c7 X-MS-Exchange-CrossTenant-originalarrivaltime: 29 Nov 2022 16:44:36.8784 (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: wB79a5iKT3lgu+8Z2eE/nodhDYHTUl6Uv5J4fTtQc+DlHU3pWvOEhgCvq96oYWc1dfKydaiPTmvwXMAP6FlNXw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY5PR10MB5937 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.219,Aquarius:18.0.895,Hydra:6.0.545,FMLib:17.11.122.1 definitions=2022-11-29_11,2022-11-29_01,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 adultscore=0 mlxlogscore=999 spamscore=0 malwarescore=0 phishscore=0 suspectscore=0 bulkscore=0 mlxscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2210170000 definitions=main-2211290093 X-Proofpoint-GUID: lpH78jnbJwmdhg6R-WxqA0MnTUuHne5D X-Proofpoint-ORIG-GUID: lpH78jnbJwmdhg6R-WxqA0MnTUuHne5D Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" From: "Liam R. Howlett" Introduce shrink_vma() which uses the vma_prepare() and vma_complete() functions to reduce the vma coverage. Convert shift_arg_pages() to use expand_vma() and the new shrink_vma() function. Remove support from __vma_adjust() to reduce a vma size since shift_arg_pages() is the only user that shrinks a VMA in this way. Signed-off-by: Liam R. Howlett --- fs/exec.c | 4 ++-- include/linux/mm.h | 13 ++++------ mm/mmap.c | 59 ++++++++++++++++++++++++++++++++++++---------- 3 files changed, 53 insertions(+), 23 deletions(-) diff --git a/fs/exec.c b/fs/exec.c index b3fa6dd2d0e8..8903351e101b 100644 --- a/fs/exec.c +++ b/fs/exec.c @@ -698,7 +698,7 @@ static int shift_arg_pages(struct vm_area_struct *vma, = unsigned long shift) /* * cover the whole range: [new_start, old_end) */ - if (vma_adjust(&vmi, vma, new_start, old_end, vma->vm_pgoff)) + if (vma_expand(&vmi, vma, new_start, old_end, vma->vm_pgoff, NULL)) return -ENOMEM; =20 /* @@ -732,7 +732,7 @@ static int shift_arg_pages(struct vm_area_struct *vma, = unsigned long shift) =20 vma_prev(&vmi); /* Shrink the vma to just the new range */ - return vma_adjust(&vmi, vma, new_start, new_end, vma->vm_pgoff); + return vma_shrink(&vmi, vma, new_start, new_end, vma->vm_pgoff); } =20 /* diff --git a/include/linux/mm.h b/include/linux/mm.h index 13abf070e911..5483041ef7d8 100644 --- a/include/linux/mm.h +++ b/include/linux/mm.h @@ -2692,14 +2692,11 @@ void anon_vma_interval_tree_verify(struct anon_vma_= chain *node); =20 /* mmap.c */ extern int __vm_enough_memory(struct mm_struct *mm, long pages, int cap_sy= s_admin); -extern int __vma_adjust(struct vma_iterator *vmi, struct vm_area_struct *v= ma, unsigned long start, - unsigned long end, pgoff_t pgoff, struct vm_area_struct *expand); -static inline int vma_adjust(struct vma_iterator *vmi, - struct vm_area_struct *vma, unsigned long start, unsigned long end, - pgoff_t pgoff) -{ - return __vma_adjust(vmi, vma, start, end, pgoff, NULL); -} +extern int vma_expand(struct vma_iterator *vmi, struct vm_area_struct *vma, + unsigned long start, unsigned long end, pgoff_t pgoff, + struct vm_area_struct *next); +extern int vma_shrink(struct vma_iterator *vmi, struct vm_area_struct *vma, + unsigned long start, unsigned long end, pgoff_t pgoff); extern struct vm_area_struct *vma_merge(struct vma_iterator *vmi, struct mm_struct *, struct vm_area_struct *prev, unsigned long addr, unsigned long end, unsigned long vm_flags, struct anon_vma *, diff --git a/mm/mmap.c b/mm/mmap.c index 061e92dab623..519cdff9d135 100644 --- a/mm/mmap.c +++ b/mm/mmap.c @@ -694,10 +694,9 @@ static inline void vma_complete(struct vma_prepare *vp, * * Returns: 0 on success */ -inline int vma_expand(struct vma_iterator *vmi, struct vm_area_struct *vma, - unsigned long start, unsigned long end, pgoff_t pgoff, - struct vm_area_struct *next) - +int vma_expand(struct vma_iterator *vmi, struct vm_area_struct *vma, + unsigned long start, unsigned long end, pgoff_t pgoff, + struct vm_area_struct *next) { bool remove_next =3D false; struct vma_prepare vp; @@ -743,6 +742,44 @@ inline int vma_expand(struct vma_iterator *vmi, struct= vm_area_struct *vma, nomem: return -ENOMEM; } + +/* + * vma_shrink() - Reduce an existing VMAs memory area + * @mas: The maple state + * @vma: The VMA to modify + * @start: The new start + * @end: The new end + * + * Returns: 0 on success, -ENOMEM otherwise + */ +int vma_shrink(struct vma_iterator *vmi, struct vm_area_struct *vma, + unsigned long start, unsigned long end, pgoff_t pgoff) +{ + struct vma_prepare vp; + + WARN_ON((vma->vm_start !=3D start) && (vma->vm_end !=3D end)); + + if (vma_iter_prealloc(vmi, vma)) + return -ENOMEM; + + init_vma_prep(&vp, vma); + vma_adjust_trans_huge(vma, start, end, 0); + vma_prepare(&vp); + + if (vma->vm_start < start) + vma_iter_clear(vmi, vma->vm_start, start); + + if (vma->vm_end > end) + vma_iter_clear(vmi, end, vma->vm_end); + + vma->vm_start =3D start; + vma->vm_end =3D end; + vma->vm_pgoff =3D pgoff; + vma_complete(&vp, vmi, vma->vm_mm); + validate_mm(vma->vm_mm); + return 0; +} + /* * We cannot adjust vm_start, vm_end, vm_pgoff fields of a vma that * is already present in an i_mmap tree without adjusting the tree. @@ -858,14 +895,7 @@ int __vma_adjust(struct vma_iterator *vmi, struct vm_a= rea_struct *vma, =20 vma_prepare(&vma_prep); =20 - if (vma->vm_start < start) - vma_iter_clear(vmi, vma->vm_start, start); - else if (start !=3D vma->vm_start) - vma_changed =3D true; - - if (vma->vm_end > end) - vma_iter_clear(vmi, end, vma->vm_end); - else if (end !=3D vma->vm_end) + if (start < vma->vm_start || end > vma->vm_end) vma_changed =3D true; =20 vma->vm_start =3D start; @@ -878,7 +908,10 @@ int __vma_adjust(struct vma_iterator *vmi, struct vm_a= rea_struct *vma, if (adjust_next) { next->vm_start +=3D adjust_next; next->vm_pgoff +=3D adjust_next >> PAGE_SHIFT; - vma_iter_store(vmi, next); + if (adjust_next < 0) { + WARN_ON_ONCE(vma_changed); + vma_iter_store(vmi, next); + } } =20 vma_complete(&vma_prep, vmi, mm); --=20 2.35.1 From nobody Fri Sep 19 02:32:03 2025 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 46DE4C4167B for ; Tue, 29 Nov 2022 16:48:31 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S236373AbiK2Qs3 (ORCPT ); Tue, 29 Nov 2022 11:48:29 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:44144 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S236235AbiK2QrW (ORCPT ); Tue, 29 Nov 2022 11:47:22 -0500 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id EBE746C73D for ; Tue, 29 Nov 2022 08:45:22 -0800 (PST) Received: from pps.filterd (m0246630.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 2ATGNtDq022642; Tue, 29 Nov 2022 16:45:18 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : references : in-reply-to : content-type : content-transfer-encoding : mime-version; s=corp-2022-7-12; bh=bibIZw68jKM6/uSNMDgXMSuiC65j2yL2vL8bwK3qLaA=; b=mitwURNqfD3H6fZoQqVUYL++dihePF16FpYmgeYuFRD/TSiVe/16i/Tu8zcCy6SuExCy dl+akCMdG4DaCcvHqdkjjbotqrI/2C5gIvqY7aDH2PfcnabbajerHThX36/NMCMPnNyx c6k6geCB1gkKSqpTU7Zy1oav7sI+44dffNA7uNWdeiT2WVsZ47Sw/8ndScyB+4h3YkHR rluwB6DAAcWd8rVfY3DixvHmfpfvOw8sNnoY8ubam886MBvOXEWdbI4ZGhJ9Gh296wwP 79mVmpZ/pjIC4hbvvS6o1d8onxpuwGJF4tFIRaLiLB+m26wji3fSExwczwbKd7mHTMx0 Ug== Received: from iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta01.appoci.oracle.com [130.35.100.223]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3m397ffc72-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 29 Nov 2022 16:45:17 +0000 Received: from pps.filterd (iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (8.17.1.5/8.17.1.5) with ESMTP id 2ATFgHOU011450; Tue, 29 Nov 2022 16:45:16 GMT Received: from nam02-sn1-obe.outbound.protection.outlook.com (mail-sn1nam02lp2040.outbound.protection.outlook.com [104.47.57.40]) by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 3m398drgfk-3 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 29 Nov 2022 16:45:16 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=WqAyUsjlX8bJeOMhsX1yVpnO7U2SaFyH0ndHGr4IaaOKHzzfMxXFZ+umrKFXHLJyP1EE+7VP/heEH+FD/TqTZRET5j5JFxzCyCxWidp9vpDXLr7x31KFsLLIkCRmOXjChKfa/t441aLUVCkGdZWrF1e0uOhZJisPz/m4R/uZKN/ux8rX5cB3/qL8OsbcUeft1NR3lfjIgtOM3FWxsIbe9kkI9cOK/j/OSFk4cYKtvGlFXwiWg1EKTJkU5uuwmjv0UTZE0Jk/DW5pe6FF0ppRl68Q8vkZwy+PnOP15i/20+AqjHEiXGU211uForSu4WE5IXa7Bi6pNUB/n2yIJmX5ng== 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=bibIZw68jKM6/uSNMDgXMSuiC65j2yL2vL8bwK3qLaA=; b=S5B3AJ7M81uRsCmh0MxmrIxKXIeIhx4rkB4PhbHrLqqsEik5HK0cCYSnqQagA+xOOGiylLi0AjUiw0ptdp3Bm/K+xpDW56xuAs8anvQ6ZSi6rDT0eDvbppbM7pdVSA3ZJ6Togaklb+ysYpWpFAmso57gopCanxFQ1eJ5q8E7+gHJWAyTosZJEhOXGghzdqTLpAGeNXBrfd6n0OlJ7UXhGXH+GmfGGcJZny6PE2d3dMRtebIONR9kmWO5OSMG+0sL/mW96itzeaSybbsjUpy7tIEdVQCjPREsUq1XDzDngvzYrp042lxvdY2NbObKx8eGREQsudn04r2gVoH0N0Kb0Q== 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=bibIZw68jKM6/uSNMDgXMSuiC65j2yL2vL8bwK3qLaA=; b=u9DXT5d3h1efm4BHmBUmAfitBSkp2k+GZ3cFZBuwKZ3esroaoNXwLNXYK9YlSeW2KbkhmcVkfswNvSGKyPK1cOYC8IJXR0B8l4th7ZH+a+YSCXQzHx2rQ/oilJ+kV7649BZrPsc2d7jNr+mnOKuJHjPfQKAm9xnoUFXcuVMACUs= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by CY5PR10MB5937.namprd10.prod.outlook.com (2603:10b6:930:2e::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5857.18; Tue, 29 Nov 2022 16:45:11 +0000 Received: from SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::a02:2ac8:ee3e:682]) by SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::a02:2ac8:ee3e:682%4]) with mapi id 15.20.5857.022; Tue, 29 Nov 2022 16:45:11 +0000 From: Liam Howlett To: "maple-tree@lists.infradead.org" , "linux-mm@kvack.org" , "linux-kernel@vger.kernel.org" , Andrew Morton CC: Liam Howlett , Liam Howlett Subject: [PATCH 40/43] mm/mmap: Introduce dup_vma_anon() helper Thread-Topic: [PATCH 40/43] mm/mmap: Introduce dup_vma_anon() helper Thread-Index: AQHZBBHeo+xNPyC1gUmxR1c2o4ECWQ== Date: Tue, 29 Nov 2022 16:44:37 +0000 Message-ID: <20221129164352.3374638-41-Liam.Howlett@oracle.com> References: <20221129164352.3374638-1-Liam.Howlett@oracle.com> In-Reply-To: <20221129164352.3374638-1-Liam.Howlett@oracle.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-mailer: git-send-email 2.35.1 x-ms-publictraffictype: Email x-ms-traffictypediagnostic: SN6PR10MB3022:EE_|CY5PR10MB5937:EE_ x-ms-office365-filtering-correlation-id: c819ed59-c4b3-4876-d3db-08dad2291505 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: V+dhywVXrp6p1aZHb9yJwqnDjsmBhumLXkkF4hHRhrBlh56sqs6pp1spYanz/vcC0cb/adZOl57tHdwVDAKXctn3sM5kM8Rc3t9TvL6FSvQddHRfs9lLah89C+v81HCZToWZj0u+CvyYSjCSkM9ddXXysaczx6asgD5O82Vpqx8ACseL4BL5BBst/uNF+Xi4R5vr4RvvTZRxNRqMUqs98MIQlVZWIOGphN16roWuw3PODGv4rcYBMTz+s0ux5pmBNgdPrJFQ6sLm4gUwrrLEpb8iuHF8W1tMOb712oTgSjGZIc9Q5VMH5UhlAurvz2ik9PSYBzNi8dIvMD0EOdqxD7TRW0kKYGvOtGmXoW+8hDHi7qxkEjt4ZFU3cJNnHCey6pSQdCLcie4RKtfzSVmj5uzIQEz5qEDY++svVPbGw6NtYk/yYlouWkW99WPp4fy6smsZh68n5nyvfmp59gzvjxtJ39eqXXOd0uxpgLgrFTQ4vlGb4SSWoROLdO0BsHi4HY1iUBnAAgVsMe3LpnPoAMEP60KjZiVJvu8d0YyVR+TTnXQffSDY6DNo/WAFcHt5o6F7p1UPCLo9WUrtKoVCK2sCGcJkRB/Hfe9dZNvr2SUJm5WNqx5qMpoxQRH1Y7ekbpt3eSWDqCAOzi0X1Lt0kNBWnaYaZSBTHuWCCf9mMKQu/wCxwBR03yRxCxCbIzvp4D5oKZC14fByf/VKVaS95g== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SN6PR10MB3022.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230022)(376002)(346002)(39860400002)(396003)(366004)(136003)(451199015)(8676002)(66446008)(66946007)(86362001)(66556008)(66476007)(4326008)(64756008)(91956017)(2906002)(76116006)(110136005)(54906003)(41300700001)(38100700002)(122000001)(6512007)(83380400001)(186003)(8936002)(1076003)(36756003)(2616005)(316002)(5660300002)(107886003)(26005)(44832011)(6666004)(6486002)(71200400001)(478600001)(6506007)(38070700005);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?Q?hdnSDxQ3isBWOLl41VSkLiiRIOUVNjoos4tvvHXigv0a9QbgqIVp124UTH?= =?iso-8859-1?Q?Pu6/MCLyGPBqo1+tn63ym0AqJKXWyKkoswTDLCmgq8UXoswXxImTOBogAh?= =?iso-8859-1?Q?e8Q7TsPTzl0j6rZpyBCvfnOMGbFgOQLgPL8sVBSpiUD2fBpIO8oaUzGPgM?= =?iso-8859-1?Q?4aoVuuWSjqMOiSwS3G1rUWGH9WW+uTtFdPm6tbuN9bjznQ6KPxPFX0EMq+?= =?iso-8859-1?Q?gGJiuU6p6AfQT2AidyMsYBdg/mmmDyKCwstQhgmueOYLNxDK7SPKLI7rer?= =?iso-8859-1?Q?aULezOjd2xL5mnuR8MyqSz6XgSGo0kW+o1z7tAlPswkP8vF5OvKvOlne8/?= =?iso-8859-1?Q?jiASwFUKaHZ2632oaZvBRR3Pq3KG4a00u3FJ2Duc/Lw4m6Ak+MmhSHZrYv?= =?iso-8859-1?Q?LJ37DGacW0267auavygW5LLk6XRz8hDrX+Wk3G79vVVDVaJPibxE1Xyx4i?= =?iso-8859-1?Q?taa3iR7pNt0klz4EZn7IJgNU5dMswJynMsYAjr2oGLaa1cGbr7QTnEojAH?= =?iso-8859-1?Q?IF8u4TsBfhBy43ALQ3PzDCg+UfIK+1cLATXPuvaVc/G9n9AcXakblhfA0y?= =?iso-8859-1?Q?6hqe9bv8Y4kfCAGTNLOhzzW4J3NIjnn/fIm9T/LOYpMJLYq7+9lhhrDEPl?= =?iso-8859-1?Q?05MzoHGZ4ntra10gRHRmwndd/QEq5CSAkpzI5N/ymF9OX74aBEHQBAkIZf?= =?iso-8859-1?Q?j1V4die8QptPXkbN7OuCveYY6nr/9wHoyHE1QvtKWD/v1aHXMSS35bTiB5?= =?iso-8859-1?Q?FOqYJmAWQ8gFpdcwvr12hhWjJCH2+ZAUpp4QFqziPf6eppZRj/UnLszY8g?= =?iso-8859-1?Q?nmj3GPZLfgaW0MSJkbJnz0n/83jw/s4mEB+oM1RGuHT9bPhX1z4jO0QU0o?= =?iso-8859-1?Q?1fCHZ24a34W5BoUAsNBu9ae3yn+l0A2/SBNTjh1Cxkb6pBGHRh0ljIpDCJ?= =?iso-8859-1?Q?j2QmQQTn+enM+HiawaDYN0P/sNxX6t15bpx0kmN30bUIXtsBV0FrYwGzmC?= =?iso-8859-1?Q?PsexSazVsEEghLzPKkRbyT3++XrJcrR+0F+qLlXwq5Ej5xJkEIJvT5gMrH?= =?iso-8859-1?Q?KZJ33m+adRHnXMzRjePPwKT6vCn0aD7Z/nNdBNb/L0/N53G8VyNd62dMLP?= =?iso-8859-1?Q?0FQrcQmG6abhebJqqtYWCW2aSHG5fjJhF+pG03LBEjYK5Bl7duWdLcjEfr?= =?iso-8859-1?Q?2oHpfGwnWXQt3MPVqq3JV8tU8oeo6kw7VyBC26ccWSDB42FVg5FfRe/S7A?= =?iso-8859-1?Q?zO9UVlwyFyuhM+DOCs8YJW5AFUDrpRd5LC8/HSI6clNMShLmN89cIspf0w?= =?iso-8859-1?Q?gsW3hgyaz0R2wpkU8XW2bk9F6fkjctX9k0oA+Q3gwEGek2wLYPbYJ+5thR?= =?iso-8859-1?Q?9C/spuA/fEUOnNqX7Tq4g7t4kR/QHXxm/SnmqiXoY4Of6ZcnqoD4JVB4yS?= =?iso-8859-1?Q?fXbae4AsmovSKA2/BZl+5GKKAmeTOfO0vB12jUlREhVe+14c2VfKULQy+g?= =?iso-8859-1?Q?+LZHFwBhRm5D+tjwwa+4hPfys3TQx0WGeIEKhK82dhu10YS8Dp+4IfdAro?= =?iso-8859-1?Q?JKfreEzisqjWGcH/uXjrHojYpcuspiiqL/cdycNrE1tNcEClV9/cpeIfWu?= =?iso-8859-1?Q?i/q7GHsDW9w1xk/QvGdGUiUUpQ5XEt1x4OhX8waEHtToy4h+qNM8tqWw?= =?iso-8859-1?Q?=3D=3D?= Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: 456lEmjrR4A3NuJvXTchDBzo1NFVFVc6DJbZjYv2ZFMkxCB2IjkXp/oY6wkzeAz6wTxpEXTLnEfIKxrXUyfTt0a4EwfebauoidqUYMJg57enA6ULGQg1E0Re/pxu3dYkA2EkGc09KkgsxgxDrzfdnCkLmS8ckI/Szs7LCcDXgSCAcmJ7vz6FAucDGhMGYuu7huo8BTrSn9b5vsxUK2hLduapElzJq7pKzALguWL7pAOkmgHFZSXc5khprN4j2QfhjCbecp30DdPdkgza4aFds9yoTv7KT1UV7VfNuKVEFkKRNLRkCTlCEXtpPLYYEs5BAhatKtpNXY11m6KKrE8rTDVsRlHbsFz1dpXQ9Wx+yXXgYkSQrYjOuE3ZSKmKwA6WIqt09Fr0zFGhR1DV+US9xbsyeX9Tu2CzuxhUV5LLsb64+EDf7A1XbX3tdW0IS7t2PqqfPXxz59RZuMidWD71GcEmxG7wgMpGNf/bgEAR3me7kmUaFNE4PwdJIaUpfOuDHxyfvmKZljBE4wtDvsYluJtH7vRV3F6CJXmbs/cW25PCIFco6uB97UPcQRjshW0diHGeQAMdCUYhb5PbDeC9bj62uMAqVPmrxC5fCvw8csanCrZO3EvavMcBA9ObuVW1SqPYWLDsRvKSxxPwze8JvBQv2VIB88AuM2I6dfmdfIwowCt/L8caiJjDN5ns86Fo/o7Z5apDifPNr+K1ZBimvxoVRS0rfsSqsqBlb5eaXhGDGiNzAClr5uDrMi3bhapj+2ETCzJvy6fQQJCQ0w3YZiZnIxdMLD0Zx1oo7mV4HWp98EQ5tPHqpiAGsVGfa0dzr0zzd8APHnnoRJOJKpF5nlA85v+0V56sImeCXF9bemQ7CfWsE/pBQyrN2pGK450ehptBKjzaWbtE5U0DWWfvAw== X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: SN6PR10MB3022.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: c819ed59-c4b3-4876-d3db-08dad2291505 X-MS-Exchange-CrossTenant-originalarrivaltime: 29 Nov 2022 16:44:37.1752 (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: eFRm/xgTBzQo6t2Mc1Q1eDTV8b0j/gRE5TbNYHCVNaLMiz4r9zrfurbIW+yaOz+mRpB23ZQCXR/PDUzIOMQ4Ag== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY5PR10MB5937 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.219,Aquarius:18.0.895,Hydra:6.0.545,FMLib:17.11.122.1 definitions=2022-11-29_11,2022-11-29_01,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 adultscore=0 mlxlogscore=999 spamscore=0 malwarescore=0 phishscore=0 suspectscore=0 bulkscore=0 mlxscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2210170000 definitions=main-2211290093 X-Proofpoint-ORIG-GUID: ooy_Be-8Z6HOcvNnCbqO1_88IpW67NR7 X-Proofpoint-GUID: ooy_Be-8Z6HOcvNnCbqO1_88IpW67NR7 Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" From: "Liam R. Howlett" Create a helper for duplicating the anon vma when adjusting the vma. This simplifies the logic of __vma_adjust(). Signed-off-by: Liam R. Howlett --- mm/mmap.c | 74 ++++++++++++++++++++++++++++++------------------------- 1 file changed, 40 insertions(+), 34 deletions(-) diff --git a/mm/mmap.c b/mm/mmap.c index 519cdff9d135..2b41e7882639 100644 --- a/mm/mmap.c +++ b/mm/mmap.c @@ -677,6 +677,29 @@ static inline void vma_complete(struct vma_prepare *vp, uprobe_mmap(vp->insert); } =20 +/* + * dup_anon_vma() - Helper function to duplicate anon_vma + * @dst: The destination VMA + * @src: The source VMA + * + * Returns: 0 on success. + */ +static inline int dup_anon_vma(struct vm_area_struct *dst, + struct vm_area_struct *src) +{ + /* + * Easily overlooked: when mprotect shifts the boundary, make sure the + * expanding vma has anon_vma set if the shrinking vma had, to cover any + * anon pages imported. + */ + if (src->anon_vma && !dst->anon_vma) { + dst->anon_vma =3D src->anon_vma; + return anon_vma_clone(dst, src); + } + + return 0; +} + /* * vma_expand - Expand an existing VMA * @@ -702,15 +725,12 @@ int vma_expand(struct vma_iterator *vmi, struct vm_ar= ea_struct *vma, struct vma_prepare vp; =20 if (next && (vma !=3D next) && (end =3D=3D next->vm_end)) { - remove_next =3D true; - if (next->anon_vma && !vma->anon_vma) { - int error; + int ret; =20 - vma->anon_vma =3D next->anon_vma; - error =3D anon_vma_clone(vma, next); - if (error) - return error; - } + remove_next =3D true; + ret =3D dup_anon_vma(vma, next); + if (ret) + return ret; } =20 init_multi_vma_prep(&vp, vma, NULL, remove_next ? next : NULL, NULL); @@ -799,10 +819,11 @@ int __vma_adjust(struct vma_iterator *vmi, struct vm_= area_struct *vma, struct file *file =3D vma->vm_file; bool vma_changed =3D false; long adjust_next =3D 0; - struct vm_area_struct *exporter =3D NULL, *importer =3D NULL; struct vma_prepare vma_prep; =20 if (next) { + int error =3D 0; + if (end >=3D next->vm_end) { /* * vma expands, overlapping all the next, and @@ -837,15 +858,14 @@ int __vma_adjust(struct vma_iterator *vmi, struct vm_= area_struct *vma, end !=3D remove2->vm_end); } =20 - exporter =3D next; - importer =3D vma; - /* * If next doesn't have anon_vma, import from vma after * next, if the vma overlaps with it. */ - if (remove2 !=3D NULL && !next->anon_vma) - exporter =3D remove2; + if (remove !=3D NULL && !next->anon_vma) + error =3D dup_anon_vma(vma, remove2); + else + error =3D dup_anon_vma(vma, remove); =20 } else if (end > next->vm_start) { /* @@ -853,9 +873,8 @@ int __vma_adjust(struct vma_iterator *vmi, struct vm_ar= ea_struct *vma, * mprotect case 5 shifting the boundary up. */ adjust_next =3D (end - next->vm_start); - exporter =3D next; - importer =3D vma; - VM_WARN_ON(expand !=3D importer); + VM_WARN_ON(expand !=3D vma); + error =3D dup_anon_vma(vma, next); } else if (end < vma->vm_end) { /* * vma shrinks, and !insert tells it's not @@ -863,24 +882,11 @@ int __vma_adjust(struct vma_iterator *vmi, struct vm_= area_struct *vma, * mprotect case 4 shifting the boundary down. */ adjust_next =3D -(vma->vm_end - end); - exporter =3D vma; - importer =3D next; - VM_WARN_ON(expand !=3D importer); - } - - /* - * Easily overlooked: when mprotect shifts the boundary, - * make sure the expanding vma has anon_vma set if the - * shrinking vma had, to cover any anon pages imported. - */ - if (exporter && exporter->anon_vma && !importer->anon_vma) { - int error; - - importer->anon_vma =3D exporter->anon_vma; - error =3D anon_vma_clone(importer, exporter); - if (error) - return error; + VM_WARN_ON(expand !=3D next); + error =3D dup_anon_vma(next, vma); } + if (error) + return error; } =20 if (vma_iter_prealloc(vmi, vma)) --=20 2.35.1 From nobody Fri Sep 19 02:32:03 2025 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 4122AC433FE for ; Tue, 29 Nov 2022 16:49:06 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S236255AbiK2QtE (ORCPT ); Tue, 29 Nov 2022 11:49:04 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:44312 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S236272AbiK2Qrb (ORCPT ); Tue, 29 Nov 2022 11:47:31 -0500 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id DF7896CA38 for ; Tue, 29 Nov 2022 08:45:32 -0800 (PST) Received: from pps.filterd (m0246617.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 2ATGP28A031378; Tue, 29 Nov 2022 16:45:29 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : references : in-reply-to : content-type : content-transfer-encoding : mime-version; s=corp-2022-7-12; bh=GKlTMQFbAnnigcLyW4Swh+pYK3cP9w2B6Tyc6cEN7o4=; b=v7VFOf6zk0IAGwvkK1voiEwmcZvG+kivh1Tlqe8RZWuIP94YU6d/FDhOtluv5tKbKJan ozdD8EqzAL9oQtawjuMgLf84068gdmunErvZZod+Ej9CRM0/v+i46tyJ2tGa6QMNmM5c 6I2gX6ivg8fhXl7mauOO5rckMId/AzQUti3l5L/2kTMHO9yovvLNgtBHK7wyyZaUzjB1 eJlOqzH2JSp3XS/85E0mJsjv5f15VwKljP5EHgKxWkfBSS5Ug3PaNf8IAkbYJnrMh6y7 kKDGVae8CTF6vSf+tr4C5QkigOhEunpbaadLgR9rcFl1gDapGFNbChagObmHSxHixjlA tw== Received: from phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta02.appoci.oracle.com [147.154.114.232]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3m40y3xavf-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 29 Nov 2022 16:45:20 +0000 Received: from pps.filterd (phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (8.17.1.5/8.17.1.5) with ESMTP id 2ATFn6v3028010; Tue, 29 Nov 2022 16:45:19 GMT Received: from nam02-sn1-obe.outbound.protection.outlook.com (mail-sn1nam02lp2041.outbound.protection.outlook.com [104.47.57.41]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 3m3987f3xj-2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 29 Nov 2022 16:45:19 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=lTG9QGYPZx3I/9bt1sotgYiH+RBYbQ8dlgdVQ3QXNgTKEF6s/Q8egRTBkYSh26+Cy4nU+2ZwnMiA37WNmVmwWT1uuk7Pgq1wY/CDl6yPriMcLdS0/M2S9O7NBjD+f2A5caxMqE5udGRBMtblIMlIXVbGif2h1x6UjFfpVOKkPkxro62k15FdwcmM2PDzxafOTMS1OyALm4rU53gFHo2bGMlvYYB7Nn/2q4DqjBhY+hTox4LXupai8uqHZdi+ZlK4jkiNCbmejVNzJKe1cjr6rnFxIO/VsJwLfgDkBZutGBssnBNy8tUxndLSxtAvl1CBHV0YOsjuQVm5H10gDL0DZQ== 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=GKlTMQFbAnnigcLyW4Swh+pYK3cP9w2B6Tyc6cEN7o4=; b=fV1tbfMgznnIkQGbiRuBy96RDy4rjZwGCFobb8K4Knj6pXa/yUP0dzBUEayK5eI2w5XcSJWF6pa1aPyEMysRsLpAaAV7+yegMe5eDdskoJjDW3oRMueftsuMciLTlR5KbUY4k8PHU8kzTF7iNgOZvv+AURYI7ogTVSsi68RsYlmIwszHWAHmzZ3kV93ZW2oTwPn4C1yHZyB5ENhChSq4k5iinsnOAbIPrDdFC3Q3jGEH3/i7AQj0xk5qBCHTTD1kpXL1iLg2BZZfeDLohj/NVdHLrvQ58yZBQgErkrgQUEV53Xz+uPypwwUO2VrwjQ1kumA3+YpWzCTxExQkk4IM+w== 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=GKlTMQFbAnnigcLyW4Swh+pYK3cP9w2B6Tyc6cEN7o4=; b=jcY/lbEVohLgGiDzVW1Jy3iQuVtifYR/RaC9i8ZT/BO0OE4Dzm3mSjv/DqmqbX8qJA35uvekyEy1LNTIPy5UNkOo3Fj/xuPHTUcKu7R/iHMbr5+6H0uY3eYAosYXGhNTkqU8nDdG0/3TK0dJT7ZZ8FNMZ14w/IwEtshf7A13bEs= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by CY5PR10MB5937.namprd10.prod.outlook.com (2603:10b6:930:2e::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5857.18; Tue, 29 Nov 2022 16:45:12 +0000 Received: from SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::a02:2ac8:ee3e:682]) by SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::a02:2ac8:ee3e:682%4]) with mapi id 15.20.5857.022; Tue, 29 Nov 2022 16:45:12 +0000 From: Liam Howlett To: "maple-tree@lists.infradead.org" , "linux-mm@kvack.org" , "linux-kernel@vger.kernel.org" , Andrew Morton CC: Liam Howlett , Liam Howlett Subject: [PATCH 41/43] mm/mmap: Convert do_brk_flags() to use vma_prepare() and vma_complete() Thread-Topic: [PATCH 41/43] mm/mmap: Convert do_brk_flags() to use vma_prepare() and vma_complete() Thread-Index: AQHZBBHeAgMA4FrXDUujUVAxTJu42A== Date: Tue, 29 Nov 2022 16:44:37 +0000 Message-ID: <20221129164352.3374638-42-Liam.Howlett@oracle.com> References: <20221129164352.3374638-1-Liam.Howlett@oracle.com> In-Reply-To: <20221129164352.3374638-1-Liam.Howlett@oracle.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-mailer: git-send-email 2.35.1 x-ms-publictraffictype: Email x-ms-traffictypediagnostic: SN6PR10MB3022:EE_|CY5PR10MB5937:EE_ x-ms-office365-filtering-correlation-id: d8876939-662c-480d-7c35-08dad2291592 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: rxrR3UF3ZRNsm1Jxeu4OnlPVDSsctej9ickXtjH9VEWZxnd+HfpUbTcHTWK3OdwWvDHLeBh0fweInoy88ATVVkHH1LkUsxIUyTLcur71h1IHQ/xXO7b0XAVvA8Wm+CVqWfmft7nKQ/bw7sDr5E4tdbhSGuSh3nLNyTCHhzBShxOe59nSwnoQ2m773/VMl01PxLj7ER0RzCoiMLeFBr2jLZqLZi1AoeXk8RlDhuvGzfEXh0DbkAl6Ma+3GCDiS+opd4/9cfzQz/WsDhN/PP6S0mcUcCVd9M8R6+gsTsTO3k7iqd3lexQHqEYDRgIykxv8ll0UgLFRqtJPjz9dRKLgRsg+0S6aFqeK/CbAcyubJXw0DOCqWhWWDb4qh0NF2Sph8XKm1b4APC3t8Y3L9h74yUeALr3rvPRdhz/nRbjShk3M9YE3Bl3m7oN1ZXIzVDzm0wpBrY45xsXSo61bkJO6Je+5IC/LMpVtW3+ohwdRP5kTkmAmlJYZhGN3NQhefTVjziobx1Kgy7EDiLtH2FhDY7v47YIwWt3mQI/Xh6zejSci/zXK8/jFNqkArqm87n8m6EnDrMfhpiU/kQPXLXcvHMc7yRrSLIlI5BF6ibHgGjP+DMwMS4lPrNkPQpUOTy7F/ccpYlFOX8umiHd9ReP/UG5Ln/dc2M0BFbaBcSHNotV5g/PY7SYDgQQitygv1ZFIXpGQNGWbLU+e0fINWDD2pg== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SN6PR10MB3022.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230022)(376002)(346002)(39860400002)(396003)(366004)(136003)(451199015)(8676002)(66446008)(66946007)(86362001)(66556008)(66476007)(4326008)(64756008)(91956017)(2906002)(76116006)(110136005)(54906003)(41300700001)(38100700002)(122000001)(6512007)(83380400001)(186003)(8936002)(1076003)(36756003)(2616005)(316002)(5660300002)(107886003)(26005)(44832011)(6666004)(6486002)(71200400001)(478600001)(6506007)(38070700005);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?Q?0yu43F6twGVghZAV5T7xdDptNglKVPF6koGPP058H9d8xPTW5wjZm6qXE4?= =?iso-8859-1?Q?jTnfCeqtTYbkS8d10UUDxLZukULRH8m2E+topmxN581rvSOb0mCnBL2WpJ?= =?iso-8859-1?Q?vwL21G6LODVFOoCYwqFlf8efccVC6qm7ksPxbHdiEmpBW2klNpYM9m9Dhx?= =?iso-8859-1?Q?vi6VH8lviXPDOyBjmaUuFRTrjHLOutAYd3HcOwjJcO3IQVq4ArZKYPAJFp?= =?iso-8859-1?Q?7Taxkypd/CkHj5J4d6NMWrEqFWrL5YyUr+g94LXrY3ejUS1j4gnKOMjzxy?= =?iso-8859-1?Q?4v8kq6zo1PgxSXOGqu0yFdvwwPl9spCfNGXwihbyIZ03Xf/w0yqKu84yRY?= =?iso-8859-1?Q?WopuzKmJ7rXLmgcSH2Cmymx1QPZFWFgBS/cPzexvro9cQ+PJZBpIlAbr8T?= =?iso-8859-1?Q?4QQNkv6MXhJJ9Mn6MeH9CIAgP2EvetKdGlzaDMJFG9KUtkiRn+V23VeWZP?= =?iso-8859-1?Q?M2VancQrB32rE4fFTzAdHWmopZGLBpcBSY8dnweI07w1xEltPGoXCZiWnV?= =?iso-8859-1?Q?JnlJzqG5JNGfTBI/V0rmaZxC7FJ3vUCdhqMnDXip/Df19Ztw8t/rZh7MV2?= =?iso-8859-1?Q?tyWQmaD/AjQSQEPU+yk79DoKMXSYImYv6AEMkU1tNAMaQAZ+7u/h8uC+9B?= =?iso-8859-1?Q?h3LTmQZtV34IpN0aD0owxSiUnFFNpNXjbT3Xtx9rCZU8uyMydNFNWyTxPj?= =?iso-8859-1?Q?W7agF8vz9fJhBkqIXWvoLHMEYKjglG4P293o8JPStPwbWOG6BR8FRvOcfS?= =?iso-8859-1?Q?cogNCyUFLNzhoUFbucLJeVtrWodWLxaEMiyjAQu+xGg+ZzRLBjAdxYXGSh?= =?iso-8859-1?Q?IFrugAkkRdRey+qypDmmmKjyXJSLX9DOz15jrJzrcT1Q42p+RKOdpHYVdD?= =?iso-8859-1?Q?g/p76hv9qce2OHjh02bCCoYBLMHewdPlHg2BuZ15IRlaC0azWkH5QHZVpG?= =?iso-8859-1?Q?dtmqCWJCELktlwM17RTPdRagt8xQTJHdmoIpFh23RqoNzRGErzvUqJEmIm?= =?iso-8859-1?Q?Ay6Vm1cOKUu62EcFonDkE6uelLZlJ2v83lk0dDxCHTTVWiKrGcM8Q+m+Oj?= =?iso-8859-1?Q?EIwhZSziRVPOsCMr6NjpZy6Ip+i5iVoPr75TrlSQlrthVW4jlxz4Oqs4x4?= =?iso-8859-1?Q?CwLitUlD1HPAuq/S+rIW0v8BSRYYASQdRvinrplQr4hFQKXbYaH0Ux9o2+?= =?iso-8859-1?Q?VpDUB2VRAgC4M2x5H15wpZFnI+nFxlkDAFuYb3lu5Eq86E/TMGmyknOmgo?= =?iso-8859-1?Q?X0h6mY/sEwoxOQ+YUwVwA90TyeWmM8jDgSFNPkwQCQevoaDLLha9Aqh5Yg?= =?iso-8859-1?Q?onV0eXrmmTXcaLwSzn3Rsqo0R+S5mOrVYfQ/QmyMauM/tj8hcW4a9gjpaq?= =?iso-8859-1?Q?CHsk7gATufLTPlayDDY9GGjpG/Lkmu3MIy/lWO/UEX19LkWACdfp8ksuCE?= =?iso-8859-1?Q?+ZIXw5L+c9uPOSbe+Rewy0s2/YOqigRU1pHiu8AT+dZjqwjqUiwf8Ih6MI?= =?iso-8859-1?Q?UBycp2O0Lxb/c+PBj05VGJRvZjgDd3lsmLcZ3mwCx7EQkQaaxV/tQdUGFQ?= =?iso-8859-1?Q?qQFqqMWE2ZKfgjzMXkVkG1arSrpXRSr8zgUmXJm3j/3f4+h9+nCNlXbxcx?= =?iso-8859-1?Q?qNZYmm+IgvCB50qhB3gPKErmjgANFQigC1w70HmqCiqEhiC0dy2jbI3A?= =?iso-8859-1?Q?=3D=3D?= Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: JjMzIMGZLLN9nRj6J7PBp0N4gBtQ1LOUzpEkqJfeVVBp9IJWdPfy/ojjzX7/37xXk/Fu/TcZdDSvrKAmQgT0XVFNIIwvv+BN2rgj6D4jUAI84Cyqc0akfLWmoE2I45q4Mv9oeCBMgep9zFGs0QM2HJc8vY9m0SGh+NL0Baf7gRPIgu+lJLmNBI3+8j+BQLEyPGjzIHCJnm6jD1k4OgjCU3ItZRVgfGiq9OvO3fUsJzFX6rnuSCwRgPRXPzwn/yFx1AQ22sAh/U1lxIAEU2NsNppEjDMT1WqFqs0S7q54sSz/mEWShi6E7obSugoucNZglxXShU7vOfI4p3D3zbyyNRFZg5eSJjYWOO+QiA9U6e6HKjAG6fHS5IcDidCu7Rd3/abXuJdEb+ByPqpMvcKIl751G5ToVRqEdrSxk8wvl/ZqFhhTfVqEdxCBeNQ1qqxWoUi5uBasx5cEeoakbuMolrWmVkjskyYUHEtdBrnW3xQhS7bmmYounypYRrm5MWmbmqwEV9lp8jFQGcY4q24kT5g/OeQf6LtUiCaGdEVULcq11iONrwGw+aERQEeEv17lHVNvdbYiSUT6z5fBHvldUBGmfyxsZpFFsqht6Wi79E6rBrPLv7oC33ycGM2CvWVZvGPFnnUmzbqz3h17E1qJ0iOL5ifuA79mpMLZ+00lID8L5K/YPkk1LKykvJTRIjim9OCCBa56Ih0qBx97rX3WRAv9Gu13WZ/jXsBfdmBrvvXvsjRroIgxRYVmN3dTr2DfizzR+E+cXOKqhhkoHIzrWK/BO6rZaKsAm8u5Ii39+MGV+qmolB+qWft5v7uMmeBAAQMPv/iSyG8QIfWQ2jwybXM7cFs3Sv2/SGllf1Ll+nFFV+pMyjCNzAnSXit1T4bow6McZ2MTtcZMWZL/y1r9rg== X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: SN6PR10MB3022.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: d8876939-662c-480d-7c35-08dad2291592 X-MS-Exchange-CrossTenant-originalarrivaltime: 29 Nov 2022 16:44:37.4877 (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: n9ne4OlIvCDc9NlWxAjuaa2ieKcTty/1PdMY5NCk8UMf6jmzkCStSqiGtq8sP0cCeUm90kiToezcq+lbqEqduA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY5PR10MB5937 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.219,Aquarius:18.0.895,Hydra:6.0.545,FMLib:17.11.122.1 definitions=2022-11-29_11,2022-11-29_01,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 bulkscore=0 suspectscore=0 phishscore=0 mlxscore=0 spamscore=0 adultscore=0 malwarescore=0 mlxlogscore=999 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2210170000 definitions=main-2211290093 X-Proofpoint-GUID: YqSWFchRogM7BMP83eNVdSTVsfhgsX1J X-Proofpoint-ORIG-GUID: YqSWFchRogM7BMP83eNVdSTVsfhgsX1J Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" From: "Liam R. Howlett" Use the abstracted vma locking for do_brk_flags() Signed-off-by: Liam R. Howlett --- mm/mmap.c | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/mm/mmap.c b/mm/mmap.c index 2b41e7882639..8ca40efb82f9 100644 --- a/mm/mmap.c +++ b/mm/mmap.c @@ -2980,6 +2980,7 @@ static int do_brk_flags(struct vma_iterator *vmi, str= uct vm_area_struct *vma, unsigned long addr, unsigned long len, unsigned long flags) { struct mm_struct *mm =3D current->mm; + struct vma_prepare vp; =20 validate_mm_mt(mm); /* @@ -3007,18 +3008,13 @@ static int do_brk_flags(struct vma_iterator *vmi, s= truct vm_area_struct *vma, return -ENOMEM; =20 vma_adjust_trans_huge(vma, vma->vm_start, addr + len, 0); - if (vma->anon_vma) { - anon_vma_lock_write(vma->anon_vma); - anon_vma_interval_tree_pre_update_vma(vma); - } + init_vma_prep(&vp, vma); + vma_prepare(&vp); vma->vm_end =3D addr + len; vma->vm_flags |=3D VM_SOFTDIRTY; vma_iter_store(vmi, vma); =20 - if (vma->anon_vma) { - anon_vma_interval_tree_post_update_vma(vma); - anon_vma_unlock_write(vma->anon_vma); - } + vma_complete(&vp, vmi, mm); khugepaged_enter_vma(vma, flags); goto out; } --=20 2.35.1 From nobody Fri Sep 19 02:32:03 2025 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 42EECC433FE for ; Tue, 29 Nov 2022 16:48:35 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S236378AbiK2Qsc (ORCPT ); Tue, 29 Nov 2022 11:48:32 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41724 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S236244AbiK2QrZ (ORCPT ); Tue, 29 Nov 2022 11:47:25 -0500 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id AFE476CA1C for ; Tue, 29 Nov 2022 08:45:26 -0800 (PST) Received: from pps.filterd (m0246630.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 2ATGNtE0022642; Tue, 29 Nov 2022 16:45:21 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : references : in-reply-to : content-type : content-transfer-encoding : mime-version; s=corp-2022-7-12; bh=JW6+9UwXWDgFrVRJ2ctqJ0TYYaXuE5oGeSURV6qoIDc=; b=hEVX0NuNJT2MTasPCWsYQCZ5SjQ6jZ0SpzuWgdlT84y6Wp92kTnrkksyY7AKzZT7+CNR d+MMJMbHszOmxwheev39P7F9jq1BcF8y2IqW58GJ/wMPLwsPX2rz20eUvVP0cFWutkHS N3lFmqoQ5q36OSjww3jTbX1uHgUwtrLCbaApGzK5F54UzUVGc5S6qF3vQd6KXcH9Okmv 8OviGxdA5KHBcYzZM85GUPWPOYYXKlNpC523Ba8payiOzp7JJkcZVTaXlXcQ4HRQld4C 9YU4mk3SlQNZDJJpVTLKy6HfF/b0W+NzKC5yYOlQDGOd196tMTzkWFhRGbtEhTXOO24m Fg== Received: from phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta02.appoci.oracle.com [147.154.114.232]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3m397ffc7j-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 29 Nov 2022 16:45:21 +0000 Received: from pps.filterd (phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (8.17.1.5/8.17.1.5) with ESMTP id 2ATFn6v4028010; Tue, 29 Nov 2022 16:45:20 GMT Received: from nam02-sn1-obe.outbound.protection.outlook.com (mail-sn1nam02lp2041.outbound.protection.outlook.com [104.47.57.41]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 3m3987f3xj-3 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 29 Nov 2022 16:45:19 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Zh2YaYyERgXtikjVOybGhmSEvPsgfHL7V3ivf+cXMa8WTTiuECjLSW5Y9GAMk9fmRvE0F28MUFjtidSd+/omWXgp7ysERgV9QgZKFB0s5d96cgXbPpQ5U+wDDwKmNXt22reNJE1DPgXCbfC/WCqUKu2E/eWYJ3//qniOkyI9r2UZct/lRDbGYKsXoPxcAo9iAfxH+y7cWrB8qVbkfiIkCRvzt3HpW/Tst+awnZZyHJGxrGuWeZsXzz8Y5uJXhNxgvf2WmXNtpi92oSl2Y+xl+LmDHrMqoIoK/nt0TYIQ9B1wkNjZHfFK0uLnAcDkojUfz9ArDVxV1Do7iWVzrvO6kg== 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=JW6+9UwXWDgFrVRJ2ctqJ0TYYaXuE5oGeSURV6qoIDc=; b=BXquxgiYEbA5wL23+9V3NZmpmCupgN7aiej0xoLcclPg3vXTBPd3fuvuSl5EXKO49BkagUoFqzWJxnMTu7yLyq1dlDIn5QRDM9vjg9JkirFMNbWhQKKsWbc5zipBlJzU3kXlYy1C/mh+WJYJrfKYSlZqV6j9+jLWK+eO/rwuA+Bc3AT4vO9AW2SBz94wMjW0UDYi49g+6sIL1nU26PVvkDYedQ9sfl8iF5haueed4kyKekTZsV2jxxg2LLVHZeyaispN1OQEd6IIKtnHojm/j69qIwTbLHgVclCm63hE7NWtYhOIE5ueAKNSnZpzYmyoCg3Z8Uqm/SGtH6QMr70+zA== 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=JW6+9UwXWDgFrVRJ2ctqJ0TYYaXuE5oGeSURV6qoIDc=; b=VFmtwPYsRgBTS+IaH1OhRYqJb0tHJv6N49lZ127sxGFHWMGm2nt/12WVvMjjnSag2jj5gAj+Lg56vHzqXAfCZWvAmeqGguaNnSN2cXo43x3ANMHAadtmVsG9L2j2r6mYq3Z6E2E3kIm2+LM4iKURJlTka1/UYu4xkfgEDT3c+yI= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by CY5PR10MB5937.namprd10.prod.outlook.com (2603:10b6:930:2e::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5857.18; Tue, 29 Nov 2022 16:45:12 +0000 Received: from SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::a02:2ac8:ee3e:682]) by SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::a02:2ac8:ee3e:682%4]) with mapi id 15.20.5857.022; Tue, 29 Nov 2022 16:45:12 +0000 From: Liam Howlett To: "maple-tree@lists.infradead.org" , "linux-mm@kvack.org" , "linux-kernel@vger.kernel.org" , Andrew Morton CC: Liam Howlett , Liam Howlett Subject: [PATCH 42/43] mm/mmap: Remove __vma_adjust() Thread-Topic: [PATCH 42/43] mm/mmap: Remove __vma_adjust() Thread-Index: AQHZBBHezj+OnykxmUqqUb+jwvJ8PQ== Date: Tue, 29 Nov 2022 16:44:37 +0000 Message-ID: <20221129164352.3374638-43-Liam.Howlett@oracle.com> References: <20221129164352.3374638-1-Liam.Howlett@oracle.com> In-Reply-To: <20221129164352.3374638-1-Liam.Howlett@oracle.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-mailer: git-send-email 2.35.1 x-ms-publictraffictype: Email x-ms-traffictypediagnostic: SN6PR10MB3022:EE_|CY5PR10MB5937:EE_ x-ms-office365-filtering-correlation-id: a9eedd6a-f0e7-4345-da82-08dad22915d2 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: Sf/h7U6IYxuPEKHZJKfMSg/NjbSxP7DZ1QitCNfZxS74JznTmP6jpSZ4ZVLsPve/e2fCgfOR22W36aRH+xVUVd0356Gk8Ip1eu6hGA3yKpL1ODMiD9rOveZa2bDybxLwhzI0QWBRTral6w/dPCzod496FsfCfhdn8BREMbyBxUWI//sDhA8ilB6aO1tvlJrgoClyMbsliYY2TY9A7OIG+7FDNKYp9Dnnm2W3P0J/bu+CLFe6DPp4SsWlLeVl6KQDe+yEYWsJZpBdTGS7ArFVr2b4CpWcXBiQW/IdNaGQPRQKU540S4XfPtzllrn+Qk2qoPC+wMZB00f+5Yyuhk5Rg6SyncxBTf1S4GhzpNoXpO+MFRQ5QIWubS/W2TTMFXVX4E1wWM1xt5cHtaxaBU4ik98AQVCkWVK5ukV+bbN+d2Zape7ceo1QjNSrG8UwMfwSvOEnKHBSQQ7RqL7rDHL/oJedTWkto/6lmGet1+oGL6bUwohSgJrRddVu4Tanb9L5WtCjL+x7aaxfjbmH1kcrbBE82wH9O0CJNQJtFGOcbHr7xyY6RMOFaYI+NLjwQTjIYhvRPEvFwHXGtS3bvNRmzYfEfmlTzvO8Ts+ittf3yxqUBY5rDZwK8Q++1WeYpdp6VpQtFDjiT4YXn+ZwHUeVV8ApZU8CZpayoPSvY4OXuV7rz2Hfom2O3tKLDAFt+zGt7G+re55x/NovEZTFxRW8EA== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SN6PR10MB3022.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230022)(376002)(346002)(39860400002)(396003)(366004)(136003)(451199015)(8676002)(66446008)(66946007)(86362001)(66556008)(66476007)(4326008)(64756008)(91956017)(2906002)(76116006)(110136005)(54906003)(41300700001)(38100700002)(122000001)(6512007)(83380400001)(30864003)(186003)(8936002)(1076003)(36756003)(2616005)(316002)(5660300002)(107886003)(26005)(44832011)(6666004)(6486002)(71200400001)(478600001)(6506007)(38070700005);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?Q?FZpkfbhUBNcd1FYDjYJ1PTTSXfHnpn0CugpcP8wLkpaMdnVB0L85xxyaTP?= =?iso-8859-1?Q?5gz+7AMT6BeEQLCxN/Y/+ilMwpnI/R3XS3ld1kvHeMWi/xujkBOH+jfRUb?= =?iso-8859-1?Q?AVHl0nEnlWOV6ckj6HQSaH8wTe7R/rR+vFhec0JBqB5kVqsiy4T2oYIl2R?= =?iso-8859-1?Q?I8HdaSPD+0XphyNQgNRV8FGL3i1G3SN/S/Swa0hoGicA7YclSdu5pKArfW?= =?iso-8859-1?Q?7gwHJk4iPAUaUe50Psdylu+H/etNQU8A6IUiYObm/r8udABj78nBRtg1ar?= =?iso-8859-1?Q?KO9whAKh6Edz0ovXuj6UxB9gvc+OWzhEzhL8W+pSCZTIDcM4ew2rbqfPib?= =?iso-8859-1?Q?pARC5bOXxzJMr3Sdu57iCyrsJ4DBS6WcgYjaLO0mUInE2D6re1u1uh6EQp?= =?iso-8859-1?Q?6GVa1XK6aTsECGOohOoqlDAsT3K5+yZWNTdKLiC2J3QyTBbSeRjJTCSln2?= =?iso-8859-1?Q?SjguTiy6WnXK2LNzr9aoqZgyGHB1RUM6o/NAd2SnXLY/hoMvEFsLJG3r8R?= =?iso-8859-1?Q?RKnk9Qo1NE2AVT9Ec2RkSuVzOc1JcdMVWkhOB6PJhVTAo8YQ6J8elO0V0B?= =?iso-8859-1?Q?22zT43H1q7lrO+rGEkTeZv6d/vUi6t2wbVE+i7+dEgpopoibRoU26sqmuj?= =?iso-8859-1?Q?7JM3r4CLpqfQe9ldhrS8+KipBayWkDkR5iBbJEWIdYaBstj3oed+00nJzK?= =?iso-8859-1?Q?bk/5hQuER64KwlwxnCgzfEpF6L4Buv0LhnX70xLAz/rWtz5X0w76QKY7Cv?= =?iso-8859-1?Q?Lt/IAjiJ95hYe5vQiPjrl9b4Wkpe/McS7YST8bjP4NSfmzcf3PGQUHiMOp?= =?iso-8859-1?Q?xxjWc14OCW/NstjReKqPfB11SBNV69Tt/JPeSFztE7VID249YKORXWR97K?= =?iso-8859-1?Q?DIzs+BW64EJ75i30ENUFlK7zH445pwu/MGUeDu8r8xZk9htJ9qVzwkikN9?= =?iso-8859-1?Q?xmww6xrm+ovNTUHq2dsFkTI1bBnaUne/2n0IuuMW8VinI11RaBM8g6WLGF?= =?iso-8859-1?Q?pK+PKLzDTV1/0HePJf2VeIlvn9CvEjwQYKrCSRUP9voxg9ly+D/0ztghVN?= =?iso-8859-1?Q?cfbA/SYQ+QK/aCDnn1s8g6sK1Mx+UBtPM2GFMI7R/alwtzXyb3o2p7AqnW?= =?iso-8859-1?Q?HYX+8Gh9wdXzzjXF9Kt7W3NaUat1YNe62IFAKVZ/w+n67i7MLADSpiRcwQ?= =?iso-8859-1?Q?0/jMKtgkZqJuGxLog0HE2lRA458Qwsj9JKuV3eagWSFC2G8ISaZhgQ5S5X?= =?iso-8859-1?Q?GPnWDw7tQVBD6y00bYV4mZvJeidiqp5gBodUVR6UjrQyF/P9VFRy1ozHwT?= =?iso-8859-1?Q?BHw2I+f4rHg1F/v8y1IwZgVK9u22AC2DIcZVX7Nv8uvZu374Hzl7vJbZ/N?= =?iso-8859-1?Q?mDqkeSJywIpFc1Iq2HAZo+7cfjf4fGszIcHZfwKCFMyoQGHFQiFCnkM3nC?= =?iso-8859-1?Q?dyGwTHiPnt6dMaCdvtkeI/V2gDPvDoPjRVngHXIt1QGBbZ9Oc/VlNr5mQ7?= =?iso-8859-1?Q?GBdsNWVy9Dy1jLh+11iTol4+cYdatxfjcz300iWdxy1rtPLeyON06o3qmR?= =?iso-8859-1?Q?B3gj7j0JupTDVTQsxqsJ9DSJ8PMLFuHsltCLe0XELYctsbD0k13zKUHgwK?= =?iso-8859-1?Q?9AQLUyYXH3CI+J1K5x6rrHSPrzY8iOh/V4z8smEDKy/EHgwTIR3v7izA?= =?iso-8859-1?Q?=3D=3D?= Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: 4GA0TEz38UmreIP4VkX89p01OBIiU2N2hQxV1km3zOrEIfA3HH+rJB7BMZmhLGnzQ31exgz/ImEcjIgxGU8QvGRCfPACl7kmLDu1cu3w0EJGKMGhm2IJ4+izOdQTcQyI3kYEbTluTsunBy7Wz+pz2feh7+TzEEGxbfu4xr6zJv1lrvkfCodWu4Vg1DSIhI0fohqDhIryRngsFlCwSA8SNzkyezkuJcLhM+VyJa7va2Gd7l5uot0oJOgOKrsLhb5wo1ZQYbxukPN3FZp4oxxQsXpCYDF/ceyOpfW/aV/U2f/d6vovQ9/3SGSS4l0cd2scmwN0piwkFEewuJ9Vqb2NbQhljiD4067UXnVEdXUrJa/Yf6AAMWPo7JXVirDCba+9urDL8OtxoO2eDxmc8n8H7t/iFJVkUB0aklaGeG3hAECK64Lkh3omqj4izwawKxXEl7k1FgWH5k4ZuQ+xtgy96ACzHRgFLUfmywmfYhSROpSntTgV8BLAm1mZ5kRAfxQR7HRcB/f5zXgA9O2DZNiwyHzEOnAei4zXEXnmjbPtSMXOG+iBxye2L8lxjALQ6Zkz3A97UuzDCWuxqBmB7jpA4ZLwFLI2vnKERzj2Gtbl2MY7GhCzQ9qEk2dF+PVCRj7nY1ci/9zZfW0OU3I1S5qKU6FElswNkXCEiKsEj56oMaf2ZbeZKPNg7C7eny/xagUYcHizwn2qaovnDf+mXragvn4rq0abnmi3fYLrkf5zodlQLlULpDUyg5ryu4sNlU3MD7fAJwbBsfqbM6k4Ltc35IVUkSpH2S2p1P7E5XzmKl0fwMzzEROp0rzlsLMWtF6Q4kRIPl6b75fxaNCgKr73L07AhVR7F4rlO40WposHglIncaxty2PAtfXNyvRzqVnG2rJ+J4PPeHOh5Grl5ejaAw== X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: SN6PR10MB3022.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: a9eedd6a-f0e7-4345-da82-08dad22915d2 X-MS-Exchange-CrossTenant-originalarrivaltime: 29 Nov 2022 16:44:37.8314 (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: Veb6m7DiT+PSCx7TZ9nVmNTnm5cPZjREtp0bAb163ZxUqFTWT7ExJbUuQatAFXd7iNsPwVtZopSWJWNxltxx1Q== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY5PR10MB5937 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.219,Aquarius:18.0.895,Hydra:6.0.545,FMLib:17.11.122.1 definitions=2022-11-29_11,2022-11-29_01,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 bulkscore=0 suspectscore=0 phishscore=0 mlxscore=0 spamscore=0 adultscore=0 malwarescore=0 mlxlogscore=999 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2210170000 definitions=main-2211290093 X-Proofpoint-ORIG-GUID: 95AGOufnystP_fTVVyiQKyre-jYcUdi- X-Proofpoint-GUID: 95AGOufnystP_fTVVyiQKyre-jYcUdi- Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" From: "Liam R. Howlett" Inline the work of __vma_adjust() into vma_merge(). This reduces code size and has the added benefits of the comments for the cases being located with the code. Signed-off-by: Liam R. Howlett --- kernel/events/uprobes.c | 2 +- mm/filemap.c | 2 +- mm/mmap.c | 250 ++++++++++++++++------------------------ mm/rmap.c | 4 +- 4 files changed, 101 insertions(+), 157 deletions(-) diff --git a/kernel/events/uprobes.c b/kernel/events/uprobes.c index d9e357b7e17c..c5d5848e2c3e 100644 --- a/kernel/events/uprobes.c +++ b/kernel/events/uprobes.c @@ -1352,7 +1352,7 @@ static int delayed_ref_ctr_inc(struct vm_area_struct = *vma) } =20 /* - * Called from mmap_region/vma_adjust with mm->mmap_lock acquired. + * Called from mmap_region/vma_merge with mm->mmap_lock acquired. * * Currently we ignore all errors and always return 0, the callers * can't handle the failure anyway. diff --git a/mm/filemap.c b/mm/filemap.c index 08341616ae7a..e28fb229f6b4 100644 --- a/mm/filemap.c +++ b/mm/filemap.c @@ -97,7 +97,7 @@ * ->i_pages lock (__sync_single_inode) * * ->i_mmap_rwsem - * ->anon_vma.lock (vma_adjust) + * ->anon_vma.lock (vma_merge) * * ->anon_vma.lock * ->page_table_lock or pte_lock (anon_vma_prepare and various) diff --git a/mm/mmap.c b/mm/mmap.c index 8ca40efb82f9..be01ffb96ecf 100644 --- a/mm/mmap.c +++ b/mm/mmap.c @@ -800,133 +800,6 @@ int vma_shrink(struct vma_iterator *vmi, struct vm_ar= ea_struct *vma, return 0; } =20 -/* - * We cannot adjust vm_start, vm_end, vm_pgoff fields of a vma that - * is already present in an i_mmap tree without adjusting the tree. - * The following helper function should be used when such adjustments - * are necessary. The "insert" vma (if any) is to be inserted - * before we drop the necessary locks. - */ -int __vma_adjust(struct vma_iterator *vmi, struct vm_area_struct *vma, - unsigned long start, unsigned long end, pgoff_t pgoff, - struct vm_area_struct *expand) -{ - struct mm_struct *mm =3D vma->vm_mm; - struct vm_area_struct *remove2 =3D NULL; - struct vm_area_struct *remove =3D NULL; - struct vm_area_struct *next =3D find_vma(mm, vma->vm_end); - struct vm_area_struct *orig_vma =3D vma; - struct file *file =3D vma->vm_file; - bool vma_changed =3D false; - long adjust_next =3D 0; - struct vma_prepare vma_prep; - - if (next) { - int error =3D 0; - - if (end >=3D next->vm_end) { - /* - * vma expands, overlapping all the next, and - * perhaps the one after too (mprotect case 6). - * The only other cases that gets here are - * case 1, case 7 and case 8. - */ - if (next =3D=3D expand) { - /* - * The only case where we don't expand "vma" - * and we expand "next" instead is case 8. - */ - VM_WARN_ON(end !=3D next->vm_end); - /* - * we're removing "vma" and that to do so we - * swapped "vma" and "next". - */ - VM_WARN_ON(file !=3D next->vm_file); - swap(vma, next); - remove =3D next; - } else { - VM_WARN_ON(expand !=3D vma); - /* - * case 1, 6, 7, remove next. - * case 6 also removes the one beyond next - */ - remove =3D next; - if (end > next->vm_end) - remove2 =3D find_vma(mm, next->vm_end); - - VM_WARN_ON(remove2 !=3D NULL && - end !=3D remove2->vm_end); - } - - /* - * If next doesn't have anon_vma, import from vma after - * next, if the vma overlaps with it. - */ - if (remove !=3D NULL && !next->anon_vma) - error =3D dup_anon_vma(vma, remove2); - else - error =3D dup_anon_vma(vma, remove); - - } else if (end > next->vm_start) { - /* - * vma expands, overlapping part of the next: - * mprotect case 5 shifting the boundary up. - */ - adjust_next =3D (end - next->vm_start); - VM_WARN_ON(expand !=3D vma); - error =3D dup_anon_vma(vma, next); - } else if (end < vma->vm_end) { - /* - * vma shrinks, and !insert tells it's not - * split_vma inserting another: so it must be - * mprotect case 4 shifting the boundary down. - */ - adjust_next =3D -(vma->vm_end - end); - VM_WARN_ON(expand !=3D next); - error =3D dup_anon_vma(next, vma); - } - if (error) - return error; - } - - if (vma_iter_prealloc(vmi, vma)) - return -ENOMEM; - - vma_adjust_trans_huge(orig_vma, start, end, adjust_next); - - init_multi_vma_prep(&vma_prep, vma, adjust_next ? next : NULL, remove, - remove2); - VM_WARN_ON(vma_prep.anon_vma && adjust_next && next->anon_vma && - vma_prep.anon_vma !=3D next->anon_vma); - - vma_prepare(&vma_prep); - - if (start < vma->vm_start || end > vma->vm_end) - vma_changed =3D true; - - vma->vm_start =3D start; - vma->vm_end =3D end; - vma->vm_pgoff =3D pgoff; - - if (vma_changed) - vma_iter_store(vmi, vma); - - if (adjust_next) { - next->vm_start +=3D adjust_next; - next->vm_pgoff +=3D adjust_next >> PAGE_SHIFT; - if (adjust_next < 0) { - WARN_ON_ONCE(vma_changed); - vma_iter_store(vmi, next); - } - } - - vma_complete(&vma_prep, vmi, mm); - vma_iter_free(vmi); - validate_mm(mm); - - return 0; -} - /* * If the vma has a ->close operation then the driver probably needs to re= lease * per-vma resources, so we don't attempt to merge those. @@ -1053,7 +926,7 @@ can_vma_merge_after(struct vm_area_struct *vma, unsign= ed long vm_flags, * It is important for case 8 that the vma NNNN overlapping the * region AAAA is never going to extended over XXXX. Instead XXXX must * be extended in region AAAA and NNNN must be removed. This way in - * all cases where vma_merge succeeds, the moment vma_adjust drops the + * all cases where vma_merge succeeds, the moment vma_merge drops the * rmap_locks, the properties of the merged vma will be already * correct for the whole merged range. Some of those properties like * vm_page_prot/vm_flags may be accessed by rmap_walks and they must @@ -1063,6 +936,12 @@ can_vma_merge_after(struct vm_area_struct *vma, unsig= ned long vm_flags, * or other rmap walkers (if working on addresses beyond the "end" * parameter) may establish ptes with the wrong permissions of NNNN * instead of the right permissions of XXXX. + * + * In the code below: + * PPPP is represented by *prev + * NNNN is represented by *mid (and possibly equal to *next) + * XXXX is represented by *next or not represented at all. + * AAAA is not represented - it will be merged or the function will return= NULL */ struct vm_area_struct *vma_merge(struct vma_iterator *vmi, struct mm_struc= t *mm, struct vm_area_struct *prev, unsigned long addr, @@ -1073,11 +952,19 @@ struct vm_area_struct *vma_merge(struct vma_iterator= *vmi, struct mm_struct *mm, struct anon_vma_name *anon_name) { pgoff_t pglen =3D (end - addr) >> PAGE_SHIFT; + pgoff_t vma_pgoff; struct vm_area_struct *mid, *next, *res =3D NULL; + struct vm_area_struct *vma, *adjust, *remove, *remove2; int err =3D -1; bool merge_prev =3D false; bool merge_next =3D false; + bool vma_expanded =3D false; + struct vma_prepare vp; + unsigned long vma_end =3D end; + long adj_next =3D 0; + unsigned long vma_start =3D addr; =20 + validate_mm(mm); /* * We later require that vma->vm_flags =3D=3D vm_flags, * so this tests vma->vm_flags & VM_SPECIAL, too. @@ -1095,13 +982,17 @@ struct vm_area_struct *vma_merge(struct vma_iterator= *vmi, struct mm_struct *mm, VM_WARN_ON(mid && end > mid->vm_end); VM_WARN_ON(addr >=3D end); =20 - /* Can we merge the predecessor? */ - if (prev && prev->vm_end =3D=3D addr && - mpol_equal(vma_policy(prev), policy) && - can_vma_merge_after(prev, vm_flags, - anon_vma, file, pgoff, - vm_userfaultfd_ctx, anon_name)) { - merge_prev =3D true; + if (prev) { + res =3D prev; + vma =3D prev; + vma_start =3D prev->vm_start; + vma_pgoff =3D prev->vm_pgoff; + /* Can we merge the predecessor? */ + if (prev->vm_end =3D=3D addr && mpol_equal(vma_policy(prev), policy) + && can_vma_merge_after(prev, vm_flags, anon_vma, file, + pgoff, vm_userfaultfd_ctx, anon_name)) { + merge_prev =3D true; + } } /* Can we merge the successor? */ if (next && end =3D=3D next->vm_start && @@ -1111,32 +1002,85 @@ struct vm_area_struct *vma_merge(struct vma_iterato= r *vmi, struct mm_struct *mm, vm_userfaultfd_ctx, anon_name)) { merge_next =3D true; } + + remove =3D remove2 =3D adjust =3D NULL; /* Can we merge both the predecessor and the successor? */ if (merge_prev && merge_next && - is_mergeable_anon_vma(prev->anon_vma, - next->anon_vma, NULL)) { /* cases 1, 6 */ - err =3D __vma_adjust(vmi, prev, prev->vm_start, - next->vm_end, prev->vm_pgoff, prev); - res =3D prev; - } else if (merge_prev) { /* cases 2, 5, 7 */ - err =3D __vma_adjust(vmi, prev, prev->vm_start, - end, prev->vm_pgoff, prev); - res =3D prev; + is_mergeable_anon_vma(prev->anon_vma, next->anon_vma, NULL)) { + remove =3D mid; /* case 1 */ + vma_end =3D next->vm_end; + err =3D dup_anon_vma(res, remove); + if (mid !=3D next) { /* case 6 */ + remove2 =3D next; + if (!remove->anon_vma) + err =3D dup_anon_vma(res, remove2); + } + } else if (merge_prev) { + err =3D 0; /* case 2 */ + if (mid && end > mid->vm_start) { + err =3D dup_anon_vma(res, mid); + if (end =3D=3D mid->vm_end) { /* case 7 */ + remove =3D mid; + } else { /* case 5 */ + adjust =3D mid; + adj_next =3D (end - mid->vm_start); + } + } } else if (merge_next) { - if (prev && addr < prev->vm_end) /* case 4 */ - err =3D __vma_adjust(vmi, prev, prev->vm_start, - addr, prev->vm_pgoff, next); - else /* cases 3, 8 */ - err =3D __vma_adjust(vmi, mid, addr, next->vm_end, - next->vm_pgoff - pglen, next); res =3D next; + if (prev && addr < prev->vm_end) { /* case 4 */ + vma_end =3D addr; + adjust =3D mid; + adj_next =3D -(vma->vm_end - addr); + err =3D dup_anon_vma(res, adjust); + } else { + vma =3D next; /* case 3 */ + vma_start =3D addr; + vma_end =3D next->vm_end; + vma_pgoff =3D next->vm_pgoff; + err =3D 0; + if (mid !=3D next) { /* case 8 */ + remove =3D mid; + err =3D dup_anon_vma(res, remove); + } + } } =20 - /* - * Cannot merge with predecessor or successor or error in __vma_adjust? - */ + /* Cannot merge or error in anon_vma clone */ if (err) return NULL; + + if (vma_iter_prealloc(vmi, vma)) + return NULL; + + vma_adjust_trans_huge(vma, vma_start, vma_end, adj_next); + init_multi_vma_prep(&vp, vma, adjust, remove, remove2); + VM_WARN_ON(vp.anon_vma && adjust && adjust->anon_vma && + vp.anon_vma !=3D adjust->anon_vma); + + vma_prepare(&vp); + if (vma_start < vma->vm_start || vma_end > vma->vm_end) + vma_expanded =3D true; + + vma->vm_start =3D vma_start; + vma->vm_end =3D vma_end; + vma->vm_pgoff =3D vma_pgoff; + + if (vma_expanded) + vma_iter_store(vmi, vma); + + if (adj_next) { + adjust->vm_start +=3D adj_next; + adjust->vm_pgoff +=3D adj_next >> PAGE_SHIFT; + if (adj_next < 0) { + WARN_ON(vma_expanded); + vma_iter_store(vmi, next); + } + } + + vma_complete(&vp, vmi, mm); + vma_iter_free(vmi); + validate_mm(mm); khugepaged_enter_vma(res, vm_flags); =20 if (res) diff --git a/mm/rmap.c b/mm/rmap.c index 2ec925e5fa6a..3685390c36a7 100644 --- a/mm/rmap.c +++ b/mm/rmap.c @@ -1230,7 +1230,7 @@ void page_add_anon_rmap(struct page *page, if (unlikely(PageKsm(page))) unlock_page_memcg(page); =20 - /* address might be in next vma when migration races vma_adjust */ + /* address might be in next vma when migration races vma_merge */ else if (first) __page_set_anon_rmap(page, vma, address, !!(flags & RMAP_EXCLUSIVE)); @@ -2556,7 +2556,7 @@ void hugepage_add_anon_rmap(struct page *page, struct= vm_area_struct *vma, =20 BUG_ON(!PageLocked(page)); BUG_ON(!anon_vma); - /* address might be in next vma when migration races vma_adjust */ + /* address might be in next vma when migration races vma_merge */ first =3D atomic_inc_and_test(compound_mapcount_ptr(page)); VM_BUG_ON_PAGE(!first && (flags & RMAP_EXCLUSIVE), page); VM_BUG_ON_PAGE(!first && PageAnonExclusive(page), page); --=20 2.35.1 From nobody Fri Sep 19 02:32:03 2025 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 61C73C433FE for ; Tue, 29 Nov 2022 16:49:11 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S236264AbiK2QtJ (ORCPT ); Tue, 29 Nov 2022 11:49:09 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41734 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S236267AbiK2Qra (ORCPT ); Tue, 29 Nov 2022 11:47:30 -0500 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id B09F66CA2A for ; Tue, 29 Nov 2022 08:45:31 -0800 (PST) Received: from pps.filterd (m0246627.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 2ATGPi84017341; Tue, 29 Nov 2022 16:45:24 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : references : in-reply-to : content-type : content-transfer-encoding : mime-version; s=corp-2022-7-12; bh=7KHVMi1t+M3SCAsyGgOyuruydr2QaleFx1gZsEpJNpY=; b=O5Y7pIAYS/VK+9fDEn6fugDmhzSB3qJtiWH0a8XwfmddG0DiFDk1Rnvz6QmR4ty2E8rV R8H8O8r7FBhAGpqR7NXJ4RR54k55eWUhl54eczKn5jfrVuRkAsoXDVSin9+BifrUKiYO g902Zg3v8nTjgI7O6SxeKOvNioa1AS+C4xu0c4QepuvpLiN/tFErGf852Oxc4d6/tTGu yuzaCYJ6K22mzrMqYRxQF34BmZLahqYEO9LTGjJb+vy0cGKmIui+k/y7rQ9Ec1bjwCn7 SEkuf/xLVB1knNtDuU62Z3fLByf2KRkGdUE2TG+b9mOyrOT/HPlcvDXRvhsxGdqtp/gK lg== Received: from phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta02.appoci.oracle.com [147.154.114.232]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3m3xht6hr1-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 29 Nov 2022 16:45:19 +0000 Received: from pps.filterd (phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (8.17.1.5/8.17.1.5) with ESMTP id 2ATFn6v1028010; Tue, 29 Nov 2022 16:45:19 GMT Received: from nam02-sn1-obe.outbound.protection.outlook.com (mail-sn1nam02lp2041.outbound.protection.outlook.com [104.47.57.41]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 3m3987f3xj-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 29 Nov 2022 16:45:19 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=hfvpnB1pPwKlWlAbYzCESaQguddpmlZu1ND8ZgHMCiE+WxwJ+SC3aZ0TYmxkre6ESYL69yIOe3Z/EPVYjHL3jcRuSJWbgyr8+x2/1T7UpRAlr5XcKKi364QCZkua6x8yNKpc7qYkEn8it/gouux2QqkJwdRbHSTH1eDqONtQ7zh+5hgQL4UFOFo0hpuU8WX9YHpszw6d7teR7FuJ+rOjyo+XFI5I62bMC2PpMipOjP+UDREbYQQ2US4zk5Tx/oJqnLcMLPZQXWYXZNbBjxSQlDTTbuF7ncTdwCF6D1KVeW4beJKJnQcbil7Frg2pY/Jv0UOE9W0211T3k9Q/Jh/BVw== 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=7KHVMi1t+M3SCAsyGgOyuruydr2QaleFx1gZsEpJNpY=; b=SoPj1+MhXjJ8QxWJ8mlZh3gorn56Ivc2D3DwxMN6aRX728DiQRaWQhXAyt7o9rFJbzY4vSPwBGHjUdofVTRX/IDVs1cYQSmGarkpCXmLuqtc4JA7LaObmr7TKK1TLEryACd55Oh+plZ53vFz5/jqPEoqGaFOs9BJjyA6iSyW549EHsj0qI4KZ3M4c053EqjhJdhWU7clUnJC1iNryNaYx7Uzt6DdeVBnExRIKCKFrbquThnZow5KRs2pEuFKXJ7P8OypnKHKgR0AGgVUenoNOgpptaCjVeUEAjY/pH+s40IEnBu/nsBGXaqZUoOciL7uYCNQrD1/t7J0Iqw705pNjw== 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=7KHVMi1t+M3SCAsyGgOyuruydr2QaleFx1gZsEpJNpY=; b=lALT1rvu5A4xr551AX6DZFNkHSII7GcKE8EsTqV4ObXwczAjshb5xzJ9UDdYkrx5aYcZb+L8l5NRNEUv0qKqA/of+Y0nC2IFa5XEu734TH21vk1GwnvWuxmvLLRLCVhXr+HwkpR4uR9iFAn3LE/wqS26LcWifcdoq8Im5FNHrmI= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by CY5PR10MB5937.namprd10.prod.outlook.com (2603:10b6:930:2e::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5857.18; Tue, 29 Nov 2022 16:45:13 +0000 Received: from SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::a02:2ac8:ee3e:682]) by SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::a02:2ac8:ee3e:682%4]) with mapi id 15.20.5857.022; Tue, 29 Nov 2022 16:45:13 +0000 From: Liam Howlett To: "maple-tree@lists.infradead.org" , "linux-mm@kvack.org" , "linux-kernel@vger.kernel.org" , Andrew Morton CC: Liam Howlett , Liam Howlett Subject: [PATCH 43/43] vma_merge: Set vma iterator to correct position. Thread-Topic: [PATCH 43/43] vma_merge: Set vma iterator to correct position. Thread-Index: AQHZBBHeQRDugZrqUUmfQ8gAkkJUNA== Date: Tue, 29 Nov 2022 16:44:38 +0000 Message-ID: <20221129164352.3374638-44-Liam.Howlett@oracle.com> References: <20221129164352.3374638-1-Liam.Howlett@oracle.com> In-Reply-To: <20221129164352.3374638-1-Liam.Howlett@oracle.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-mailer: git-send-email 2.35.1 x-ms-publictraffictype: Email x-ms-traffictypediagnostic: SN6PR10MB3022:EE_|CY5PR10MB5937:EE_ x-ms-office365-filtering-correlation-id: 353669cf-5ce1-4559-246a-08dad229161f x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: Rfg48Ud/P7IIfUP5URbfkOCNGIn8ySDCVYQI/OSB1DvXzUp+80rH9PkO+V93DTFs7EKCye88Dt4Z5xrSuCCnc9x46odaLuQbVxUY/7b+YJ62AE9PuZdF5PTmH42+UnpQ2RCuBFjzBpDgKoL3FF3ZnaNQV7iYS2/l7bKylaaDyqzC/xMnuiKfvKtT10IfDR/bzJKI8UAXpWHDrmwQpmyugespET56xUwk6PzJQIqEIGsoW/sPQCpiVPpX5p2wVHAh0bbjxvwZAXqfgnzH4FtBk5fgJAFshVzMddidHxEk5pGsMESteGfxbLpCeA5O6ShzcrmN5Cs3iWK6dNdg1afxhdNr2ezVINzxxMmnIUTKBxOkjMx/vSBXVc3pnvyh0zrFLAeJtiVduVwPycunIYgU8vvmtk+bA71jpzjPG+gBMsMihdc1us+V2t0EQuCfZsB04/cd2+L7cgSMFEXpvuijg9fQYsxwMSB8tm+Gkoz8lDJvAfFA4qLrvZ2vhdMLGtZaY5LSqcrCP+n4ih+CHlw3NPp7E4r2Hc38TteB5H4SsyW8aSrgDCyFWLqGGbmpg1EfoBI3WDaWeFNxm83LtJcfbRsgf4JF5X5y08R7qaujWVPzac2qdoQMf9o9Wi5nKeQzFSDoRNEQYn3cEykXjdtOHZyVaRW2qoyapRXqEuTd9BltKSHfr5q6Dm00prilKS4n/ZP0sxatRYWeoZVfH4KIYQ== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SN6PR10MB3022.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230022)(376002)(346002)(39860400002)(396003)(366004)(136003)(451199015)(8676002)(66446008)(66946007)(86362001)(66556008)(66476007)(4326008)(64756008)(91956017)(2906002)(76116006)(110136005)(54906003)(41300700001)(38100700002)(122000001)(6512007)(83380400001)(186003)(8936002)(1076003)(36756003)(4744005)(2616005)(316002)(5660300002)(107886003)(26005)(44832011)(6666004)(6486002)(71200400001)(478600001)(6506007)(38070700005);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?Q?WkISHko2jHxQp5ZPsLiNjYq6iMxO0DQXjfnHX6i34cXBTfaCjcf360CF1i?= =?iso-8859-1?Q?4QoDemPGqfsSB2F66H8QnVlTBgvve/m1z8QfbV/FMX8RMx3eOBMhrq1aH/?= =?iso-8859-1?Q?3ks72jZ+agMzn0INaE2my59g44oGyd8I1kZuY5oHehirSoZTO+0ezRGJ8b?= =?iso-8859-1?Q?J+5HE1w2faCO7AoSClKBJoES+kuSTRoQ28BkIFqxhfpnFcE1kgiK6Zw0n0?= =?iso-8859-1?Q?UHuZ6sd2aJoL31awqxghXyOjcfm4VezSxVJ+XMmQe2LO+oRMjhBYLyAHoY?= =?iso-8859-1?Q?xDGXEKzH9XMO2aRhVpadhWNBxwRrlsDq1eaojz57TobBcR1BRTOqkZvSRY?= =?iso-8859-1?Q?HAjZQjumnjhkUtTm4Zx2s9r0+CH3yIMIog4Q0FmHUdK5LR3/iYMQtv/oNs?= =?iso-8859-1?Q?jMxHLOjlHzDOfx2UKITjX3fTBCMkApaY2/KDPlRJHsgf6301L32hXPHzXJ?= =?iso-8859-1?Q?8WrpC/B+FXizhuhuSET3h4zgiF4RBA89vQUZs1xGI1seNJIhe4zY7eeLNy?= =?iso-8859-1?Q?xnYPGsavRhDZGV9OPE++CQBGOl7IstfGWy3YHBon5qsaIp4meTLb5HCiWs?= =?iso-8859-1?Q?AdS0Nbs656DOxrk2m/yihCBe6v1BuXo1DxKAa5JMrqH+sUZthbro8HLqSD?= =?iso-8859-1?Q?gIGQ5mTUhr3yW+NMzsWTc0KDh4DCAQF1TxL/8BJCrewQe0Zgeg+cE4Nlrq?= =?iso-8859-1?Q?q9ieqF/tvT4KFwVUPHTfT9C3j3YAm5qxrUmq/ZKlZ5E/FhlI53IKj3i9CW?= =?iso-8859-1?Q?RspETtFPGmB0bZZWQxgtlDGGSqkWYIsLYpM30W3DHYhjTjvbMPsD6bx3S2?= =?iso-8859-1?Q?C5H42Ed4L7KByRTHppOPSXSBT5uTDWokSD/vmagOL5sBW6Lgje4BGW9DsA?= =?iso-8859-1?Q?m999c+qpZKEJ3bZHawX8dqHcp/TG7mXaJoKwa2DbS9pd/CJC53YvWi9Pub?= =?iso-8859-1?Q?n2cnIGI0XemEKuL6XT2bHEEuMrhQwn1J1YqMwxzOI/+FKCTsYk1ex5AY9E?= =?iso-8859-1?Q?cvbg7ZsUZWJP+RTL3an9+SFIQyo9R3OlyOciFQ3NaFVpyjYkP+n7X0W7so?= =?iso-8859-1?Q?Uacm6myy5DO5uDMl6Y3m7QBe/7h01DA0TJ3ZR4u4hUSzDLko/ZXqI6Eil+?= =?iso-8859-1?Q?9j/h5+jTFjajXl6GrnRzGKL3+ry/fwzUw+zcTSQm+QynoJ7lYizk41g85T?= =?iso-8859-1?Q?Qz5sDpyEXpUOG60VpQE59xvzaOLGfQ4zDvt1aYFC7BcBE+xqjuv7YT6UJZ?= =?iso-8859-1?Q?Gb1/9QHPUHmPuQlDvNkAfFhYvQuwPwYbxDpALAHgnDU0E1srY38FK9S2OG?= =?iso-8859-1?Q?JigH6/rg0iFM+ifJZ8NPIyZVJk9lxJyV/IojWDmG3d+0c/ETGfnuj8aFij?= =?iso-8859-1?Q?MMtasra89hSEof/Sniy8hVond06a3sKZaRtHWLWKhqGkcrE02BxSE42RAb?= =?iso-8859-1?Q?UET1MjFmr3VwXZWUMA0WH9sGF6IEhWPqxChPjjVjguOaXNjRUL2sH2bu+3?= =?iso-8859-1?Q?4ljobmAIuNfya3vTcMDZ0vdPNuLSUO/UEcT2hfCrCo24aLbrvBG24JD+m/?= =?iso-8859-1?Q?exhryFu2VJPQnWbw2SVKjcBp+IcQXZ8kgqa9w6QUKwIKh2X/PAd2kTsOlq?= =?iso-8859-1?Q?Ev4NEaa5mh68iDSIWEEwQ2xrn6jA9u/9wkWJc8Qm6ClnHZRgg2XP9JNA?= =?iso-8859-1?Q?=3D=3D?= Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: odlxoAfQSPbOcV1Xk2Ro3WuX8WiK7giz01Ck7zP59uN1m1dOZZV6Wq/ZCi6vlqTLNC5cYuvapOQtZkzJ1AiVFiIheL19E4X9vNXoQSyayUAU/cI/bFMJ+Jh9+09yVrCaBrU7BADWRd/VAMb6k81FOn8zd0elc6nR2yXegebyLvCKXTGQvzrP58v2dQdfmJs8qDafoKFcEsfcTmieFe5K/wx+sVlTRafjvenENLafmkONf7QDnPCRaocCy5lyVJPP7l2RfRY+h8wpHR3vqiNgYUJA7W9lciTrRzGQU1o6lC19x2S66cKx1DgFGl/tmrVaNle/X7EMm015ZcV1EB6zpwIYQTyUEZGjzjreQyMI7JNu+twYhCd6e0R3R9wWk2N1ViMewQgtDUH2l6fuS1+cUTtoUBrx/NpSEWZno04FN7wi+1/FqUQO2GgN2LsxwICG3qCdbHB2MBMsD8YbtRr3MkifWsw2PVju8KjIYikw0XD1W9Jo6K658TUwPV1xJXFIqyUe674nL1GYS5mTumdFj55+0qNVnoCXMjPDnXhJaYpfJvaPhO7Upj4CNtMeWC2SfoZK89t4bK3Ci0MRjNZvJdYSTImYWPv06zylXzdf4XZ1+6bx420UKwNUnn0gMrPiFrX1ZJ1iuhZCkQgir5BMLIRC5ShKbuEkpQ92ySarWv9pzAWmZ4D333JEwvY2w9m/QaLuTZA4MDx7wsJbOQ6JbN0xED83vUw430NrTAsU+FhvSJJO/PerRRdObwtVZLUP9/kCO+G9ayjZc5NN9+9LfpLstFpxZ0Y0/K4xJ6yM6XTLau8D4oTu2rwF/ER3ZYDoPeAMpIkgWavPgSCaJKlqQ8kxfmNxXk+35iPB1PNxlFpvL+OR50bl9KrO4t0bWsu7RNrw2L+jG7Jna3PzUzeQjQ== X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: SN6PR10MB3022.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 353669cf-5ce1-4559-246a-08dad229161f X-MS-Exchange-CrossTenant-originalarrivaltime: 29 Nov 2022 16:44:38.1439 (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: wNSC3ACBQYKEV3dkq3uyTmt/X0lflFx92t/6gJyDj/naoXyUXvW0dOGhx4QLikfshtmnyYrMMa9RHxcwKV33kg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY5PR10MB5937 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.219,Aquarius:18.0.895,Hydra:6.0.545,FMLib:17.11.122.1 definitions=2022-11-29_11,2022-11-29_01,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 bulkscore=0 suspectscore=0 phishscore=0 mlxscore=0 spamscore=0 adultscore=0 malwarescore=0 mlxlogscore=984 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2210170000 definitions=main-2211290093 X-Proofpoint-GUID: 6MYWNRrWKV0Zx7-heKHFeRCtPkqJcHrY X-Proofpoint-ORIG-GUID: 6MYWNRrWKV0Zx7-heKHFeRCtPkqJcHrY Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" From: "Liam R. Howlett" When merging the previous value, set the vma iterator to the previous slot. Don't use the vma iterator to get the next/prev so that it is in the correct position for a write. Signed-off-by: Liam R. Howlett --- mm/mmap.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/mm/mmap.c b/mm/mmap.c index be01ffb96ecf..e14d8bc9c59f 100644 --- a/mm/mmap.c +++ b/mm/mmap.c @@ -992,6 +992,7 @@ struct vm_area_struct *vma_merge(struct vma_iterator *v= mi, struct mm_struct *mm, && can_vma_merge_after(prev, vm_flags, anon_vma, file, pgoff, vm_userfaultfd_ctx, anon_name)) { merge_prev =3D true; + vma_prev(vmi); } } /* Can we merge the successor? */ @@ -1083,9 +1084,6 @@ struct vm_area_struct *vma_merge(struct vma_iterator = *vmi, struct mm_struct *mm, validate_mm(mm); khugepaged_enter_vma(res, vm_flags); =20 - if (res) - vma_iter_set(vmi, end); - return res; } =20 --=20 2.35.1