From nobody Tue Sep 16 05:49:14 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 78052C4708E for ; Thu, 5 Jan 2023 19:16:16 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235438AbjAETQO (ORCPT ); Thu, 5 Jan 2023 14:16:14 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:43736 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S234806AbjAETQG (ORCPT ); Thu, 5 Jan 2023 14:16:06 -0500 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 687E2201 for ; Thu, 5 Jan 2023 11:16:04 -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 305IUMWw002739; Thu, 5 Jan 2023 19:15:55 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=qk25lVnBrpk7KtPT0BQFxlZ0PhuJT7oHxJHUnKSQ8rSq1PyO1XZGk8kowukxqkGKOf/Z WGWVTbdWfOXYbzTDOHDqyiI/PJRRas8k5EhO8S/iqYRHyb8GCzjIMay5Fov0COqN4Z87 DY544lPwPStzqmVUusrclFHiP8vo1M6acH6FGXTfhsYdrnJpQNOmW47zEVO2XXDV9p6c 2ni6fx/20HNBQz1TDlT6/Kz7QFhvj+ckui4jYciwv16fPvVITUW6X5jS/GgpRaPRTxSz GQs97sWQKIAqlR6aRmcMpuCtQqjLlCkzx9hQ00ThtiOmD7hEyY8BLJMA8Dt9nelILaq+ iQ== Received: from phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta01.appoci.oracle.com [138.1.114.2]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3mtbp11pyj-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 05 Jan 2023 19:15:55 +0000 Received: from pps.filterd (phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (8.17.1.5/8.17.1.5) with ESMTP id 305I0WPD023380; Thu, 5 Jan 2023 19:15:54 GMT Received: from nam12-dm6-obe.outbound.protection.outlook.com (mail-dm6nam12lp2171.outbound.protection.outlook.com [104.47.59.171]) by phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 3mwept6kx6-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 05 Jan 2023 19:15:54 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=D0rrDUzaWZ6aJ9Qa5WQHztjSUuwDyVK56emfy84r/mp3vdz31p4GJ66tAp5xIzOjf5pqf1GIPH9nFd5pd9zPYifMBeKFFoTq93MluDWmu8GaV+9x+dhHZyOajhsSa0QYXFVOxouUSQAOsn/ceCEqjQ0M+NjYSKcCFD5WDQE6jc0vvhRTTie1ci+k167yTMODHa8W+NFKe+SYI7CRuoy+hLnHV348HatRQpNVYPcqsDEG88J2q9HvyCBcgUpp7v6b6pbKtfJ2/yJN+r76gDAro+srT/2Yxei5BQflCh/M2CkBzoNdXeMXNn8OFlNiDRDF/gctFekeqQddl1BkcbF09w== 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=obWLal72JHifAlZiBQZHxVUufT+4d0+ThsvUBV4NwDwKQpaQNbqYrcITcI5ZUjx91r7Jc9z0Nclx6zcdoNMHCtfYXgNhf6QzzeOOP77ACkx6pUFLgY2XqWfJkzHnQ1NzXzSOa6qdgNz7kKM/h0rO06oe0QQHf5y12ZJSn7JjC1amWxI+IVXQBzp6e0OcRueg+CGEUxupxFUll5zqpF8wvE8QyKxd28z+sr5knoBWDJIQ+d9/+JSRlgj5vf1i/3PSFR3H6+FbUutY/HRdNpcCBvMruABeROT0d7EoaKvC8maT38V0r5aOY/3CRaiCZEMCDfNLr9Iy4S6mcwqClwve5g== 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=HnVamv8OLeohzXWEeIWZNLcbejgVfYN4dK7/CX9yL8GiLds38RGYZJmzOI+srGvupnE5k8EbsqtBMtgwPijvFL9aPMJFEtjIl4XLOtp0C/qfwdZdScivS0y/xS4cKXWNU+Qu9aEtgf0hE9wLVZMelzevXXrTtOltJ5DJnPOy1A4= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by DS7PR10MB5231.namprd10.prod.outlook.com (2603:10b6:5:3b1::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5944.19; Thu, 5 Jan 2023 19:15:52 +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.5944.019; Thu, 5 Jan 2023 19:15:52 +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 v2 01/44] maple_tree: Add mas_init() function Thread-Topic: [PATCH v2 01/44] maple_tree: Add mas_init() function Thread-Index: AQHZITogFbBOR2K//0mHKkwW8mLvIw== Date: Thu, 5 Jan 2023 19:15:52 +0000 Message-ID: <20230105191517.3099082-2-Liam.Howlett@oracle.com> References: <20230105191517.3099082-1-Liam.Howlett@oracle.com> In-Reply-To: <20230105191517.3099082-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_|DS7PR10MB5231:EE_ x-ms-office365-filtering-correlation-id: 8476a4e6-9d3a-477d-fb3c-08daef514356 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: HvxcrhJq6iNrZQZw+DVAd1pN1QxlXJk+KR7z/FgbLsMWw5c6wYMAeEygQymzYM9N+Pdy1VCtxVyh5BDwjGDU0Orem6ZqdPKuEBKMIBRYhHXRCXoYcAh/4yTxkoGjBfKUeVTkH/2CmefC6hrKdjdHbesSOjXFlTPeU5npQyujnt+9ToeeBrD+xArrCEEac4cKZLVqhA6RBlogl+Una302HVqQyyTli2NfTXAOsds69xU4Lfboa5XAhbZrgPh6s/A/Poz5cP0VImk65jxQbkVwzcga24ysURLw/z/baLNj3PvLm6Z6Hm3knP50z4Rbgp/FUlHskLzjSLp554PCfgKC9Zek1MHTOZfBQvj/l44HOkuF1j04Erj9OSNwU4RjLWd21+Nl5hJQZWf8ML7sfExm8VMro5CwgtIVfThBlv6hQ/kiyTDCrxALfu5bD5CqnJFzDrXhMO9XUmKm0Hj/jvrwdkSPTPquVc3Ch6W+rxeG3sJm43HTlr9av+46p1NZESyRkwFD4wPU+O2+OqHCmhNm1wimFzTAA8TjHgWXs9u2gE4oxYp+igls4nA9K25M4lF3dYr0b4++js/hk0G5pqlNhdbVngGtFvq5gCNUabVoWIwe2rDDEvcTImr02zBYi1MAnquC6M8/NkpZdPypo0z5dRTWqV9z1sNtT62z66fdMfp69JOF8KsfYALdvLvaj6noQI0WeNsTPKxmxQ8gAOzN6g== 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)(366004)(39860400002)(136003)(346002)(376002)(451199015)(110136005)(316002)(54906003)(6486002)(186003)(26005)(71200400001)(107886003)(91956017)(64756008)(66446008)(2616005)(6506007)(4326008)(66476007)(76116006)(478600001)(41300700001)(44832011)(8936002)(5660300002)(66556008)(66946007)(6512007)(2906002)(8676002)(38100700002)(1076003)(122000001)(38070700005)(86362001)(36756003);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?Q?kqPjjaoCjD42JKdGkXNgarEBRqJ8cZaAxDhgBfENr1+/5fuoG0TAog8rUr?= =?iso-8859-1?Q?4//T6lu3DMua7mr2tiJAunEW82J3a1R9In+OJ4V6CPnrPyDoqMxHc9aXU1?= =?iso-8859-1?Q?2vFIO96rIxkyzLxI3+9bCZxAp7M0qr+LWH3jjEMfOyFGvl+86n5WMhjXPa?= =?iso-8859-1?Q?QxcDpvY7k9FcJciQRuGUIHCXezdbxL/akpu1F1DVO7TN2vtRi4VHDfrH++?= =?iso-8859-1?Q?8q1wLiuuP6UJp785s+hw196xgWU7DSbvTSvDvFYqkS0vCIpzZHdAGgidV/?= =?iso-8859-1?Q?WqYKUi7F8UrqrYV83l/vVyAJGlM5TRYP4Y60/Y90dP6t4hTrofYqJFOMQI?= =?iso-8859-1?Q?jG+9zc8szUICXUz7UQ/N3fQmX+kb+m6GJXz1MN0Q3JqNHJMzQrbt4YL26A?= =?iso-8859-1?Q?94CvqU6VUQ/UnmH8TR1KyQChfZPbasaC39UAkO82QXv/rBBqlhxIaidZ/c?= =?iso-8859-1?Q?MSejX9jPik3ycCdUlpG0/lUMYgnAsiLQi64h5dLBELjC2nsX5cuziZZ+me?= =?iso-8859-1?Q?qryRhoGUK+IP98idSlan8woexaphtouCBpU2gocG/Rqc3HZQPm+u4vVTOK?= =?iso-8859-1?Q?tUDINewd0J8kqfikSPPA2zDpGEsBgj6iuuWmSx7egeCI/VUgm7brhnT7pN?= =?iso-8859-1?Q?aTDN544TQIQ+jKRuo1bJBPRhvAK42s+zNPJyLdAeXp1vGpj79QJCpTqyg+?= =?iso-8859-1?Q?0mtZA/DL/ptqjC2chUuTVp1N4/Iqx7VP97pNFF76PXG5ysp/Jcpv83XkTq?= =?iso-8859-1?Q?RsLJGTZCJkcGl0Wi+p9tfes/Nv+RM/YOc8I7Tq/jp39jXxwBFbpm9XNRYv?= =?iso-8859-1?Q?/iGr9pKskoeTBApsjIUd121NWzk6vYa/KLfrq/B4H6OYUf5I4+t4kvXsmG?= =?iso-8859-1?Q?g51yDm+RiINS6tKXOmeLMcSF/6zK4cpB6ZDOb0HPsiAfpuke9gUF50xAMM?= =?iso-8859-1?Q?zrNR5yJi4uK/Yok2JEGXUZ1QG00QnX2PomXgVse1dgQyD4OT/cDdRz0Eqo?= =?iso-8859-1?Q?SXsDwg63KRAyak5/52OGLhaStyQmSUPs81lwhGsQYjQ6+QfhoE5tj9dSj0?= =?iso-8859-1?Q?+Ra6Vk6Nn671wqUuzxe7dXRJn2Q7WJ/Kp83wOr2ibsdMtQD+RUxLZtl9nz?= =?iso-8859-1?Q?NrdN3h2tGZyJcPoGuJV1YmE/dWtU+2v4zEIHa5navwanhYpIV+lC/NU2wL?= =?iso-8859-1?Q?MINQv8/uqtsdmp03I+TrU9iL3NwIHS0OLfTtxXFSJbHV3ws2GHGkUaA/WG?= =?iso-8859-1?Q?srh5rb86avF/pCuP4tfirwrgPrb6jdQMM81JUAPo/RQ8ko8/yERGIlZb/c?= =?iso-8859-1?Q?Gn+vV3dJjxobmOeydi9TrFvwUAbxyRDl6JE85w1LJeAKjKvvs1gYX7Kerr?= =?iso-8859-1?Q?rNK1f7plTXsm6HAwUQxMJAcXWECtRiIlDBe+CP34cX/DxTbV3DCi8uk/uG?= =?iso-8859-1?Q?l2LPuvV0csde9b0IP0XTOUVPwcnFc3xpHZ5P1sS/xJjXdl1jjty/wq8bbC?= =?iso-8859-1?Q?kLLhIaj76p12lNt8l7zOcv55r8iCXT2O3A9fp710dFagMTwS9FD6DlSfob?= =?iso-8859-1?Q?MUXwpi4Di2rICPwpuhtBhHN8O83RB2WO59gOwI4iZuC01dZqqKq+E9/j/o?= =?iso-8859-1?Q?jiGcERTOItAGYCI+3h5DUcrzGJoh4nTL+WCwMH8wqbAD05ZaXudFTHuA?= =?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: Ym8UOJy4DYJcWHZalnILqsnwuiuaBu08I+lVNZlqgkPT3r1itjFnzcYz3pw8wjQFpyxU9YZVe0K5fDcnGmIx8DTXctvBUQUhztnD8ZOyDyKp0o0omqH+29Xr6qqGfAR5EtizW01C1Q8qbKZRPIvqkwjoi7zltaAMSoeCzi5/ZO1X1kKtksDpzu6UbPYBZm4fMZ56feqDbM4vgoOxmt1+/DM5dExGUgAGfPLmlIh+6OdWTxYvrTm8xQADT2ujr7FUhGQT934nn0N1t0WGWFQOw8viIGvoMH5wq1qBzUAZeVN/cyu+S9vzo3LkJ2UDhogb9yBZlaX/2+rM44qTz2st5Nk62s1bL+eH5BHHOXf4fio9a+Jf7Bbn9c1Jz1B5K9MqMGnzqMBpGMPcYRvds18NuH6DKiL5cSSGBMFOoPKmsrb+i689DICJDdIE20b1mM9dDrOeqV60iWhyzbS3QUwiMkEOfaC3EknpgWEJkbeVyw4lDS8+EUIPtwG5sN9UySd20W30Nc8XFjzYgvO1991/3i6iIMEMNuPyxAd1OFIthzx41quKY9DfenXzXkwthXVt4j/RaFfT09UQsBzo1EKji3Z+L2G8aoj1KSIwPza1fgQX+fid6m4cQFJVoCGlIOblaBb8zZ4f5PaUlqCOVRdbs2c+mMGbRFiLtIzwrp8FoEbiaiWtjPr62FsjIFgtqMys4ZDsDXrj9Dpn41NVNg8+fGRmTLBd2r7MsN98aSfspPWA5EkrFL4xl0iR64gqyhjdT9x44qPibpYRqZV1BseHH0/cMenvrhyza2YAU8vxFu6BXkul86COvC8zb0RfaaMWHJNyJc9QhUN6R+224r6Scn/xD8qLvq+4KoXRVeUIMd8haxoBrvnPPnq5qn5n2c/ro5fcnEaDC4EbvsO/aKypNw== 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: 8476a4e6-9d3a-477d-fb3c-08daef514356 X-MS-Exchange-CrossTenant-originalarrivaltime: 05 Jan 2023 19:15:52.7041 (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: ThMcNq4DnJWzxq1XN5OJVfy6NWLjGidI1QyUuB4mNgboqM/R6SblPzg6zADbaGkWf6mBzNYAh9QuHi6kfY/3iQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS7PR10MB5231 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.205,Aquarius:18.0.923,Hydra:6.0.545,FMLib:17.11.122.1 definitions=2023-01-05_10,2023-01-05_01,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 adultscore=0 suspectscore=0 mlxlogscore=972 spamscore=0 bulkscore=0 phishscore=0 mlxscore=0 malwarescore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2212070000 definitions=main-2301050152 X-Proofpoint-GUID: yWgYLg3jHV8dMKNRW73R75Ln3Au33cjX X-Proofpoint-ORIG-GUID: yWgYLg3jHV8dMKNRW73R75Ln3Au33cjX 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 Tue Sep 16 05:49:14 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 675BDC3DA7A for ; Thu, 5 Jan 2023 19:16:21 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235460AbjAETQU (ORCPT ); Thu, 5 Jan 2023 14:16:20 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:43738 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S234959AbjAETQG (ORCPT ); Thu, 5 Jan 2023 14:16:06 -0500 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 7C98DC7E for ; Thu, 5 Jan 2023 11:16:04 -0800 (PST) Received: from pps.filterd (m0333521.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 305ITxBH029125; Thu, 5 Jan 2023 19:15:55 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=+7lb3T9LpYIF6+7aVeQjtMBFxEGRNgAAXhAWR5tPalk=; b=RyLxX5L466s4dDfqEaTsCMJiOHA4z4YLZ7B2PwG6UInejebP5G7p/EqLHGXu/LbAseYh kLNHbVVcQ0U9mctWiQXaNi01/4Ls7hRLlUrRPJziH9ebzAYIB1hl5Dv2SiuU4rKhAXEF dHNmgEG3exYdSx7eqANw6McbmUbBItuELx2F3pMYUyMYd6LPy7BlMnIdNR4KSgzvtHWP yngigmBXj23k5cXor4ooCv6MZRjZVhQTRByKPThQ19lHWvuRxVMT4hq//Pq5gGXfsZwl qiK2nSCu1vJn+WfSn/otmN9ISXQtC540mJgifvfpM2vNfZwSpAonXdnsqKU1dT2jWwV0 IQ== Received: from phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta01.appoci.oracle.com [138.1.114.2]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3mtc0asrk8-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 05 Jan 2023 19:15:55 +0000 Received: from pps.filterd (phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (8.17.1.5/8.17.1.5) with ESMTP id 305I0WPE023380; Thu, 5 Jan 2023 19:15:54 GMT Received: from nam12-dm6-obe.outbound.protection.outlook.com (mail-dm6nam12lp2171.outbound.protection.outlook.com [104.47.59.171]) by phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 3mwept6kx6-2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 05 Jan 2023 19:15:54 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=elAqGtikCt10XY8Yv0Qy5uZSt0dSYMy2bJP+Yt8uap9AuzBJ5JZVcCkJWNrOtv3QLrQ+jCurMYmMZSf8ZW1EHZQvHiKeRKxSN7AGE0zwtQm8Y8YDZ1YZy85baOtjFTbfLd6WuffV6mT4aNXiAAXLYEfq0ByttACHgR8lZEYwM02IUlHQPHmYd85j3J4olS+kSvhaLF5Q21w9xMJyXqfwgpQnx4kB7U+5/eoeiixME4pIj6CwZY2M7xOhfjzqG8om3oiWOOf5BOwJ2sSTLAQ1i69TvL5yMYClPHkrbuT2x35txYBljZrZ6V+xcXhQri8ku08DKFX6zK9oOtvwLZ0Y2A== 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=+7lb3T9LpYIF6+7aVeQjtMBFxEGRNgAAXhAWR5tPalk=; b=iI6aQNTxa4nbbtvh0bvA9ktOcTsCt3a5+iPvgBMmTPbid6VVzoibhWMPr3/S/QApbHrXRRL0EI/CrIzkkNIdbQMAqWDK4UhwQbSRBrOBuRjbQ5U+uFGY7UcBtgoLAR+xnqjaY4x8QN/uDfrby/jmZ19wlI2FsJSUT2X9ueueNFsZCa9q4C2fSDoSPkRUoxFmIu0JKSC86iJeFyblM+XfdMxADSi2N7XtYbgE8PTUcvkcRQuLKbUr2+BBBQWbrPKIDqZgg+mDJ19YGjYTYPpZi4x/wKpfZ/h1Y8lqzExvDaqspJwkLjMafnEvQnW3dsf3GvX157dKOqj+qI1dmwYSnQ== 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=+7lb3T9LpYIF6+7aVeQjtMBFxEGRNgAAXhAWR5tPalk=; b=KVBn2ygjACpRNE+WRLWyURGBDSjNdW/kKDOKGNKgAxYeHTXgJVUf2MY//l0gnWQd/wQqWh/pUWOWS01rHT1FoFz7MRuRuxrXBrgVgZ2SSblCeEe4bvo7UwbMinDpBkKJl7759GC2pigWT2Kudhd+TgUL5XcCzITy8474uDBUCJ0= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by DS7PR10MB5231.namprd10.prod.outlook.com (2603:10b6:5:3b1::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5944.19; Thu, 5 Jan 2023 19:15:53 +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.5944.019; Thu, 5 Jan 2023 19:15:53 +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 v2 02/44] maple_tree: Fix potential rcu issue Thread-Topic: [PATCH v2 02/44] maple_tree: Fix potential rcu issue Thread-Index: AQHZITogJrlnYJCl9E+hGSmbaSft6Q== Date: Thu, 5 Jan 2023 19:15:52 +0000 Message-ID: <20230105191517.3099082-3-Liam.Howlett@oracle.com> References: <20230105191517.3099082-1-Liam.Howlett@oracle.com> In-Reply-To: <20230105191517.3099082-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_|DS7PR10MB5231:EE_ x-ms-office365-filtering-correlation-id: 216d829d-47f0-4f61-5991-08daef514397 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: ttbDbQXRfOGiAHlR0bSQqFEN3T0S/tRJJ8dS2X/O67rTcwyDn/jPEMH0AQyO45mqCMY49ZuUVWycY/UU0fORM8dN5hBAbZndc23/tEALAd4bAzjb7dZwuW0aJG/O57TRLFPaQv+I1950MWOl1dBuwruR+eTprPOKFBncV93Za10z/w0P/MX/+L1jL1wL83HQs+hQ7/s2hEyhf4LR9MtrgoOQSklkJic1oMmrirGLu76bbdfSNABouQRbOu8FTpKOvBRo6zn3zv7BIog4VxEceFzzSs94qjJvzpZY6uAcV8b7RX8gFyA5lJSn89c/s7IuDRq6A3vGowgCmbyUoV0QvrY60NK0pRXKg2PzIX5VRSgUVQqqtFa6QynCS3ba0HLr4gEbC5KsXcAU5PBQZ7cNgMhrEhdUKkaZWz7zwGbGkP5RBHMqdGJugktMDu95f+EA5tUpiZr7GbMv1HgPVNdleoEj7yU100Niu5PGOIeUjspMrSr9zRRATVZSFg9c9vCFvQW8xNpU7hsUdmrm4NUXHvMkr3UG7V5oH/i5vd81v7Y5orPkTToAC0/eIvxJzcR4Eb/4WIo8/cP4RSnq41kU719RdQJNUxlsosXxq4l3Skprq0A+Y6NaV53EIqbHqaVz4RVF8KKs7fuNT1kUkHOixAm6WlMnnEjW8ocvoKOVacCOMZJns/mns21jY0Sy6XwMBgIqMUxfJviJKlFEpHWLoA== 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)(366004)(39860400002)(136003)(346002)(376002)(451199015)(110136005)(316002)(54906003)(6486002)(186003)(26005)(71200400001)(107886003)(91956017)(64756008)(66446008)(2616005)(6506007)(4326008)(66476007)(76116006)(478600001)(41300700001)(44832011)(4744005)(8936002)(83380400001)(5660300002)(66556008)(66946007)(6512007)(2906002)(8676002)(38100700002)(1076003)(122000001)(38070700005)(86362001)(36756003);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?Q?9UtCuNq72vsdCbxB5MXttY09lA7hh0mO9Hex7J/iVOnwVkW5jHmj61hfbj?= =?iso-8859-1?Q?orctbcGgcrqlxtS4WYmDXuB+xmS2DDvuwRK0iniPyLyvTMQJgCzOKgZePg?= =?iso-8859-1?Q?cMD9gq25oUV5u/1H4g7fyDPbGdlAyaHY0NJRsjtSjaxPckSwvyVvXchduz?= =?iso-8859-1?Q?22EobG+ubUicEY4mmBfqMnvsDRpbgxRU8NW7sVj52YbOhCELiPGdyYn9Eb?= =?iso-8859-1?Q?8uy2FJt+Ix4E/U/w+I8CNn6ExOQmTmWsuMVGAZ8w9q96PzaXAegxsfpeKf?= =?iso-8859-1?Q?wNemDa1OYs9Cj1nuAOO2wFkr3VRWqmKAaJr3LP0X9G+PMWKIntYWGOnliC?= =?iso-8859-1?Q?gC6dS8MBr08hA/W6l1rVI7vM96tfsEgtCjsd14hdlmaNEHaYZMxaKNJHJ/?= =?iso-8859-1?Q?xGU+vZctFVd7B7F+NcPkPCNf0qfGmO6dlydVH7jUzB0mdpCRpMsNhG2k+r?= =?iso-8859-1?Q?TxcZkI8GUnCOLl5LJRwvu2I4FkjX8+AcPURfgu4I8amKjL0qClYUpLm/Q/?= =?iso-8859-1?Q?MJlcDDSusL3Y/QfybBx1ZYjbA5zV5Ll7E/0gFAaEUiort8TRtVHMHb3QTK?= =?iso-8859-1?Q?pwiThtumymEAIRBBUWBgWZCLSp6kn9x4Av3N0k1hAfHsdySdZwbVKH3l5P?= =?iso-8859-1?Q?BbcyncfKOw1bNZrS8UUuLNlYaACcFoXl8srGty2Zq7KDn7vDL5H2Tez7Yo?= =?iso-8859-1?Q?dBmlWJqhvz0rudRws3FnYFflw5z6/JIbolxQVeJViaVIE9DymW5zP0xOAb?= =?iso-8859-1?Q?+U1u/lsrqeNc/3hSGRMjmApmLzOmsQ92R2ZoA1/sdan5jOOoaleo4CrPgg?= =?iso-8859-1?Q?mzibNIOlqffFRtNuq8xsag2/+YHMdP4u8ZuxVyyORzZh/z9xemlJ89aFUl?= =?iso-8859-1?Q?k1zdshvjKLO/d022MfCBgEoiv6HedqEr/nzToaDW6brMeMTmZrziAvNtGA?= =?iso-8859-1?Q?coZiqZX4LjCY1Nm/zzCPr/UpIjRQdqA3bCCpeLeaYzv0AFIYC414AbW1+3?= =?iso-8859-1?Q?SwCTaM/1XkqzrdexmBfv9VzN3Ah28zIY2ztlSA5mSEkp22Ve8kF8y6xSih?= =?iso-8859-1?Q?Sv5uVpkRjjEZEsmTpCw4UcWcTVp0bsBEDLXZBSB55dCma5KNoEYCMaxnwl?= =?iso-8859-1?Q?Be2dMQA/gRsVndlbHYtsYG/jtxoFNEm/lRQnREcA0xTLReTMpzSjX9ae0z?= =?iso-8859-1?Q?x4M1UGFcbrhb/iwiWm5+EME9W+JcTZDcXWbj5EkzGbnwtDG7cAugCBlmcC?= =?iso-8859-1?Q?hA4nGqo8x1kBe69i17uflwwFsGTHefxiqu8XocHh3VfwqFWL2fPVOAPF0E?= =?iso-8859-1?Q?ijC4cxBhuk87uPiNSfCMP5cMxbBKUWOcMThDWU4cKxs26hSOLu7LSUhQhr?= =?iso-8859-1?Q?QslZ2ERmrfjdAUX3tHKpJuU49nl2g3/CdYoYfdynGKY6h2mFF0YVQf2bN4?= =?iso-8859-1?Q?2NqCXuOi6BtXsuTUcyXJAlLPVhfkOL65jQMDHqpr9iJnStWFgwkBeq4+TU?= =?iso-8859-1?Q?BIiwoF17wdLIUq3JAhg8cg9OXoec/ACG6kYh8+9tm32ZFGX9EZSlSy+WP0?= =?iso-8859-1?Q?naofQT8M17zeAhcqkNPf9uXeeiDZ5m6WJqEwD9QyocyM1gpWZ3SlK9aExv?= =?iso-8859-1?Q?6TYVD4NbvTfbvqqwSLPqhuMCXdWhrt5c+1hsQqZZL7sXlv5VfULlmRow?= =?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: 9gn2q/3AHCtt/5ZAMv5pw6Xmc0sQ32bQhnb0G8u88wSZkrcrOHt3Fk6f+v7vR3akmEfDUzIcO7sPIRX7Hhg53qviscHGROMT8Af7M5gRLWL7PapzXUQr/NFAjbEcsNzA3cUzKW7DLml3pTvS3PfnwT5ll/gPFxjrGuXVKUkSg307KKTbHAMBLxQswHur7KK2pJzQzkAzJfG2TpPMVjzFX+GCW7hFJQfctz7y0imHLt11uEYKZsCrvFH7K6YZWTDX57onOBeMBI6XO9Ey4CoLWIkFoLmaS+4Ne+R+qFlJmeOhFpGXYXAMt70a3gUsXxEgU8cxyGU2UYOuFktFqp9CaFRKcr8I0KfoFaPkix6vYLipOynr2Pwi8kdk0XpHtw9S61G1aEMO8uE/VqSOvnAyWF5JtjBgFbDUnJ8lOgjv3Kb08DcR25kDV7CMjO/JXXBKjBF5RmyuBP7ifkolL7J57kCp1FmEYFBNTwprd1whQgYDUjA2m0aVakxFK2Ftxj+E5z+5owPwwGNnuUAVuqkzUWfmYi8UYOLrBJuTm+pmmNPBMnxrJFPd67UIgsifIORIoEx438RJTK6+433yG4p4n/x2xiI67MJhcu0mUfzabcDj+neus11uOP3K+GfMwREEWscJrQ3Fj/JxSrGHnkQWnZL28iJlp2PkcNUgIQJfUihCh79YAxhabayycjUwwhSQ/oh83doPs72guWvhbB0h8Ai+D5VMfaDsUjekmKBtOuRDvqST14mQ0i9IrJGBP71qZLXZZxIKra1ZH/zm2cW/DRIn8O6jXPIiGGepLs3Wu+OMDlG01MNxMVCR6pnu6bX6ZxZlDkxXcwSXTQf0gsE3fpeUhdszpWRAp2SdbpsFv/nUy433vC+2yZgiP9aJurlBVf8o/lriKFLIvUlphV2Ijw== 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: 216d829d-47f0-4f61-5991-08daef514397 X-MS-Exchange-CrossTenant-originalarrivaltime: 05 Jan 2023 19:15:52.9697 (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: D+VAza03Y5ahoohs8rpkQT5lcne5+pkWoBEPpOBSLl12EyChZz6LQM5B3AGnlzeHHDHyth6TLX+zvTOFYWQziA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS7PR10MB5231 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.205,Aquarius:18.0.923,Hydra:6.0.545,FMLib:17.11.122.1 definitions=2023-01-05_10,2023-01-05_01,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 adultscore=0 suspectscore=0 mlxlogscore=999 spamscore=0 bulkscore=0 phishscore=0 mlxscore=0 malwarescore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2212070000 definitions=main-2301050152 X-Proofpoint-GUID: 8vpSfveJPIij3DMtR9d45aulU74LCaht X-Proofpoint-ORIG-GUID: 8vpSfveJPIij3DMtR9d45aulU74LCaht 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 26e2045d3cda..f3c5ad9ff57f 100644 --- a/lib/maple_tree.c +++ b/lib/maple_tree.c @@ -4661,13 +4661,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 Tue Sep 16 05:49:14 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 7159AC5479D for ; Thu, 5 Jan 2023 19:16:25 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235481AbjAETQX (ORCPT ); Thu, 5 Jan 2023 14:16:23 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:43786 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235345AbjAETQI (ORCPT ); Thu, 5 Jan 2023 14:16:08 -0500 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 592D68FCE for ; Thu, 5 Jan 2023 11:16:06 -0800 (PST) Received: from pps.filterd (m0333521.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 305ITwAl029120; Thu, 5 Jan 2023 19:15:56 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=AtQwHozD7Mms2T+KB+fR41DI5ZLtsKdl62R8KThpOeQ=; b=jmKsWUNa6o5cycWiWSFBw8D4gXy16xRbZefHKWSzKReOPri4sTgoOyOBO69NaiUkSpdU KXXZm0QEY5XMo8Q0NIMh0WK2DMJIO2TvQ3UCAWrnGq4ZJq8A5Ny8idmvRPAf9lSimkcJ WNTDjDjYLv2XkIN7oSXFfcRP3Fj5eQAM72I2g/sX3wJYLsyDVZoVaeCg8hmTcZZSFaBL h5vVET9V9mTbEC81/Da5qxwBtRL8sPI7s7uH6Aytk0nKU/7npQJaJeKOCHpd90ikl87i PTSOaeItBBPO+GchgFC//l6MagRZwBLUfQlt0wBrM1Hi1woadC0TfzjMq4GjGWpBFG4v /w== Received: from phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta01.appoci.oracle.com [138.1.114.2]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3mtc0asrk9-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 05 Jan 2023 19:15:55 +0000 Received: from pps.filterd (phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (8.17.1.5/8.17.1.5) with ESMTP id 305I0WPF023380; Thu, 5 Jan 2023 19:15:55 GMT Received: from nam12-dm6-obe.outbound.protection.outlook.com (mail-dm6nam12lp2171.outbound.protection.outlook.com [104.47.59.171]) by phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 3mwept6kx6-3 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 05 Jan 2023 19:15:55 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=dxtPtkWl1e+YCaxnRoxg1igqX6ERNsT2KhJlbjIm6YnEAgGpjJxCfUH5puluBdMNcKGgpp0q0CFnN/dCgG+LhJXd24KQPHi7DIjnWaNiTwoZ0feXABYDMawKlggaAX+dm8j4gBzjg/YNNjoBf+dprA3OszZLPBp5i6Imb7cXA3gqlwrvwHOiUP2dodwyj7WBPHdHnSpIfN8SxC0ip2g+H5M9QzLr1Vd6z8ngIvSjavOZFRTX4MIMJJqypdXuM9rne+COXGmxwMYREuE2eZ+yHGrCAJ/fja7gZNIxrLEYxG/eVb8cMLLyje6BsD6PUoPe+6H4uSRd7DR2DZzFFn+23Q== 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=AtQwHozD7Mms2T+KB+fR41DI5ZLtsKdl62R8KThpOeQ=; b=XQ15/a6mxNYQaB4QWgFHi4VYXgCmHM3L4GNmtIkGsDsVbVqtXoA4IF8W2lfizz2xpvQG4uLogfof0r/uzUYu04wmqtRXP5AkCVRAKGvUHzgRJYtm67U3feg3X/LpNsz5dpff/m49EH/zU5cXLqC2ZqiTR18t4ygq0jQ/c9g87baKvJD7/PWp3FwvSnH+pEi6EQi7w0z4iR3mqPiebRgwGwhr6ePWiGymd+zmBG44WYOJAJIjCqQtgy+otYNi7U8K55CdkhLTrD3vBpEVe0zOnCZ5pqgpwQZ5SClvl6GbHTs7TdiXbWUuGTZPgGy7KbMlMIOUT747YbJz2ugbh+bvsw== 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=AtQwHozD7Mms2T+KB+fR41DI5ZLtsKdl62R8KThpOeQ=; b=FCtPmTdWX2g7KI0/XSXusspU8Ae+hsNWWSLkK8SSmyi+IOLDKfkIE2Spywv+IPheTG06d9o3PbrlcolxIJPBNOVm/7ywONplJAC3c2eNLddgZxgLnbDwDnkXv4DhOmi8pCa5SIGrXtnGuOInttQp+0Mru7j/GKaFL8qRNWdlK48= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by DS7PR10MB5231.namprd10.prod.outlook.com (2603:10b6:5:3b1::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5944.19; Thu, 5 Jan 2023 19:15:53 +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.5944.019; Thu, 5 Jan 2023 19:15:53 +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 v2 03/44] maple_tree: Reduce user error potential Thread-Topic: [PATCH v2 03/44] maple_tree: Reduce user error potential Thread-Index: AQHZIToh4iSN6+fCUkqyQ0xEo8BZ1Q== Date: Thu, 5 Jan 2023 19:15:53 +0000 Message-ID: <20230105191517.3099082-4-Liam.Howlett@oracle.com> References: <20230105191517.3099082-1-Liam.Howlett@oracle.com> In-Reply-To: <20230105191517.3099082-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_|DS7PR10MB5231:EE_ x-ms-office365-filtering-correlation-id: 7ba49b5f-ab70-4ca4-b7f9-08daef5143d7 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: OH0ADRyucPyvn7zwVFWLmjhLb6Wa9WbPRyyJ2+mPKpXoEVcBqKH4+TTyO8gruJYOSpws1ZV+GvdpTQABytsujIGQE/XiJ9pN+12cTFSPXF1JS2xPXht9Rmuv9MvbGC9Kjcx1eIXPfvceaSy4CtA0+DWSxogERuUqS2L1pyhdlTHLHN/TscmfBzix5Cfo23qtKQcBzNGHmbfXVbkHPbHefqzlx0S3B7AjM2mfXrluhFmyal85NH2JVNOeqqwgb2Z8oX4E5I2dKcTR+BnQ/0VuOfqsg5/3Xplrg+9ms+IuSQaLPhCWSW/m+Em4CJINSyfjo4F4+leriTR4usdXzyMbfwlDhNBwgRUo0lmWhrD37o32KcC0v9ZxnNqswHi7c+eyOpyBVGzu8BGvm5bJxZIdyMJTaOMqPuhC08TNjWqtJH5Yh9F7XgM4irIl3JTpHd4I3dDNf5E+2qk2fsyJHeUfWF+CP+By7GpF4tvjWRWH1bTrsKzpVOMFw2zkzdOXbrFS2x51b2dU1Oq4bBYgrBqah8sjGoI69G+TZQ0HNadheZjt+EvDyAAogAhUVuzJpKO+PTAaTQxGjEpxTePnXYlaVDeeKtye4hWa9xr9upmj74aXMxBdarztB1caONR3rXTAqwMRe7NYdYhY9Lcph/dgNMCdSvL1l0OfiY9aQAQeIMw+zfR8glAJUd2hDzWYMRovtazzZ3O0yK3fIb+rmRc3NQ== 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)(366004)(39860400002)(136003)(346002)(376002)(451199015)(110136005)(316002)(54906003)(6486002)(186003)(26005)(71200400001)(107886003)(91956017)(64756008)(66446008)(2616005)(6506007)(4326008)(66476007)(76116006)(478600001)(41300700001)(44832011)(8936002)(83380400001)(5660300002)(66556008)(66946007)(6512007)(2906002)(8676002)(38100700002)(1076003)(122000001)(38070700005)(86362001)(36756003);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?Q?gZSuhwrIiZmcQiA4mGSUBRjaOkTf9/9EftaXsqLxMyySJ93CFdYSj2IAuC?= =?iso-8859-1?Q?0EwumcQe1YA/tALOovzdNRKHVmrVEJXMxi8LTDUJNrjCyuIrPpvzHCNhHT?= =?iso-8859-1?Q?L9Z2V/FBVf8jdsnCpFKXABhQCKcFRduZZhxo0OSMBOoXZSRa6JGJekEhxH?= =?iso-8859-1?Q?sdJpgTTKIqD3j0Xs3GQAAE//nqULf/N15eED2SM2pdlOPJ0gK/lhCqPizA?= =?iso-8859-1?Q?tPJIHImc4IrKq6BpZoBkjNGzckjqrPvIWsfP28iE6j8SFiRr3ZQfJLYx8t?= =?iso-8859-1?Q?S19waSqpBVY4s+aRfttfiSEjR6w5zvq67RxxCyc3LWJ1MzXSMtAdR0vm5L?= =?iso-8859-1?Q?ny5eAwJRDZkg5P9IXAGWA+TfIYAP6mfuHfgNeQUYqhc1hAcodOOgRVhy0v?= =?iso-8859-1?Q?0OCYdgyMplXjKaRwEAMhgeI65Iqlh6RqevQdWF8wcrw0L7k5vcg7O1cxDw?= =?iso-8859-1?Q?UsE7xV0qvjtFr8PgIVg19w6pRp5yewi4WL9txdidI8biw3TIhibXFx8Kn6?= =?iso-8859-1?Q?l2DOMP7YwAkqlMYGcgUdvMMOREt5Zpkc0iB17BCFgpdExiE0jDY5+sln4J?= =?iso-8859-1?Q?OlsaHnXsrY973YzzNC4BDwFW9xCK7xZMissk7/YQmP3MdJy/CyvKpksc26?= =?iso-8859-1?Q?ERLfr11I1nRnVjVniEG/KHSytkSN4NKEtNQA/3mTlPsUzNNWGHNS+4EIOF?= =?iso-8859-1?Q?fMdXbYerYRZ2c7SnRb+PeqDIz6lQybRUQCZjvXMwxhgs6wKIhFtB7bk176?= =?iso-8859-1?Q?MWuGqPcs1k1r9Dc8UiM798OVV1Pb3GYyQKrNbCaK+Af0poGbH4Dpg7d9K0?= =?iso-8859-1?Q?UhD+YAwD9ngClh+4Xfoe2qYNT+9G3i0GfZC5Lja2pKtXP3lzPS5X9J4nEV?= =?iso-8859-1?Q?8/wRjUaDEdz8ip3CNEyPQfUqdGJNEXgcPtzB6uBDTpGMLqFfvnFKHBoAas?= =?iso-8859-1?Q?R4TYWnzzbrSpiXnp+Ffw4jwzDt13Wrk3IP0OvY+jtNfcjv6RDRwqfjmgOp?= =?iso-8859-1?Q?d+lTLkQVhAaSELiDh+ebBxXJoYkDSAyc6LgVM3a+xSrNch8uH9PKj0LEF0?= =?iso-8859-1?Q?64s5CzTzJ3CpFH/FbWoqiXIUAjrekF6XLFsjzwGfEi5oPK1PJwlvv34X6u?= =?iso-8859-1?Q?bCgQb9y5ztvpGCSIIanFxxikDwoVjvSsBxhkpci7Iy4zybegVHJZFJeKni?= =?iso-8859-1?Q?1Trb5LDcKJh5ssHsAq+092QlP2k+v6m4nVmqVHkfB9w8c3VVA9gwGXQSSd?= =?iso-8859-1?Q?IDLxUPD6zm223yNDF3XXMBG1PpzT6PlULW0151bukaP5Dhgmqb1SqFjRdm?= =?iso-8859-1?Q?DPmCPCc/U5/TrLUA42TJKUf0pZsm+3lzhlwhwMSag8SEUoent7M3DVILkx?= =?iso-8859-1?Q?xE8BkQ56f+5otzUYoPydZODAc6SbDtgpmJ7TXJv13ocu0hUV9cq3aitnjt?= =?iso-8859-1?Q?o2lTqXpFky0rwHDPfE+3ToYFvea5hlDsh0HZX4hK+ID6DvT5k50q9MZxJc?= =?iso-8859-1?Q?PRlJxLzNqJEwOuU7FHQgoNvl4W2qxh0ibD+nCV9MuobutvQ71S4/KXmsfY?= =?iso-8859-1?Q?7nJDX3mgZUzkjKOvEsOebEFxHGMhqn4ybeMoSgqn6x1L2AMkxbxyW/BNuR?= =?iso-8859-1?Q?lqC8UXOfG9A2BeRyqqT41PTpZZKgfzyMJCHMjRfJa34nWANmH6gj+nQg?= =?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: /9oUu1drYhjr0NX0NgqqSXb+23UCVvf/YrI3uNOySma5FY2z2vQvdmqS6jAeXyfsc825PQVgAyShOH9WwxNM096Cpwcd0XrVbibt3D1vz4ZdKrGyDPYE1HiPmOyTeDZ5JxtukzxQ2AJWCMFzoJHHef+5BnR9fhLlZ+YFSJZInTSLV2JgzcfoTwK470roXx2CjvSunNfDgtYWc/kb1/bBn0CAVmCOjaCuq+eMwNrFIToCjEZYFdsbcFZFh4NZiFRntnwV4kTwiDIGPm+UITo7ML0DllJAXv77UQuMqNk4t8SPPCI3XKoD3DLsLwPI0MQPQrOUnwq2R0kZJxTxDZyQpXtwwi71g7ZUmVlWMDTjgao4HSHTyLV5k+ehr1roKyolNUHmazV65I+c/Q2i3WRgYCa/ajP6lGE2zjDymKmml1IIGbCR+bifmcnJ0MzrBfRK4xDsBrqXSvkFCN14qZu0tYqYAcEJo66HVvm86GecXCH+/3yAfKAQhYNo+cajzwvAL2v7jdX983O6pfdw7j+RWq2Q7JozTLgF0t9dqcFHwise9iwqEfM7H5Y56o+Q2djdGpYPytuZslPuo7IjXKvNGSfVOEzT3IOBsemDCPXhXt557Q9jSHptz/UxqMcs8Kuz/mVVhBTaAcQLPMBlp/VU0KnrjBYDI2FCBWtcdyUR0YGljY/IMszGmceASbA2sK8dsMF2Euv3KQdqMRZUiPyhpdgrfwelg4ZwnrTHLE9UkSkarKA+EWES3je55s4LSaSEmxY/bXlhMJLZKOgCaLYuKyH1iUTXnkg1lE3Aw87kuzk36dL202tCuuO9VhRKTcNc/JxiOaYjT966lDNuUeLtCYiPK9wOltAOCIqsZ751bPBumRhdjtsiz6LZ0aYhXeVNYhCONMqLOq0fvTcECAPsCg== 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: 7ba49b5f-ab70-4ca4-b7f9-08daef5143d7 X-MS-Exchange-CrossTenant-originalarrivaltime: 05 Jan 2023 19:15:53.2509 (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: bW2SRiH28OT7l0bRJOmiBTwR4DNMmBNx/+vnz2LVQo+SpwVIhWGiWurH0ITzfS9XZleoy7Mj1UhZdmi0ia2gkw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS7PR10MB5231 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.205,Aquarius:18.0.923,Hydra:6.0.545,FMLib:17.11.122.1 definitions=2023-01-05_10,2023-01-05_01,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 adultscore=0 suspectscore=0 mlxlogscore=999 spamscore=0 bulkscore=0 phishscore=0 mlxscore=0 malwarescore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2212070000 definitions=main-2301050152 X-Proofpoint-GUID: ddzLqBHdUSmzWE0SykCq2d-b65cmCCGa X-Proofpoint-ORIG-GUID: ddzLqBHdUSmzWE0SykCq2d-b65cmCCGa 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 f3c5ad9ff57f..14cff87cf058 100644 --- a/lib/maple_tree.c +++ b/lib/maple_tree.c @@ -4742,6 +4742,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; @@ -4848,6 +4853,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 Tue Sep 16 05:49:14 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 06199C5479D for ; Thu, 5 Jan 2023 19:16:32 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235504AbjAETQa (ORCPT ); Thu, 5 Jan 2023 14:16:30 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:43778 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235301AbjAETQK (ORCPT ); Thu, 5 Jan 2023 14:16:10 -0500 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 0975F201 for ; Thu, 5 Jan 2023 11:16:08 -0800 (PST) Received: from pps.filterd (m0333521.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 305ITxBI029125; Thu, 5 Jan 2023 19:15:56 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=+gMycOgVy+MU0JxghxAAWSj026eW9Ud1l3dkHuAq2pg=; b=VU+69ky8KWFYjQgg6onyg8OpEzbQpFYTuQdCIEHnAx5kp/Bww61bkzvPCrozkdYEFEYC N4b5wXJiSkxivkzoT2NH+cUtZV6W/XurrhCPvGYQ/v6ON5h3dzN0y0q7Pj+yqnHpGlhZ Q5KU2Sy+ElFrFTOyTX64KKMRw9oMWGqgHf5jKxcFBz0mXHg20kiim7lvssHUdZtkk1yV 9G1LMRMooic9bn0W/SYqpefzBrKQUPAoAOkhMoH2RaH8ncB6nnw1HZ/0IUWh7kzm+z8o P3Ff03uNTM5lDzT2IVy8ZXR1dNA4SfTmZ4RkciVKTh3aMf48AOO0xXCGoBqSDYeTisnZ 2Q== Received: from phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta01.appoci.oracle.com [138.1.114.2]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3mtc0asrka-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 05 Jan 2023 19:15:56 +0000 Received: from pps.filterd (phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (8.17.1.5/8.17.1.5) with ESMTP id 305I0WPG023380; Thu, 5 Jan 2023 19:15:55 GMT Received: from nam12-dm6-obe.outbound.protection.outlook.com (mail-dm6nam12lp2171.outbound.protection.outlook.com [104.47.59.171]) by phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 3mwept6kx6-4 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 05 Jan 2023 19:15:55 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=iGuLbn5Qse39dG0xm2hWZW4hCp7+lFK5TDSqrR5VjWhDhERH8SRw8y70ZcpSiqWsZSgyzZizu0vmrPupP0QC6OtK0xhg5PKJRNH7v+NTWEqeMEmMxuxbqo9LwG0apvoUjcX2KcjH4p4VrBIBJnJ2HonQIzI4uTFsVsBUWZs+XVkyNqgsegYPc5oPBzkVtx0bmh6t+H5kLoBYtHznSI46yARLgSDCYT82/lBnkPq0+3uUr2MYZr4at3ho6wdcM3k1NkiF1xRhWeoPbOPQVeBw8Vbm0CyquGjqrotBlrh5pYYDqcSLg/CTxdvihT2pGFYsyxdFEVh36eMwUV0eUaU8Xg== 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=+gMycOgVy+MU0JxghxAAWSj026eW9Ud1l3dkHuAq2pg=; b=HT+dmM7cx9sQdCe7NLBSVCgm4Qi5Oa/an8x/nw/9iDXSJREKwgswxXh0/xjzHcTyx0DSgPIK31D7W+40pfmlBV7WjhqWvd7o1uPm8lR7U3shcafU4M5fpSDC3SweV2+QWe9JZBNz8cJYZ/m69GrLmQbjrga+m7lco24mSJM4f81Rl1wLAaYwuwzXO+KAwvUDWU71CVPW82FBAaLLgclEYMrkRHYiRV7A6Q0jrnvqfuWbVjKEHSsCfRnV/BpEVS2T/GwtVqHFPzQ6kNcuWXZd/nZLzF7m/bohOX5AAK/niCZr+OgVTes/RGoWzP9enFmr5gClcIcBRRerjMzfGmToQw== 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=+gMycOgVy+MU0JxghxAAWSj026eW9Ud1l3dkHuAq2pg=; b=tFHs/MFMC7gisZsfxa/t5I+dJETJNTR1OarfYvsvZyMqQH9aZKjqXFZ9KlsyoqCzwSZa0WFzuI1+DPxrc06VPsCSnElHGLsD1DxiyRlCu7uhBJpG6G7MPcTZemn0pOzVqGW/3i7DBoUkSODb6gudqFlxb/czodE3HtUlXZPqumM= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by DS7PR10MB5231.namprd10.prod.outlook.com (2603:10b6:5:3b1::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5944.19; Thu, 5 Jan 2023 19:15:54 +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.5944.019; Thu, 5 Jan 2023 19:15:54 +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 v2 04/44] test_maple_tree: Test modifications while iterating Thread-Topic: [PATCH v2 04/44] test_maple_tree: Test modifications while iterating Thread-Index: AQHZITohkjAAnFanJkmz4QQyg+BdUQ== Date: Thu, 5 Jan 2023 19:15:53 +0000 Message-ID: <20230105191517.3099082-5-Liam.Howlett@oracle.com> References: <20230105191517.3099082-1-Liam.Howlett@oracle.com> In-Reply-To: <20230105191517.3099082-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_|DS7PR10MB5231:EE_ x-ms-office365-filtering-correlation-id: f8c555ea-3bba-49e6-78ab-08daef51441a x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: loERLTCblH7SgALDwRWYZnfYq/OU4jnIAOjDVdGFBmBbiJPDBrRV2mB+KQ0/m0OGU/UvPkmjnZnsqD9pVXC8S7wBz6jVpUOD4SsejdDc2JjjPOEYVJI46C0d5jKyeD8QuHYc5hBc0PXAZgQ/Guf61NX8j0Xmc06GhkHn3674ZPh95JVQaQN9m+cYEThigzz4hxRqAuy/GOTiBADixR8Uuy52T+vorDf9DTa2HIeGXh0Gp1SID7JMmH7Bsx/Wz8cN5qSJ+vUq6FRgogcVmqR+x11OSSGhKcCLVXohrJzHsm3fE+A4xvKx+TZ/ABEco5sJaogANVhS/5/Vuc7/ToUmclOzeA9OdGfeTLjqh3VRt+s1ye5wFH8uOQi7MA29isf0SbQGVQQJHmyybiA3RwMB8fVkcn4y2xt5U8kvYbhl8MXes8PdlOVFJVy5gFbLkz0Ny+86stsy4ChcyAjYJT4nBG7ADt9JvHu7HJMbFuvTzUvGmrZ/8AMXgsDvGNaCGN7QH4m86Z3ZzGz8VDHPdh8x3LOi0Shq928R0xJDSDtnYY5CBSFwrR0Ym0kh/0wuy44edvz9QDyj2YftCmXATrjYfDLN8f6x+k85+q+kRr2x4zV+hRU5xZsr4s/fn3luWxBFpYHfvU3S0gRy7E7wbUw4CzfB5i8m3mBasUTwXHSkWQy7dP50Z15Un8E4i0iHOwva417hT2u7VJl2/kNnlzOiAQ== 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)(366004)(39860400002)(136003)(346002)(376002)(451199015)(110136005)(316002)(54906003)(6486002)(186003)(26005)(71200400001)(107886003)(91956017)(64756008)(66446008)(2616005)(6506007)(4326008)(66476007)(76116006)(478600001)(41300700001)(44832011)(8936002)(83380400001)(5660300002)(66556008)(66946007)(6512007)(2906002)(8676002)(38100700002)(1076003)(122000001)(38070700005)(86362001)(36756003);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?Q?+KWnPrDtye25M7+l4F6Qm/8pgrtNIM3inwiX5zBsbqkUUreuj69r+xOVq1?= =?iso-8859-1?Q?0zPGuRI5gNuSXsFdofVjThxsDucjbEdrzky66NPEfBj/H/cFOmb9OVCF4D?= =?iso-8859-1?Q?x9/GrqzbqHfV1NuBOQJkV4ABCSeSwKlbRlXSJjoJN4MptyBmkAKjeuNwIR?= =?iso-8859-1?Q?Zx5sTM5hxqvqmOlF9rm+QP2Tx1TI4yCGjoCS53iut0wlzKWeJ1iXYUDwMW?= =?iso-8859-1?Q?N6ZJO0kmaou7xYVMDt5ZvZB9A9uhpbtaKYeT6kKEhGyKXeL1qaVOxtUcxi?= =?iso-8859-1?Q?VBiqEDlm84hkAwsdbolKOGDeeWnXS5GnO5/IY2zRlah0ZKb3EiRDe8Ktyr?= =?iso-8859-1?Q?mqwEiKPL0vnGTuKCvERbTHSBOuHH3+b5k31JIlDg4EjKf+pa4eu7aNRCA/?= =?iso-8859-1?Q?U34VrA3B1Css3prl7iZc7EY/bURiqBrMke3t+hiKPtMuK9VHgchQ5iaBVB?= =?iso-8859-1?Q?dCSYkKNOwK1wCOVXO5h/XN9VrfvQReL5E1RruYvsZR3nvrh8PFbszm8314?= =?iso-8859-1?Q?XwPu1U38qgUh7l6Pcwdsxh5NFnUqyA8FIvsLcY5VOEbjzxer1xVDyLvAHv?= =?iso-8859-1?Q?vRc1yUfsyjDIIJG2raSphWbrEuWJn0BrumUgBFThdzX1wyvHxdnUDU3GzQ?= =?iso-8859-1?Q?tran36Ls1Bv8fjqx8NNB3IR+fhRlI3kamriXoQjvpJBxW0ylJ1E3AG/o/A?= =?iso-8859-1?Q?cKLjBfHcqhRteoXQf64Yadjo1qACJb2h3LL5sO3zP309Tok8WB5x4SvLhr?= =?iso-8859-1?Q?IEo39GQaGmjEZkpLucQJcErpCp2Sx5mCan3a/JYcWpERTCRv1IVJEcntuX?= =?iso-8859-1?Q?PyzZwfQraiPoDgWiNZ1llOlPGUukKxZLJs1YA8Al/qQ0B4APgLniaCaOLU?= =?iso-8859-1?Q?DJIJqL1Fn9unUr4Pm6YcMynEQMJSuxGJTWubh7I3JWjscZEzWcG67oVCkk?= =?iso-8859-1?Q?TFg3/WGS4pQL8IJl15TLGKGOTEs4dXKRzT6QKyBfRKGWyiVmQlswpDHI9l?= =?iso-8859-1?Q?AT88anRKoRZN8FwH98nukxqZPmpLT3UIYkEIHjKALPEV5owwdOHxhRob5x?= =?iso-8859-1?Q?ZrAc8YMHlkzyBSDhw3YvPKrKQaDcPkbeYKvvPwW5fHagwumE+DG0L24onl?= =?iso-8859-1?Q?rDkyRhpzAsAAf8Rd0iMqjvRuWJMQlsBV1QDvrHSp0fzjF5s3mkg6LulnYj?= =?iso-8859-1?Q?Sxi1LcW8e1lKZkrxpcBdMhqJw6k/oXZtaiVXgCZo+I6XteQ5x7L8zVapH5?= =?iso-8859-1?Q?n/Z9UX5Gx5M2s7EGPFZrxZJzyrWH9pPdJfLlMsfBOxFHzfwqZL1et5XaYj?= =?iso-8859-1?Q?On1NGro7P9ylkegO++MO1VA4CTyezDCDCzwU9wh11Uko4RiLn26k2qmlez?= =?iso-8859-1?Q?Ofpg8jN04Cn6/DstTrINRruBTw9hYiwOtNw2o+WepBjF9humKK+oC47E6i?= =?iso-8859-1?Q?mKPkghTCjjHNLZIeDkws6Cx1SRVZe9jYwZbXwdAklmySt28SrYrYATWwRe?= =?iso-8859-1?Q?WV/Tw4Kvv2GxhANT79yLHWJVErN9Hl77G+RXMKxbkfchPRpBaJGYE9fMwm?= =?iso-8859-1?Q?BCbQ/7m0HoPwmeYataYPD1SoaISzPo/4cJL2urxY+uK+cupB3lDmumgud+?= =?iso-8859-1?Q?WWK/4c8uX0b9SQXdYW9rh+ZEfe5c2oHSoV1an52ZDWWJVVCVXmV9EXjg?= =?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: /xuCfdt1TjWK6a9fM4NrZc0mE0e5cjetV+ZtS+p5ggfQY0vjeGF4TzYnpk9DcNrmXACykJjfrk4dwiE/9Rdix3Tzqz1hSYD/dwV/CHtAVEZqr4l+xetogOhmJF38s2G7KfnCgzlB2g8LxOUr8jyH+/dvDx7SEUXaLuVyHFKoc4DC9T6ppcj8aCZyAnalwfpq1Lj5dDONwacXUTPZjUbEBBUYC+XvCmSRk5BxytxxKW78DK72TLS+atiQllOVc8vDFi/7o9kcw2S/KTVjXLdaVy0Nk5odnwDRw59GNWnvID80ZPbrfNHvFQjj14oNAkebBLg6DZezdHS2/6+2JPNkq5POQXxtp6V/a/okDLJHQG4Ta8ln1Ezv0NGUHiTuBMMFX9pXQSS8yIp1bsc0C5jSjvKVVLq8O5NXrVwfsav2CM+k5ylVCnz2S8DuRPoUQh6l0H5vZrqDuxcNt6M6f2Ilm/aToe0fQFgkvwKZPghKtagobMzCa9F14kQlkU58v+cjaFgaFEet5GnS7+Or7bOOv3iBmdHyidusf0Fe69+vNzGWLbEWBULv88iyuqM9uY1qRikskoSvfQ52Q8pwYXyEiAG8ZCRo3AT+Qi2PHChqgyAOLe+nq6Wh9FbQihKQM7yCQGgMp95Z1zsZ+NKmAZ0yAHg3FiaDU6GPtwnte29xEgalLtTDqxh4o97Q0fjhldUa1fndBHpOwX2cA9YoQFafaltDyHY1eBXyd8rHqJzlv2gZw6M5L1LJW03ep+1YC6jmF97Clbz6qUhUf4DYi+CvlfeapQuyTGlP6T9fXZy+iXr6cQYEqRtsQmmfjfi6h+6rBJmaG9R/4hEK9eEBJQX+C5CKDqB2uHb/Sb5Z2rlNCpLEXxKt9zSDKqU+y0b4MNzg9xZLrJQh/sgBVZ2Y0omiKg== 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: f8c555ea-3bba-49e6-78ab-08daef51441a X-MS-Exchange-CrossTenant-originalarrivaltime: 05 Jan 2023 19:15:53.5478 (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: /aZ0Rg5VzwOhe/A0TwZgDu4p04G1+k1Wammd6jvvEEf6AnHRh+QVBaQPEIkWJPcGihbQNCjUItbkOxQdEorQfw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS7PR10MB5231 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.205,Aquarius:18.0.923,Hydra:6.0.545,FMLib:17.11.122.1 definitions=2023-01-05_10,2023-01-05_01,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 adultscore=0 suspectscore=0 mlxlogscore=999 spamscore=0 bulkscore=0 phishscore=0 mlxscore=0 malwarescore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2212070000 definitions=main-2301050152 X-Proofpoint-GUID: g-qc-8ueBvVL-ZVKzae3xK2QAHR-ltfV X-Proofpoint-ORIG-GUID: g-qc-8ueBvVL-ZVKzae3xK2QAHR-ltfV 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 497fc93ccf9e..e9fe4f3486e8 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 @@ -2574,6 +2642,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 Tue Sep 16 05:49:14 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 C1503C5479D for ; Thu, 5 Jan 2023 19:16:08 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235224AbjAETQH (ORCPT ); Thu, 5 Jan 2023 14:16:07 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:43688 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232296AbjAETQE (ORCPT ); Thu, 5 Jan 2023 14:16:04 -0500 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 3FE49C7E for ; Thu, 5 Jan 2023 11:16:02 -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 305IUH1w030095; Thu, 5 Jan 2023 19:15:56 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=Q+J1EkBiJRATPpQFyS30k/tjqsPU0yIzN5CZ1B/Xy+8=; b=TYUBUgCkdUrcckPzPWcWf0RireYxsCI71TECVoxfqgm+hAKYBbfBX14agH6zWttqKqbK fvy+pmwbQ3ZCYqObXuxhLW2zRim7yr/BPLlewMMli6q3WG5foJ7EAg4PPL7Fi+YzgQXL AnK5wNELmPW1I+JvsiSNYsruZ4ak40CPSwqvsY03OuYgtBloKHBdyMBZaloFIiE7mzfV /9xUb+4udGRFHIXZ3s3X/vZA89G1N97aZNkhbicjVS9ObygrBkmFDtROu7vAMKHZdqZ4 Ycyly3KXyy7X9yx88/onmpx1o6bLhBhPsESCCSV+3w9Oqt6dtEM3CuD/HZ10zhH21wrq 3Q== Received: from phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta01.appoci.oracle.com [138.1.114.2]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3mtcya9k97-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 05 Jan 2023 19:15:56 +0000 Received: from pps.filterd (phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (8.17.1.5/8.17.1.5) with ESMTP id 305I0WPH023380; Thu, 5 Jan 2023 19:15:55 GMT Received: from nam12-dm6-obe.outbound.protection.outlook.com (mail-dm6nam12lp2171.outbound.protection.outlook.com [104.47.59.171]) by phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 3mwept6kx6-5 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 05 Jan 2023 19:15:55 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Uo4lYUGLmMy/FqYEnGkZJ8Srk9n40SesP0V442GM0p+C6hYmdiIxp1oX4mw3CkyzqHo0QCZTtO5prgE+5sWxUXj1dSmcO/DJ68OzkAgQO3YjJPclubl0pdx5vL7fZ29OGaP56BmekEjsnQTzTgLbOIYHC5TiLPb32iR75WAxHZ8wlZNBtk1+0sCzRPNTE7J6hd8UehurEWP2JpeLDj8j/aXXIX5YB+LTIq5dhh/80t6X0oUSYCa9WfqWnKI4mhGZpJ75L3NIeU4mb3QiHpf7CARLKxiGaWeFdatiJXrhRKf6Uiw7wePnplo3XtkVanMNXzTa28nj42m0ZGlMpSbHmA== 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=Q+J1EkBiJRATPpQFyS30k/tjqsPU0yIzN5CZ1B/Xy+8=; b=Wj6jum0A+oWzlZcaC5H1LSZdIzTrmUdvhVH6eleubsq5CE6n1Q5t8Ex8/y/GSfSgG7DdNSMmi2/uCDI9rQNdH0L8D/ZvVU1NiHWM9FRn+cS2VzexqEKzm8yqLK3nxE3vSgL2/UQQDoElPWqpER9JTA4IljUvcs7uQaxqeo0SqzwmJRiHWjm5QJeV/JFtrYohrGstN7vyVCaEFOIsAxRGRhyERLKKDHVhzQpYiaCCIDnnGYfNoTbOhoSxBeLscHV6IQTueCPZ3UVq/4QPsv/kUgM1r2fUhoMrafZrgMF171jJVhdfUUOW10ZFuihlUzFFdAiPkXzqV96jRnB1SxPNYA== 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=Q+J1EkBiJRATPpQFyS30k/tjqsPU0yIzN5CZ1B/Xy+8=; b=jGUzFx+pLE4T+1cc6N36UHaFK7LIiNY5JIy0tUWLObGgkp5xYbVP3j5R7C/vcMy4l6azQXznNu7GDUpthH9DK9PcA5/cE2PNZ832R5vwnuzPExA6E/iMl2IO6K4jzXAEqlSlRHHpkzYu+sZBmnccURzRc45r2EYC2HqyTjrRJY0= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by DS7PR10MB5231.namprd10.prod.outlook.com (2603:10b6:5:3b1::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5944.19; Thu, 5 Jan 2023 19:15:54 +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.5944.019; Thu, 5 Jan 2023 19:15:54 +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 v2 05/44] mm: Expand vma iterator interface. Thread-Topic: [PATCH v2 05/44] mm: Expand vma iterator interface. Thread-Index: AQHZITohGvqma0vYPUiffXuhSbXTAA== Date: Thu, 5 Jan 2023 19:15:53 +0000 Message-ID: <20230105191517.3099082-6-Liam.Howlett@oracle.com> References: <20230105191517.3099082-1-Liam.Howlett@oracle.com> In-Reply-To: <20230105191517.3099082-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_|DS7PR10MB5231:EE_ x-ms-office365-filtering-correlation-id: 3a491d0e-381a-4418-126d-08daef514456 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: hjwjtv40IU++uUSdvdcLFrI5q2XFBbD8SZXbiPhKbFH5wMNC9Un/SYQlFGW6c+LvATWUIkRDxm0e7ODlx5GZZ4Ov0u8MnhPmQzPYJ7PrL5/ZUzGMUX2S78TpQhSmmDlOyNzWMSf5uZ9Aqspn+g/BkdY0QWgLsIiBUaOAk23YTlr5s0In+Hc/BtLvmU+WMCpL9AT2bKJLICOJK7dhb7qny5F4K5RxkFGzEjGG9aFRI7IXbfpCDLUQyGnxBNsjMmZl7sGng1p7PU0QS5bnPm8T1Ca+Dw0CS8d5eyeOOdzQ/dT9kZpn6DwOSyXFyiCwyW8UHmogwYxvcmRKwigaFjT0SjDSEH85C5Kc6vop7A/ae7yMA0oG2tdkhB7AxsTIBTkUyzWSGy6BkWleqiIPantmDzfZQ+gWjsFHEOrvqZ/RE5plXX573pGHu7rKqcr8d/r1+Kr4Kfzyqi4x+4VlsCk81sD+O3Xm7YCO8INUHJytYwvJUmZHM3TTotwNWEo8lgDirhHihdKy3etbNLyVlQAw1eTpqKyd6xztjgThBYIcmCwRP/atWvzeOD6Q1TPm9dmhWhhNCdPG5FmjLEezlPEUoc2QTsyhcxR3mExKhM5QwnQKoytnUf++xp7XL9VuBXUiL2augXXkz77guP+nhcMMS0hQULCBog3Re7o1/p58YDd9Qhtuhts1+DFSmsMWbANXwRAwaYabSYioc1cQgTpbfg== 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)(366004)(39860400002)(136003)(346002)(376002)(451199015)(110136005)(316002)(54906003)(6486002)(186003)(26005)(71200400001)(107886003)(91956017)(64756008)(66446008)(2616005)(6506007)(4326008)(66476007)(76116006)(478600001)(41300700001)(44832011)(8936002)(83380400001)(5660300002)(66556008)(66946007)(6512007)(2906002)(8676002)(38100700002)(1076003)(122000001)(38070700005)(86362001)(36756003);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?Q?ySduKwvHKaVbEy60M57hxbe8a/0bpso+7HWw8Q32Bx7RTyIotMwwj980qS?= =?iso-8859-1?Q?hWE25Cng9mXYKtq7rgIG5ZxQzVJUGSkj0SBB3FVlwotdW0Jr2+SCGgg0qr?= =?iso-8859-1?Q?MI7mJKWSqMuYQMgU/L+pSmzrPMB1bg6ZHXBVe1sa9KXHnLWYV9KxY7nXsI?= =?iso-8859-1?Q?qsmAq64ANuXmlmdt+Y4dPMrscM6eKkW9zaB0talxlaC8D+D/wmrWuCWgIr?= =?iso-8859-1?Q?gzi1svN29DnIHK5s2NPyx3/MAjWaTffKbblMV+uUiiNQAM0klWqTDzUCUa?= =?iso-8859-1?Q?14PnmC68P7FBjQ/tvQz/NOxA1OO1xl0QJgJIj+6T6QXZWTov1tVF8qgaDf?= =?iso-8859-1?Q?X/bQ0TAPE5Eevv3SnIQlFtdg6ETurZ0qQqkoupX0BWwIHavR/GLgApCt/9?= =?iso-8859-1?Q?omIDbnPADQcB0yfB8GqfMbPAoAw19OH02z9VfI7cSr8ig2yb+Za7/HivZR?= =?iso-8859-1?Q?0wP46IVFS+XoAAzBO+t1WW6Npqk0Tk7U5ZLC68Gb05TeCxChnV/KPR4UI+?= =?iso-8859-1?Q?NHbph4UY5fUhPWqqo73rWKk4Sj/q+XB56o0fGzXkQas7RMMfN0aAGhx+d9?= =?iso-8859-1?Q?knNASnVO2nXSxGUVFDUy2ILWi/gJb3/G0g97TsK3PsfVfxN6G2ya47cDRE?= =?iso-8859-1?Q?x6vQW8CJ3/4toodoOtzGQEjxSCIhJEEzE/NriF56m5WJQjaLZ6AuG+wJKd?= =?iso-8859-1?Q?j9f3Y248XiOKgXw1iy5srMQr5BZg6d8JGjDDi2R3/Mohz3WrZnd3pURA+r?= =?iso-8859-1?Q?KipsWQN7S3GWxuNIGMzhAffBBcDeuAzzc1EQP9fOlzFmPKEjpPMg/93Fjt?= =?iso-8859-1?Q?yg7IDuAbCxvGelwYRCyBEZmZCFazXOSaIQIpHrIsOJngenl0gzsoeDa2cz?= =?iso-8859-1?Q?w8UcUwbMzkJVRHreQ4qcSwtTyqjYCwSEbH+LDcFoUwrsoh23phXjI3zo+O?= =?iso-8859-1?Q?D1YswPsJuYbAYmshl1LUS/1l3cilbmE2eG0qBX8OI31YBv+DkE+tirDGob?= =?iso-8859-1?Q?69+GoK2wDZ3fSm+O0wIv1zGFzxnC+2y+Oq8lzV8lRT4nR2qFWdwZlLizT/?= =?iso-8859-1?Q?ARpWNtSkrRMPCDO52SbnbqkCyu9p0X/mBxCIXQzTY4IV5Hxfi9TtuCLLT1?= =?iso-8859-1?Q?Z2Ib/g6FwsmP2n+8Kgv0Y4Mj1bTJqbq4llSJjhyboLfvIhBzRS2U6U6tDp?= =?iso-8859-1?Q?of95jUzA3sDwdZpFPzIQLS+ZeAp2UV017CZ7I45l9pXzS8e6mK3KJSqtpP?= =?iso-8859-1?Q?r0ZfPvDvI9o7zfR5vt2/sa/IWzje+gSMoU/sdWz/1PMMlPb/M+blx5x71E?= =?iso-8859-1?Q?D2kQkmNIGdvlpBfWumhl1iTIbRD6kHLpyxVEqd8QOIpRIFCVMDO4u2SsC4?= =?iso-8859-1?Q?Pj/nmXK5VesoQKNJpzXvSmC+gwKJI44E/Yog+6zBRMffeyLW3ruprgwXb5?= =?iso-8859-1?Q?p9OJElnTepEqZMWxtEPacPP/QX7vnDHJh/pO1htSnWp43R+hlL4jPe+ZmQ?= =?iso-8859-1?Q?bB6fSD/oHivMkYP6YQD3eQvCdUJyu3N0OzLDdoxG7AYQxJMjpB7ApSOxo5?= =?iso-8859-1?Q?MseYUUQ3aW2AbQh1wrzVvAWZAr+VIjhuT7KwFDbKaK0223HtDGu9m+FetS?= =?iso-8859-1?Q?/CH0izN0Cts9lmSxXiFDy0THLlLFX98srMI62/9m8XvFCO65Up8H5efg?= =?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: qCOO9tA1J7uQFfFQlZf5Nvor32mwyGwKMzStHXDD8aj31i5YinjjSMyxBkO9P2Lp6aC/Fwuz79/DM5O3kc/wUuGB0IfrPH+Rog0JbCMS8vRU+L4SBAa/t8ki9b3vUyH6bkL4PUYfcahlStmQvCKzLc6BqgT4hsSehTHQCW3keCIULJ3A/tk3W6Uu8t13QhAkcgn/FOwkf/rt4pjm7S9ycWYSiouxabwJYmju8QvKaf6FVjAv0f7HZSBb84SkjBXyOIhCpBFGw/NFAhcFNiNOC2YofC0wg2wEtTTOryAcem/2iAix2fUVENAXSz9lNg5XUQR8T1MMLA8GsS0gbbpwKMyVn94mHHVLkUejaqoW1NlPPZ6qEj0CHH59AeFsh5Yj/1TxIB1oT7CV4HEVm+8DepEeeBJP6xsCC0MlsYKOX5z7TVx+VWAwLqt+CXtISWL6xhMFXcmLgze2gXvktjZcDo3NpGuqEeZeNCnpXNkUiXpEy08WWZ+a5yNkdFcfqMDFIdMiLTmgZpulKxfanFi7YOKGcP+Vjsh5NO2LkdasVv8cgEKMlr1aKh2Gi5L/yG7ursaCOm7EoC7Vv6hBPBAJMzZEQll8veWruxPL4A8ukM87QNEhOHL2Zm19l4/t6YqnOsL7Q/LoftXfa1qCK1VMrRZgv6I9evtkadvTA4vFO1FJBWEsI++X/LM24dhzfaRYIPGx6+1iEgtjLo2OOifwWPWuMpMZ/C2aqjXohtkprJIL87o4bsxGVnKDl1K7QONM3ua4wxFDypzAj18Q8BGdQca2WdS6xWgL0iwTuQ+AMKrAD94vB3uYDDtEyVIVxqpj0EjoAjGMVGL5M2RslCqyb1zkBmo7LVmwjaIhNdQNzirtC8IKtgYdUnraZjoVEhMLjRmu1tNVeUTpWJ4Ct20bHg== 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: 3a491d0e-381a-4418-126d-08daef514456 X-MS-Exchange-CrossTenant-originalarrivaltime: 05 Jan 2023 19:15:53.9227 (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: jYhWQc5t7ufFnEWsq9NhbCOjL/ak9LNTOz9kp7aZm4BTcHPYqGEgdI3Ixyc3EEu/8vnXcUiMQAMWEL7aUdZh8Q== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS7PR10MB5231 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.205,Aquarius:18.0.923,Hydra:6.0.545,FMLib:17.11.122.1 definitions=2023-01-05_10,2023-01-05_01,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 adultscore=0 suspectscore=0 mlxlogscore=999 spamscore=0 bulkscore=0 phishscore=0 mlxscore=0 malwarescore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2212070000 definitions=main-2301050152 X-Proofpoint-ORIG-GUID: _dptV2LSHR5x8dTcL9L_cbzWoXMlSIQe X-Proofpoint-GUID: _dptV2LSHR5x8dTcL9L_cbzWoXMlSIQe 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 | 77 ++++++++++++++++++++++++++++++++++++++++ 3 files changed, 120 insertions(+), 7 deletions(-) diff --git a/include/linux/mm.h b/include/linux/mm.h index f3f196e4d66d..f4b964f96db1 100644 --- a/include/linux/mm.h +++ b/include/linux/mm.h @@ -665,16 +665,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) @@ -687,12 +687,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 3b8475007734..3cd8b7034c48 100644 --- a/include/linux/mm_types.h +++ b/include/linux/mm_types.h @@ -904,9 +904,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 87d929316d57..9318f2ac8a6e 100644 --- a/mm/mmap.c +++ b/mm/mmap.c @@ -144,6 +144,83 @@ 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 defined(CONFIG_DEBUG_VM_MAPLE_TREE) + 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); + } +#endif + + 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 Tue Sep 16 05:49:14 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 6A617C4708E for ; Thu, 5 Jan 2023 19:16:44 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235428AbjAETQm (ORCPT ); Thu, 5 Jan 2023 14:16:42 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:43834 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235435AbjAETQO (ORCPT ); Thu, 5 Jan 2023 14:16:14 -0500 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 036DAD136 for ; Thu, 5 Jan 2023 11:16:12 -0800 (PST) Received: from pps.filterd (m0333520.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 305ISlMP001327; Thu, 5 Jan 2023 19:15:57 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=6pBshLkdqSo1VBylaZBMWLf0C9CRkqL4Ielj6sbUnaU=; b=0/uSVYP0iqqOMH4+VOHyRMvxaLnYEIC3q2cXrMG2TaAwFG4j5RuUpDvdDJcrIOiwn2Lp 1uKg5wUNY7S0l71uGzqlM8mEAjljaSZSGZ2UiCvREN+1kG7priAh1DnmdtljYPu3O6VC Xg2uGlhiHH0g9hGyHX+Z8xx1rAh7aWdsJHeiJMt8IsHyaCYSreOH6SoWS+RKFWMajO/b G9qjRbPdxrMGUTdc5Y/nFOg5RGjeE/pZ5qf9jGTnywqwE1tGq/W0gPckTBrgbd+9J6bU fpoMNcr9JiBSwaO2KNUcW64bJXEmc+RWWmcwN3wHhrAdvPmZY6mxEdXwjmJwBmJTs2ry dA== Received: from phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta01.appoci.oracle.com [138.1.114.2]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3mtd4c9qv8-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 05 Jan 2023 19:15:57 +0000 Received: from pps.filterd (phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (8.17.1.5/8.17.1.5) with ESMTP id 305I0WPI023380; Thu, 5 Jan 2023 19:15:56 GMT Received: from nam12-dm6-obe.outbound.protection.outlook.com (mail-dm6nam12lp2171.outbound.protection.outlook.com [104.47.59.171]) by phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 3mwept6kx6-6 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 05 Jan 2023 19:15:56 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=mESNu3vgh1FqIKJtvMkKthtz3KFgyPSib9OxH9Va5s95v8rwHlEKMcbILwIPmo9dwDc3Ufy5ak2vL9ldD5roBsGKnHdZ23vMHEUeEgeUQAcGWzsaeo+jlQOkI9U8lmLaKNLV8Sl+fl19a6S58ieRFHzIFMKTZnchBD5h4S+yqByDGgHKfa4YfZaU4zsI8ZGyAxmvLa0irf5RV72mdtW6KrH69qIWuYidfO3AacWBWqrPi1OFgepX+Bo/NsiolhrxdNGjIlCJ0oL/4i7Gb7HkVHIGTPkVHHV6jAVy8i/7ii+bs29KefooXh1BReNukTpMPEcC3zN8SF5ZwihqsZkC1w== 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=6pBshLkdqSo1VBylaZBMWLf0C9CRkqL4Ielj6sbUnaU=; b=nPniBzA+1vL2HJta3Cz9/qxllcJ37TFOvzRUM/lqNjdDzIYMI48Wc61AE4/tJVuIr9Ks4kgBMrfbNo4OUcSeMtcgmYkIJ/lTAKq0OiYxrknVMm+csQJo/NSctBVwUK++JZ/IN2m8bXdWSKlJgdDZ1b25Dk/um03CzhCHEMGqZGoxSKzCDRz+5R8DHJLmxZ5hMuaVg0h9eH3VKNEJ0XTWl2leGM+VcF53t1H5OpMyAKASwLw8fEqGtt75ymWDhsw0YThy7zI1thKFSccN2a+r5+CWz1JpuKCZF812kwkNLQighPXrdXtcZrP63QMa9xVatkDF1mH1YQ2dohaBBWEM6Q== 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=6pBshLkdqSo1VBylaZBMWLf0C9CRkqL4Ielj6sbUnaU=; b=smtdmd0j7uSv8ZQ4+Kd8r2rOsgFHaUbnN0au4q7A8KkJCd5AKsBcfX1b2N791wb5GBhdtpZShhOwe4IqrgS7UwLad8b6CRQXZeQ6UFFit6mOjmxzTvgvqBcDHNJztSJ5oDP6aQXArQ9OL+LZrN93S+Lsf70dkEtoBVzCnpNGzq0= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by DS7PR10MB5231.namprd10.prod.outlook.com (2603:10b6:5:3b1::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5944.19; Thu, 5 Jan 2023 19:15:54 +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.5944.019; Thu, 5 Jan 2023 19:15:54 +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 v2 06/44] mm/mmap: convert brk to use vma iterator Thread-Topic: [PATCH v2 06/44] mm/mmap: convert brk to use vma iterator Thread-Index: AQHZIToh2YIFO4Pea0W8K6URlm/QaQ== Date: Thu, 5 Jan 2023 19:15:54 +0000 Message-ID: <20230105191517.3099082-7-Liam.Howlett@oracle.com> References: <20230105191517.3099082-1-Liam.Howlett@oracle.com> In-Reply-To: <20230105191517.3099082-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_|DS7PR10MB5231:EE_ x-ms-office365-filtering-correlation-id: 6c9bdb8d-73ab-48c2-d315-08daef514498 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: Saxe1qIc1iPeCSBC5i+vKMiWEqLd4kthjqiKN7I4+9YpFjEdatps2UvAetwI3h3SnSUQrQuWOvNZKlKK9W+XGtEHtP5nXbJR3glWPKOOXEW8gQJHZa6vWvYpZz8WkT0nGybISpv1RSl8l+gU0KOUzleJxcvrwCubUDV2SQpg2FmWQXWYKGUbDwYgNEyaanyZEUKWrSFB2n4Z1OPTJA+30VS9IBe571M8cnsonEF2JkqJzI8bGEWdttraoyFdIA4P+p6U7DsXOrzBD0x58EP9IaCmDxMN/hGhUiKEpGYvuaTcJqz1EmIZgPSwlUognRz9J+9pagx627bPaoq9Xfy15xBne9mXKefkDriYVRPHKVO9aVMJjyp7UBETqs6pdyUibTHLijRqZDg0Oi1LhWLZkESNYKE0eOo/+cVGI21OJo59LqEU0nZ80cbPmswqG7iFsc+b9FJ+KZOGyIw5tRT9svoENaLCTOzxoooP5juyssjiItqrvqgVX+xl5HsPvjd665hOozOcaGdXGAXl1TdXsxQ3fmRs5nYh7+lELvrGSUSsLTFb4TK7/9vrAl0a/N8m6iz+smsg++iMOFpDcyEH3AMhGltBwTb72aEpaKhyWe/q/Tg9AHaz72fJg/6LG6Kou5JM6CoK4jNiX++G3W25I03fQ2iyy2Rv+/BJekuHoW8ELS/q2RHbpIn7Sir4t8tJmrXSdr6DHjia6SABE6h/hQ== 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)(366004)(39860400002)(136003)(346002)(376002)(451199015)(110136005)(316002)(54906003)(6486002)(186003)(26005)(71200400001)(107886003)(91956017)(64756008)(66446008)(2616005)(6506007)(4326008)(66476007)(76116006)(478600001)(41300700001)(44832011)(8936002)(83380400001)(5660300002)(66556008)(66946007)(6512007)(2906002)(8676002)(38100700002)(1076003)(122000001)(38070700005)(86362001)(36756003);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?Q?Zrl/LknJrixZ10kbDQMTucMNoxOwX2NzCcboR3l3dCT5/oAEeFlRYbj8q5?= =?iso-8859-1?Q?UA150RlZ766IqxSQTEU6MP72duSYxUXCOtlZcjL4iq1OC4tnBZ/JP02I+J?= =?iso-8859-1?Q?60PptqSwE2GqNNe7yXjAEfXNcOJ0V+ZIyq9MT1FfmEvpf3s5Y96yOoarIQ?= =?iso-8859-1?Q?PfjhNwpvfwXv1uD/E6UD5Zzdd94/v+yrNvATT7w3P75tuFozIVtOOlb+TE?= =?iso-8859-1?Q?ojSsZKL2avEis4c7JcZzl3AdBT+WCXXHpsz/jyJml3RTGyozy5kzeBq9/5?= =?iso-8859-1?Q?GnX23JGmdb9wAyiLQoqlrr2z+p4eDqwMPZFD0GaJLWypthbbPG6+lb3aiF?= =?iso-8859-1?Q?STo+AUYfGHOXyxC/zOlmOSRQnfHyfRTJEfgQIBkk+OGNCFGLwXT8vZ4l7i?= =?iso-8859-1?Q?LW3YOhMDB4E9s9Jr2yNkSn1lQ571/lE8slhzWjh1iVv9hhCc9TfZn7K48p?= =?iso-8859-1?Q?qAcjXJyLy9SNExHFTIqNRAG9dtWfV9YFSh57MObUxYc0Rxcu+bE1BC3/oi?= =?iso-8859-1?Q?0ko979GHLdJVKPjw/rQ0vT9GvuostiRZYmGQZJAQ8pbLUX9UdiFJOcACT1?= =?iso-8859-1?Q?iduB31qISzNjIeg1Cnm5vyawLaIJCW68XVE+cCeEKG2O13ml9TifZkmv80?= =?iso-8859-1?Q?QtVYEBmLQC2BXkQDTVTPaJLg6VlwtUmC5p95HHKWBIl8lZh3XWI/YN7LAK?= =?iso-8859-1?Q?zxlg2Rf5WOTl5ePc8xkydeHAKcVV6QllfC4igy6zx0tUnxredFBCAtPsx6?= =?iso-8859-1?Q?ylEH1MFsmoVPokoC3DQfICydeCM7Kg4xV8tOZoeQjMiKRJDk56xeApWhzs?= =?iso-8859-1?Q?iQ/D+NwsbjhDuiwzONRyL9mAC15GF+GqYtH7ReI98eFBPG8tNEf0E8QpmV?= =?iso-8859-1?Q?jE9/h9jmyP+w5MqdTOZRPbRWnjcdCyjJ1Tts89Qi/b6YrFx/d9AXQsp213?= =?iso-8859-1?Q?MWYV6SY5jnNiXsm+3WpcAaZ2V3+1nGPoHQzOP80YqBHgQpp1fwwxiOvNvZ?= =?iso-8859-1?Q?3MbSu1wMDheN2SpnxoJ4+izMmMsdrSKWpxtmidmgexusAmLcqGh2thqgzk?= =?iso-8859-1?Q?YP49On/UOqqhw+ju2bee2SUIKyYlCQ/jG6/w3HXERvQ8g6aNyFWVlYenZ5?= =?iso-8859-1?Q?Jaq4kLkDRRiy9pT9Kz7Ekl03wBIDrZvdSvFcND80ABl//twY5qeBiVCs3h?= =?iso-8859-1?Q?BS6HmLCccPysnZFH2TJBErtiIEkm52ZG1Nmwd4U7VoEmfd0CN51uvkMqKK?= =?iso-8859-1?Q?l+YRS7esTNz4oJzw2+R3iOe1tmKlB9W0vxSnhnWvL+4wECexSOEm6GCeEy?= =?iso-8859-1?Q?GMDnnVa7q7LzRJpq+5P84xfgsR+z9xvdcg9eJNaHtzNlDo/c4mSUbYdwr8?= =?iso-8859-1?Q?Xf121kxwQA8NoI2FSEI713YwcU9w0kaYAscBrj90Pvf5rVTYiNEk8F7Qno?= =?iso-8859-1?Q?g6TCId3uiPjHeFlTAn+p++xLMOW4u8J2PI+o6t/xoAjpQwROidRY6PXBaO?= =?iso-8859-1?Q?O2BECAMb+fsAClfWUcn1Z5IOg6AJ+veKfI3NAOkXwP4QsCdlnnv+6FvEQc?= =?iso-8859-1?Q?ubGMHbfP39NAI3FZcmTsNvQDvNSEBozEdNVtIfsiM2DFxZy3Z/3w8isv3e?= =?iso-8859-1?Q?vkpaHca9m6CC2gDLI/ZK5ps5kCQ4i98HteoA91fdafrmvVKwPbhG7ccg?= =?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: XLSdJBsG4vCGQgGyGf2UkDDyF1sYxghsNoj7zWfUPwIFaF4kf/UBS50HWnIlzCDxX1bwxBh0gjEHSgXa4ILOEoRKw13aLLIVeodk1UhmiKgbJ2xfALENDJkwQ+YHXgVFLQE2i7vLVoN6lfKsD9QmwTMGfcQSG46lhI7tNwJjMnXzRh3UpyuWZRNqQPXKPjKD/i0hiuq0pVoUG+EH375N7jBZ7sVw6j+B8C+Lo56dn+DaLTuxhFrz5cjUxDVIfY7CMwT3L6j6F87gnqVsG9kGd4Srdk4WUJDcpTICVD1hmp583ImolPxXLWLBT9iiKumqFBTZ01sOnIaDlh7vL8jc8Ci1saax3CPAh4bCAsoRHlGSTVqT0TyhuWpdJ1jx7MJvjJ4twSIYHhT27MBKQORY8zi5sZpkZDK61dLeFpSgONFQu5wNV2CRG2VRI7jNUaUH19q66inupTPdbV7pDNDENAj+5uCfeLk7qHjdk1Vx4e+QIc7juycBhrZawuBgcscWCpC5Cz2IsglhClTowjj8MUD/mS5AplbLLiiy5cAUfWWQN8PVS36Xc81dt5vLbS0kKfK+OXMo0YjeXn+AiamrmmfrsVe9q4KwQ3zYXmtsbWUQwso54CzwCmRHYbt6irECZeB6U8hHnaXplGs/9stONwpzRQPWgC/MoihfI4tEO7a0hjWNJzHLiw0QDyPiGU4KkNzED4Dz+1BWmTvYSE/H+oHkBgs952P8jXpEIR7I7v9+ZXNjFbj0cPy3IOdlZUxEMDGXxG3zUzN8023bsvglj10OseWiO0HJZToM18fyEtl4rFzHrfsK1Z9s6K0GuPSeRZlfR+5in/CWljG31SUo2vlQaY98GK0cGLI6qCkFGPXT4BbaedY0rOf5nOm5ds+qSem7sR+7fQaWr64/QGYs3w== 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: 6c9bdb8d-73ab-48c2-d315-08daef514498 X-MS-Exchange-CrossTenant-originalarrivaltime: 05 Jan 2023 19:15:54.2821 (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: v12k5sqgAGYYGEsQBbiBk3iS2FNCgeb2/j5p5K3/FlrljTVzOvXgvHi1SZFlKakUQtWd6gwji7kWwO0Y5vnddw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS7PR10MB5231 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.205,Aquarius:18.0.923,Hydra:6.0.545,FMLib:17.11.122.1 definitions=2023-01-05_10,2023-01-05_01,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 adultscore=0 suspectscore=0 mlxlogscore=999 spamscore=0 bulkscore=0 phishscore=0 mlxscore=0 malwarescore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2212070000 definitions=main-2301050152 X-Proofpoint-GUID: qA2N29BLl0kQjRFlJGCLAHpUBTXFTi9k X-Proofpoint-ORIG-GUID: qA2N29BLl0kQjRFlJGCLAHpUBTXFTi9k 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 9318f2ac8a6e..4a6f42ab3560 100644 --- a/mm/mmap.c +++ b/mm/mmap.c @@ -239,10 +239,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) { @@ -253,7 +253,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; @@ -301,8 +301,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); if (!brkvma || brkvma->vm_start >=3D oldbrk) goto out; /* mapping intersects with an existing non-brk vma. */ /* @@ -311,7 +311,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; @@ -329,14 +329,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; @@ -2963,7 +2963,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 @@ -2973,7 +2973,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) { @@ -2981,14 +2981,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, @@ -2998,7 +2998,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; @@ -3025,8 +3025,7 @@ static int do_brk_flags(struct ma_state *mas, struct = vm_area_struct *vma, if (vma && vma->vm_end =3D=3D addr && !vma_policy(vma) && can_vma_merge_after(vma, flags, NULL, NULL, addr >> PAGE_SHIFT, NULL_VM_UFFD_CTX, NULL)) { - mas_set_range(mas, vma->vm_start, addr + len - 1); - if (mas_preallocate(mas, vma, GFP_KERNEL)) + if (vma_iter_prealloc(vmi, vma)) goto unacct_fail; =20 vma_adjust_trans_huge(vma, vma->vm_start, addr + len, 0); @@ -3036,7 +3035,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); @@ -3057,8 +3056,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++; @@ -3087,7 +3086,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) @@ -3106,12 +3105,12 @@ 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); - ret =3D do_brk_flags(&mas, vma, addr, len, flags); + vma =3D vma_prev(&vmi); + 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 Tue Sep 16 05:49:14 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 B9261C3DA7A for ; Thu, 5 Jan 2023 19:18:03 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235649AbjAETSC (ORCPT ); Thu, 5 Jan 2023 14:18:02 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:44076 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235494AbjAETQZ (ORCPT ); Thu, 5 Jan 2023 14:16:25 -0500 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 6B06EEE28 for ; Thu, 5 Jan 2023 11:16:17 -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 305IUHtf030078; Thu, 5 Jan 2023 19:15:57 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=RFpRUc5Oex1lM3Q+9B7MFquPWyR86idsNW2D3KmMUJs=; b=VQx5jsf9tD2Rrzu95kZ4XE1ETQiBjXxHwAhzCtO1jxMBbeEzAv/5rpZswOpX/CGO/QuW KKrKvnKNt6eDTjJ9ITiw/3sifi5WeTZRGXJJ5q9zrBhu/BRpXS+pjyTjJqZ0oALEsIoj iwost2xZK0AiPWWkYNWLZQc874ZFsvaocGY/1Um7oll87PxoufGWJKv75nPSOYiEQ4vk OHTOIVLLXgZIcsF205tCxPVMFgktrjdFF0W4uuyWUjBfxiP8QTM5KOHxptsEvKl7hNhY 4gpfvkMAFIItx/td7Z878b9YPF3Ksvl/4/lxZrgXUanTHtScPlgP8JX+RpupfSiZxZjL YA== Received: from phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta01.appoci.oracle.com [138.1.114.2]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3mtcya9k98-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 05 Jan 2023 19:15:57 +0000 Received: from pps.filterd (phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (8.17.1.5/8.17.1.5) with ESMTP id 305I0WPJ023380; Thu, 5 Jan 2023 19:15:56 GMT Received: from nam12-dm6-obe.outbound.protection.outlook.com (mail-dm6nam12lp2171.outbound.protection.outlook.com [104.47.59.171]) by phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 3mwept6kx6-7 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 05 Jan 2023 19:15:56 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=oRv3h4k5wmHYcXyZyijP4ahQ4hzS9NeK5rPQlowu1LzNHPvBjcRFaA1afMrPDdgLf4lj18ah4HdC2QY+XLFSUi0M6nP306FHAAiJBznnUnGsNQLdubQvlK54o10/ViHcLyDNanawyHm+IESLf3jGsQLer9OLSq4cePj0dK4UzdFUlPtAImThNRg8/tlNUARct0g52VXDjgAhbftYN16JGXEdsjHhcQquVSf38N2KjW53yTi6ZO7OoL2+V9sngnwa4GIPTaKLwuEJDN8toGwa4nVyo/xZJA/2TIsUrd2mmYs43E9HLF0Jl4ATehp+7F63neDKMiO6xsTOYnbWs+u7fA== 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=RFpRUc5Oex1lM3Q+9B7MFquPWyR86idsNW2D3KmMUJs=; b=MB6pKE2unKl311mcMcrK3qo7f0QIYUi0pcJDX6ZNIhTGnX5Q50NQDK1V0oTSLmDhYYIYEd6Ik5Jv5+sYhOhq3QOWXUU6QUAK2kM5NLAq+ImMtI4z1C1dhT8rYv52zXhWwfg8zQ4Am8Gfo8ESxLBebaMcqyCc/gW94xIhf85pINmOtkrSFRqYHydcaa9l+c2uqsz4oGZ7cnr9fOFzobPgUQzN38jbdDKicFX2BBD5l+VYMFbf9FYio4x73wC7WkAvZtEr7rdfBBE8Z4SjXmZWPw+mSWVFa3zE87sFfPym3gSqvOBdZLIjU74UaU7cLdoK+yWl7OHSrX/Wexb+gjJiTg== 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=RFpRUc5Oex1lM3Q+9B7MFquPWyR86idsNW2D3KmMUJs=; b=hP1Mo3sFp8JXxZoaBg/wPb90vHQsW7/XinF47XNmJY0iz4q+9yeEKMGXhYKlcr8pyEOOHjT6Plp25+Zx97SF1QJxKyieXWvr5/2yvejbcU+S65XMZl8rn974lCMk3MD/CxEXPACYSffZbEkHx76zJRDU9LdZJwBmc8jnqqzcRLg= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by DS7PR10MB5231.namprd10.prod.outlook.com (2603:10b6:5:3b1::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5944.19; Thu, 5 Jan 2023 19:15:55 +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.5944.019; Thu, 5 Jan 2023 19:15:55 +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 v2 07/44] kernel/fork: Convert forking to using the vmi iterator Thread-Topic: [PATCH v2 07/44] kernel/fork: Convert forking to using the vmi iterator Thread-Index: AQHZITohHU+Q4KbdIEubWHMBaUK7+g== Date: Thu, 5 Jan 2023 19:15:54 +0000 Message-ID: <20230105191517.3099082-8-Liam.Howlett@oracle.com> References: <20230105191517.3099082-1-Liam.Howlett@oracle.com> In-Reply-To: <20230105191517.3099082-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_|DS7PR10MB5231:EE_ x-ms-office365-filtering-correlation-id: eeafaa10-b497-4ba3-cf26-08daef5144d6 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: e4B5OmhiBNvOJof8iAPhmnJF7Imyo8R6K0Y+WF4u7v7pnO2TDu4R3poziMJJtCWFQ6XaL6NnTZEtNH5Zm3WC02RMDbo7mMJV09aVEgzA9WSAVe/eBvcG3/nCd3HQj1pS7Khz0MKugaYFkkeOLqSbyiYCAgk7QYmlHPSTN5A6+/pQ412AvxXj83b+iqZCkpbEbZLdkTuZGDXOt+a27yyj9NDnmUzL/6QtYzpSkUvPNYWoFNww8ldw7o/9z0XLua6K9Qps/o/uPiJ+BWIeTxzd3WyraTgMjH25gNl/qx35oofaDEp7Q8YPfQvKZpDrbVUyLz7SwjWoyVuB/+O7COO66svYvkOyGSS/fRS6tfmu7nVxUtd1Npps4qktDn/fGMlTiRKFLuNuYxlAPMDE9xN59pbpM/Ydp+IqaBaoNoAdVq8XPElYZPxH9aAuCY0eDkZ1OQxdGVs9StgbPwyVPy1OZFUm1kCckGz1iEAv1uFv3t8d1d75JgS7ofomB8T7Q3wh/SjROxHBppY225oo6psuSncOsIvPIwsVB67mrlG54QUL50hF6MGqLD5PqN94EFoJIPghOQAD3MzL2ohjFmq/bu4BajZBSDQ/pL1sJV/5AYG6bM7tpcMcEo8kjvd67hSfuNXtP6BCMewcQQJJL+O3YQu01wehydrMMnXz4gDbAbCMljqq+vy06nR/OifanlK5w9/Ub7JcOR6+TcknV6aJ3g== 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)(366004)(39860400002)(136003)(346002)(376002)(451199015)(110136005)(316002)(54906003)(6486002)(186003)(26005)(71200400001)(107886003)(91956017)(64756008)(66446008)(2616005)(6506007)(4326008)(66476007)(76116006)(478600001)(41300700001)(44832011)(8936002)(83380400001)(5660300002)(66556008)(66946007)(6512007)(2906002)(8676002)(38100700002)(1076003)(122000001)(38070700005)(86362001)(36756003);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?Q?2HFtpwcXzAsh7znEHWsuN7fI6M+nuyAFD+xq/2SYA5GZA1m0G6eUfZQH1w?= =?iso-8859-1?Q?COvvsuy6dmEahAFDdv/+b72RFyCi/XH3mN4n3mS7DKi3WMW6yBKbTKFVFr?= =?iso-8859-1?Q?Gyci/u5Q7aJOUtmCov37iy+EgaoqLEAHnCru+/lYRMo9+2S2L4Cc+bvkrA?= =?iso-8859-1?Q?1M2Rw3LielpxtMOuiVQrqu9RN/WtX7XQV2WtPnsv9rHeWu6SFRXmKrpP9g?= =?iso-8859-1?Q?mgbGoMRA4D72vhYmezikeRNxRPtQnSHbgcbOGfhM+YmGl+MuiqQXt/gY2K?= =?iso-8859-1?Q?1Lb548Xk55FcNSJuKUE7QNzg2l8vvQypo9A2IRzD5IFwpL88LA6uXQNQWk?= =?iso-8859-1?Q?zjKkC6cERCO3b4P1iCoI1XFmEKXW7+xFO2H3yi9JSxFEef4kmscjW++Pqn?= =?iso-8859-1?Q?yzfgpS0FTwG+p7qLgjLxtALFVNHBZvquZgVDyFD4OG1eIX9HH4XgXz0kM0?= =?iso-8859-1?Q?MTm1SywSomob8TLwJ2TQk/fS0B7d3YnC+MQUeVo174yL7clwWyFO5utuo5?= =?iso-8859-1?Q?DqieMyfACFj5Ncd4oV++16m9BgFfZz2W6Wq628ZQR5o3VaGkotipVZom9V?= =?iso-8859-1?Q?71k9lu2LfEmpMKuCkCyN3YhTsbF0+hkr7vA+fSVEqQAgEONar+GLvJQWXI?= =?iso-8859-1?Q?gthmWPTXVb/JcCKFGvJsfm//JxH8A+69XrEYmC6W8tuTpjlwfW6bABVTI0?= =?iso-8859-1?Q?juQHTW3C7wAbMuu9sq9LV7uEigBT7Z4xg4rjQKw5Tmqrr3Whf+vdgC3t/2?= =?iso-8859-1?Q?K+f66K/PxUpgpjlX23YJf1OXRz8k/9jbr/cS+u5OFLP8Aw+KTjMs0h6j3C?= =?iso-8859-1?Q?KQxYv0aS0SSKiu8dsvsPlq8ENYVd95xHvOhO5st6J3gvYe+YRFitrJw+xD?= =?iso-8859-1?Q?ewMQm8Zx9ILV+yspYHB0S9FLeEOd8SfCorHqZ28YAbsf2LLwj61O5EFbda?= =?iso-8859-1?Q?z7IM7Yw1Tf5qJKUtN2lwdv32O5fdRXOQXdQjbUbKWu6BrpVPhgLjAb5J7y?= =?iso-8859-1?Q?+AOPCyLvPVkvnvz0ZQtJBhm6vtjpxZdL7mI8K3gCtDcUFeBtIl/4n9DJym?= =?iso-8859-1?Q?X3z46e90861jjQ09frmgRT9JUcgZxsuIOlkGRojXMczBJRMeokuCWH1Lq5?= =?iso-8859-1?Q?s3YxHL6TBxvAlwPqoUOF+KAmikSTogSx+dCOowAtl0sq22WWtqyUdxqNQn?= =?iso-8859-1?Q?iO2yNsm7dTKi4abD2vYiyuGKWY0u2BglcOpXS6UyjsuBs5M5bhYRkeFPwc?= =?iso-8859-1?Q?M3H3z2k2fpOt23s1EbJMzyfOTCnZdCjxI6Ol1Cwv/sToQkkABwBz03kBpg?= =?iso-8859-1?Q?rg41Ca+FSucRYODH2//sxC3OmgCMKUWnKw/7SqNDsxqDU5J0G2UqI0DGQ7?= =?iso-8859-1?Q?KwtSFcFpqIwG1hZnCGA4PU3N0UILKncMC2xWWVB23U5H6hc7UIxFAoXnJt?= =?iso-8859-1?Q?NiZJnIsWk1qgnLHIB8Jp2IJrHeR8MyNJ4ZBcQiiQCB/LmmM+8FxWtKi3q8?= =?iso-8859-1?Q?VK8ryLPkqhtJs1wvjk2JW6ChHG6PhO6xYbYbG3Sk0AIQqvfzmKaehbmpk7?= =?iso-8859-1?Q?vzZrdYTPRt/sNPbpVxaTyG25nbEWuKAns9Fj0A/jmfWq2/hjpA4jzW/166?= =?iso-8859-1?Q?EckUzBDN2D4YhZtQ7x9FVpifk6QQ4LgrNwbXyP18gnbyCqIPuVg/xYzg?= =?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: Q7DjI+ivd7RrLuAx6BillCpL/6kltF1L56hbgP142pbK/PlR8NorHEW+bdb9qxWkJxrW0cpYNxRZp0NEjgjhET8piOPEYpjRxVbxY7p4VO1upNl73U3L8V+EuW5kCvZ8SRFKTaf/aJMCZbTXxJBZqncylJeM95pw9eK9rfWCBouW6p38viTzwXBwTZYVyaQWa4ecegmnhr9Gr4HGtcIYaA6qqsuRDoBqW1dyZP8Jap6Wm8I9ax1M2/yrNbYn6YOQYXE0eTVF3blehVdrgzOh2GjEDEEo7ogbRDd7aOjC6i8Jepiuk+DrMSS3ixqJGfxJgDehPfrq3ni1lfH63Z8S5ShWS0skM+QeY4HtKLBQadC5fKA/KYDMLL/zc9rz6xqXpVj5y86A0tPyv3mxwYT90zVyF/rJesvfjTA3JdwuxNsrkpBy8zFiE/beYJPMJQWEpm3NhY3+0lqKhimaHIhPM7OSRkx0OjZ2p7RnsB0z7gPPr2cBUy8+MKMH3uZhO5xtGoquz3laWgf8z0wox53TYY0e1EY/CtD+RHrNhl/m9f5tTDarwm/rT0T6xeeE12lqP7zPQL/6MSVkjfrPcbwmcFSuct9EJMh4Y0K8c65m6Mm2qLTTqoesjmq5sXYafOnAIJWtQTXbHBWCGOpjPtw4wui2iSMIaeI3/PR0eFF4pscM1WuSlPC9ceRd5ClOBOVJ1cT3RynmAF7JF8hce6JtO0hoS7WcFabuG+OpzhkMshXR3aM7Q0dUsY9pabZxfG45ABLUftPhP2GI1WEqOfcv08QAA/Ff6JH5YccJtL5jIwEDo/SI1r/wavbXwkj9FF1uo+3HfGHHcfoZBJohQL7iAW/8TPR8X9FRKUd8zNs+oZxMfbeBuzHNf9duXM8aMqFXF1Gx2fEJahO1WRZp2LYYMA== 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: eeafaa10-b497-4ba3-cf26-08daef5144d6 X-MS-Exchange-CrossTenant-originalarrivaltime: 05 Jan 2023 19:15:54.5946 (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: 1YEgWlmn7BePdiQA2yy0gI69QhmXHfUfCNdRoQVb7QMuRpE5nx0a+9n7BIM6ULyBMYGdcKRty8AOgs4tMClMyQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS7PR10MB5231 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.205,Aquarius:18.0.923,Hydra:6.0.545,FMLib:17.11.122.1 definitions=2023-01-05_10,2023-01-05_01,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 adultscore=0 suspectscore=0 mlxlogscore=999 spamscore=0 bulkscore=0 phishscore=0 mlxscore=0 malwarescore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2212070000 definitions=main-2301050152 X-Proofpoint-ORIG-GUID: Kqxk4QL0H9sDxqon_DdEVcLOo0RHGTg0 X-Proofpoint-GUID: Kqxk4QL0H9sDxqon_DdEVcLOo0RHGTg0 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 9f7fe3541897..441dcec60aae 100644 --- a/kernel/fork.c +++ b/kernel/fork.c @@ -585,8 +585,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)) { @@ -613,11 +613,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) { @@ -683,11 +683,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)) @@ -702,7 +699,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); @@ -712,7 +709,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 Tue Sep 16 05:49:14 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 B2783C3DA7A for ; Thu, 5 Jan 2023 19:16:53 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235152AbjAETQw (ORCPT ); Thu, 5 Jan 2023 14:16:52 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:43812 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235322AbjAETQN (ORCPT ); Thu, 5 Jan 2023 14:16:13 -0500 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 27C838FCE for ; Thu, 5 Jan 2023 11:16:11 -0800 (PST) Received: from pps.filterd (m0333521.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 305IU1Y1029393; Thu, 5 Jan 2023 19:15:57 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=B/nkXQcR6JgrRvx02poR9ZZyLxT8+fxjXFELOkpJf40=; b=B5LzgGacvlx8Aev8N/DPm+qG1ke/5PiTDHkINkdoabqMqv/lfBb+KDLZQXbs0UOYK54J OZOHi4TO0NRiP03O9h7L7n4JyfyTofRy9FltqhuH7KnmSWGmGET96onigtkqpaF7okyK yfmh9gcileBCXhDJKP0lkX6EADIQ0qUNSX1ubHuuRljpBjSYZzlxZ43HdXTP72zlx3jR T7h7th3tZPVAA+rzjZc5GX4YCVnudCesSS3xVsce0ff+04Oe/xOQWEQ+8CajSzaD3s+I C2ZBiKTXFjdq/WFa1lBB2tcK4sFWiAWlG9iZ1HpfMkxmndvs5KYVo2e8NpszoreKhB17 0g== Received: from phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta01.appoci.oracle.com [138.1.114.2]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3mtc0asrkc-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 05 Jan 2023 19:15:57 +0000 Received: from pps.filterd (phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (8.17.1.5/8.17.1.5) with ESMTP id 305I0WPK023380; Thu, 5 Jan 2023 19:15:57 GMT Received: from nam12-dm6-obe.outbound.protection.outlook.com (mail-dm6nam12lp2171.outbound.protection.outlook.com [104.47.59.171]) by phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 3mwept6kx6-8 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 05 Jan 2023 19:15:56 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=hFD8Ewvko0ITvIQRWJggUgfZj2TwbkguPAtg5Rx7b5oKxDo55lOtg9LSXQ3OWzzqDcmo9rxt6ltTXQj8K1WbeolWNygqRNYkpPoXQ5ErQrkbpEUAfMsaguwzIF8XubufuD0WQrz6qkPfHbmrQNV++NKRQoSB5kvxDPP7OddWRJt8EU3RdInvyWCXtY1W1sDGwqqtEE1tFRz8yADcmF26WiMVjXYuyFqZ/IagoD+i0fh6YTl9uQCeo1CKOG6/5RRqMdyFJJTJgG+9f1hinZtscPCx+YiKGzlb9eHubZrp66hILd3edykSMjhN9+FaxGnSGksVAXW177ol3h+5jVTgTg== 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=B/nkXQcR6JgrRvx02poR9ZZyLxT8+fxjXFELOkpJf40=; b=a9dhmJqzEkEkPVYR5GT7OoeA4GsPaizAax0OIh+E97pa0JRQDCtwdmMRJwdGbO8/CWuomuXpF4/pQphoS/zwEdSzTxKHtpIA8YOHWGkTMXGxCaYt8wvG6jcXXp6W8jMXxnTxWnrITwS3H+OVZmX7/hGCJri8c5bDni6+a/ZpN7AhIGor3N1VO6Enmds+llkA/Z4wW3u50BZMYHzuEnDtP1fKCoDpHGAZPB/iITKRhJiiJkYXXYLB+/jxss8kY2Kx2pgi+b90KcGi1hKeFa4seDt9LUKlpBgKa0hYyt91gswsrmGj0FUwURWWKN9HIKmWkAnnGdXxKNfe9vWaRczylg== 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=B/nkXQcR6JgrRvx02poR9ZZyLxT8+fxjXFELOkpJf40=; b=gDRe5CW011DJzvggQwJ7+Bd13/cdlhAjdzZkxEDD34zGupn6wst/7w5oHWKHAXhrNpqT3PrexITpFmx8kYwqvaShdyodhHK7NApQe8h+oxT6AjELrXwlNqhvRGywg4LG6o7lmx0nHoDNKd8MC2OAXBF0DMrIbtPDFdCkuT/+UDA= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by DS7PR10MB5231.namprd10.prod.outlook.com (2603:10b6:5:3b1::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5944.19; Thu, 5 Jan 2023 19:15:55 +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.5944.019; Thu, 5 Jan 2023 19:15:55 +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 v2 08/44] mmap: Convert vma_link() vma iterator Thread-Topic: [PATCH v2 08/44] mmap: Convert vma_link() vma iterator Thread-Index: AQHZIToiKIPpHVcrxU6+W5JmfFjXIQ== Date: Thu, 5 Jan 2023 19:15:54 +0000 Message-ID: <20230105191517.3099082-9-Liam.Howlett@oracle.com> References: <20230105191517.3099082-1-Liam.Howlett@oracle.com> In-Reply-To: <20230105191517.3099082-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_|DS7PR10MB5231:EE_ x-ms-office365-filtering-correlation-id: 69aaf960-df02-4a02-68ea-08daef514512 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: G9eA3WtJbcA2ElWZ/iYEDrzYX2PoeKhao9kk/oyAS58jLaUisDb8wg+T7qgJzHYq7h0Xs9yRxknXE1YueP+NNZrr36BFI7vsXW+HCWaq60Q1bAQQOamqGWgeFduTuoXvd9EyiQBHY0L3v/EyL0QqR2o3B2yQ3ykdwBYBGmE9o3yxJUC6bQF5+qACKj/Euck0GRjtWtxQYHYdvUCLMQU+Sx6IbT4tnE1DFnNvjliYWTmvO60cwnusjT4u2TVKKfQpZfA0Tnc4uYG9Zab6K4Dkn8/n3PyQUAeCiCBCtgZ98cklInfuouXf7AcuRadszqcNbjxxB1ZGfQfkWEev9kWciuuqO2FcFVHosorEgTatCEoBuKZUINOomV55aKqdqEzMDjfggpk/R9zT3ssrY/Cs4XhyhzVyP/rn2vwzCriueEDzAxFAeaCAbtSFprXP1PgsLA/38spMK+qhft4fBzPYXiuAI1IZQyPNPCv8FXy/CoMmq2CDdZSIOG2UJSJ83eVhXnAUQk8l+xxnWB1Kn3HQCjfqzuUj8/bEm75LTWlt687AhPnE/n2dSH3SCqTFhmgL5fUsXO6unjfW1+BHzcU3zVhySl101vrKSKt4O4mp9j6tg/Rid5ZJofVpVC8weKrlITR47LAiurI+ga6evcibyAX2vLPsBUPd6EpIEBky3LmQRy/zmSPQaKpBNL9+TLl5uLpvXqcdSbMFxYIk5cgT2A== 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)(366004)(39860400002)(136003)(346002)(376002)(451199015)(110136005)(316002)(54906003)(6486002)(186003)(26005)(71200400001)(107886003)(91956017)(64756008)(66446008)(2616005)(6506007)(4326008)(66476007)(76116006)(478600001)(41300700001)(44832011)(4744005)(8936002)(83380400001)(5660300002)(66556008)(66946007)(6512007)(2906002)(8676002)(38100700002)(1076003)(122000001)(38070700005)(86362001)(36756003);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?Q?++v221DaozvkfBWrDMeMeXgJVVWrWR2tqojAuph9UOx7NkSKjUCi8kLNh7?= =?iso-8859-1?Q?AzC3FaeTHH9One4tj4YCylvh50TBOzUf8KInOPt+CG7uaS7B/+6wJUWMvs?= =?iso-8859-1?Q?VT4h+ulUUqQLmyOklupi9J42CddKf5l5PffGrj+pywf87K4F64eBnTEYkO?= =?iso-8859-1?Q?q0aT+NUlGHgmRapUyeuOG2rHW13QNvTAWU7VGgokwzsxEPhwEW0nTQL9Es?= =?iso-8859-1?Q?HyNgWAhwxwd1x8R1IDc4vf3EsURIsCpvpvGql20ITg+7rQs/Ewl+RA0GoR?= =?iso-8859-1?Q?UupLppFZABkE2UXqZzI5y9N5kuYyO3cbk2jrs4aRrQ6vkkCS3l5+7iKDBy?= =?iso-8859-1?Q?O52LGfL5Z1R5KaaiOW/zahUoHz+AD2qrVo7zj13X3nht4C8uDjmYNasbWv?= =?iso-8859-1?Q?V0ABEyZz1buJuUXejzWeT8lIAA9LaFoUOVJ/WBNuMoYJICsd90rVS9VWke?= =?iso-8859-1?Q?ZwSt1KW+GJl6UARNTJRkadVzbgZMBR70Q5WzOteX3DNb35cgAlk3/YNZcU?= =?iso-8859-1?Q?8zMzPCPp/T75IykLzTFWKtuWvSw2s5tWrWkh0XoGYb+KQmVN5U3zc+MUla?= =?iso-8859-1?Q?u2AAFToeO7CHtqFi0a0hCFa3PI3Xa6CbSuF/LqsryNm0dqFDhzaIlTavHq?= =?iso-8859-1?Q?UrV0sRo+vUH+tvqdGVnXfcetavcslK7G2ONFofN9N8ZUkPTAHwY3FFk2uQ?= =?iso-8859-1?Q?JAxzopOSsxH8Oik2OX0AOoHA5eVf6a1iwEZ8ru0gSUR1gmFzEZF7moP6ps?= =?iso-8859-1?Q?YvHlm4gUzlU1RMuGuPvjcp5N0y/Xn+dn73/b3E4Uc/7vQ8M1rIKd9FRmbw?= =?iso-8859-1?Q?yAsrCdLqpFgGbRvKAvkOIT/03aSS65m5bLCK7hRYECPh1zmmWDVtTwaGeS?= =?iso-8859-1?Q?QTVsQXYZMPANP0Z8csmTdXOaxJ96S905UIjDIm6cQZodHZVUXV9fQgQEi7?= =?iso-8859-1?Q?n/jmX2O5ITe4fHobyXFoOuwoM31WR/vj3vb58WgF0aWqS/MOLaPPR8UaR1?= =?iso-8859-1?Q?0E9vWmFyEkiK2SkwQNSSA9+T9iBa7M9Ruj5kVZKGmBVc8QLcpwg1Dk8sZH?= =?iso-8859-1?Q?QV5gtRecYVtTOJdvOSEyeRefD65p0KSe4aKzhOszP+5KzvZzujYM2Ndelp?= =?iso-8859-1?Q?KDeG/SA7gNxy7BetFHItp8zmBJKn+7osLVTqUi8iS2LHumzFRlLiq3OJke?= =?iso-8859-1?Q?Bok96diZoKfAIxUGr7PYb02XnolhFzKfRz7jkBsh2ET89XyTW0l3LWt6ur?= =?iso-8859-1?Q?6ULFDIY22Hgkg8pWP/6A16iUGon1qDFAk0lL9gwpKGWwr2Acek5GLL9B/q?= =?iso-8859-1?Q?y+klanc5A7UFHy8yzF/EZArw/KDzW5/KVtNPvTMF3yK9YLS+9J0i3CzLpu?= =?iso-8859-1?Q?ypNr5kUmnZ4/f46cKVyJyHhEvUvQRVz1b5PnMi7f+iMAB/3HMhyP7rWN4L?= =?iso-8859-1?Q?3zr/CPBw7xJFJ71HemWZEIyWEW50UFWCB91XfK0DDS1t/KwqrXH3DCAPiy?= =?iso-8859-1?Q?N9YD90w7MXU71vrNutT24Y3mtwMfll6S7ZfouBtBNe0Xx6rPXqjqSMwDaB?= =?iso-8859-1?Q?c96/TWLCM8vtuBwhDkW020Jubxx5tE4sf7IELAx/snzClBKTatlkRZ7isP?= =?iso-8859-1?Q?FfXJnZ+hX4Jn9t03GqAHHA62snvvzFsKAkcQbWad9RBJl2F3g7at8aMg?= =?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: FyDa+vA4p/8K922ZtlkOv1LadkQZnVqQ0CVdkjH74vMlm4aJZWhZeNtcYFDcki+D/8QSpZ4SpZIYQTNGrggOnQPNJxXhuYgeEkWUvwVkJU1uiRwjaFqtzk6S3TZ6uoyE+oKyY/NMlDrytNs/XzCVcCfeaxbj4rqyUkDzZ/Ea9r14/I9jIeN9HOBubxEfmFDiGB3IePxRjfRAsu63B0X7Ulzh3auKcK9yHPtr96jZWsYJZPa5SMfPUtSKENisG6PZ6WQPKga86Zum9Ce3veu2HgBWkrVs3U8vtZIQddRhqX9O8zQyzQ2oWTPh9e+T183nb/BiWHY/rfQzK2b42hC6xgzSh5rr94B/Ieiq3vOR1ubFB5jchpi1x8S7BWtQfpqkPhICS26VRSHEko8Ar2/VOKCpw4PaFmNLiLEvK/liNqZbmgai/JEU5lG0z2QfOCqyGJxKqwpNDJB2A4osmDYe5KaqQNEaYAULmUq0XgtbU1pBB++hzyepD0WPAXAHTyJaO9FmqWwwDKBCB7RD2pZtd05dNjVSrw13VQ2DaZAhOHlRaQDIw2xO8wEAcaS0z+/J8B+TMfEnzUyD4WvfPgVhYsKZ3sjwqWfGcP47rHr5JHaOwhdgpgvalIJjyLdHRLxvxawOO0c5C1fa621vQP4uaOJGuXEFGtpAS3/I+hmFsBGOsk4VOD1kE0PNzc71e/HoBf3hVBSfaNLfPlqB/25/Pg1k0xyeu9tBUX3RBWXqidQQTmTf/rtr4dsAIc2C9LiugqpK9I0yl8cny46d0f3H0ro+AD0f5jJYka0Cu850MG0Z+PP6hSOUep471ljHwz7ElZkZ2MuBSjsmCFW6p7CnqzC4qzB4+yCPzsJvrD6H9he20OJVehh1DK0XvPXmCW/23rGFa0wFipw2EopCRspSeg== 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: 69aaf960-df02-4a02-68ea-08daef514512 X-MS-Exchange-CrossTenant-originalarrivaltime: 05 Jan 2023 19:15:54.8445 (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: Z5xSk9MUDIr2eqbp3Snvw+2vbOfrLwK2E6yl1rh8NaPXrbX7pjldzw0ZGbgL8OqD1LsMRloGouE/8biMNMC4PA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS7PR10MB5231 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.205,Aquarius:18.0.923,Hydra:6.0.545,FMLib:17.11.122.1 definitions=2023-01-05_10,2023-01-05_01,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 adultscore=0 suspectscore=0 mlxlogscore=999 spamscore=0 bulkscore=0 phishscore=0 mlxscore=0 malwarescore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2212070000 definitions=main-2301050152 X-Proofpoint-GUID: R6i41NmlELfhMMfXABZWvj5BPDvVm8cR X-Proofpoint-ORIG-GUID: R6i41NmlELfhMMfXABZWvj5BPDvVm8cR 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 4a6f42ab3560..00b839cc499e 100644 --- a/mm/mmap.c +++ b/mm/mmap.c @@ -546,10 +546,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) { @@ -557,7 +557,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 Tue Sep 16 05:49:14 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 64650C4708E for ; Thu, 5 Jan 2023 19:16:38 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235301AbjAETQg (ORCPT ); Thu, 5 Jan 2023 14:16:36 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:43814 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235428AbjAETQN (ORCPT ); Thu, 5 Jan 2023 14:16:13 -0500 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id A357495A7 for ; Thu, 5 Jan 2023 11:16:11 -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 305IT1N2006652; Thu, 5 Jan 2023 19:15:58 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=5oddPyVGxo/ITa895tY4016/N2FSt9g06ZqP6l9igmc=; b=tsGlMJ7PgjY3XQH6yAu7/0tpNmBuKOWmlKh9WeB+hVJNxHNs0HXpb6NkM1QQUJy3agpZ cSROAF5iVSDIEEMLgcRcOTp34MVS6WE4teV9KPWRIW/OaCgb636cSD+0i2tptzLFuQfw LUHTBbFtoDiHZKxnZepGMBugQE+tOploYEIFhAEMiCL4aNAfNYi0vLZqjnFArutw4xFX yOPDU9da1cxGv9F0klJeEh+tQokEpXSlS3Ulou+pdUQ+XjkXCrjzzfRdAtlPNVLWX4ot +UwYQrw0EiVJMHDc4tmC2qqKn0jhe9ehr9YPD+ml+hSzkixCdRGRDqeA8C+oItKzgQtk fA== Received: from phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta01.appoci.oracle.com [138.1.114.2]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3mtcpt9mpj-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 05 Jan 2023 19:15:58 +0000 Received: from pps.filterd (phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (8.17.1.5/8.17.1.5) with ESMTP id 305I0WPL023380; Thu, 5 Jan 2023 19:15:57 GMT Received: from nam12-dm6-obe.outbound.protection.outlook.com (mail-dm6nam12lp2171.outbound.protection.outlook.com [104.47.59.171]) by phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 3mwept6kx6-9 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 05 Jan 2023 19:15:57 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=eKjUbf94U2s29NcS9nTNjgML2QsysiVvjYdieXnahBhvZCNaxtvyNZR8+9G11huKDdvu+YRQ7vrYS/YGtpW0RBAE636p88KEAaFmaCdBidM81QJruBgI+PrCgIPz8BAguPvvWuRY2t3WY6mZ81FksdGMbprj8SpjBVnZDPRL9RhkE3IfHmAEYg0gKrAmLCXaVRv//MRss6Q23q2+SRfzkg2lWymFIEUvA95V/proDjc7QHQOi4p+OuU6ON+JoQqgAf2HO/qwDSvJa90Hmci/sVhkV/mUpHS5jL7rFg4InDZyNsGyuE7S7zJrIsQt547/sYtB/gbmI6B1/fKMTnoWIQ== 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=5oddPyVGxo/ITa895tY4016/N2FSt9g06ZqP6l9igmc=; b=Ag5YjKXUAUcBnXDg8tql6/pN4FaZr3i4ZMRpu0C+Hohko69itQIDB8Dh375YPRyCy3u0ah5L4bNsWuOvgWBCDNedXn59igW6LqJNBVqzzEPchSPjnIQ2IF2C7BlgTsUNFU2uTr5q7/r5cDUEMG15KW4CwCo3CuL2E7N9izG0zWFUT2iPiYm5hL8RIivp/kLrDMs9zfrLkzulXE3t1qadCvNjedY5e4ZbAE8wTiRpAuhBv/74YnuJCiTySiX0Mbw9VxmEWjRCnCyHV8P7CoLNWU2fs7FEcd78Ec7hvQ+o62IwyZmk5abJY2d+HY6I6Cz0PCE6kXp5kpBsy9VB1f/ddw== 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=5oddPyVGxo/ITa895tY4016/N2FSt9g06ZqP6l9igmc=; b=ybW2BrbYlKzdggG6h9G7s8laTiXeh4SGQMmfPzEQmvJ2CO6hFRIINK35cPvOP3nXwpV+9kkm7xAJ0X7/Ow8lEyU8mpfcWcCtPItxfITKwVzXLSL7yALfMCqOa3nj7k2WWBKq2Vpyxm5B7qOKcXWX/3wnAuQUylbh7pxKCzYUwQM= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by DS7PR10MB5231.namprd10.prod.outlook.com (2603:10b6:5:3b1::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5944.19; Thu, 5 Jan 2023 19:15:56 +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.5944.019; Thu, 5 Jan 2023 19:15:56 +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 v2 09/44] mm/mmap: Remove preallocation from do_mas_align_munmap() Thread-Topic: [PATCH v2 09/44] mm/mmap: Remove preallocation from do_mas_align_munmap() Thread-Index: AQHZIToiC4A4L/Ep90ijxDQbmF78WA== Date: Thu, 5 Jan 2023 19:15:55 +0000 Message-ID: <20230105191517.3099082-10-Liam.Howlett@oracle.com> References: <20230105191517.3099082-1-Liam.Howlett@oracle.com> In-Reply-To: <20230105191517.3099082-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_|DS7PR10MB5231:EE_ x-ms-office365-filtering-correlation-id: c0f0e2e2-ff85-4646-299d-08daef514555 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: nT1002kgSu7KGJukdMAwi+6ZEdbGnBe0cJnu/ZqiYP9oVAnUHZAzFlAGuOpyFsuVYZFSsTcKCZK3+ypWam9WgdoeBY6VchJ0lO+yfJThux2Y00EOgvn37f6naQcFrTABsMz0MNNGjfRdk+6L5HVy0dzX9fhmCbRwZM7xcxEL7jyH8hi8eGS63L2hdjgCmBkKiT4ZClAoBFfATcDAQEWQ+fRj8VLGO3WDK9SZgN187hCm0CQ0B/ANzM29TAu5zDL6SHtx/gmmxOl+chbYkdXWfFXK5Qr9X8G98Sp5fdW7RNuUlcRtodVg5wKrZmTgKYMWUlDRvj3wdFEqpPNZ+SQY8af+yEDbWg9N6GIK1Gt+a6Zz+If1c3V5EVqeBps2OC4CMeLzxF8WLHvoUxFZYKJMXcT5D1gAfMgufdolXuPksKMsw3tdlmFUPbkwuyTV8To7TDD3KhmAcjsXTbTavLTGSXwF7T/n+8vymV4zHchf8vmzThATv3fq99CG9yIUa7mjHE66kRwLtb8nnwAeqqQHQrOfKgAOst2+wmlFHRA6tonugMX7MCOT5CrhobI/o8s26J6dklRDhB+s0a6LBh2EpjKh+YRsGnSM6eoqDqD4JUHDKa/pmIFdmKlXVj0gSejHBEb0sn0FGUSiXoB3ix41vzLmI+HPF4IMHO6umj57ZY6WTTLKadZaRSDtLmMWddRxSzzJxu30SckXVxo5raYNog== 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)(366004)(39860400002)(136003)(346002)(376002)(451199015)(110136005)(316002)(54906003)(6486002)(186003)(26005)(71200400001)(107886003)(91956017)(64756008)(66446008)(2616005)(6506007)(4326008)(66476007)(76116006)(478600001)(41300700001)(44832011)(8936002)(83380400001)(5660300002)(66556008)(66946007)(6512007)(2906002)(8676002)(38100700002)(1076003)(122000001)(38070700005)(86362001)(36756003);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?Q?/MRM92/yabb/EqSRbik+4wbm/HwSzeFZFcMEAfbx0qnD4euMRYxKXDOL6m?= =?iso-8859-1?Q?WgFJGGLlCru7m+9gNunBy1/OF4mb6qm0oprOxPIF0OV6Ix/a81L7/K11Es?= =?iso-8859-1?Q?9wr9PZe9+IzyqBl33wWj5/ybQgwVEEk9bwrwvTwNJHcwXSS374qSG9IxKM?= =?iso-8859-1?Q?bvUxjvKcZL8P/5tDGhj6cQ5NS9Vo/XG1nm/nLuJXyagLgIteWay6GOB0x+?= =?iso-8859-1?Q?7TLslsPHwfsqtEpBh9thviy7IJJqzpaL6/r0w3kN5++G/Dt7X7ElT1cPHI?= =?iso-8859-1?Q?4oAPXtr5Dc4lw5rdk54/hKomqTovfwFaBvHEdwuO2C2C2wU7wFTd8GNoHI?= =?iso-8859-1?Q?1nEO/NqJvJWIKLA0WwmWxzHetNPYtBC+SrOjgwTE9ymfNns4lUR7JcKN7/?= =?iso-8859-1?Q?wuhZuyTadGR1DN4OlTl6QbHRjMIUvs2we7U5e4vGID6lVXBD8nBiqfcxw9?= =?iso-8859-1?Q?mu7WS1gtDDNE9keWBhfRafTIUpn0De88jSwdTQjzMCpxVgqTTIoLFbVqr3?= =?iso-8859-1?Q?oqQt/ukIJq4eTp4WPz8KzUoo6L6VyveF/SttGpZVqC61xXXdeXCrc9huol?= =?iso-8859-1?Q?XXK7jSyZ4Ew1rrWx6y5iQvi+HNEtE8gVfnphXhY91TvbmMhBOXZgyYRNpG?= =?iso-8859-1?Q?O6K84ectZjoVA4I/eg1gVW+KvtjF7KSmRGZl/ez6A5zoI7yO9ScZtnsyBF?= =?iso-8859-1?Q?fhsRWI+4DlEoBDNe1C1aMQsAM6x1TveES6sFbWHmFM8R0cjDVMWnBDPdQp?= =?iso-8859-1?Q?3ZNruB9bPneGpwhgFH/wOXAMfCB7SeKEx2++8DUiQliJX6ocOx08do6keL?= =?iso-8859-1?Q?uD6xPwnONd42FGM7iWtETZwd59bb4X+9ZunCgGNxUnLzB7kVk1wtTxy4jJ?= =?iso-8859-1?Q?sjb99OluUlfsqHNxD8GbCdi4lmH9IE35tJmZUQd0xLFgnH/RwWwuWdJQAy?= =?iso-8859-1?Q?302h0DRST1HPe4p7OsgFQyX6KImkg4bIAB8lXoHqx0vBd41v4nIPd+20qs?= =?iso-8859-1?Q?TX5837fiF50BFepn6b+OJ8Jw6DKmLqpCal3EMXxUL0fQzSlozxvx8hhvEF?= =?iso-8859-1?Q?MZnN9asdbylhvorHi5YCZEE+iFKU8RcICLsReGYcGYfcJkI+fYShCY1UYA?= =?iso-8859-1?Q?XvTgR9JYSog6WDM9n32FgEp676+1WGz+4yz5djM40FCnMq3SSBAonJsj9I?= =?iso-8859-1?Q?nVUUBVce9q69eHz+XAVHndNdmRqtg/4U2KK/LrV4EhdT9hbKo8z7umvwMP?= =?iso-8859-1?Q?Tv27ODB6LDakZbuTCNA6xVX1RLA67FwYsyu2dskOfI4kOd282P8AjvOZlS?= =?iso-8859-1?Q?/UfLp40DD+aGiVGuWB9pXiazMFIa0WxC4M5Gz0CW5GixWovc6s05JiyuP0?= =?iso-8859-1?Q?K79pnPW/mnV5AsbO6wqyeT2FB5YUyo7qQWzsA76VsXW6TAI1v4I/1z2uH7?= =?iso-8859-1?Q?IWTGiZWk5mW/Rnw55RiJ48eicHXgKTZjvrfYaGKa1TvFJCqmX8XhHDyMN0?= =?iso-8859-1?Q?tDVtAdNsBMcvYTPO/9T0t7TV+UOv0TBkm6KF4uzIJBCdqEZDuDvMYIFgRB?= =?iso-8859-1?Q?Kqv6gCjCQ+CsdJVhjHtY5zTi8xL2tQE8oOHm0DhSk0XCQhTWb+BjBsdPMr?= =?iso-8859-1?Q?J7muWd49dqngB+HZX8frs7phRDcnRU6QaLrRkJlXiUUsfuVrPHANwzlg?= =?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: G5ea/f10URU45VdsST+cT0vaqMH6vQ5M6uQsrlw01hyuBCWKsjA6W2tG2t4u6CPJ1pHBXkcvRgQtFdRgicuMIEqEe5jisFBpC6IYA1zMJFrCt7JyfKWNdsDXqrs/c/t1qAo9RhHj2M57QE2pd1ph4wV43usgZJPAk5/U/ZO6CfEPCfS7V/zgH3IMlxazZ6AJI2WeYLw01U5SRPD6dkX5ppT+wpUlaIgOtqatDQ2phEw7b5cDq/t768eo4l2/nrIFcjhMX8GM9b8lMdNhGKBTJrZ6y+jOsuix+bgKods9EVCCU2xo8gMN0IJpcOQubGahZ2NgpIQnKvCtRc1X9xKJRVJwoF+T0BsTtgafusZDq4xY5lygokNvMW6rOlhxWywzi+g8rD30MIXWKMrXjzeZ0XLn2Od6uZNbuQLTsOwef09FlobzmE8sn6yb7VH8W8h2w74Er9aFou3SIrdPUXoCM/M2Hm2c6bOk/FriosUSpWxWMJUAZu9cOuQNGtukPqP8WYubON6CY578fUZ4mpjqNTlGtZRsCrk6uu5GcRHT+EaTV9cp/4tmtT1Qc9mSPDRC1wsVJ0W3vLyqiDl8JKrx5o7cZHOrjCegOKID+YoC7kzLEnkqmaTQYmOh0t4Vaa99B8FlQ/Wj07uFXEenDo3Ne+xwGQKquEUJ5Rxlq1gxCQha67MEzEd5mI01RD+ConCeg/rdeR7c0fJp5Ao6TdK6I5snP3A7YrO4G3nJcHJAXJg2oWVhRCZORDVJfrGsDRuDKI119u7LudthSmn98zdSvTrtAgvBvFyCLFIE0vKt0qpj6NTNPlEnX3ETI8sISQ5o1BAIsRa70vj6bdbgbdmW9MbTNmKTGF1Y7+3D3qbnXcSB+y1XTijMxOX+aMq5TKol+PGgiSdWYnvZEkV5ClZGEQ== 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: c0f0e2e2-ff85-4646-299d-08daef514555 X-MS-Exchange-CrossTenant-originalarrivaltime: 05 Jan 2023 19:15:55.1726 (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: +c0m1YblSfsj507fXDwkJbgUO9Lwjxte7uzG8LLNKIKAvy4X1TgnXRTzh7QvRabtjXHZbm50v2jKTks9ztYKHQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS7PR10MB5231 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.205,Aquarius:18.0.923,Hydra:6.0.545,FMLib:17.11.122.1 definitions=2023-01-05_10,2023-01-05_01,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 adultscore=0 suspectscore=0 mlxlogscore=999 spamscore=0 bulkscore=0 phishscore=0 mlxscore=0 malwarescore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2212070000 definitions=main-2301050152 X-Proofpoint-ORIG-GUID: W98OwjEx5t78S8lfhLtWEBlte7yydFIE X-Proofpoint-GUID: W98OwjEx5t78S8lfhLtWEBlte7yydFIE 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 00b839cc499e..238b10ca9f9d 100644 --- a/mm/mmap.c +++ b/mm/mmap.c @@ -2384,9 +2384,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. @@ -2477,8 +2474,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. */ { @@ -2486,6 +2481,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) { @@ -2495,10 +2491,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 @@ -2530,7 +2529,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 Tue Sep 16 05:49:14 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 73792C3DA7A for ; Thu, 5 Jan 2023 19:16:58 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235067AbjAETQ5 (ORCPT ); Thu, 5 Jan 2023 14:16:57 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:43850 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S234806AbjAETQP (ORCPT ); Thu, 5 Jan 2023 14:16:15 -0500 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 89F81D2E0 for ; Thu, 5 Jan 2023 11:16:13 -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 305ITc6K025555; Thu, 5 Jan 2023 19:16:01 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=FcupecLEwSLM7aTT/VbMXN4UiLJUyoURHuCIxtP5yW4=; b=qivSy8ooQPD2cNSfWlmmC8YTqkIFogZSmaJnx9avGaYiUcxfXd/QRDRJGFUbP7kdgDtt d66/epnbnQ3PuNXuxPY6Eatk/5GVH6KyM310Pimf1CTZJlVIqBTwc3i0OssjL2TI1AQi hiGSEo4YStjNJ6h9gUCx2BcTDMNKP9+31YviSA7/TbTUhFUC+INrCHa1gSRREeF10hL6 jTWeJ3/hW2OTU8Ni8k+NpWIbzKjlSTKuyz0bzcDadT+6vPlS28fAsxfgTrDzzcJmBsqn ORoB+n1CchhDoJZiYaDGxHabax1bKImmyxZVusRt9OyV21eOHLUF4OQvqFPrQm6ZQ3Pn yw== Received: from phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta01.appoci.oracle.com [138.1.114.2]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3mtdmtsku8-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 05 Jan 2023 19:16:00 +0000 Received: from pps.filterd (phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (8.17.1.5/8.17.1.5) with ESMTP id 305Hvlpg023372; Thu, 5 Jan 2023 19:16:00 GMT Received: from nam10-mw2-obe.outbound.protection.outlook.com (mail-mw2nam10lp2106.outbound.protection.outlook.com [104.47.55.106]) by phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 3mwept6m1t-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 05 Jan 2023 19:16:00 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Lf3daRhX+2HR9cq8xAm3bLNHw2rOTNDzMusejsHsl9JecXmcg8oP6Ado+wpEdI/BaZ+D61Q/aonfm0Eow/4by9x5GrsUI0zABar41bHs4DxY9NpngPX7qMFITFwiAVpo8EZjPVT7yqu2AVscrIui2iAO90Ob6s14fTCHvNnSODAUmdf8lcm+ZD4s+QmNH8RKA25m/fcLVV2hHxnrvNjbJw9BzdsYG42EGA9QkY7c6IFPrTL4aWA5cHkzzDRKSsS0P+KJMI8bpTYhWzKUDCYJAqJ2KH5SiUqGyVvFi/Ewzc241HBwJoPwnTUXWEbT4bTVJhNq6+8IUnJLAaUdVEXagw== 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=FcupecLEwSLM7aTT/VbMXN4UiLJUyoURHuCIxtP5yW4=; b=E8BMsJqpo8KJopy1npjd7ZFVAaW0Vl/rxAxdfhkKQZOSHJbMbKxJps/rMWCj6DAOMh7vFCNPHf9k6JUSdQxc6v9YXbC5fZiIEfSyeal943Pw6sogTRdt4Dz6DFbNBvinymteJaUQqceTlNFWUBKhE3tO4UN6q+TXq6THYj0xJ/fzMoj7dBfzD1Kcf/abCo10I0TidZg4lYMB9Zr/58RuQnY3cWe62v0Dv63RhN0bN0bp3Hh/a7/pHr2up24+d5DJR4Ca52EB6RKG6GOB2oSv9Yu/33jWKmi04pknnanuNNeYQ+iw/PxvOLULFOEns6W0pHuSduxiHffzagcl/abQ4w== 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=FcupecLEwSLM7aTT/VbMXN4UiLJUyoURHuCIxtP5yW4=; b=CvrxNAWx7LIZd+f9wX1u2k1BKt6+rKhWMNOuukh9DjcHUmBvDFFSfaFpg4l5FhcdWtqpvIA/ziOmBc3e6vC9NPDPLj13d7IF4sJAST135kEEvGjbgOy1n3E+q7sXhLAJWgM2CTIrBAHMTWMemAw9lll4HSpqnpQzMXYTMPi8hGY= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by IA1PR10MB6075.namprd10.prod.outlook.com (2603:10b6:208:3ad::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5944.19; Thu, 5 Jan 2023 19:15:57 +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.5944.019; Thu, 5 Jan 2023 19:15:56 +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 v2 10/44] mmap: Change do_mas_munmap and do_mas_aligned_munmap() to use vma iterator Thread-Topic: [PATCH v2 10/44] mmap: Change do_mas_munmap and do_mas_aligned_munmap() to use vma iterator Thread-Index: AQHZIToisBO9Z9ubPkeL2T+WGrJSTQ== Date: Thu, 5 Jan 2023 19:15:55 +0000 Message-ID: <20230105191517.3099082-11-Liam.Howlett@oracle.com> References: <20230105191517.3099082-1-Liam.Howlett@oracle.com> In-Reply-To: <20230105191517.3099082-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_|IA1PR10MB6075:EE_ x-ms-office365-filtering-correlation-id: 8d1f0bae-1bd1-473c-25ab-08daef514593 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: E0Tre6+b0Mv/zQ7jYPDan0XEJt76iiXXcLyKDa4q9B9R2bdGnRAqIWIakspK6Ug+cN8u/ammhK2GT2vZCH/vHSVZ2u2vaC5huW54/dFMVNQ48aQUzw42UK7HOOlrsPaNA2t8uTcD1356IeLQ15rNG2UNqwBpgZrx4fMYydqCYv5oJinEilQu4/dSjsG9aRn66tWvbJAro2ZPtlSCxZVqlTSyX/ZAH9+AmBjSWeI4XU58UUnSpuR2hylSCsO5H+fDw4ht09fW+QGdlL4WUSX0taBT4MXbApvpdNkkkrZ5rJWCh/+oVxonTC3ddjeGN+3rv9EZwA7CyvZzRaioPVfKKycayKZ5Q9V6JrXtlF7KxDT4ObSkD0IQ3fE9ZeOZq8fCiJ4bMVSs7/YC3cW226jYTfK0RIKaYKIrTqrOPXFZkcvSPxvSlpRLN9KVbunmoB7o4lsij0oBe5rOvlktyHFwNlr8xp3WcYnPpr/rCnJnrdOSRictfYzsT/K/gos/BpeyWfONR9UQn0GyZeb+visD4/76dCXIg9AHjQB67GmK1bBGI8gMh9bqeCufA1KqwD6LKsAhvleyBzkH9Blh8K1i4qV+H5qgE9OcOXCCxwfqqbA/76PESMUCz+Tt/FxKEKWbHe6lbDPmx6B/1nKF/egbhoIijOsQsUf8jm7Rov9BHfbjIYPMEteN3BJoLKQQwKyVz0XhidJtt7zfPR3cj0nn3Q== 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)(376002)(396003)(346002)(366004)(39860400002)(451199015)(38070700005)(122000001)(91956017)(86362001)(38100700002)(8936002)(2906002)(71200400001)(83380400001)(316002)(66946007)(41300700001)(5660300002)(44832011)(30864003)(64756008)(1076003)(66446008)(4326008)(6506007)(107886003)(186003)(2616005)(6512007)(66476007)(478600001)(8676002)(26005)(76116006)(66556008)(110136005)(6486002)(66899015)(54906003)(36756003);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?Q?WoAkZAkBF/IRg3y988YE6sKE8PRbliq/ejHG7WPQLChFM/JmTGeXYWUfiq?= =?iso-8859-1?Q?OuUVwan2LM2I8nhqqaAfzXqh/N1G6+LAdFXa9keOYneMJyORGvU7YuMIB8?= =?iso-8859-1?Q?M69nzYBFlxXr90fmdklAkzTkEmPHn2PeeJBkd8wR9RFgI/D/0aPaXe2HrR?= =?iso-8859-1?Q?npnOTrdaGRfCXccxWuvFwccZnvHCSIGcgzwMOXpPpta2MLL95kePd/9ajg?= =?iso-8859-1?Q?LEUZmgpWkxHL8dgCH1JGsd7p5KoTnELk7EruxUc8PEggmXpqst/ndeQMhG?= =?iso-8859-1?Q?gh+OytjeE+EkALue3+iMoudKW9VJjgTjvHXTq9z88Cfg85O4pAI3vp29mI?= =?iso-8859-1?Q?yARbs+yYZjYAC+uF+rROPqfMNEqUIgBNlwSqOCBuCR+/kq77nwbeDclcSZ?= =?iso-8859-1?Q?EGvpS4XAlXyc2uM4atrDgRVlVplkbCgDc9y7YcfdB7c4jOdXYzY/pIdWjs?= =?iso-8859-1?Q?l+k6KMUopm7xwEsNywOYJTrh3Coas7i6pwTpxgr2ADjMNj/IvW57rwLBD+?= =?iso-8859-1?Q?OII/GnGS5l4S21lGUrFfsKuLCOn+Z1Qc8CMObvWfZxAeeMuWSgNCDCDAUW?= =?iso-8859-1?Q?OBodriYtUUb02E5K8ld2GcuXQQVSqdiF1Wt7n0SucsHhz9WLaetfdWVUPi?= =?iso-8859-1?Q?PwKfRHcCrL3OMP5LzjQO2/4GizLQL2PlvJQw3/pR9f+KTivaLtf6jpXLGi?= =?iso-8859-1?Q?klKeutlEC3oSCBzrZy/B19aZUCiiwolW5INSxXmB4PcqJRQ8vwwHtvRigb?= =?iso-8859-1?Q?FW/exvEQY02PKQT9klWNFaFBnMb4jFhSZu+0563McJ2+Of7F8H8WqbruQt?= =?iso-8859-1?Q?NwSsP7anEqeIMammMyhz0lRU1Zca/Srp3Hy6+FfFVX6k9lFdf5eDTgZ0MG?= =?iso-8859-1?Q?alsTFa2LnCVBGKaOPtjl3nby9iKADawZxMx2cF94f4r+FFjyvOV6wJk042?= =?iso-8859-1?Q?WBh4/3zp6ZLXwmX5e64dkm+fro3sCHLUbqzf7NQG9L5FXYkfk4hrZwMbGD?= =?iso-8859-1?Q?utFAqtyC91cZi9wbjMAzNllZkxnX40DUarb8+Vidf2pIG26RONiovBhCZ4?= =?iso-8859-1?Q?nVVpbbLCi5rHvNkPfrL4xNuEiHM5C+1n69c/VNe+nktlm3DE9ANNOXy8n6?= =?iso-8859-1?Q?go1Lq771cR8Z1tLvwQQC+En/5/z2NXn0AqsKODIcl98NRA8cc02QK6+Ngi?= =?iso-8859-1?Q?S5hPe8i8cCUlEMCK3AginT5WTaDxn9PSPkwgaSB3MnmIUctCbDRHAWuish?= =?iso-8859-1?Q?jsz0EvqIVC8Dr/8fAk9urI1okFrDhU4SIQQHX61NNBybRcRteqGIcq/b8A?= =?iso-8859-1?Q?V3VSjHOa1UngK9eMoo3jR218lce/p2rjGVwHQQxf/thYBvEQ04AOxHrLuq?= =?iso-8859-1?Q?rEtQOtIHnx6ncXrdqhpZsgWIe/EcrR1hv4Z6CLrMAcvar3+0hj5Pn8rj92?= =?iso-8859-1?Q?zBA+xepSWSpV2Gd8p0i4TS1GuubbAO1YpKi5Dc/7D9hAobuC9yIaX9OGmt?= =?iso-8859-1?Q?Z+UFHtvKJaxk1O1aXE+kOwgDqyjkSF0N2F2juHquC+GSOLEhssahYVF6zb?= =?iso-8859-1?Q?o5SpyMUsJiizW2ly7ONuxWDqL2mITyG7Bdw4JGwDv3TzIDloxTommZ4+vT?= =?iso-8859-1?Q?l8CV5FxlOPo0FqqDqqdO9g/L9OSWobKDWkLu1Ine85ZJVfrrdLoaMDZQ?= =?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: MgJGf6/+TxN7K7xtcwnYexrJ3AShkIR/vemgkgok5VeKtcmXL+wjYhoQYoo5au3ZVA4VmvdPjNosZwgla4TMK9kq8qOWWg+wWYFKLyVRmp84aIDPL/PoUHtGes6D5HrT08XM2M9b58Op2P3xFEQeK1wLQsXrBJHZvzCJO+7NrcrzVhCkrKecUi2+wo6Erm3cQMceL23oGZwh72JqBhcWER8fKx6yciTn4slE32HlduJgiCL7DWBk9iset28ZO9kNEronfQA693W+07LxD8UKMhQNLE4RtxArjvKzwhngjfr/eMzZLEILWtYr1CtNsR+9N22xSY/Cqy40Gc2r2QIkKi0/JSUL8AUUZ18ik9p+/nk7z5ix1myfR5sQZlKEIVHe07LWkwdxmv9B9uLeomTcs06Dqn2hioKhewM5jw+rgJ0WFFkVoNhZcrFiHVU6rWNEaNBb7NbZchKmzanwvooo+yrRbNplQZZ4rFUfcBg8GxJ1VH/C5HbmfSLhlUqmL6UFOLxQli6ElbsgEtfB/QPR6NP4wnPjSMxTWuYWlQJIjGe2ftDfuREnvYun1aR1qrjNAmIyScIvVUVne4jPTkL2khi9ndT5uJ6ipVJcqXb1hRNSlE/GgS9lU4KL5vRPEilHTbRcFjeBL6IqsNRpo8pu0QgSvbnudAFIdGFEbmOvxx7TOn4OAR7mcp+zK6mf7JDy5GrKxiIdtXpEQ2n8jK1FKa6dP2RYiauP7n9yliGCur/e7wmQlVrTVsaNZ3mFUkhhHZZKeXJ1bNMCUo4FeqdOo39sFZO8PTJ0vmPU/E0+Nczsk0KlKV5GydvKD+cBD4iEE63MYqJ47Yd1PJB4/nn610mQ3/xPWqNyHX+N/eYZUH2ScShRK1TIry2/8zdPfDVnQzMZlybGYYu/g6tOsogZKA== 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: 8d1f0bae-1bd1-473c-25ab-08daef514593 X-MS-Exchange-CrossTenant-originalarrivaltime: 05 Jan 2023 19:15:55.4695 (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: AUcB0kfawKtuLB5HTGm9ZredU+KoIJCsrWuSCubYBC843GjEHhhTYFvLyUE9611Kh95yy1czm0wgwC8uVLNTwg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR10MB6075 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.205,Aquarius:18.0.923,Hydra:6.0.545,FMLib:17.11.122.1 definitions=2023-01-05_10,2023-01-05_01,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 adultscore=0 suspectscore=0 mlxlogscore=999 spamscore=0 bulkscore=0 phishscore=0 mlxscore=0 malwarescore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2212070000 definitions=main-2301050152 X-Proofpoint-GUID: hQam4KnA6P8PvNEpnv-D4b7Bjxpc-wzh X-Proofpoint-ORIG-GUID: hQam4KnA6P8PvNEpnv-D4b7Bjxpc-wzh 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 | 77 +++++++++++++++++++++------------------------- mm/mremap.c | 6 ++-- 3 files changed, 39 insertions(+), 46 deletions(-) diff --git a/include/linux/mm.h b/include/linux/mm.h index f4b964f96db1..126f94b6f434 100644 --- a/include/linux/mm.h +++ b/include/linux/mm.h @@ -2896,7 +2896,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 238b10ca9f9d..41767c585120 100644 --- a/mm/mmap.c +++ b/mm/mmap.c @@ -2360,8 +2360,8 @@ static inline int munmap_sidetree(struct vm_area_stru= ct *vma, } =20 /* - * do_mas_align_munmap() - munmap the aligned region from @start to @end. - * @mas: The maple_state, ideally set up to alter the correct tree locatio= n. + * do_vmi_align_munmap() - munmap the aligned region from @start to @end. + * @vmi: The vma iterator * @vma: The starting vm_area_struct * @mm: The mm_struct * @start: The aligned start address to munmap. @@ -2372,7 +2372,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) { @@ -2384,7 +2384,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. * @@ -2404,27 +2403,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; @@ -2433,8 +2428,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; @@ -2456,7 +2451,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)) { /* @@ -2481,10 +2476,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); @@ -2494,8 +2489,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; @@ -2533,8 +2528,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 @@ -2548,7 +2543,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) { @@ -2566,11 +2561,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. @@ -2582,9 +2577,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, @@ -2600,7 +2595,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)) { @@ -2618,7 +2613,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 /* @@ -2631,8 +2626,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 @@ -2660,13 +2655,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 @@ -2705,7 +2698,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 @@ -2751,7 +2744,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; @@ -2764,7 +2757,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) @@ -2825,7 +2818,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: @@ -2842,12 +2835,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 @@ -2979,7 +2972,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; } @@ -3103,7 +3096,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 fe587c5d6591..94d2590f0871 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 Tue Sep 16 05:49:14 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 B60CAC3DA7A for ; Thu, 5 Jan 2023 19:17:36 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235520AbjAETRc (ORCPT ); Thu, 5 Jan 2023 14:17:32 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:44062 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235483AbjAETQY (ORCPT ); Thu, 5 Jan 2023 14:16:24 -0500 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 91DBDEE14 for ; Thu, 5 Jan 2023 11:16: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 305ISwM6017230; Thu, 5 Jan 2023 19:16:01 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=6qo0x6FwfVqAS5uWsZQ+S2ecMjYQ7dLgAPgm0zpCre0=; b=vSyOzL8tcAAuY4vJZ6V3Bg15vz/H3+J8aXZGxTSNJP3izxuhzwjTsylRz1LRyj+t+I3h UvClVF6SbRAcxRrhdI68tt/iWZJkbxYK5LnKoitYCRbheEsAjgBXY00MYhO5ULtcEhPN dMS6x9dOuwudtQBVT51L0waDjEsRf1z3pb8fUX8U7GfCrUUayFTKmX2qpzlkmp/zeewB b1kuZC54lIRoWFCIa96z8WANf2R6EVLZw+Ngdbnp9MS4dszFMbmK8LPgS6Wq7vi0FPvw oItseISCclNttPPIXVxt26SNmCUW+WEUxY1xwdrzCpZgqzXtE9M2J3jX/B7z6iSOFidH mQ== Received: from phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta01.appoci.oracle.com [138.1.114.2]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3mtbv31ns0-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 05 Jan 2023 19:16:01 +0000 Received: from pps.filterd (phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (8.17.1.5/8.17.1.5) with ESMTP id 305Hvlpi023372; Thu, 5 Jan 2023 19:16:00 GMT Received: from nam10-mw2-obe.outbound.protection.outlook.com (mail-mw2nam10lp2106.outbound.protection.outlook.com [104.47.55.106]) by phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 3mwept6m1t-2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 05 Jan 2023 19:16:00 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=e5TW9e6HC+cHo/VcWv2ajOu8dKZ02e4Vclxf5ziV3KxtLKRgDM65/na7F1+lRJ8YFkC/HWxmLlAh2vt+xJgfXsS3NOAe3ReJlRszzDGgbnkTpHz6dGixmGrfpAG5rF0o0/h30rKReQ5yqXAsfXv/YTjHmnT0juvZsogzyI75ra9V1bv2TP3y3hTz0UhAD4aANu/gVG372BmqVT4rcHQPs1UPSIpwyy4XBUIMqRIl6TWQCkt4GkKaCs4cnuoTFZUygWt6zrnoMDf8nGP3TzziujjCoKy2kUoDDaR7lnYYhmAOCBflVAjqMTrX3a+O5CQoY2dMxLEPzDgrJ5Mevbf3bQ== 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=6qo0x6FwfVqAS5uWsZQ+S2ecMjYQ7dLgAPgm0zpCre0=; b=FRaV1OeQlrAxG0yEAeRzzpPB+7vt2BFNBuf1oRs+nh8RXCkSCWYV7nrn1um9NKt6dt88HiOzdfax6uOABhrOa52QedA/whOB3NrCxFkw1YrYioS5VugNobWE5fZmd+LtU3f0S5ALcspDTMkvqH2GhwD0hlaTIIkdx8U/uRX8xBfMAdBr7t+H6BhWa7xoGZze2bLFLJJ7WoX6bq6EDlALeewSXQWS81AUBWxpseaosir3DMfnm5WmCsv5bo1S3g0K1bzY50OWc5kKTAxUHZIIgpY9mqZTYBgamIBQWQWmrLVqlhWwv/3zgEh2zRQ825TbEfxfn0HlPwhBmXitkM+iVA== 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=6qo0x6FwfVqAS5uWsZQ+S2ecMjYQ7dLgAPgm0zpCre0=; b=cwdL2033Nwiq5c0znlN4ikzSCj9MJnkVFhn/Cv/NLJOlWpwBv/9vF1fR+gquNYBTrKpHzTxQeNxBtPyiVHSMf7z8PnVjmq/xfgc4HNM+L2JyjKw0bfzOPaCoOdBFiHEyTq36c2QjC21nfou5Uj9quUTIEQBOW9DUJSocCJcHlV8= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by IA1PR10MB6075.namprd10.prod.outlook.com (2603:10b6:208:3ad::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5944.19; Thu, 5 Jan 2023 19:15:58 +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.5944.019; Thu, 5 Jan 2023 19:15:58 +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 v2 11/44] mmap: Convert vma_expand() to use vma iterator Thread-Topic: [PATCH v2 11/44] mmap: Convert vma_expand() to use vma iterator Thread-Index: AQHZIToiYnsZgqopq0a1R0DZdr8guQ== Date: Thu, 5 Jan 2023 19:15:55 +0000 Message-ID: <20230105191517.3099082-12-Liam.Howlett@oracle.com> References: <20230105191517.3099082-1-Liam.Howlett@oracle.com> In-Reply-To: <20230105191517.3099082-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_|IA1PR10MB6075:EE_ x-ms-office365-filtering-correlation-id: d7ac6b0c-cbcd-4fd2-3ed4-08daef514673 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 7ARPfkIvkw6pK+B9cEWfh8VVQKBM2BRhZiiuwIcTbHd+t7/LBj4ivwdj6LLxgIv2kBill8RLe6qspXsxn1laYiCzt77RMQY3mJo48WkS7P6A+h52IcsReuhmWIrqNU5mV8tGtGM4zBRb2CLOUzAt3f4y+ROFlE5drr3KFmFoiW1aJAAKjnl7qBE1sG6N/L2lUj5YssR8lwZ0WVkYnpVLkRcyWaq+YIJoSuNwDRpMAbfyH0VxiLCZBIItwynx4c+apXae0kvBXa8VMyuI+YenlHR+wBMglbyelrautiEN8FzjDDcmF5aOV5TcnbI3QBqW3nRY/EOBAWE5wupduYeb4HZ7DRd4XiAMwzMV9L8Z9n+l9FoB6VnnndZiNcs7LJj4fxGqc+HqIGvaY7r33TFGcRUNSQaeZ5q8g00O9VSAPLWjPhRTm4GfF9pImkY7rcwJ/cQuHzYuFt5gL5z6pvRmMThGhI4K01rA+4QuqzaImFMJ8PvT5M7mBbeTAg9sfx79do+AnAvKaXHmj8HgobU5e+IYZLQk6FmtqxBp0c4gzRkvJCn/u7vvvIKzw8h2EdtP3/KV1c5nEmhcK/eMmEq+GRCk4aQS1vDlXAlCTXbMED8TBfpvqL6OF8CVmwP4S4hYu6bkmfmEmfhlCJR4fXO6QxJfvKjylg7z2gdsrR0b4qpdpjSIo26GH8iKTv3EU430SPm6mfvxC4eqkGFd48f23g== 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)(376002)(396003)(346002)(366004)(39860400002)(451199015)(38070700005)(122000001)(91956017)(86362001)(38100700002)(8936002)(2906002)(71200400001)(83380400001)(316002)(66946007)(41300700001)(5660300002)(44832011)(64756008)(1076003)(66446008)(6666004)(4326008)(6506007)(107886003)(186003)(2616005)(6512007)(66476007)(478600001)(8676002)(26005)(76116006)(66556008)(110136005)(6486002)(54906003)(36756003);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?Q?yhSCYklmObhK+WPC7j8nHzPfmbUZbzIXoKECVlmKCj4wCX9QMCQ70Xc78i?= =?iso-8859-1?Q?3O/xgv9XW+0SMc50RHFaU2bdLOrBWzT+5II8ObUhT1m8CFyj+XEFC8b+uS?= =?iso-8859-1?Q?NSoElsqNLvSkXkCYflTHmtW+jTNlJrroQEhRI/RGNzfO8x8zaDhsh+AvMK?= =?iso-8859-1?Q?iDFz4/5o4Vq0lqrPTU3saQIdHHjsNVS3/jTpULviMC+jtB1dnK0X3fk58z?= =?iso-8859-1?Q?K39stuClZ5M2Nygz0Mm3niLVBvWDY6DCReEHV3RIzAgT907OvkHvFGnBoG?= =?iso-8859-1?Q?HpWOXMM7yH18AICPwWBQk5DJpy+GJddghX1lWUkfQF8ZXbNWrAW7JqbOHn?= =?iso-8859-1?Q?nbnKHrIUN5Kfip9GMUER4fN382K4v0/T+HRCwMXh6sC2B4fvd+HYBzP2UN?= =?iso-8859-1?Q?fRum8gWZtbqhamN5hlrXHUTTDR4DfMqHmiwRal+3D3ibLl+kMYG31H4b4A?= =?iso-8859-1?Q?3of1hd4kD5MSWf9tAFiCkjNIMHzCvXDbvej6YTBR5BJw8w0OKyUyqehiA0?= =?iso-8859-1?Q?48pjnqTT0j+a90YvwqmDldAZlKgTp99W/RqNGaVdXJCOD6dbeTBkdUFgyo?= =?iso-8859-1?Q?ecggv27/waDlM6CQxs/4cYmXrLUqG7tdRb/A1FLPjAgf6AblII8WUXbybg?= =?iso-8859-1?Q?N3/JD8OFod6L+nl2zsr+YUgdhsR5yEKniBjfmDO4vf5X/d88YpHi4fRN1G?= =?iso-8859-1?Q?N4662yKfXHfoQcGj1W+3+RGEVKWdebnBBmQquhJ1RAzSfevA6/Vk2vgj17?= =?iso-8859-1?Q?vkkXI3+1M/MUeHGYcwMae1Sugl2g8RHDFcbMOdRMk0KsvJzoHN5YfBXQMa?= =?iso-8859-1?Q?BpcLx67N1aSPORA+Px1JukeJkQR3TavWjCNn0v5WX34H5UM5XtCSXrNkww?= =?iso-8859-1?Q?WWoBu6Yh3JQaCQMkGosUHmw1ELRIY1k5GlCVkuXdzcobHSvUufFQ0jtlN0?= =?iso-8859-1?Q?p/76fRQT1oQXIQL/G+JDysbRf/At6kLyNtLwYHxBbA5GWokNw20h33zXbB?= =?iso-8859-1?Q?/HuGClAijUBzj4O0/cHawpeOVBViao5m17AbQPq3Ly/cv24OKyHQt+VLy2?= =?iso-8859-1?Q?L2gg2Wyggwy68f/Za+qnJExATCGZvFj+LVIzcO7Vm57ZUh0wwzX7fXzB8d?= =?iso-8859-1?Q?PRC3bWKL1422+Hfm1n+krD4XwLHUI9X/h+Jx+eyIprF3itSXEsZZYOiN1b?= =?iso-8859-1?Q?b3A044F0a5uBFT0NJL5mbut8JbLRyHVN6UGopTAvPaqq8d0I9Ocqr9Gj81?= =?iso-8859-1?Q?+1CbRbI3Y2WnvWL/qpd/++5VnPBDh7PgzRJyZ0CiAY3d/qJQ7YF96x327z?= =?iso-8859-1?Q?P2zcjIlCDqrg0PsjkW6fffQ9s5ZmyFdeAKVS0yunY7p55GcVgE0p+68owG?= =?iso-8859-1?Q?JOH5O0yqVgtVsXzMC1EN64HuZjvzFu/IRmhUjsbsj8takMJgEkRyw5CUYv?= =?iso-8859-1?Q?9UVtA6EB4Ue0kr3waMU2UJFXo1LBLB1s4ppWnzGTeVCkv//LjEVR7qECrm?= =?iso-8859-1?Q?SEtMrIrDrSF4MNNqpaRw9MXr8JQ4tj8C7mIJhbQIQTvm1jP7uVR0nhS7Sa?= =?iso-8859-1?Q?hlhNUCRyhM2InmVbr/g/a1dRRzm9EEYZfuqpeD2/oI2/p9o7Jefr2CMObU?= =?iso-8859-1?Q?l4xVZmYPJGHCn16DnC1J8G/jzPf3Su+6Oqg+/tSG64G3Kixo4C9XW5ZA?= =?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: uVQ+r3NrTCAWOqDartF+NKJMqqIorqWXYiQ/AQ+M4IGmXALPeMm9O8CMMdk1MtSGn6wrv8tqDjXdnbp16aQQPRBqzNQLRUVutrPjNZZcK1H6GxDXfDpmQAqsuAB3t1raiyABtHBmYY99itj9FKtahQ16DjfvLmncqNZsLMmBUTqfgs8L0ZBFddm9wQL968gP7Lq3HFhJ3SDk9UjilwMyOL0jimzYhKj8WwEwlNhJbMoSMcaineYbUAcWAh/sBSRWRhuZtnAb8l/ekovMdswOEcbcYa7j4LQOwxPV1kpd62A2Pb/ZqvnGhNbrxmdrZ2bVVH89+ojOOBPp5TRtXNtVVamy/P7yo3M/BjwqBAloehVHJxR2CkCuiSs8MRS34JklqqRGdOLeoculgchNLmxZrghyuUqEKT1rFuT2HxCFKWTlT0WWM6Jrai2727Ded2rYzqjwwj7ejrcN2D6Ho6tQqlYgnh21mOo6WoyAMSSp2cSBeFfwdZf3B0FOHrHZ6RbVqgyDw21WhmUrd7n7NmcjIKt5CozauNA/VC/SArycnfDUSuaE0dRkhfqCQ/7Ko4cTiCWdaNAjixgKFjrg75j+rwx/th3k8xIXJxg1KQy+vU5lugK7Yn8dyjXg5UnOtsNzpv5UMdrPZROs+3DiMTCCaJWbtvJftEmh26kwQCVIr7rfAsbkWuf/I2BEpMGDf8D3VUL+Kvxe1bMj+PuhC2lvHKo8LkahA+plzJADZQvN0GS0KXLZ4AaA+b6DcibEWq6sZwwTxQEZ5hMEK/NJ+tz5ke0gFmgK2DNBHj2qFManvopm/XsgB2yVgHPGZPlqTX21WcDSVSu4g7qTA6kfiV3zJt7ebx2BMo87rDC/ILaYWgQhf+icBWVmTxrt6KwcJilWusL7Skqhe9fS7r+tVEtJfQ== 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: d7ac6b0c-cbcd-4fd2-3ed4-08daef514673 X-MS-Exchange-CrossTenant-originalarrivaltime: 05 Jan 2023 19:15:55.7820 (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: uzSN7CIpanwPuhWzV6G/GQRmuZz3ZD8xdO7YGSVVWtFnURpPh/0BGfIsNPlmsPExbdmk/AZbtDhWb9vWhF9RFA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR10MB6075 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.205,Aquarius:18.0.923,Hydra:6.0.545,FMLib:17.11.122.1 definitions=2023-01-05_10,2023-01-05_01,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 adultscore=0 suspectscore=0 mlxlogscore=999 spamscore=0 bulkscore=0 phishscore=0 mlxscore=0 malwarescore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2212070000 definitions=main-2301050152 X-Proofpoint-GUID: 8TGkMr94QBCc74Yb2m7gklBCAB84hHOG X-Proofpoint-ORIG-GUID: 8TGkMr94QBCc74Yb2m7gklBCAB84hHOG 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 41767c585120..8fd48686f708 100644 --- a/mm/mmap.c +++ b/mm/mmap.c @@ -586,7 +586,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) { @@ -615,7 +615,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); @@ -640,8 +640,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); @@ -2655,7 +2654,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 Tue Sep 16 05:49:14 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 E18A4C3DA7A for ; Thu, 5 Jan 2023 19:17:19 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235435AbjAETRR (ORCPT ); Thu, 5 Jan 2023 14:17:17 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:43778 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235461AbjAETQV (ORCPT ); Thu, 5 Jan 2023 14:16:21 -0500 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 62BE4BE09 for ; Thu, 5 Jan 2023 11:16:15 -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 305IT0uf006625; Thu, 5 Jan 2023 19:16:02 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=so5kYfEUIHFMMJc1aQOfT+gqvy/LsTSX+jpBqfvWQLw=; b=V1ALkXoNwpuNHDBTRH43e3FCdj2wvI9Deti99depd+z0OT3Peh9/kTRQYyt7FIhvukob hJCI95Qi1XmUjx/O7nWsqZeTDgHngPZsYsnrY8Mg3wSjrFKL1wV3p98+UCptJyF9kOQl pqybfFeJHAdIq5yEND5hSVqa8Y1TeIviENqm0hnQ15hBtTlmhKAhfJIBLkazUeqUCzIH SROqXV4tQNCVIOYPyOGlcGfGPDfQOCT8TzAFEAAiRP80L2cAY1FFWexEYwszz5GKcWBS s1VHn4jdhr3a/JAKohJsRyB5OUGFMsRmzGm5Avwp9FoC1EdWuCFOk+WoZ4lhudS1iQcI TA== Received: from phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta01.appoci.oracle.com [138.1.114.2]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3mtcpt9mpq-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 05 Jan 2023 19:16:02 +0000 Received: from pps.filterd (phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (8.17.1.5/8.17.1.5) with ESMTP id 305Hvlpj023372; Thu, 5 Jan 2023 19:16:01 GMT Received: from nam10-mw2-obe.outbound.protection.outlook.com (mail-mw2nam10lp2106.outbound.protection.outlook.com [104.47.55.106]) by phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 3mwept6m1t-3 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 05 Jan 2023 19:16:01 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=jYNX84l1sV0UOjqDE9cw2SMrjiEuZgvddGCvmPJyVAqeMZSJtphJzYL1qDwN+WTy/oWcCer5me05LcikCAq6cpD7fHgP1jF1+F0DhxbKc5p9dpt4Nh6a+XnWZpPkhPebxSVPRLL8J1ENEIDXrk8e9dTkhOir6A+nn2E27+2tGb5ZJiLceUzU400oKRlDyVB5NcUwAQipR8nV7e6bQQEEx1PWh4sIZCis004AnmxZLlYW4lxGRdBJ4+ZVqKw5fUodfCe2cv4wQp3dsiIpgQ9PD5MY44k45Wj97VkIXDSoGCMzp+/KfhdfC+f5dhpTilhw7WvVdnCdlo4ATatjdBmLcg== 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=so5kYfEUIHFMMJc1aQOfT+gqvy/LsTSX+jpBqfvWQLw=; b=TTSDivfBWTr30k4N5wTF0SbBhvtm7FFcx2WIqkeWixl842DdOIWSE9HDiT4wdMKAiEHNEXNV+2upUHEd2j9zUJKwPhPKUMvsrjhOBGw3z/rpuQMA6+b8pr/ePPrCTaqYXnNHWGocmVTiO5qvnfCb2s8ouR9AOc7uAfaAwtF3zynZuI63YrpPK+s9oZzrLyKqhTQ3p+Tn0x8RFg2e6inPI3m5qutSXyXNXJDNE07nTPqDGxgrhpyW0ragpQA9j1sTxhNEs7eFVIjS6Ouho1DQLmw9KzmZAUwQgzUtfNF4O5w0ciUCOCTDYKXh4HnHtpy5SMPDAkKR03mJXZ6TT//N4Q== 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=so5kYfEUIHFMMJc1aQOfT+gqvy/LsTSX+jpBqfvWQLw=; b=OwS9cJ6X1kNeZiHrsdzMaEG6+HiRTAUd9oTHij6ZDNotOMAVoDzNfbfq8xBrd3ubUsWqveQ4Qc+9OSHP5WwC2kmi/YMAVnAvx1bP3G+WOnDcQHRCLLDSk4UdkRdfayVzGGVTOshl4n0jvh9lFegEFeZWB9vLvB5xoiR8D8cPzC8= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by IA1PR10MB6075.namprd10.prod.outlook.com (2603:10b6:208:3ad::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5944.19; Thu, 5 Jan 2023 19:15:58 +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.5944.019; Thu, 5 Jan 2023 19:15:58 +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 v2 12/44] mm: Add temporary vma iterator versions of vma_merge(), split_vma(), and __split_vma() Thread-Topic: [PATCH v2 12/44] mm: Add temporary vma iterator versions of vma_merge(), split_vma(), and __split_vma() Thread-Index: AQHZIToiYZPyIynTeEK2D7YGgsoDAA== Date: Thu, 5 Jan 2023 19:15:56 +0000 Message-ID: <20230105191517.3099082-13-Liam.Howlett@oracle.com> References: <20230105191517.3099082-1-Liam.Howlett@oracle.com> In-Reply-To: <20230105191517.3099082-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_|IA1PR10MB6075:EE_ x-ms-office365-filtering-correlation-id: a0ed8703-eea4-47cd-61dc-08daef5146b8 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: +SwVmSZ2qjP0TdaXZZjCB4ylR9Ly38fGeLMZz38SSrZtna1WtKW9QDSlQvZhnp2jgYSF42PxLVtLgzOEZ7F/3/CETKNg5npXp2Il6MS1cWYpg5sNYnGB2vD1C14VbvhIiqp1c/LeNfo5ig/roXL0rZa9v4MLaGhRwpHDUb7KC03bhTQSJk0EnLnuPRawPD3vGpzU0viq5RYzBs9dqdUpQy2MCAsxrpcs/iJae1AN+0lRjumxex/hIsf/yc6FEPQ1vIkvxDjPT7ytQmkH7jusbhWhm1JhrhaXhDi9nB/VcAFZ7srSaiXzAWj48H1qsBpK1q3EwxZu3qaWYXw0F4AAlLxyyTmyYJp7mstoj04AWkXYNHz9tV7nYtUtYw4zFp55YyLCe3cL2TOQgkPvMln9B/RI9Ret6uN+osSwnSgG3hr6DSovMNFLe73IL+ankjEevPBiDZ1SIZu3HciJ1RfqB+eUjWrqpsoBl7CY1yi/qMAecUcdME91QF7FQG43kfScQQ2L4lHxohR30UL7GE2/fqd71uBBl3l1xTQ/7u8BxwLqmGElM8fohoZm/DViVarrH6Wc7aMiEDQxKsM3/+1KaQGLIFJnraJxMLwr6GWCR01eIwgTwtKo+leKT3ETOxDT4KmqU3SsW1E5uXA1wUrTTqOwFigRpx62Mt3y63lD8RQK9mKCn1s1rertHZvjrx/8evWhQv7mzCE9YaToceTtrQ== 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)(376002)(396003)(346002)(366004)(39860400002)(451199015)(38070700005)(122000001)(91956017)(86362001)(38100700002)(8936002)(2906002)(71200400001)(83380400001)(316002)(66946007)(41300700001)(5660300002)(44832011)(64756008)(1076003)(66446008)(4326008)(6506007)(107886003)(186003)(2616005)(6512007)(66476007)(478600001)(8676002)(26005)(76116006)(66556008)(110136005)(6486002)(54906003)(36756003);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?Q?s9JWar33ZvmVx4o2zHwnUsIIV12rkkbD9rAO6UehQdY1Q7DZakmOUcVAGB?= =?iso-8859-1?Q?xqK5XCvH8qa9VQjRzDVOTWr0wXG3/DneFZuiu4smF7ewU6tHAOMZj1Aq2R?= =?iso-8859-1?Q?UQ7JwBBk1WFaAtmx33BQ0s0i047evZooWCybCuh7d6n6ZwtAYWzqkZLhbK?= =?iso-8859-1?Q?EsVLr0SoAXNAeZlNTC5kmVMExngOLGMYOAnRqLK2sywYf1QPbHIdQC+Okr?= =?iso-8859-1?Q?nqYC0Q5CJzFtPb8EfaAxgqb46+7fgiU7JN9R9okTB/uH9T8O0n/8iMWHa2?= =?iso-8859-1?Q?ltk3OPrOrcDk93vPfg3zrBPrDv25RaLNIgWviXnzWDUFpHjE1oghncGcmm?= =?iso-8859-1?Q?w+ExxKvli1K1Z7WOQyLRe0SqbmLtzAajIHnxnjKknZMIyF22M47Z52NHYR?= =?iso-8859-1?Q?pu9o4a9f5i2ks7QYyOBS9zbGRk1BjFWXdjzjaCvaTzVpTLaIyCoLPKJjgb?= =?iso-8859-1?Q?ZHAYiCxCXhMxrSm6Dk/GDZRG1R9yOwqtLr1rgvplIsUSbQ1DBTQ9WZtYOw?= =?iso-8859-1?Q?Scc6UkheebHtZz+kAghC9HAJxMXjI7OQQuSO7YRaseiITgO/a0xNBAByfW?= =?iso-8859-1?Q?04HCmje6EA5G03gE7lqZ5dV4KvTyot6r6oCGPbafCczBpPzjqt0GkM+58U?= =?iso-8859-1?Q?/WTT+HLNc65RSR1oDglIcAEdQm15ctL7GaKeliLgAV+eayOJ2k8Hi1drxU?= =?iso-8859-1?Q?jlNpOAY+DdfQgZ/FVspBlG6/GchEbUnx75dpc8b8aS4bwz///0p/Dj/9mZ?= =?iso-8859-1?Q?QR7vdC6zK91BJw3SZvAZvbyNzp7TYrv48zZ3+BglzptKKQQHW9VC1vauja?= =?iso-8859-1?Q?C/SyiBbCXF3HbZklSXXzNK2J0FiDJhM4vGhOrAfUaxUNv2eaJOSnq7kWBG?= =?iso-8859-1?Q?7QDsNzg02ewPaz5/mZIFDKAiVictIQo4TbfD1iiNdf6bMiNlRofSXb5ZKc?= =?iso-8859-1?Q?8dh8Gnyr44/B0bLU7fohMYh8uTZhtn8rx7vZ2plG8pp1W50OPhTZwMaXIv?= =?iso-8859-1?Q?/ayDzEFT0D6YaY8cFvsRLciNlKkOVebohqEK2nk9omM5UNsj3sWSSvjYa6?= =?iso-8859-1?Q?bpXk3uyqiG6c0zcxDQxAMY7pJG01EZ3bIhCsfBmPuZ6KcvVo/NGdDY87aG?= =?iso-8859-1?Q?QYTHf1Tv5rMfnZzIInVia4191+EnVVjaGuor4iSzQffho7PFkli2sAzXDb?= =?iso-8859-1?Q?VKC0UpPfKgL99N270R1FHJtEXc+373sRoIcLMFDNWMb/5WWaHpf7Xbq+86?= =?iso-8859-1?Q?V8Cd2TTDKgaFa04Q+4FI5XK0bXqhUK9+mmZr6tDKufr9jhI46qFAfhYOKN?= =?iso-8859-1?Q?6/k0D/btoDo/pv5/1vLH95QuX2Z8LtTAVIwTlGuw3+vMOVfMbeK30tTL6A?= =?iso-8859-1?Q?TStnr895Cvv5HICX+Z4VqApf7jAaKK8Z0DEdskix5nK0Bv5NEglBhEFKNU?= =?iso-8859-1?Q?eBqC5osPYzu10eMDrzumjvDcWKTqEfr6uVkt2wFtYxJa/hcpn1CQK7doTl?= =?iso-8859-1?Q?3+uZzLOGFoBJugJxD7wdBt/hpwUW5av4ycMG22Cs34whvoKjJsRsFNFRmj?= =?iso-8859-1?Q?lL3jYT6QzxImyDqS08st8m4XqcUdSWqVexEvMAfoAeRPsnDBBdAG19qyz8?= =?iso-8859-1?Q?SroJNISiLVFnJhZJ+x2MyyFY0pRCGNgEUmPnYXrfyD+GDCwCdDTXuTog?= =?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: kgPCSVyb/rExMCo7EwEEvwGOIgioY+9jVnZz5sb1uDnrPYKBVFQ8E/ra6QrXmeyP1LEn/bD2feVeLwlh+Q46lM1lYJBIsqbfM75f0z0SlAGiXb3hAZd0fLiXXQLt26e3BrIhMmQMCBu9iJCRFtK1JpGBwZcjkXGFOmitfD/zh23IWtzxOXBpQaSgBE1CXswc9xLxi5jp//5QNuR3S+bE9qKi2W6b9uF394zU5AYtP+1s6mIZ/WBmrpMqxIKL59mjjLEBKrl7D0OOxsMY2GKxlwaIaau6q6zJ0sJ64Y0DlkAjnBTU6LG4FZPlxYKjA/XaLFw/I4mn1SRwYIqLLihGBpaVrmouZZEKvmW+zDaSJnGiCDyoQFE85Pk9dy8iYBj9p9NqrlDezvKbgfFZb9xJdr8qkdSEoqmqENj5oQJqOJFCkJGelv7CR8hgmwvwz4x1Vf4f5viZLjphdEoE9a6+1CcdXHsCkHiEusKBR5P4+7FnWJ09r46pb9RgeYJspWRDAicTyF4NOO45r3TpU+DmwgDm4/qJ7KoIUZjCE9g95h2WOjEkktbWrIfTYh+/zPjLWwUC6i7RxmF6fme1n3esYZ3gJXWOoA/uHxVpeHEHkpbQNeUPnTsNPMCC1MUOCuouU4ma4yEyrwai4DIV+ZFNzW0l1u6Nf+7zGArEOZQDEdCzzDjNWz3QDN84xQJTNHA9xzlUd4/rwjbcz9MlZKIAEp87Xa0tOs6SQu5y9beMxa16xdkO/FJ5yJepPoLTZt1ohDdb4UAUSvstsIQXM3oVDQG6TynOIgCJ0YgflwcoKGIj/nmRMlFx+otl1D1ogmZSxMHnXJVhiAq/D9lXm91nIJulpdCzwa6rHEK+J48RDV4NcT/KgVDDnDKuU7YVub+Rs+Zbohqk2Pias7+RZtIZvA== 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: a0ed8703-eea4-47cd-61dc-08daef5146b8 X-MS-Exchange-CrossTenant-originalarrivaltime: 05 Jan 2023 19:15:56.0476 (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: XzAqN+NI49ABIeBoDicdC1U9Yqy9ewQzCAPOigtuFbqfPyAWqIqGgd2AH6ncbg2aC1wLINLsylHcHHZCF9PjSA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR10MB6075 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.205,Aquarius:18.0.923,Hydra:6.0.545,FMLib:17.11.122.1 definitions=2023-01-05_10,2023-01-05_01,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 adultscore=0 suspectscore=0 mlxlogscore=999 spamscore=0 bulkscore=0 phishscore=0 mlxscore=0 malwarescore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2212070000 definitions=main-2301050152 X-Proofpoint-ORIG-GUID: rK7sdBuJeTSq6XEYkAPip3kZmqzOTQae X-Proofpoint-GUID: rK7sdBuJeTSq6XEYkAPip3kZmqzOTQae 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 126f94b6f434..9c790c88f691 100644 --- a/include/linux/mm.h +++ b/include/linux/mm.h @@ -2834,11 +2834,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 8fd48686f708..4dd7e48a312f 100644 --- a/mm/mmap.c +++ b/mm/mmap.c @@ -1150,6 +1150,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. @@ -2331,6 +2350,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 @@ -2345,6 +2376,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 Tue Sep 16 05:49:14 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 80B46C3DA7A for ; Thu, 5 Jan 2023 19:17:25 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235515AbjAETRX (ORCPT ); Thu, 5 Jan 2023 14:17:23 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:44074 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235489AbjAETQZ (ORCPT ); Thu, 5 Jan 2023 14:16:25 -0500 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id E7E9DDF2A for ; Thu, 5 Jan 2023 11:16: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 305IT2sm020908; Thu, 5 Jan 2023 19:16:03 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=Cmac1MFdopFe4FQG1oWkYqzoTR0Iob3h5RL8j18i6lM=; b=jutXYSaP6PvZ/HkUXAwljBUJIqeX9n4w/SvNp+8xTMhn9frfyae6Wi38U3eQp90a1UxG m4+BsTDoRpiqMfBgb4fzYiXJouoWVcBDVBH6aopMQv8unrVW/HG21Tl3ZPyrfVKg76LC 36iDY3+N9y98EE3GKJNXtUy6882Bt5dlki2aBRrypmzO63H22asA9ywvwBA/tn6CIVkD AkuP24CmW4PUd+8yiaR68M1FHikW+F6PWziKAUOHEz86gqE3xtGPaccjy33pq1hzkX73 pWda1nO39u+hzSbMAExchtIdgC6PDjPbbvXT6Um+IjcodRK+v5+O2sRmvdnxjcAZ3U8M uw== Received: from phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta01.appoci.oracle.com [138.1.114.2]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3mtbgqsn8q-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 05 Jan 2023 19:16:02 +0000 Received: from pps.filterd (phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (8.17.1.5/8.17.1.5) with ESMTP id 305Hvlpk023372; Thu, 5 Jan 2023 19:16:01 GMT Received: from nam10-mw2-obe.outbound.protection.outlook.com (mail-mw2nam10lp2106.outbound.protection.outlook.com [104.47.55.106]) by phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 3mwept6m1t-4 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 05 Jan 2023 19:16:01 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=gTalMCHFYr20nWXdnPqO2vITToeLrN9lGApdQAysmaBrb9+CVlY1nRAy0+5x3QDb1AiEAX6L/KrAWScpOe5lN8GauHgLyj5tEhKRdTH1zelFVLI7DNfoNrYFNBGs9pLAkdmRI49Q/6RPv94+BM7tO5gMsLn25zOmiWBIsdfBMYg9Efjtvn3fHUE2gW+516EGZfYXwHv7heelBALRQIfavwDoIw5u6RtsdoV8YWjAS3WgYtWxlytU2ItrdCnFe4se8ghOmjM7u3HoauxllJbVlTcuCMTRkfU9TOloyUflPYw1zAJPkaKGm1wcwTiZDPp4r8ic4otBe1QzHs7SsrICHg== 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=Cmac1MFdopFe4FQG1oWkYqzoTR0Iob3h5RL8j18i6lM=; b=ekzVI4JBtrNJrsMm0X+eKkIqLnISfLhrRW8n/gYDxhSlrrYmvBl60t+9Rv2rus2FeTJ11rru5wMDOmJJuDMDsaI0iylckHh3FPNYKLIsCQlNZtgCom3P5avLsaJpOeZInJq9oe5pduspdhNRf8DYrm4gS0FLtitckb06lTLS6gyWWkJWQptSj9mA4BWbiX8mM87wUwX7KNBwe2K3rIxj7srkykjHJirtxr7w8uy6en3PyKEB2rdVnaVbOrAywtuWk/UcjK/VXGCKMLkv7BNnrm+ZIbfgAMQX4SnBQtWgPRDHvQWAw/SPV5DHsRQ1k7I2m0F4djKfAIkS/4mavXgg7Q== 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=Cmac1MFdopFe4FQG1oWkYqzoTR0Iob3h5RL8j18i6lM=; b=rIjLiQnC8jUDmYBZ/znwttC1HMkdezUQrgzCL9BCqedghF+wxXgXEkLpJ7Qoloe7HP/fx34NokVHNgrGeiFjWK4+EL0OCkbX2jkuPB+3/hhE6NhNzyVipNJcIYSg5SkI8scyCYySvL6neR/kGKi/tw0oKcpxxKSQCyurzJ6pqZY= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by IA1PR10MB6075.namprd10.prod.outlook.com (2603:10b6:208:3ad::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5944.19; Thu, 5 Jan 2023 19:15:59 +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.5944.019; Thu, 5 Jan 2023 19:15:59 +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 v2 13/44] ipc/shm: Use the vma iterator for munmap calls Thread-Topic: [PATCH v2 13/44] ipc/shm: Use the vma iterator for munmap calls Thread-Index: AQHZIToiC89D65XtEE6Fggv5pYerrQ== Date: Thu, 5 Jan 2023 19:15:56 +0000 Message-ID: <20230105191517.3099082-14-Liam.Howlett@oracle.com> References: <20230105191517.3099082-1-Liam.Howlett@oracle.com> In-Reply-To: <20230105191517.3099082-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_|IA1PR10MB6075:EE_ x-ms-office365-filtering-correlation-id: 9ca5c958-4b99-420f-aa10-08daef514723 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: Ii132lh8cV0n2blA4A+j59eepoyEPiSy9kj6R/uTEy4JgAsZukjfC8rK4mNwFERWjmbRGZKwopXXVDZe+318SCe8C/pV6mj0TqYrEWMP45YpPm4kwNULDpT6YBk0T9Cc57c0gOajlDA/Do+6FgiC0/pAjQvIP3Z1/05UMwiD2LYwjNcflt1Sq2/1bkH+wpyZ2+4LSXm7a9Qh0Rjsg5x44+Eyfyp4XqapslllvYrOyJJtnS9bEuFZgrGnbt6RpDA/qWH0VKV7HddCYiOU4fmLKbaA0vdLBh+3X9ckMaN9DCEtBoIzqytJ+uKpVUt3GIKoetO1eF5eZ5Z16i0sYsOdpil0Fe1r8hQoJYg1Lmgr1z+G4DSHPlLLAYhI2BhVxa5Smi7U4qWUQPfRd67TsCgc3rC8VfB0264RvrvUL4d/ESoim4KqbjNKmf9Qez9cAJhPHKf9tpA185huNeo+ySxWXaYCoQ6QhEuYiEV8J0fgweeMC0C+IuWKfHdCjOar825nRUsIWwsM6/EhGAsO2OMUsUHvwV//6Cxu92ROp6HtbApEVk30ni+jALCxTDGddufDPedXaQn7hl27Vjw6umDBPVC6Saq1xF3t7N3FE/PeWoLYqqlUlMrlKmVf0PSTIxLnRjy1/vCw+8+0FrdrerRW8+kFjHmlDtbHPIvwarpGyAZAELZIAvLWW568lzqKn9t5qEuHwW3zs//r0QD2yB8FYw== 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)(376002)(396003)(346002)(366004)(39860400002)(451199015)(38070700005)(122000001)(91956017)(86362001)(38100700002)(8936002)(2906002)(71200400001)(83380400001)(316002)(66946007)(41300700001)(5660300002)(44832011)(64756008)(1076003)(66446008)(6666004)(4326008)(6506007)(107886003)(186003)(2616005)(6512007)(66476007)(478600001)(8676002)(26005)(76116006)(66556008)(110136005)(6486002)(54906003)(36756003);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?Q?/vXXz5daDckz7wAmzg1cYqWMtd/nDp+sXoyrRbXCss5Cbd7dxLS+UZEqF3?= =?iso-8859-1?Q?ndV5Ei09Z6nT22Sb98sh+fmexKdQNe8JKeVlcKYfNaUuEaJtYlN0CuJYPH?= =?iso-8859-1?Q?WNqADIbOHPH0NLTbOKPRzH/HAZ9sJ2iCnC0VP261jhowRBfTi+GHdRQF/9?= =?iso-8859-1?Q?l5kc1HzYYrCL5gLnkePEMLpNHAwkmZIhFQoxYiuxNmqMp22xNcAtOe/0DG?= =?iso-8859-1?Q?LAunjYVZ3KQKEQCSjuCmdpbZHYliiC/9NfkV0r8uIbJmSr+YqiY1S3vvp4?= =?iso-8859-1?Q?WHZrnbpo75YLZP1mnhSm+hr3P2iLTIy68a58tF6/DuXtHKo8visrSqY8YH?= =?iso-8859-1?Q?EX/ktTph0K5FRLlj6MsVuwgvE8/OlXiJr5sCP3BA7ER7GOcSQmJL+5P97/?= =?iso-8859-1?Q?vff6i+WELiC9ObJei+YuC3KswfgSQiNXCyegX9AU41m66j7BB8+HBP1e3n?= =?iso-8859-1?Q?sN4h9lezYn3QO7mxA1Q/5iNw0HYjat+0/GfYmU4yJwaGzKUkZkNVUNgOKE?= =?iso-8859-1?Q?UiFf5+MV4k9dJJVaOQx33mqR/qx4VQGJt3ajWwETm0MC8rXBgw/JtrjQ46?= =?iso-8859-1?Q?Hl9/764mWNIYs9GuIN3oykZr1Mo+urmpEw3vZlmG4n+uz45PsbHqPnNlvb?= =?iso-8859-1?Q?lPrWHOBc9A1W3QWn1eRcEJr/CWPzESFNfmD7f87DXeXf4vfqxX5HA32onS?= =?iso-8859-1?Q?IufZwGWp4qgfc7rydR1Id88pEYFwB57oOTMJyeh4O9/XUXpc66AYKImj4e?= =?iso-8859-1?Q?Vjpho1nEeaz2KdSzmRe95AgE5qXQMMkkO8DC6ggp27U6u/bL/vazNiKYW/?= =?iso-8859-1?Q?5TTzAN6cnXGXYd06qYBD6bZrwzu36SmfLH3/B3XfFBIYWUPDJEfYe2jrlK?= =?iso-8859-1?Q?DS4DA5z4tbMZSbrvc+eldHn3yMh8bZwg57f+eJEYyM0HrNeY5LNbyNdqkB?= =?iso-8859-1?Q?Z1PBGP1wtRRqRdwnlq+wVISpSBHmZsj6QLX++apxzWr1aW0UuX883/akPz?= =?iso-8859-1?Q?LIBimfBf4RxCLTU7LZb6eDWeT0M+C09HxPaKeIbNMdiuWBdZ9eu5gy3x2a?= =?iso-8859-1?Q?DdNsipJDqv15G1c9XtgFH8jM996O3kwxb00sWz8EzhBCAJ2L+cWQykadU8?= =?iso-8859-1?Q?AewzNhIn+RODVw9szq19ZkpRIUHG9P0kEqyx17RlXzIjNUB8EohPskhdfV?= =?iso-8859-1?Q?jxDAAbq0sUNjK+IQYZ8rx/QsIrT/JglGSlSYvO+qf9TyF3QnSGsgqfeXK1?= =?iso-8859-1?Q?dvKYDraZIdy4w8Ri90k8pvhQJbQmD0LFegdDqKVQgyPsQ7I5DItaRMAVe4?= =?iso-8859-1?Q?i3T2uUj+7Yp1i1Bh9x1GvQt3raAJ7+wkCNy4/i/sP4f+/tiyvCfI0/tShD?= =?iso-8859-1?Q?EO38EdLujYW3ftEX/Cg8tVz+ieCuS7YYPhMC7cHoVgSoYMitGfPDul2Qhl?= =?iso-8859-1?Q?v0xac+NS4L5A/pBg6gUl8Do1tNS1iHMN5XYqM9J2bVwtpNt5m6J5o3Vxjh?= =?iso-8859-1?Q?uPPC6vedA9qDbBSoRHFSHImoh3ls9kP3SMWOIiIiFxdsZbgTtENVo7J7fP?= =?iso-8859-1?Q?zbKXeztw2qdFuUhtXJggxxBHvake7o3SncqaAsWa5IK7ZWwxJGc6z1gKyF?= =?iso-8859-1?Q?z1Vf43egtE3sALQqM+Ji2rAzIOMKIdutdY5zlFL3DRiuKWFSi8NZf7Jg?= =?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: 3kZ+5gScm+6LdqISl8hQr1jU5msQgKSJ5akY9muPvpbNIi+V+gUAgiRmnBYYx2mUUyJ0DEtkZisfjCh1HlvYGTpBkECsRYcHPAE8y7yHWpFv3q56MQL9iSzUj6icHTPdvKBdYf3oTaPFRlsbGJ1h8/sLmZHBTDX/qF7mbDOf6IQrxl74JlF9DcmtTeJgxbH0LBQk09YUHbH4Ypf7PCEEr2eqlPPby1TpR8tJsXODrm18yzoQGxtgdL4VARdQ6NU5lCDPkhPIdTn+DYH3BXl/Izckl/AMjcWTK6gMrhrlAeF4TRJG4H5cT0/jWl9FwP2zjyUbZWItxnnqSGGKI6O4Ic8xyvCna5p1nhiReSx663hCzHjbsbn/MPjeV7PsAQobN156+1Dd6+4Un5W6d+UHfol+1FzWTuSegDGX81NzIyoYPx2wAVebCrNmw2uzHR87AQFcU1Hwc/1Dg47TkyCHgvYqF+PT8nD4d+CZ4eiEnyljPhclaGY9XQD5AHjNoyGWxsWu8OfngwPqTqyKcxYsBLXiZ5MiPdMl/PrHGS2CrUOFmmSfFGWYMsWAg+fAhpMD+5lPEFa5FHkH240VCml4711Nf7uNgzmBwofv9SnBEyXlCkBJgs347jwydafGps+U/VD9Utp4+oNXyVRyDA/unVOidghGITUjAxjeW7vWyCgFaUgk3VtXZnxmPI3nVvdfGGUBa83EFWTE8mwk0yy6DkOGMSZ5v4iZDUu6vTgZWF4FMz3WvJOAFDZrzbpBtUriGGyF/LU15GhP5GSAC+Mr6R4aWmQdzvCChYfJqjykDCEv4mI/qRpFr+ca520VryLlYBZs3p85zK7Ae7pBG9BkXoOrQyUiwDpAra9EBKhgxaLSKSNSAk1iZr99E5GTajPEUzp3tqAA+JAfS/R3eIP3uA== 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: 9ca5c958-4b99-420f-aa10-08daef514723 X-MS-Exchange-CrossTenant-originalarrivaltime: 05 Jan 2023 19:15:56.3288 (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: o6GlqtbU5Y1MY1Chg2B9wTG5wnupslSsSPpUu6dywm6Epw2iEBV+T0YgA7jbrLFCx1cCkjTWFf07KUOJZMmZ/Q== X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR10MB6075 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.205,Aquarius:18.0.923,Hydra:6.0.545,FMLib:17.11.122.1 definitions=2023-01-05_10,2023-01-05_01,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 adultscore=0 suspectscore=0 mlxlogscore=999 spamscore=0 bulkscore=0 phishscore=0 mlxscore=0 malwarescore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2212070000 definitions=main-2301050152 X-Proofpoint-GUID: xUoHY5Pjh4Ejuxl70ssiUGgNwBIjm4n2 X-Proofpoint-ORIG-GUID: xUoHY5Pjh4Ejuxl70ssiUGgNwBIjm4n2 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 bd2fcc4d454e..1c6a6b319a49 100644 --- a/ipc/shm.c +++ b/ipc/shm.c @@ -1786,8 +1786,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 @@ -1810,10 +1810,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 Tue Sep 16 05:49:14 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 63C40C4708E for ; Thu, 5 Jan 2023 19:17:51 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235634AbjAETRs (ORCPT ); Thu, 5 Jan 2023 14:17:48 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:43814 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235492AbjAETQZ (ORCPT ); Thu, 5 Jan 2023 14:16:25 -0500 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id E7FE3EE1A for ; Thu, 5 Jan 2023 11:16:16 -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 305IUR2q002869; Thu, 5 Jan 2023 19:16:03 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=PLcADLLO0+pyQdtXtFXHL4EsnE3qvx+YyM8bN/POfMUlVHRuecWCQ5Ak+M6NPLTqAMQw 6Zq0yzNCYjw1bJPW1jhuNMcce5WJSPZOoU1P9fuv2NR2VgxWWKVHqIb2GPe0bYLzMbAt 0efGvP16yqQ9SgkOtClkbUGHNl4elf9oq/X33EYiH0JpdpXSlQQ7X3KEhVvFWuHH2aLf AtgxF4YemIn0h/QMFag9soP+w/b1G+zPJtLxeJwWHvqx9BY1YPNjv/V6oDeKoOmGKMSh YeaK+TNSczr+VbtOqLhs+vpJ2oUmv8YhKcarhRiXLnIS8bBCQPu7D1ZOcswV/jWKG7Wo aw== Received: from phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta01.appoci.oracle.com [138.1.114.2]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3mtbp11q06-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 05 Jan 2023 19:16:03 +0000 Received: from pps.filterd (phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (8.17.1.5/8.17.1.5) with ESMTP id 305Hvlpl023372; Thu, 5 Jan 2023 19:16:02 GMT Received: from nam10-mw2-obe.outbound.protection.outlook.com (mail-mw2nam10lp2106.outbound.protection.outlook.com [104.47.55.106]) by phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 3mwept6m1t-5 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 05 Jan 2023 19:16:02 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=GPHhQ1e6FZo3t7CH7DEJ1OGARdN+wd13ZjDbjhudfCXEiVRIFo0YYW3dqmIbuTl6sTsj/IRgrwUw//v+wTKFE1rF9qu87AXeBE/78iAhDIxtXKcyMBdx52sYpCA3/m1U6VdWo2VEu8aCG/MOtzSY/S0jyIfQkBwgAuTG/WoSWgyo20IlGvaKkCn1aiVO4bhhMHMws8VyAXPuajYUrYC/e59bnGflPgoCOtqUvZMbKEQIxNDU1Af0JudFuqrgkSspQPIJCSHopn8STdSgtVf2XdK6R/mqUnzz5LJkcU7xXaqMxeDN0nyyWz1ZzNCX/+aICP92z1EnmrVEMOrBZ48BVQ== 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=UfXXUjwF0mM1KR/Hs3HTQVxhSMJa7pmYoMDAt3/yv3psmEp+EO7C+M5+c6oAMNlR8ub+qMcieYNwFQKHHfiO/c4j5SXJrzjJEvzqLerh00Z2AjPPnXr+eYWPk6XCdao6jIFrz8ulRZ5PBxknwjhNEAuLOcJLl7B4vYz9Cn7+B8IKtEf4SMxwyzKVKjWbNkR9aI+SurRyy435SiQkUrhHT0DJGGGEQLk0mOCSag1RMhqGGOTkxPCzV/bu/AVznZRj/V+HLuuZWRSlz4arJMoT2Rjb5z6NpQ2PnU8phZXWd5u3m8UyOzDGZHGNEKUCrijaXoYsLoY43zN1Nx6kX9TebQ== 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=GGohEQpruRew4yz3aNgTHFJgz1v3vWovL5Px0BsOWGA+JzOmWhhnaHWtux/rW1ri/QuWun9qqN1NgGk2lwKHz+1gJL62yxy6MEHg7vYph6L/LsTGSWN48SG7V07t/iANsnqBYyyEA+ydVC/PWDxDb8Nl6jf6ng7s5oIhXQrwQ1s= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by IA1PR10MB6075.namprd10.prod.outlook.com (2603:10b6:208:3ad::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5944.19; Thu, 5 Jan 2023 19:15:59 +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.5944.019; Thu, 5 Jan 2023 19:15:59 +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 v2 14/44] userfaultfd: Use vma iterator Thread-Topic: [PATCH v2 14/44] userfaultfd: Use vma iterator Thread-Index: AQHZIToj7J344xy9ZUKngr7HlXXmkw== Date: Thu, 5 Jan 2023 19:15:56 +0000 Message-ID: <20230105191517.3099082-15-Liam.Howlett@oracle.com> References: <20230105191517.3099082-1-Liam.Howlett@oracle.com> In-Reply-To: <20230105191517.3099082-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_|IA1PR10MB6075:EE_ x-ms-office365-filtering-correlation-id: a72267b2-f7a6-476d-7cf1-08daef514779 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: V4DFrmGTUV/7q0fI1d4tBZ/LrsqS0vF78YgvHpb//SZkjF2hEgB9sn1+jVaCzjjem39e0ZRDFJU9eN2uxuxAgGhHLbAoJVt1TJQdvqEkrb5GucHT0OmUbVOxTngdZ/bcpvGZwyNVwrRLIV/SMIvam2M3fxbjBsacy4/iZSTnqRplsgnZh1K0UtG94UAJfZ1Br5i10PvaEMVrS4tAWwUOM1DkwOWUkaO3GxW7MMSFyrd78pEb4fthjSJx0TXswRfGgo6YeREmwetfumt06qYeAHXRdF2gQGIWPCxS4IDYfHkY1NUmkqZky4Q5+gGiy4DkIvIKV91e+uyWXrTb/tnXQsPYm6tqpyAiMCp3LBIwL84KKA/QHTcFdMTrygsN4WcTOXOnenQzEeJjEDZj6pdgnjQglrhsqmIpv2X/V4LC5WCxo0KPbpUxI2Z4bl5PEbGBCIQ0+wAJC+/BmCJD7HhQxkkCDPoRa79O7Wt+nFxKxEQqgW4YWoUV3okeyDbcROUz9EWx2xjYh+s2p5mrR17ert4bI2bhdZ+UiF/DmqEhSlgmSSe0WRq7oIfab48FljeFPpPDjY/OE5aby55vJMsHk3J+P/Ecz9UzTe/dJ0+QSb0qHetMyC23gxwn48oETsM9kDtP78JwRGGBZlvhFABP6lMf45q3ZEDEgKdyzSa3r3tYAk1rtOO+8vJKT5SaN3OGSCYROooNc2RsvrQ6hCNFpg== 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)(376002)(396003)(346002)(366004)(39860400002)(451199015)(38070700005)(122000001)(91956017)(86362001)(38100700002)(8936002)(2906002)(71200400001)(83380400001)(316002)(66946007)(41300700001)(5660300002)(44832011)(64756008)(1076003)(66446008)(6666004)(4326008)(6506007)(107886003)(186003)(2616005)(6512007)(66476007)(478600001)(8676002)(26005)(76116006)(66556008)(110136005)(6486002)(54906003)(36756003);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?Q?1CGdb4qv35GxRokIflOpSYdMQpcbbCK29ZRk7v1BRTqMiB6N35eorPoXxM?= =?iso-8859-1?Q?/tegktEDVxn5nlsjrlBKzJUkPiodI//NTphqGi+Qu1dWAk4jqpuu5trzKo?= =?iso-8859-1?Q?JzuMHcYY31x6fE3t8tmfGpiBtnsjnHKqstAMlUqkxzZqkJUMOBk0ullukj?= =?iso-8859-1?Q?LVTamDNoaoN6s5mcbbjmPigDSS/geqKNrY0k99r0UfdP1w/S/o5UEOK/aN?= =?iso-8859-1?Q?dJr/f5mjcjGCPzuKHDjLYweV0LGnFhb0bNuapnKcMxY8v2PU8pbodEhKus?= =?iso-8859-1?Q?GoK+fS5ni4JjWal1cBor0RLnT2+FsoPcUi+2w22sO1jsIFYd/IMfRkIZ0L?= =?iso-8859-1?Q?JkYy1CTyX3Lk18BGGwazF8LXltaOWLBky8BNqLipxfpZp70QDzFfLAWHU7?= =?iso-8859-1?Q?MuII1Q7CaXLsZUaff4PbWHgzYv7hICKemJ7DVyWYdcX0V/pxrviOxoju2j?= =?iso-8859-1?Q?R4FmNBlpl/JKXoxZUIh+P8qMQpTOslH/oZD7I5hk7rsyskGs0tncAmXuS4?= =?iso-8859-1?Q?T9ptWp2bVtD3FgpfdQJZEykxYBJaW5cc6mrhY+aXli/89Y8G2o2wYgnXVR?= =?iso-8859-1?Q?GQ+bJh8TVunGIBb2ol8wG+Dp/yHFaZnI3I5g+lLKX+RFnG7st7+8VVkcEu?= =?iso-8859-1?Q?/nmwYTDhE4icCLJbI6+fOMC4IAUiZ38wGR8kNg8facv44WztIley7FIPXf?= =?iso-8859-1?Q?0jB1trn0jEYMc+arrRlugv0Nbt6zQeUYGngsNKv3pb1nVOgtnzHJg1P/cZ?= =?iso-8859-1?Q?LNF8tjK5iW9tYUGGfqKZHNKTYqseWU2SCuHYvkb+xh7jdaUcDHFBfX70go?= =?iso-8859-1?Q?2XS0nQi42YBqJRQ69X4AtOF9/edxI6f9bHOnBkXawescSdXcN53SQFRblv?= =?iso-8859-1?Q?fRnQveC7Pbma0tzXoCexNFC0U2XRAynS34Hp2EBNA+Vn8S+RAG9MM1Ch3C?= =?iso-8859-1?Q?RDLrnFFAX33GYElilDY7m9Ruihrk0TL9NVcx4pVcDx9rPqjwTlPsueBvTt?= =?iso-8859-1?Q?rJnozMQXX325wim9zEwNuQJ6jfgnTsquu2o8Ki7aXaqjKqkgnj/UfAOKnK?= =?iso-8859-1?Q?EW9xqh8ylEfygvZh+B+FvaNXcf3dHxcaeA5x96lsMhY5CUZdlF2w02gk20?= =?iso-8859-1?Q?+woOg05JzgkJDEQXN6FFlZMtisjlQbIR7qJ6dqSa/4lM83yARvYFK5P0Ei?= =?iso-8859-1?Q?HsSx+839Ke4gljyLqro8YoZuTpMnnTAlSqczt+nvhJlTEEkdW96hO4Fet5?= =?iso-8859-1?Q?seRx43LbovrtSvnqv2izpR76xqYZpUdsjc2/p+ivN1SI2IMb/sf2IdXUPT?= =?iso-8859-1?Q?zQ4wK2JUBGYbrqwh4xo/coe3lsHFAoJ/AyOQe5vjJLPB1fmpD1CgiOlJtm?= =?iso-8859-1?Q?lOSORtyNDkL4zKBDCPzaNVCICOqn3GaDxhm3pAYr3p7OgJtoEN3fxdT1VS?= =?iso-8859-1?Q?TB7JHERePkepJdiov5iXe4WdtJLMVA+WQsOC8xTqPGzGzy30GdGzi2bhW4?= =?iso-8859-1?Q?yFIPYYXoNyq/WSM4aEkzgi7+WcGg900zAHznVadFRTvgKa63+ucRZTAnzQ?= =?iso-8859-1?Q?+4FikQZKhJ0ata55lZ2emFEv3Cg8rQSinoAHU7HAJyDdKIRMFldWH31oST?= =?iso-8859-1?Q?AjHfVtaho6a++baTqC3fbGkHGXAjv2qMaMyZ51jqgGW2Ic1RUlkEkHqw?= =?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: Eqne1y3o/cdIdlNVOp8qTpFYn9k9TI3ewcQ0lTKjpEOtJaPSDc/ZiJZwXOk/jN4KirY6wfL+fiea+Xpj+JNKGoz2VSCIX/Fzj57Mgr40AE9X/fuM1I0BW+pO0Ai5GCJZeM0OsSaSse245vZr5Ly7133wHIsczcv2odgkp7TnWmYd/gxo/5O5nKfmafgUujZ2NKbY4Sreqbv94oRdGYbqCK8ySOCBcipKMeBZJ+BiWtTI5NkjIdpFD1I+NuuM7p/o+3y8+zoLDAhBY4qKES1UEPu8bCSF58gCFpyYnvp78Lx1qbvROp+NfHhl2sk3oSESDR1kXOibmlmYdM+9dXdM0Ff87SIHmn6QCeoW2PExj3tkXi/y+9vc5v53CVjEZU6ErX2fa7koLfapMhyCurTSl56qaJpvdJl0cFGQI1MySPA+FWkyKgVPkUwZ7w6bwCgiiEDyAFDvBP87UQo4hloXO8g88E2HQiNSuGTJpxc4tATSYzIhJFfr6i/V26X9JL4KfspW3TLWNcxHYOSDrh3wm7dVw28t2gkOte6RQiDKHKo6waW0t9u8umi22ofwMpNzJkWyJI+Dvf6+7t0heczfoAMpU2Z88cEVMTO5DfVY4euJB+A2Bq+BmyrCPcuU52NwjdIHpXXzyFJhwKc1UQC2Sf5RbtW5WcUP1YWHsQ7bUxphXwqJDvGKoNUYdtRXl0VF5dikaXB7mpHtYhFUjZnLyrcXmHlW8Fo2zLGDqa4Z4PUvUFjIcUpICdaiASJDc4N0gCYKhGXTkXTVaLwVZGEfNoG9wLaNx07MIfQey9BXHQ+u1BaQAEwPF/9UklOfF/WDY+eieG5+16nUxOdZ640Ks3Vh6mfIGk4QvzskrnW3mNaR3iFqtHrO+uStcoO7E/vtyqgPj0iW2RlUGdklSyAN6g== 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: a72267b2-f7a6-476d-7cf1-08daef514779 X-MS-Exchange-CrossTenant-originalarrivaltime: 05 Jan 2023 19:15:56.6725 (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: B/7AxTu2T1WGR+5sJG5F2/Djr/XxJs/7HmPPxQ2idV7tmWxjNfiG2Wm/I2izm1A7/z+VRsNiCMj6Z3+sNRI6Jg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR10MB6075 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.205,Aquarius:18.0.923,Hydra:6.0.545,FMLib:17.11.122.1 definitions=2023-01-05_10,2023-01-05_01,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 adultscore=0 suspectscore=0 mlxlogscore=999 spamscore=0 bulkscore=0 phishscore=0 mlxscore=0 malwarescore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2212070000 definitions=main-2301050152 X-Proofpoint-GUID: Kf5VJVqHXVNvfwtUZuQi_U42x4-pZhiu X-Proofpoint-ORIG-GUID: Kf5VJVqHXVNvfwtUZuQi_U42x4-pZhiu 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 Tue Sep 16 05:49:14 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 EB302C5479D for ; Thu, 5 Jan 2023 19:17:12 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235574AbjAETRJ (ORCPT ); Thu, 5 Jan 2023 14:17:09 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:43870 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235441AbjAETQP (ORCPT ); Thu, 5 Jan 2023 14:16:15 -0500 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 3621EDE82 for ; Thu, 5 Jan 2023 11:16:15 -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 305IUNSa002761; Thu, 5 Jan 2023 19:16:03 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=D2mcWKAVukebEq7oYYVYGVxNeBUmJn8wuq7aGHCw3pI=; b=mGU+CQJ07YOV/bxCHr0y2oWSAUa+n3yyPTwgazIW0h57DoI5tRpoqXYSECAE6pDRFfl7 E/6ibpHtlj3ED1NoKmuXdGpjqzAny2ECGFyDwjR4RiYhaK7E3Q6jOqm9zdmQAr2wCWGs 9jVYi/SLpj8xgztoAih3fTVXDOnTUzYhUCMgEjONtiKKKK4gkl1YaZY0xPxTFPZW8QaF rfh0lJ/VnOpRUxBAGtoORbzqMOfr+Dk55y5DDXB9BormR7mSbrfZhxCO2PWiKi4l0rDC q7PaRqRHU6+eNWMVwcb/HJkTIcblGGBHfNha8pWYJo3pAeE+60WX3ACGFppMhKUyIFEA Ew== Received: from phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta01.appoci.oracle.com [138.1.114.2]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3mtbp11q09-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 05 Jan 2023 19:16:03 +0000 Received: from pps.filterd (phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (8.17.1.5/8.17.1.5) with ESMTP id 305Hvlpn023372; Thu, 5 Jan 2023 19:16:02 GMT Received: from nam10-mw2-obe.outbound.protection.outlook.com (mail-mw2nam10lp2106.outbound.protection.outlook.com [104.47.55.106]) by phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 3mwept6m1t-6 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 05 Jan 2023 19:16:02 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=H8s2JG+6z5dlGWKYWxhiNmFEEEo7v/1zcThNJqwELk2GlknaSsGphMjIFGvWvEMuH0LAk6is3ap0d9bTx1Mjnz29Tk6vEf8rHnF/rFrbqQYOOdaja2OmBYtv1V1dW4tYP+2woH0eYMiVVyEs/7Xtb3lPoiifOJULYGGH7VK3ExTHG3plDYzgZkpvO4IbROaVn4Jhls1A3xAToZIklTQay8jCbyS423ok1syJFIyL6rhQlcoRQBOKiQ+42XEtqo4KnTfBuWWn/6UTVX0dYe/UuNadhQZcThb2sKF0aDKYaXFbL4HEIILnNTOIJ6a0M5s86DQL1HKloA1yRJRnL18+JQ== 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=D2mcWKAVukebEq7oYYVYGVxNeBUmJn8wuq7aGHCw3pI=; b=l7bio04bdmEXZ0XPrslx7ijvRs+0IKpvU2d6QUjKvwIDcw5SXAxMOdlcpmd+nfFQRTcBNdTHp1b4xryX9iNvGz1dItVqzX/YB0IwxbH7h0jRzzihBoLIUZjwQu05UyswHhMZYBeRzxKGDbL15w32bquqEmEgpW7W+f7M0DFxQxVtGaPrzjaXeJ3X6ZfhD5sLirj9jwRQrgVPsplk3wF3WIAih5pgweGRbBKhSxkgUidovJWKfyCeN3fUOa8hqcP7A4JxuA3d44/UTvN3QKvGEhQYVeXE9aeZCD6SOs/uWF6j1qSBAJx8eDWzUo0DzNPr7pj7EbLaHf+BxO11HjvYGA== 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=D2mcWKAVukebEq7oYYVYGVxNeBUmJn8wuq7aGHCw3pI=; b=uj7TtgxaWEh7d7mp9SSjRJbwMQgobIqi69QXaWFxNV+vdwAMssmD/EDRAMNN2QRdye3X39JPwcKGo5t2VNBXefw1oL0Vg/gWREb8aJAEimMooG72r5YDShRG/h74CNoxuDDFJrfqcGXQPjD8h38iCJuSt4Sih8K/XySCRbtDhSE= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by IA1PR10MB6075.namprd10.prod.outlook.com (2603:10b6:208:3ad::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5944.19; Thu, 5 Jan 2023 19:16:00 +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.5944.019; Thu, 5 Jan 2023 19:16:00 +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 v2 15/44] mm: Change mprotect_fixup to vma iterator Thread-Topic: [PATCH v2 15/44] mm: Change mprotect_fixup to vma iterator Thread-Index: AQHZITojC1aO2fk7xUeU8jhHjC9bew== Date: Thu, 5 Jan 2023 19:15:56 +0000 Message-ID: <20230105191517.3099082-16-Liam.Howlett@oracle.com> References: <20230105191517.3099082-1-Liam.Howlett@oracle.com> In-Reply-To: <20230105191517.3099082-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_|IA1PR10MB6075:EE_ x-ms-office365-filtering-correlation-id: b12dccd9-8e7d-45ac-2932-08daef5147c8 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: mRZDTnTMviRjm9CzuAesFaPbTZc9LABtcaEb+BsgU92zQQ9aGZyofgBde78ReREap57IOGEamlkdfQ7+jPNpx6j77J5TmAi3I6z5X18CRVGCp9vGQ5uI59CwGOkyWGHOVqdhcXWBszKgQWEm8rh6PHt9f6jX0PuPLW4A/HLbb4XSiQUaBErR76PTHVxmMZ51/mQF5wjgHZQp4vx/zuUAFaUumHB33syPX+oAQ5ZaM99XZTt9y+mtzmjEhl+d6+bbUDx7sHp16mi28bRbHKlbTIQbFXee/HyjMMbr5AuRNI5iNtIHQBSCPSc6Q+dZnLqdybE26+qp5TdKfuafp+GTnMwO1eu508gK/XcAB4MxSNDxRI/jpjBcoY+DWMbfHFXKhKpq7cm50AmWrkwPN7J2IYYfcXq/Cyxq2SpbwyxtNdd56KxBnvN7fg33o6SkM+GSKf28uTm7FWh7i8No+ZmmiPrzROY8cMsSp0VvvITE0Rf53iZETHFVV4GbHIQFPxGMGOSpI6puyI09SGrJHLoRoeqqYdz0XdQQghdA5PIXqoqx7Ww9ct4qJhhYZu5pa/RY/GPHndJ5rlVIPbMBq/6J2AOwppJJr6/DowHAs5RNauto4+fCMLkVHyuMKo1Zdcbcc/VzJVBeO+NsZeP9XdetkaESnPnuKhM4Y6Qsk4+K78IaVd3sO9ApR32I3Q7AGhSW2LaJo6rryOqDlhAafxTcqQ== 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)(376002)(396003)(346002)(366004)(39860400002)(451199015)(38070700005)(122000001)(91956017)(86362001)(38100700002)(8936002)(2906002)(71200400001)(83380400001)(316002)(66946007)(41300700001)(5660300002)(44832011)(64756008)(1076003)(66446008)(6666004)(4326008)(6506007)(107886003)(186003)(2616005)(6512007)(66476007)(478600001)(8676002)(26005)(76116006)(66556008)(110136005)(6486002)(54906003)(36756003);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?Q?lpP0K/cloY9UCn6/6mZWFzq7h8xxv5BTIK7wKbzmvFnhSM6/FET+2RbJjb?= =?iso-8859-1?Q?H0QG3DjG6A/F53ziH/p5txT0wT0IfNIXFXsQUhiQBtSFhVmCCQNZYY5Yak?= =?iso-8859-1?Q?KLmZy+ljRuWy/xhpbFBsrVT+oarXj5/pO/p8ReO6TJpcY6yQuJBzeLlKQr?= =?iso-8859-1?Q?i8pt0KXl37fL1fPbwNFb9gk3tsGS8EtrZggjb/Uj9rXhnzyWnjdzrk2Uxs?= =?iso-8859-1?Q?crFGRfO1TbFAvLsMslmugTbKlGBbnATLV285rjHw4M6BDF7mooFC3M1gDh?= =?iso-8859-1?Q?rzhSgy0FkE6wCeWgveRNij5AxvoEzrSxzMcuX4ykRFex3pwJerg9XqnUj3?= =?iso-8859-1?Q?znnGQ2A1bjjKTXfF0O+otrASf5aFJ1VNNNy8qlyu6tYnGsSOzF3VCi2qHg?= =?iso-8859-1?Q?Q0btktBuQOZRfqCFZVTrOVz9oFUU0gpfQ1I5mph3U7jlefmOVSF1QXBhNZ?= =?iso-8859-1?Q?8/1O1Pn4l4ZEkbmAg5veycF2grEtCP5nKFRmw35cX5BywjKa1lEctydAT+?= =?iso-8859-1?Q?v3S1dX306WJZADP3B8KO/YbWk/OuxiM9CAm0A1YfljIa9Hlp8bZkWCjAyj?= =?iso-8859-1?Q?6mnfOI98Eq+pAB+CNi2Fvfbq/sLpV0wRshESRneFY3UyBqpCT6PcGi0stE?= =?iso-8859-1?Q?l4DVwAYHc2u1WtWiSccSPS8LFYK6QU7z6/bcytRXyBfKtpCEqbMGSlfrzn?= =?iso-8859-1?Q?ttDcEaZ5Y1JYr3IpJJmWb9oi4xbpR1OQC1o7xorog86dnAZ2lrlRhDiwjD?= =?iso-8859-1?Q?zq642t5wG0w19od/Qed5349mFo6Qrl4CfPoxwKMn9o77AXnRfpTejvpX03?= =?iso-8859-1?Q?Mybld8u5H9zBKsWLWGUR+QhERgvkTda34dIo4Ab+T9Fa63EtULaEID79Cg?= =?iso-8859-1?Q?lBIyWo+6YyhtauDqikldSOlhem6oNBeVdyipPGIoVKsoM5NWCzXgUipTVy?= =?iso-8859-1?Q?fvskSa/BV7otOwfPTqu678pQqWx4NuGKA+huWokXNfEgArEvboGCNP29Qn?= =?iso-8859-1?Q?hkoiSCvCS+t06P0bdK/cmrJxLcszyp09CHQZRA78b+DfLaFPqW/FCYD0oJ?= =?iso-8859-1?Q?Tq1FkCwlK99AmwUsuRuvwSS3CT804i4eMJqW1W7M05S/FxHdJa1EYQs1Dl?= =?iso-8859-1?Q?aJEoMWHYkd9grv78pnL/+/T/YfnN+g2hWXmCZFKD/iyZ0yFzytxaOeClx0?= =?iso-8859-1?Q?YSq8DuCyYRlyqpGDF6TV56qro+WK5rZJFnFsreAc00J0q1VCb/vy+CXa/8?= =?iso-8859-1?Q?KEHYzuHLZ/HKsa+aXYoU2bYn/LUiZFVaErEYLO9VJEeRvPVy2FbI9CsRLA?= =?iso-8859-1?Q?BVSJHJC9oLgXlKGYnICWPs4ggDX0EMoKSHylpMoJ6cF9WssWu98ye00nT+?= =?iso-8859-1?Q?W38GLjaVjTByngM/4TmqPp27G5U0v2DHdRLthf4PY0NaW1sYOu2fVMJLfV?= =?iso-8859-1?Q?1tMJ4aTAHW5qyCBlUbs5ZOOiM9Fo6Le2q8TCpL0OqXbdhsdeJ+QWI04nuY?= =?iso-8859-1?Q?pnYM1mvUKiOtjcpERlj0F2Efamw5kGTTo/Y+UJZcVAA2RbsRMV+wWZxTM4?= =?iso-8859-1?Q?yp5uaReHqDMKmnvlXWrgCEW3r0CGyqTABmKxZn8RKHLNrBC0qwhfkj1vpj?= =?iso-8859-1?Q?BZH2rB91IrIBcuOothTWdVZ046GBEd8DbyEbIwh3i0AnLgiqOpxzqNmA?= =?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: 6bd7hqwChbmwzbfk4GRigRWACnyt6bqvhaNDIQXli5BOYk2bWYe6bubHOIqtDuuD00mBC0ZQy2eoLqAa/BGX0EckJbYMNCrnDft2UIDX0KE91d19eg/U7JMUFDQglj4eWNeyvlfvn53WJXMsEENdGUvVeINE2c+ZpPwytN7IGsdyYsKOOPHCzqc7DbI/Y28yUGUao2P2oFUMXD869sytigniuvbSK1PXu6IVrDljHgP+x4GL8+5rrFHKVgHVTGr5SgqlCZy2bMFtSt9XksClf87Wk1m26Dvhi6oS19XN83yBUOLTkqPDkeoxzw4opfex57QGIuBdWF8HZZf4OQtYEHrVQo/JWYkZyNB7eX33N1bZwPSTZ7QcX/lTn+aLluYV53WkydT5oqcYsi89CAZ/MOEMH9jwdfrwiWUzRuDBd6gmoitXoZnEsz3MHEE47l1CJD1Vu0k6Oezvtl9efDqJEBJj4DJOkdC0OmYOjpGdVQp77JDBPBERAowdACUC8DkYhXLmTgla2G65KEy15Dz4T+5pTVlm/+WCjXGymUrObMMF+W0D5bzZbNqI3uuRK0/2sAyejSGxSKYRUR2yx7C/HTvI539bVLV7+H+ckH/bEZyW/7i+El4S1Dbec0s1/eVIKeOk17Qs3qCMvvv/Hx4ntpHL9DxNcts/6s980bIPU+RgPGlDEGBOT3kEf8kjljk48QclKFb3OnHuQPnTfcaWYzgVoOg/0EvS18FHK1bj7BGIbcewPpHriSoCbRozCzz2fr8dJw5Cf4mGlmoESturLIiYzY6iJX+g/NDToUyxALmI6UN7nPFszvY1HGKr/JAOYvIMPa92yglfw/SrYy9Wh/wqMhsuKZ0ih9NKOoOvswwdhi+P2TxaIJRkbeGdh3QCtSPOd8Px4xhIodlfTHa4hw== 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: b12dccd9-8e7d-45ac-2932-08daef5147c8 X-MS-Exchange-CrossTenant-originalarrivaltime: 05 Jan 2023 19:15:56.9381 (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: 4sPXSMp4j9M2VwQywQWH1buCcAkjpQ9zJ0Bm8HBpbup8pgpc6+rOEWwuMI4TThIwreYQJ3ykTzDn0CUoGQTpaA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR10MB6075 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.205,Aquarius:18.0.923,Hydra:6.0.545,FMLib:17.11.122.1 definitions=2023-01-05_10,2023-01-05_01,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 adultscore=0 suspectscore=0 mlxlogscore=999 spamscore=0 bulkscore=0 phishscore=0 mlxscore=0 malwarescore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2212070000 definitions=main-2301050152 X-Proofpoint-GUID: mGauV3OtX3pt1Yd3qMPMU05B59AftB8h X-Proofpoint-ORIG-GUID: mGauV3OtX3pt1Yd3qMPMU05B59AftB8h 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 ab913243a367..b98647eeae9f 100644 --- a/fs/exec.c +++ b/fs/exec.c @@ -758,6 +758,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 */ @@ -812,8 +813,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 9c790c88f691..98c91a25d257 100644 --- a/include/linux/mm.h +++ b/include/linux/mm.h @@ -2188,9 +2188,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 908df12caa26..7e6cb2165000 100644 --- a/mm/mprotect.c +++ b/mm/mprotect.c @@ -548,9 +548,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; @@ -605,7 +605,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) { @@ -617,13 +617,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; } @@ -672,7 +672,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 @@ -704,8 +704,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; @@ -728,18 +728,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)) @@ -782,25 +786,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 Tue Sep 16 05:49:14 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 C0B5EC3DA7A for ; Thu, 5 Jan 2023 19:16:50 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235341AbjAETQs (ORCPT ); Thu, 5 Jan 2023 14:16:48 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:43852 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232178AbjAETQP (ORCPT ); Thu, 5 Jan 2023 14:16:15 -0500 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 301B6D2E7 for ; Thu, 5 Jan 2023 11:16:14 -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 305IUJ5d030170; Thu, 5 Jan 2023 19:16:04 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=nFGiF70s8no7lzl5sYvcZYSomF2QqY9d8FoXMayBaOD7GqoyvltksVWqyeKn1tNym9PS SdH1sdwqjqtLjv0GsSWjF+o5m15nxz3FyNBnUaXe/LYKWRkSXvKZtngKnf6aMDIlIQim wdt4RosFNqOQj2qn6WQ9N18WtKr0QHtWburcSABJKVB7F1j8s9OtBOv5asO9sLxeM/kW GyFJZmP6nYTmi7V6fKRbZpl6iCX2SCBC3LQBXSn3bQ9hprOwKc4gzgKCT0oHSdKHK7Hj nEDUYq8zdX32U8FT4cNCCOBw+Nbpn3amxEKvOjQ2LSct7xNp7T+xaKKaGQ0JsNpwSmL6 HA== Received: from phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta01.appoci.oracle.com [138.1.114.2]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3mtcya9k9s-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 05 Jan 2023 19:16:04 +0000 Received: from pps.filterd (phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (8.17.1.5/8.17.1.5) with ESMTP id 305Hvlpo023372; Thu, 5 Jan 2023 19:16:03 GMT Received: from nam10-mw2-obe.outbound.protection.outlook.com (mail-mw2nam10lp2106.outbound.protection.outlook.com [104.47.55.106]) by phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 3mwept6m1t-7 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 05 Jan 2023 19:16:03 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ChHyF9oOCmFU6lkr23Hz8la72QALSrSwfqOAUwZX/33Y6eUR8DEOvPwMvLatRXZ/M5p/H+t9zW8p47X0+Od5EeJmcJxyif4oU+ikux5vsz0UE5lRWOkkX89lQfjdnZhGFFakWOoMMj+2GOUka+Ga3HhJSokViZQsBk+Sk3ldtoPS+0pKvU2x7/VpCvp7jwdrtDl5OtsFUUnxhwEOkEPHSsSyOa5SGJFF4f2LmhxEsrlN1W6GYhK+bFig6PNd1X41TcZ4Ag4QuOW0wVnZ2v+6uUjJmPF+gltsVLGlkX7vCMSExaTXjlfpg+7326n9rGqBf7iYA7nf7UFwu+Yay8XALg== 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=aWhCf4pvcWuZtAxJpYhJNsdGHRNcx4Xq2GIDgAp+YQEeaPXfXfYm3pfd9gFjduT5F7YS+G83RqsofFDKDdhgODOMDgs9VZlkBUI175q3OuNQsJKztox8EWaYkBL1e9XW4BIDAndGvsd4nNujVrCyrPz1FzFTERbdyOIdYX8hNBdIUJEZFFPuPBMM5f6JrclBj/JNeMvnvjTrlwYWQeO/Qr9JJskHe+VtnVq+REv+CDJWKGLXoj6mH4lpDGL6Swm5Yvb5snhe4cnjtCg/AmnujzYxIklfxesteVPfFsagluwixNkpAy/h1SJTFfq97ZC6mdqjaVpqGEMzROEQcZaZRQ== 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=xh9/F4dV8Q+6KGLyL2JqiiFElr9E5QDLwqYQYSjhIMwe35K9l/XpM1sAXaoa21tuNNBaYf2E1z4wqHv69qxHWhbbKHZL4mQA3LBgccycyCVjVq7rCAmDmPiUzk3l619NAWFecNmByYnUxF99UTlSf+pn0YSu4xkoxOkYqe/0UKs= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by IA1PR10MB6075.namprd10.prod.outlook.com (2603:10b6:208:3ad::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5944.19; Thu, 5 Jan 2023 19:16:00 +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.5944.019; Thu, 5 Jan 2023 19:16:00 +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 v2 16/44] mlock: Convert mlock to vma iterator Thread-Topic: [PATCH v2 16/44] mlock: Convert mlock to vma iterator Thread-Index: AQHZITojRp+rlyDyuU+9GjNxV6YrOA== Date: Thu, 5 Jan 2023 19:15:57 +0000 Message-ID: <20230105191517.3099082-17-Liam.Howlett@oracle.com> References: <20230105191517.3099082-1-Liam.Howlett@oracle.com> In-Reply-To: <20230105191517.3099082-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_|IA1PR10MB6075:EE_ x-ms-office365-filtering-correlation-id: 85dca05d-b3f7-463a-10ca-08daef514812 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: MygMY/kj2Nf5rt3LTfgn2mSk78g1w3UvaG5E61XgnX0SW5bUijhlVnKA5icbyDrurwVaozKgZy0BJ2VJJTLQ8w/+y6v+Gik6+lHL3P24921bJWsdJ2ZNbgsZsmIWxZQ1RJWhdMgpFCU7sZh056wGjmSgwzb3MTb4xgzTa95cMafqsTgIUVbS6AAG6XM1dRXOlpjCWcauA0kCYJ48R1XVi1lG1stWckFPSYwngB7sRMXb6K9uj3wG6s9auQ9J2NsN3Rh8zBLpsTZHpW3HQR9PmiylEx8+95gUyZ4Y0vHmG2IsDcTTIPBkmP023myQB3xQ5aS2KdLNPQEdMj65YECoYlno4MARkU50AvOVaIlWhEpSpba27glENNnkjqNEqboXUpsBySeCDFuv7RY/qaP3a5JNmTEnNSiTTBUO83b/Q/2UzyGg5rW/H3oakoHDYIPaOv2kxOdn+OppN0iTVUl+v6UTZkAD2xbz4zTGYhHxY2yoRpKLcHqIJnQm4WnhIYmvYAIHDCg/ocXrAcyIxaVN6tUIabsfpTQKfOJmzRPuuS/oGn34A4yAb0D9ltseu2aF9qrtDn1mlIn1WnhwKnjru4f/KWbrz7fHDBS4+mVf46LZDoE1GdK77kmSsLjiLhlRUO7SE+3YQVPRHTUXvgtQ2aumeh+4bZzYQZOc57nSNDGat5mt2fWQ1MFcicJ8DPe7fPZBCtEPh3UwDG+lgwBfzA== 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)(376002)(396003)(346002)(366004)(39860400002)(451199015)(38070700005)(122000001)(91956017)(86362001)(38100700002)(8936002)(2906002)(71200400001)(83380400001)(316002)(66946007)(41300700001)(5660300002)(44832011)(64756008)(1076003)(66446008)(6666004)(4326008)(6506007)(107886003)(186003)(2616005)(6512007)(66476007)(478600001)(8676002)(26005)(76116006)(66556008)(110136005)(6486002)(54906003)(36756003);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?Q?TK8QCv5iWxa+J24swxMgongjgcVnPAc/z3dCdaJPK+85QOCT9aPNiz8bd9?= =?iso-8859-1?Q?Kv6IAPMGri43tYt1+uzWQCtxrFIJDr3dqAZDfo6ynUtQpSSj1B6hs0BrH+?= =?iso-8859-1?Q?ljVmrK/QA6fqMdB8sLlGa+5foFMHfpBzwvjpCdETzKUjhwvV9Xowjo9UP2?= =?iso-8859-1?Q?qzMbxVp10MJC6MXf8NswKPUR9js3eZLHL24R9Tl2FELU5lfV7piPqKIQHS?= =?iso-8859-1?Q?verS6TxnenJG/cMtz4tSnvkHmNb6Q15ZURhk7yaU8tcN+rJZgktyjHCQAR?= =?iso-8859-1?Q?VOnLWefHHcIzI6S6hYut+koPP4I+VFLM3Kvdrr29Qls2Cxgyjh89eKbzNL?= =?iso-8859-1?Q?WOTxb8vqGpCjLY2esZ/WgSApeX+lwzRLq+CQYgIB8J0ay/dFmgjWvVGEig?= =?iso-8859-1?Q?Ph+E2C3QLMCaZll9/hamTy1e/GG2ycIgyNET7DS5RQed9sYI3j9sPST2f7?= =?iso-8859-1?Q?YK/7uI4J5BetsOfxCUObkCqGmLPzH1HZpXPyV/VzgmifXk+2v5gRwJOFYw?= =?iso-8859-1?Q?r15IeHWw7Xox8SecHgE+btaMlqGsNh7dyGpmk2Jwd97eY8iJ7J00pnx4Yr?= =?iso-8859-1?Q?jazpjRsYzdU26G8OWR0OHz8DFxY6SvKfbHecf/2xOMi2+Nf06CSAsq4Kjm?= =?iso-8859-1?Q?+43q3dNbmZVhaa27wgY5lm+aCq+sgAn6sOqwGg1eQkruqhZ3SzCYi+iMOw?= =?iso-8859-1?Q?nZMW2HnfIcGa14dq0xbKgdYB/WX9g7SXj9mZAOr5yvmoO2VqmyI5S63alr?= =?iso-8859-1?Q?nM9nF2w518peF2sVDTYtmUSG9XIF1EZPBmojj90G/rcgFZREWwLFczjkk3?= =?iso-8859-1?Q?fMb4o51i18RcS12gEJEhxwhuNazFMK0kciXRuBYwAVJDHhpx1o5nrzmBYF?= =?iso-8859-1?Q?Tljuyls5zhKGssMgiOUUShDFhWIirl5KMKFHUO6g9ky+aEc2FwePE0B1v8?= =?iso-8859-1?Q?q/4trSya/IcvcInlBnmeiBVmhtpVLB1ZZLhGlC1Si+4jJ+OecXq4jWmSaq?= =?iso-8859-1?Q?HHySUn0U0QvPW5CzQrnmNkPrkQa+2e2bRWXgEnUNVUOMXY9W+v1uNOAOul?= =?iso-8859-1?Q?1SpOypJupSgWpn37q9CuYFSIkAjdlY4rSKZxfbu3uIvPWhk2byp7WL0d5P?= =?iso-8859-1?Q?wlY9doSTxP1v2fAC/cmtRCVCZR/m2bckwsr1ZF/pSM9zzCouiRj03K8Tte?= =?iso-8859-1?Q?BgTeMkQADvSNBu8iZoNknnVHoJpWlD0Xv4rAVfgh5txDQ/GlmXMbaMIDwD?= =?iso-8859-1?Q?IPDFcZ4hWrbs5lRuqnNfELgDJZw7UxPVSjt17UhvJC8Vog9HNS98tV0HZb?= =?iso-8859-1?Q?llvEmlys7pm1WJDT5/134qnVFx+3tdeu/PpQyrxyEtMtF/PpuvEO4Avffp?= =?iso-8859-1?Q?OKRUhlkE/n+vU+w2E0VcPEbIBNm4g0Zq3HxA66t2YUQETN71JQeKTS4hWe?= =?iso-8859-1?Q?KiEu/GwAG0rTZRO25+JVKV+pJapctry/8Fb12H5zqcnLW0RlQHZeIq2hWy?= =?iso-8859-1?Q?O8Bl4o7BFIFluwliU4RQ28IxmuAFdIV9Z51lRlWYf4LieqMIYToQIgrmP+?= =?iso-8859-1?Q?vxHR2IWMHak5gN6hX/Kfy6I2ReGvpZjmBb5xJDCxb4cSt1T3cJ79X3Lt65?= =?iso-8859-1?Q?9EYfjR6xRlisHag9OlawukElEi35C4t0qma5RBUmlqvkG+HTlr+o72TQ?= =?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: EgoUwO6bDm1yd6r6ifB1PFJDmfRDF+RQeKboOr50edALgHdOfxi1qaY4+3uQRsa/NlNZ7hMPL3TNTkD0/WPx2oHDaLUSVSbdzQclOPPW8uhbX8+MOpL7cvqEX+pXHNlHKEcn8S4OHqTRJeVHkFBvBIbg1wbJF31um/lbJ/rO9dcZrPhtMKK4DalGi66gxiitfwLQLurXXhEaY364V3H2tA3wR2zdqMlsBZ7H/slBU+Mwj+i389gAF8f3fmTQbj+kiR5M9x5pLife0L649uf+jfLqcr7ZylyUURM/9zvVYgbYS3JCfWtUCfYM2pWbk9ykGF1r7QXuGzhTelbwpfU10jjix4V6ilIyHCvkKlvzDaSNhQ/V2fQQlTh113J6p83zR1hpUvjQZfYFhP5Zi2GcJLGCQb0u5OU9eMm2NipdVEfDJsePUqJlVP2WCkEyj1Ui67HGDiQ4Nx2JvgA5TFtHJO0qm7ynpBMIWPiXwfZddWOKHR3c3Fj/aIyn6FWTeD/q3fYoRw0uJL6Gyi8PAyYriG/rnKYL0WEcWPGqIdtZbF3JRpvasVcFD3Uuojl60YZ5SmgNZVnHP6OWfE4ertlNUG9b6DGRdiJXvLMMaOVngStvz5Wgki9bDYjEUs+DuZP7GnQ9KpOM0IvSzzl2Rgiicj3ONp+6MmSf4AqJsLLWbL2pEQXzLSP0nVHaFWp5oCbSYmFsF6ksK1Ij0UWFNeqFtmofTBHnfcInC3mLNi2WUxJLY9NHifgAwNdPXOGbawJ/oHI1NeUJ1Lxhf6GByEOC0s8Nvf2LbrhNXFM07/DrrMInvc2GplL08WUx2GbSh7U9mfmOiBM4+9EfmcDtQs6SnIqwbOCmNRGqW5pBNZYcnQvAR5bHyX1GFASC3rgo6w2SmSLRlRhlp5pTG5DOKnABIw== 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: 85dca05d-b3f7-463a-10ca-08daef514812 X-MS-Exchange-CrossTenant-originalarrivaltime: 05 Jan 2023 19:15:57.3444 (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: zDfNGMIb2+N+MeQjqFdw2+jwMU7InTBozQDJuOcmv2hMs5mv0a+KMHdtrJGMzKs5nzcnwUuAIPCmExDu0WOZzQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR10MB6075 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.205,Aquarius:18.0.923,Hydra:6.0.545,FMLib:17.11.122.1 definitions=2023-01-05_10,2023-01-05_01,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 adultscore=0 suspectscore=0 mlxlogscore=999 spamscore=0 bulkscore=0 phishscore=0 mlxscore=0 malwarescore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2212070000 definitions=main-2301050152 X-Proofpoint-ORIG-GUID: syyomKtQtid0ioaNdMUt3xTi5XW06ZtO X-Proofpoint-GUID: syyomKtQtid0ioaNdMUt3xTi5XW06ZtO 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 Tue Sep 16 05:49:14 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 6C550C5479D for ; Thu, 5 Jan 2023 19:17:03 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S234773AbjAETRB (ORCPT ); Thu, 5 Jan 2023 14:17:01 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:43854 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235440AbjAETQP (ORCPT ); Thu, 5 Jan 2023 14:16:15 -0500 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 5ABAED2F1 for ; Thu, 5 Jan 2023 11:16:14 -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 305IUIHk030165; Thu, 5 Jan 2023 19:16:04 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=7jgMvChxkwjpmNBsSLPkBEf800VrOzeU4TR5euk2NpY=; b=pGwAKfNe8ZUFAmc5AO6HNuUhtlelCvnviSt/xFncZ8D7Lfn1e2V7WvsRSbLQDRGmjjNX riTT9GfIR0unDSzHh7DkIwmomeVSK3Wm9fpiAcboPWQB89xLwHAqvdnJ9V+aaHN/UhSk X0l0gx5Cfq39sFtgGtbEGgTz8qw9LwLU6PTLE2/hIULwNMC/LNdNvL0MC0/cjKRA8mI3 ZhTWnLvaKMUxzVGlJaxn5UFdpvbguN+CFMaGzp/eMgIyng0ukiPmX3gHdTOYe8A3L/F0 aj/uqxEUaJwHe/YrFG3ARruRHtsn1inowHMN9oAzO1CbeJtY7Difb3DnaQb1uidNvEK0 yw== Received: from phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta01.appoci.oracle.com [138.1.114.2]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3mtcya9k9t-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 05 Jan 2023 19:16:04 +0000 Received: from pps.filterd (phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (8.17.1.5/8.17.1.5) with ESMTP id 305Hvlpq023372; Thu, 5 Jan 2023 19:16:04 GMT Received: from nam10-mw2-obe.outbound.protection.outlook.com (mail-mw2nam10lp2106.outbound.protection.outlook.com [104.47.55.106]) by phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 3mwept6m1t-8 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 05 Jan 2023 19:16:03 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=C+OTktSWJDapqBpGxtrCu/OREZE72ma/4obSwxnycxlxjtfZWQILaSk9RWjVYdLAgbpmE4VUAxGLVtLfRF2MC5bLNfiokgRzhpvaDfHIVDOfdxEtvL+D+b3EGajBdjlmGWosfnUN3ErLNzu1ki/sqfftLr5Zr89z2M0BX9t7eKHzfb4HuAtlXsVzedIytZ0VIIeM59XIx8kmtmpIA8ID3WyUNjPj0qRrk2Rjglnuv1sqzCFL4zg53nzooTuOeXOt7uh+3yjGGVoPQKX+2dKe/41jSmoJt3EW1zYy+dhdJAx0QY8m3+aKWL/woMLuWCIIS1gXeLguca5ZFfepefhAfQ== 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=7jgMvChxkwjpmNBsSLPkBEf800VrOzeU4TR5euk2NpY=; b=cXjDrF2kajt/sStB/zSd8yZ0LtpuLm20ym6DqteaeAFM3+u7e3eZ8vYlPvGjGVw3mBp/87aQr9rSekKMSQzskPs4Q1U5H6OVdfT6PGeJEv3uCAvpVW/5eJsBHogXh7W3GiBQiExSWDIZj3+qbOeTZt2iX2zwdxiy0pg5AgA0gpwWbEhz0LdRqorjWhnbWiHD6gcjnHNhWVTpKO74BAdWu714PfHYwzI5nSvx7bAcsPb2eHcjPqgSdUaUXeVRnaqZ/rAIzGDViNQdo2ssrqCJOMgLauSdHbyn4IDxQuMXRshZ9ni7AK4epFgnqnQy15Jt+SzGJQGLGgEOUpg2Cylrkw== 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=7jgMvChxkwjpmNBsSLPkBEf800VrOzeU4TR5euk2NpY=; b=Wa9tUizpINnKRyuDAK/cnw6muYg9KXR2mghQU6VanAllACD+b/+t+kdXZvxIZKemkGJVr0yXsIF90uobOk6Tr64DxBL0DOF69t50Z4ukdebvse9N77927S+XRtzDdTB5OKGMTWVo+blL6IJRKz/seZVmH3NuNkFBgoORaca3Dqo= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by IA1PR10MB6075.namprd10.prod.outlook.com (2603:10b6:208:3ad::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5944.19; Thu, 5 Jan 2023 19:16:01 +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.5944.019; Thu, 5 Jan 2023 19:16:01 +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 v2 17/44] coredump: Convert to vma iterator Thread-Topic: [PATCH v2 17/44] coredump: Convert to vma iterator Thread-Index: AQHZITojDS5jnae8Q0GVPtLwlCGoAg== Date: Thu, 5 Jan 2023 19:15:57 +0000 Message-ID: <20230105191517.3099082-18-Liam.Howlett@oracle.com> References: <20230105191517.3099082-1-Liam.Howlett@oracle.com> In-Reply-To: <20230105191517.3099082-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_|IA1PR10MB6075:EE_ x-ms-office365-filtering-correlation-id: 3954ead0-7d07-4238-f874-08daef51485b x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: eR6lp+/Or8jF0+EVfDEmrUqFWBZIAVYs16xPKYl0DipaPiEqfOb1BWPbEZBTvLfvg+UtG/nN02wkRiqIG4JYFval/ii6HGLZTDSkvWYyDWEt8vh/X4EOSEbQplmgUtWy9+ksOiQ45+iKdEEHC+4pD7vuqypQig/4/ao+Ef/ATwBjHP82GTb8iSVR5xa9Y8ZnXkjNp3Tb1awF60F/H+qKZEGDjLuUWqAtv6qX8KvkWbZ2oaZXabq395x+l5Qe5E+YL1PkR/c9EAWFMFV98bM5+UVUANaGzfpu7kds3DhZ98HnZhLiYMRV7N38EipJVVdAYzHHtZRMWQ9fy7sLtonmGHe2KNO9NI091PYadbCZUtrCcHlIMMf2CyXasP57VF9MgbvC1JkESUbYSc+osfCw5n+SReGYv/iJbYTxSuTHvBHYXvCnCj12H0HG14+yLY7+FQzrJys9j/mlEhzLOUBskvVVbAC0TQYiTLzOLA3aiLltwqhmz0myX4yYvzmJwHM1KwAQXo7UE+ISxXg10BsidGFnO9LkqTE5S9y/nvlfQfOLwGXFti9cY6tVgS1G1PhYUxB1KYsCL2NTG/oEBX3YiNaQWGsVUzYmnuIhqqB61tkYDoN6UoD23hc9CktDoou8Hba/nuhsAYIdXyNUZ9t0KReoirgEFUtAIW+UHVdVdJYRdgyrHZsnMw0OCOE6uEvDKmn493OtDNxbpRV1W65/fw== 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)(376002)(396003)(346002)(366004)(39860400002)(451199015)(38070700005)(122000001)(91956017)(86362001)(38100700002)(8936002)(2906002)(71200400001)(83380400001)(316002)(66946007)(41300700001)(5660300002)(44832011)(64756008)(1076003)(66446008)(6666004)(4326008)(6506007)(107886003)(186003)(2616005)(6512007)(66476007)(478600001)(8676002)(26005)(76116006)(66556008)(110136005)(6486002)(54906003)(36756003);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?Q?TJZUuLADYzmWMlqhauk+zGLK4ccKCL4pRZiYcPrr2iKS7hKBZmOJVAfNb5?= =?iso-8859-1?Q?L0gFfmqSv1FPAWzqt7GFWnXR/FDsQeGCI2iEdH8LFrfNCWvV4GSaxDjWMb?= =?iso-8859-1?Q?SkrWTqo06cPt4wEMlmUhRz76rMrhfzz8mPP+WBZg1UMe4gazbrboUIChT+?= =?iso-8859-1?Q?zokB8/zsRwHulary0JPmsegsjuzeB6Ml6rkr9bxYE7VJsVQb1TiktYVQTc?= =?iso-8859-1?Q?GskzGf6nPuBb+ijpw/bCTBotwY3v+wAWbPgdSGxXRLAkgoPe7X8u7jKqnr?= =?iso-8859-1?Q?J58w9CQdcDRmIpQpT9NYjGxkAfaFNf+br2YoCrDaBSBk58cX7G41DBf17P?= =?iso-8859-1?Q?r2t9SINVp1szLl96g6feosNCWxzBeY4OF6+flcaWmlCxf2lXKnPWTJ5T9X?= =?iso-8859-1?Q?z2chNjsl2kd/UugI3ueuRVjKYOs41jnYqHQlp2U8zwqDr+8l6xvMpGyiAL?= =?iso-8859-1?Q?IixQ7j0PjmnPYPONvMak9+Bdc0aSM4ixiwo2681YpPa+mp3N2Oz4nsrHs7?= =?iso-8859-1?Q?g/Z+YT6qM93nPjf6KoK+nEGj81tD1Mv6IZDa/m/HjFb27DwHOx2hOhzApD?= =?iso-8859-1?Q?uCiwChs5bGfTB6rNQxa0P38zr48R54IrL9AqNZHeWvC5Kej1WZWHbgFEi/?= =?iso-8859-1?Q?qDoD/5r7LMkFjaKZmMI/6WD6eJe+DgK5Iai3hdhJX4bzGq+JkIlBnDw1/2?= =?iso-8859-1?Q?Jn64pbZavkXV+F5ieEaYOs1zaB5idPxvRDCSl/TwOw3MW1xVLxxLuD2HUK?= =?iso-8859-1?Q?0Ljm4vtiHc6Lj88SSFWFD8O6epS52xf1M45Y4rKO/1ziiYJOhRFimSIYHi?= =?iso-8859-1?Q?ZfNNnDrFQHeo9gb4bYQZs5g/gs47b7qng0dfhTIw/8D5tCfpiObsgZReXR?= =?iso-8859-1?Q?LJLqm3glwPqBJoSS2sYEYklc4FuNultBRP3zahf/GgxcpzQNYOVeMboQcx?= =?iso-8859-1?Q?mMJAZ40xIdbqoxYd6NodnUgJXy2Z2sOLZrBI2A4cuBQ2iGfi4BlNW/vdfn?= =?iso-8859-1?Q?dqmc+mPuLwDP9GXqC5If8BCbc7X65lWqDUGJlHnFIHmF/aSoVkFL2DZar3?= =?iso-8859-1?Q?9uFcl/krqdyVsUUOtfzRYnijaa7vKzmib+QA97Xly7CYN5snTsfOWQ0qI4?= =?iso-8859-1?Q?kYkouGJ8dVhZ2buTtNF9s8UASjNYnYMq4sGCxWeQsiztwUhHIwJzvglk9t?= =?iso-8859-1?Q?kXqlsNUzszVNFYQn/E9Q1i68TWSQsXblyCZXTtm7PFhsC8F8b/vhka7dW/?= =?iso-8859-1?Q?w7IUyRX9HDwHBdZ3hgl/YqLCb8ENMvVf/ho7y9uihWBSETPpKiMdvjdu0L?= =?iso-8859-1?Q?PDR2G68eLxN7SLIlIEcd24LPGpNGgK376PwciMnkrZxXLPhRdUuCjHJ+eB?= =?iso-8859-1?Q?QZER38vCW2Vsz5b0hH4hUeHldkwOtP65Kz/WxJTd40HgV3pbJDhmmeMLHi?= =?iso-8859-1?Q?95QpThLpOfO8TlL9/UMySRxP3mLWJYk3zRSQv99l4YUU2oPfhHfYPlCd/H?= =?iso-8859-1?Q?H+n8dm3d0PLK4lZ97tojtG5z303KnPjgdG088lnEIV2ooiAZ2l42JIU+L9?= =?iso-8859-1?Q?VZENWAg362ydnEevYKjuN9P8UkZGPFDX6uSwlPheRjgDM2gS1u1X0FQp84?= =?iso-8859-1?Q?vLZtCy0fPfVVDIZRCioatQHiMKXaEZEi9JM9ArE24A8OtXCB6eM543Sw?= =?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: ao3lQANr1mxO5/uXIAPWWXZs3xbZorvZv9Bf1FXj1mYev+rKfX6Z8Bk33Zh/98SXYBQhU6CXvVewxjsd1zzLQtOe+6x9Nm7TV0OEZKvwF07wClhGzD5Y1CW1CKQErVRIJYWMAIEPpX+3VsEuJogmDAotmCEjnlWuJpeWvDJljGJHWdLiFCLyn7dLginK0Qdm4W0A0srrO+YnGaAzXv6Obe7XXEJ5enAC5mKzyCHdWl1If+DfoBzXW02WWXhWnzcfBjOvA/6R6x/ayIsLWNCJA/t1u7N6vpp2jJPCCaD2Grl5KrTE/TcrJyPJlwCHHElbel6Pji7fGEXrummfWk0+kCIPKRjf0PbFKpHrQnPcCaqdEn5cedfE9/ScGtmNTssSABpuwoLcbF17wn/RDYvgAkfqu5wA9REQwg9EDwsmDA9jBQloM/6QBvPj7MdWq3i1gOf3hB9tot28LrOfHIYFJx1TqrGl5L7+2XUYZpGRqUvKsvyn6nbZwb/iAuUg++khiYZytFTLu6mETSgJ4uMyjIUxQlUv6qc0nULFxcbo/DourDBtXd+rnwvaEsMeG1WIHpPennLamLyChwB4dblIuivTmD0pDeh/UKED73majxgldnWidUSuZMn2XHimigUPi8vAxjd1B3MSyttKTGpU9w3z63WtDyXGtC5oRgzTkCjOl6s7py7qd+ug1bl5CmJIL2A101omq0dmY7LlLwZWZJ/Z5ZYWV2R/1+tcri48nV7yQlC772S8ayfISN/uQ3BaXJEAfEjDb210gqCvoUTQhJ40NUJ1Sidtbb9Cgqd6J7nW3iwA28ql9d8sgdfuPtbYlhRKI+dfGduOIcozK64u8MaOCC/yKuPZhGyBXP3Jh/QF99qbgUe7tvHbcxBIsQD3tdJlJiQ8kD3dLRkYr+fEQw== 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: 3954ead0-7d07-4238-f874-08daef51485b X-MS-Exchange-CrossTenant-originalarrivaltime: 05 Jan 2023 19:15:57.6100 (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: MtgraOol+xxlXLwDr4zmZyFPc3tLGrtXthu74+i06gUhlAGir19xvfX2K/mdgcSgvDEh3U8WVteRxAa9oGGd+Q== X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR10MB6075 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.205,Aquarius:18.0.923,Hydra:6.0.545,FMLib:17.11.122.1 definitions=2023-01-05_10,2023-01-05_01,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 adultscore=0 suspectscore=0 mlxlogscore=999 spamscore=0 bulkscore=0 phishscore=0 mlxscore=0 malwarescore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2212070000 definitions=main-2301050152 X-Proofpoint-ORIG-GUID: MUMrhaSss9grnPS3DmuOJSTGbJhSc1c5 X-Proofpoint-GUID: MUMrhaSss9grnPS3DmuOJSTGbJhSc1c5 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 de78bde2991b..f27d734f3102 100644 --- a/fs/coredump.c +++ b/fs/coredump.c @@ -1111,14 +1111,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; @@ -1146,7 +1146,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 /* @@ -1167,7 +1167,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 Tue Sep 16 05:49:14 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 C6505C3DA7A for ; Thu, 5 Jan 2023 19:17:59 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235641AbjAETR5 (ORCPT ); Thu, 5 Jan 2023 14:17:57 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:43834 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235491AbjAETQZ (ORCPT ); Thu, 5 Jan 2023 14:16:25 -0500 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 08D28EE22 for ; Thu, 5 Jan 2023 11:16:17 -0800 (PST) Received: from pps.filterd (m0333521.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 305ITwdG029112; Thu, 5 Jan 2023 19:16:05 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=ZOLjRMKcGRah0SkriUEnVf9iJfrlXmxLFviwP1H6bf0=; b=rlvmFaVbzYNK5FO4Uwc/Jy2DGVFcBNbXOhskfyWcL9cUhmBhDcIpNWRWEyxWSpC7GZPK 84yjFFa+SaJeJvBPIJvlgBuFfMgLiLjVnaLjqRh0xk1Afy1GQ+aFSTmijRYrk7OiW1fI 2lmvy80yobC8s0msugZjZlyR6igkA4BYI56Asmn4/nDKk1VcPLa0lpkqdAXOMfudVDgv DXBsJSVy79KtlMTClDhNbP1irDn5Q9QdK5gbmh/7On6oJ3x7TJXU9C4Dx379vHI+Kevo w08OBKNBdkMta/Ur3lRr/yg6EI1wTxyRzAFosPwTGNK6nBPWtu2kbkFYuy2YwYyFyi0G og== Received: from phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta01.appoci.oracle.com [138.1.114.2]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3mtc0asrkw-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 05 Jan 2023 19:16:05 +0000 Received: from pps.filterd (phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (8.17.1.5/8.17.1.5) with ESMTP id 305Hvlps023372; Thu, 5 Jan 2023 19:16:04 GMT Received: from nam10-mw2-obe.outbound.protection.outlook.com (mail-mw2nam10lp2106.outbound.protection.outlook.com [104.47.55.106]) by phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 3mwept6m1t-9 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 05 Jan 2023 19:16:04 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=cVRYt308hn4npSzEoswjGhwQY/sGj+N/VXX6XwZBSy14L5A5SogW8B5hfRrBT0u6+OgaGXUje6JJjv+iWcyeeldXh8KdH/Re5ifFMRkew3vBBTRJ8d/qFcum0fCl3K64fijBsatfmKlguxcDZg+/e2WD/+RR5/BXniwWICytGIoAryLCOtnZOwTIUyRJRMBDoV3Mw2adX05aFKt4orptCkbceT5EQTcd8hp4+U6yeqsKjYTzB0GuIGm085ZUiMcKAt+zFyLkwgXtYXYXP1yUPZdnotT3yT9iWFHAr5yfSiV4SWLM9RA9C1ymeLHuziAzb2D2Y1goafUETnP9s7O1Jw== 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=ZOLjRMKcGRah0SkriUEnVf9iJfrlXmxLFviwP1H6bf0=; b=aBlrwJTioH3g3/HntOm2jWk0VJx5mOci9aKtF0lpDzQ310E/LvtNf3Y5Fy3kl79Ah4m+iXHJK6gQmL/7l0S1Kkm76MIt1jTyFvJuYdF2ll3SY316nBoshxoXqht0rAvPEP1Dg088IuZ2SHrJWox0bHZRT4hU66GrGOGU+6SkXt7aUR5vRSD9Vc88bMFhyleJDetvZsrmcD3BQtnsRBQrlAF3NCd4BiuVAa5gjI7PNOkMIfgsXL1Ip1AN4gpLYqBDZ9p7BubKBTcUZodudxY+jrZz/GerhHjPOpU1DOh3BUhFjZ6ap/4kVZHsLlyjyTFrMlQy9PLrRC1zWKO8MP0EhA== 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=ZOLjRMKcGRah0SkriUEnVf9iJfrlXmxLFviwP1H6bf0=; b=rpZx69ifClkH9uyz4MwVaArA7Qmsn0VYItX3sY3uXgNCpVemtvy3wTCyaf3ya0oj8vpGt+tCrTCsQ+ojnsCO6G78EdcSkYrRZsP+vT+kjk8M5bGIgGnCozkjn7dzSTtZRokn2oGghnARIihwIyj/dZ32hZEQL3IZ1bgWRDL2OJY= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by IA1PR10MB6075.namprd10.prod.outlook.com (2603:10b6:208:3ad::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5944.19; Thu, 5 Jan 2023 19:16:01 +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.5944.019; Thu, 5 Jan 2023 19:16:01 +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 v2 18/44] mempolicy: Convert to vma iterator Thread-Topic: [PATCH v2 18/44] mempolicy: Convert to vma iterator Thread-Index: AQHZITojQR0bNu46JEWQV7nrYFuiYA== Date: Thu, 5 Jan 2023 19:15:57 +0000 Message-ID: <20230105191517.3099082-19-Liam.Howlett@oracle.com> References: <20230105191517.3099082-1-Liam.Howlett@oracle.com> In-Reply-To: <20230105191517.3099082-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_|IA1PR10MB6075:EE_ x-ms-office365-filtering-correlation-id: 33094665-4373-43d5-e008-08daef5148a5 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: LQ3BCfPEculYXL9RpBB9tv+yVG0BMEraA7V1g+z5nQPsdoeeJtx7VWsOj0hGTjw6kPVAO8SZrYwYSGqSqJmMPR13Og11t58d3I/EJpC14tVGEvjc/uPup4670faaOdsxYumJkzhCxZDuBGoIOw/9r2dFy1HDM5e7dmcGCp3VuEAxwqkFtwmujoBjYiTUbuaUcldQ/Mk96bKpuWGg7Gx7igy+8iTAhLo4P1saAeLT9BtxN6rw9W2rLh6oXAj5hcHzx3g5zu22evdvzxmtF2r3ESFzDUT/yOgbybsnSzoflGR2kGBktAWPSsF3ql5HwPyuKx/vhz2GkdV63aXHixlGaBTXQRZ8SH864B4bVtSoZuvOxQYIeAWX9SHHlveF8y8ny4CHUqE6RoBwnVujBlfAxtegR3ydWJ5ILbXfYQkkAiFXbnD4s73Zb9UgqeSR1jGzJpjLtPAr6wEN+aUuudugRfNGHzqfxu5GkHK4zNmixoWkB7DuVREKLWz7zIo5ebmyDLAQuL4UtUH43aEJfE5vasgb1yssnSrdhKESijR7bqMB1hdQ7Iqx2I2QTClFM03/paTNt9M/LYcNseh66M0xzVZ+pCz4VOgo89XVqVCpH5G4QxZePPJzKy9J9heqPQj3qk1Epz7xxZDqMkbrf+NrrkBWv85CewiwuKmzKanu2kaMsqj7SGNAEDdNGpiyuOcI/1i5nfoIn5dDcNQq4Sksuw== 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)(376002)(396003)(346002)(366004)(39860400002)(451199015)(38070700005)(122000001)(91956017)(86362001)(38100700002)(8936002)(2906002)(71200400001)(83380400001)(316002)(66946007)(41300700001)(5660300002)(44832011)(64756008)(1076003)(66446008)(6666004)(4326008)(6506007)(107886003)(186003)(2616005)(6512007)(66476007)(478600001)(8676002)(26005)(76116006)(66556008)(110136005)(6486002)(54906003)(36756003);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?Q?CUy+QztiyZwJMqNvrEfWyHNklTuakB+xU33/vLXV2D2V194UM66K2QvYYH?= =?iso-8859-1?Q?9INWDeZBMTtKxV6dS4ZlF6TbkszyE8xTi+mbNhe3igJaYUIRgUf9zLljP3?= =?iso-8859-1?Q?z/t9zVYDyra+Zamnq0w4A7YXYC14kQ2RZ4K6x8dSqTV4uhYGxC16yhOp0f?= =?iso-8859-1?Q?jmDeO0xPDNALb75IpsErYBLiS/B49cQOOxMLUfc4UWVkssaT7mADMpsaFM?= =?iso-8859-1?Q?D3XnPLPnGZzzqEFF2OuDm3x5nCR6G9GbxG7bvoHpLH7a36unsGt0JLo8C4?= =?iso-8859-1?Q?UXX4+FSzIPYK6F37tJ4xd8X3Q289FgxJSajR+UDFWXhxFffvH8XQgSEPcN?= =?iso-8859-1?Q?9O3R7wCr+hv6/s1Y8FI+v0tWPaFqMBp3skH+iPJxho7c51nNQqftn8iBoV?= =?iso-8859-1?Q?knsWT6NpTdTc5gAQDxwklq5gfPU36mOI+lKCKSVx76XlrcTT4RIELbljzS?= =?iso-8859-1?Q?t8GK6YXecbhFH3hqsgUzN/jHZ3FevFLQkBL7hxIX4fAGJjzf3nb/MeHu7K?= =?iso-8859-1?Q?UDNG8aG3AS6UVfFjJlR/1zAGxuS+M/ZxlM5NF/bQb328gQavdb48NRQYij?= =?iso-8859-1?Q?x2u892gOpJghanl/BkI/jjNUnkbY00NDFUpyyLYCjayI4ktXaMg8t8znWw?= =?iso-8859-1?Q?EYsuBQE5zW4XP5D1dZeYJjgJMmrtQaN/dCrTbiw2O5B3LWopuA9ge0whgF?= =?iso-8859-1?Q?y4lHJRLciX+sqXtJeQOCyrmLw22S1pF3TvoFADnJ7SMth1NwOBcJTkxHWN?= =?iso-8859-1?Q?ZfwD68QbFoPC1Ly0rrCpTgvNcRUgXSyWCzSt8djSjwK1qQ0UT9aSqgqytv?= =?iso-8859-1?Q?p/80IO7VHmQnDV5zoK2EMDRtr0y1KWXTXReniIlTjx2x/AbKZj7ky+QbpV?= =?iso-8859-1?Q?UkBJZzcOr6boy++32we3WtBQ1eq8gmkmBhnA59wK49sB9iL/QxZmk/A1Ra?= =?iso-8859-1?Q?I0brRpTaLHrAk4UoqF4Eh9OYIbm2sTzzwoTVOe+kIqiWogBS0a29slAPBr?= =?iso-8859-1?Q?zH0gh3lSfL9fF3EgIFlBVWfzdEK+y9XNyD11Wlk3eqcZP7Phwaf6kNNVlr?= =?iso-8859-1?Q?KW5Gs/9/ERt2X6BtcshEB84tIDa+1M9prXR7nQbVQ25ecGkvmqFb8bDBSX?= =?iso-8859-1?Q?hBSobwNMmZsBnP8FuTvjoacBCwFZa9oxBM/Lf5QcieZo/c252y4UV0L7Jl?= =?iso-8859-1?Q?qmxd1rjAbnlQE69j3s2c4gjQk7zdlk//lV8EoiYMqoTXNmEJ5g3sLJrRHr?= =?iso-8859-1?Q?h9SgSDipihJWTm+01kf9xjqjfbnI9qZLPlM56BD4a5SUebccjJG8L8vYu+?= =?iso-8859-1?Q?UTg3GFz7P35vupDkOl2MJBu5LAxau8sl8ByhUm75/rjCDR3DMbW26IGQfr?= =?iso-8859-1?Q?eev6+Pj2EIvvRYNwWb93QJ+UhF2SLPpLNAaGCB7o/SfVoDBl5NR42oXn84?= =?iso-8859-1?Q?lms7+ZQuhNWBdSOGgXe82KNWa+AUdNkqK/2bNY6KTMuPZGW7f0bNdCSks+?= =?iso-8859-1?Q?YouEElHqYBsyReaL/c35eMmmmqNVJblualL9HGCcetRqZoc3lzummESPFm?= =?iso-8859-1?Q?2is1K2Xfi0GQ6XBXZ0D/nxvbLj9wFHhK4cmoIJ7scJltzPCmlEXsP3fs+1?= =?iso-8859-1?Q?QhGy1wA0xwPRdB7nny2XUpyzE1piRnh7SKNsZUfiynvGZguDXZNHLUhA?= =?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: X/hlp/36PCFPXA36Vs0RgvUaKFqT9/UrbLBbaqrKoxPdm7bRKxEmNlHWl6huuDdleOuCNmpbYsQSodhBl0wtbPuvEuzMyftZ+gGjOISV1cmrCYX4tnfBcj9WM9VTnkes4KEy3d6MlZPweLeKrEuPNIAEOQxOCIojBZXQUNI4+1LXMmP7J8miEa8sieT7cB4rSg3OWv40B2sn2hwrly3Xz88WwSBrYx0HWCrYOv6UKuS+5sRAnl1iX4uAi77ecez8CCfZ2Y6rnoKUm6gr9RCUq37XUW8Njoy19cqjMTAZ5ADdryyPKyr6UrrG0pE/bq1/J0LPRfrtwSY/YY4KTnyoXDiTRUA3Em6Rxo2OEfb/fn2J+rDc04bqIm+8OsmxLUwyy1bcYMqiJ6eufX8qMZqFdbuHRwAEfUbDWLx1Ix8YDqFKDK69NvY5ZN1jer/0gOOsLtclK+OQBfDBouyo/Ue80IiYyPVPunmCzWuFvTEKmpPqRqnEdzjQNdxmJc4yNvIhO/MoNrUzEhIycEw7dREp2mBPUesvpy8NnpxYIl/KU2VWyVBdP5YvjY5U7nrk+WrxcYLv8n6SVLqxlbEu1gwk291+Y8u72Hj9W0SB9AwN4p/2PtnqwfWjI3qD6tEzZ3J7myJuyZvES6st1kewgOg1xNN2fgAJFLmKmBArsC6TdHrH/9QEyPXlfLgZZz4nEryhqNj0pN2TUX06+xbI0qXfdqX0ZPCu8QQkORwKbob51F5zIGWpt39BBo9LaPsmkury8aG9Z6Nv+rfZEwA9vvSjZ2YU7MFQiWcdjlBUzO102rT3EebEBHl6mogdVpB3O5jL59WXa5YGLZJiu4rCCpK1y3uW/TqMXCBCZyQD2XhFh7Ow2WFkV7D2TtL9lwPX7tbKNbHj/QKFr8vheUREmhuqiA== 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: 33094665-4373-43d5-e008-08daef5148a5 X-MS-Exchange-CrossTenant-originalarrivaltime: 05 Jan 2023 19:15:57.8756 (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: CA7cnuFRhyGQ5SaHWink6XGkSJHVzOzPT4ux2xlmyD2G2itaygw6gsmNrU0yecyPjc4k2MW4hiKBbzI3KPMPeg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR10MB6075 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.205,Aquarius:18.0.923,Hydra:6.0.545,FMLib:17.11.122.1 definitions=2023-01-05_10,2023-01-05_01,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 adultscore=0 suspectscore=0 mlxlogscore=999 spamscore=0 bulkscore=0 phishscore=0 mlxscore=0 malwarescore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2212070000 definitions=main-2301050152 X-Proofpoint-GUID: Y9ZUs5EXdjX9YmwDwncjXe50waS1pZ1D X-Proofpoint-ORIG-GUID: Y9ZUs5EXdjX9YmwDwncjXe50waS1pZ1D 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 02c8a712282f..6f41a30c24d5 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 Tue Sep 16 05:49:14 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 C4C22C3DA7A for ; Thu, 5 Jan 2023 19:17:29 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235597AbjAETR1 (ORCPT ); Thu, 5 Jan 2023 14:17:27 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:44014 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235464AbjAETQV (ORCPT ); Thu, 5 Jan 2023 14:16:21 -0500 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 2F066E0DD for ; Thu, 5 Jan 2023 11:16:16 -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 305IUH21030095; Thu, 5 Jan 2023 19:16:06 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=/oRh42AdWHNusHP8+8qQ2D6ha2f/p4YzaT4dgmlHW2c=; b=WxsN1PEP6K6nozeLN32CLBcJOy2pLSbNnqWu7EgWa6usLwrummT2CnIm9PZs4/yQ2PzN ImDoZgTMzSqsk6km7P8s2bvw3cSLP9yYsAtE0E9acxmZz50WOgEhAtUxRJCNAbLy8jOo 3nQd6p593kK4FGyZOAwrmdu9WWXjS+zPJWm70lupGoL9xxBneu0hE9i0pMY0U0QVddxz MsbD7JAKn80NJ0EInPkgWwqVCgYPtfZUD+v/C2fmuUa+/h3zF9vfy4kHUXxut4UlBBAV U8cHsnWCNN4yhBr7Uy9BnE650Xv4pt2T7QF2xrq0TA1h+jqRh0FeS1jIx5MbFXkDY1za 0Q== Received: from phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta01.appoci.oracle.com [138.1.114.2]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3mtcya9k9u-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 05 Jan 2023 19:16:05 +0000 Received: from pps.filterd (phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (8.17.1.5/8.17.1.5) with ESMTP id 305Hvlpt023372; Thu, 5 Jan 2023 19:16:05 GMT Received: from nam10-mw2-obe.outbound.protection.outlook.com (mail-mw2nam10lp2106.outbound.protection.outlook.com [104.47.55.106]) by phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 3mwept6m1t-10 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 05 Jan 2023 19:16:05 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=M+wxT1pc7NFfix2BG28tZp7L2Nyweq0hKgKtAoAoHwmay8J7Chmb3jSBj5MplGGv0a1F8py1WbtMT1SYV2AaNa7qu6IIUCsBucf9Br40Au6j2emWeHsvNeNejm8JG8lNLdepoqgjXxPdlYIjCnaxukwDCNyN7EJESKtoGGKzn9T38yzwhWcpJ7IPEkHypBE7y+Oy7aR8PG5KMV3k7rW7l1gRFRTc+ZaNWHcIMAiGgEBrhJK3WgUNJe8975pFQGRop2ZOClWI1hXxtmuQKea4V0ZuVCCMKQFyiZaCR47s4E4euR1lg/EKIk95GGkJaBZ1UwlMAcXiaMWU3aa0RZswFg== 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=/oRh42AdWHNusHP8+8qQ2D6ha2f/p4YzaT4dgmlHW2c=; b=KvbIEkFoEV5iwuXJ+JZaYN7/Vx84ICLfGIBng0KvkIPUUaamMJcToU8Nbf/BSED6iSj0g7i8MxgDUzZyA6vJTyFY1Dyx10r9rJybmJoIhh+ug0qvUEQfINFyA+f6oNSm6ZVURcMFBiMyTMDw8nGLHz2LbRlXvaNBK8ZSYnMbg53s+QD1S8gnUyw3YTsg5z72fpIYGXhAKSZsCvzbf+7+JnCj0AMAQlhwUcMtd9KnVcEcrPD9rqWHBamy1SQlbguD4dKoBEIcU53tpaKrhhivMHyiRoRu2+bsBr4VBQQOtuVUymd2kEFLwwPpQYN06/mJs6IU6FPzzWsgjjVOjC+Tkw== 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=/oRh42AdWHNusHP8+8qQ2D6ha2f/p4YzaT4dgmlHW2c=; b=Rx86C0jPjK8bLebvkHX1wf2mqH0zZT42JEC5piKLLz2dcZoJRDHvNgRmbaq8QoA472Z7MqG49gzQaI/MAlXoh/2LSLv0kMNmGR3tBzzauWoXPJ3q93n/tnou/pNUKq6jj89QPZxdsHRc377jstLP7xGahWREQPRAGv7BoqBsxJg= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by IA1PR10MB6075.namprd10.prod.outlook.com (2603:10b6:208:3ad::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5944.19; Thu, 5 Jan 2023 19:16:02 +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.5944.019; Thu, 5 Jan 2023 19:16:02 +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 v2 19/44] task_mmu: Convert to vma iterator Thread-Topic: [PATCH v2 19/44] task_mmu: Convert to vma iterator Thread-Index: AQHZITokFyA1qFls50u+bQy5HlDbRg== Date: Thu, 5 Jan 2023 19:15:58 +0000 Message-ID: <20230105191517.3099082-20-Liam.Howlett@oracle.com> References: <20230105191517.3099082-1-Liam.Howlett@oracle.com> In-Reply-To: <20230105191517.3099082-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_|IA1PR10MB6075:EE_ x-ms-office365-filtering-correlation-id: 2296ceaf-a367-4a69-dc1d-08daef5148e3 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 9bqxiz3DjXP2EPIOMtfrUxPx7jnbY8cz47huHVs4MVWuPznpB3oDeL38+FKwNEnoluWIWLjbU+8nqqLf/2T/r4T27OJkG84BI4UPJTRt+ctaNSlsCYu+mRZnXQNRD2JbU7a+WJzCdO18M2jHpiyJNVxknkwpv/b0bj4/9KPMWGE61DQTBkr7x/YiL5aSRYRhoQWH4o4C9qCCb6/zT7sqQEkH/3AIAXj01Asrh0q2vKDIBRJvYg2GNZdiywmhO9PygPY6J19vAi2+rVrqLtKfX1HZ6SE+XW3mqZ9SrzfHa8+J90TFAti/XECkFNmmlKskMEVE0KzP+5kSJHmxWI+6mq6SU/zay5XmFLp3l/Uk6/5y1boSflAgukpTYYiW0PsMZAiCDGo485ZlAULpc0ECrraBumQDx1+vLL17GrmVXyNIfH2eLCctMglqgjpITeRz1pueP6zgt7kzxebraFypO6+Fy06h5C/6oLltDsmp2774OYXGoVO+jRqDVR7kdpdSZsyP11IXnR4FwAZjfHDnxTdIba/2tYAMe2fkLfF1cgUxxAahI0Tm9Tze2spLdRpQtqck9Kbh1lqpGjuqKC5KGY0rDC+BJkRH6IvsGi3AJ9+Wi2PmQ/HpLUFUlTnMzaF695f2X3UIz1hoDTR56l13n+FErdf26oWBO7pmv0bZPCEmzQTnZ4m7PYpOT1nAr90ElZP2nEch8u9my+qOTCy/PA== 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)(376002)(396003)(346002)(366004)(39860400002)(451199015)(38070700005)(122000001)(91956017)(86362001)(38100700002)(8936002)(2906002)(71200400001)(83380400001)(316002)(66946007)(41300700001)(5660300002)(44832011)(64756008)(1076003)(66446008)(6666004)(4326008)(6506007)(107886003)(186003)(2616005)(6512007)(66476007)(478600001)(8676002)(26005)(76116006)(66556008)(110136005)(6486002)(54906003)(36756003);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?Q?GvsWhQ67+3waN6rSywUhy4xQsmhbArr3y/c4G649WhejCM1/oLQOm8+b71?= =?iso-8859-1?Q?GkZ1L/+mr/g94kT5MLQjyPPR/j9K0fRVnq9+XrykqYHwadPvGCiMBCdtIO?= =?iso-8859-1?Q?EJQZDNpxid4qH9QkTBEpbNzjkUJ5moFE0k/lyp0ffAW/O4WD+lQdkdKDH1?= =?iso-8859-1?Q?nBixSNssSJ8Ry35dMKl9HMB7yyVYtc28OsJlX9ZIB/kkUeh57kRoWWwEEC?= =?iso-8859-1?Q?CgCdVRImZ/AVkNkEgFNhtJzhsPuHUpebVGxgPwLopCN29AyeO8FuikDIbN?= =?iso-8859-1?Q?zrMM9Z8iWApGu6988w/zD/9DmoUqHk6f/iQMVKoN4209bVP8+IdcwKM84r?= =?iso-8859-1?Q?2oYhntGW184DiYZ+VL2geSPSe5wJa9dQxF1YBOVXc2rhC8FLU7E1T7dzR/?= =?iso-8859-1?Q?TdWjlGhWjzgyx6Rq6GYgUNYbeQ9LFaSm20i7VYkrIQnAOV4wNcx1+uLpgo?= =?iso-8859-1?Q?nX4grsINQKSK0VKuB0hSGE3gd83i2k4fHyBIpoyUW7Rsi0ujwTrV/vo02J?= =?iso-8859-1?Q?VJMHqD4EJDUsJqlzXKA5HUy4zPsabjpaY/Bzh9JC8sc36+CKsVVyS7KUXe?= =?iso-8859-1?Q?q1gqEWlhjUuhxspR1YikYmbYkND9RrDv1r7+4GEJMGyfMoEe/hg/6LDnYu?= =?iso-8859-1?Q?XqKIQPcAwEmnH+A9xJvMQD9jTGCQhaBEvbwUt3qOxRlmfCtgFfRcETCF54?= =?iso-8859-1?Q?b/Rn60mL7kEFkxLhWORymHYEk6FGnQZ568esAzcKbpFeKNT7VT+Mx4mcaT?= =?iso-8859-1?Q?Gv+NX0Hs42Xh1LTgCjbMqTe/By4Lxwctxd3ch5RugonkIvdVzwLSsQmsbF?= =?iso-8859-1?Q?eJ9fcit5PAHxysfIuIANR5FME7H8rKMxuZ5gqoFwRcOVrBOoapVuL2JFpU?= =?iso-8859-1?Q?P1XC+yuUNN1PGcne+cpklg3oPOSQV97hz4P/alHtHO08ljZwgAH1tAJcZu?= =?iso-8859-1?Q?ll1fNjBEv/djMzxzzgKu0fbRxPi7Qc+aSeEqXzPpmxdCy+R1pKJlFo9Smw?= =?iso-8859-1?Q?W7p+Q1WC2Z3Ml7JeTxfENEilfnHkFFXPl33kl8mK/gsA7UdWxAcAwK640k?= =?iso-8859-1?Q?EJMRikB+RcKsq2DxR8JLZ3k9mKyC0/h88cIY/MrBMteaY1vufUlzyIfnAY?= =?iso-8859-1?Q?J4M8+Bt/cn3g0I2HIyr7oikXGoHKtJqDfwL2QEelOM1dCOg7+rcdEbOkku?= =?iso-8859-1?Q?A3e18jhlyJdii516c2DLFykAcIgMIR8GYXdE3hKPTXut/CgpDff0JJZ82A?= =?iso-8859-1?Q?gWhbnSEH2xH2jo2CsJC8jGKS5ERYtUFFkl9wot3ZbbhBg9VyIb9UuB8wuV?= =?iso-8859-1?Q?dMygWOoJON875OFfyS+XLu0qQaLbgfe9WaMIrnfq6R69Q9pyVjcr5/qkVw?= =?iso-8859-1?Q?Lc1bK04UGBwvesJ8SHPgy8YFySxm/7O7M73DyADK7V9gRbo18t4p5A1VA3?= =?iso-8859-1?Q?AXKyrG6JA3BUrBfJea9AQ9vvYaQPG+MmPuO0atrLKkDklQov1csY+d0dzf?= =?iso-8859-1?Q?J0f3GP+wUdoaUM4lk82+Tw0qEp5YzTMNE+cAwAfKv0NSIv3D8+gY+ZIr0B?= =?iso-8859-1?Q?/JmacNtkcCkPHBS7OuXJoLzUVQNv58PjJ8+eD7hvgRojDausRB9SFvbOri?= =?iso-8859-1?Q?5xSF0Eo6HmAL6Ob77k6SqDXk1wbweCb34Ben6gNXAxUiCj+hmJcUQJOA?= =?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: Z0bcln0KHvTo9Oev6f1RwKq7jTCfEo3N9L+nDjGZsMpSzhVSN7R2dZYsduwS4TMSZCKPkaplQSBBfc3b+vOZ0Lc9rYUv4N5dEb5hjmLQDhljQAJWNwHmM3A54CjobXYATmn+5DOQ9YNvgZ0ukjceFtmCg8PfzKRGAqQD/E/nvCPUlCHuroB+JvzaaPOZ94oqT2i82w1Buo7w5d7SvGKCWF6jAFS0vvgM6Sbs3qY3lfnSDr7KsnruxF5Raosn5S0HzliGLdzq1CJrfq0MZZ1HF8z3y+jJS7cyxAAZoqpvIzAEdJCIVSz4yoNjEsiYcv+tIXRYnKeFOmgtozyMvwnJ7vUx8Scvu2ef4BQNB6FSgTMv+VwpbwbFY6RGG2P3HPS2eBC/6bQxzWCp2ffJIUq696ZrTEDIEplXLfDpmL4bjuVIl32m1wrZU+KpDt0CQS8XvdGWgpCuLHsC01DbTU/XkUYHU1qtjtEKkyUcBAewm4C946HXmksO0LC9TtO18QzXtOjakmINMF+es63PzraibXqP0v8xjSMQOoeQrjelPPigYjN/1vfDAyb5xNwAAQ5Dx+B0TF0GAblOc0VoptW5p1QJNhoQKbRc9qLQ6RK8gd50aX4ETCbtVw3FF8hwKAq+9hGPaX/s24w48LbCy9p6oFJH3XbU0K5O6I+3N3fLZzyqDvlY19FOKLEQyb5GethwqJj3PAIBLBIj1fA9V+4Dd5jIYuOHccq47pUJ8GQi67+MqkkMdtLXoihTdAesqdoRh1vAbya7z6mvwzgIB8aAZTf9G9tP4SN8/9CtKXQwaRg7fNY8yDlVTZcMDo4tDPHBmkGqxFjtn3owjpuF45ZwQC5OKHwlfgqeMJQh646RQ13BSZvXIjf5N9bRzfPXBAPt4HRadzmn4wBakyaCRSbbjQ== 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: 2296ceaf-a367-4a69-dc1d-08daef5148e3 X-MS-Exchange-CrossTenant-originalarrivaltime: 05 Jan 2023 19:15:58.1724 (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: FV/xuILMXYkGHsYD5TT8tO25cAgcP7gFhGQ1nOqnMVuQ8QjyahhyKGvyoxYG179PvZhudov0ZUtDI3DCpTCoVA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR10MB6075 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.205,Aquarius:18.0.923,Hydra:6.0.545,FMLib:17.11.122.1 definitions=2023-01-05_10,2023-01-05_01,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 adultscore=0 suspectscore=0 mlxlogscore=999 spamscore=0 bulkscore=0 phishscore=0 mlxscore=0 malwarescore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2212070000 definitions=main-2301050152 X-Proofpoint-ORIG-GUID: HgW81NJzLFkjzpdCKXmObHgLjo_aIwFg X-Proofpoint-GUID: HgW81NJzLFkjzpdCKXmObHgLjo_aIwFg 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 e35a0398db63..2bae7c80d502 100644 --- a/fs/proc/task_mmu.c +++ b/fs/proc/task_mmu.c @@ -892,7 +892,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) @@ -910,7 +910,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; @@ -925,7 +925,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) { @@ -969,7 +969,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; @@ -983,7 +983,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); @@ -1279,7 +1279,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, @@ -1299,7 +1299,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 Tue Sep 16 05:49:14 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 1D26AC4708E for ; Thu, 5 Jan 2023 19:17:47 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235626AbjAETRo (ORCPT ); Thu, 5 Jan 2023 14:17:44 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:43812 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235486AbjAETQZ (ORCPT ); Thu, 5 Jan 2023 14:16:25 -0500 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id E7D2CDE89 for ; Thu, 5 Jan 2023 11:16: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 305IT2Te020912; Thu, 5 Jan 2023 19:16:06 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=SJEJ71CHLPVQ9y9IwfIDwgRcUFzrXy+O3J54pk2rrrU=; b=HzfmVbi8TE0q3M0xIbZfuzAMDc8cpigX/8pJwUYk9s9Y92IS8Jtwqg2TQsc8Ja3oLbHv WxcFMveJWGBhdlo+kwt62n+xnpSCGS8ZW60dYeK6pTr9PstF9Nr9+o3f/ylhQVc83p/w aGthx1boIrOpFF9McS12GGYpUKSmNleaP91k9zrt1vjT+v0J2P5JcbC1Y2p0Fy+z510J 2dA06D9Ki33JT7wF3St+A+Z+rNP80Yr7Di+Tbjnyz2shnKUol9RkkFbZ83pDfagD2n2w iUiFpGqYPwPkNXq7Q7E+VhT17fOsSCqI0ktV+nIKgvNB9nSR4tAvMB4GCjmFul6sDd1+ 2Q== Received: from phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta01.appoci.oracle.com [138.1.114.2]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3mtbgqsn92-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 05 Jan 2023 19:16:06 +0000 Received: from pps.filterd (phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (8.17.1.5/8.17.1.5) with ESMTP id 305Hvlpu023372; Thu, 5 Jan 2023 19:16:05 GMT Received: from nam10-mw2-obe.outbound.protection.outlook.com (mail-mw2nam10lp2106.outbound.protection.outlook.com [104.47.55.106]) by phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 3mwept6m1t-11 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 05 Jan 2023 19:16:05 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=eYsmTi9/usQuLyLfkv20tC+hdU57BGO28sdOsFFv8wXjroF2KjVd39AMEBDeD470dW6qEJljUUp3YyowaqsLNkEytrd7x38mwaiuOcP20mBLuEPaZ0vN5kOUvqxbuDHOUexr8oIfkn6HzRSFlakjnhztyWqAw6U6KR4bkz5BAxcMhw17Ur09E7tX0vm8WUL4CZkNniyeVVH85LQGb5axMrwcdxLslqNLhMOpUjPcoyZ56wtXdsfWu9OdEo9Rp4Vx/L1li+NYsfFkNmXf22ExCA8NFrg+qCnk3mCBpngDV5RSUa7WKakNlknWwgDFCWUJ1WFNDke3oDqylx6w+uxRng== 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=SJEJ71CHLPVQ9y9IwfIDwgRcUFzrXy+O3J54pk2rrrU=; b=JkDLMByySEWtcm4zYursBK73iLEYkalDAX7CcR+Kgmw7pjTG/NvMHqT3Af0gLTJnDj1jT8g8wHllwSwBnC51klUD1MSLPARkxl8c6TbTiOlnJ+uhpdPMquI4JaIc4cNETwnvPcaaPgMK4KA3stKOcuZa1QkNcFzJw9hQwn2RZt8OCORoB4faeMK/cbKA9r2Bm19OfqXwyEj+/mDhwhR0HxLEmleHzNnH/xpUYOK6hwYk5GmFsNFZkhS92KxmGozAYJ0uSMfnn+VHObAr/3lH/0z2UUch4cw5RNFdLZ6zwxRJ6NeGQSvjJuLmzFBuMYydXuBMC7vxLW7ohbskDOjkJA== 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=SJEJ71CHLPVQ9y9IwfIDwgRcUFzrXy+O3J54pk2rrrU=; b=IMu9ICEgoZ7kcgFGKsY370/UIIXi6RI7twhKdFuIRaJmIsUItkRlRc4kME/ua+BXoB6gMqMLzG5W1wc/yk67bmTuuOWkDrc/AF3BaRCrqVWYdNDblAkifUcNiszctj8HL0SEr6pygAyKndBh8yGLpwdB0CMEp1QdsI4IoAT8hQ8= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by IA1PR10MB6075.namprd10.prod.outlook.com (2603:10b6:208:3ad::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5944.19; Thu, 5 Jan 2023 19:16:02 +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.5944.019; Thu, 5 Jan 2023 19:16:02 +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 v2 20/44] sched: Convert to vma iterator Thread-Topic: [PATCH v2 20/44] sched: Convert to vma iterator Thread-Index: AQHZITok5aEqa5uC1kuYn5v8YRb5DA== Date: Thu, 5 Jan 2023 19:15:58 +0000 Message-ID: <20230105191517.3099082-21-Liam.Howlett@oracle.com> References: <20230105191517.3099082-1-Liam.Howlett@oracle.com> In-Reply-To: <20230105191517.3099082-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_|IA1PR10MB6075:EE_ x-ms-office365-filtering-correlation-id: a4cfce8d-190d-44fe-ff18-08daef514928 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: aHvh4oi79VZO5K/EOZl35ERMSE9t0kwwBU2FTj4+amA7/6ML+bOsx6z1HmHRq6K3c8ORlbCILqb48QUSMV1KUPVijfGpTU+jv+b/Bi5U4BLtQxZu0rnUO5ICTjnoQLIudJGRe7UzDMM/Cyg6R4qD1iEk4WS8cPmHBAuT6n4DVukRWRGcT9Ub3hDcNqI4DYPyjkEhVQeOSoWKT1OgfEOhWC2WKm8sWaK81+ioFs4P6WoWFhKx9y/s+Gyq5DwWw3AccsFxXVM7Da5oLmt+FgyJsR9SuYx1DSRR+Bz9rN72bM/7xHSAfjpSnBh3IXXavB7fbiZa+uvp7aP62nFaWgJpnenOzj9VmX093ULQNuSnyi3nSaODVFPBvXTZNcLc/LTLK2L6aYy8c6nx5tGsLH43hmnscprpxgCq/EZS8BCzu/tcgbTzH02AVEDYlq9ilvOkc8/e+p8cjvat1MgDcl25skTgD3muR0vdeVzN1XtytvpiQxB/cbdInF0IQ9sZHTEuA515uPJiERpbF35gzl63FlangS3YUCa3K9wh+TC1YjN6Qg2MjJ9um0hKS5fvUk/V1z4RSlbTl/Tp0gRhgXgwM+mtCB9XNccepwhYYxKHv/628NdZEmIQjKk6Yrl7hLWlZfkXrquJ9YXec6nCEdwbc7oncSdGdIn25OC3OpFC4KoBFb5BS+AvjyvMQKHxrX+KzzwjtDhyEUQDx5rnn8Wa5A== 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)(376002)(396003)(346002)(366004)(39860400002)(451199015)(38070700005)(122000001)(91956017)(86362001)(38100700002)(8936002)(2906002)(71200400001)(83380400001)(316002)(66946007)(41300700001)(5660300002)(44832011)(64756008)(1076003)(66446008)(6666004)(4326008)(6506007)(107886003)(186003)(2616005)(6512007)(66476007)(478600001)(8676002)(26005)(76116006)(66556008)(110136005)(6486002)(54906003)(36756003);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?Q?EknVxGuspgqGwaxIcRvU0fCBv6lbyGRMu8ZxHJiGF38D5RzPZBoLAwMiHY?= =?iso-8859-1?Q?AnNI28dgzGMXVcS4AplqMNzUhkq7HTRnvUJSlm0ouN4L3SJRjvn1gG2CRV?= =?iso-8859-1?Q?VMYFkTdEOAuMOZbxtMsn6d5R338oJeZC0m1xQNpHDniu805lv+3NPkZh6B?= =?iso-8859-1?Q?b0JZvaiDG4JJKvCFvOYJkeAITpoiB5pQrv8Y1aw4taXFU/E/P2TxTIenVi?= =?iso-8859-1?Q?RFB5Q6TRo1cn5lTWsdd9yl3dIbqZyCJP8Gltmu9XNbxA5+4gEL3uHpZ/c3?= =?iso-8859-1?Q?GqsVyY7mwB6asPDzsEsq7Yj4gclZmRZFuPnt931LJ1PpmSB/9VIJgSePMp?= =?iso-8859-1?Q?+V/X/sCyw9B4MzCPUw4fieqm+6bNvUbNjVIvqtPLfq2yqWTvVSa/O9hXox?= =?iso-8859-1?Q?YgAfm1+2hN8p++41/5cxPUYg8J3AloMP097+cfylv5iMDhc1cCgqaXMrEY?= =?iso-8859-1?Q?A7VQr0oMvLd7fvlDt3BlPlDnqPuh3d3seE+VgBwAabddz008fP8hCxpiLK?= =?iso-8859-1?Q?o597jJ3qMN0B73wYNuTLQjFf95zZelSYUUEtJWcEfm8EBJ7qcpA6B6RwEv?= =?iso-8859-1?Q?xeLStl+YpimGDFA+vvV/LhyltwdKi0ZfU8boek/92+NMuAOL/0iMMqq1M7?= =?iso-8859-1?Q?VtRxO5nya77EyIkfPSAK2QyWZnhNIv/8D5LtXso+gNFiPsKpMpSlO9Gp4B?= =?iso-8859-1?Q?7Nqxlzo8Ywd1z+Ly0GWDpLRE0XQLJAijAKdiqJX4TeqJiWB8xY0zpOqWm6?= =?iso-8859-1?Q?GRF0GwUZLDJ79Fq6zt3kv15/h4ZnGDE+vIkXxF9wzHnNd2BuVrj5RbNawL?= =?iso-8859-1?Q?hLIX7WR6a86tf/4ujq5nTq4Fm2qCSAZWWihNPWtOfd0fnCkZX57crttmSh?= =?iso-8859-1?Q?/xvJE9fgc3doM/oeIAC3BgSqIOc1UGINu073PApkwZRX6pEv69TJ0r2RLX?= =?iso-8859-1?Q?a0WHnxP+nRZ34/eb/a194c4zsvg9tVV8FXr9ibZUb3BYYX8+SchJ/3bpKR?= =?iso-8859-1?Q?duaRMhcn3G2j5Hx7a7EEMgEjcKnXG/LDJjSdCIhfAYmrSgd9WvHTycltGN?= =?iso-8859-1?Q?dMFm9PHJFx6q/0UsJxVmcj4n9ltIJeJigJ/g7GLA1g94miihvJPSXWKtir?= =?iso-8859-1?Q?drEWMYU/DxzCwPXf4V2oCtIe8QHiFrQJQQSDmCMhamA6rXzGZbkWGgdATT?= =?iso-8859-1?Q?NPja4R2iGf2Z4KlWuyJi5wCH3uufba9+OdG9jBqLLjwklgBI7YFU6XKjOR?= =?iso-8859-1?Q?6DGApUZ649MMgm24/4GXJX1PhF4vjRdmUoabYVWm2gqM587FaefAlTRrK4?= =?iso-8859-1?Q?bdDsMLKYAb+vgJ64XrbR7/IOCnPUSGcymVQSW6Jj6vvKtSAyxhKKRNEbP+?= =?iso-8859-1?Q?FFDQZqf2ULqQLbdcRYV4mkuetfNeO9aZx8vheU3VHTwtCV0t1tTlRQwtp7?= =?iso-8859-1?Q?ervI0T1zleq9U6seW5zx8fslbwQ27dDVJizP5nhkEbNHda13AxQyVVIqpD?= =?iso-8859-1?Q?lgJmnMhxdK34Ob7ozeroALab8g5W5aZXF9+RyEpLsKlojfdfKZYG/G6PHn?= =?iso-8859-1?Q?Q8hI7ecsNgoK/ALHnU4us1AfiDSWHyPL8ZyLVrARDGuVL/K1CTz+32t0K8?= =?iso-8859-1?Q?iFcyWUNEmXg4pZP+CGAnOQ9Zl1Ztebzm58ESDEeLUWDxWo0dhxigo9eg?= =?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: kH+vNed8XORxG42MoHHM0EVG968ps2TswFMidgtASx46Km0r6ft9pW6PErooP9sZn8UhnX0CZnpTOQOsa569ORpTNAlGBaBbcWCikqdyOvvlS+L7RIBM9ZXPQDaufPhPMOmZevM9jBHeG4Qe4qGoyBIAYeIE+uEh+P/oj0tn2ULtq++E4oglGo+/Zsy6yms930bAMUcm+uINQvrKP9SH4hCSiW7rDnTmr4pJEG7w0kWBy9RnljD/fjuYsBngnt2CPonuVMeabUMs/y4i9XQSEWZIimqIzhyjT5VCM375d/px9hsUM6R6/oPRqgFRMJhJecJS/lrtvYeJ0BMHBwCNCTaR3CsJwQqbC4MeU1xkHA7HWb+PwP8MMJfEOqTksBGotfnO674VYhE32Sn4BQhZGZtHyg/XjXfEMDxiVKujEWZfY4kSDKAWhXCxhEj+arZlfTmHBl8l6gv6yl8PgiQ/Yx41lcqP7xwLUTvGU7mmdD7chw/OOIFImfCI3duDGzjdY41OIy3/p2A6dT/GaS7CLcSV35Ldp0f8PkPSd76eunDGK4wxcODOlr/u8reNulJy06c+ntycX7zHC+4bKYJjJ4syoroWkCKnGeR2VPujc4aBqgBx3unlzzlL2KhPpE5glgF0xM7gRq7J0jox1dK9ly2l9+H2yjl7ed9OgBMAAXNHx5ZThBO+RbX6Wo6YRTR+l1L+PRFfYsrGoIkCpHvcxbyq/kdSZrmQY0sMTG4hVKD/lbwVk+U8Ch/WPjJMO0+qL+E466UY7Shl/suw9CxREX3I6ttm8EZ5G3zgPdK1sAXGkYWwzmeeo1hBrPtxVoProlw4dh0Z6RLzhW7TZquq255grP5mW9S+lv9pAQa7nQIMbSg89ZRBy6zc20eiQIj36wBlM10lT8PPmqbhcLj+iA== 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: a4cfce8d-190d-44fe-ff18-08daef514928 X-MS-Exchange-CrossTenant-originalarrivaltime: 05 Jan 2023 19:15:58.4537 (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: SVHGPHKlR5GbB4iivqLtbuOVkIby2tA6HZfPk2C7ybKg+eVxyFDvHau8++3r944fqV3YgqyfRYc5Doef8KhgqA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR10MB6075 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.205,Aquarius:18.0.923,Hydra:6.0.545,FMLib:17.11.122.1 definitions=2023-01-05_10,2023-01-05_01,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 adultscore=0 suspectscore=0 mlxlogscore=999 spamscore=0 bulkscore=0 phishscore=0 mlxscore=0 malwarescore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2212070000 definitions=main-2301050152 X-Proofpoint-GUID: UzfT66_nLoDkw6RIvhR1SF_OPtYq2nUj X-Proofpoint-ORIG-GUID: UzfT66_nLoDkw6RIvhR1SF_OPtYq2nUj 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 c36aa54ae071..9c9950249d7b 100644 --- a/kernel/sched/fair.c +++ b/kernel/sched/fair.c @@ -2938,11 +2938,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 @@ -2995,16 +2995,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; @@ -3051,7 +3051,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 Tue Sep 16 05:49:14 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 6755CC3DA7A for ; Thu, 5 Jan 2023 19:18:10 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235546AbjAETSH (ORCPT ); Thu, 5 Jan 2023 14:18:07 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:43850 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235329AbjAETQg (ORCPT ); Thu, 5 Jan 2023 14:16:36 -0500 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id E5C646151 for ; Thu, 5 Jan 2023 11:16:18 -0800 (PST) Received: from pps.filterd (m0333520.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 305ISmCZ001344; Thu, 5 Jan 2023 19:16:07 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=fdS754oOP9KvyPGz3fj9korFEn8Y/p6HOE8wad5P+3g=; b=A4EIfExx3JHwO45BKQLFMD+e/ZK6yFf/Fw01MqlkwgtduiRm3Ey03ZS3LvU51iVnx6ik 1qIc7Hw8yRHZB56HyTgPkY+yVanXp7grWvlX4E+36wO/ktEE56utBNpnZDgwGRLgLTxK WYn6I+Y4fkxqvhTEpQz5MSKC3f7aAkS44as0Nr6yUlBojdFaAAQ6gwXUvNlYHIL4rbSB JJfYN3tc6gvE6F4W4F+bWX5b54EeKZXbmNRXrPDlKbNTv7wTyoton55+W58r2qlyxU4n L9K9Dpnh03QN0WtRYxdGEtY6MpyvXmy+Re107Ja9t/TDDDAs32F8CsRtdFScE8FIIbGv Sg== Received: from phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta01.appoci.oracle.com [138.1.114.2]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3mtd4c9qvu-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 05 Jan 2023 19:16:07 +0000 Received: from pps.filterd (phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (8.17.1.5/8.17.1.5) with ESMTP id 305Hvlpv023372; Thu, 5 Jan 2023 19:16:06 GMT Received: from nam10-mw2-obe.outbound.protection.outlook.com (mail-mw2nam10lp2106.outbound.protection.outlook.com [104.47.55.106]) by phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 3mwept6m1t-12 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 05 Jan 2023 19:16:06 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=jh0e5Hrbhr6MD3Zwmr3fmq3vIvEMzC1YA+udUIefyH9vemyWBmNj8qfQdVEliZiFJXRYXAk0eCEG3+2PlZNkNh1xxCxJ38+dIy9nK1JN025jWQ0eoU69U2HLLBaQ6Lj2sBImbFyPCG+TxF3VuDvNwuqfwcwov0N5umFWknlnzFkfTgtmGcW5TeiOIup7V1DGSBhViQGw8dN0vmKI5/VQ/lrU+SqYyyNzIVSe9bfQOsMtwKD6nGN1pjYP0cTrYZRv1M3YmYVi44tbYNwx1QVEAoP/blwuSnhMuXSGBb0/mdskptySam/GUdG7M3VYA2F1XrJxRHflS1wOyVdGAGBj/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=fdS754oOP9KvyPGz3fj9korFEn8Y/p6HOE8wad5P+3g=; b=PLyRX1Ar+UsWa8TQKqYtT7XvxCSiXDSeL6DVURCp7WB42vrXbQdWvrS6H1t21zorCMYoNRqLjAGzZRl9wvwMcAhioCLYpkhe/c7jh7rWN64cWho6hOZxODJTzYb7n8HjaZa2qgxSckxjp+XtBVEEh4SUJRXr6ceVpA2NjKjKLoKsJP66RoDq34IcozJGZCT28Ovvq/b5wh3qxU1GgZDLal1ftTAi/aXQvqA/sCkrayMfFt+5GvMDDYt1eRpCinjZpzZ/58vs2L9Y9zKgATx6zuAZlBXJKJdAzs7nZgVKoc1Gfm1OOzY+qD3OVrnFD0949tBJOQuouvfpb3z9GAUUZg== 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=fdS754oOP9KvyPGz3fj9korFEn8Y/p6HOE8wad5P+3g=; b=KlbWu7jS+pLpXNl6VxX9j/pSKKTqBduWZNIGnf0jNXrfP00oL/Tcxu8vHlGC/gXU+KX9MPyO0YBmWjNH2gwyELCQmB1HDRSRTu+9bs7dx6TLWSKJep1eAWm0pGXb7sM5zc1+zJ0VYmcsZvg8Bc13NeF6lWlPHRP4UB5Rt3AoRd0= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by IA1PR10MB6075.namprd10.prod.outlook.com (2603:10b6:208:3ad::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5944.19; Thu, 5 Jan 2023 19:16:03 +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.5944.019; Thu, 5 Jan 2023 19:16:03 +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 v2 21/44] madvise: Use vmi iterator for __split_vma() and vma_merge() Thread-Topic: [PATCH v2 21/44] madvise: Use vmi iterator for __split_vma() and vma_merge() Thread-Index: AQHZITokzaZrKFS83Uyh3Nq7XT2mSg== Date: Thu, 5 Jan 2023 19:15:58 +0000 Message-ID: <20230105191517.3099082-22-Liam.Howlett@oracle.com> References: <20230105191517.3099082-1-Liam.Howlett@oracle.com> In-Reply-To: <20230105191517.3099082-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_|IA1PR10MB6075:EE_ x-ms-office365-filtering-correlation-id: 7fab28e7-2289-456e-6fee-08daef51497c x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: mzoEnhxOj3+ZPwfns/QA+puFI8DwKK6NMRiRNu/lWEHbbM2PIICWLZDb5DC0dRZemX6mo3SkYu+K571beuFlm7Yy0d2BxmoZ0Y2QPYksOUX2YNEPdCQ+Dsy74hNiMFh+gSBlmoQ4TilRlk/qW6mjzuMxUV1uOrZS/1nM8x5DM0sMqydttRudNF23jQRTSEzlA5h/gBMUVXZ7aPNVI6fke5UTkFvvGFs+tKY5Pwa2uodhSxFchYC2k3JL+pY8MmeVGN8cBJwPRgkB+P4egfIOHGadhbGQfYFHDicBeSObIY7kqKYW1DK4uDCKDxpXVgk/oGWx50jGzsOKv5QWyR1HblqdAhsQel02AZWvrPteyVZrJUoglhwgrubAp9mOZ/CknGIXE3zQ1ry34cZU2LIzq9WLZo1gi3WijC457VEUJaGJbLaR42FkPhwVr5zuFK5L4nGdRvKskZEEhVZvBte/TdcBVRuh9HBt2zY7/qKLrIhkd4pRpqqzA2/2vMwnGTso6B2osp/e23oA0P1jlV7m75HpQOmX+3aNQjdtbwf6CgqK55c4FNuauzqh0jUtZcVOzg1Q5LFvlWuUVK1GFoJzu9Iq9AGUtufJ4cryIDzxnWZOAYDcVFvba5nQpYRnj123Z+szCTsLaVcXVdTMYA2YZcCmcujabYCp2HbNd0zWF6XJnYAiBVpTFczeObaQQ0C9WPRhL8y3pz6d5tZNZ+bTrw== 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)(376002)(396003)(346002)(366004)(39860400002)(451199015)(38070700005)(122000001)(91956017)(86362001)(38100700002)(8936002)(2906002)(71200400001)(83380400001)(316002)(66946007)(41300700001)(5660300002)(44832011)(64756008)(1076003)(66446008)(6666004)(4326008)(6506007)(107886003)(186003)(2616005)(6512007)(66476007)(478600001)(8676002)(26005)(76116006)(66556008)(110136005)(6486002)(54906003)(36756003);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?Q?wxNlgEuahGB3yWCWcZx9Rgn47byyC3cAjOyKBHigh/3N/+fqvxjM7ocJUN?= =?iso-8859-1?Q?3U85syfJN6XBQkq728tqI8J0qJCGj1dWdEVfwqaSERAoxL5dJwGA2k+aPE?= =?iso-8859-1?Q?hP8H8H/rsoIs49Qj5F2H5LhyOl/zU+nATLkpyUtx+IJcJTMtQFDes+7BkZ?= =?iso-8859-1?Q?/wxe38yDmitVqBQIdwnpztHBIZJ5TjX7efbKh3CqUMMX3Nu/dqEmJyzeGT?= =?iso-8859-1?Q?KDEGTycLzQt1Sy1lXn7qR0NIOix1baiRsHoj+Fd7FEH5w56zl68h/awnN2?= =?iso-8859-1?Q?ORUiGUQXBJY6wKqkBzBOju9Rr0cyjQZ3glNaoJZbZce4eaE815JHuZhdP4?= =?iso-8859-1?Q?AOF+M7LEfwUZekwhJ1rPww1VHRrA7G/6ofupZ7ZV/mwjThi/Zs/aaIZwok?= =?iso-8859-1?Q?eA8Ds1OKhJcETy8jaCniJlvmZrx+AH/H6V6fqFX8XFNzKLAdv2bjEo9F3G?= =?iso-8859-1?Q?ynbffzpmBrsPv0Txo8aQUKNaZ7YE/xROBBRmq1QkOvdI0Fx0CmBtf39Z30?= =?iso-8859-1?Q?iQ2b0MefTJ6gBi4b2nhQiZBPfxEszS1JevkdsXFOcHN5vXbpPHp+RFsahP?= =?iso-8859-1?Q?hu3ta94VX8ZoJ9hT3st1S7yiY9Y+Q9LCpxulC5wRIzqQlPYMX01zwmF+4C?= =?iso-8859-1?Q?6Ezp2x0zgil2oFELBN2wd790jOF/AKP30m2ML1wmcy98bdd/oJEEXyYJbM?= =?iso-8859-1?Q?OP1IhMhk1UagcM/vGCPsW5TiS+oM3hBoxDn1T24hb2I1VHgqouTM2+yFOu?= =?iso-8859-1?Q?DrR4iKxqDFwkEQqg65VLw1m7Y31YmDngOdqt6fAA1/8hbOracDSEl1R0Ul?= =?iso-8859-1?Q?3emODWSW+4vB+DLchhYoJejCX/QIzmdl7kW+KDTIxOuENed2ii3ZaoysLR?= =?iso-8859-1?Q?OmLpsE9Nz6CuHzM2OfD/NF9a9LVoUeQYDmnr5whFg3sC64fUrH8KBIbO6t?= =?iso-8859-1?Q?p+yxtSRCt7MB1d+xYEcNVSql1wqjCWVlzMQFppxG2PJwxrGYMJfB5xYQrM?= =?iso-8859-1?Q?t+tvs048EQgl6kwrUPEgxQq/AxVdGrtaCNe3Xvtfk0h/0fQyTj+ALeogIy?= =?iso-8859-1?Q?AksFMXuSRUNaV7UvwC1JHjsU5JCaEm2ai0z0xQLBj52SkCMo2d0K+11hzW?= =?iso-8859-1?Q?LkQN/qSCLAe+BY5XexcRNl/Ap/Bnsa6rwO53FnMAXt0bUSONRZpt78mcBt?= =?iso-8859-1?Q?7un17uZ2DaMddsEiHxnGArS7ncfST/IhvQ2VWa0xKn1iVhRxbA7AdKL6FG?= =?iso-8859-1?Q?euY4SVp1xb6FHa4eJsrlx2gOUrBUDIxqXknslVvhACxWzUzqGQsAQ8kAng?= =?iso-8859-1?Q?qSv/ddcJMW/70EkZMC2/GW+rPRmIYBbP5n38W4a1Yf82DWEGqRDz5TL8y5?= =?iso-8859-1?Q?iuoWjEx1iXovu8eQLKuRERqJsMbdA9M0THLKGTEyCYQ9wOZZ9J0loyNr21?= =?iso-8859-1?Q?SSsPio4BcaoUAuLOr25cZt0yBCBQS0e13SnWP3317+Bad2uyQbh5Extepr?= =?iso-8859-1?Q?Eum+COYnmicA9+0IXjUZrTUkuYINjx+Ju/EGafxeBJg3QAkDHSE2U6idTN?= =?iso-8859-1?Q?CaDBfDnQOinCqjeoHE4x0riNmqtdbKOQguOswT2D/Val6TMHqK9IKHJiZ3?= =?iso-8859-1?Q?+tekbSBUIY/v0i6yW7Xlp22Ic6kluxYsHhLnEbCqy4bcR+OJMGmMHO8Q?= =?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: evivAzzOuF9IHq/ltnsG+KyPpWsEa04j8JOj2O+NAU/O/IKAb1CLVfa2u8a08/dgkApcDbMR25CIvampxNWyU7ru7AefE9z8Zl/cQ1yMafrA8SXI/eOjJJzyoinDoKuPKSNe4S338a1aa5i5XvEUu5xqhbGO42DE3HEp4zqetT8dR7jiRrZkh4Wrg1eSjkqy6u8XWjlCk1+l8rmPQEAet01elaLQa0wNwAyUut4RoMz5MZ2omiG4Z0idNEiIxhGklk8xR16RUzAVCPJt5JuW01stnklcKQzOxB1u87VXZqjSpm3Ta7uUaerNrph0G+nvD8CVAfyRMUHR0yqO43zUrvxLDrmq2TYprnxMegJwwF8Z/fIrgr0eQEwDxiU1WOxSAdp4jvIzoPvJTkhMjPXMMiJCbXkE/MzJRSwvpdfAhFFcp/0fIoKAUiMDhbVHzHPBpW5GSGjphy5SkVwyIFPrS836u8+GZVFDGigTI7lKQ1oNl+NEnUMIGZD8wg7MyZBfh8rc6yDjiRi1awFcBaRSczL1/6nGwZrOb0g3Tb9mpvT7S2cf1J2CmZhjfYAobIkPsahh61dUYfjy4r4akBALhhXc9XfD7Yv8ZuRhM37+ukgu8vPQKvdesLAK7zCBZ0+Jw7/h9Pq+7rTumAWjq/Vi5qzLqdY+z8hwGd/jAbTsiH0lo9d+O2vjnqJnTv00+l42TXLZKgCcBS/dVSzi4ZD3eK0II/t8Td2LP1Wj6oIBRhDlZzBNT5gsQClYauWrMs9zCjxtWCh0rx6vTG85v4+gbznaVttNml93nqdtPj1GSDGJJ1qDpFg2zR0mNh8jk5w2kXp8EneuZNwG1MztCnQkxHVTJ0IdDCkcShPesT+KE2yY8AKUb6RjDEBNIRCW90RuKT5U21UIQB+Dv7MN2IE1ww== 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: 7fab28e7-2289-456e-6fee-08daef51497c X-MS-Exchange-CrossTenant-originalarrivaltime: 05 Jan 2023 19:15:58.7193 (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: c/vqmP2o0+/8L3u6ZAKPtdCHpMaUMu6Ece+y9B331xTyzw15oA7G2BZjwzjq1LbDNQmRj3wHx+6S5eSlU/R7mQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR10MB6075 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.205,Aquarius:18.0.923,Hydra:6.0.545,FMLib:17.11.122.1 definitions=2023-01-05_10,2023-01-05_01,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 adultscore=0 suspectscore=0 mlxlogscore=999 spamscore=0 bulkscore=0 phishscore=0 mlxscore=0 malwarescore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2212070000 definitions=main-2301050152 X-Proofpoint-GUID: k6w8BHVENM-PUv65R33K8iO_q-AHn7_o X-Proofpoint-ORIG-GUID: k6w8BHVENM-PUv65R33K8iO_q-AHn7_o 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 a56a6d17e201..4ee85b85806a 100644 --- a/mm/madvise.c +++ b/mm/madvise.c @@ -142,6 +142,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; @@ -149,8 +150,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; @@ -162,7 +163,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; } @@ -170,7 +171,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 Tue Sep 16 05:49:14 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 903E8C4708E for ; Thu, 5 Jan 2023 19:18:14 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235667AbjAETSL (ORCPT ); Thu, 5 Jan 2023 14:18:11 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:44078 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235496AbjAETQZ (ORCPT ); Thu, 5 Jan 2023 14:16:25 -0500 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id AC846EE25 for ; Thu, 5 Jan 2023 11:16:18 -0800 (PST) Received: from pps.filterd (m0333520.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 305ISm9h001342; Thu, 5 Jan 2023 19:16: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=A8EhhluF1/bHGEprawBT8nXjfiUMfSvpckqA7Wu6mU0=; b=cUqV1TARBT8c1JsqB3cgPPO7AuF3Gt1oI0I1il4CekZc8AZqzKcSVSzj1hdh+VCv0ocK g3mlgCHo/WsFqri7DUOt1ch/357kICSdpSJgtvJj3BBn7I3w5ymqRU24I/VynFSA3+Wv W3ZVPGSuaijWXnYvbs3AkhiTpFclhE0iQrIjeTi0Qk9CGsZZlohRKsZGBPRUlSnLeW4R EbhKxQu4Ghs10aen0s62IV7N/OE/NNg0RixWgp7WgdZSiyqnnpDQa3JD1xjyyXkFnkZD jeGnwcXN/uzPbShWQOOkdfRaqirdV1mmnG6xH0XFbWmFfAKypvafdXrZAbbbu0x1vsL7 Uw== Received: from iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta03.appoci.oracle.com [130.35.103.27]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3mtd4c9qw1-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 05 Jan 2023 19:16:09 +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 305HgaKW033879; Thu, 5 Jan 2023 19:16:08 GMT Received: from nam10-mw2-obe.outbound.protection.outlook.com (mail-mw2nam10lp2107.outbound.protection.outlook.com [104.47.55.107]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 3mwdtsj1fk-3 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 05 Jan 2023 19:16:08 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=oaaaSQyQ81LaiazFhwDFNqNEjCTijneMepnO90m0LYTbHbFXHJVGawXALc6jwIJdsSFQ9nruTEnKNBMJxFhG8GNghxRcGDVUUPZVaPWug+DJ8P9rom85R266L8FMYNegyNVFrhUDpAKILAPQY+LFWRrzXc3LBdwU6AY1zS8k/DA0OVISlA2rFbCWKmq35tYj2OcV2uNJjxc8WiwQ7kqAQLKq2xPFORci4JiRVZzjRHPAs6uwIS5EnSibYogJiQccgYMHRgy6/Ewh9QGxqfg6JbcDLk2eYVS5/OpsWeG2FiNh0Ste+Cj/WzduiNW4jXPOKNYfMGkzuTlcZUZILGGhYA== 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=A8EhhluF1/bHGEprawBT8nXjfiUMfSvpckqA7Wu6mU0=; b=bGUykpe0Mp/EDd9WeNg0o29PiRpHkAetAM8dOKdtkxvEEnfklImGRqEienN6RjUe4pcy+VT1LbkTstzeolcuTJBDuK6+dtwaZ2FGDTpIpVBi4dbzupw90eXJyKEVCagl8t4dt4YQbxy4tjdK5a1q5IV15wxHvaW9O0vUy9HbJf2o2OLSbI4E1XN4kBuIqhkQewUeDkzwwcEEkebijIJc7GWOVUKxWjn2G8318CnZWW3c7tuixitmvA2ivX+Zo/dsnbGHVur7PFqL9AQ/c9FcvZYXPJEyIL9G97Fb6WWKDFSN3yuZquTZJzSQtwns//zOfoz9jwjgOrBKHBpLWMG0pA== 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=A8EhhluF1/bHGEprawBT8nXjfiUMfSvpckqA7Wu6mU0=; b=A33dSLBIQtf/JmgT4OxVdsSNl0qjuwEohDs0K0jwCS2zeSv4+74ksSC9KksxC1xsksaY4zlhi4sdbU4EQFk+948QhYmyBE3NJv2Gx/F03qSh3/3iZsMvIIo0fgNl1yjQrKWrh5p32FhXF3Ni1dQxgrCo1LNV0zcpyB9hK9TQRw8= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by IA1PR10MB6075.namprd10.prod.outlook.com (2603:10b6:208:3ad::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5944.19; Thu, 5 Jan 2023 19:16:03 +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.5944.019; Thu, 5 Jan 2023 19:16:03 +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 v2 22/44] mmap: Pass through vmi iterator to __split_vma() Thread-Topic: [PATCH v2 22/44] mmap: Pass through vmi iterator to __split_vma() Thread-Index: AQHZIToky9xKc85E+U28OcnfnQqIUA== Date: Thu, 5 Jan 2023 19:15:58 +0000 Message-ID: <20230105191517.3099082-23-Liam.Howlett@oracle.com> References: <20230105191517.3099082-1-Liam.Howlett@oracle.com> In-Reply-To: <20230105191517.3099082-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_|IA1PR10MB6075:EE_ x-ms-office365-filtering-correlation-id: 3acbfce6-4276-47ba-b9ee-08daef5149c8 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: nga1PpxGD2wIFt0dJDzbqzNAnC3ElcZfbHKaJfOuyhfogzf5rrs3rb8qWt7Yfn2C+8+kIJpjfASPlwpgie55SJw0t744dYlzLCnoEoCVfsoZ6wlT/46x0/vBbIett/RDd7DGZUJVRd9Bz7nn+TMFwMGWVpQCBShNqDKUbpvTkkKfvLkZtJvot2v6ECHjeqgUdflZD2aFnbtgrkHR0uc5e+wnnKV74rOMH/gYzlP3nTFn/xeh6Fm8eqfNy9GBfVZiKejzAotiH98P8rwJrZZIvRhT81Na6e9hWQpxVwXfIEcep8fHdaUVNmOtlum0xprud/V7G5NAnniGdnT1efX5WDaklS0OAtw9Cp2MI1//4NX77xGoEEcWL7zQGDG4lwQ9lN9SgMKxCU5i94xM1/Y9s+XwpwDp9WC4RzCvgU2i2Fml6/CrlfwF5735ZE8/Hw1F1rPt0n/vXpKLiFO+9RbjRAOVppjjXBItjLiodp16gLTUcsyydCYO0uFCRv3NWetb1gpKvryZTj0zSDXIwkHeJhTxTZ9dZmKCU2qYNwBh1nJmq5EJaxpDIl99XAynihmR6qPgXqm5nGqzq0P0x7NkEGqkegQVCTIepSzaUtjLMig+z7w5Fj0Wp0IRFNAgG7E38aK4asYsFr40Xoz1/YU9n5ajiT6noDp7WTLqE93ubFxbMTdl/8y8tw+oqwCxpmKZXCINKiWRGW6m5+V1CvBO1Q== 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)(376002)(396003)(346002)(366004)(39860400002)(451199015)(38070700005)(122000001)(91956017)(86362001)(38100700002)(8936002)(4744005)(2906002)(71200400001)(83380400001)(316002)(66946007)(41300700001)(5660300002)(44832011)(64756008)(1076003)(66446008)(6666004)(4326008)(6506007)(107886003)(186003)(2616005)(6512007)(66476007)(478600001)(8676002)(26005)(76116006)(66556008)(110136005)(6486002)(54906003)(36756003);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?Q?LY5Gva2z0UL/ZrvLpD6fTOcdrBURcQZbb7xFx2eO5N76Rq3dGaYCNLfj8e?= =?iso-8859-1?Q?C8mN9MUxMv1tNqubZPYDJ1Nk7euJn+fx+pt0g79Rbr29ONERqykusuhGGK?= =?iso-8859-1?Q?zn4YTiDY22TNSj40Jjd1ArY1dh1wUvt0tFYpaguSFgv0HE0KvZdv0tjY//?= =?iso-8859-1?Q?//hhzn5Xvlhvwv5i5CI/j2Vmbka0r8TVkPRAba+qoc1NABFqNA/pf7mK+i?= =?iso-8859-1?Q?WT4u+T2g8JmJy4QuqXr46B59ucHE2dD7wi9WDII/RnZitYByIJ8U5NfGAL?= =?iso-8859-1?Q?/TmMu+ZHn+xwxchOXX69H2UcG1TIGecA2c8deKCaobJ3MyuTmcM49R3nsQ?= =?iso-8859-1?Q?Jg+p+jHImrC8XEBS8Wwt+bEbYc1HezJa0e40kKUxK3v0w1WjDlTHuomX/l?= =?iso-8859-1?Q?dQIDgpNltq3OtnwWkZfF3bx7rWy5bJJl2lp8hMu4v+RZt/PBLxeYuN8s3P?= =?iso-8859-1?Q?XALYhD3LpEBGk8nfyhJWnP1tFaFT+QDkzE5yA3+3ddSns3z4r5kVDzujvk?= =?iso-8859-1?Q?Bn84B1HghipgxipyUjBXN4ENPUxW4gvcvrVvyvBun5F0nOVm5cNkZoHXVU?= =?iso-8859-1?Q?Pg8n7ZP/c0YvlypS7rpRfNuNuxmqJ5jgW3hmQFAXjxacrD3N8IeiTh+6ah?= =?iso-8859-1?Q?lHNctMjkH3CE//r+Td9tAdpjgBNxy2hIFTgor2+KqFuCDAY61TsQgNh6jt?= =?iso-8859-1?Q?peYlIseDZO0CqVg5omoZBrChUcrSKRv2u/ZxlDzvIAsdtMu6nGieY49wp6?= =?iso-8859-1?Q?5Fy8PJanvi0YBsJvTVyspQ5rVYHi7GAvdRXNtJdM4uBNd2W2x0HwVKinpX?= =?iso-8859-1?Q?LpOa5XDcIaoNZdCB+lRfRwjZPJLsKjg3/XiFq3e3S6737zeGaOecI+cJoz?= =?iso-8859-1?Q?R3vXT0AXMgcsjliyGhb/Pe32K1/6vZWrk1/6xJ3loqJ2/xjQF2hpSiEfld?= =?iso-8859-1?Q?YLRinL4Xqx/0ao5VCs/E8YuhZMkfUVjGixrFxTpvqfj4L6bvT6LfwV+N0g?= =?iso-8859-1?Q?zUuNhdQczwK0+doiaMT8WYAMtyQfUu/H1izp3+VBbH/lW6O8g8Mrd8XZmK?= =?iso-8859-1?Q?+uXSisodyFnvrq0xj+bSQVeZZAx2vUgJGR1uKt78SI3MASnxVRSTsGpiuI?= =?iso-8859-1?Q?eyS+1nG6wWaSiHG0S/dARwoo5Uze5GE1yXzi87cqzKoeG1GXYrTCfc4qXl?= =?iso-8859-1?Q?CKZY/y9chmQVIPPXEpsEUXy4AIh6m83hVCwnEHI8S4cuHuTthnMxSylwBW?= =?iso-8859-1?Q?Huylma0Aw9sOC8REeODsNf79Z+S0QTr+1sSSkwJCOt5bLl+JDR77wsHXvD?= =?iso-8859-1?Q?ad1tQLcVjsGC4kOVybKWVoIlqsJENwWDclpmEJm9RhDmgIeQEq/3B1A0CA?= =?iso-8859-1?Q?1wARvIGwcs6T8KsE5+6pRBf1wRG2xsPG5yFAT+fLCw8pMqahuEFHDqPZFs?= =?iso-8859-1?Q?tYKMnK+g4C2g9Uo+j2ZxoisLrRmYN35DiDluCPfeFqLX+DJ70uZcpRfSQj?= =?iso-8859-1?Q?uaLNNvlB7Ms5twLw3jd7TZXIYZQQFQVbwM4XCeYEHgtT8v9KyjiUaDRRD9?= =?iso-8859-1?Q?oezgXuLpWUT6dZ+Dor+iBwuJ0uCe2I3d2SKh1aT/ovdCA+SISUIflawKoO?= =?iso-8859-1?Q?qKmNTmiRhbMQCO0xs/IQJTAk5KbogDN8qKJG+RLODc5jvr8xJFe0ddQA?= =?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: x/+bd+Vmatayi3Y3GtDGXO6LBnO30MKRLb2qmrDOu7JuNQYo+K9vq7QTPARwnHczZBK6FervCHjndrhBcmtPfIxTfel3QSq4ARGHJmzst13oHyFgu5zcVGUaGQ5+pAi/sHz5wycOiPnFIXdjVRGvNdZUft25meNnzH8aARX2gcmjEFZzRhM9OVoptzqcBPLI79zVwZHXOwiK8LcSAt2RvWPZuJ6l0R5nUx9DprzMckC5TmVjvBB+5iucZFbS+LkVzr5WXjGVZtjtLlC9RfVU2XCfOXosDATdZLvbjZk0WnRp2Si9bRXO2w/ajVr9UGe7GUet1YeonnqBbKEu5N7lc2aj7f1+YB/njgvv4qf7xOw6D/BibdVnybVgYKO++KCxuh3VGnE2oVEqB0XX9njMDLwt3tiGkc/g/VBPmzJ96axtcpWBALRBDvJyCq9luIxK3j27UbWKZQoR1E98LXwEr4r9nkPDRSP/+rv/H5bXHLFioa/bKSWqCdi9qgdf/78rR7tJrU9cNoXPjUJbHy4j3hFgkm+BG23N717FVLrBD7QzsdL7OySiOQPRY4PmlyOleT5kjyuGIGH5FOEX6WEgFYIM9SKjMwsk1iBAC4bqOktKAWp7/yRlD0KaELcGd7xHSeDfGA9cmlwVKGWpgtgK5psI1d7eZTK3C36LxcYKhUTC3hT2Nbs5iVWPgX80b8tmumM2SgaGe12/LTgNQNkuIZ35JP2jtxHXHB45zNuCqv9O96xEO26/tNefs1ckXbBEDr8BHSNd86lBBPieBx6Sscn8eNCp3E7haqorPnny/CK9SGG3rSEc0Hr3+RlXtb5UZd3KTIW5jNRs3hoRpj9ZwUqE/jZFz/dSKqLhYhWNhWpcMIVXpN8vV4nbYm+P3QuVBiQ28BKRUlLkMVLC8xNXAg== 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: 3acbfce6-4276-47ba-b9ee-08daef5149c8 X-MS-Exchange-CrossTenant-originalarrivaltime: 05 Jan 2023 19:15:58.9693 (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: uPCYVrUjF/kyqAtu9XGwiQxsSjZWmOIhuDXutorIFomOoQSm5KrBtUcMFEcEsBH1NNph/YRRSLq3ieAXGQwLzw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR10MB6075 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.205,Aquarius:18.0.923,Hydra:6.0.545,FMLib:17.11.122.1 definitions=2023-01-05_10,2023-01-05_01,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 phishscore=0 adultscore=0 mlxscore=0 bulkscore=0 mlxlogscore=999 spamscore=0 malwarescore=0 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2212070000 definitions=main-2301050152 X-Proofpoint-GUID: 9n8UK822l1bPGrC9hi8N62CgsOQNiiq1 X-Proofpoint-ORIG-GUID: 9n8UK822l1bPGrC9hi8N62CgsOQNiiq1 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 4dd7e48a312f..80f12fcf158c 100644 --- a/mm/mmap.c +++ b/mm/mmap.c @@ -2446,7 +2446,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 @@ -2467,7 +2467,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 Tue Sep 16 05:49:14 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 483C5C5479D for ; Thu, 5 Jan 2023 19:18:50 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235691AbjAETSZ (ORCPT ); Thu, 5 Jan 2023 14:18:25 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:43854 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235370AbjAETQg (ORCPT ); Thu, 5 Jan 2023 14:16:36 -0500 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id D35A7F592 for ; Thu, 5 Jan 2023 11:16:19 -0800 (PST) Received: from pps.filterd (m0333520.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 305ISls5001328; Thu, 5 Jan 2023 19:16:08 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=Zr4FwLzE/b/njzhC63eZIFLKmXoBo0cX3/2jU2egB8I=; b=cUPdy8N1sRcd6gNNgSwYdyYYICHYFehOMPgoZqD90eryY4DP8ylPtGVKpSPzJDcZ0UHw m57uCdVx+2ql6PSb9Fp2brX7uIOXWNh4vkss6AH0tlJfQwI8TidFbhSo5jzJEbXPCG7k JcKugOGg/xlVzLyaa8zkYnIRc6mJmPzNJK5/3OiIort0wFloxbP1jEiYNlh7F6aUZ8Fh m05wEwbOaQHTMPCeidNNd7K3X+NVsK6LsfELgruG1UgMgADWSX8jyp6Vz6F6CYeFqX5b ZuHB4sZFxPO8hBX0zeY7HsYPJRbGl/FsayHQAAGUzHUwKVld0fuaU+i4aiCkyZoYB+Bd Gw== Received: from iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta03.appoci.oracle.com [130.35.103.27]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3mtd4c9qvx-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 05 Jan 2023 19:16:08 +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 305HgaKU033879; Thu, 5 Jan 2023 19:16:07 GMT Received: from nam10-mw2-obe.outbound.protection.outlook.com (mail-mw2nam10lp2107.outbound.protection.outlook.com [104.47.55.107]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 3mwdtsj1fk-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 05 Jan 2023 19:16:07 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=DhXuVSzSxFJjI0NsW5ofPk1s3dOVK95P1FdRvGW4u9fTAJ7CRJcIsfOYBcpKx53kQnSC3pwv8qu4VZy4cCJH/eISRb6NL0ns8/+h+vnWAYGPbDmNyNm2nHZGjf2NVUEabK6+WOBfVO/ENv8zQ+nmWYdnJuJbZEyvww2hGieUT4o/LaEMHDzFLLuFPK19chQyDN1Cq9Et5PtaKRKc1wwAzNd4hcYmb6MAswAVTUXV1ZsrZkGUVVPqsmHiqljLsuhwUbLaWc8YmpralPaU4YHoH01S+eX81d3ANV6T7X9flgEEOcJ9pM+rkySd6ZSHOVVP7jOeJRdjfUCX6tuvLU9uBw== 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=Zr4FwLzE/b/njzhC63eZIFLKmXoBo0cX3/2jU2egB8I=; b=UgrnDo2bO67N0Aa1rkrN9RUGEy+0yWZJxn954bgjRxUFLTkG9dazKOua8XgvBLYJ44uKMnoQnjhClQnOb6N+FLsagMExvVEydd8+pEqrGeZRcm0cC5SVB+jWTKQEp1rLDjBDH/C/tgxnHRyECds/4X0YMKBTj7Xqhlr/gD4kxPJMrHt3E2MfVww39Ce64hJuo9jIiQwj05oCfZ4pKaAO4I+21WU0sF7Ib+mrHA/lV0P7/bECny6tBTpeV7KF45k7+3FAIFgius+MToqoWMBJCk/OXehNCiEFyllSLIYiTIbVeuxGKrLnv98SE17FCf6tPgxg92MaQtmhktNDddkgnQ== 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=Zr4FwLzE/b/njzhC63eZIFLKmXoBo0cX3/2jU2egB8I=; b=FbBJvz2ImfBnqpMUYWrybVWYPUsHAFL27cCtrdbKNBk/Ol0E4x3NDlxnKpP3H9G4vcnFt9oCZZMvpqBsz9bBhtp2y/VX61/kAN7+66LNPXWqdu3VCsLNdWjdm+cpKMkXVkhkMCtrf0q0D6p20a37CsDmaEO2+nN9jcZ/4g7RA1U= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by IA1PR10MB6075.namprd10.prod.outlook.com (2603:10b6:208:3ad::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5944.19; Thu, 5 Jan 2023 19:16:04 +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.5944.019; Thu, 5 Jan 2023 19:16:04 +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 v2 23/44] mmap: Use vmi version of vma_merge() Thread-Topic: [PATCH v2 23/44] mmap: Use vmi version of vma_merge() Thread-Index: AQHZITok3mxn2Z7QHUSRt6A3HkOq/Q== Date: Thu, 5 Jan 2023 19:15:59 +0000 Message-ID: <20230105191517.3099082-24-Liam.Howlett@oracle.com> References: <20230105191517.3099082-1-Liam.Howlett@oracle.com> In-Reply-To: <20230105191517.3099082-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_|IA1PR10MB6075:EE_ x-ms-office365-filtering-correlation-id: 4f431749-87aa-460a-1831-08daef514a09 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: rT8d2PYjAc7nQMmGwJ0u/yyUlqUaXth72o40y1+Ix1IWMi9jWc47ReDY+SiRxCBAR9YrfLMIB36RZSv9jisxI3F3HxmasWQS+4dvikwh0fu+9wMfOwmREE8k6Zg38vspbfYJr/Mc0eGAjBcJvFIyY4juJZlPAORb9CJNN89gQZmfPDZUF/EZBpdfH6fXjySzdziovQjskgtV/vYDkY5o7LvYBa1XKQRjZPrpoJtI4Q7I+thphyj3jppKeBiwoD25laPFUcJnbTzxFNXT3NQSoijvm21AgjS2uNq3aCk3OA0vWJ6RsMsqF+Z90SbmY9xqknDXDd7/womC1kYNSWV6pnFXD2jfgZFH64x8HHPEvyRKUOMyU8rN/kau+k1yUiAbFA4LQ4YT5AvQUaWZ7p7JzmR6R2A2kaAmZKx5wyQiv3vK+EJD0Cazy87Duqkm2t46kv2p1sUgRI+UexueA5hY+/iWOmLv9zu3E9WRRAPgvfRVd8DKJk8LfInci2j/qiCmCJjxHiYWNywDK8wR5pEpgOzYvtyNivfX26mnRrTCqxPBxPT/5utHNSajJhanixM+YLGJQtf4nNnK/oTNRA1UuDI4WRDP50b+d9VIIf3Mh3GIaiRhJOfO+tJqtlo2LA31dlwjFhq/PVBRCeBaSpaAPS9wsXuHpbNUdQ5QQ/8l8rYtgFf8njHv3MWUlwUAqhdA8BvqT+n3Z6yMl8qivvIrZg== 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)(376002)(396003)(346002)(366004)(39860400002)(451199015)(38070700005)(122000001)(91956017)(86362001)(38100700002)(8936002)(2906002)(71200400001)(83380400001)(316002)(66946007)(41300700001)(5660300002)(44832011)(64756008)(1076003)(66446008)(6666004)(4326008)(6506007)(107886003)(186003)(2616005)(6512007)(66476007)(478600001)(8676002)(26005)(76116006)(66556008)(110136005)(6486002)(54906003)(36756003);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?Q?ZyA/1qLa6DCQArXpDRypN8/f3oNcwTROAkFi7PkPhMz7mDXnlQ4O/KPRbf?= =?iso-8859-1?Q?ulP3b/4/31y6F9l/tA4/9R2k24ZUrsyc3RqUNE374Ih2SvFLYAW1y7ST9O?= =?iso-8859-1?Q?1pgOXkp6U3LPJYKj3CZFVH34jMdKd2eV4WzjZ6WbCMB4gjzdzZIOIMAgWL?= =?iso-8859-1?Q?wA/Bhf68jIKpzJJGDvq7XYftmI+q1NzM4yxKer1JQJ8XHTUPjAfdbNVAwR?= =?iso-8859-1?Q?vJMtFwy5xEtZnPfxRl+iPrnapAPitfbMmxMhMGxARJ7kYYlM9uDUTW9jVc?= =?iso-8859-1?Q?XY0YCg8g6qduilKVbfozCAdd3JowOgdz8f6zWdKgKK/aK0LVyxaMFunrQh?= =?iso-8859-1?Q?fCZRlWxkDl3s0HcL9maDuAYWCwtYrtRFfyG69M5p/efFtvlAYBeTkGlrkJ?= =?iso-8859-1?Q?f6cADNeXz3e4r2IqZKfwlX1Rj/V/+OR6vx8QZPCqE4gDa9l5hHtabqfThJ?= =?iso-8859-1?Q?aAvcwMN2rNhNBbt0x68EDkZqneDU+99foy+cn6fhM+rfn8rE27EuQuloAc?= =?iso-8859-1?Q?R/rUHTDcmk0f25EDQdzcdBubQzKokJLWpHp+Pb+mUCgSLgBQIqiZmIz/4f?= =?iso-8859-1?Q?hDpJsvMTrCmrdNf0WAEomm8uhbcKUfLBPQrFdPcDVi0nvYMGVztlSWCw+M?= =?iso-8859-1?Q?PGBj2ZzIhrxXQvLsatNKaX0a7C7qUmzJ+mpx3Ei8EQgDGAVNxQUeJU5pW2?= =?iso-8859-1?Q?nMEUO8ldInng5HzMga7YvM5+xwelX1SLlV1T10ZpgUVx50rTzSmgyK2ywm?= =?iso-8859-1?Q?d7mUlXzSo6pazhoFzxTSkfOwx639FVK2+ilR0HPG5eaqcQ2AAauWTiaOQP?= =?iso-8859-1?Q?KvM+PQAw115xoqk+D4HUeQ6r1oUkCissK1qajNcX9X0vFqoJpZs7ryo3YU?= =?iso-8859-1?Q?7xjlKjn39Wpccth6c9J7CWKx9hDwr6IILkdKIisN1PxDjK3auSTzp4o3VJ?= =?iso-8859-1?Q?+RwW4KKiGmK3cFGsJrT0vXNFI4JsbRNmNSLO8kpGg+SLQxE90OTy7mIodR?= =?iso-8859-1?Q?sw67s1ywo+9AIOtkanMGW1rIn3N/AF4R822Dni7P0rb/idXrRHvxdJJdkP?= =?iso-8859-1?Q?4g2juMI1eM8VoC3+a10LnSlKgS7DnYbZRclqW71MSppGZoRJt1L0yXprGu?= =?iso-8859-1?Q?BbYBOf14PO4jvbeMVZSiqOlQ2RwtEI30yc5qXdcHv3YdHfgH57tynDu178?= =?iso-8859-1?Q?zVaob4QwGnP1Ey+tFNG5vE9idj3/nn9JFcsqTMcNY7MlfnnkmdrXAqMl3W?= =?iso-8859-1?Q?AMOEPZ8OTzsv7kxsh51EajIrZ1f5L+D0RqQ6lgYq1SiUS0MMliOBLGbgRy?= =?iso-8859-1?Q?JyQ+FEzePsjLIm3kbEhHKveuu0ycj55UrX5VI0daTMG3ChVSqZjJmoLhnI?= =?iso-8859-1?Q?Zm81+qCzseE5EmOjbKWWVekbwbA1x+hNeegLdTOq1C/wG45zmx6iIHGetO?= =?iso-8859-1?Q?xVJgyTTByUclrwF/IF11BFtxvjJQ26eSZR+aqSu4OhUL7I0GHfClKYU7xW?= =?iso-8859-1?Q?p7/NAfJWVTEWOSJCeU3MoEoKmOepsiajURmN/LHnV4F2KLRwhGHRMS6ta8?= =?iso-8859-1?Q?+SgupVqVWXqiNV3s21oidJorx9jh0mxRKkuk+pEabjYE481rdxrdix/0Fi?= =?iso-8859-1?Q?H5ltt6EF1paUMFDGxHRKZERfNd2/9+dJq8zOkMR1lYE/4Y4WuM+FuvgA?= =?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: gADY0+U/JfP0KHlXbGYWY4gCLY7L/0GtXJ2M3qQR0Ffmxty077CG3S4UsKkucK2ldXumzA12/+/dS543vJ33A0qGC+l5pkY8fkNpJqJfW/2wCVoNlN/JmhzgO2IkWrVQPirL7TUlrXAhJvOxTWl6VRelFkbiTcoi+SCY4iO4iFhq5qT315hsOR/bE25KEA/ULXe1BJyk7VmFbHm5DzMzq6r1nZ0REyhWW8yLxnBpXSebNJvDoxfhR9vrADjEHY/QVcqIlCafoEFEaUADdb3fxbYGRMoEjKq06fMhpUbG7mo9+G+CsaMTpm+5s4R4e8o2yjhsjBYbqNSMTIKObfqo9uDyczwnl28DgOZreJucZFtMjcTH9kSQCjAL5fRbjk9LWwktHwk6DyXvYuqu2N3Q9gxopkStBGhTkEvsqFkLgEgjk0wrBzwh9jrgJ9XOlpnHbecsfBaKlANAurJXjmVf6es8FfAlOGmEcdbTFSGGGMtORVlgRKF+VJB/F3zg1I/bGdOPVVdKMq/9QEbcSW1G2FWu1MxNuuF0+f12M8TKGSPOFMQq3Ay3ly38qRmG19i6Ebr0hqcd2gAJEKK8RUIdBLWggn9gGbYBQcmHLb6fx94qme8wCx1b38iVw5dUDxEqmU6hDMx4IG+A/NJsXpMevsLbB6HK+46gbPSAZLOsFFVSmwcyC+6upCIbm26F2poKEFV8Wmnxw4eFtJSB8nsgDxY4+df/7cssZTC9erwoDzHY19o5PU43UeDJzAd1/4Y1SZbHE1zsEbLvbHlM1Cr//vTYljHvwkSbLVGUAeK33spgFcbOcc6XucRPzyrwmcaLBVJldavuu948hnAm0N2pXP3ERj05FX+xDjpz3hsAGzMMnaiZ/X17kI3eaLtra/Pjp48TJgZ++vrkiNfw0wXihg== 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: 4f431749-87aa-460a-1831-08daef514a09 X-MS-Exchange-CrossTenant-originalarrivaltime: 05 Jan 2023 19:15:59.2661 (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: VxluFXGCff52SBg6Y0oA+diM+9UynTMR2SYP4o82IDT2eBJ7xQZcLd9cdj+5rcNB7c9Q7PzeFyhHi0eemqb3+Q== X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR10MB6075 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.205,Aquarius:18.0.923,Hydra:6.0.545,FMLib:17.11.122.1 definitions=2023-01-05_10,2023-01-05_01,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 phishscore=0 adultscore=0 mlxscore=0 bulkscore=0 mlxlogscore=994 spamscore=0 malwarescore=0 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2212070000 definitions=main-2301050152 X-Proofpoint-GUID: oYzx-9wJdQ-c9EJ-9bu70zptPwzFX547 X-Proofpoint-ORIG-GUID: oYzx-9wJdQ-c9EJ-9bu70zptPwzFX547 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 80f12fcf158c..579d586e4e6a 100644 --- a/mm/mmap.c +++ b/mm/mmap.c @@ -2748,8 +2748,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 @@ -3280,6 +3281,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); /* @@ -3295,7 +3297,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 Tue Sep 16 05:49:14 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 62EA9C3DA7A for ; Thu, 5 Jan 2023 19:17:40 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235617AbjAETRh (ORCPT ); Thu, 5 Jan 2023 14:17:37 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:44080 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235493AbjAETQZ (ORCPT ); Thu, 5 Jan 2023 14:16:25 -0500 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 40ED1E032 for ; Thu, 5 Jan 2023 11:16:18 -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 305IUIHl030165; Thu, 5 Jan 2023 19:16: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=22Z6OpYufdBtzxSvf9B3LFJ2NyY1sjKM0+x62TTuiWc=; b=UHllwHGBwCQ+su8LmWECIAESoIoOfC7Yvqq68MG8LTpJTfl+89RncQsiW2LBL6qQtozd gvyBA7sTUTa2+Pypgz5+3SR7UhRK/ZI11zwbo4roFmx9wV994MR/B+HTwn71WKw8Gt8l 17LGe24Cb3dUB1reQ1u0CbjNqL4GTdNJrREPwK2iny/8DsUEF+aCq2AHzuW8jCpy1g4F 3lu6H7LPFSD+MTMOsd54ouoM1A9UKKgelnccS6mx1wgGRbcMsXmrn6seppat8cwF+m3N 6XGbP3Zc9racLgmFZnqhnKzPoKtvhf61fkU2h9QFCBpYd61UyZkfsQ1XYkuNg2dxBCvl nQ== Received: from iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta03.appoci.oracle.com [130.35.103.27]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3mtcya9k9w-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 05 Jan 2023 19:16:09 +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 305HgaKV033879; Thu, 5 Jan 2023 19:16:08 GMT Received: from nam10-mw2-obe.outbound.protection.outlook.com (mail-mw2nam10lp2107.outbound.protection.outlook.com [104.47.55.107]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 3mwdtsj1fk-2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 05 Jan 2023 19:16:08 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=OGnGaSW9WJS1HBJN+9jNPXHhuq2cavmfT23kS6TCWQRXnbknMniacJsOYSv7kL1eaumqS5MwGydOqgYQnkz1ChE/EmLpHuJwmmTpfhkreQuHyoQXp9JfBruC1m/ZwJKSC+dEtt68poNbbC2TbI8SkHVl4/FiLvjtl5JVdVv2Y0ZrQ9UZfOCrSW/3sxcAwV98k0eav6WsWDUZZYi5fdQ/ou25Q44CzLWN6CseWdZznXKp4f7MHT14Fsf9bPD4CDzHkzcnu6ygFSCHaqHdeREYL4337oIOPoxaJo+HhPNdjDMtYKST4EZdDNNlJAJW/L5NrSzMnzQ/+XoTKwscEF9nww== 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=22Z6OpYufdBtzxSvf9B3LFJ2NyY1sjKM0+x62TTuiWc=; b=dj0SZTnrMZVvY7rlVUi3cbdFnYXtzjBXxAeHK0MjR2RX+ih+h/jX2E8+Comms7ehUNM9mB1h9XL8eYNJRIFnA+rDE0V3xfaSnBc7XghQh2lKJNak/ytKIHMHPKLkw6F0ReY9/XGVSyyhQYqaag/sQTjAXE/VyF72hcHU+zoxFscCBs5aPegDTohZOzlCeqBuqBQgFTO1WTJO4UMNm8qx6heyekC/2LsVsO5qo1e91KJ183tg3xrBmz3dE43BuqB23wqyWH2jA4MygXYkaUGOObMZYtIXpyPh8OeejqwGbMBjZXsyMJihFX7U9eWVqAjQ6Bp/Am7nWNLieOj86LIfOQ== 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=22Z6OpYufdBtzxSvf9B3LFJ2NyY1sjKM0+x62TTuiWc=; b=LHGWNTBVLLuyUAf1FdW8F6I8S4RM5DHei/9wDurDwysKj8JtCEd892buRUqN1KcLZ19zAd3tLMcSSYBjFOh9sl5u9KOPJ0NNH/27i/z/n8Nz+BJe0Wf+gsdEdpmkmwerJ4cvSwtXrkgjTBqkueqIPyhwAwkBD5iX85pDDd0nae4= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by IA1PR10MB6075.namprd10.prod.outlook.com (2603:10b6:208:3ad::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5944.19; Thu, 5 Jan 2023 19:16:04 +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.5944.019; Thu, 5 Jan 2023 19:16:04 +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 v2 24/44] mm/mremap: Use vmi version of vma_merge() Thread-Topic: [PATCH v2 24/44] mm/mremap: Use vmi version of vma_merge() Thread-Index: AQHZITokYKyF8+fOxUGqtQvwBErbmA== Date: Thu, 5 Jan 2023 19:15:59 +0000 Message-ID: <20230105191517.3099082-25-Liam.Howlett@oracle.com> References: <20230105191517.3099082-1-Liam.Howlett@oracle.com> In-Reply-To: <20230105191517.3099082-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_|IA1PR10MB6075:EE_ x-ms-office365-filtering-correlation-id: 809964ce-616a-4ef2-1066-08daef514a85 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: uxudobpIXKnLqcIoxsonSrR/WTmSQP2P01si8p21Eyw3taKauEVi4RiXJRXbQfp9KaM7hTO/sCEO54rkysGo1FAglX5z/SQeCE1SFzu5azXyFfnjaJJiwMPL4Rn39MxNMGjEj43O94C/vlVLbDTU1rZyhiOzC6pscRuHu38RkijWiJhaFloo1nC+Zk8JZaBf0gF2BzzAI2DLXXaGocgujcHW2Lt2lGhDEEm0Q5gNcmDnfWyN7icye7XWA8eKHyJv66BkVMnICvoM6FGul9ARiZUm1f4byKUXO3Ap805m0JGxRDcma4uTZ80AsbyANyUKIGL4k0l+2oRPoOhlU/6LwfooXe0Fi3hrrFGBdgaF2ZnUcP47tOrO/JWLCWYF1ntSs4E45FPJqSprVR7prmUCz+J8+QBummKU7XePD7/Qi5Iqk/FlFiBqn1P149oq1SyL+q+VQcqYyHoC3Jdm36XWGOH6Xe0Knhde0KHnPbzcJEFhl+fV0XQ81SYuNmkDhi5BdBjZmgflRI0HPfO1/uHnz5Jp7e8xfqbUkrvR8Xl1n2lUSyRlWDRupZJGc+/wyH9xGIXvd7LbZv5hzVvP/aWVasDHZiyaRCqb5uiW7rzB/+NoXsNwR9VwHb1ucMbUkecL8dJi5x2pmvI+rRiKElEtX9xgYkyIXrMcGrMtkIAl4PztFx8pl9/RufhdCGQOWkghpe3BjLwT6Qen6+bq1z65Kg== 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)(376002)(396003)(346002)(366004)(39860400002)(451199015)(38070700005)(122000001)(91956017)(86362001)(38100700002)(8936002)(2906002)(71200400001)(83380400001)(316002)(66946007)(41300700001)(5660300002)(44832011)(64756008)(1076003)(66446008)(6666004)(4326008)(6506007)(107886003)(186003)(2616005)(6512007)(66476007)(478600001)(8676002)(26005)(76116006)(66556008)(110136005)(6486002)(54906003)(36756003);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?Q?Oowv80GqnMboYgf/gjq5JUk4U0DDCKcEwBUKWPFRiMMShaDY89nAVonSFm?= =?iso-8859-1?Q?C+MpNA5Bhqic86WiIwfCqnuFNXCprCAiB7mvBYHpVwMmWoFBKx5gcXzrvV?= =?iso-8859-1?Q?P19Ex76MbaoHm8lZgAV+Sy2Z1R3bpGZUUtaZCC7xyPjXHEKanUACn6rguF?= =?iso-8859-1?Q?m2mfNp1wbb7xCqtOfnMw0CexA0U62GxpqKhmHUU9gtKXbPnXnro7nUaySz?= =?iso-8859-1?Q?gpYkle1OQ+tCiubpa79a3TL9N4VA6uKnDTXwg9VaToe0ZTZuj3bmTDz4PV?= =?iso-8859-1?Q?bQCz5+LcYl3CSGPCyH0Uea11kabGyXEerEL2Ohj/AsQt4Hkym6DtTFegBo?= =?iso-8859-1?Q?3e2zQ+yWPsjvWIbql2MOVKJYLLP5a5SWIsTiFF20ZkzUvopKpmIBkfkK4B?= =?iso-8859-1?Q?ajNIqUyrAWK4jcMZrMFSbWBlTvUwqIsKxOKq+iiZgxhUefkrrENh9/jsaL?= =?iso-8859-1?Q?Tkb6IK3MZ/qaRio+7/7/f9e6IH2T86rWBdolpYmKhVGvwUEKUOIJYmOj+W?= =?iso-8859-1?Q?p13YLPGa5ee4BRDoe/fD5AyzEZ48y+5Eb/oC4h2ZIGuuDKKSJTQVft2VjQ?= =?iso-8859-1?Q?7aNcW+A4tH272Rqf2WTpcg7WJjiYzgpdYKeSei6hUT857EF/nGnmOm8aBy?= =?iso-8859-1?Q?HtzzyHzELeL3uIcYYXZS0PPnqpXGw8W1Y1EQkC16iFID7p/mw/0wbOPEeH?= =?iso-8859-1?Q?qwyBLSgGaxGC4DFSf9nxArMLnohmUjzFVtSWYCwwDOoxWYrbLroBmxxmW+?= =?iso-8859-1?Q?t86mfcr3eBiPEbnYEZsygoJOXBSqzYsuCHppFFznQvPuQsp0Vu4QBP56JP?= =?iso-8859-1?Q?eoO/tzIcp2PS/nphRnUKzEuvR1Nyr7FOs7CsP38aPtky0X/aN+WURcSJa8?= =?iso-8859-1?Q?iaoGPO3aud7FCc29eYuOIDGi1wjV8jbDTA3RsZnjsP8FgGFAph8qYEghrp?= =?iso-8859-1?Q?uIg09Xg5xeu/mQ71UTl4ibV97IgZ2nM4rj6OYqRkf39d6/ca+m69kvDj21?= =?iso-8859-1?Q?slOLxddl2TaeDV0VmpIUL5CQyuwYhhCECcHnuZA5iZQlQrArRsSt01mrOw?= =?iso-8859-1?Q?JVykEVPCwBiLnuxEkFC15UgXZVo2KA4n3KtpZGcmahq0qlwfzkD7ywFSCR?= =?iso-8859-1?Q?7As/YvxqepP5pGmvO8EhVTZVho895+yHcq/ExCQnLvwbBr8eAyKqkbXO5I?= =?iso-8859-1?Q?1AqpM55bGWo/Hv3ai9VpMoE/2qF1ouIZqDR0Tik1r1RMFE+rHT0Znw2NSf?= =?iso-8859-1?Q?+oYge0PAsxHhKRiC0kak/c2xbmhnZC6KUCqFybxBC7cWM/YaSb+ChGZtYn?= =?iso-8859-1?Q?9EBr1IIdHT16Zy1l2WVY9HaR2jGJJRCHZY8W4/bVcFRIj54yJ8By5xa2TO?= =?iso-8859-1?Q?BTAMs8K3tMI7i9BM4ORTjTT3PmJkiAufpGfgE2Vk4ZBZO1cAsx2CvdvQjc?= =?iso-8859-1?Q?l1yNBpygFY17TT3LbtrG2u3ivUBHks9vf9A9BVoAmX6RyaPch8GeUTcJBQ?= =?iso-8859-1?Q?JfTFEev9vkTxw3ydq30ndbL1Qm+AjjklWwMj4UIk9tbJkphdbkYae4zB2V?= =?iso-8859-1?Q?zWGY+33Dry0IOoGMfkTJOCYqG+Q3Ge44ZkahQk/N6z5Box4YDMYb+HEHXV?= =?iso-8859-1?Q?vnSteeK5qFk/KSfkRZsJCx6xrXuA4qnHXWPbEtBxePzsAj6JCd/1GNWg?= =?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: O0w9AOf5wsq8C3nOCVAprFQmJrJKbu8KV258k30JQX5QqhgLEBvkHp4IlUBv6zVTyG0OytheZfu5QyhFbh65oDRI+qhVwlG0W++3Ff5pk880aE5y7MCmqnoZfBFyNPfZnrE3XDibzwYA850kLSrVDAm5qy6fKItk2q+MgwtCH1Lf1z9fiHKJgbnPmMdo4vEbVsc3TGHB82YDKeE2r+EoqskeP+7/ue48U/TR3NIySJZHEANTpIwEN4LmP6+DmTfHfOV41UsfgrfOyuFc4x4j8REOn470B+RQBqIMVPBwa4Q3vgBUtkC4Xn18eMIMBEXxWGh4LZUBfh98kMXcg7+gIkEXvZAp7cGI5gGkF8a6r+stGAZA2pcvOskW9YhpsR1zLgZuUpqFC3JmiJzBT9B0t3njk4e2wNiiM1b0HHP94nYryxAavFjlT6G6+iyQ9IqDd9c6Rd5rVSrc1btBC6SKOzdf/dE6DIgliPombZWWAsiafKTCH4WRdQjlIY6iiJ60AGtQxcPbTngWriYH5eXJ2n1l0T7lVxVEClj0Y1MbBXmAan0VVEgQSYkbDLInB3rBJiow1tf2QEGahCYl84x/f1Tf05WRyS0gGa8nVPWPwta+p4zEAt17l8gpS4zBefSxTRDPjA5wWe2bcS+YQ8qSFztgNr1PKdr7Td4MuaulNFWUO7q1Ms3NUsLRLP2Ahy8DEh5NoGSUPcsgVFp523SZR1UgZmt2AKHsLt1vS6ocI3rV1z7n/V5v11MC9escVSdddTQpNgs2LaIO3IczuUYrS/gITjEr5penJWo+Jc83+wkW0Rl6ZncIat19Rx09jJ4e+UyWSFvxUpze22K1jVPKbH6RwTKri1JgT68je5gHg9SoTtbt7xVQslUgSk0qiyE+bvWS8EjsUhVapzSWSnxuuw== 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: 809964ce-616a-4ef2-1066-08daef514a85 X-MS-Exchange-CrossTenant-originalarrivaltime: 05 Jan 2023 19:15:59.6098 (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: Ls3FUOhliOeZcUWQYyhLrvjiDEdvIB2r09+BgbEHdHYLPN8VJt5DhB2z7qe53XTTGcp7s1Y9mCUisyGvoGU0fw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR10MB6075 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.205,Aquarius:18.0.923,Hydra:6.0.545,FMLib:17.11.122.1 definitions=2023-01-05_10,2023-01-05_01,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 phishscore=0 adultscore=0 mlxscore=0 bulkscore=0 mlxlogscore=999 spamscore=0 malwarescore=0 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2212070000 definitions=main-2301050152 X-Proofpoint-ORIG-GUID: D2pqDMu1FnEKnhcOXtIM3phW9N_hCqTF X-Proofpoint-GUID: D2pqDMu1FnEKnhcOXtIM3phW9N_hCqTF 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 94d2590f0871..4364daaf0e83 100644 --- a/mm/mremap.c +++ b/mm/mremap.c @@ -1018,6 +1018,7 @@ SYSCALL_DEFINE5(mremap, unsigned long, addr, unsigned= long, old_len, unsigned long extension_end =3D addr + new_len; pgoff_t extension_pgoff =3D vma->vm_pgoff + ((extension_start - vma->vm_start) >> PAGE_SHIFT); + VMA_ITERATOR(vmi, mm, extension_start); =20 if (vma->vm_flags & VM_ACCOUNT) { if (security_vm_enough_memory_mm(mm, pages)) { @@ -1033,10 +1034,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 Tue Sep 16 05:49:14 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 79F66C54EBC for ; Thu, 5 Jan 2023 19:18:50 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235731AbjAETSf (ORCPT ); Thu, 5 Jan 2023 14:18:35 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:44014 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235509AbjAETQm (ORCPT ); Thu, 5 Jan 2023 14:16:42 -0500 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 368A912A80 for ; Thu, 5 Jan 2023 11:16:22 -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 305ITc6M025555; Thu, 5 Jan 2023 19:16: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=5kGdcRd7sciAlJGxfOjIvnP/V/UXOl2Higa/J0aWF18=; b=tyNXV/Im981ZWU0hulPtGy/vYGB7owkEBVWYbDjB1ISY4XtUdz25pkExyrn5MUd4Ejpt dMoFZdq5FOG5tqph7ZPOYk4w2qeTXwzwjqJ9p0kNMX60231CTmJDxoyQ/RNUYuw+qCp5 Wf4krvMIqcmHEQBxfNC4Q8tX/HHa+b5yCBAWxXUohU7zteBLpB37U8/7aiRvv8l2KQOf V/3Mri9z/xapto9hIV6nGQFTuzhmkpq9ckZ0i71pElTNYC6srObrKtvAAevwfdBqAiuy NLI1fQqAtyWH2n4l18vdZ7QVI+aoE4ahCDBU8Tbi8C+xZZDNYdmrptl9ElxSe7Qp0ARv Pw== Received: from iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta03.appoci.oracle.com [130.35.103.27]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3mtdmtskup-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 05 Jan 2023 19:16:10 +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 305HgaKX033879; Thu, 5 Jan 2023 19:16:09 GMT Received: from nam10-mw2-obe.outbound.protection.outlook.com (mail-mw2nam10lp2107.outbound.protection.outlook.com [104.47.55.107]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 3mwdtsj1fk-4 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 05 Jan 2023 19:16:09 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=A82YLN7LGpERBYbhkN5L4DFZe2qPTWCJ4ljuz94gAAISYLwIDDwBxctcocOzO1Dn4LAKnIMmUXiqE+/a9BANVaatYscEB4NbjASOD23VHpGYHl6PBsjtuSBpMlDSaUxDsEayqFR+fV4vz/meCqxCpRZE0VxPr+ZHYT8hh+ertt4BILaGkcVSZ5EhteiIbnsoZapcxj/ssMrGeSHDtgU0Xe2xhpbtMnLZnEiu41ETGbUUl7Y6U6P7seH7cVMUNeJpgDMTemtBZLjL+HrE6a3M5/cP4fqQhd5ZlN/dJogLVnJ7+6O1yWgSkVVJiWCeFwln2/5ufI6qzOQybliQFdEDDA== 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=5kGdcRd7sciAlJGxfOjIvnP/V/UXOl2Higa/J0aWF18=; b=eWADLKLJyRWAn8iLVxy1h5BRecZ9rn7Jj9Pq78xLuOBS7PWmYt7A2KFyn4FIDAp5S6ulG8G8P87+LLYVng22VurY77iLMTD35UJETOaDHdU9nHk2E2ali3/ZkwtDCYxIMR/prObEgScH7uopt/u6ab0P/Ud8mXQz7b/8HgYvGKVyWnmxPYzbwI4M6I/N7Oux794QBYoax1vHp/bK/c3o0zOU81Y5d5Vzj9znSxnozlJLDqpx8CLX8YjnsDNSVEWddNSPQsRzz/5SQXtPqzNACBckNHjs4Wk0Ki/GJrz3tOzaJ9PSqRKgmGUTSY7Qrk905FOLin09gTHzzeZl+kmlSw== 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=5kGdcRd7sciAlJGxfOjIvnP/V/UXOl2Higa/J0aWF18=; b=ukLlbKbb5oOSb3NRq2NWN44/AQbmEKrKpTvlqZqOT5on9Ygco+mk9T9kqE3GVgidfI0kQ17VQCMh1j+eOB/28doWMWTN6FhHltoqwvhqvN4WOBmDtwE7ndgVwBDDJn9z3UgmKhv63SUnizPfBNujPCkcmPJx/3/c/jh+lz8Mbko= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by IA1PR10MB6075.namprd10.prod.outlook.com (2603:10b6:208:3ad::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5944.19; Thu, 5 Jan 2023 19:16:05 +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.5944.019; Thu, 5 Jan 2023 19:16:05 +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 v2 25/44] mm: Switch vma_merge(), split_vma(), and __split_vma to vma iterator Thread-Topic: [PATCH v2 25/44] mm: Switch vma_merge(), split_vma(), and __split_vma to vma iterator Thread-Index: AQHZITolqDVQ6iqu60KRVDrk/+ixag== Date: Thu, 5 Jan 2023 19:15:59 +0000 Message-ID: <20230105191517.3099082-26-Liam.Howlett@oracle.com> References: <20230105191517.3099082-1-Liam.Howlett@oracle.com> In-Reply-To: <20230105191517.3099082-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_|IA1PR10MB6075:EE_ x-ms-office365-filtering-correlation-id: 012c78bd-1eda-415d-5a4a-08daef514ad1 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 960Jqa84OphLC8jG+cCtRRjZ9hXahCvTCKFYOJXszNP6lBihL+kZ3RAodhTDOGqqqJiNPeT/dKdRxxO94KeJnVRlX9g/xEvxEe404cehOuHRwBk759VazozMB3k6I7Vo/jODerhm9hUXblJmwrEbf1AvraF9/DrZKSKnq9qOUbWMkV343Kma46u7zGLIriactw4IQ/IPkfIsfwVwqaeVU3iNefDCuVAf9TP9kxhfU8gyMA2HCxbmCEy1N0sVEhfDw72zNBm74TCefVboZ3I/+5qnmSM75EET53n4rg2ESzlDtj/FEohGCtOoI0O4GfsunbQYI7VpMc+Z256YIMiRhC066Uu3U68KFdVsUVzog8Ybi6h4lNlI4CQOo3PLOt17Dt8NvZXC9W+qyhJuva5JRW/TiQ6naZSdnGflwlBUYF80z6qcR1HBbBzO/R3fqKKmw7DZs1lE52fxcM/0K27kVfabZi1KoF7XGkN86lw44b+kzR805+q7D1FN14fhVG9NNNrFQg8tluTQtyRWSgJWEByKyqVnNduTUBB1c2sGy9f89oeGv0k/mPqkp0dWz7leo9AZosULxTgtOotmsrFONt7tO16PanDx7Wxvc4BTfWpXwl1xof0KQdQsCAQ0mL1tM+alP39x2oBY47VoS5aUCoSQ8Zp2h6l+wH2q1Vr77w3aHgWTPrZBB+l70lCb/kLwMI4rETb14iavVQHsqxTrMA== 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)(376002)(396003)(346002)(366004)(39860400002)(451199015)(38070700005)(122000001)(91956017)(86362001)(38100700002)(8936002)(2906002)(71200400001)(83380400001)(316002)(66946007)(41300700001)(5660300002)(44832011)(30864003)(64756008)(1076003)(66446008)(6666004)(4326008)(6506007)(107886003)(186003)(2616005)(6512007)(66476007)(478600001)(8676002)(26005)(76116006)(66556008)(110136005)(6486002)(54906003)(36756003);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?Q?L2HJB+zkQCWG3uQObULX0MrJ+JJ1YOU2/Ty+fwp3wl0cx1GOkGy9L2U7a7?= =?iso-8859-1?Q?KQCVhA4u4/7UZA7Aq/VbhkUzSZ3Iyx8R7xzYji1J7YixR2mZntRJheuzzk?= =?iso-8859-1?Q?jTCe9zdgrAvTV9a+IJLX//eZXwWjDZUNZkqPnWe8mXlrBLCFfBcMZdo0s+?= =?iso-8859-1?Q?GOih6KIN2n8H9+R6bWEQa+ZjyEdAIbpua0Ea4EdVF9EdvqFXTUpKeTUawP?= =?iso-8859-1?Q?UwmptBZlqh2SqdG021s8ZXSxTVYts7xp6Rqck9dhJZWthbwF7zl8mq+7f7?= =?iso-8859-1?Q?mTt+rzgHTaJpa1m9898Kvt9xl6QEv4n/jcSQikjMXS/tTO09h+AzolH4Tf?= =?iso-8859-1?Q?KVl7g2IPTijFE+eIXO8qdw7J1InhMtHD3FXvYGYylZ3opBCrHgjEIF75iN?= =?iso-8859-1?Q?YVmWPXgVpkpNnH4XRSq/UmACVLfWqZwdicdcuPWK5azNsYo2H+unzujbGO?= =?iso-8859-1?Q?bK6K6ddyN2R9C2bKKj+MRRn+qa1ZATooOG7X3UFwkTGkfdEOiy+3HvQH23?= =?iso-8859-1?Q?F/EPGUAlKBFTduZBe7sfEJYbMgg6bAt3/jkrODPvri9MNpYZJLm+fe0bgU?= =?iso-8859-1?Q?bUn0Dd63lUZpgaMDXluRgPoj8oE+P/MH2ah11QU9+kXwfkV9/+7J4dmK2t?= =?iso-8859-1?Q?HfTYGLVaQnF6F1Z2B9s6un65+t8rKd7ZEsrPe/P0PTJTjAZOm/Qd5wDbGR?= =?iso-8859-1?Q?CTYVlXTGWKBqiSVtnoiIAmpz5DDdbj9I8qGBQlXIr7e9EuIQauqN6ac8l2?= =?iso-8859-1?Q?ZjavxCKkJAQGyIlLZ0/F1Azti3726OnywwKyizSpwODP54/jm3MZWty91Q?= =?iso-8859-1?Q?nxyq7BmxLjAoLnzmO+8O+s8dskrfXjUT1jeSR+Rj+W+UrzbfXKG6fTHD0p?= =?iso-8859-1?Q?hwQlQL6TDkWrvLdmjiasiXXh5ieTryGYnmv0JQC+P2o7kW+/S4e8mfjKrT?= =?iso-8859-1?Q?MYQLKzXFOwmTC0+d+80VEmXcmOUSJxo8C+4QavzTYRtNxvohJqp6XNAPST?= =?iso-8859-1?Q?9BkJhiZvFCln1IUm7x4UcNBzIgz90/kCe3+WfYRhxOF1KoQdDCc7T4OZ+k?= =?iso-8859-1?Q?I01OIqc3ZMVnKIJfLb5CDxZ+1V+o/3Epn84AXC8PtGWp4ZlTMkq2HPpOp7?= =?iso-8859-1?Q?1uiEgEkp1/AT/sNuXzvK8f9BqQQWQhg1pOIZI0q/UYQflJ2uiDl2qTuniP?= =?iso-8859-1?Q?85fxsTNV52la/3jow/VKPqclxL9tmTlH9ldEfHMmVnh/UP/51x5SNmCW0C?= =?iso-8859-1?Q?8act8LtdKJtg+CRcv0gPxAfAGXozjqwWrQapOiFxc+RswlP9aPROXJQW2h?= =?iso-8859-1?Q?+b00uzPq+Ju+p5JAE4Yu+xn7hqFz9dMfIbcWOvHfYhe8R6rc9wia71jWSk?= =?iso-8859-1?Q?d5MN1ISjA2anjQtwyHTsZrDNFXI4N6dqsVqEwYQImrS4Q+xSPmliyhkwbV?= =?iso-8859-1?Q?oUiQaDkjwBph61DcY5scoMnUP7fbbbAbbAuJ4f5QF/Y6rKxQmIYMmdZAg7?= =?iso-8859-1?Q?3cPz7RLxwVu5IbvKDiAKMsxW01//BPCOCnLrsv39ppq6WACC8y/KKuw0p9?= =?iso-8859-1?Q?X4D5a9Kml8z/CooGnQVVFVTrq3Lp5V7pRAFC2bMGKm3E20k1qybsP99LOO?= =?iso-8859-1?Q?knjTuWRcav5GmO/p8VADNPPesegnNBqXGCoSP0M5FaAlcAsHAxvDmx2g?= =?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: A0Xr/xaOdou9Pnsa4jDHypS1oLSNllUtI7ErD0xOkuAFFu4l5P2IcYGz5SWTstDf76DJkGw63zljM4ONjX1ZSd/uAN6EMN/aVGuizbCo7zZWrlGWEqlhNFjlVbwMd0fqPaW1R67R/LCBt3TUHiu9f/k3hHlDbPE6yGLyIEcBjPkqPknhIfUry/gmmvHn/ne6heOgUHTbkIOmPQ/rauwiaJeakYoIRbJUMF7letaLOOztZbIsi+eE2gZsmO67jOlMpxo/G2Kz41C9Rk4duPPhe000JsqEKvXOJfCU8M+mw+W2P0EpTRyYWn4Ju2hu87YCk1FBO0JD3QV9MVpsfLmyCtMrE3uaKHNAeS6CrKUdK9gF/HxuTBg+sHDsIA4wutPQYntPb/8uCVKNcI9gl8Os78Qcv3vx+CUcHQVBDTnk21pBHh2jZ9zsda8xPWZjwvaTVOF+lQdUv+5AQeX6EDoZbBu1onlxfSiAnp18yfjAzb4tGYY+DykX6MTren4goouIyodkT2/faaX+CCMprLhx9afM/jjz0DV7uL54D1fSDZMSehwj2HlnL+cHV227N5d/De+5xttvIbvadHuNmtpQNub5Tf7Lxx0CLBOkpZ9UJeWG42SbufqOMDLBx4f4g1xb1RLsBCwl9C0YghRXlSff3gQtx0X4sF//kKRRcNUkXJUJcMpOhig3dxI7SiHpR/F4O2FPRhVRoE/QVm7n1TFyLEZfCCDeREk3rZZ0tuS5T13yxLBfzNgDjvwT+7f7yVqfelwhtXHzdkPRz+Gqx8x6Bb6dfTZSP90ZYTDXi6Ie0xTBWq3G68Q1Mjd49/JbfI2bOxi4GIGnn8Ib1ADRbWFdegMX6FAFE2jmeYZB0lWvWkQtNqV9SNKsUpErU1o4P1NAwG3eDLpE3RFVRx6St73Juw== 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: 012c78bd-1eda-415d-5a4a-08daef514ad1 X-MS-Exchange-CrossTenant-originalarrivaltime: 05 Jan 2023 19:15:59.9536 (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: Twul6XlGQUEUX8UNS8bx4XXWSA7XjdbiB96kpuNtdfeZ65OYNbcDzXVy9wosjjkCXCNA2xduZnfMUKoOjFQ/iw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR10MB6075 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.205,Aquarius:18.0.923,Hydra:6.0.545,FMLib:17.11.122.1 definitions=2023-01-05_10,2023-01-05_01,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 phishscore=0 adultscore=0 mlxscore=0 bulkscore=0 mlxlogscore=999 spamscore=0 malwarescore=0 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2212070000 definitions=main-2301050152 X-Proofpoint-GUID: Mdv2uLMEXro04nBYKkNeJdPwMBbLvRfb X-Proofpoint-ORIG-GUID: Mdv2uLMEXro04nBYKkNeJdPwMBbLvRfb 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 98c91a25d257..71474615b4ab 100644 --- a/include/linux/mm.h +++ b/include/linux/mm.h @@ -2830,22 +2830,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 4ee85b85806a..4115516f58dd 100644 --- a/mm/madvise.c +++ b/mm/madvise.c @@ -150,7 +150,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) { @@ -163,7 +163,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; } @@ -171,7 +171,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 6f41a30c24d5..171525b0c7a8 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 579d586e4e6a..8e7f4fc36960 100644 --- a/mm/mmap.c +++ b/mm/mmap.c @@ -1072,7 +1072,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, @@ -1081,7 +1081,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; @@ -1147,26 +1147,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 /* @@ -2286,12 +2271,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); @@ -2331,8 +2318,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; @@ -2347,46 +2336,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, @@ -2446,7 +2410,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 @@ -2467,7 +2431,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 @@ -2748,9 +2712,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 @@ -3297,7 +3262,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 7e6cb2165000..057b7e3e93bb 100644 --- a/mm/mprotect.c +++ b/mm/mprotect.c @@ -605,7 +605,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) { @@ -617,13 +617,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 4364daaf0e83..00845aec5441 100644 --- a/mm/mremap.c +++ b/mm/mremap.c @@ -1034,7 +1034,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 Tue Sep 16 05:49:14 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 4494DC3DA7A for ; Thu, 5 Jan 2023 19:19:54 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235604AbjAETT0 (ORCPT ); Thu, 5 Jan 2023 14:19:26 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:44602 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235532AbjAETRo (ORCPT ); Thu, 5 Jan 2023 14:17:44 -0500 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 74E1F395FC for ; Thu, 5 Jan 2023 11:16:31 -0800 (PST) Received: from pps.filterd (m0333520.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 305ISl8u001322; Thu, 5 Jan 2023 19:16: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=vxu9/GSp2gjISoQa/VWxjVS2svQdljAFFuFyxND5ieE=; b=0pDXVgG4829nnJZB9LgAh2mJ+R1/doBCBKwiCo8ahBqyTee/zA552ae+zFnrjdD2XRsp U+KN3wxzbytUvMrpCbyViki20ALG+H3REIaM91h8I+Rw+PpfDqIWyJ8h0StSrhL0TMIE vn/iGw1YnM5l5YUU7rJL/Rnl1s1lYV51vUYPqxJMh4LBm37UCpNCcmOtuiir97InergY LGRAR4bVjFBRzKl8iHbjPNk42WaIWzF9qP0fssE53ytNDnho9Yg7A4CAP807R896vek5 zn94DU2eCa/Y5eHk9mhOmAgEgkxXmpe6cM32ceImfGS452jAGRbXlP/XBCpFsgm5sOHD 3Q== Received: from iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta03.appoci.oracle.com [130.35.103.27]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3mtd4c9qw7-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 05 Jan 2023 19:16:10 +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 305HgaKZ033879; Thu, 5 Jan 2023 19:16:10 GMT Received: from nam10-mw2-obe.outbound.protection.outlook.com (mail-mw2nam10lp2107.outbound.protection.outlook.com [104.47.55.107]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 3mwdtsj1fk-5 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 05 Jan 2023 19:16:10 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=WJ/LK75PeU3TLuuLNbSS8Arz1CvxeOfUK6l3FIOoc7G0lD3KAdWX7Hw4/ckyFL0zVWT4/3lO4MWzLXCcwbCWwToDrSZK7GmXtgI2ImM6agyayBw8uiozjMZ+l0L/uCL+5GxJotU8iYeQuR/GhYOXqONAQPw6/phaF50VOc1r2dFs+Vzl+Da8qCWhw4b6l9ffLbb740NuZ3tP8ZTelnKyYZCeoFWdnAUVVyjxlLdRJlkdP+OSopTJkzpQVF//o9oIUiBhP/UE4Zq2Bc8r6Hx4K8Ct+M4lp3DSiiysb+81gQNM8cRHIZJFAl4nJsurEoLDdkPGBXsfJ0trpVlXxLuHZg== 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=vxu9/GSp2gjISoQa/VWxjVS2svQdljAFFuFyxND5ieE=; b=FuuvJLvXKBOta2sN7YfBxqxpf+qR8mr0la0KsCraF+/3PUtle4UR/qpyKvCAPl3Taf0T5f7zC0oT6rVCX0Rrtr596ePfXDRqRIcvWbQ8S0gv9+VfoDcYL+a75oma+5JdrHoZR2pLbsYCjgHQ6+aeEfVtVndkJEDZXAaWRReEVhJ7I+IrWv8olTixxIkF8Gc3vENVCLDoo/sD2/iP73DkkLIaJi4K2I0ir7NUdvZXM0Q/Mkhiix9OT5uFN6EudfkVY1xvOY8twj2jyD5055HuJ5ZfXCR97lDGTT1/cuBKj2tDpUzRD0FdHvplzD/QznEYhKsy+/IqD3sAQNCX5/7V4g== 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=vxu9/GSp2gjISoQa/VWxjVS2svQdljAFFuFyxND5ieE=; b=h0zPWCCzRZHmIX2joAsur3Jfx6T/AuCHMZkhrkav8OKXYj8NbC2dLM/WCoJs+zmfdG+FPhlSEWm6wn/QJSJZBaIy10NWvGFDRQ7liOoPKd+MZhuX/x6kKCheN6vElORAI+s7Dvyx0hfBnNMw8oUgCjZbQux3M49u0fSVT5zlX3o= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by IA1PR10MB6075.namprd10.prod.outlook.com (2603:10b6:208:3ad::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5944.19; Thu, 5 Jan 2023 19:16:05 +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.5944.019; Thu, 5 Jan 2023 19:16:05 +0000 From: Liam Howlett To: "maple-tree@lists.infradead.org" , "linux-mm@kvack.org" , "linux-kernel@vger.kernel.org" , Andrew Morton CC: Liam Howlett , SeongJae Park , "damon@lists.linux.dev" , kernel test robot Subject: [PATCH v2 26/44] mm/damon: Stop using vma_mas_store() for maple tree store Thread-Topic: [PATCH v2 26/44] mm/damon: Stop using vma_mas_store() for maple tree store Thread-Index: AQHZITolwyWRLkqcX0iP8U6GnafTZA== Date: Thu, 5 Jan 2023 19:16:00 +0000 Message-ID: <20230105191517.3099082-27-Liam.Howlett@oracle.com> References: <20230105191517.3099082-1-Liam.Howlett@oracle.com> In-Reply-To: <20230105191517.3099082-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_|IA1PR10MB6075:EE_ x-ms-office365-filtering-correlation-id: a55ed17c-b462-4ad1-df9c-08daef514b18 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: E/xNsrKXRZZV/v0bKBbrZ5W2g9HrFoqqi7GUxTd7ULkKK/OyARmWo7Ww2U9JzM09c9qOElf9CK62WIFCMZl1+Kv7AMIzXea0fGXUMqlKoYJleU0rZZIpXafnUVXZjgvB1gGvldgdSdUzJCtn3yvcMYsjBX2Q7kAEMu7Sycp2RCwOdIoOFH9JlztoPQHkDV67t7cYhTadZAg1Dv055vYdIhwFgaa7DHNd9iSxf/EFk/ObtP40BnaqUzmG2TTPoqApOEo58tAbrkuUlbFlftpf79k5WJw57PTz4050TZuQ4njn+YwHITOqVouqyMfZlBPOAbtxu/EfxqJOiAZ8aOoN09qTNOyxv2auj3FiFYWPZOJAOKBiikzCc0rK2KXiXzgKnPUVEGtHdU1B5n0LtKFdBJlhMq0Rhuj/dSsuSTWAXkWpvsz4lrk5VU5gl3uCNzF3ZztzM2nX7gIGSjwdrvFIhS6MUKa/fQ3TXTt22wqVMjuxdvczpm7Gcjzjl6jizHCu1cfS4dojDEHXxHw+qDB1X1wRhxfgJCfZObJpunHLX6kTUZ2vSDYSgotIkXAoUVMhKYUGvuI/+H5xBiXfYqH5hL5IUOrtn8YcAnW1KdNJPU13fMkrA1YAjNihNBuJoTvz9vKBnJU5xUrhMvFkqFVc5vCFf+o1zJD7GH60crlJ68t0k06N7b6CrdSJXm0TplWTCVYkcRiE06kJhc6gir8F1A== 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)(376002)(396003)(346002)(366004)(39860400002)(451199015)(38070700005)(122000001)(91956017)(86362001)(38100700002)(8936002)(4744005)(2906002)(71200400001)(83380400001)(316002)(66946007)(41300700001)(5660300002)(44832011)(64756008)(1076003)(66446008)(6666004)(4326008)(6506007)(186003)(2616005)(6512007)(66476007)(478600001)(8676002)(26005)(76116006)(66556008)(110136005)(6486002)(54906003)(36756003);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?Q?mau4lxzIiZVEw9i5YIxOv+IUv//rquaxsr3xy9UfEH2u093MQkHKny2Opm?= =?iso-8859-1?Q?t2MRe0RCA3ZOuKmunF9UXKTejoJShCEPhzwDPC031ZfeXOHJJdc2nVZw44?= =?iso-8859-1?Q?fiIG2W84y9PzcAM3P3hfzTNjWwAg/zmvuWD2s8NLriMlotalMaShvLKw7p?= =?iso-8859-1?Q?ZvP9+8tqrVGCSC0PusArEAx1r6GGOIqMymVuVG+KX1dzc3TBRrgAKcFv3F?= =?iso-8859-1?Q?b/GVpxTvJlrZF/izHu2E+mpHm6GTtRV/ixbWoz0KOjtRqR5bfM02GjaS6n?= =?iso-8859-1?Q?bPSyBZ/X9wFL+lVK9BiXpyctBY/EHW0XIYkWLPu6+o+ciiSJKZfFPoZQ5t?= =?iso-8859-1?Q?RivB0wZhQa9DlkADuAbFf53FBkWoztEkeCBFs3qu0Un2bhhlCcLnsMfzhx?= =?iso-8859-1?Q?PWXQFog491gG8ESpyEKUv5e4r7UTrFXcOHsLKS+j+qdmFNHrdxmztQMmj5?= =?iso-8859-1?Q?xIx6mKgwHNLDKxBm2MuQBhFveaeJl4HyEh+M+7vF7nRpqmpE/USG5ptymj?= =?iso-8859-1?Q?sIsTdKo1RzxcS8ctiuRLiGsTAkaYuVtsjZ/QMuGhnCZH9A8aB1OrBv3f0r?= =?iso-8859-1?Q?vwgIyAZMao466fhxCY/7C+tOQETtEmFaMS0Bkbdmz/bmQZygXCnpcUx9L2?= =?iso-8859-1?Q?Fp3Zu+ND4cWSiLsWvfsDvWqL27dgGFSUwL8EDJ8b5kU6Vr8rQXRxhiaV0D?= =?iso-8859-1?Q?3odUnJNJELODj7tdVy+sWNq7Boo1KOf47vI4ncNWk3X/wchzhUuphJVFQd?= =?iso-8859-1?Q?7NkT0cHd3bFNaUxb4QtsHxMMJBoY+4E4YS84Ud3pXoA/+aUxyT1/V7iINO?= =?iso-8859-1?Q?+LmfBX0rKQ87F8Bl1MTxuUhJyxY9BBiCV6qNg9i4m85oGtrn1ZRIh8YfED?= =?iso-8859-1?Q?C54TdlIYF6Sb1Mg5o81Aa158mbzBhcPJrw3mrPlEFFCfY6sS9zAbAQ8DQH?= =?iso-8859-1?Q?guErn3KW5D5Ou1pa+XL9Mefx9r+qEZ4BBmEXcfWpqrs4ErbXvgnUv9mOY7?= =?iso-8859-1?Q?bslGqoyzVNd3fuN84TdtOMX3CfAR42TLfOvAtS/HdNNQb3saGofg0Qape+?= =?iso-8859-1?Q?DuSx0U6r8nVkkpuYwDjFu3yRegd3nHz36VaawayZEsVLSwI92MCVETC/tm?= =?iso-8859-1?Q?F4VLuGHvaXJ0BqcolrnK30shuKGssCa7vqV/vlHWy8JAHr8I40jA4klrvy?= =?iso-8859-1?Q?kJjqmxgYD2LDlwO1S5Q6iAA9NZcNhdbL/+O1lV9Xg+sJSej81EWnKgN3BE?= =?iso-8859-1?Q?EYRp2kiSnMsGUmlJIliT1Tc01KZTwX1+iJFwxEXUmEj0c/hJfTjNtEBpBa?= =?iso-8859-1?Q?dkD9Acm9Kyk9WVgnPxgOECR2JEM34WYGMxlF+9PlJCTAac6jYiVrNXtauw?= =?iso-8859-1?Q?FED8H47F3ikzrj/Ujhe/HHRsR69dYKHOqLzEvpOg+MLdz3tHom95SPxGLa?= =?iso-8859-1?Q?rbQDbtHe1T/k0/8cxoZ2T2iC9yuk9SmsI79wiGaY3SKcXh9ae7yUzPjXns?= =?iso-8859-1?Q?W5RzhgShvRSByGn6WpVtxwKqKuqmp5ipWwiMkVTHN6y0LVUd3EvK3otcau?= =?iso-8859-1?Q?IF0RyJQCAzgIzdrJ3ApwWFP2EGx3QtslzBCpgYWVwyD7jA42mxGO/krRTZ?= =?iso-8859-1?Q?7622oZFqLHwHQY/OtIDFFFHwfPc7icVvGzO+BaYZIpUTxgM7KNPzl3fg?= =?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: =?iso-8859-1?Q?DVzOlMjzB0HP6c/rqTp0i1D81/k6tgJ1/AZ8YT9IvydiZqtd2kURkHB6ps?= =?iso-8859-1?Q?g1V7Ad2/Vx0RexQXi6lZ3lF1RIQQNz5bqpZ8vGhrtDpWJS3/KlT9XzLTcP?= =?iso-8859-1?Q?q9iFLXuY5r3sb5Q+Wfe+oRSoFEVG13u/nV3/I8NI6KvHW55qJg3pxbZyuq?= =?iso-8859-1?Q?OHTLhTgFR/+2V9uhfPOMWwq+WE7PhSj18MVvngE5z/Wj5GmsVhV/N3z/pj?= =?iso-8859-1?Q?/Su+j0OcmntTGyMbPAIwUEN/gKLV4c73QUhbxGmUZDLOOh0rJirUfyNOwt?= =?iso-8859-1?Q?/bzCC4yQ3Yi4ihKggqRW3nA2cST2MNTmVLYjiBe5VS8+pb9ygJTRubDDxF?= =?iso-8859-1?Q?jNw4KL01JN2dEBciwiT82wYRI6METXXQkrjZW6PSOxb5z2pZihfuJPGwgd?= =?iso-8859-1?Q?y40n+Y5LqSBfZh0GYY79k1Xp7wGdRl6H1ByFmGHlhq2ynVU4zHEuKT8hcY?= =?iso-8859-1?Q?DCN7f6aFKLFYTF5uxbDGTl9BFDKgCid3z2gvwgyolyKTlEQ7lVGesNmGYp?= =?iso-8859-1?Q?W1ZdcgjjeL77fASPStxRm5oNMtN87YmKRd2OlVc5mjf67LnR+nxFe1o6H8?= =?iso-8859-1?Q?TrZlt0oY9qovBMWCL9iLO6UcIr8Bn5akMSPu6FuR0ZYZs7u7MsSb7I1Po3?= =?iso-8859-1?Q?5f2TiYyVS+MIeBeZRSJy0ltjzXN9fwmOO1bVXurSuxKXVvWgTuLkvnpD+Y?= =?iso-8859-1?Q?hVdqy2iLt3SVQ+5gWKaSFljTUgh+icMXLjE00rD1JbYh6fC72xDradR6Yg?= =?iso-8859-1?Q?baZVK2i058dtut7L4X/H6jjbdUSC7QmcnY3U050coNdC/wMmntZqj4kJgn?= =?iso-8859-1?Q?LzgzvT7VTcD09+n0R8Zgi+Z4jf6tIX2JxIj27W5GMh5/urcg9BTcP7GfBb?= =?iso-8859-1?Q?FRN6oOLhg6jD6X1jwQ3AbeEUhFNVjl/w9Gzx6CYRrxolZeiDXYXkoHVi0/?= =?iso-8859-1?Q?SjgphFDnbN0By8RqTlbqPrMO6USXx3znuyQ7HqOETOR+20czNSVXw0SZOR?= =?iso-8859-1?Q?+28YIxCnQSw5vxGCU=3D?= 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: a55ed17c-b462-4ad1-df9c-08daef514b18 X-MS-Exchange-CrossTenant-originalarrivaltime: 05 Jan 2023 19:16:00.2817 (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: f6sUvcBRIcEj3Z05VWEP/3NpJ/NeAKHVm603Z+f/LFzjs2iNXVsIUazAkNpfS6H8stZHF5dVfNiZHPIAMA6DFg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR10MB6075 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.205,Aquarius:18.0.923,Hydra:6.0.545,FMLib:17.11.122.1 definitions=2023-01-05_10,2023-01-05_01,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 phishscore=0 adultscore=0 mlxscore=0 bulkscore=0 mlxlogscore=999 spamscore=0 malwarescore=0 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2212070000 definitions=main-2301050152 X-Proofpoint-GUID: Fm86oMk_UF-JFlvoRsy7BKLViUowZ0os X-Proofpoint-ORIG-GUID: Fm86oMk_UF-JFlvoRsy7BKLViUowZ0os Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" From: "Liam R. Howlett" Prepare for the removal of the vma_mas_store() function by open coding the maple tree store in this test code. Set the range of the maple state and call the store function directly. Cc: SeongJae Park Cc: damon@lists.linux.dev Reported-by: kernel test robot Signed-off-by: Liam R. Howlett Reviewed-by: SeongJae Park --- mm/damon/vaddr-test.h | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/mm/damon/vaddr-test.h b/mm/damon/vaddr-test.h index bce37c487540..41532f7355d0 100644 --- a/mm/damon/vaddr-test.h +++ b/mm/damon/vaddr-test.h @@ -24,8 +24,10 @@ static void __link_vmas(struct maple_tree *mt, struct vm= _area_struct *vmas, return; =20 mas_lock(&mas); - for (i =3D 0; i < nr_vmas; i++) - vma_mas_store(&vmas[i], &mas); + for (i =3D 0; i < nr_vmas; i++) { + mas_set_range(&mas, vmas[i].vm_start, vmas[i].vm_end - 1); + mas_store_gfp(&mas, &vmas[i], GFP_KERNEL); + } mas_unlock(&mas); } =20 --=20 2.35.1 From nobody Tue Sep 16 05:49:14 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 69642C54EBD for ; Thu, 5 Jan 2023 19:18:50 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235723AbjAETSa (ORCPT ); Thu, 5 Jan 2023 14:18:30 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:44524 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235425AbjAETQm (ORCPT ); Thu, 5 Jan 2023 14:16:42 -0500 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 367B211447 for ; Thu, 5 Jan 2023 11:16:21 -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 305IUNv6002764; Thu, 5 Jan 2023 19:16: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=AFwaB2DSHd9hyJwJhLeWD9VEJD+3datyV3oyw6c4BwE=; b=k+0NX6ugktCL4uKizfmj9dpaCRXMhm0PMbX/FYEdrZLODpqQCETJqb69CiXqcAVQi77e Ii/r1xEyfNPBKhV4PwGn1AbsKm7Sehv4b0LAteSe+esJePk5G/lJtEPZRovUCLLAy5Ez zpnVqjoMaMIwq7z2lRJbCw6LV0Gs5OJ3x2vwuQbpgmcvpwBg3ObZO34OUM6gtEavdHIi I1wshfPVlB7w9z/T5Fhws7gX/KIFzJ5hol7E8kM8q/PyetHzqaNLzTtAzj2mY9FT2NIH xTeIZJIgUlblzt0V+hj52xhVIQKgzFX0cRQSOaEqWcnPGsic4EQTFICZeGZB830NUa2N Tg== Received: from iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta03.appoci.oracle.com [130.35.103.27]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3mtbp11q0g-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 05 Jan 2023 19:16:12 +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 305HgaKb033879; Thu, 5 Jan 2023 19:16:10 GMT Received: from nam10-mw2-obe.outbound.protection.outlook.com (mail-mw2nam10lp2107.outbound.protection.outlook.com [104.47.55.107]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 3mwdtsj1fk-6 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 05 Jan 2023 19:16:10 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=IPSdj7faeXZC9NyMSwJVvlqk6MBye3mQoXb7psCcjmYMf/o34wGBuiwgAg/AqOsob791JV0nqBkO9KKd3aPvYh9kuY3iA7meQezy8Y7TBAAMvo/UnpQTrZk32B1mUyhimRXfPWXLXfHxFbx6CZ83xSGqx+eMqpSa9bVWd1mxYmXbHfgCT2CmsB6kRzCPL9+YHMqZnJr7iJzDwNV0OrGtkVilSaZOBvyupP3STLL9RqTc+pqTbe6Jtq8LyUwFGlcjjIEumvpmrNd/bA8UWBAOvkzGdBGGoSVDpWpf2ngrbqDk/iuPRYZ0KDVK/uVv250MIuRjzpigLO8FI2nSvZQNaA== 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=AFwaB2DSHd9hyJwJhLeWD9VEJD+3datyV3oyw6c4BwE=; b=NUObs1RCAJ3RcdUKG2YqoWsmAT8HVLVjsVU0zIy/O+gWOVmfKfyWAfrML1HwpL3VUEPJrLo3DqrwGNNlGuxyXLdpdwALnENcfghApfFmT0Iu/1VNSC1JFzwMFtSJ8KnCX/qxuhWW8nS+muO6H6EdnXqn7vTmvJKWtfDrrbGW87+rOB0gQleyVbe4Toh8EbOKvQtLa5xGOg2ohQIvl961OvVmkq/I/cKSbb95CB40aUkyc1oG1fSMauk/C8CUG8byPwviLkv1vuyLa025UWCiFOnpAbmFY9KEiHQqpo+tBwJ6ReoQF8JAxVpZovg1n0jelF+Bmu6OCJW9DLLgrDvFrg== 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=AFwaB2DSHd9hyJwJhLeWD9VEJD+3datyV3oyw6c4BwE=; b=io1Q/4J7KMpqaFQ9fspn0OEObYTdtr7ujRwBHW26ZGEGDVsj3gt7XLUTFJqJsB43LZqjUwR0PIrNzwtXumbqxS1yQccyL7WmDTZeTre3drHCHuBGnIx7WAqSJMHeUTUUXrdtAnPiAUziAovejgJhN8JX9Sz6AGjE76H28vdHdbY= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by IA1PR10MB6075.namprd10.prod.outlook.com (2603:10b6:208:3ad::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5944.19; Thu, 5 Jan 2023 19:16: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.5944.019; Thu, 5 Jan 2023 19:16: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 v2 27/44] mmap: Convert __vma_adjust() to use vma iterator Thread-Topic: [PATCH v2 27/44] mmap: Convert __vma_adjust() to use vma iterator Thread-Index: AQHZITolffX29a8LPka4e9WWOTvLyg== Date: Thu, 5 Jan 2023 19:16:00 +0000 Message-ID: <20230105191517.3099082-28-Liam.Howlett@oracle.com> References: <20230105191517.3099082-1-Liam.Howlett@oracle.com> In-Reply-To: <20230105191517.3099082-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_|IA1PR10MB6075:EE_ x-ms-office365-filtering-correlation-id: ed52e312-66cb-4257-64e8-08daef514b60 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: nOVfiD7n+dFzowCKpXk9mpKTOMSOfQp7VytZg2NRmv46uuxMCbtmjBQ15TyfFaCEHctfKPja1/hXSgKdeiDBdKKzWsRURQDZ7szqcAA7Das4ltHfZ2Ir1UP5R1YE9AUTmJF7WHK+cXULa72jDlkcWfT/SyUvViMtEgziPZg5biOCRdF6O/5TVgCoNokC9kSXAVHltYCLMj5kgtgK0lTST3ivxPnfvYVTMQaWFPhr0VYMa7MWRYDI35F1DthgQdZAp/Ch0KZrYU9IPG9M5nYVgTyic0t2azApD5tr12kGGuEXMSaOi+xLxzzqsV1KuKD01vX0ucHa2yGnL9rLfQZtoDs348zDAxPMYvref0HwOuM4SEw4eGb8lz0c68c0CLoxWz5HL/ggUPN7N7APq0+WVOM8OXfo6cS97NBO8rSHw304gzoTVgsf5iqbB6DR9bz9qgm01uHRjIHukI9iwdvV8L2CW6SzgZQb5wF/b0sG7M5A1Jd95oaX1XVy2ClQSn4aXM1Qjo5OcCIjlv304aaJhdUTJgSP9CAWwGDlM09O/HzewrMBGQDrIpm4+dWhZhkr9w3aHCQVJjY1tyfxHqFLjz24/Mt9QLnGC4hcUSTCCVsO7SfpdYIszq4AyY3hUsTl/NkpUglWSifqhzFBZWYq4EdHFMibpLjhlh8gUaFCZD31gYBgxfHWHeVVnANG+s05YwLeLcvAFSxYq7hKTC1gqw== 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)(376002)(396003)(346002)(366004)(39860400002)(451199015)(38070700005)(122000001)(91956017)(86362001)(38100700002)(8936002)(2906002)(71200400001)(83380400001)(316002)(66946007)(41300700001)(5660300002)(44832011)(64756008)(1076003)(66446008)(6666004)(4326008)(6506007)(107886003)(186003)(2616005)(6512007)(66476007)(478600001)(8676002)(26005)(76116006)(66556008)(110136005)(6486002)(54906003)(36756003);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?Q?68d3yzl9PpQgeC2Z8tLDqrU0M2+xFuzSwsc/xwbeBm2h7MHHV/dmtBiAq3?= =?iso-8859-1?Q?1olYaYreeAqvCdT3TMZz6bM4QsIXirwYVWDWBBl5zFuvJI2OD8yWXMAt9X?= =?iso-8859-1?Q?5OuSfChPQeIcKBc908KyRlRHLSuAn3bmwKlyjUv6MVCwr+s5EtcLwaJLXK?= =?iso-8859-1?Q?wntAQMCdfg92UlFDQa2iOUM/X3YWWJjIhkpNIEgDGKeR5Ml2SVVuHRN3im?= =?iso-8859-1?Q?jznjYLhDyOA0w0HJ9eiX5JUdEPrlBFX+MCdDm4v2YbKQkePffWcpsVSaCT?= =?iso-8859-1?Q?YtyfIEw0E5Z+0Npp6TyByjb5B6uoo35cSdRjKjoro8Fge4PcxCUiXt7ObH?= =?iso-8859-1?Q?R9WCIno29F2AeYnxU0MacsHKwcOtW4TYq+MCW96GqG2W2IygI2Fw7R0RJ4?= =?iso-8859-1?Q?a6njIQuon6YT9xMkaQi/C+hpJ7lRe2oFLLdSwzmsr35Jb4IlKc5h1O05yP?= =?iso-8859-1?Q?5PkY7ZEO/GNKmrz0/9Hmb5pvSTzvC8xDmONd+uRT0zzKCla20W+EfTOjqA?= =?iso-8859-1?Q?T7RPz+qB9lCkYLeJ1v8pipXE110V8URPa/Cs7hhACUNCVZg6+5PRi2my0Q?= =?iso-8859-1?Q?Culrm5NLOGp7JkM/rywCzToOJLE5wV+/A9avrAl0TMGe/0q7WDxiZ7eCqB?= =?iso-8859-1?Q?jdJVSZbsIXRu2s85hWfsvE55/tYQAUc1c1VCsBN11ywvxZ29Lon4hMbNoE?= =?iso-8859-1?Q?Mzz/F31IXrv7HBXMfvxeoeLpeOHDwNsW51lvF1LBDcCbdyCJ+/FEK8xmmF?= =?iso-8859-1?Q?Cg9ff5nx+EI1W/Av4VWNycE7tgX3VkoTM5xlrzJjXJ5CA0IogQObmhH2aF?= =?iso-8859-1?Q?JXP7GPDX+mtj/sdIpc5mkp06IMTb7ZLT9qVbqbR0hBGdRsvOVtbLLX4bj5?= =?iso-8859-1?Q?+PHJSN/hX6NlXal9q1ZwTZEE7Fc2sx8PedWo2hOZXwj6EoNXFoRIW6HvnZ?= =?iso-8859-1?Q?hZ4BC8S4Li1RH/mmIFOSQmoyI6qJgBXP0boCUOfPkKL0JtXJhLlo6lFiDW?= =?iso-8859-1?Q?7Uuk6a5TR8/EYOQ1tCgUHC89fRWH/qABe5f1EnLERMUXyYFqTwdDChmo8J?= =?iso-8859-1?Q?3tuiIatSRwWMSJFhi53ZalfyVvo3wZ7RPpmBkXshOz1jVGEr9GSEWUivgh?= =?iso-8859-1?Q?j5kGtor82qqyb2mTwA+rn4+00Bd7IIjysYMNBaaWqJ9BYslk1RDmN3GkTI?= =?iso-8859-1?Q?Tzz9GQ3lhT2TCt+j2DCyTM5n39spUHkaM+2+cWfvVtScDu4trBb6Vn3VLY?= =?iso-8859-1?Q?SSY/k1VnI2ojskludpgQCR5KBuOdIIrYgIkLrfRRkVzvz6rlw4ERnzN3Ut?= =?iso-8859-1?Q?3ULZ59aRb/I2dhVBD82YnC0MFmRwFxtOuDurVKmlaHpqyHK+A3qlircBbj?= =?iso-8859-1?Q?pKeNqe8yxzmUMhYVA3yGc+pYCjKgUnyDzBSzNkwbpFmUva+/BLALcNg5tI?= =?iso-8859-1?Q?8LuRxmbJvm8z+1tPI+01ECOQvNwg6ldF6v1+NbW5R9NtVAMnH4lr/UeDQh?= =?iso-8859-1?Q?2sKNz59YaW0jkZDw6dCUsn2WL541y6jqJLUf0Zwjn5vni3taz3d1mqVDQ8?= =?iso-8859-1?Q?khBBqN3jnHCZNmGSlFguNH7OEQFIMVxaA1C4K7e/FHMpjc1YreOB3YkbGP?= =?iso-8859-1?Q?i+ooLeuZis6xCRnc6/cqocoQcBBWS+o3EQ7lQHy3WWLmxwGQ5p9BZe1g?= =?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: L7e6JTEeHlMt8Al6ycnhZgrSimrttCUwnbRvkqqr4+qXiNF0C4IaDdP1kAKjuPSeA0aRqk6nVro8A4scqXS9V6Xh1TqrVQ58JNUD0xgm0D4TKSP4Ez7asaIkYQy0psLVIhZB2+XdLuxzQ90AJ+9dPcwLjZ65Q+eb+wDgl+Y8Bq5ZpjMC7ojTYEjsYz3h3jWhnUHJQdv5XMLdn348MyD4kAEHZUjV+3VMo54JFIRtGkQeswa/mT55PSj0yMOutf9Q3jd5Qu6wdyjLJMo5BSV+ROCxq8BPAcn78vdl/eg6b4sEPTK8iDrryweIqfuw3iI0+UbvRIJsEixvEno3xSX2W8ORuKNubn+Vu1scQJgn8iQ0lX9aftzf62XniWJRNOzuYXpzVb/TQrmioXiK6YChfsZSQ7uWHq+Vrl5M/mQGrjf9Te1BMJ6pxWUojDZ4evN3GzNrDtDeBQMEN5vmq3vElxgq6pZbMhfluI9vbHaoFF81NDmI3wts42kcm/mVV55P39hr0J9gxt6CHFGIdhhZYTsx/rDkcgw/s/vX+F63ksPEVMiRpwyx35GDctOqSSzEhfAddpdO9j7dneNOEKCynpTLKb3BZIYAqnrepJWEQZm/VLUiVJfK1vSMUPl+TL0nwNkP2gSLfwn5Vf6h6b46yXsh4PaJjespaen0p85WFSYOy9JyNHPkc5a8LVQN0WzErp2Qg315hxUg3KmWkms7d3X1WQxg1v2bWABviicG/s7g0C1E263DWA7ZnD8oFDQOahOP32h0DiygTptROrmMFe13exTGUU/s95qw+Gk3KZEGGfvwCBwovq4ZvZ7z5v/k5RhhAiAetcxvmSqPlZdEoAejQTXRmDUcXc+vEnBbSMgJR7AxrqGyCwPSs0S0WivjBZzdlrqSJHSqP8a+FoKTTw== 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: ed52e312-66cb-4257-64e8-08daef514b60 X-MS-Exchange-CrossTenant-originalarrivaltime: 05 Jan 2023 19:16:01.0472 (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: Oa2JidCMWZIrsDpevGFOOHv7RG605WgbRBvnYaW8juVJ2v4JM+r0y+X5pSln6ixsw9yRj5o5Jj881ZQV4Njw8w== X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR10MB6075 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.205,Aquarius:18.0.923,Hydra:6.0.545,FMLib:17.11.122.1 definitions=2023-01-05_10,2023-01-05_01,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 phishscore=0 adultscore=0 mlxscore=0 bulkscore=0 mlxlogscore=999 spamscore=0 malwarescore=0 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2212070000 definitions=main-2301050152 X-Proofpoint-GUID: G5dIbouGRn5U-RuP35IOm6lqqCvkakxk X-Proofpoint-ORIG-GUID: G5dIbouGRn5U-RuP35IOm6lqqCvkakxk 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 71474615b4ab..28973a3941a4 100644 --- a/include/linux/mm.h +++ b/include/linux/mm.h @@ -2847,9 +2847,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 8e7f4fc36960..a898ae2a57d5 100644 --- a/mm/mmap.c +++ b/mm/mmap.c @@ -494,56 +494,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. - * - * @mas: The maple tree ma_state - * @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); @@ -703,7 +653,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) { @@ -788,7 +738,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); @@ -834,7 +784,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; @@ -844,8 +794,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); } @@ -856,13 +806,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) { @@ -882,8 +832,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 @@ -929,7 +878,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; @@ -2057,7 +2006,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 @@ -2139,7 +2089,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 Tue Sep 16 05:49:14 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 58964C4708E for ; Thu, 5 Jan 2023 19:18:50 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235704AbjAETS1 (ORCPT ); Thu, 5 Jan 2023 14:18:27 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:43888 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235394AbjAETQh (ORCPT ); Thu, 5 Jan 2023 14:16:37 -0500 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id BE340F00C for ; Thu, 5 Jan 2023 11:16:20 -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 305IT0gm017286; Thu, 5 Jan 2023 19:16: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=t1VE+uP0jqC3jOm7XpSKuCal+vp1A9FT1kzszqwq+lA=; b=3IyfxdvICNGw0MOANOY6drWtKh+zEhc12aSodEu1uE+4OGf3/eVJGIRErgoY3pwyd6Ud JHhva+pHmZxsxe/ORcdBiWeWzGkidAlueZbkHbIvl2YHMW1mZNV+o/c4dgCD2AEMhI8r 2yYXTi8dvkcbqp74ne/fVFk5GIUJ9QuY7qq4OwvdZGl8Z/6GxEZWbkOcnlZFNDXiPYDV hGz08neTKRT49b0SNMcMH9pfarqbCu/HXSUjRPrSPtzJ4hnR3OrcbboE9uTALI6M8rtj EfvdCvWAyRdwvcUKGNPdCiPNkh73R2furGbdMN1rIlM94LhHGDwpMi69BiDZt1E3Ir62 SQ== Received: from iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta03.appoci.oracle.com [130.35.103.27]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3mtbv31nsp-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 05 Jan 2023 19:16:11 +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 305HgaKc033879; Thu, 5 Jan 2023 19:16:11 GMT Received: from nam10-mw2-obe.outbound.protection.outlook.com (mail-mw2nam10lp2107.outbound.protection.outlook.com [104.47.55.107]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 3mwdtsj1fk-7 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 05 Jan 2023 19:16:11 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=KPnpavZrNiZzmYaqDOhIzDTSWMqwfRy7Yd95g+zjfpJQch3p4/u8kqatA31xHMhzJrZzuWAetKrD7FckDZCKLwzXr2MuecCUOg4QyaHbFAxpBeIUG1itx/wVCzBvetstmno3uScQy4h9ptPno3wHe/ofng/+l61O/hWovr58Y56m5U70BpUnFMQw1/pPFG2l3srOw/nCIStuGqLjm3mx9GpXhdEmnIgv0tKg6bXFNkjqAwdtbgfyC3NQiGt+zXEJqHcN7bOHhcz3ad22edcNbR6OaZbFs4zb/wH54ykb8DhvGajzVkP0bSqF/vU+huf2yftq1bdNSCKlgs2W1FIocw== 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=t1VE+uP0jqC3jOm7XpSKuCal+vp1A9FT1kzszqwq+lA=; b=NpCaJFKrl1mjNblsy9sfr6wZv7KRpvNuqrniexAdaSESTDDCWrXGuq81eas38utj8z/QJk5Z132nTZFUnQ75hbJWazX+5LnFsLl1WEFBGPRP/eoXAs45ryrp0g0IgGTSWRTHOvnKDjaHgAbcfSgX5Jwu6rLj07jhcJ76vmuAocbqAAI332xY59yL/MyBKBzVPomju9xOKf+8Cc5SCdpELg02l32KjdoN4GRA60V/fIEcurfd6GWWgy0lN4/yOLo4uam1VS9nWCHvL4LklOd3kmsVbXYoI0mXsW5dwmzyutpQY7Mo1RwaIaEr9Apq0v7mOuVEtwhPTlR1vjGK9IGwXw== 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=t1VE+uP0jqC3jOm7XpSKuCal+vp1A9FT1kzszqwq+lA=; b=UNrgVQ5t+xXl5Ot9SUcza+KrDqW1cvGeNI2DZGNNbjCMcSazFhPJptgNSF4FFyNz45S9pF55LI6pfz30aW6NFEkUDEET6aYLSTD/tHP6JaVoBxkMRTKot4e1RMLb4QwjGzpNypDMr1ZjrUrqaPtsmx2qpLgVr+5gTXn8HLSlTKE= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by IA1PR10MB6075.namprd10.prod.outlook.com (2603:10b6:208:3ad::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5944.19; Thu, 5 Jan 2023 19:16: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.5944.019; Thu, 5 Jan 2023 19:16: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 v2 28/44] mm: Pass through vma iterator to __vma_adjust() Thread-Topic: [PATCH v2 28/44] mm: Pass through vma iterator to __vma_adjust() Thread-Index: AQHZITolvrlluW5nEEKNn1b7D+IWCQ== Date: Thu, 5 Jan 2023 19:16:01 +0000 Message-ID: <20230105191517.3099082-29-Liam.Howlett@oracle.com> References: <20230105191517.3099082-1-Liam.Howlett@oracle.com> In-Reply-To: <20230105191517.3099082-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_|IA1PR10MB6075:EE_ x-ms-office365-filtering-correlation-id: 99e0722f-ade7-46c5-fea8-08daef514b9b x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: OxtACwZf9DxZ0tqzD3OEDvnoMm63kHCA398KLcZcRkAesbG2o9R4Dz4NNuAm/NJYjN993yVHM5fyXY3A0XrBLuYFfF7FfamA8vJt6LO3AMfU0OqeyYTo5Tn1SsGoHhZEHSyeOSe3yXvK32nfWZtP3UtT9YjTYzVC9R+q9Ip7VKKZNxb0R3uMjgH6E9gb/I+dZEDXoITKJHTNdP9oNhgDrBc6ZkZWYfSHVgrKTqjCwRdFFLENadH1JcdfRhkd39xXUfoutWnJw5gCU+2+HGQKzpjyy8oz/RQ0WJ4FV1v7nkZi68pDFOyvw3dTTrQgh62WYhIBV1IB8Ir7Ovl4qmQJebSlFd8wA/OG3Ye3MzZOWP/6JFIXpAmoHvgO+8PWJNtRv5GYzD4Nd/OpbBkijg2GF2KrvwP/Xckk4iflCgSzHhwB0+sZ4DgwC9YIcw5kHEH53i93Z8S+fb/2qj0qIKbsXickKgfWB3DWGiFaTlBVhJ7kpi9mopczy5clcEb6LC48JXmybevPRJ00QXcCv2DewLLHKr3/SQbOreyu6WXRq2HJE5bVbCbl/vrnrK7Bccf3N9p1nS22PdEekoZ4hvDzeE+Y+5zZpic0W+a+mubPkUod9tj5PjD8/7IootIzTq8SKID4dLIdZH27wVsgxaMJ+6eoxp/xkedZcXlkj4xk7TGO9W8V2nF+D/GCOHpVAa76qtWY1xbIs1rxnkxdXBZtPA== 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)(376002)(396003)(346002)(366004)(39860400002)(451199015)(38070700005)(122000001)(91956017)(86362001)(38100700002)(8936002)(2906002)(71200400001)(83380400001)(316002)(66946007)(41300700001)(5660300002)(44832011)(64756008)(1076003)(66446008)(6666004)(4326008)(6506007)(107886003)(186003)(2616005)(6512007)(66476007)(478600001)(8676002)(26005)(76116006)(66556008)(110136005)(6486002)(54906003)(36756003);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?Q?hsFKI+6x3AWw85kCJ3s/qJhviJS31gqszTinpvuFJ2xge+tP4Mc10zwoNz?= =?iso-8859-1?Q?dRqOGTYyHbQAIrMBGKGsTWxFwjZELHTY/0EaWDmfEsSc2hwHJs6htmIs0l?= =?iso-8859-1?Q?MJgyIfOjg54LM6MXSmjEwlNHZzKNk2FwxoRlp1CmFa06wYX9HMu1YuZF4k?= =?iso-8859-1?Q?L7DJkX4/xO/W8u1AgmrmKsKQTtTHWe5Wj/CGKufsqKsqSZqoX18t+jS5Yo?= =?iso-8859-1?Q?gIrHKUejq5WiBFR/Zj44UvXdL7mS1zsGMxNUSUbnTkeHbVI0Z3EZ673uSM?= =?iso-8859-1?Q?bcqUMfzDYqHc9ASjm1ccK6eDx6/o/dg1al4Cf8kxxLS7Ql5/xmI0WKKFf/?= =?iso-8859-1?Q?A1iY7aDDjZpcjrcm2ovD8qKROpuKMYEfMAoVX53sbPuZ1CUbKVv9CH0/yP?= =?iso-8859-1?Q?CKEocBkC219OeN+9a1/E1n3cThV/dUnfrw5fwGjrRj6bK0EzgUiJkROov5?= =?iso-8859-1?Q?wzsus8Vb3rBMxX6mHClpBeqxXsgLFpPWSEpG9rtQD55LW6HMNy6pBe66nK?= =?iso-8859-1?Q?VaSsnZ//4ayqUnLYvDlqFJBpw8iDDM0k9bQSu/nduQgg7yFlLgonay/wdU?= =?iso-8859-1?Q?wCG8Pvg6A/1ClPNGn6ejc2f1LHEL6apNyJDNK+c9haFGVEwY42zqi5A8Lz?= =?iso-8859-1?Q?/HU1SLghumw2oT0cPFjWbAJnnSbD2JEpTOBOrR/3Sid0D1lNDAq0z+06XN?= =?iso-8859-1?Q?ktyU3asi8zmMdMztvSdPYA3JWbiK0YGP9Bth8HszykkwDvU35MN83JMyAC?= =?iso-8859-1?Q?exlIX8mKknot0G45D1ACVQeDyEzcDAQQU6/qwY8FJU7bGZtPxDgh5EjS3o?= =?iso-8859-1?Q?9+3H4FCUz+Vb+PkmaVW5fW0hfG2AYCLUzlBuURHXxIUWXSL25u906oD1dX?= =?iso-8859-1?Q?RLF43aTmOHFfoTjbj1/R/3knX1wPfWSmNYV59FPAAw54Gdf0Qt8pM8hCFg?= =?iso-8859-1?Q?rgDW+AZcurhddNmn0JLlEJSPfnT+LCKfr6FVtRpK6CP4/NS5cMYFNpk8A2?= =?iso-8859-1?Q?sBjs7ZCVP93XbxHmrgT/echD9bxN949L1VqlWmy2Iaomh2UA+RuZOiU8/Z?= =?iso-8859-1?Q?TRvZkY5WI3QSw0SZLLTuShSrRr6bPRRrJOGZhsmCWr8uBMrxhqrt+truKH?= =?iso-8859-1?Q?Ir4wRcCzIU7EdE19JOm/+TCPX+5hRSey59cTZ26ztf/yHFOT4TstQFtihO?= =?iso-8859-1?Q?jsIQUjtjkf8GruYcoZOHiBGPhEPyV/L44G7CA1+vJQ+qMqLfozhSUHcfQe?= =?iso-8859-1?Q?wV8IPZdEAdAXFR5C18S1ZpybidId00Kg+8l0UXP/5SUsKfY45AC2Kj2b2G?= =?iso-8859-1?Q?NlnhYiLPD42Hv2V4U0C7PZ0eikMvetOv7uwnTum2GG0Tm+eifTogPvRvUz?= =?iso-8859-1?Q?k0DfekQAANzYJuAhh4a+86q7izMLJ28/rq3JpYebG+VJYcGbQi2esRjuyu?= =?iso-8859-1?Q?lJUzL/WKKp8FCvgUme9M+Cd0HowdThJnAFbpLDqpRQh8T/491urQPH2yXW?= =?iso-8859-1?Q?EFEL0VZ4rZ8AJks6+8LPbmgZaAUYd2irCnUV3gzaAFXVbh6LOLHhFtM6oN?= =?iso-8859-1?Q?ml97Uy6RjbCBYFxnoRvJkkxp2kywZzwnZ13l96oV+Osmxv3Qcibk+Cw72Z?= =?iso-8859-1?Q?qlVLAdhXzfsXR9/yfLJe7drwNB8aAjLe+qjvLcx5SaDl4dLnGO7dEjhg?= =?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: bhVWzYVXySCAD72upex1tMIOkKeIgpkAIXXAwAeGDAdGn0cl3Ne2ajNUsKG74cv6TJ6GQTALHq2w4kYvFlqIX1k6lTKE5WqA8IpbcBbricAkQyhTvRx7iPkl3Az4mznd6OM6OsCuJEAcyUTTPGIrSsAJbMEESIPnVbT3ib6TiV/e1INkZbvhWiDqYvm3HERfcpCgZjwdQLR+4QHEBXaXT8lN318Yz9k2Ca+a0vrUK7JaeaclGCOGdM4ITa1L6iW+oFHqQ2vHOrHL3lo78Rj+GwZIl3jIrQPGm0BisIOiMRFIyI70cqAfsEV9jPXv7GR01xhhjs6HHW2FxroNMurJTIRJH77MtaHmWR030iso+2hcUhmolgWYd5akQOuLkae3/w9jEwBU1kQ9C5TkdsJzYneKoikQnGNo3bIBTevb4Tx6kneTtJGTRwSTW98jlQREa+dQLEdmO2nW51oyA7pknPB7XKCFvy/vkW7MMu9U2Vvq4mzUGoRtOEA1n1/K5ZIdIIrnVnb7nq6Gp8Sl1EO2XGlOTS2Q4tbeUAZFmUJ3Pj9yQD01HnTH01IHT30p6C3XLbIdAntCfO5taLrLLabRMnVXMNkOVAHJqYbThwQUdJ/4Oh3zHVxJoJeXQNPCyCHrUgB90KpM/zk+hQs+6h7iXe9PBQKcFAuEBYNQF5+Xn4fFoVutb1MEepEs5dZZtQppBWmmPTCbIpzP4w3223cel15jJFYefsJTsciA2ZYZbaFgo4QsS+Usk6z6btSpL63pVwMJ/mOJQVYruF+X1uNWpoqJPA9tzW2Z3orGPxMmqkRHuSS0AkwkuUk5gtbgtE3cCR+LLV9aSEytEZm8PE+WPxJk+4RYp100z3jO0JDZhI3Ly+DwcOu7LDilGqKt+UjJ1PYevQZ3QePfwom+gFOq6Q== 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: 99e0722f-ade7-46c5-fea8-08daef514b9b X-MS-Exchange-CrossTenant-originalarrivaltime: 05 Jan 2023 19:16:01.3285 (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: IAaU7VSqZdVaqlLOKef0KZlyDpourmWmMhkCDY/Tmqy6M0KKtyO+0JzCNe6EWh01EV1RdkTeX+yIP0y+KIU6bw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR10MB6075 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.205,Aquarius:18.0.923,Hydra:6.0.545,FMLib:17.11.122.1 definitions=2023-01-05_10,2023-01-05_01,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 phishscore=0 adultscore=0 mlxscore=0 bulkscore=0 mlxlogscore=999 spamscore=0 malwarescore=0 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2212070000 definitions=main-2301050152 X-Proofpoint-GUID: ODxzG7vlXyD87ivXvSY04y1hW1qs06-y X-Proofpoint-ORIG-GUID: ODxzG7vlXyD87ivXvSY04y1hW1qs06-y 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 28973a3941a4..294894969cd9 100644 --- a/include/linux/mm.h +++ b/include/linux/mm.h @@ -2822,13 +2822,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 a898ae2a57d5..a4e564163334 100644 --- a/mm/mmap.c +++ b/mm/mmap.c @@ -638,9 +638,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 */ @@ -653,7 +653,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) { @@ -738,7 +737,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); @@ -784,7 +783,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; @@ -794,8 +793,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); } @@ -806,13 +805,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) { @@ -832,7 +831,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 @@ -878,7 +877,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; @@ -1072,20 +1071,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 Tue Sep 16 05:49:14 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 2EDC5C3DA7A for ; Thu, 5 Jan 2023 19:18:50 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235672AbjAETSU (ORCPT ); Thu, 5 Jan 2023 14:18:20 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:44432 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235353AbjAETQg (ORCPT ); Thu, 5 Jan 2023 14:16:36 -0500 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 1F300F594 for ; Thu, 5 Jan 2023 11:16:20 -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 305IT3O4020928; Thu, 5 Jan 2023 19:16:14 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=GDIZnvT3c4nLUKTNTDe4tm/qdLfWeMn6rJBcSK7ia88=; b=xhRdThz+SIf0yKtCS8UhDwhpxu3azY93ZFTp452RTOacoVgwtba/uJSb3U8Sn5BDhiPW qAXH58CpJD3wpGGOHPSgxYo4z79nJobjuOl38Al/v3xsmZ7ZOxdyDhZrpYOVgUyQQv97 hJSoHdNUHnpaJ9zjPAspANt20UyltYkn/pPFTm4KA6bKjrrGQ45Qt2f4N8ilBATkLJu5 GcIyh9l8ODjPfjxdx67OeTun4dn9ewI9VNTV52qhCfbtuB/eIbRytNks8HfxdhD+cna7 ZrOZuKYE52KYUa6CBwOz9mYWtfxn+OocQ+zsTW7OeIuwdLoofIEpg5Mwb+bBNHZTT5bd 4Q== Received: from phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta03.appoci.oracle.com [138.1.37.129]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3mtbgqsn9h-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 05 Jan 2023 19:16:14 +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 305I086G033684; Thu, 5 Jan 2023 19:16:13 GMT Received: from nam10-mw2-obe.outbound.protection.outlook.com (mail-mw2nam10lp2109.outbound.protection.outlook.com [104.47.55.109]) by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 3mwxkf7tkx-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 05 Jan 2023 19:16:13 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=TADdO3DosElFvo+KQ+cLaexMSr5Gc4XCdnKkoHh7hcxa7NIK6GdGE/U09fttkEFS3ARjzwhpNg7IDrBRlz55UWUqVL6qNjttdRvRUuRLjeLQWk5BDcJ1JsQqhOY/YS0y0uO0aVg+Fr8LJoUSZympWM20GPXKja5MrbP5fdr6V75M3gjZ/Y7KRy6088m6KdGvuO8F/f7HCY/+jYVgILB+AFN9D9pyzHxF2hVVGK7yOJIwctbgochAArzSH++Plct0TMascqIKCB+ymTRBu8daiG4m5XwUoYsh3MheyZLeIqUttgO2VKdnizgZK7ySj26K0s+CMXAuQy4yTXK9lHpJ7g== 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=GDIZnvT3c4nLUKTNTDe4tm/qdLfWeMn6rJBcSK7ia88=; b=OJvV40XqsYb3q6x1jtu9NaB9N0idljX4j1ktBeeCgVEVwNxBzDhfqA5L3EaF34CpYeCWHnEnoX9raYL+1lHe5vdXb01Dgr7DNF84UwJBqw1wh930b7c8Cy1a9ON1geOAAtdh+tCavBxGAFDAAAwkZdyQnICqF+cbeyDT12xbvO7DbacXZJCpJUgK1oNtDH0AqKOGDDCnlIjblgkwrxxUmf37fXT9y9sEF/a0Tf8T/2IXmUQ3MAGbtF/9nHMKeKQ9FMCqznsGqgr//fEwIHUeGKi86umPsWPC7RurYeAWf1C3uPQ+Lv+gcmJEA4AAibcDKh5/NMLF/8KLBUw3coQCdQ== 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=GDIZnvT3c4nLUKTNTDe4tm/qdLfWeMn6rJBcSK7ia88=; b=iHntBl/6e5aVkukz7+gjW0veIcWg3m0PKEEPjnOK0Und8jdPfTwuaAYZPVzITz5wEuCSUYTraGHONBJEq5AapgLb+6ZDe7tCNyTmnO9REleTVuxX3DgfNi3N0gde0aLRrOiFCQNT7YDZGhZ7gojfbo4WWTz6hJYEa7j/ghh9YAU= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by IA1PR10MB6075.namprd10.prod.outlook.com (2603:10b6:208:3ad::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5944.19; Thu, 5 Jan 2023 19:16:07 +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.5944.019; Thu, 5 Jan 2023 19:16:07 +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 v2 29/44] madvise: Use split_vma() instead of __split_vma() Thread-Topic: [PATCH v2 29/44] madvise: Use split_vma() instead of __split_vma() Thread-Index: AQHZITomYB/L2halsEKSYLbGEKNNRg== Date: Thu, 5 Jan 2023 19:16:01 +0000 Message-ID: <20230105191517.3099082-30-Liam.Howlett@oracle.com> References: <20230105191517.3099082-1-Liam.Howlett@oracle.com> In-Reply-To: <20230105191517.3099082-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_|IA1PR10MB6075:EE_ x-ms-office365-filtering-correlation-id: b3fcbd74-24d3-4522-489a-08daef514be8 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: +1N8l6XtMQFGdoLtz9RavTs5zARoMGaLFAPPf5L2ZtK2PE6/hpL7RBXu8VdEScb3fjJ4Vu0+f/BFdYCF0Wki6vBYPIBvxf/7bwFRn07XDM71EN5dvIH1LkHKiWkEmgMF3C5blPauzWcNVTb/q4y25w9d5yXnTY4tQ/mZZ+0FVZ4XEhT+gbc0fZ1f5Y0CXRQyBAD3hq+TkYwFSDRcCW+EABBRNdRdTILfTS4+XhsrdgQ6l9SREwHWA8+9V1MFksLMWH0d4bZJa8PgpIoYX5D4+gxL8h6+WuRJe/r87veLcT4rnelG8TNj5gq4WyhoAsyvKjySZlpHllT7X9d+npK/tUN90AgcHdOqNuu1YSobW4D+EYhYyrk+ygevumFGZQL71FQv45S0mSP3PiWDgc6GiCEeEpyvHSAR4zN2k5W/yJfAUKG1x9W2vju+Jyg9boCMWKv/w0YqKNtkyFP4KhsUklYY/FSzlVNgOhOXtRIw+erCoFsXumxLbAyJIjyoccbO0IYAB8x6jqcI3Ia+WGcqMgMloWB5BgDYqAz0SzWnmOwktNXH44+NP4Uxj6pSKDxxv2NEw2vtwxs8o9SuL2D4PEMyfZGkDApwVQ8uzGkLHyYW8dBQ8xqdMF0U6JUiM1KGhO1bRlHL29OlAI26aPHzpk3UG/xBS2qfdBTpgMDjBrl23Nr8j55Z6ALsRd+J0yrMZ3kRSdBsaYASmRy0scbxMQ== 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)(376002)(396003)(346002)(366004)(39860400002)(451199015)(38070700005)(122000001)(91956017)(86362001)(38100700002)(8936002)(4744005)(2906002)(71200400001)(83380400001)(316002)(66946007)(41300700001)(5660300002)(44832011)(64756008)(1076003)(66446008)(6666004)(4326008)(6506007)(107886003)(186003)(2616005)(6512007)(66476007)(478600001)(8676002)(26005)(76116006)(66556008)(110136005)(6486002)(54906003)(36756003);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?Q?dNKp7y7lc4yORc1MRzXAvsOJeXJeEjSWCtd2rnKLvJis+VxeuihnXalpB1?= =?iso-8859-1?Q?gYozpKixf25wjiOsoUoQRm/ZWRLV+KdGSkNbbhv1d9mR64G2XhnP1oQ+MH?= =?iso-8859-1?Q?F6Y6GW136Tr2rDyFv3us6jHYCs+GvjoiTJ4LobY16S37OJ4ILZL6oBCKjB?= =?iso-8859-1?Q?tPJzyBL6O3eITC9okfIpqjGyK9amcJS0zggOYhNJK6BYb1mP4Q366U2Eta?= =?iso-8859-1?Q?41y/cmWQ65Zqoc06wxEMTgiInShO94fi/wXTnxOvdu3kMuxI4c7GeuL+qb?= =?iso-8859-1?Q?wqaYjQuIya659lsDTZ7Jr27xfPFJ4LmMeBeNZRZZ8uADI3l1PSKsl5pMEp?= =?iso-8859-1?Q?A2KC52YhxVz2q0bniOtkvtyPL0g15FMFNargpoEQuVZ4O3MzQhHxjLDVeJ?= =?iso-8859-1?Q?tyKSuxuiR99kHLrdyq1XVX4VDN/G0ZmE+aRFXyZ4PFbKPq2rov5Pi7rlFE?= =?iso-8859-1?Q?BU6DLIGvbKLSZKbMEJOnqDIpJBlORqQDHfhhmNcHAWUgLrOVWFllEQQxYt?= =?iso-8859-1?Q?9jXrWRo3zfoSWeFzsV6XLGWPMiljl9npnb5qqaGf2W1RA+SJU1FJz+hhwT?= =?iso-8859-1?Q?ZRm54xo5ulH+tKPfpE8BRChO+e5U/ejNGmTEpWhCuvJyp07gqZw80tsPDI?= =?iso-8859-1?Q?IW+1ZgV8JT4CUmPaFdBdpe2gL/W71Gu0w7n3a75qusUiH8TBrEi3Ya9lxn?= =?iso-8859-1?Q?7HOElAc4b+f/dB+tDWE54XD3sQlBXvq77VeqxM1WoAwpRWXQmnTTuW+SYj?= =?iso-8859-1?Q?pyzy4uu6TMzOg/hR+AAxn+T6ciXbvCgcw2tGRncSuW7srDDuUO4uDaFZqh?= =?iso-8859-1?Q?TDfju/RtPnEWtFmoWu/BEV6qRi7eHfcyknNPnDSkyG5WImh8CyDDeJ9TdW?= =?iso-8859-1?Q?K/XKpwZx8X5vHwCBs4f5wK06sFBnqVXceLa/YS3rO261Diq9p9wYf9xXkw?= =?iso-8859-1?Q?NutJO6AWD4Y+2xqCgjLbh20zN8iJmFMUgx+taYsxKwLtX0yy35ZOvzQbS7?= =?iso-8859-1?Q?6ie894mPqdm47o5Zd++uLq3slAi011L1TJyy//JXQts6lcHoahuoF9otWH?= =?iso-8859-1?Q?DOsWewz3t1oltYLnyw4rwz8koDXegs5ljMx4Qj4bXbB8yqSpreWDZSx47+?= =?iso-8859-1?Q?F3saCvy6CdfbOVyOStIKX5a+QNklDmieWLeyg+16OWJZzOk8F45UpbCnUb?= =?iso-8859-1?Q?xbFqtnp5813idKTDzs0L4bdvfGEL4W+ifSXudg9Xm7gGedVbTx88jLiDUu?= =?iso-8859-1?Q?R2t15BUCsxvQEN+Up/7Nh9TEXvCwxTtowPiDSOeRgY0JrLmk5UtOwF3cJD?= =?iso-8859-1?Q?MjXlM1KWmwvA1/ltuNf+G7/sfsRT5wjWHNvmk3tXnq9b/61AkYBziqKEMW?= =?iso-8859-1?Q?t30nrG8rPcaR2QOGLUnyMiBZ28HTdTiNe3+tafvgyQn+aQUtQU8tpYDwLl?= =?iso-8859-1?Q?2x/6W9ZoSxp2+4f/Rm923N/TwxxXsW7JbtwJTOjuC9bsug44HzJfdTRjH0?= =?iso-8859-1?Q?UbD3RtS3LlPwZjaUqolzwuj0uDC++wBjC9UugHQWfYHkmoj/jW186BYa6i?= =?iso-8859-1?Q?cy2s9Y4dJiWq3wZR4T5eNGWgJaiucIZ6cz5LGvrEWcMQzB2xrCSTbMbXCS?= =?iso-8859-1?Q?e6owGhoSE06cXwaYox3B3PC818PhTx0P3h9ln0ImDc0bgu4zv+0DkSAg?= =?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: Gh6swMN1h0d6/lTEo085SVZPaL0vgTQw/EucL5fF6vcvcgjd/m7Zy0RWe6T571fEn7Aocv9ynT2/rp3P4fNng4pxYI1dweHH88pjX+DXnd2Gn2fO7AJ1mlKxXunGmmUXYuIw1k2vPRBhkGk+MvqlDmAhumo4N3uVMAl5PvtSv61F/CecQH/QU2tcz8TDxd018Uo/wp3AoUZ8mYu5lOku5fA+drEByKBkpWEM820wSn3nTnx6QMVj1UTfrsPco9PnhXgoKdFqmN1t+ShuVWzknn8DUunYy4avJ3P0A/59DNAfmY2cxx8KCEQqmUMzYxl07Z7yHqgQQQIQn3Ngm6RBWuewyGktqSVvkXZkbn82bbS8fgzVKP5+FP3FFWs+Anwc4wBtS5T8+yy5+vwQRkYZe2rld9ZNmNpZBn7rdphQ+/WAb9yThm+VPZnYZDP3D553S3b4SnACxpBBmnNvVGszNkuAbizYBJr4yd4LJWiz4xsxzN9hDgTwrgAp+JmWfrM9fWrdxAH8jLHRvbGy9e6iPFaEPUcTfFwt/l+I/NRorxd4jvObJCmsMPnqcqUrxXFEdxtyLZE/rKVSHowkQpgWJRAz3gJz6M3KRD9oiGPW7gvrMlzGgLzwEyLf9otEpLnwAR5ZrG60R4Bj50N3PkkXEPgUicn4Zn8TZkQVLcI61vga9C5neHgCvQ/lRBYEwjlPTQFUyFfdRMI/cahUhMtPY4t0oKH7m32d/B7cZQIuKmPAsOjgT7FKAG10dlZuhP9vs7PFh+breB5klW2LzwVK9KgYgk5pE2g9haumjNE798IqBsnQMiQYKdbechbw2cE7gSxoxTPE5xThfJyFyO4JC0wNed3t9jIBxWq7QAAZVSPNNRECzbANGcp3BMzSNA/8G1fh39qYY8lB8VDsJD8tHA== 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: b3fcbd74-24d3-4522-489a-08daef514be8 X-MS-Exchange-CrossTenant-originalarrivaltime: 05 Jan 2023 19:16:01.6722 (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: hWh8GndPjLwjAYcTRR/okrtD7qejvnkYAxZJmCVymLjtwA6hau4mk8N+jld63AVc23VAjAjpBjhzPRamP0bd5A== X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR10MB6075 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.205,Aquarius:18.0.923,Hydra:6.0.545,FMLib:17.11.122.1 definitions=2023-01-05_10,2023-01-05_01,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 adultscore=0 phishscore=0 suspectscore=0 malwarescore=0 mlxscore=0 mlxlogscore=999 spamscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2212070000 definitions=main-2301050152 X-Proofpoint-GUID: 9M_oPrxFxT5mKSB_E-RuuUwrJ9aNz8p5 X-Proofpoint-ORIG-GUID: 9M_oPrxFxT5mKSB_E-RuuUwrJ9aNz8p5 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 4115516f58dd..86f9ad95f0fa 100644 --- a/mm/madvise.c +++ b/mm/madvise.c @@ -161,17 +161,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 Tue Sep 16 05:49:14 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 74D9FC5479D for ; Thu, 5 Jan 2023 19:21:30 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235583AbjAETVN (ORCPT ); Thu, 5 Jan 2023 14:21:13 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:44826 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235651AbjAETUT (ORCPT ); Thu, 5 Jan 2023 14:20:19 -0500 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 541B36D519 for ; Thu, 5 Jan 2023 11:17:43 -0800 (PST) Received: from pps.filterd (m0333521.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 305ITwjC029109; Thu, 5 Jan 2023 19:16: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=38kJ5mbQ6p69SHQMpyl1qGQj4KMnaMdtXVUJDeG9MeE=; b=ytEmoXTyxICtGOSa1L56yeKLJxOswRg/7aaV3O4QQ5XycwpyG8mEXx3/c42Mr3TfPOi0 ea1dFVrkmq/vCPH0ILeJJWVVLzVonKmXrLbYWoKIX9QbxAqH9psRw1GLj41HaLhcR/Pj 0OUyAzjeDJXez0macE3m5WkUea67xWJ525XONaMho53Kr7KWNKsNjRPP+38tXBG407F6 jd984sYD7lhZYTX7fmytSrUNFW2xKL5zM6VviqVdxitptLy7b2EjHWcl9giPqA8LzDIs mAwoaZBmKkCBxCi6bY245HyqmETPR+U1utRqN654m/umgS23j107E7Cxg00mvK0kRCJ9 SA== Received: from phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta03.appoci.oracle.com [138.1.37.129]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3mtc0asrnm-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 05 Jan 2023 19:16:40 +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 305I1EPg033688; Thu, 5 Jan 2023 19:16:39 GMT Received: from nam12-mw2-obe.outbound.protection.outlook.com (mail-mw2nam12lp2041.outbound.protection.outlook.com [104.47.66.41]) by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 3mwxkf7u5p-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 05 Jan 2023 19:16:39 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=AoHeAUimNtMYDF0W4owLftjczeMgFKMATtOlHUe3ZUOmtlkSjDMaGsp5SOSo3IzQtona5pA0o+nRTQR4bxRJksT0KRgSskNzYnhcSrfIr1xRtfCXe7NJiDF0/Xy9J8EnvVXEuOWvF2zSOOluHq8FEbz4vQevfcL9hq82h/ag7TDFPhZUX8MU1yv+xcKdWfRJRlbDONvYUFVC6bp2wC2100ZTkOrPNwzRceS5oTFbJuMMc10KQf32HnhP/+QUBCx3luCs1bpP6LMkkGB+pSRJAgXoOq6xpNpfzWFgsXGZyBUq1Wt3QvJk0n73mZkmeBwo7N3V+3kJHIj4QOsUp4LXfw== 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=38kJ5mbQ6p69SHQMpyl1qGQj4KMnaMdtXVUJDeG9MeE=; b=SvIK5047b1NFoSXoTKtClQ3iJIt56PVNBoic3mMgysbQ/x4SyA8/+z0JvsG8xng+k/7YR4PYpO25SLvBXi2a4CegAQe3BOuQkC/eDS04kabmv4J4aqxcmzsWPY4R5uxGfmsH3xTZz2hgErnsctpnU4Lp6xlqCP4SzB/JEJuZDSSyM6YBKB2IqG4d9hcxrlunZE230shkoYmgKsOnvT0dEi3yv918GGQ68doUVC89RTj1vTL+24PEQ+E1LgUM3idsiTeZ1Kmo84I8AfdC38ih30gh64L8SjVPIAeZ6iJAwtIXxcLH1qi2tF6FCekCbKkKoGxppABPSwRr+OPLKRj95g== 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=38kJ5mbQ6p69SHQMpyl1qGQj4KMnaMdtXVUJDeG9MeE=; b=x3CoBsLjcsizKmloq9TOgUPCP1/C12ZL/6M1jkmZMSXqiBRnMkarV1Aifet/R+t4KyTYN7XTgXBZUdCJeCngQQtTG7dX6Gs9JqRa1+bnGCN02S6GmB/oilfVp0uycTNX5v1O3hiHBoa6Xt6D1+1mj96uo+RxLk/NzKfB8SzuQ/c= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by PH0PR10MB4791.namprd10.prod.outlook.com (2603:10b6:510:3a::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5944.19; Thu, 5 Jan 2023 19:16:37 +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.5944.019; Thu, 5 Jan 2023 19:16:37 +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 v2 30/44] mm: Remove unnecessary write to vma iterator in __vma_adjust() Thread-Topic: [PATCH v2 30/44] mm: Remove unnecessary write to vma iterator in __vma_adjust() Thread-Index: AQHZITomnDYYbwncpkiHEXdmnxwsTg== Date: Thu, 5 Jan 2023 19:16:01 +0000 Message-ID: <20230105191517.3099082-31-Liam.Howlett@oracle.com> References: <20230105191517.3099082-1-Liam.Howlett@oracle.com> In-Reply-To: <20230105191517.3099082-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_|PH0PR10MB4791:EE_ x-ms-office365-filtering-correlation-id: de243176-22d9-424c-0d1b-08daef515e1d x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: AfYfMaGMFL+0ZJXHXfLhv5L2fEr9DhgpcL7HFELRp3Zj1UxfqxmGp7rU5Av/8ZFXOdTllSdJtK3/lEccygiEsACmRqntU+USr7CsXJSkfnMX/KoZodjVF5MFHdhsMiD73otr59fxtgYJrMebJ7wOCu46rSs9Li46DnUoNfaASrSae7Tjx9248DubuaiYW06GR3FZ+q3yWrPu95yRqwiHC+eQOrfg8c42lcjnVywMXQ7PiWhlOD9nhl55w0U2LbD1Gn29Rr2FQCP6DckfoNZG7RdnVTuMld7qD0Ua/cU5AwOD9hnHdamRdylqjFGjmUCSiyWe6hdrOOCSckot+dZIr2npqCnIdkuFN2c8o7itk/niyrpOvoVI1KhlyetBU6tMxQfTavcac/b4A/TKy9llnRVrt8+6n6dg1ZvMch5DbDVWrms/sdMUtEf2IxWcpabSzhx4g/dr/8H3B0slvfP2BO22rAQxMJhTYml9Nmpz7GFBoc/kXWpzbobJWStHDh3IykiT3/Llx7As1Onz5H1AtAKGOx8I4y9L2hQyZgEMKV18pviJ1ReUOjJZk95A7lEsKxPx8fIBClKR6t44PBGRhrNEHH6Vkipga4n/bQhKslLa5f12GRYgsPRU9zy9ykhMfgNLRgB0QTX3fd/aj6my/OKa2FngHBiaq4uKjhf157FcmWs/fi9G0IXWhX+Bs+nOPutK35BAXD4kDBi8/HWj/g== 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)(39860400002)(136003)(346002)(396003)(366004)(451199015)(4744005)(83380400001)(8936002)(5660300002)(38070700005)(44832011)(38100700002)(36756003)(122000001)(478600001)(107886003)(6666004)(6486002)(2906002)(54906003)(110136005)(6512007)(186003)(26005)(71200400001)(66476007)(64756008)(8676002)(4326008)(66946007)(66556008)(6506007)(91956017)(76116006)(2616005)(41300700001)(66446008)(316002)(86362001)(1076003);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?Q?gBC2aUj2PY0k6EfHBHWEZTefRigtZkzjRVDGcZy92FBv3wHFxV8gUEtFHM?= =?iso-8859-1?Q?ej/x2KGlg5hQ0Ywxa+T63thx8DX18zqYBKM8ZmYEEzyePlrM9/nvwkmSaH?= =?iso-8859-1?Q?Nq/f33vqY7aa5VvpkpEaPS88vN/F+G2gtNca8FP/GFJ+fiW/HS6HpuUOCh?= =?iso-8859-1?Q?GC2bgQnTgG+wEG2Wkone3JKHj1eCEmTDUExw552/+BVaLGhp30RwA/xPkB?= =?iso-8859-1?Q?PHT08GDcU0F9GzU2aJrjfp/P5p0ddnBetc4oNI0q679dxoqW2ltyaZRARw?= =?iso-8859-1?Q?1v2SDz5UR+pNmLOo7TNYQ7VSpt+RQVWymUAnt0vVECOpJbOEBKMqqoVBoO?= =?iso-8859-1?Q?oW9qStIFhtMhh3TIrV77e4nAQc/O3cFk1a2Ji+7+i29r4THLm42OFMPGei?= =?iso-8859-1?Q?a/UHGUf+kuF4cdvseP71vnYKLP3lHIcIKmV7iAHSHZYXEevKSU22u/oAfM?= =?iso-8859-1?Q?3DKtH9+g3R7BBhdL9IVNHbruoofP28YTSTYBu3Bb4xe08W1XgRJLNQjGIa?= =?iso-8859-1?Q?WT3SkBfl5SYvARIui0hDA2ZIYmLCqPx19EgpXDODrByBn5rlFJqGHd6YKZ?= =?iso-8859-1?Q?3vLH+NVdG3Myc9YEITQVrLzCdEz+1z/XaAyEpijG0Te8tg6/rpQtNtBF8H?= =?iso-8859-1?Q?aGr7+2dvqYAJeTN2ATFHscZ9YXkbduj4j81axmQwXZlaIJ+o00ToyILQwy?= =?iso-8859-1?Q?mbrWQ2hidyT45sjkHA3gkG1De2KLP/PEzT/FEADbsfrXfvgScAPQcpq16i?= =?iso-8859-1?Q?64wTSRyQo9F5DKJXiTLroRaCc4z7JJW99JmOTp41oud+wpclphTM19SwfI?= =?iso-8859-1?Q?70zd0Ll/8uepQNW18Ca6U6IALOO5ZXJyrCqvERzakqtdr+KdKcqkovRIqW?= =?iso-8859-1?Q?95FwoF9uHzpQqkoLEhUXE/1MvZE6SsJjqtMPpVWSpfKb960TVeipSguJom?= =?iso-8859-1?Q?+YgrAccXjshv8LiLWLGNYuAKiDlZZ3xFu1D9EEIoNnRob1NZft8cjPPQpT?= =?iso-8859-1?Q?ncaSeZNDCnvHKuJwRc9ak568YiwdOrLruHAezE1MAXE7v+zafy2eH6hFG/?= =?iso-8859-1?Q?GGsJqw/OsslA6EKNuKMgMN+RNMLgNiDfIGyY7Y8bjHlVtEVHJZ3U7CcLqM?= =?iso-8859-1?Q?wIH9kJDEspzpN69YEr6x5v0GBImUTc+O1V5ec6Jg2OKkgNzODbdZ1o7X+5?= =?iso-8859-1?Q?n51kIN4TUTFuoWmpAsnSrSBY+/z2ry4u97s/uVkC6GrjtINxeKWvOq2P97?= =?iso-8859-1?Q?U27DUHbomhcZel1sF14Ve91/7EMk9rmyQxGls+aeqLBc/Ckz1QIkI9ZZ1Y?= =?iso-8859-1?Q?YXUbVGs3h5HAvVwExenAGV3BUxNBNELgDRYi6ZYpA8UEkjatGcf7XS91zo?= =?iso-8859-1?Q?84scXXETF+6joHclXd3wTTJSDtCs6ap3q6YuzSZtDUh4KeU9Cdh7+TGtov?= =?iso-8859-1?Q?kyRhOuRSQuqnQmKMUzTdEmlViEe3OTMjIvLGlQ2N0vtSVaoKQs0rYM/Gsq?= =?iso-8859-1?Q?JJSqJrEOYzHu3fnZGKuEMyKJJ8zcoYljHxws+TNJASYeT1tOLe38+apCBX?= =?iso-8859-1?Q?QKoDcOauj7z0ngPK1jCug9IpGAbGrlTIG7PQ5pZ5x48zX8wyE7kGHwv7qb?= =?iso-8859-1?Q?qfXab0BoCWV2asUtOre/PF+A5d4rlfzPRnOX6eiRmTSFL2dHXIYa3oKg?= =?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: dqGwifHSHWGanigKmYH5S1nIl+j9oiZNDElR1jlqFNPP+w6vLGptOPo9PKbpc4Jjn0oxuIEHg0JmNdT6MW1NwrnZCCUdmTRGbUeZDhzacZjzXDqtO5wgvjeSb/pBMdLMW9Xy02flAbiCibL24ShsDxR4qjXhLtIEoUC8Xd+LesI3p7Oct7HrBc4b2Dd/NwGIvHXtp9wubadTk7H+zvuhoQCLd0Pn4D9DHo/UFg/E5Rupj4VAKCHsiCofgVq/PvukxA3XC7KBXXg5RSq6A2g9teLVDj/BUAUWWNDzYjNRQu8Cq8fLvpbTUA9mkqoAw17K7SeU59QTI1RLDp8ir4tVh2jeWYP3dpjWMSKCvgQhpWm4DcYWzMdGBhAZy7lmsKcM3hUe/3LepBZxkBWWCILc3VA9M4m+u7+NmxO/qiKlJuJ076UXBlDLS0my0ojDb3RkQaSJQj2isfJ8gM2sEYQg6yJkeV8tZKhioQJ8cLQ/YPWDmr2h8w9Pt5dl8o+skaBGiKHDcXGwYytcXb0IlKZHo+r8WFoNoyAsm5Cb7w3uf6smi0FQiwQuFQ7pl0yhmCFWr8BNIXJQjeB5mHM/6lQ9Vu6i+mlEh/ovzotAQAcq/M8QMKr1xwjhfqbp94NT3wHn89I7s8xXyh+No2hU7thhFN+tqk3vS01Q+ScVo5sykCiXWcFRYzRYhqsnChbpaxrQq3NwT39WBg5zFU4HVnljpGZf96UAJRguf/jf5oh7Hd5iAe3vNrUD6QQh8i0Zlg8I74OEVk6lwDqI2jnMisc2PsszUoBvdJIZ2S2MG8NGiFGN5sie2xSvtIqTzPWWTWBTzkur7Zts/AaMOL0NECtpNrSU1kUaXDnf350ExFRdnjOmbFigj6ufVhDazVybcbu1K7/jWgZRs4xU/4uy+0dXVA== 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: de243176-22d9-424c-0d1b-08daef515e1d X-MS-Exchange-CrossTenant-originalarrivaltime: 05 Jan 2023 19:16:01.9378 (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: yUnU8dSZE9CFJoG5Pq00GSZilbAd/sSqeX/VFt7Ujej+lu60tQ17rKopKlQOQ0FRV2YWeZDx1AtXghoXLnbJ1w== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR10MB4791 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.205,Aquarius:18.0.923,Hydra:6.0.545,FMLib:17.11.122.1 definitions=2023-01-05_10,2023-01-05_01,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 adultscore=0 phishscore=0 suspectscore=0 malwarescore=0 mlxscore=0 mlxlogscore=999 spamscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2212070000 definitions=main-2301050152 X-Proofpoint-GUID: aBbkC6nehFphq-hBeRXl1F2UTEh5JeiZ X-Proofpoint-ORIG-GUID: aBbkC6nehFphq-hBeRXl1F2UTEh5JeiZ 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 a4e564163334..174cbf25251f 100644 --- a/mm/mmap.c +++ b/mm/mmap.c @@ -781,10 +781,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 Tue Sep 16 05:49:14 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 5E384C3DA7A for ; Thu, 5 Jan 2023 19:21:30 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235394AbjAETVF (ORCPT ); Thu, 5 Jan 2023 14:21:05 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:43870 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235609AbjAETUI (ORCPT ); Thu, 5 Jan 2023 14:20:08 -0500 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id CE5956D512 for ; Thu, 5 Jan 2023 11:17:39 -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 305ISvEe017189; Thu, 5 Jan 2023 19:16:41 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=2moO4fYkQsgktnVqqUCvFnFabSTzK46jDsoi7qj27Dw=; b=Y9XGCBBP7wkncrZ4P7KfCvvsmsLUC8xw77MpulQGsIq1Om/9I3PZRQd//lLHMxJRIZgm aO4Grn7ey7OgwmmQLmUWi+r4vMvqTOmHmnrVc3qCzdOfwj+qeSmvcvVkXDDCIpX68p0u SBpXsR50p+HQqAd8OIKhVUM3/tKUf6vvP5Hx7IfLkOfC+QhnvXyZpfcLLrSZWs4/2Nhm oJE2mNNWvsrhUWR0Hon98Mc4vpbmKpcy+tiK8rCeQkvPLjkGFUv4RGdGcHNfmZpu5vm9 ZmOFcmb2ACz4lMDI59l32wXUbjoZlyozGqZBwii5x6KFiGAyxKW17InHrXp8jthtiLa0 yg== Received: from phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta03.appoci.oracle.com [138.1.37.129]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3mtbv31nvx-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 05 Jan 2023 19:16:41 +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 305I1EPh033688; Thu, 5 Jan 2023 19:16:40 GMT Received: from nam12-mw2-obe.outbound.protection.outlook.com (mail-mw2nam12lp2041.outbound.protection.outlook.com [104.47.66.41]) by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 3mwxkf7u5p-2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 05 Jan 2023 19:16:40 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=IjjHrM+LcLiClL0j/knoyr/RIInUsNXJ+7Olk1XR+zCYHVNF6nbtpPQth6yDodKXOSGkGdJgQLN+O6ijgHWuE8GXx0wIKnQW0wTNK1OLK9egHmhMSIauvkJLdSxX5X2/1DciYwIa8Rz7K58pxmToDDEKuUIwiiSVPvHenuxVGSV+PDWqQw8vY7abMR/ek4wgY9xYuSRRM2i+R1Vb29LOZ/HH1xckmhd8cjdSUXOyiKux7h5xHayCsHIfOr4S5v/yRqStIHh0EqWseLxrXcce9m7L2B6od/WMILB5KUpnQei7m/6QlPPm/tgdzOJOMZxjbpXk8ULzhwpxH4w9/1YS1w== 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=2moO4fYkQsgktnVqqUCvFnFabSTzK46jDsoi7qj27Dw=; b=hvgcayT8O41c1/ds0q5qYe9HxKpx1ukpnlzls7/l62OWWGbuJW9W7utrC4AyUULKuPNTnkz2EJpRfGtXvKMMWz9PGQu06Ia8uI9yZBykorfVJO2ZJ3Q89DzDxlmZp+9gpp/sKFK/UroDuenWgayNVF8g1NhbtcaN9oihkduUe5FZ0G/8FDMooQMKkG3jY2DmMMlKs1SJGbiGo0aKjgVr5jHtp3vTdGManwPcVb8irc9yGpSx506/fIs7F5WHDCk1xR/Z5wWEsTQX95wi1ug9BvqxIQPomA5ZEPIEMTRptv9YW+tGq8CtVA82d8FX/YMW8wvjSU+If7ON8hjtXKv+PQ== 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=2moO4fYkQsgktnVqqUCvFnFabSTzK46jDsoi7qj27Dw=; b=f7YRrRJogqvg3X+pba5BLYtfC+QWFq5aABVZhvn/iUfBpeRVvLX5mGjWBSJLhsFd/JKvwSItnkFYSwsJmAUFSfu9l1oT11X+mKa0KgCQnL1Teay7oLODoVmUFwUdLBilzEXhgRZ8IMdimsLreae+6SpQYG5A2yoj+eT57mucn/c= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by PH0PR10MB4791.namprd10.prod.outlook.com (2603:10b6:510:3a::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5944.19; Thu, 5 Jan 2023 19:16:38 +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.5944.019; Thu, 5 Jan 2023 19:16:38 +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 v2 31/44] mm: Pass vma iterator through to __vma_adjust() Thread-Topic: [PATCH v2 31/44] mm: Pass vma iterator through to __vma_adjust() Thread-Index: AQHZITomw+hyFh4UYkChdkBUsa/OOg== Date: Thu, 5 Jan 2023 19:16:02 +0000 Message-ID: <20230105191517.3099082-32-Liam.Howlett@oracle.com> References: <20230105191517.3099082-1-Liam.Howlett@oracle.com> In-Reply-To: <20230105191517.3099082-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_|PH0PR10MB4791:EE_ x-ms-office365-filtering-correlation-id: 8cf57c49-f84f-4ec6-a6ba-08daef515e58 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 2kCCzYqxu9FyjfTIxpbCrimdzGB4uKMNkVMeQequEreOEeq+5VCq52iioC4dvgiCV0OnwLd3oP0qssa15y5XOz6hmcImo6Uxr0AOeSG0F+hkXl+/DIFYJ7rG0fip9BURBPl4kB392a/INQHOv/zpfpUB46WZa9T1/GF0dWkx8tivlhTS3bjt7/hXBSu/ylPLGbUJI5P+AcBd5+85corlYWvq9v8/gibV7iDmASbYi/M/sMioG5XlT5PX5b7ucJ+QZ8zictNmWUxO/6nknZbCfS7dcxhALWFXvpp8syILHVvytYulbeopvSDsNxTbXxyWeGkAeZOj9L+o0O39OrOe2Y05MJGKMUA5cm38oO/NKxeQa71KDXVCQxXRGuCaLg+q212lSYiz13Dw2HWGKKv96RBJWThIuDo0rK9sGv6/DsYeWLTXD9BCWh/xQKSFIjcIHST+EZzT/t8Zw+5KHOF1DuZIBcfmqw5OjMIkq/knq64U9iL3JqEkyqEklpbAMl6/dWQU74x7JJ4kVBCcr0/YHwsaoaktMb3pRFlIEw/xtqWuN51ITB/yE1oxXGU+8iUx/tV+cJ3UIU8IbeGwtbDFHuzHSDiRJzpJ4CRBuE9Oo3PH66g9Vj1zpLOFECdZUiamnK4V78TONrTRqNhU1OPFK1iL/CVWiNVIEkYN90Oz5IZj5wkIlaOME9LcGLPbAQ+SBAPmtDf0vFqfelczLCNLxA== 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)(39860400002)(136003)(346002)(396003)(366004)(451199015)(83380400001)(8936002)(5660300002)(38070700005)(44832011)(38100700002)(36756003)(122000001)(478600001)(107886003)(6666004)(6486002)(2906002)(54906003)(110136005)(6512007)(186003)(26005)(71200400001)(66476007)(64756008)(8676002)(4326008)(66946007)(66556008)(6506007)(91956017)(76116006)(2616005)(41300700001)(66446008)(316002)(86362001)(1076003);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?Q?InBa/RSvzkcZKEcSCm42WB4+hf/D2aYZamjjHFmL6glVhmfK08Ibo+DDQx?= =?iso-8859-1?Q?1MfltfwfiSp90L9VJ4KynHq7p4ZMghnzU09gtDdoZdSraWTfVsq/Jz5M8p?= =?iso-8859-1?Q?BT0er38qCp6Eyya5FMdmJS2UYnKbdLnFja+3gAzy6Wu/1NahKaUv8AuZ8z?= =?iso-8859-1?Q?vxFLbCadmUedFcp3uGELdvBkPedBgg3w8f7QnSLpfcZccKSMxnw50VWlpL?= =?iso-8859-1?Q?1OYrc/+6gNbUsOh2OFZknY7LFsy2sl+Pxt4K1Tt2UJaBpG6shOmdoFnqSA?= =?iso-8859-1?Q?zbdtCcYoibA15e4KAcHz6DDAAfQR5kkb8kWcklDH/6iyBWo2z/GLFP5gX0?= =?iso-8859-1?Q?C7g1gYVSZmmqfK6fa1fnJFwOi5ycpvQE4L5ovkTPvfQheDJnGC4Bzh32lb?= =?iso-8859-1?Q?HH9GSoD8X/Mo2nxXqe/E4u9IJffOBrR1wSDDB62raa37pkrDNMSg2Eh+Gq?= =?iso-8859-1?Q?oLokHm9Dk5SDeR53R6Ws7rJVWc4ZnNU5raymXnK41gNtqf4MCe3Pyu2skK?= =?iso-8859-1?Q?Xh18bJLBbSmgVUlqej52x3o/10t/aA69r4UwnOtEZmlYACGXxdCyer1xTN?= =?iso-8859-1?Q?knlczi1cX+f3PJ3vu0y9rSJbNd+SJDwVRDoeIWWQ0PUnr7hzVjQ5DhE29i?= =?iso-8859-1?Q?2VGkEFC6d/5M25mDct1mOFhAdNFa/IrA9/b7/bVUgQenyO3ZgTsepGTELX?= =?iso-8859-1?Q?QWiMKt8j0CfwBUx7A4+qeVECtGqlkBseJiNNuKAZHfRjJupZmX9EboM7M+?= =?iso-8859-1?Q?udjMdYbVRw/8f8/4tUDcVE1sIw9YCEMkSj+AkK4zIlqEliNa1USmVXHTtu?= =?iso-8859-1?Q?/EH+YpjPTxHhUKvELMRKAMotzambyeTeKr5+ifG831g4B2dvQDqVb4S998?= =?iso-8859-1?Q?swEFU0gt1woaGqSeIBmlUOeGTJA6l5tuZbJsv22HF5FAyt8wtBJaWTT4JC?= =?iso-8859-1?Q?BjSVWqK5UtdJsleGmAxKpcSmUIn7D/DUV57E2MlnGEKKIHiEBjwTFC9EqJ?= =?iso-8859-1?Q?bZ8OfDIOubJLfEhEstOEI53oPCTTJFzmDMlwlhq0VL9mBDsfMHEcwmXZtf?= =?iso-8859-1?Q?BLmZI5Lex3zRDt2hCBC3r1WktiAsN4a19SW0VBtQ96zGiuk6uKIpunltGB?= =?iso-8859-1?Q?+Q5p8LUwy/AVuX9CtvVGdJRy2s/b0/TWMJVDiWSOgeMJSph52Y+gx4dE8a?= =?iso-8859-1?Q?F/tQVaFLrg3fp4q+lYb9BbkHGmAOoxIdW3bHABDiUsCb3cIq5udgW1La6w?= =?iso-8859-1?Q?8PIEvTWrAaWmJMDHKVwkHNJtnszSLk3TVnw6FX1eLoqSSaPxmEujgrjVje?= =?iso-8859-1?Q?qfRTSaLN21WJ2LfVbqiabcFVD/GOmk0+shXFqf7T/o7fFYXfKNBUv8xS7E?= =?iso-8859-1?Q?/IduNAb3Sow0QMrgmwjP0whBk2+y0Luhd34QVavuA87pY7SOBffqhjAmVJ?= =?iso-8859-1?Q?cWMLvRZquxb/l2C2IFHZbae2algCN6eEca4YxjeharTA4drGK59TtFnUSa?= =?iso-8859-1?Q?9S6TRo091xj7ch9l2MwhFeIYis1oTUjDJ4Ctx0+qZw0giOh5yH62Ymz1ss?= =?iso-8859-1?Q?92rOY4HiKLJ9YK7vjNR5PZMTUOtwvlNcB+3+KKTEMir8K9OqhlabzBA2r2?= =?iso-8859-1?Q?7/Em239gXDtI5bwbqXRjX7lsbgw9zIo6QOg8hquGMV++MfwpfsTldYOw?= =?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: xJ2Zzt1GUXdEwFWslhAvzu8EEAxylbiLliPTsi4xo4McO9MKK9DjHxo5o+osG22sCLVL1g+V5fS8EOT3Q2yzN2S3dlEQkmjAbUu3wcFKV2y3bwQpOZdY4yS5O9nXK3spq1uOFPzkz9zMFHBFgB601vroyRtaxpOHHoUbLuUqNNAaDlQXU8cubk2hdwB7URBZ2pKZpF86crBh5q8ldSNbPK5/pKyxS7dYr+HNUXgvSScswaF+tdZNRsqfXeS2XgAQi+SktYEtBxIlDvkdB0oMGkk2UBh46ZTHF6Qnr6ghJv1t7XJ7rlrLLelmjWOJ7Kpv7+LE2XeAkBTUkbWQtNUnA6M3jZjwv2Bxc/4axHeeI40uAmABvn1GS+E9DeaB16ah0M/hND4rDScQqFVYBgjH7glmjOR3IcDtJ+EO0soKBNsGd2sVZVlWQ941iIqoifPNh8dNgjgni4nfrnfjpm3Qk4l3IPalpOjDJauczmhJt8jI5WPCys1CQ7GWSRxt68WbDnYogKJ4mcNsvR9Ws8HTVLHSdRm+1XxrwRrYT+j/7G9bSaPmPPXnU+s7KiF2U7AraGQJ7suKNQwdyni6Fkhrw8/MMwfk+Pa1y80OWRlfyQdg/NEmRSQnZ0OrWCQS0gmdcD/Ba5fNDyHWuD/ISlHUnejChw0Fru1ZfqZk9JJtOZP+FWZoK+Gsc0gAqf22rH5vvLpaEaEkVlHSKNqUZrNPOlbd4ISFujxNAY8CXoKH+cLXYBFV1oCPc8lWomloPg74cUIu2w5U3r7eKzsYFRvz9zKTomviZx5NDx0mqNl2Qr4ycB4daetaIUn0oDbWaJGgcFQ2TbGeljfniMwt+gJsFbFx0vOA8TilrMrrLkrVQmus4zQctXilcEYBbF05fNFvR+6fyC4G0v+Sl5LZY8emPQ== 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: 8cf57c49-f84f-4ec6-a6ba-08daef515e58 X-MS-Exchange-CrossTenant-originalarrivaltime: 05 Jan 2023 19:16:02.1565 (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: uvKVauPTGfZtTfdxgzPiSSZpEweCb+a98htBO62x8rLePRy2ksppNZ321mdNw8N+9b1eJTxYoo7/UvM7TolIYQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR10MB4791 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.205,Aquarius:18.0.923,Hydra:6.0.545,FMLib:17.11.122.1 definitions=2023-01-05_10,2023-01-05_01,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 adultscore=0 phishscore=0 suspectscore=0 malwarescore=0 mlxscore=0 mlxlogscore=982 spamscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2212070000 definitions=main-2301050152 X-Proofpoint-GUID: CwtJVHjGccQ23aksTSGNbw1ur9eDkKKd X-Proofpoint-ORIG-GUID: CwtJVHjGccQ23aksTSGNbw1ur9eDkKKd 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 174cbf25251f..c10ab873b8e4 100644 --- a/mm/mmap.c +++ b/mm/mmap.c @@ -587,6 +587,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; @@ -2222,13 +2226,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 @@ -2264,14 +2268,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 @@ -2366,8 +2373,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); @@ -2387,7 +2393,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) @@ -2631,6 +2636,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 Tue Sep 16 05:49:14 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 8BC86C54EBC for ; Thu, 5 Jan 2023 19:21:30 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235647AbjAETVS (ORCPT ); Thu, 5 Jan 2023 14:21:18 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:44834 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235674AbjAETUX (ORCPT ); Thu, 5 Jan 2023 14:20:23 -0500 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 8DA2719039 for ; Thu, 5 Jan 2023 11:17:44 -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 305IT0r2006649; Thu, 5 Jan 2023 19:16:41 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=v7b7Y0VoKjU/443c479HAnuhJa8h7cdUlvoZe/Bl8Hg=; b=Y68xLo2cg20PIR5TQ3HaFtSIFiuCJ74Vv/yhTEdZZhKGzb8MtWWlpf6FbfWJfu/Psi+4 yTs9kHzDXl/iXR3qhtNE9vhlw9d/hRXiY92mG4kCoeBOQUMpV78W6anp33UvnmagfVWx LRkAKZ3na1FVDY9yPyR5V8XRYCy5VJswa7aRtXn13NxQl/FAg322wT/BLKQ4N9Yz002f 9gagkH7UJOeuyAzSKcauNRrTomNkBF/mPIXiqxa80S+QEDqj8yj29zNSbJOeDsfrc9Vn HnOEdhUuhqqbLw+FiTB7TicsBHJdBfjAeGzkif3TO8Pt6CWTe/VMMmHBg4oNzrP2IieR YA== Received: from phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta03.appoci.oracle.com [138.1.37.129]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3mtcpt9mth-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 05 Jan 2023 19:16:41 +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 305I1EPi033688; Thu, 5 Jan 2023 19:16:40 GMT Received: from nam12-mw2-obe.outbound.protection.outlook.com (mail-mw2nam12lp2041.outbound.protection.outlook.com [104.47.66.41]) by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 3mwxkf7u5p-3 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 05 Jan 2023 19:16:40 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Yz/bOPaKG9GImPZ/sBR7Z4mUWYBx4YySmjL4dCEjvBYLT24NLTj5A3f9VivhT6x54fwPJOZVuVVhbt3CGO1l39+XB6HTXbW7wQXrfeel6QJLe6azbP+PkGyQbuFvNLeqb/fRIQXdusyOePM9QjXJTvyy7p+E9Y1y8BR1eS/DTjVFYL7wSout6/x5CbAKdfqDRWURGOuFrGUDDA3BirOLhTquFN76zic0E4brrm8vdMZWENCaMEgg1kkE4hgpv/qPQajweJWLM63JKmIGoH0wZfBEP1kmgxtMXPizV2f98zb3J80U28KzMcHKq2NMK7eG5aZ8CTwG3MMqH5ad6yKLsA== 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=v7b7Y0VoKjU/443c479HAnuhJa8h7cdUlvoZe/Bl8Hg=; b=eNcBQT8YcwLrChCPQBoMHNHYRs3AUvq3LC1tbmBhgQ+NbJ1ABgEo/3GRpv1QmylruLbN+lLPFuL0pap5dEvJCPT4JUKMAg5zEuUiYq6zP7J3i8pV93Q8pGomKJDSXjFOuMdSWtoA051jT+GbikksTXPvWbDTXdGAhIj6lvsMoLP6Xcsy3OGyOlAdH/IBETmejtEi97R8Rp+TpstpK1EZime8LRmQqZHib9nJ4/AG7CltVlZE8+PDXQdhIcdIEaXTUXCqJ8Db3hpB3UfrJQ6yoIOcTAKX+eHsKfRCJcTQ07Uj7RL394r7cfnCXIy6jT5A3CptriMsQI+RB7Xs6yl96w== 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=v7b7Y0VoKjU/443c479HAnuhJa8h7cdUlvoZe/Bl8Hg=; b=Lqw+QsUklM09aABmH0YH1vZZz9Vhm/Lp5XHS/nvcly7cES3SMsBU4zGaY6oIKXVmenBV8K/BGjrX+qI5igqjWvbYF30JVv+iOII7c/jZSiNegmXIMsnL7xJbWsB0wvr9GlgSg2nJzSnxDeRm/pEKMza5pNqoUfOm2IZ6q6kFdIY= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by PH0PR10MB4791.namprd10.prod.outlook.com (2603:10b6:510:3a::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5944.19; Thu, 5 Jan 2023 19:16:38 +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.5944.019; Thu, 5 Jan 2023 19:16:38 +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 v2 32/44] mm: Add vma iterator to vma_adjust() arguments Thread-Topic: [PATCH v2 32/44] mm: Add vma iterator to vma_adjust() arguments Thread-Index: AQHZITomrGfg1Vg77ES0gv5xU83u9g== Date: Thu, 5 Jan 2023 19:16:02 +0000 Message-ID: <20230105191517.3099082-33-Liam.Howlett@oracle.com> References: <20230105191517.3099082-1-Liam.Howlett@oracle.com> In-Reply-To: <20230105191517.3099082-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_|PH0PR10MB4791:EE_ x-ms-office365-filtering-correlation-id: e5670280-e373-4eef-198d-08daef515e8d x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: Rxs4xqN9tCdx5cF3+sDF2vD+F3q1J9/bTAa0yKo92XDByqzn6qRFbBWSDgEXiy8UhFrYb9y/poPUShr5KWJWXSAfuR+gq+SeplqGuHzPzCPJBAlsXiT/UysqMyigStzxemxrsMOd0k2b+oUVDMxw0vc+WN9bxA7VB7+DD+smsq/zNillsFAC+nBiX0lKtpIsF/R2i8UGSNEP7rEnEJGZ9mGPRzXZRz43LLcc/KX6SumHc+aVre3pc1iQ4lPGb9sJ2XuVWV9/gY81TiH4SkEAFw664U7Dr1wqXkuDPUgdkH0TcFV0EViNwiApe9MTvkIfSDacLkjFQU8DpignmF2eJ68lYON90mfCMuTFZNsmfNGyPYQhas2PBoHfgkMCa7SbewJvm9Yw8t+qWmYG+a7qxaL8cDIPpoz+y1cqBrHGW9/fGWuOegXQmJntamo06RCpe+b7jbMuVenBx0VXcRTbuhLKVWsyOIPadogO2Bh67w8Cd37TGsIRwu+rfSHJM7y9o2EFIwVBftMv8965xpg0URaQp2nEk9iegnLrmqc1sdFSJ5J3ktyiOp0Q9LHQBMvC7kvAUPGQboNJSg3o61LtcDlU/pg7gb1KvJM//hOUsL1taDGym9SazCYXe0Qg+vrWvsqYqvOsJLI/H0V8Wf96x0bQlWj2/s6oU7YY2hfBaCk0YfPMQ2civaXRTcoycA6jTTXF7C99g7miWTV3irzn+w== 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)(39860400002)(136003)(346002)(396003)(366004)(451199015)(83380400001)(8936002)(5660300002)(38070700005)(44832011)(38100700002)(36756003)(122000001)(478600001)(107886003)(6666004)(6486002)(2906002)(54906003)(110136005)(6512007)(186003)(26005)(71200400001)(66476007)(64756008)(8676002)(4326008)(66946007)(66556008)(6506007)(91956017)(76116006)(2616005)(41300700001)(66446008)(316002)(86362001)(1076003);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?Q?wp+a78ZNV5+HbI4HXkINuSWnOemy/QMXp8u2l0ef4eadEMFAtvq/iEMXoe?= =?iso-8859-1?Q?bsy6QQeIjvKnEagSxuuKkc8oCki7SxgKKNlBOYabK8v+Fueu5OLsA746s8?= =?iso-8859-1?Q?KDSuJKEclEAfS8nGwsBYTFaA3oCpyphpGo7Mdyef7IkgxLoc0D6SzofmtE?= =?iso-8859-1?Q?BZlYbCS1zrtZVXvVDuHLyBneBHIvRaOJ44QWVZtFFE8V2VW9RH4Za7pBcK?= =?iso-8859-1?Q?XgAbtavHnMQpHaNl49mPif/Vf/zcunfWEDPPwISCZgE6iL5vdHqRlVSZLz?= =?iso-8859-1?Q?piLQz+LprySQ2xME4UA8tjhen768Nmnw1EYCqU8hxBAMWqYYrl0DOkMHB+?= =?iso-8859-1?Q?ZkJrVUbLMR+Ok0po5Dkn5L8ql5wzWasf3TJ5SOK7RFdYiwpjTdOmbwVz7o?= =?iso-8859-1?Q?HJlSgP7gcODhGGg+VxmsLyJ6/hnSyFzUBJcegkmMmLr/5do2BPDpJeLd0A?= =?iso-8859-1?Q?o+9zj+hCNVptt/OLZNNEDPVp6SYleD3OqMlH8QvgsRUjqNsILqsa2EKn4e?= =?iso-8859-1?Q?TXTrB66uGqvvFnV8Zj4Bf4U0xtLaWt7JgXpwVqH4uW5FfepNHtglkjH/kF?= =?iso-8859-1?Q?9DJZtEG8wnXLAJ/yOa0mih1cH8l5g4yPllm+BOmf8AgcQDlfbBlt2TqOaL?= =?iso-8859-1?Q?Z5UgOGutPnAR7LJKOfMdLLoengZp8b3MqO4LcMbJmhvM5vosJYDlrX34k6?= =?iso-8859-1?Q?AS+JZst2nASugrXNoTAb2cDI/j0dafe3UgoeLlXxtmvibR2oit1PTiX7hM?= =?iso-8859-1?Q?sWP4Q4O9TCSk5AhlshPM0wya8ecJ68B7+rckRvwni5ouU+Zbkz4QNjA10V?= =?iso-8859-1?Q?h3AQCpo5U74gLb8oPNcpVTOAoN+KhFx3tmCgqbl6r8VtPprSMcqKV3AGqc?= =?iso-8859-1?Q?jsGwmZG5rpDWRoqXgjR0o2kS7tQWg7M68E0lAUUihNEH8JCBap9HA/w5pa?= =?iso-8859-1?Q?Dqk4ZW+xEc7aBZIL/c2BOf75QUfDUMeBrPLYlifZe0lmGsRF7lRYYl6w7w?= =?iso-8859-1?Q?AJbIHHTBTxWagYgbvnQjn4qESBd5bi6Ko5vZ5gHNoexW5iDXUle09gaRpM?= =?iso-8859-1?Q?nvOp7FnjZujLz561R9z6/udSSFclTn3+iLyBMecXPKSLLllVhEDdgJigIc?= =?iso-8859-1?Q?zP2qDyhEZtmLSSJRtkra1F1nq9xXq+e4j9goS2uAKiPNerIIQUc+zi9d2U?= =?iso-8859-1?Q?NRz9ltMhezMlAvrMnpGbVEN3/Gyw6KtC6xSh6A+1TpbMG7vzM2DSQQEIoa?= =?iso-8859-1?Q?fJe0uq+1SbCMBYGBSMJlMA/SRbZcDTxKX8EvkFr1xu5PUXSW0W5IEJp8A3?= =?iso-8859-1?Q?nrjTIrCwOcaUFcvsyo9ZuNHlTZbHwgGT/sHFBzvoR54sWnuXWY0oDDUt4f?= =?iso-8859-1?Q?4Zfz+A6TpvHQXOWQOq6dZwMgXY3VVjkVbnKHdHQVEbN4kxtzP4wH69ogEI?= =?iso-8859-1?Q?upeabNDxsF1uD2NMZcxD1lgXb6ssE8IS4h5K/JkgBsyjSKUn8uR4GCjhBL?= =?iso-8859-1?Q?MC53Gkw+36OFz7RndZ2zYPuXlf+wIa/5aT2jUIGjdZFLpcDRpI5clnEljZ?= =?iso-8859-1?Q?Wzv5Aphz/0fznaHmLl1bud11gcvXRzreSWBi++yYhkVe8CO7PHsvYvmhEs?= =?iso-8859-1?Q?h/DADAUnUnV3Ur/8GgvBPPoBtBr5B4a9T/f2s/4zuilf3ytxUipshAvQ?= =?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: PNuMrITuNc0zKQIMz/tNqxeVnBA3JYevNQ+CzJ1t8A+uTCrj8P3D6gFo5TfBuCeyhBII4sdxOovEVloJZBzaSS8W9NizbqhFjpieYvrp+HcwDSel9FnYT5/LQTV8hubITsZhsM6MguF0fJtHkkvJ+AdgBGDXEXT5XShhmmzX9gWgu9WtUFPyTmsJ40T5XWX4ff4OaPsr+zw7B/GJvXmqdEf4iVNYxsO6pMD+ggPBZO5aOIk2VNwoM7bz6uyFYTdUvcRuNkspLQfg03naqyKR6GhC3NiYkmlODOgguF9RKXyK8rtYFyImGcelmdWxnE72tJYrhRK4Muan1zvv79mqKKFFaOZI2YhJ/7FbyqlvRKCEX/ShvHpBye3z8Iver82Yu2lKF/lQT62Wtq8UqaI08mYdxd1Qwp3t14Mrf+mPUyFf9/atq4nxuTd0CPc1+/fxJ1QUkLz4Q2z4gIT8IbvekvhovwIfa9ygv/UYsyhKdkWWqSVZdToF190m1nAWWrYhV0WopxyXeUKSRTT6L7nU0rch5bH05b4p1k91R7C27VCMz2JsPfFL0f07yIfoKD59HON3H1wrxDHpbTXQwoWatbvrQAhQvuz62HTszRfLtL9rTiVgPe8d0q9Eq/2cwE/fvbq/YnHkzZsVXz7sjZGOXDvjPY2tRqV6SLaAn1iYvpRfVmIlLm6ecn0e4ngnZ+pLbUi7f5GY2+PlbvAO9vM8jOQScjXe5dRTpc2/5ODTQEt8SYvaTE1AO8ZFKFtdSdMnFnA0aBOqXmwmTzNubjQnKk+xY1eClsPu6hcrp0yomFePOCZrEFMMUK+9mM03AFWCV8Bw3CwNC4NlCMiYHAj+UcOElWOxJzCGjd5AWLZyDDFrpz27gPnOQK3rxNTZuUO5mx4Ah6lTUpz5yIrX6xnkqg== 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: e5670280-e373-4eef-198d-08daef515e8d X-MS-Exchange-CrossTenant-originalarrivaltime: 05 Jan 2023 19:16:02.4690 (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: DuKWcZTrfwVbuobjlTki6Bnz8SBtclYuOgcvuDfL+Q+6LRieL7/rVdfTk6RoWVfLRBJmbnKzyu9WRmESvevQ+A== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR10MB4791 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.205,Aquarius:18.0.923,Hydra:6.0.545,FMLib:17.11.122.1 definitions=2023-01-05_10,2023-01-05_01,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 adultscore=0 phishscore=0 suspectscore=0 malwarescore=0 mlxscore=0 mlxlogscore=999 spamscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2212070000 definitions=main-2301050152 X-Proofpoint-ORIG-GUID: M_ezwJCLR7JhoE-T98Y8nKceYJqz-p3P X-Proofpoint-GUID: M_ezwJCLR7JhoE-T98Y8nKceYJqz-p3P 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 b98647eeae9f..76ee62e1d3f1 100644 --- a/fs/exec.c +++ b/fs/exec.c @@ -699,7 +699,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 /* @@ -731,12 +731,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 294894969cd9..aabfd4183091 100644 --- a/include/linux/mm.h +++ b/include/linux/mm.h @@ -2825,12 +2825,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 c10ab873b8e4..d7530abdd7c0 100644 --- a/mm/mmap.c +++ b/mm/mmap.c @@ -2268,12 +2268,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 Tue Sep 16 05:49:14 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 2499DC4708E for ; Thu, 5 Jan 2023 19:22:34 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235555AbjAETWF (ORCPT ); Thu, 5 Jan 2023 14:22:05 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:44624 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235716AbjAETUc (ORCPT ); Thu, 5 Jan 2023 14:20:32 -0500 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id E93F76F942 for ; Thu, 5 Jan 2023 11:17:58 -0800 (PST) Received: from pps.filterd (m0333520.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 305ISmZm001337; Thu, 5 Jan 2023 19:16: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=eh5UlXV7hjFyyF0mhfN12WYE0aWYs7buLsoJ1xB7wXA=; b=uUCEuLbeSbXKg+dfr8eNLmhWP8+YvlNo5vsd/G3XpI9A3V1FRWfOTjsL3983tWYfNVI5 a9yzxeoU4Lg053R2GS4q6pY3TFE2j2DcJVAQaDEtgvm5OuGgDuhf9IeEjjgtrkE0i16L z4SYCFkZMArnO0GZ9Lu2S5wbJ/bD4yBDEAIILuVylGWSydIzTv/FEvpblKSqF+/WZfzg n20NAFzyhF5a+a8Vwfh0CqWiCwlknpkup1G143bUeYIzd3fosqc/2DgPiARtkgcpxhXg Iiq1dsIHAsptxsFadLb/YvCECEJokUsPeZWZIOGeXMfnQ+rDc8lvWWc26dIOZbxLtbU7 1g== Received: from phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta03.appoci.oracle.com [138.1.37.129]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3mtd4c9r16-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 05 Jan 2023 19:16:42 +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 305I1EPj033688; Thu, 5 Jan 2023 19:16:41 GMT Received: from nam12-mw2-obe.outbound.protection.outlook.com (mail-mw2nam12lp2041.outbound.protection.outlook.com [104.47.66.41]) by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 3mwxkf7u5p-4 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 05 Jan 2023 19:16:41 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Kb0vNC3+LykOoZzEXVFAahBSpbLbxw9tZY03b0XflX4R6KM6RU3iWTkmQuldqCJ6QBEYxiib0ryiVNhkeqyVWXNCIhoBOXMa3eLsQm66uUBJUT+MpkxOuZAqKv/53HWGxKE5UeGliMQMdtv9fTvMRI1Lna7khcG6Giop1GmsmJ5dOvK3/Nu77gm6dvSwhJoaPNXSZoynC29o2PZ1K5q7IzEigRoJtMZpf7jX20V2/XuSS21IejzNNfk+/XfN5fbWyS/mOXU7wbhdhyODwv2JcOrKUuIlfBm380rtMN24RPHpADpYZ29pQrtyBiZpbSW939Pu+u93HEUobIG9n8MnPA== 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=eh5UlXV7hjFyyF0mhfN12WYE0aWYs7buLsoJ1xB7wXA=; b=nme5qLCfXSFNnXyiE5V09WcBtQ/kHxSGnGRV2uZQY9xAmyrkHB1GF/YpRFnpay6wmf926BUlSk0JiH9Oph9EzmX8asJPsQXgsbeL0QW4MHqoU872DZP+FI9ySadvvPM6A01C2bioo7A4xvr2lm/vtHXyHXME1bN/qImEhlVXvDBhCGskndQVYJrkIJNiWlhwmfswjyBvXVSe0ZnwWjNARsRpSAgJtigQziNev+nb7ykFlV3V052ftVEog69Gd0saxawoNH320MPYq2mCPkMZXIf28Pkji0GrTwgR573LSxfIvhYteWyCp1+vy295GlIoPIWCrVGhG2uUUjQYK9xiiQ== 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=eh5UlXV7hjFyyF0mhfN12WYE0aWYs7buLsoJ1xB7wXA=; b=MT6YldWqtpU6qENoHZjaxNkKBMzdRor3P/AEpYZK3eVpz9jZP2WA2/L1n3XOXkv5OArllRMT5AquAh+X/q1CdobVjbcMIYRuO4yJjUMsS0bjYyMYcuY7HerTg9a7QWYgHcp+tDUC+/shNJzwh5PGExMXLJirBSCvHcI0l3kL/JI= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by PH0PR10MB4791.namprd10.prod.outlook.com (2603:10b6:510:3a::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5944.19; Thu, 5 Jan 2023 19:16:38 +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.5944.019; Thu, 5 Jan 2023 19:16:38 +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 v2 33/44] mmap: Clean up mmap_region() unrolling Thread-Topic: [PATCH v2 33/44] mmap: Clean up mmap_region() unrolling Thread-Index: AQHZITomyNN/f3iGgESlRavw6FYYgA== Date: Thu, 5 Jan 2023 19:16:02 +0000 Message-ID: <20230105191517.3099082-34-Liam.Howlett@oracle.com> References: <20230105191517.3099082-1-Liam.Howlett@oracle.com> In-Reply-To: <20230105191517.3099082-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_|PH0PR10MB4791:EE_ x-ms-office365-filtering-correlation-id: cf2def9d-1fc7-4347-0324-08daef515eb8 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 8PxIy7q1Q2Ez96F1evsZjkzTMePcrSBydHD1rOX5nBhXBOhdmScs7tOFHGmpjXZhySvJ+pfn6+RJKVXpanUzCDx6rd7KRDgZZuY/AVqDEWqP39VUpeEI/Y+T1+GicGbJl/NLjzOUDptiZ9mmG+CCLe7g02JOsHmqa/dkN5kKj2LkzPhediytI8KXvTkWyS27WQNvxsNMdTYyktep2PLEZuYkokx/dgOkXhAFzAsKutpaVFUk7FEOUdwSAoFasjZKr6YmO9mNL81MQNoWP2XnM4zarVSqY+rJI22bwxqsHOTy1hWsh+QA+pw0eMD7wTcWVYrbaQZelDfR0AsqrjCe2HiZwTqK6tM7w3nebkluY7vgiswhjMumtEkGvPRszZQIFtCyEi1cLIs9ZZrTeGUnMKR1PCZyDLQ78rzQUkafB8xOrmt/ZOE2uF7ycsYnNeF6+PxfQHFAmVti+bwUQbeZ2bJWQ5j+MvuZhzQOXmtcdbF8Z8wIvFqIdrsNLAkfKUXSt7LOAtpWw6sVnnGXcbHt1rprZ7k3efnWPkCea/nzrE0/b8n18ANk8AYocs89neXTgmUfS0I1qEkdobbTsTBtJnDcFdlzh7f29UgyzT03/wfFTGh6gBN5UtzfFChW1wCQJO0LqA4BzadZuS3iTbL9KRleaCZj4oahDW9rX0STxj6/pfV0qTLjXxZTXwXQnHGcNT2iEkjE6RL6odKnQGQ/bw== 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)(39860400002)(136003)(346002)(396003)(366004)(451199015)(83380400001)(8936002)(5660300002)(38070700005)(44832011)(38100700002)(36756003)(122000001)(478600001)(107886003)(6666004)(6486002)(2906002)(54906003)(110136005)(6512007)(186003)(26005)(71200400001)(66476007)(64756008)(8676002)(4326008)(66946007)(66556008)(6506007)(91956017)(76116006)(2616005)(41300700001)(66446008)(316002)(86362001)(1076003);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?Q?HU2wUGevViikhwi6FuDjcEyF2pqLEOSeIXYBSE0Z/6gxtr2vUrzGgxMngw?= =?iso-8859-1?Q?9fSZMOLVjKZo5NoJ78/cDCaeou+XhKuoGSkEILBo9tj1yCSi9Z1snK6Hro?= =?iso-8859-1?Q?ogfDhe7HJu4XX3ICFFuKZ9mfznyWofipLlcqsNo8AvLRp3ChYh/bRe84VJ?= =?iso-8859-1?Q?+0xBDbWKulSZlvRGwZZrwrg4ICmBTdmhra4VsmT4pOkKupcW5gCDy7ydvL?= =?iso-8859-1?Q?zvy+4CbtcHDhr+kGx2O5Dl71Cam7M+Npf5FIn79Wc/6BBEVJaCksPSR/Ve?= =?iso-8859-1?Q?RdTD0iemHEx/F72WUulk7Faxc/jlpi6DWQCXkcqjBDdkdi+A+iYAWaXJn3?= =?iso-8859-1?Q?TiMgfPmei5x/cA4imJgWEVXvjFS61D4D5yWlp6M+SQSJONl0AD2UXBMSiY?= =?iso-8859-1?Q?T2gDAjGFsAXNsKs6wYkMxs5frPJYXkFQJDOUVu+E6WadKFxsKtrBrRNFd/?= =?iso-8859-1?Q?6D2KodJ93PhO/47SBJ9CcDiKoWjLWfMxaGsCcyCIgPuBppukBY2ICANKHz?= =?iso-8859-1?Q?7FSW/eSa5/CuLPG6xMN4Doay9Plxx/U3POUu+H2vajUvDREgDytPRWOMAi?= =?iso-8859-1?Q?DOl42n0mxPi6jx/xvJP+dE0OwxI5TQLKI6j3zJDkpJJwkS/Ajm+WY/TP1z?= =?iso-8859-1?Q?zAxKTqcZEhKPEVQCKTw0sGDS5o31K+ZCC3kNenU9kuj9yv5IK4B+z+Rg9l?= =?iso-8859-1?Q?cAcinriuYpr4+QONQAvH7bJt0b1DmJ2m8xM+JmSjuOvc1uAfdZbOOZcFAs?= =?iso-8859-1?Q?KxLnD6RQN/l52ifoKp7FGgiJE7LkHxpJzJA+y9s5O+HUZ2jCpYEgPJtjju?= =?iso-8859-1?Q?u2smxMRsT0tBg9zUTUCplGnh00PCDn5vBeDNB2INtzhwUH8eL7rQcnCfbb?= =?iso-8859-1?Q?cWHVDZwVYxChHnYg9PBBM6cQceNwVTMB4nz27yVR8RXqHWkmGAKxspmWm/?= =?iso-8859-1?Q?gVF/ce6P5Mq3Z9R0QyQ6WUqch4KmwanGMzcXh2K9yx/227HsAH5QjPfy78?= =?iso-8859-1?Q?bGiKqhx0JFdb09S8OOHkck1t7GaXMaDE1ADaae7jQmJCH3Yz1Yh+N3ley9?= =?iso-8859-1?Q?jkOTr1XpKN1Q6RFtiOczJxvKX1xbZw4QTbB8QZXqEE8R/6Cjhu1pRvHP8b?= =?iso-8859-1?Q?A0WR5BNBARBUBjCTKsLNllMcgUt2KadGMo0I5aO9Q+rKvFZ9XDQwfcVdeZ?= =?iso-8859-1?Q?o0lMTuB4mCT1/QsNmR+ugJ8j+bSltFGAe8PiFU52SnTTQa6cm5kmroTWYw?= =?iso-8859-1?Q?e8SFgmRNXkG2Xewe3U+Qg0CiASWsVLcXjOpeamogSHjYuvPyn3GojUwcQ8?= =?iso-8859-1?Q?KXcOtA2MbX8mPEdLkpzBNCTCgOiwVJXo/VbOY2mZnzSM638lptu74iZNLt?= =?iso-8859-1?Q?TF/A6L8dPcjSAeB58WJeFuDLtA0U4Bkr0KBMHlDTKwnxpdcAN0X+cNSZl4?= =?iso-8859-1?Q?6HVBd57QgR0CjNcj/alz6jggSEq68uJi5Dpdidy8NY5K9nAuC8CntrHiyv?= =?iso-8859-1?Q?y1+5zE1q/VdhpU/sZ9/XRLZgugHtNICEgSlw+/12pww/i5HTLl01jeh8pw?= =?iso-8859-1?Q?PDf4bSTLose+ojKsINnSf/i4KaQYazh+ad67gXx7v1afMHeQ1Bev0iwJ3A?= =?iso-8859-1?Q?bIoolzkLcYucKU8VaHrz5fflZ1VJGZwq1O5pm8TbZsxX7C/Id3ltmJtA?= =?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: 3KsKPOHQJtHimdRZ6VGBFRynGdI42VO5AGNsyGSxLaEoJrOiBxu6ItSZPdU8vPlxJ9YYwfMOWJmrJcsVm2BQZroloetEB1kGhdz9bYUfQo6yXuYIzuglvZ1CNbvnd1CqNxBTdswbHIIox0AA0mm3jX6ICk5Qdh9QeQEhda+vzBMjh3wYzMBb8mO7zKbzqVzlFNK/6K3+qdHK+4qxtOX4s625hLhNBjZquGS7RktMURld7rXVbNpfmgru/gkodOpMTIQmph56GBCwZl/I2P42VhbptjDOEL3Y3mIpZMhXxdaDiA9jx3zOKlVvY80YulYdWV3VN8SJT0tH1msincosks4wSabVUVYe4YPv2d9r97OtJ9TDS7MzikkeS0s/fPiqJyfdhg6BpKESDj9iv+aKPn+NjVoT6ZBwuiPx3BUJvHFG7R4x0KKOig73AM09ZShojucqGEW7lk2agd3nzjJm/UuvEwjWApZALbXFaVNDELA0pwGrbATsfptnM8xfDIyKMSwBR0jtiB7ZhlJFvUvdrZc4T/IBjBL169pvLT/poOFOAv09jLjMYkVOD5kaENUY48JcQ/Kjg9+uKQ5pAgtfOPcR3lw+gPOURExuZDfb3FBeStmEzeDTDiyIxNaZ7/HBvok0a5JQ+hGq7MHD1YqfkVguYK4vcrv4p4Lq4IUfBqzGEZE+lshvYPRVimjKcQfFflwaNnsKsLbF2f1x0RN2kaPEIK0PWtPIUcHz9x4s2q3fAZ1F/oZJxExNZJAUZZOCUIletm63y7x976xXj/z7jyPikSa0KEl647m+63jdstemzQ2n7C/17Wj4iEvm1NFT83zUTxY7ZOLwMD7+mr1InQmu/XjRd2qI7Y3f3Q/xJDq74yuRrdqiWF32udanXq9yWKOpKeVk7vAsYk2F+HnTCP4GPP/ouAWPI98r8LRdGoc= 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: cf2def9d-1fc7-4347-0324-08daef515eb8 X-MS-Exchange-CrossTenant-originalarrivaltime: 05 Jan 2023 19:16:02.7034 (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: HidwpkmwvxjJbGwy5LgjxYrvM8O2yW1Y/29rYQ/MofzTJPXuf2q+FeLle9YTuEGgQA0anQIJS2Ii/ET702T/Iw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR10MB4791 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.205,Aquarius:18.0.923,Hydra:6.0.545,FMLib:17.11.122.1 definitions=2023-01-05_10,2023-01-05_01,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 adultscore=0 phishscore=0 suspectscore=0 malwarescore=0 mlxscore=0 mlxlogscore=759 spamscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2212070000 definitions=main-2301050152 X-Proofpoint-GUID: t1EQbkR0zvKz9OWLBy3ya6XhALDsT1im X-Proofpoint-ORIG-GUID: t1EQbkR0zvKz9OWLBy3ya6XhALDsT1im 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 d7530abdd7c0..99c94d49640b 100644 --- a/mm/mmap.c +++ b/mm/mmap.c @@ -2659,12 +2659,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. @@ -2701,25 +2700,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); @@ -2778,14 +2765,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 Tue Sep 16 05:49:14 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 1C18DC3DA7A for ; Thu, 5 Jan 2023 19:22:02 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235425AbjAETVg (ORCPT ); Thu, 5 Jan 2023 14:21:36 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:44534 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235708AbjAETUY (ORCPT ); Thu, 5 Jan 2023 14:20:24 -0500 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id B34FC6E400 for ; Thu, 5 Jan 2023 11:17:50 -0800 (PST) Received: from pps.filterd (m0333521.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 305IU1Y4029393; Thu, 5 Jan 2023 19:16: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=6hunqgoWf3+7qbnIUEV4yqvkvvDOOGXUrMH8nrK719E=; b=Xv0oiZ6cMLGkMdsfeeKb0z+lIr5ep1l6BAtNJX4r3w5XhCJvr9bLfozC7R3zfShxLKDU QxmayKYRyyUReQYudKsTDh+c7PES6nQhh8Qkw6iEMQucn1lki+LgNHpBrCqAuRsv4e07 g4n31uEbi0cG8S1Bvie8eVfJPIpSfQzV8W1oH2NCbX4t9P098+vFj3bWObSPXkgkc8D+ 87CelgY3I3U0Uf/0RKL1ECkC5S19eJgVO8I4pohqrkscYuvnmghMPVhMFGsvNj4Smno2 cdm5DsYbqJ9xlydFZNcOoKlUjTq9x/eWcbXPNRrDSClr3imhnTJfNdOWnMx5lGQOtMoT 5g== Received: from phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta03.appoci.oracle.com [138.1.37.129]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3mtc0asrnp-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 05 Jan 2023 19:16:42 +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 305I1EPk033688; Thu, 5 Jan 2023 19:16:41 GMT Received: from nam12-mw2-obe.outbound.protection.outlook.com (mail-mw2nam12lp2041.outbound.protection.outlook.com [104.47.66.41]) by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 3mwxkf7u5p-5 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 05 Jan 2023 19:16:41 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=mn4HoRLogHK62PI9FwH/ZEVLdYnh9wKjKK4JqQjiMLw9nQG0KU/DcaNP1Tj2d0D7of+57n1uwh/bbsN2TfbRfoyeSlqJXQsexTDgvFRa3rFdXkKUt1eeCWIPefGWFAodbm6syopRiA1u1PKIl24l5SMVKpYJvD4OclNRXDO3KTbaHFJouuAe+4eI/MZtRM5Z7Q2Bm+IWlabD1kYq9h71rYyPxrG73aq2ksuzU5lfPBC5i+YnoUjBCmYgXRj2rZmkyE7s5Y2V3q0U9JJQHN1oI66a5wOpGXhacjUyn0IQmCLa4OfqkuJrBVFrRlXKQKCxJxmTynERe+7j3W0LKzc7uA== 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=6hunqgoWf3+7qbnIUEV4yqvkvvDOOGXUrMH8nrK719E=; b=PSxBYzqjU6CtKLOtd2dXgDwiDD/ZiRU5V4vDvhuHE6Fa2scvT9YZGGnVSJ4MOckQWrXh3z3N6/8orKR1aQSKnaY+BqItxvzeuZp9HYW8c4c2+kBn2Lwpyq+KR80hEgbdiZsbenRisMlGW8L2bGsIBeEKv5I0hvVIOYlJjqU6VReyN8kxWnogfJ1Nlv3FRpo3PcYCcMJqZrRyUFLo77TiJVTicjV+aMp31OV8wMhT584DiTfGQBo3jyCRgZD1owjE8I3GlW2OkidVLwOZ5ZeMSBuUZI4v9VOC8iJXLsx7nYeSpq7+k4ToSAbaUgPM9g65/kjoBYws5KL78ahPeSSJaw== 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=6hunqgoWf3+7qbnIUEV4yqvkvvDOOGXUrMH8nrK719E=; b=Nj7YFai0sYyRzvY5JZ7JuGTy+AkuaNHQ7n5sh+Xp0nBhYN9IX1JmxToJGUxZbjLXkA1KrITiKDSUpskvkLN3KTrygqXXz82lDejHlgli+d9q8Dl9KDJgP6hP1z44fc46dnPQ6+BEL5t4aK1yvCjWXBTn64ldSAfQ260VXdniCrc= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by PH0PR10MB4791.namprd10.prod.outlook.com (2603:10b6:510:3a::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5944.19; Thu, 5 Jan 2023 19:16:39 +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.5944.019; Thu, 5 Jan 2023 19:16:39 +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 v2 34/44] mm: Change munmap splitting order and move_vma() Thread-Topic: [PATCH v2 34/44] mm: Change munmap splitting order and move_vma() Thread-Index: AQHZITomplNj3iLyTEejKFxfL0mibg== Date: Thu, 5 Jan 2023 19:16:02 +0000 Message-ID: <20230105191517.3099082-35-Liam.Howlett@oracle.com> References: <20230105191517.3099082-1-Liam.Howlett@oracle.com> In-Reply-To: <20230105191517.3099082-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_|PH0PR10MB4791:EE_ x-ms-office365-filtering-correlation-id: 1e31cfa3-eaae-4dd1-d848-08daef515eee x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: ANnfsmW1KXWJieY3o6UU+VkhVxiaIqxpcOTzGX6SrIXSBsloNppW4CAkCj3Cz06I1thSvzKHYXdjlgJyUNXu0CQa2WSacsns7tAvPj8qKlCnx/96g3yEMU+ePnH2tnj9KKXUBvYLuZKgr8j3HNYUmc+XZH788C94gHHSNsbS7zOhMDtoUNISlvHKGrAl+ZFpuH6TFaSKXtxu+ZROeeJeS3XwpWVPx0A77mULtP+x92yQQSW1AXn7ylXosEVWSKKX9ov8DLDQRlnLU3CYsSTn4E8Bg1v9Xg0rOGAi2c6JehmRmB4GnGSkcWtRfqEa26tXzarL5rX/53Nc1hCRfdUmBS2hmCLx+7P6Usdpw0DXmfQipQBtGmIDHR1Nh+utsKIIk0JPSbpiOV2cV0MvLnMhDLZGC6WyQCcaWre9zwEBy9wfDoKru2rAHnLjklNJl8wgNX2dcff5UBaLFHoqCDBV2NLCUDyr7uQM7oq57DEAEuMf6GehWzoQmHL41waUI1YOA3cGlprt3TYS/ewQc2N1/fR/VXfpGdyaIIC8GPx4UdydUMHOWk7Klv9sO3lUkZXO6zzVhTAuaQi3hUhEBAH5uFJdv2ds99H+z8vRfj47PwZHG/UPotC8WHqq2uxaubr30TZ6BUsPQyi89mN/D0zNfwi8vkft2/eNGSMoO9O1KHNb4QeWVmI5+sKTR+8lAT3MIVrW5yjN/GPsG4Idt0ZdbQ== 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)(39860400002)(136003)(346002)(396003)(366004)(451199015)(83380400001)(8936002)(5660300002)(38070700005)(44832011)(38100700002)(36756003)(122000001)(478600001)(107886003)(6666004)(6486002)(2906002)(54906003)(110136005)(6512007)(186003)(26005)(71200400001)(66476007)(64756008)(8676002)(4326008)(66946007)(66556008)(6506007)(91956017)(76116006)(2616005)(41300700001)(66446008)(316002)(86362001)(1076003);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?Q?mvFtErP5Na8f+EOJ1wdvtzAkxbaGdz+c0AmlwmM30c+pMHuXgwA5+3nmdc?= =?iso-8859-1?Q?kBS6RN0tm+VvhirKq+YTbqNc2V3nXXkntr+1uWD1LLCEqFgJfBqUpkw55E?= =?iso-8859-1?Q?ekpRQwQ9J8eBZiCIE4hz9yjyPhL2bRf4vbJFil/faISn8yzoVgWbGOCrm8?= =?iso-8859-1?Q?pVjJSc6MCFYPi4tTq7bSRMday7e2+Cr5iIiIL7AxA4rwh58/0Dvn56iMu7?= =?iso-8859-1?Q?2A4i5VCXk5Rd/zS+r+R4QTnZ9lUOYJvkhJ/WTrMpt7d/qzdX0bCRohSIGu?= =?iso-8859-1?Q?WpHvR6NdgQ7+Rq4GokAhOhlSHLB5xbigXUNlrQDJ7brITOeSCMZiLAypjt?= =?iso-8859-1?Q?4c3zdUj6UgTOAKvf8ta5Usng1vkvcWLaHk2UA4WQ0NrCoCclrkFqaY5TYu?= =?iso-8859-1?Q?tY4tI9jURTyr6mWDRg2SNNp9fozRqdbaxDL8kTo2nnFWXQR51TusRktywg?= =?iso-8859-1?Q?tCtVBNe1lL7KXXJt42uIVKZAWyxMKQLl7VekQ3YDkLr/qXkKRLDn8ZxLyg?= =?iso-8859-1?Q?2B4qc2pUlx3c4Mk93JLCpaCUXacq/10JCqbTpmXMfpeae98zZ6XnusvwOi?= =?iso-8859-1?Q?de9e+5A2IVB5KwluMpNZBzpsP/A0MyPD/5upQzhg7C3gUkjCZikcRuu6WT?= =?iso-8859-1?Q?P+Qb3qaQI6BBMGIwGE/IxPzmOBeX/kJpQhDX/5NKEY2P01q0ihMJZ5O2Wx?= =?iso-8859-1?Q?WEn9FED19FoIo3cq99FywwCgmAC6UeGj0Zfd3IGNAMeCyTUPV2UhN9HXPq?= =?iso-8859-1?Q?bh3ylLQsk0wMDU4o5BD75MQKXJjrMg9Nwvs6hMNWta/WtKWNWjcIlNOlwD?= =?iso-8859-1?Q?YMtutvFYnYzqdtc266aptJW6X1/2M9Vlo0n6yTPlETbDx6/HRJa4uRViiZ?= =?iso-8859-1?Q?vu7tltZD/AT4M6Y1BpwXYR5GGu+Jsq/DD8+EYJ4IqlGmnWI8l8psAvv2Od?= =?iso-8859-1?Q?Ou+EQj/uOTdazUT1U+7CQ5qLktK6TQq4jQeXpbPlD1JlHspy4LP1DXzxeR?= =?iso-8859-1?Q?mPel82CV8Wl8BNiE7I5h6wOia6s6IzVYK2ideMfyIKCjJflygp2wr/Xoeb?= =?iso-8859-1?Q?hw4L1HwAI9G1gMLskE+/Yz7GWGYRbuWipBwG8Qwj48Uz9VuHKxnBwT8ksI?= =?iso-8859-1?Q?yNZN+4rSwsKeVKKLtsPfMVrbde5w+bgOLTU0ti0yIhtHRwS64m6K670A5l?= =?iso-8859-1?Q?cs4V2N4Xpai0RbM0dciUCHNmzI+EDITNPELJZ7hEszhvogEuck8Xyz9EBO?= =?iso-8859-1?Q?FUfTeIw0khVCwF302HpKemgQXapXJNZX44jIFFXKYCGTa0RqfNpfhsZ7EV?= =?iso-8859-1?Q?N3qxiL4Q3lUGv8ZSVzEsywg9jJEGejEbuJ9ojyjDTjbv+GCEQ54fV8QFGQ?= =?iso-8859-1?Q?4Hl3niDMUHKmDgAduV1tvLGhf1dB1xsXNcB1wXtA3G9pN2ZmeSE0I97ycg?= =?iso-8859-1?Q?ED9l7zJV7nN/R0Ys6llnpUC6E+tHZ8jS1dE/J0J1ruQLHsOPw/fxlvgmeq?= =?iso-8859-1?Q?G49r9A9qNeVIxIFRqQaAbt4xtQQZWOeIBbHhbpnzuw9BRFQgDiWql7TxBp?= =?iso-8859-1?Q?x40q23ixX+dQwemuJtOvovxsBvBXogHB9s8ZGX30zNZXlOeaLsSwv1liBb?= =?iso-8859-1?Q?ToEdjr7NoGwokJzbcYrB19VMLEAu0mD0jklUqRVD3DiKfPg/NkRr0k6g?= =?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: ehBDhUStFMIDs1zTZHkMuP1nQStL4ELr/e9N3n5vsJMltvMrWFA+n7p+fpLyIhuGMlkEWrslKCmQ020GAoNGl2Y7ADyLyAIB/BswHuLMiubFk8e/pVu4FwWItFiQ7oqay/HmyOcifolnT31JRYizBuTrou8PBLovuZkvv1MwgUjLVFnSwcHw3UiiDsD5Lt+Ew01pXVQwPib31r1xhalbl06+H28JCWfmYNoqDWu0rDVQ5MZnNuhyOpREFV/BFiZ7AseFYo/l+nfm7NvccmBTIrJ0ujrvbCG4mOrp/QrTgFMqHi1ZMe3Kw5Og2g+dXCPmCGaEUltlZy0VXkzpG5U6zbPE2zYzOMKAIHxA8URonLkrk4jCpjOOrCHrQ+3GepbmhasR0KJpWwWsnDt+Ju4vMLR9JkdHNMUZSDmD98vdMN6Fk5pehXNT2oeQ70o1xItm4T0mCaX0ZiBX0hTHZgdcMCQEfUFkXuZ1AQyMveFEpyVHufW9PV2GbSYrVfXIvXsedLR3rmQ9K8nu7Rbm1QDedncd7Uzevaz3EiXV7WrgyWe8DdM5FYJDmjCiBkS/4Gn3iwTaAS4WLuRjpOJSYeJHWWuDYR1QvBbZi7Vtn/JJdzyoLvcdDq7HcgX9bj7S0JpqmRMOxuPhOvBLtMT59wQswlKaxplQWpaFXIeMEJklGX3m54ClxEQKR+PvTbRrXqUzKIpNXpcdqDE3ynYpDTk/9S1zoEyguaNTX035XkB20ImyfLgSxZyE94ITmerA6Bw++T9ay/bk15Z6683X86Bcxu5RSZdwVom+YUX1nrSPPWfJ9kzN/1xFuwuKmztT0ZoaK/wqDvuhMCfRFu5g0kxwfiIpW2u9Kh5CZ03GoK8rSHyrbC9xdunZ90F+abonFM8OoYhCNXC4Rpv9wL/33fHtIg== 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: 1e31cfa3-eaae-4dd1-d848-08daef515eee X-MS-Exchange-CrossTenant-originalarrivaltime: 05 Jan 2023 19:16:02.9846 (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: lRBXJg56Aa+f/giUwqUwNXtF5OjUBPObQWKMhQoCoxQpAA8rQvIjAu2DJqUv8fbg1TKk34/ZvBgJteQ0DvxTWA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR10MB4791 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.205,Aquarius:18.0.923,Hydra:6.0.545,FMLib:17.11.122.1 definitions=2023-01-05_10,2023-01-05_01,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 adultscore=0 phishscore=0 suspectscore=0 malwarescore=0 mlxscore=0 mlxlogscore=999 spamscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2212070000 definitions=main-2301050152 X-Proofpoint-GUID: rBfeTAkRHqV57rChOTjXUv4jWFR-D5WI X-Proofpoint-ORIG-GUID: rBfeTAkRHqV57rChOTjXUv4jWFR-D5WI 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 99c94d49640b..c1796f9261e4 100644 --- a/mm/mmap.c +++ b/mm/mmap.c @@ -2387,21 +2387,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) @@ -2414,9 +2402,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 00845aec5441..98f27d466265 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 Tue Sep 16 05:49:14 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 B3351C4708E for ; Thu, 5 Jan 2023 19:21:30 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235749AbjAETV1 (ORCPT ); Thu, 5 Jan 2023 14:21:27 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:44536 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235706AbjAETUY (ORCPT ); Thu, 5 Jan 2023 14:20:24 -0500 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 0C0B46D53F for ; Thu, 5 Jan 2023 11:17:49 -0800 (PST) Received: from pps.filterd (m0333521.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 305ITxhn029133; Thu, 5 Jan 2023 19:16:43 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=243tS/T1F9l6g47RsLtVG7etDV8WRpTgO/rf9piXa7I=; b=kUTv2DV03TBZ3Tp7/xuZ4Bhflu0MqP68pN7rs2aJ3z1zFJkeNMLc7+miKzUOifWDF8Lm /VzE0mRpW8cr4DZuROj5gGq+n8CF5PKtPpjeZzXeJXYd9TEilcYnqIdRub7KEog3mIwP revppMlKY+Eh3funiEN9XnMC5jFoQAX783X6DFg0NRXKE71WftZV/L56AdOwrox/xrtd ESIjW0i8BgvhHnx8q4iqEzWrlnQRpk0u25tdCaZjeUJaZUSv227NF7m3WmZ7CkBULCng PAmSZjN50/NovpEEb74BmSA5sw4T224StHKC3UieERPtj/OwFbyDQyiE167yyXN6qeJG Yg== Received: from phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta03.appoci.oracle.com [138.1.37.129]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3mtc0asrnq-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 05 Jan 2023 19:16:42 +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 305I1EPl033688; Thu, 5 Jan 2023 19:16:42 GMT Received: from nam12-mw2-obe.outbound.protection.outlook.com (mail-mw2nam12lp2041.outbound.protection.outlook.com [104.47.66.41]) by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 3mwxkf7u5p-6 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 05 Jan 2023 19:16:42 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=aJprloBZ7kEzqBpDVKYAWqdA1hylrszm8EYgjm3IV0+m0owRhSNr6o+ge3RThY3ML5UBGyQTV0KR/E3KQ4eLwUpRz1eqC8i66JXX4JoBrxKm3ch01t3yWOZ2Lg8jf+NOIAm/HmASdBWuGmzfyq3n7yMiJPKkZvDevs5W8Lpfrw6ZZECCllNWGlO5m4UGamf+0Kx9TMTyxJEUANjKcRA/M05qU7K5yZuKeWfgWzFa+/eWJ4OSsrWour2fKyb84B6AI3xnhGuClllEneiZ1ezQXlbZ33RGlYRozc/X4kdLvRfjULCiUd4w4VHyADxUeGtwTqshur/v8fF5n+95XMehyQ== 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=243tS/T1F9l6g47RsLtVG7etDV8WRpTgO/rf9piXa7I=; b=eljM28I1TUoUBhGbxOX5J9c1kRFJUSRU7F2O/rW5V5vY4JwH6GIrPcaXwFZkxHlK9CRBb8OJF5uVjh4zfkZYgYCtzBM3RGEMuvLKTF3yqfs/vnP2/Z1HShVJjZplKgj+k5F36TTrPNts5dKQPu65Oke2rGj7/JvYMyN4RSEFxJDBvhR1cI4GMLLqox3uaQ0CnFb7I6hSOBUwfZzA8QM57LypJOY4EIUV34j1O6SR4Ka/ogaRpFK6wcO0GSLZnXpkW2VFImoZ6m62BZkHTTyYHYhmCPj8N8q/6Ebfiz9iH3Xv/pmReUGJ48KSUYoC9/9p2bgMglSLbcSL3PrPSShArg== 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=243tS/T1F9l6g47RsLtVG7etDV8WRpTgO/rf9piXa7I=; b=DVctm0WJuBzyVRzN5877nIT9J0PFw/X2akLQmIt76Uk4x3DuYUYPMPxIqW97poyeYr+m1dv2aR1XYK/QIg7z+pDLiP4xBhRSjw0dE7PeXUNgnKoTp0VoALRtTFyk+ipiqC/A96vC2iX/JuNkcobhcBJOXnakdJmZjLBgN6tYmOk= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by PH0PR10MB4791.namprd10.prod.outlook.com (2603:10b6:510:3a::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5944.19; Thu, 5 Jan 2023 19:16:39 +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.5944.019; Thu, 5 Jan 2023 19:16:39 +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 v2 35/44] mm/mmap: move anon_vma setting in __vma_adjust() Thread-Topic: [PATCH v2 35/44] mm/mmap: move anon_vma setting in __vma_adjust() Thread-Index: AQHZITonxl3AVzZR6EC2H161WYt/yA== Date: Thu, 5 Jan 2023 19:16:03 +0000 Message-ID: <20230105191517.3099082-36-Liam.Howlett@oracle.com> References: <20230105191517.3099082-1-Liam.Howlett@oracle.com> In-Reply-To: <20230105191517.3099082-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_|PH0PR10MB4791:EE_ x-ms-office365-filtering-correlation-id: 850ad9a0-8fd0-4638-0fb8-08daef515f28 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 71TpEkogUvzUXtK/IphAtECsWQMxuUnnM20qhIJvzhAsKlYMhPDTQULrXwEG4ykRyxlZVHmDb7oK5Vkk/VHp9mVlY+MrO+SXZIBY97YUdeAuXyPgHr1bcOZvf7YJAwebvKCoB9JT4T8Z7lkQkYrARrfiqpR6fxg3yVaEgA9DVr8qi5lWdcwkapoim506tE0YpYyWRoWaqsjZrW1brBWQB+DfI2YC/G8LRuecBEeEU38ZSajM4L7+DlHS/OwXfVwnlnP9MKUoNsvwcwdjzM91wznB3UKH+T5WrCbSCfZKDuw3ZUA8awW66HShrh/9Y2l+fMMAt+Pzo1YIsjV5DStG1tSsujRSai3a/LinCsacz7YUKEJXWS7Ttn1cfZYDx9Rw4XZTg62D3KfizBGkQ8LEUH17/xpEPZBOkoJ1zroClAaCXC87Stv4vjWcIzcOxu+/6fSBzT7d4kPGasyeqq2Yejs4r5axrHdG2ZDHPS8G5fMG5w1MeF9+SCPRM1IzO6hDhenyOiurf3CFmsX6ARGDlol62SCUVs7HVUrP94l78FLSl+xUtJK65HHd3F6XXDDoMTso8ClQ8elrLETUQeDdfpiekgwVmxsxfzj8Rdn3C62nWifGZj3eER0lnI6dLRsPvzc8AaiaEO1ADJmWONKJHJnGlWXO74Mr85wR627ziGQPLHiPHXTfjJ8VTTreXzPEfXbNkvv0SHcAtaAR6Tfx0A== 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)(39860400002)(136003)(346002)(396003)(366004)(451199015)(83380400001)(8936002)(5660300002)(38070700005)(44832011)(38100700002)(36756003)(122000001)(478600001)(107886003)(6666004)(6486002)(2906002)(54906003)(110136005)(6512007)(186003)(26005)(71200400001)(66476007)(64756008)(8676002)(4326008)(66946007)(66556008)(6506007)(91956017)(76116006)(2616005)(41300700001)(66446008)(316002)(86362001)(1076003);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?Q?uEcC+vOVlB0a2LxhiI5zPOu+an4InSf5me/FtTpwMEdbCeMB8bQ1bdqumL?= =?iso-8859-1?Q?BzvFsygnmzcGr6K7ZNqDdZUit8JPFZJ0rEKo9mJL6u9YQOIJrFUZ+Ush+S?= =?iso-8859-1?Q?Koac9pDQIE136u/kVFaxf4/oqbFd5rrEP+Ilgi2/1urMufEUBPIRXPDwsm?= =?iso-8859-1?Q?E73eVi9+wIkd1ufp/4XFYDW3NQi3uUzctiiFqAWdwohtrC1Lk2Hx5ZAkS2?= =?iso-8859-1?Q?ZtjV/z0iZN2xgBUgBdA4KsG2LBXcbmBvS1f9Vcrgvn7UwJWpI/764eVyp5?= =?iso-8859-1?Q?k1TfxuiJC6VKcm7rKq52C6Z/xWbB6eMFS1ESnVOPCazRkDFj9Skxqmm3Zo?= =?iso-8859-1?Q?hS2or9503jiP+ly1ZW3GyP7p7mJhV/1kwglhjB9r9cFo4++w0mzD/kSta6?= =?iso-8859-1?Q?/yEQ8ZfgGMA1O+zLgKMaAKR7eDcBKBqpeB5TXsQzzIwZH6BBoqpeetmGgR?= =?iso-8859-1?Q?z5nYguOqhFJTBlZi7hjjlQH/xoCtH1Rat6b1i5yWROFVrxpQ59hfqklPtk?= =?iso-8859-1?Q?Dc8ftrXK8z2p/c5EQXiC+Vq1K41qZNY+/e3dbaDCb8gUyVCHV6yD7giyrK?= =?iso-8859-1?Q?4TvMO6ZEM1L5B+ap7EDiYRLEMyzNRn46XLkVhQFO+UKozLyf1waOKi9suj?= =?iso-8859-1?Q?ZwZhZ2RRXLUAnY0/NpGSm1SuN+42XQCkzbcRVHDNmfktwPCjX5t6vMyLU3?= =?iso-8859-1?Q?toaxMR9kRMlHPrvYhGJqCoMlzFH9ofOOfdD/DXmjzvfAFCgW3+5QMPj75T?= =?iso-8859-1?Q?JWRdpzpSlMb+o+vCXNBKkF8Oe4GI7xwFh/Lg25XJBoN+GTnjLathUWcFAd?= =?iso-8859-1?Q?BH9yCZZ9v5py4WPENBi4cGL/RzfO6ClQflVjBh500PVWOYS7Ick4t8IFp5?= =?iso-8859-1?Q?QkiQ6Evky3vleDBfDNu1TQDl9zIDlYoLPwYjIEA+eULRfLd8rKIU9HQMNQ?= =?iso-8859-1?Q?dmXhSIFGliN/IVUFzwjdU9PIwkjqQtyJlv6T5+4VWzIU+NgxcVmcX982Ve?= =?iso-8859-1?Q?lSaXk25qltYoM5yVxdOMVaMwjKFYHke3d3PoH7YcXMdnNPkfYGOfXoSZqs?= =?iso-8859-1?Q?fmfxJ68DdTzUvJCiApz3QrKLwTzA7+ODScAs7980zO472bMg3/bI1QO4aI?= =?iso-8859-1?Q?Cn8gYQPX5jilZVzMQ0dFP9r664kgITGUQ7iTFAD4SvHsyv6cr89FWgY1fX?= =?iso-8859-1?Q?ldEuSx6OQBxvCFDfoywBCU7yMZmRIFDq0CmDUXSVen8R0FKA9lr0Bs61CU?= =?iso-8859-1?Q?oTdx0QsKV8M5rWT2BZ5Q5k8qaKEG0loE8BhSoePNlWDehNL0PAPHCnr+zM?= =?iso-8859-1?Q?MIemnj61GL7Biz8J89mhNtqPn2c58WGjiAQYLqOkOISFu0+IunK11/NQ6y?= =?iso-8859-1?Q?lQt1aBqpfzgQ+E6wjKAWdcNUioFp46KxPlUffqikVXbaWKJzNhJmNT5pjy?= =?iso-8859-1?Q?+ZjuZPCghGlGhKd9im7kWSo886pEJ2uqdqbLNmUKvX76GepB63CHRZCD6v?= =?iso-8859-1?Q?t0DDOn4g4dB6/1GXo2HjbkxqE5qrJJwUa5M+Bxh8lrdABKTRynXrRZYYcU?= =?iso-8859-1?Q?7JzSxySSFTq9Cm7PXLElqkI+AhfD3xHLTSLCzi/tH2Vod+/FGgw1sLtkNC?= =?iso-8859-1?Q?jYGsqw6sv91lbuqaJ9esf8WStFpXyg9PJzSkrN6u4C/Fh6lHgslqdjTQ?= =?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: HwTGeRBL/aFng8OKLoavtT00qPixbHe8rBXo4Mn9YPyqt/+3TXo5Emc0XAEsSJsLq5uOEsdZQ/jSNCKOZ5Ca7ru+k35eTPoNlnrxZQcbgWCUZKPnENK6b3CvsaRxlqqx6noDa1xZ9fdFeT7kgGYT9CeXK8xM2CoNPtEAGZLhCRcFdTUKJSGCu3I2+PRdvnZsk4kdcuzhIPz4f/WUq4f5QT/oLpbm3RaFAZOqmyE+6/yomhssCkxxx3XyXxYxu3XZs2Sh0DkPvYNO9XLMOd40V5X1esKWvTiqMfabmxXLt+aGs14kYycVF6dinLZS23OL8kN94UBCoBm5bmbypxEVpOeE6l4mKm4jNAnw1dHGXz5F9/ACk6i2nCmcHr6qhOLcVU3wnRHvLKzIm8wy65MvSISf+jyaoDvqRugrLnmXK2stwpvb7g56HPl4ENuA+PgOkNiMHvuXqA8kHxgeEs+7wlwN4lMrBi2W4+3RNS7PRdW6Bn33XKss4YZXsdHBE0zr3/sVeeW9TwEEw1Mma0PkvfpJ83R8oKtsHfyRpux5J2JmTouL/RFkQmhXJogSP4nakqCCmywNiiKvQ1tOLzVPC9I4TViqJIlTB+qxUNLrWh79eMPtAePodWduBgDoov6E4pVDinIzytxLOnwsRldvQ6M5jNz5W9bcGY3VN6SnxbmIapAscAQZdrL9ptECtt2It6BWGbB6I9xP1eF5dv7fqnaXqFVGhaFmbztfVwXCDn3kZR8/VQVFKvFFLgMJosKv8uCMHz7l0acz8mWDzBInvh3UGxQ+aJzadR9i44xJh1YNnx6FPzEKCvu4lnD8j1r/fR3aBJoKA9IAYxiFFxv3gPpspW7dtYo0pglesZGNEBMDpuR5yCk63t/KJGUQzyVoo9u0ih8DOsHe9E1090ZGRg== 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: 850ad9a0-8fd0-4638-0fb8-08daef515f28 X-MS-Exchange-CrossTenant-originalarrivaltime: 05 Jan 2023 19:16:03.2190 (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: D0RZRcqKn1L3XTX+NyBz46yuw8iYvXcry6YUUAq3fDNte28oV6J2HGtsTRxujdmBUKyiiFmpcInVcT9c5lbjug== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR10MB4791 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.205,Aquarius:18.0.923,Hydra:6.0.545,FMLib:17.11.122.1 definitions=2023-01-05_10,2023-01-05_01,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 adultscore=0 phishscore=0 suspectscore=0 malwarescore=0 mlxscore=0 mlxlogscore=999 spamscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2212070000 definitions=main-2301050152 X-Proofpoint-GUID: Z99v4kz7aAHsKq4szB2k2FXg7VogM_0S X-Proofpoint-ORIG-GUID: Z99v4kz7aAHsKq4szB2k2FXg7VogM_0S 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 c1796f9261e4..c15a04bf3518 100644 --- a/mm/mmap.c +++ b/mm/mmap.c @@ -744,6 +744,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; @@ -765,12 +773,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 Tue Sep 16 05:49:14 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 355C9C4708E for ; Thu, 5 Jan 2023 19:20:58 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235554AbjAETU3 (ORCPT ); Thu, 5 Jan 2023 14:20:29 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:45906 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235794AbjAETTq (ORCPT ); Thu, 5 Jan 2023 14:19:46 -0500 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 8C931DF1F for ; Thu, 5 Jan 2023 11:17:14 -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 305IUHKS030049; Thu, 5 Jan 2023 19:16:43 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=9wrLMq2gptGF3Uu0h1TPr93fT4zhbM9qkTOW0TghwWA=; b=qJ01Aj81zYTyI7q+RXKrSWGKdFpAlwM8PEg6HjcTKTDSX6hrxCCJtZ5N9mqU70UZHRhm F3mqc9Hi58xhzw5xqH/UFWuaU+I5/mBTnbqriQuCPLc29YGGR77jhMUY3ZxmUYzqE33b W9VE+TUaq49BjlZ+MZ1KNuOnLEQ+cX3drXrjULR/yrJnxd6xBvPHwvzzR095POCfQN4t kY7+qoSlftJQwQf9FyIwSI9FmcijEiPqBjG10cx2iraoU0bdqzyj1B5xCA3uBUrLGRfS 2VkJ+IbpCvCcWLuGp2yKyAvwim2ES8yZQl07+/1fqbXvnwa9B7LO/4H5w9K49rGtvA15 pw== Received: from phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta03.appoci.oracle.com [138.1.37.129]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3mtcya9kbr-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 05 Jan 2023 19:16:43 +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 305I1EPm033688; Thu, 5 Jan 2023 19:16:42 GMT Received: from nam12-mw2-obe.outbound.protection.outlook.com (mail-mw2nam12lp2041.outbound.protection.outlook.com [104.47.66.41]) by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 3mwxkf7u5p-7 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 05 Jan 2023 19:16:42 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=lpKxV7byYKwjjylnf8i5f4e6YvjUiDtsjky3ssdOtvCzep2P7CYK2q5XG6MI3xdFLQ40XnnN9mjderumCuxdlZlS6bAOO+y6oM6QbfuIbp9GXNqRVLQtTMXg8S9JwgW/j89fhHghPnokApKdHNN/+BuOfYOETu1+AlV1FspQCbB7hQAVJi/ZdPviCMJnwTvUXQEC2oE/fX3Z3iSfTTVMerDY+e0CqNVG6mq50eFdvhUjmfNkroW06X+J4dMbPv8lYTCzEp0scB+AH7nDxKA1W8oWPz6alqriaBBjduHfeR3XFSqT7W+ozVc9UA1az282AKkkNm5DW3AQQSgi3+Pdpw== 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=9wrLMq2gptGF3Uu0h1TPr93fT4zhbM9qkTOW0TghwWA=; b=d9pi6XqQb7UhCVBhwO+rA0j5WF0/i5H65jQWP9extm7A5clq/hDvpMGjKma783i3zdieGAVg0COzYYLg1JMMyt/3lDORhG7mCWfwizH2t0GOLEa8MxCkZw0bvig3v61ro/9THBgAkx4sXwPpKEywSdMLSIYMoEI/7ESRzv8SZuT+nPQmOmGn3vvLtJSW7WHT24mF1kYJtx/FniecTDVzlj3mhjEbAiNNI1Zf1wUE7nr491dSbUDfbIpc4kSArvg/mTDQVp661Iwfa+I7MlwHDwFt9vMmj5TPCKEwIR3XyrMoi8QvV0CuMRgD1wVAk6vgndTsUDF7Moa+f7uuNib4rA== 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=9wrLMq2gptGF3Uu0h1TPr93fT4zhbM9qkTOW0TghwWA=; b=dbGCYIU9mx03IbIOTgm712aCpaHp/UyHTJkM5qBwiiyAhAng+PDa/mG77XO4N3+0TlrFQJxq9I/eV02mtPUJTUFMsvHzFDjnOrnpP0pBRPfNx+PgMiHUEHTolTNuw6QfhurXh9tkOpDmGDgowBAp4tyJ4kmK6WmbnsAoKDh1+vk= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by PH0PR10MB4791.namprd10.prod.outlook.com (2603:10b6:510:3a::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5944.19; Thu, 5 Jan 2023 19:16:39 +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.5944.019; Thu, 5 Jan 2023 19:16:39 +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 v2 36/44] mm/mmap: Refactor locking out of __vma_adjust() Thread-Topic: [PATCH v2 36/44] mm/mmap: Refactor locking out of __vma_adjust() Thread-Index: AQHZITonCFPQfkbt+E2tBznCmY6rRw== Date: Thu, 5 Jan 2023 19:16:03 +0000 Message-ID: <20230105191517.3099082-37-Liam.Howlett@oracle.com> References: <20230105191517.3099082-1-Liam.Howlett@oracle.com> In-Reply-To: <20230105191517.3099082-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_|PH0PR10MB4791:EE_ x-ms-office365-filtering-correlation-id: bb78fc06-f311-4a3a-e4d7-08daef515f5e x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: HLEpPFFAKaPP7VLGUU0LLWdWBZ34X6ayTJf77EIDK77rjkj87ad5GH0aBMTujfeQEcHXPS1fhvQZ+zCq4ZVN5KTKSBQ6TGiyzGAjC9kCY++y+6OdqEDc8ExlopbKMBPzhKw+BsRqgsvk3poudXKSuo8/+cawVC9LWmgwJHtGx70jqwOqS60IeSGqpy79BIzpxVIQHSbNNUDxIW+dwPb9Oas7JH4PcZiUHCCCUOrnbzH3IUsYnaZkgQ7r7F/0t8WB7ag5ZR7/nibr4ZxoCMeTyAEeo/MNBdf03HBQhVi1g/frjDAVZ8qwaPyrTYL4QFVZE0TYczDgsg+QH2LE6iDrc5TivstbGwvtY7zM+WynX5ANANeoi9yDE4QpZ+8kUesIvzlDdlSWnLF3+T5oHukSEA4uwwJu6TP02+0WAgBDv+t+Ix+N3VYDPxi6br++/K8nE+xNtHn5+TxGeHGYRokjHxhOu7Mvk7472dNx4Wy3u0SGPu0PTnAmPJGExJr6oQxe2LvFAW3DMHH69jG4YaTxT0qaLbXeg4N3Urd7vlU86dr76+YiWGndUSm4Pq0FgTDh0Ge389UzCItu6bCg4aFMf0hv707S+NDi/KWV3g5jkiMIYGZT8kpewlu1YtYvSdAXnlfs4hlJ4x+FgBBXxus61k7SbON1fJY+gmevp5FFlrP4sxWAU3/OnavmoC4uWaGYgJrEB64ZcyGoExC3gfzM9Q== 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)(39860400002)(136003)(346002)(396003)(366004)(451199015)(83380400001)(8936002)(5660300002)(38070700005)(44832011)(38100700002)(36756003)(122000001)(478600001)(107886003)(6666004)(6486002)(2906002)(54906003)(110136005)(6512007)(186003)(26005)(71200400001)(66476007)(64756008)(8676002)(4326008)(66946007)(66556008)(6506007)(91956017)(76116006)(2616005)(41300700001)(66446008)(316002)(86362001)(1076003);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?Q?0pYDpjZozaYk1oo6cAhZj90/pzgeq8lOugIzGxzbBTWI7TpCL+A5lFs4yw?= =?iso-8859-1?Q?sT63bOgMPSjVPUfhSKM3z8Eu5CY1NqzHdW1eDff5arKLmSBvUJrKrWggkZ?= =?iso-8859-1?Q?VPhjFg0xjHKA+8XM4lIacCGAHrRhbPZlb2aLnzgFcg7h5Z4gDgEybSExNu?= =?iso-8859-1?Q?OZ/E5H++AXeRCmJjXGPtbV7EA99TJOIMbTNJ+Ud/MTTTi8aECXsrIkLGNR?= =?iso-8859-1?Q?8QV2+MeRSwHlC/np8k/fRKR4W6FtjSevzIs982iXjTqqGjkxy+KXGt7l0G?= =?iso-8859-1?Q?pIyh9mtZptVniThCdtDcKWLf10ByV49On6d+8YmqRaD+5GuTp8It2TAdKW?= =?iso-8859-1?Q?+8hD4JC0BkUZ5CdNNH0VReTmcKpOeeDi502RCZtmPXMRJtZ2NDlaZPeyXY?= =?iso-8859-1?Q?jGdUTDUrd/5amfOf2jzi4pf4SNijxpJXnMAqev5uKhn2s0frRuxTolgs6L?= =?iso-8859-1?Q?QDYTetcAg6oP5AhNA/UOeYB6QA/GT4ywDWUwyJeMpI/J29HqxbuwblzRIL?= =?iso-8859-1?Q?LyVd0Cq7N2b+s3TsMxDHEVoMNm/KRQmZiCf24km4lqSrJVUxexnRXJcsx8?= =?iso-8859-1?Q?DWXBALDaj9lImQ7TUqJGzAtkmpNOCJ3yFmrPftQ+UfgLd3ld9znHiWIMhv?= =?iso-8859-1?Q?Blo5nSEa5wYVXWktEg08Fl/RgQGmx+b8DeGyVMObRp7zQxJ+ylh/x69eqV?= =?iso-8859-1?Q?U0gSIoQOKIjFttU8cQDfxrHIaAgAp+7aLrLgSUR7Fw1A8Q/ef025Bv2S+o?= =?iso-8859-1?Q?aXVB2iVWyNPrPRfV/I8HbYjWWYoQISi2m3oftkCiuRk2KIOYZgMznZNp5g?= =?iso-8859-1?Q?sw209SvLTHCLpySneUilQn0UgdztX5M0/RSt0QLfYA8EG5Cxw5FKkZha65?= =?iso-8859-1?Q?0kHOj0qf34prFO5Kf62h7DwcX5qVpJRJVWzYjrjpehkRoGohBAnOu53pB/?= =?iso-8859-1?Q?Xbf7Ws2WSkNnnQWE5caaWjNkTM93g6TblG+szSavb4TqbaRL8GMGkMm/6A?= =?iso-8859-1?Q?xwXtShXcL2l45C/MJrKczGmL3sKH0klf8qUUx9xs7JRyADQnEMcJz5yunL?= =?iso-8859-1?Q?QzaV6Ntz0okBclPD0jUgJQ+NAS8Kxk7YMT/+kO3hFKvXzO/NosTTQoq1ow?= =?iso-8859-1?Q?2bGHL3liEbohvhrvu8gd5sG4Rbkl+DI0QDHdSopGrC0Ns6osu6Vi3FIuKS?= =?iso-8859-1?Q?wrPBuFPXguG/k7QomSoXzANA/j2mtaKOhviqyd7E3jn3fpcqv+rh6wQlz4?= =?iso-8859-1?Q?KRivEHYz4SIB7wH7aEYPLSCN9aQ8a/vjtKkyrVC5TztDJMkYP08uGK13YB?= =?iso-8859-1?Q?vNK3l0BG5Rm715WMVS8+ofmCbDl09cUFM+dPdZq92QLoS3uo6tVm/4eMR/?= =?iso-8859-1?Q?5L6aLkHxDIueHEiHVbXu36ZxZBMyU5SZc/4UpeQlipste95aXRTESMZJ1K?= =?iso-8859-1?Q?is0KlrR4UIhHEUq7VUe19aYLk9nnyt7fdx6HUlDR/q+Fp9YaylzcYwBtyE?= =?iso-8859-1?Q?NsHqEYGRXoI7AgfbN9UEttlxiPlpU5PxJQsU6AFZQogexl8KB376Ye8HNc?= =?iso-8859-1?Q?f6/YEGn+gYrLG/6W3D80GlN+xJzQw32wQ/sagEeYF4JdWDYva350j30xOy?= =?iso-8859-1?Q?st0DsLq+nLYz72Xmf5dKCSD/qxKkFJwlC0j270Vy+z6a3d6DI2k02kaQ?= =?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: 5C12oW4giruVFNUBuPQsugdX9HYPRFSOxWkQ9GwLAO/Vn9HInWlK+gIOmn9Rbl2r7W0sXsKKgFBtMUDlvA1vlGjjFmOrjmsGCqmVTWJstgk7T2SFXREim+RnP2QaiKjdqro6ahveyMMm8hLRDsQMrsbejqCTfaCBQVHcHv1USpCPCcC68rOHnTj2mqKBvNNYSL9mcxbNbhMpfeO5eqcBFoT107+vXTVb9CRIYnwrkNz+JqTe5pcD4bhiAdDdeVgPZtSap/Rxp6PBp7pOwAdPueyhvaALuPX2ApJDyySsy0+uwLX/C2vgB2pbB6jUxalPJUvyhE0225IbJxNx0rF88ll2oRwThde2ZdIZs5pcRMlvhwVolchKrLPzlz/da78Hkez1ZaXT2bLUf2GZ50MY/PdBBh8Ps8p8tKGRuZfjoZUbeTMBvo1dzaCKJi2dMWBeYabSHz6aFGW5IhWVmpNnxsTehQf871Ml1aPnoN6LLsEK9Iw4unmaL3z7z0/p8U41w/M0nzTUq79xeJ6ZZ/0C7P+7HZqHSb/i/eRrMb0ttayV25ouGxYmFl6QoUm+0TUDt+MRAxkZvJyglrluI8VkX+/FWhmRBdDlyEqSAW0JeESnQu5wlevwPY8CjjsCrOVsbTKXhPpxL2PLm+BKi/EidEC44NTEfgC3pM9YGf1RBwrM6Pliz98AYYvoumW+knclAiRpTpSHFxTavMPiyjuYFLm1xHBfBau1sHrxWUu3mizcejEYkX6Wppul4tuSLrwZOusipd71BC+z9FAqFGAjyMT2vpajlu345CJ3GjsKphqozU1C2IWI0LFA+MgavGBqtjgdmPScYo9biyTkGGhH2sqhwgFyWOlhmnGJ2MXPxQFcBUUInD6r/l/2LYsWEpYcMuRl9STooZUi7MrLIXM12w== 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: bb78fc06-f311-4a3a-e4d7-08daef515f5e X-MS-Exchange-CrossTenant-originalarrivaltime: 05 Jan 2023 19:16:03.5783 (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: RBgABYAh4jh6CJL3HDVYbtfHHGmvDSZn4aHebZ8bWmEyJ3O3dSOfmR/CGE3o4OjLyaVdX9790XmM2Xb2jrx0Yg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR10MB4791 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.205,Aquarius:18.0.923,Hydra:6.0.545,FMLib:17.11.122.1 definitions=2023-01-05_10,2023-01-05_01,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 adultscore=0 phishscore=0 suspectscore=0 malwarescore=0 mlxscore=0 mlxlogscore=771 spamscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2212070000 definitions=main-2301050152 X-Proofpoint-ORIG-GUID: tJesb_9O7EsbWqyu0HTUM3sZlI7IatWe X-Proofpoint-GUID: tJesb_9O7EsbWqyu0HTUM3sZlI7IatWe 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 bcf75a8b032d..0951e6181284 100644 --- a/mm/internal.h +++ b/mm/internal.h @@ -848,4 +848,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 c15a04bf3518..3cf08aaee17d 100644 --- a/mm/mmap.c +++ b/mm/mmap.c @@ -635,6 +635,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. @@ -650,14 +771,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) { @@ -753,39 +873,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) { @@ -823,69 +926,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 Tue Sep 16 05:49:14 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 54736C54EBC for ; Thu, 5 Jan 2023 19:22:02 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235779AbjAETV5 (ORCPT ); Thu, 5 Jan 2023 14:21:57 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:44076 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235461AbjAETU2 (ORCPT ); Thu, 5 Jan 2023 14:20:28 -0500 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id B06F66E420 for ; Thu, 5 Jan 2023 11:17:54 -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 305ITcEw025581; Thu, 5 Jan 2023 19:16:44 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=Zf4dD/GIxBl0AjcjR6WG+8X+eKixuRYpeZDz4C5cHuo=; b=wzyrOu3TvymQC4Ju81t45lovevGkVs7eM3Za3hOZnngACL9DdlZ3QgTIFWTsWuRCTNby 0gCNZ5dz3fSRFs4jAxh72JoNtIS/GA9GtfJTULHBmSWPm4G4+E8J+UExNvtszrnk9JSY Olf/n+mIN4YMllQyWohTt8o2LQyQyP+4FEFA8mMgun3gF6IuOIPLbNZwDLVzNoKvtkU1 Of3oHJnAiAflVZa9k5WRNUORRo/hY9c5sHSSO9LbMFipCn6gVUz9Ds/nLrGArxqeXHma gwpSGR1Ko8EI2mWbcKw0h27pDWvdQ489FCiKeJ0sJbocb/gKKZHzwqtonQWpAsoG2GKQ 8A== Received: from phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta03.appoci.oracle.com [138.1.37.129]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3mtdmtskwe-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 05 Jan 2023 19:16:43 +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 305I1EPn033688; Thu, 5 Jan 2023 19:16:43 GMT Received: from nam12-mw2-obe.outbound.protection.outlook.com (mail-mw2nam12lp2041.outbound.protection.outlook.com [104.47.66.41]) by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 3mwxkf7u5p-8 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 05 Jan 2023 19:16:43 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=fh8POAou9iBg3oJaMaB8nQBDZXRhjNBWs/qZXq5olSEestBhXzf4fUOtvWKGXyKz9f++tajyGI7akY2owljkYRItmtkGYX+otpcN7+SFyFJpdLTBuzUAgOlgKcVIHUE9QUCScuoCIluofzPEO52p+Enb9Kya1Gjd4Hyyv6WDU6BSmgmyCn7e9q4nSk+tHkeIcAYxN2Et8dPainWxmuEje0u7PiK7F3QlUI/9MdZAhYvKtu2d9eC79D4JE+iZXoHamzsAcPtkYuN2l5RQvwyQEFYcca1381lIK1YzdY+mPBUrH+Ht9XipvF8r3jXJM3z9HiYDAwr8mMSsrNiZyeZLCw== 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=Zf4dD/GIxBl0AjcjR6WG+8X+eKixuRYpeZDz4C5cHuo=; b=dIuztHbkyQb99mKm7794VjQHBHU9I7UR8Mv4J+NsEpY6jng6pXZY+quHigT22NSrM0qTaTpdCJmVJzox0HACqV10gJ5h/xpAKnLlkliud4tdaSlGqhXRcUhF21NUKIB6M02ifMYnl3ka1A/k14RK3Hucs3eAGp3+vDcveyuvEJ0nW0j9t3dL3hrIdZmGrimdmDKgwJY/53zhtoTDfJrSv0QR/5KZlXLpmEXGRdYQic3E8gSpkcCrId3zqlBztWERY5dtkIC9882H5+BJXCMrJCduchMWebU43fOhB4FpDbXs705+aJG+q411ll2FabWLorsJae7ljsHQh947eeAwDw== 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=Zf4dD/GIxBl0AjcjR6WG+8X+eKixuRYpeZDz4C5cHuo=; b=dXz4K/G2noiMyALULzvQ4MEDMkRXwofEQT+lMKIMTUFMWzwEIRCWGqp/9keZ+7ytKYl95JfoBb60ibFXQ2qiULYdl+2/hy9kyAQYVW/FD4XExEy3y5q3uZsDvQWDkDq4M+KaUIoo/eMSdB8Atho8pg4KM5o/GlrGBzgtvHmYVbI= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by PH0PR10MB4791.namprd10.prod.outlook.com (2603:10b6:510:3a::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5944.19; Thu, 5 Jan 2023 19:16:40 +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.5944.019; Thu, 5 Jan 2023 19:16:40 +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 v2 37/44] mm/mmap: Use vma_prepare() and vma_complete() in vma_expand() Thread-Topic: [PATCH v2 37/44] mm/mmap: Use vma_prepare() and vma_complete() in vma_expand() Thread-Index: AQHZITonLQpgwctfXES3nm/KnMoahA== Date: Thu, 5 Jan 2023 19:16:03 +0000 Message-ID: <20230105191517.3099082-38-Liam.Howlett@oracle.com> References: <20230105191517.3099082-1-Liam.Howlett@oracle.com> In-Reply-To: <20230105191517.3099082-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_|PH0PR10MB4791:EE_ x-ms-office365-filtering-correlation-id: 2fc8801d-1167-418a-1c60-08daef515f98 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: QH3F3XS2z41HSv3z1+vEXBxGKI76q8tfkY/iujycsNG5Jz+9nknqMQKFIZwF9MbNWR5mYD6ryCiKwGvadgfC5AK/PhPjUf/yJGrtLD2LeFkoVSiCiXDqxTkORE/IvQffoZ7Gf2/SyhOGwDLej+Fqjmqjz6gKCT83yxLpUoZccbbmPBewg/eLMhgfQs8SyLdNv2CQlWf9shd9+Rda00rcKqulqHC1ygArugtPqCLV0mF+gvJoX9Bw27W6sA7nGt3EYOusrVHYalF7cj77dTEG2Xs/IutKAbjvOmTUG743Bjr/E2YPd7sd2lWHUX9J9T7H2B+YzJcfoZZrWvvtgeIGZ4fYDqJbSPE8cOWO6l7z7MwW3+riJrH1jVhKSEIfGzPvczLfrl3qDrprVnljSZOKYBcGWk1ar1dcrz8v4Jlqo68M2yE18J+KOz3E88PNXB6gMBh3GRxFZEnWYVJ8CSbb3/vFUuQ6y/d0m6TdLfuxjdFxZB42tUPmuuKoQEBy24PajjkRuifemgp4cVVVLR7feV+A/fHg8FjReKRPH+LkivAcuys7rJzMMiGpA2cmV5pmhexbMsb6/5UZueO2fQGzncFhuhgyOBQiejK61NYuzG8eRUfu6t4NIhOa6lVex8eOSpRLgqOxH9g+YHkv/Wn1O4nNY7axoi/BMjHrWsmpcQxEoKpQfuhBWrB0g7ITrDU8RIJV+fj970iv33w/kMpXzQ== 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)(39860400002)(136003)(346002)(396003)(366004)(451199015)(83380400001)(8936002)(5660300002)(38070700005)(44832011)(38100700002)(36756003)(122000001)(478600001)(107886003)(6666004)(6486002)(2906002)(54906003)(110136005)(6512007)(186003)(26005)(71200400001)(66476007)(64756008)(8676002)(4326008)(66946007)(66556008)(6506007)(91956017)(76116006)(2616005)(41300700001)(66446008)(316002)(86362001)(1076003);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?Q?qxc4Zk/d1z1zlvx2Zx6Eh13ejwJ7CpKl1SQIOgm8/9Rc7qb/2UT0Yg+itJ?= =?iso-8859-1?Q?NrdnlF0yBZWloUSzTCtRUa5O9HcpKMyH+tdNI/ybdt8AftKCT7e5J70Taj?= =?iso-8859-1?Q?1sbw+sxyTFPMK9b5MR7gxO8qWUAgbEasBcOUIdUUp1MneShQ+NPxT/vtHR?= =?iso-8859-1?Q?XCFlcN3UEvbI7OE2xr4I0e7q0Ejxj1GvRaDjbQOtW8jlwZCB8Q0HmPyWLA?= =?iso-8859-1?Q?SjqL4E0QSGlL9REUrQxnNiK5AR7L0DAcUd3HXKdRHTEvP1hZjmQnXOmz7k?= =?iso-8859-1?Q?9SBjFnALsVsMpjp1YaWw5wiYfLyFd4VnVa5vQpKHzavWBHGkH/xGt35Ccf?= =?iso-8859-1?Q?VQ0EE5S2XF2+3sTbDabmNFfW4ZkEWyutj3XD7sdwHMW+/hOR5QbfTY9e7w?= =?iso-8859-1?Q?T/pQF/RK4ad69Db6feonY8Uts//hcr1UeVwt4pVAKgixu8jPmAsKBYZ7U8?= =?iso-8859-1?Q?hxu2H27X6KiJkRVXRNqUj6v63ZFQFGWRCicDb3nUEBcR17h97RmksYJk9r?= =?iso-8859-1?Q?lsd98FG6cGJP97mztYfh6oQ6K8gklAvwJ4cFdWqC/Znn41/jiAxVgA+p1U?= =?iso-8859-1?Q?hF8BmcHx3janOyl2ZMjeULdp6fASf1fwA+ns68kITFgUfZ7RxldXszPpGo?= =?iso-8859-1?Q?jYarwti4Qdq35jdrVV5zKg4E7Qhp5SatEbR2gCsJMrko5BkUX3XuMPWgzN?= =?iso-8859-1?Q?WkmkuNhyJVFxYAEIJTgRchSqnQ4SxFt5diMu0rwOqAEwiTbivnTFCgU5rm?= =?iso-8859-1?Q?j+6BHwh0vzZP/7wd/BhPTqRMruW2ILIdXMcAVwrQzXNZlxK3/MTE/RnGHw?= =?iso-8859-1?Q?MK4/Xp7NMr86CrED0DRDbbEgeJJXc6670dWnMol+avZjGYHunoheC73RYC?= =?iso-8859-1?Q?q0h/v07KZv6C1aFEz7G+I496Bj2vdc0uTNk/g7i3Elai4VBnFOODQfHOB1?= =?iso-8859-1?Q?sO2n4HmmI3VT3IruA9PqrxV29p9tiY18CbIGjE6tywZ4m/y258M4pW8EvE?= =?iso-8859-1?Q?uK+P1bA8xklvRGD88tGItIlwkNwBb60oz4T3DDP63imVrHPtSgtk6yk9Bb?= =?iso-8859-1?Q?IWQ7wBfJohap8Zq0nRsfqwlxzeL5iBTE/KQy7Uv/gn+nS7oLTW5QTvhx6J?= =?iso-8859-1?Q?6dulK4FWls69t3XwDBdpgR1uDp8adTX5zd1yaqRi5TEOTU6UVUc3KHiC1P?= =?iso-8859-1?Q?StH52Vq8pdXOFcvjTTq58SGTjdhWjeFwhRYT5+z04RI5M62Hta4tES/jO+?= =?iso-8859-1?Q?U6ugOi56IDPzJ8QSAsbXQimjQc+y27+CT2kPbwctbYVM8bObMqSCsdYmPX?= =?iso-8859-1?Q?emk1mbk9OAO4C/lS9jreTD2grTOiuPx2rjIowXEFkgS7rYMcYpcCXiVOwD?= =?iso-8859-1?Q?iV5UMkY7+cP0Gg4zJyEsgL3vfvfApMGqpAR+d4c3SuU3KxDpEvwM4FChn/?= =?iso-8859-1?Q?hRE7joNXSVQpnQTe0UtILi74Rq1XgJWOspAVZVHDn0y3exeKy/iGhrurdq?= =?iso-8859-1?Q?bIa+hjcMH2/vqKbvQ2CBNCYsAfpJOTHYz055nA+RI44wukXJdsoWTEY52F?= =?iso-8859-1?Q?yW5wmpsbeUJBwBoe6MkxdzyGBUx/lnLUu/k46VrwbttdwErQZHCBddy6zH?= =?iso-8859-1?Q?V6K8AGTXgk23nRHupz8JytSavnW5UlGqMZn7DrcALxBfEpBG/lN78BpA?= =?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: Kr65AdlNmtZ2gslox8aNIhCEU3CS8EOiSEvxoWDafx4W2sLdi7sbjuIEmPjovKNOmnkjeFqOXrWI/+TEzAFCMK19+LronSE8BYlvf4T3DtnEFqaauvPv4xDVZq3KDItBkYhChU0FrfkgUnltauRz++ADuf9rK3WJZR97h/4I8v/GIXlZiCRBuJWpmi5lXDKTWAVFyAyFlI9Mlq4plP851/stAII8RJNn5/nk1g5KqbmaKP+U4vm9MgGodCLUakLxfTQPS2UEkX3twvVsAV334WvJTUgHNcwHQv2RwGezItHTLI6LSZJE0nJVzZ8HXb67xwbPthV7n849WcdOAxYMyH2F7GY7Nh02IeSBaHvzPwQq+hSuTpO7s31Lg+6X/uoPuzyWKgsbpHtHMuO5XbXBcziHP73repwUWUiaIg5htcEfOVIEbHYPXGvmO4MgLnl1aaHtbyynUFtvZ1TIcfCMZEDOhYT7ea1hseljjebGQlxrIHY9kIOH9iDDQfxRW2cOTLYxfg7K4uKpoHqp1/Ug+47hNL9QW0xOsq8IWQktWQRkB5im7L3pJWYiJZo0V6B76HnP5Q4hSKIB8UKFnAV5bgX4vfwc8bYrzTnrXUEOMhGjBjSNCH/pjbpItPt3DN2AUlXzeGEiHk/miR8/qVFjKmNbjIW9XPGndfkU+8ujopRCrIZgnFauC+VrW8xwst2eOgeT9L+IscSdpiZ1zIPTVbNj8FcKrQ9iBI9uze7b5idIY6m3IbDf2tmKwSaj2BrbUScC3o9oJOzz4kJt8XZ8/i9A5zygYuI4T3crocLgYcQG7ZpU14xLnERR+NrJWE5LEAzhBvO8pW0pcxtBdFUyOLBauze35jvHkF8zIfvm1aPli84My/HFyN1twymwLULbWp+VVG+QsYOL8lVEo2h0JA== 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: 2fc8801d-1167-418a-1c60-08daef515f98 X-MS-Exchange-CrossTenant-originalarrivaltime: 05 Jan 2023 19:16:03.8596 (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: DEQUtjx6u6a6nKhIidI2C98lumIEDP5rYaixxnluCYO30XDQqtTupyHftO38Shurw98cdN/GAmO8vAH7KqYkwA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR10MB4791 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.205,Aquarius:18.0.923,Hydra:6.0.545,FMLib:17.11.122.1 definitions=2023-01-05_10,2023-01-05_01,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 adultscore=0 phishscore=0 suspectscore=0 malwarescore=0 mlxscore=0 mlxlogscore=960 spamscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2212070000 definitions=main-2301050152 X-Proofpoint-GUID: tFyoK741CmEyMMLafXrZL__8h0qZJ5Q3 X-Proofpoint-ORIG-GUID: tFyoK741CmEyMMLafXrZL__8h0qZJ5Q3 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 3cf08aaee17d..9546d5811ca9 100644 --- a/mm/mmap.c +++ b/mm/mmap.c @@ -519,122 +519,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 @@ -756,6 +640,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 Tue Sep 16 05:49:14 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 424D0C5479D for ; Thu, 5 Jan 2023 19:22:02 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235760AbjAETVt (ORCPT ); Thu, 5 Jan 2023 14:21:49 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:44078 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235507AbjAETU2 (ORCPT ); Thu, 5 Jan 2023 14:20:28 -0500 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 23B846E424 for ; Thu, 5 Jan 2023 11:17:55 -0800 (PST) Received: from pps.filterd (m0333520.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 305ISlMg001327; Thu, 5 Jan 2023 19:16:44 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=KYM+JnnKnoZTopkYfjEHdPmQECZEXb+C9gXcn1YFP5g=; b=sWIkGv9wXTeYcR8jqAqmZjCre42GlIhrHuo5WyAPyuLrCC+Exefn5xepVRE1X1TtxT0n L+ZZTvgJXklobnTWD9xQd3xV6N8W8SmBVhzUmX8Vemh9TKhH/ujIcJHb+yYatGcrS7WM dzTBPYCeSoMRkh1E9nhhy/tvv/BmC6OwPk5tTSgk+K6sx6ii8LF0hF0+Z4UnE1g3xwyK W+qsNXahfte2RObDtNX1d/lob4erJ1DWvCh1vtBStwBafNrQUATlxV9NQ2H+pBKSrBJb IwewvUtMKdD7uq+6rogtmYEGF9nIWIfVfwt7kK0mi+PH84YAJBTDnja9DMqwCHS8ynxU aQ== Received: from phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta03.appoci.oracle.com [138.1.37.129]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3mtd4c9r18-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 05 Jan 2023 19:16:44 +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 305I1EPo033688; Thu, 5 Jan 2023 19:16:43 GMT Received: from nam12-mw2-obe.outbound.protection.outlook.com (mail-mw2nam12lp2041.outbound.protection.outlook.com [104.47.66.41]) by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 3mwxkf7u5p-9 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 05 Jan 2023 19:16:43 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=HTi4WG8RYOjn5kGPXNBYqrmY4q4QuT525L/vTMflJp7KQqcwK5ZS24k340L3zEXmLTow6u6qdC9bltBqCyZuNvs7THAMvWeA0STpKxlEG5Qhs+APz6dZcPKFZ/ZqMzpbHZc1ZhEwTsH92wtpXGdBLm4zENR4xFj5pWA+2CL4ybEq759pdnmPhOUjgw4Ipewm5gkykWxpK5ubKIf7NLyDsekEJfA40yTQFs21iTg/wQdazT8JBvQd4HtX/fZpkWwvmhmhG+CFUbQmpq6/JSsso+WR+P18M39aYwIq23jT+mM5fQfxO5K+BNfQ9KvfZFFX9B0qLViX5YRnz8eVFXYqhQ== 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=KYM+JnnKnoZTopkYfjEHdPmQECZEXb+C9gXcn1YFP5g=; b=daMRcdZ8yXRDw+8Xk3PiE54WLN6M8GptpJlAXcHQ/51qFTf3CdbCv6Wr+OcYV8WYgLdIvxCjRtzmKlCAX+xLsqnF7ELwBl5lSKDRlp/L2g3JgYfSKpGTlzsNHQIyZA8xaZ9ibOlYioCVqu1R8m3Mn8S+pLlDp6bFGOAf5LtIXsT81+JbSOB1Soj3McKSGuCKCQ5N4u+zTteSHnO1tas7HiSMwuezCVNBQvpFCCfX6dOZmC+ujgkbKytYlgFtpCPwKeyxKq3A3uXf1LnY4yhLO84ZIszQJ3hWGz6lAGarxPknsvGMerzFrqPX6hAGupwvN5g/REerWoq/b+fmlxdbbA== 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=KYM+JnnKnoZTopkYfjEHdPmQECZEXb+C9gXcn1YFP5g=; b=JuhQdMZG0JSBulhtkqXul3OwEKO3WLrv34ZTKlNMqK1h64/pwWAdrfz2FsOQvCZaITpG1yIXbRFDD01HwSgTJD767Kr50jWjqyTAsfj+vWMrKyhMa7nDFISTBahtl+pCoAl7OCvACigCZDza80rPpfGZbDr9Xh8AVvejwQ6arww= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by PH0PR10MB4791.namprd10.prod.outlook.com (2603:10b6:510:3a::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5944.19; Thu, 5 Jan 2023 19:16:40 +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.5944.019; Thu, 5 Jan 2023 19:16:40 +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 v2 38/44] mm/mmap: Introduce init_vma_prep() and init_multi_vma_prep() Thread-Topic: [PATCH v2 38/44] mm/mmap: Introduce init_vma_prep() and init_multi_vma_prep() Thread-Index: AQHZITon6JBWV6nhzUOpwIF1L6DkuQ== Date: Thu, 5 Jan 2023 19:16:04 +0000 Message-ID: <20230105191517.3099082-39-Liam.Howlett@oracle.com> References: <20230105191517.3099082-1-Liam.Howlett@oracle.com> In-Reply-To: <20230105191517.3099082-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_|PH0PR10MB4791:EE_ x-ms-office365-filtering-correlation-id: 278457f1-d8ca-49c0-b605-08daef515fd3 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: iG/fcdz5RhHkV13tTU7ktJTdyYywf5QLgk0WCB3kZ7mO5PxQiUUlQsv0PVpMOa20Y6vBxFJ7WSXJ2rG92zHTV/0L16fLJlb8i+/6XY59bKJfqXiJU1200x5fRV3y1Zg+XnEzp8vKlLWT+Mw2jZEAr8fAhGgn7MSAvPnwajAkPnh3N/d3C5NTaBilb+nNDKIafn7qB2pELX4KiYKyTfN11FUeSUGip7BLW1i4iUZBq3GB1RyI0XAS2CF3Yxvj5xbIZDH943PiwQ6Upmeu/x+AYhm7HYjJiQlvj/sjPZBSJOpxZlOXF7NdYxYKZSLHhzaMOeWJRyVq1q5UFUjx02NG7bkuynoEs3K5pHePZ2atPzViPfnfasQfQV7x4rJ/LunfpifDyDsX8rqliZNFRhfGuSzyP4RwnM0/jcFq5iytrsIWfVIA2yQGEAK6WmA/PH58iYzOUkn/6UlEcuzaBZm877S5L1MOpGBFhs4awXEXXjSFruh7NrjWREqRLFJukpNqVQ6ghJPIbl9oIf65eY3rLoIqIUz+FgMNaoJVfsDJ2iJyNOaCC4Oz3WZ8VPzNG1owr7+9u6baC0iJEqCSU76UDiR006eFso8vy0wo6uh7cfUDe8nYEcGcXF0M8bvGm+41lga/Jck5U7W+me8FHSXLfKotp8GpGA8OTWtQW56CS7t/g1VZygEmEhRwywy3R+2aaJe22L7KalK4z02AIl/47Q== 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)(39860400002)(136003)(346002)(396003)(366004)(451199015)(83380400001)(8936002)(5660300002)(38070700005)(44832011)(38100700002)(36756003)(122000001)(478600001)(107886003)(6666004)(6486002)(2906002)(54906003)(110136005)(6512007)(186003)(26005)(71200400001)(66476007)(64756008)(8676002)(4326008)(66946007)(66556008)(6506007)(91956017)(76116006)(2616005)(41300700001)(66446008)(316002)(86362001)(1076003);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?Q?x3xtsLWq1CFYqihizsZMoXNlOiR/eZIkL9vL81cE6JjuOj526T07yADKH0?= =?iso-8859-1?Q?YoC5EouuJT+/I8WdaqGirDaxNt6OGUFv0lnFjS2WsfcskZaTlfm/unV9SA?= =?iso-8859-1?Q?3vS/EGFgMSvgH4izrXst1i0kULNNDBx486SCers0VV6liu5+EF5cos8Gvp?= =?iso-8859-1?Q?Q8UauCROHSKBSmnJIh5V9ftbwyVYbtEvynH+TXL+Po7uqqgA2o0d3DjJGM?= =?iso-8859-1?Q?BwtDHZbN62fsa4A7ygFbdo2bt3CDvItv4KLQqdgcfkoGrIP8JH/M4DLOo+?= =?iso-8859-1?Q?1hjHCw8QrrxrFh18+g0vUFL4FPFZfZIJc+8ajuS/hIGDU/olx7XsPRCovI?= =?iso-8859-1?Q?bXNyWOKUp52PDTPWDVMGAKCOxYX/PcGeP0RCQEJvU8Wqo/xVnC4E0Ri6uq?= =?iso-8859-1?Q?30pUd38gppPbzROrBbsT/NcV9w6a9Ep0XuT8fbrO1A0ghfvrrpK9C/5lcx?= =?iso-8859-1?Q?fq5eEmzhq6MsuMRtt4VSnhMEj9e/N/IUee2pxoMur+4GcnH0jo/NMVoN3N?= =?iso-8859-1?Q?dkRvTTP1ROYsyO9yU8O0VY4uy27PatNCB//ItA4LqlTzSI4CfTBbsOi/u0?= =?iso-8859-1?Q?/nTtwXaZgeqodXBgsXzQWrErTqmZkBMTq593CccluADQqJc7FzZn+8lV5X?= =?iso-8859-1?Q?PRTxVfwSbI5h39WTMxL3ZDTNsDO1sNm5py90+UXKr7E7c/Eg74Lo59zqom?= =?iso-8859-1?Q?c75dUUQFGirrpUAHAXEqEk33XOG9g1RuCx9QmuZxm4cueObzxrA5QbFDlm?= =?iso-8859-1?Q?b22AMnsKMwyFyGxDkA8IBx1NRyWMAPxTgA6qiJ6AiRj6IjdguI+B+jA7WK?= =?iso-8859-1?Q?4KLugO1VAIpjf0OCKC23rsZ2i7o5Nx7zrIHUiNP+GYBZYoum+sxNrqnpp7?= =?iso-8859-1?Q?CpFfdfc78b7WTi6fcBZBGgVDNL1eGo+pFcdzQEggAAOy8QncSSszwpDsbb?= =?iso-8859-1?Q?hiWM0TK4DNmp0l3s1R76mQhJYShYFgTtWOLRKuLkil8AjvnE+sWyWlk0hs?= =?iso-8859-1?Q?jtUHFXCRL1+sztJ1plJ1bBqDbvj5KpsdkunLcb24cJA3wZAixs8gN+AN58?= =?iso-8859-1?Q?stT/OCU7ascJsvhsAn7kMR3Gu7+paN+Hc2nU3mO/YUGX0y+HmRiayc6viO?= =?iso-8859-1?Q?Lrf8dnw63a/A76QncE7V8Q/AVBiDLsB0shKlULY0RBOZqkSdmXQXB+GFQh?= =?iso-8859-1?Q?mlV4MdbqNe3LdF6UWilXEne0BE7IFTsbP9CiQt4p5PbUUMoQ+4h01NPFgL?= =?iso-8859-1?Q?bJU8Ul1DUt+BfWnlfzA1p8IpPoJ8o5cD5B8mWiucAAZIcK4NOavxDKJg5z?= =?iso-8859-1?Q?u5itAj8VnU6zU0zxYBi+i9G+C5TjnVHCl9zzW25GXbV/YelQx2hIWWzsvU?= =?iso-8859-1?Q?7yNriFTGkWQaHgM9A7xntGDHyEWUL+g9eUg8dD3fixOhlrPielYDyqYC4z?= =?iso-8859-1?Q?ZL+nCd+JXM+HsJeO89hPRvJACXlhMw7WdLs36kw9W0JgcNTyuhVf1L4T2y?= =?iso-8859-1?Q?yqSwrdFMmonC4bNZi7sJ+7FSi+1mYnUwHY3dSekGc/6fjmcVk42DYY0Gt4?= =?iso-8859-1?Q?9TXG86sqJzgoIDXmK5JbiqnLA5foLfPNK+Tdw4VKaHoJd94WgMZY25IKXL?= =?iso-8859-1?Q?4HV3i2tP0F5NKIhk0drnZrN/+EsulOsW9yYLj3RHKMc4kOr4RV7mUsXw?= =?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: BRWG51rrYDFUzTkM1E4V6No6urpKqFuahRhIKraW4RvcLiE4bsppJIiUoog1kpTLJSccb5TCrPt6QPexyybtXnUav3r1/oaBQpkizl15jKN/9k69Gl3heCC6WSS62GNYIBzD8IubauUxuYs6gtppELT1YQwArLtH97zbbfRFNzG6igO9vqiaf/rCluaXF22G/tFuPWXaAsYJMW2nApRl+orjk8oNwj3Vx+WUy5EQg8GA3kIzr1xQG2gT4Kt+pjCZKEGHohjTUmPstSvsgS2opk6uo5wMtWKYoCguMYfOJaNHAA/OnpBmVuE9rChyiJxdB/VLckeNow38EydGjc3p6lbs9OuBF8GKeg/gF+kU2yo68da4Q15vzRjWjhcG4eRpf6PVZItpOXvNi3ucFz9VNjP/EtRGZN+9iIIUnn0bvv918F55jFLcFm7RYmUhsmYlWFPJRw1Yk/c2nHmmbzs+UGaCwa7BgXCzAem5Tl7nVoSncqsGjbW7q8aOXwhAzo5AzWbZ3yt3JCb0SnC7x/MAycTV8M35bVt9GHzPgJ4VIiM1oHkhONIxZmuAqRUrGsib4z1PYwJC/f6pT5JZeRirCY/fZhLUn1xueM7HegnSZQM3G1GfB4q6VSIwJPLQx1LgyYBR+gtxORGPii631e+70u7eXkZm3m7/B7A3DnDaPh2awgmw3+BlktiBA50TzO9UrPp1zlOEd14p/uH7z0KNwhbftXIkIfY6S4cnNo6JuhB/nc6bivh2Koy1xFNZTBNWOuy8l+8bz/q+WH9CKX2kxRGiS0FFiU+eAX8bkEmVQPJpyWPDd+cvWNS8tW7X/l4sbY5/z0i1j9gqPcxCOqaud6b2ZRYbbRMybhCeAe0MgWwBrwwGnSeQFP9oRmcLaRnOc4Y9FCJlnvejGLC6nWhj0w== 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: 278457f1-d8ca-49c0-b605-08daef515fd3 X-MS-Exchange-CrossTenant-originalarrivaltime: 05 Jan 2023 19:16:04.3126 (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: mU38JVnflZHPNbHVnKB2ZV2+jb6WPOnaXYh7KkQLDzd8lssKfVZm9zy+jPYjq6YrVRwAupvRaWtl/N1fu4qgPA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR10MB4791 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.205,Aquarius:18.0.923,Hydra:6.0.545,FMLib:17.11.122.1 definitions=2023-01-05_10,2023-01-05_01,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 adultscore=0 phishscore=0 suspectscore=0 malwarescore=0 mlxscore=0 mlxlogscore=999 spamscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2212070000 definitions=main-2301050152 X-Proofpoint-GUID: hmszyapcXyOFRyxNEon7qViFqgqtSRu9 X-Proofpoint-ORIG-GUID: hmszyapcXyOFRyxNEon7qViFqgqtSRu9 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 9546d5811ca9..431c5ee9ce00 100644 --- a/mm/mmap.c +++ b/mm/mmap.c @@ -519,6 +519,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 @@ -628,7 +667,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; @@ -662,17 +701,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) @@ -680,6 +716,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); @@ -690,11 +727,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); @@ -725,14 +757,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 @@ -751,25 +782,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; @@ -779,8 +809,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) { /* @@ -821,30 +851,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 Tue Sep 16 05:49:14 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 4CF86C5479D for ; Thu, 5 Jan 2023 19:20:58 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235720AbjAETUc (ORCPT ); Thu, 5 Jan 2023 14:20:32 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:45190 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235555AbjAETUD (ORCPT ); Thu, 5 Jan 2023 14:20:03 -0500 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 0A4836B1BE for ; Thu, 5 Jan 2023 11:17: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 305IUIWp030139; Thu, 5 Jan 2023 19:16:44 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=fOI0ThBpRiVc0Uet2n6YUDaHqGgBSIkgC44zMu8JC0I=; b=0Ix8+iJA13ZPHvpn2G9kDhF5zZrd4bWsrYa23K7qZ9ipzgKOhUThZPhD6pM7XKWYCMp6 zHBv9M9kPjFBrIomGbClu/oyau1Vj2FU5QtfshcxXpcqTJUJH0BdIG1ISFPHPwbpjtfk 75Ioep9yRqgBMIHjeHUkUfM6fX2py1zQ/3JsMdsx29a5F6EEPsuBBG9iUdDEUT805IC2 LrrCQNiIkLaQjIXN1105W09c/RPW1nxBWAHsMCH1M+5MiKwGeLfaMCk9iAcYl2xok2KH cBixyGLY4WXlChmVo1XQmBmSnAbGvTrzf6r58kEhN0CdapDawBA0pp6mVebaKTXB2qCJ Tg== Received: from phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta03.appoci.oracle.com [138.1.37.129]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3mtcya9kbt-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 05 Jan 2023 19:16:44 +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 305I1EPp033688; Thu, 5 Jan 2023 19:16:44 GMT Received: from nam12-mw2-obe.outbound.protection.outlook.com (mail-mw2nam12lp2041.outbound.protection.outlook.com [104.47.66.41]) by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 3mwxkf7u5p-10 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 05 Jan 2023 19:16:43 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=KBwUtPPPO93Ghg2TZ7kA9XeI5ADNg0sQMgSVJ6JUGEAM1tpNSuwpJeqGOPg1nrn524thfdrvMxrXCgBR3cOmrZboaLtiHgjpzloOwwE07WFmpQYjkVK+be906cfyKjbHqwcb/536Po7ylwtsulwA/xCJUxWf2XRheJFC+7K2sWsB0zBZ0H1hlImiRIRBn5U9EmRE2giXy3RGWlc4G81knezijUArY0MLN1l1tJSOQu7q9CVANjYvUk4MDUiTLXJkN9/korR2JYbohLvt/8y8SCNV4voZhb/E00RC9A/tbzNBiAZfEY9vpl20UlvNYj3PYc/FwFp+Bv97XSvvRjy1bg== 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=fOI0ThBpRiVc0Uet2n6YUDaHqGgBSIkgC44zMu8JC0I=; b=mnwLyfCtFyawPQZVSb8K6xIo12AxoRJUjnFMimP9BXiC/jGN1Yn9b8a0HuWpV3qFcenkvjTaIK+Fzv66gCRMxAn/C31qJLVEMzxBTRjeuziDkq2GRwFdRfxwVJe+rMInRvCwWhHtLb57twNv9fvWfoEduJ9N0n9rTCZP5lh0cMrEBmz2QSym8oRS9bMDu/PFwJZ+6ueFCXgdg9NSRmSZt4lfgxrdc71hdzur9krkU/NLUYO388ah5uIZt4hL/tlTHD9G3aPB8lIUSInCp3wMgQ//S5otsg1SAnrBSOUkM7AivAbSIR8ThsHXceVwFJVhOyXucdWXUPiePmTHbmUJBQ== 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=fOI0ThBpRiVc0Uet2n6YUDaHqGgBSIkgC44zMu8JC0I=; b=h0LNgUGC8wLXyXHDuJVsm3DQoD+P0vIkDQO/ymw2+IsI2sxzTqcy76/Ff6dZSrde3Ta19ipfhzphGjPzrI4y3FApG2WohcMJ5Sv1nYePq6xIOCUvMo2gFeaHvSveP5ewLtfOSyImAFLfMfw5g0QzLAsasymk1r+5hdKtO7Jg1eQ= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by PH0PR10MB4791.namprd10.prod.outlook.com (2603:10b6:510:3a::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5944.19; Thu, 5 Jan 2023 19:16:40 +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.5944.019; Thu, 5 Jan 2023 19:16:40 +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 v2 39/44] mm: Don't use __vma_adjust() in __split_vma() Thread-Topic: [PATCH v2 39/44] mm: Don't use __vma_adjust() in __split_vma() Thread-Index: AQHZITonjB4NzQAbgkqpv5IwNTKaDw== Date: Thu, 5 Jan 2023 19:16:04 +0000 Message-ID: <20230105191517.3099082-40-Liam.Howlett@oracle.com> References: <20230105191517.3099082-1-Liam.Howlett@oracle.com> In-Reply-To: <20230105191517.3099082-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_|PH0PR10MB4791:EE_ x-ms-office365-filtering-correlation-id: a0c91420-d413-4827-c694-08daef516005 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 8acoK+9lXw//L6eGR2zQWp8vfgmyuIJZqJUeEOwVMKQuP/ByR9I6B0S1eDPRV2E1hZrpfbD5akeujOeIkVtPygvBcFSY7Z36DRfiMqY9TXtJbsAeuhDx9MqJZHDzc96TF94XzwfNXxHIMg0oaCH9geBeMsumeE/l+o2GR2IvZtka1IePjQLc9CUe7TLOxVZ2t9kfAAY10W/aENnPkeKH55/tXNFa2Ixw9ExcNjlXiTSXY6thBuM7uRFN2cY/QyLvGU7GLXzp70Ipp2g0zQAn+Q4cqMJHH2l/+F1j4bnnSG3fH4VWlao2jA80AqgKE0xAYG0ZlLbYkMreHYo/yWBNPXoUGRn5HexjWW8kzgz0CjYrxg7IIs85sVh8b17T8gCE/28OpdNm19aM7Bvpo7zQvKZGIXFurQ3vUC38++8VvMRdRmAaALzWY1ynWMEtnxADlg2EsdD/bo+o5o0laP9DeF+ZeHTWnxYC5o3pSCTF+cgmM57HVO55lEOfWBArLV1LXj+kZvhIjuR5hpVcx8nnD2RCXMxemYCKpCnfwhWmfW2FIrdy7r/Oaw3JHdbbz7hT/HYctiHHQj55NbEMG6b0KOMLnGuhgU+6wwxqjrwhggGTDb/I9xLiglJLFyWiXMsEYjqhSFaG659Va5pK7qrND5GESjij+QYd04+ZSQWmMzosGQ6Qmvp+ktdsrFiLXo/gJ9PwW+84qgohYFWLEZpIxw== 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)(39860400002)(136003)(346002)(396003)(366004)(451199015)(83380400001)(8936002)(5660300002)(38070700005)(44832011)(38100700002)(36756003)(122000001)(478600001)(107886003)(6666004)(6486002)(2906002)(54906003)(110136005)(6512007)(186003)(26005)(71200400001)(66476007)(64756008)(8676002)(4326008)(66946007)(66556008)(6506007)(91956017)(76116006)(2616005)(41300700001)(66446008)(316002)(86362001)(1076003);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?Q?rEbNZj2lDdOTQ9OdzqyJYfEcHzX0SM8S4ubrIumjXsdCEpDwyxzsLTS0ei?= =?iso-8859-1?Q?IY6WhyuYyxopJAknJ7MYZZHdZ7F/Q9C+77URfPIeilOBb6RynUHjYCnnPi?= =?iso-8859-1?Q?aDy/Frnm46qjgbngz/FHY++3An4IlCsq7TCyNRkXcBanXVKK0CsDHQtfso?= =?iso-8859-1?Q?lH+7m8EoaRD6bushHHQtD5TWhEEHH/p/EA8Zu7qDLuINzxnewVfrlcLqwa?= =?iso-8859-1?Q?CLX4Ky+iyC0q4VOEHK1o5Hl79PwAdFnLkCB16aYuJffdJdkx/oemPYSrwA?= =?iso-8859-1?Q?ypf4VkInZKYO5GTXJThdFZ7adj9VEQJACP8YqaiRMTUWLRWkBSOZAmvEsA?= =?iso-8859-1?Q?rMmz0yLc46u7jn8PcjP8Q2gv5nb0H0lwT145Cg8QgUfEiJCxJLvlm5cxfc?= =?iso-8859-1?Q?Cx1BsZkDLiTefl4Evg7QedllmMcs7PRjRoSczEmRoV1/hLxDbK0gt7NsAx?= =?iso-8859-1?Q?MQMT2Ysx8LDNLUHTXCJYe/rvNWvcBItz03wa6jkZ2CEq8usLg++hf0hEuY?= =?iso-8859-1?Q?l1DtiMItEnsjqAzZHK9sDgbGuMI7k/pIfCfHSEL0orpgfK6BZiKOghYKHZ?= =?iso-8859-1?Q?lx1sXu8Qkn5urnbw7TOLJfXn+QP6UQUADNZqj9V//6MLy5EnKuCHwZTrvG?= =?iso-8859-1?Q?UWIdwuGZotra2vXSpUt9LKS+CtOLFg11mwJZyMRkGzMUJwcktf0+2bh8Nr?= =?iso-8859-1?Q?RQxDYtYgIrT+hO8TYP47/19rtkPRe+zV9xi/feKBRRGEQwDP4n/kbVrNJr?= =?iso-8859-1?Q?gk1/gv7e0of61DzvFrnbkJnwCB/kUk/CTjt4f6Hcwy4sar302MxcxSm2n+?= =?iso-8859-1?Q?vcgI+kiKdGJZPs54KYxC0kJ1mR9ASqL7szyOYm6K9G5tEk9hs7bcXy15y+?= =?iso-8859-1?Q?3aS9wQwaAsRbMJVx9nFN9L1GZBqSYS8+HQMozqfXKe8e3RusR2ZmmuZy8d?= =?iso-8859-1?Q?y0sGQrwiN5iHtWry+b2IB4BbMgnIvJV0Yl1YVkUFUrbHbNkqWdI8H4F35a?= =?iso-8859-1?Q?rLvYMPOzDTT+BBIo7srr7iGfwZG2U90FujBFMdrhqEPOZ6Np/JfXZDDBFr?= =?iso-8859-1?Q?jjYlvSF9LWj22feFbVxvPCkYpqV0tZHDd6TuISVY2Uq7k+oQEO2jiKtbV0?= =?iso-8859-1?Q?5UAg26eBl3yrOgpnnI/TKydRXCvviKdzOHM4oraZS+Y5gsBVO6a1nL8s5s?= =?iso-8859-1?Q?NCNBUHG47rPRrQeEnfUap9NVkiG09df493krHKV0szKBfA00mD8KHJLPII?= =?iso-8859-1?Q?45n3ntdLfdkNqfBm6K0TQ4SsYzk+w9BHTgiIbvzF4F7kbGjP5ZGXLJj8Pn?= =?iso-8859-1?Q?h2wAjbCgWyKr0Rt2/yBa40lEAAcKvQglpZ93XTJP+lSF4b3PDR5uYrc3hc?= =?iso-8859-1?Q?hI1JWVx3qGWGewogAmeQnspyheJaz4eAwKPK5Mv6/dyKv7Q1SzQKsonxJ9?= =?iso-8859-1?Q?mAYX7uNYiGDXANu0r+uhZfIg2XUvNMSHaltK5cP0KaAVUbj7eKoejZGHgj?= =?iso-8859-1?Q?r5hR96OORuVf+E3COPQFBWUh0H38vBcwyH1M8DDAVzrKEkw/4ZZLFIaqnX?= =?iso-8859-1?Q?fYbLn6d8jrt4pVr95R4o6AyPlehguElFLPd+WKBPqWBbCQxljzzc6ZTiH7?= =?iso-8859-1?Q?zKosuuuP/i3dV9/KcK+RXg63Fz3b/5yRWPp/+fO5DqXvKli6ESLvDr9A?= =?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: GjiF6BdoOuxHkPgADDJFNAtoqo4nVILkr//SsihVp0pSTUc0aZcMdsiBzh5TsEb3uremjaIvBXALg2DddyZ+WqQc3AyzjoChpKTZn8Ke6zoC2vFzDFtxJVfhnXfaGuGCsTiUYPJtKbi1EMH5rS9KMORlC8ZPxAdhqYF6WkCFgtJL1xdjjLhNGq8oNs16RLvrxyvqzJj3Ii/aA8CpghgEdT40PZIh8e10rJcs7IUpHfU7sRvHugLQ2jW6Z3Srtqs1cuwR9fLhVgXwHRYrzd67GhLIMAn3ak1RffRYVZabBrok60ZDfNEun8KA2WQyGh0ACqJvjWiqnnnxktOdBC8W6skGgqF3RYhCYZbFHMXuSChyJ4HD472hnsRzL7sDwHKmzsVu0kGlOkFZBFXRdfqh34MaIuQx7G74vyVUqc64Z2H77iv/CwhdlubPkxWzfPSAk1RZhZMjHuUUX4/0MPDusI2XHf6hHI0Z8teMjaSOA8DcPLFobfOVmpL2PpkR42FVCI3inmZzHMncwWpeqEUp5iGbhIp+ws1CEZtNUP+QGPIUYWKHVX86BsxNAkKyPSTRPo9ZoBw+t5mw32ewvq9xl9xjUNg35YbBufuWuZOdqMYAitK0QLL3wsHXq7rjdxtlbZ+gitMdDPEj5obBPzTl7/gwiDRwyYbLmliWx0E0N5q37HfC+4vHaXO5Sg3Fet61E6WCe+vUZfIjIyhFIBdmclpxrZ0IBfQEfzpgf702zduauzuTyGDIX8E4BZ7PPCf3WZ0oVhPIpLCs+SZVnNJ4SGe5ekBE19bENy80hhNqOe9zjdMeNiIJnMEuEx7Lul7MXd32dVlWB5WzSM/+ltUB4MD5TAIGUGAI5V0VrPjIXc9grC9lGsnQIj27Dd6vACE2E0OPUP8JuEecCW9diaQVZw== 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: a0c91420-d413-4827-c694-08daef516005 X-MS-Exchange-CrossTenant-originalarrivaltime: 05 Jan 2023 19:16:04.6095 (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: dCkzWeXZOWeCZGxaMM+o05hr9p5Yjp5OJoVTVJrqmyKYBu5nf5WEd1eErkDT9b5ksaHFkDpnVYO4OxPRnTcjPQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR10MB4791 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.205,Aquarius:18.0.923,Hydra:6.0.545,FMLib:17.11.122.1 definitions=2023-01-05_10,2023-01-05_01,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 adultscore=0 phishscore=0 suspectscore=0 malwarescore=0 mlxscore=0 mlxlogscore=999 spamscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2212070000 definitions=main-2301050152 X-Proofpoint-ORIG-GUID: ETck5X-j_ecBVIvQ0g416VGeNQHeDZ0J X-Proofpoint-GUID: ETck5X-j_ecBVIvQ0g416VGeNQHeDZ0J 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 76ee62e1d3f1..d52fca2dd30b 100644 --- a/fs/exec.c +++ b/fs/exec.c @@ -699,7 +699,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 /* @@ -733,7 +733,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 aabfd4183091..a00871cc63cc 100644 --- a/include/linux/mm.h +++ b/include/linux/mm.h @@ -2823,13 +2823,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 431c5ee9ce00..3bca62c11686 100644 --- a/mm/mmap.c +++ b/mm/mmap.c @@ -754,7 +754,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; @@ -767,7 +767,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 @@ -858,39 +858,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; @@ -909,9 +895,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 @@ -1093,20 +1079,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 @@ -2246,6 +2231,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 @@ -2261,16 +2247,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) @@ -2282,33 +2272,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 Tue Sep 16 05:49:14 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 9379DC4708E for ; Thu, 5 Jan 2023 19:22:02 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235784AbjAETWB (ORCPT ); Thu, 5 Jan 2023 14:22:01 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:45220 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235537AbjAETU2 (ORCPT ); Thu, 5 Jan 2023 14:20:28 -0500 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 57EC46E430 for ; Thu, 5 Jan 2023 11:17:56 -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 305ITcfs025538; Thu, 5 Jan 2023 19:16:45 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=2xnT8FDEwDbbI1gHr/DU50xezL1IoQwENxQTeCIHSGI=; b=JEk8YkRnS1VSKYYyqtahkSA/3IQ9x9ED5s8fGQRVCecJU55ar4ZmaauwZVD1UIGmULHN gUAdRe+dg3Fc69kOHQ7wAkXKeS3O6M7Gb2k98pixxDjdlV5oYsX1YRdtv7YdynbjCgie ZVpWaapnQOvShV/QXqlSEee+A+KqlEjcyR7lJIArQ17dogofwi+UXfk6qRmmPlQylPvq VE6FL+tgwF3bxSnCG9pFEUxtZ1b/jENXh4Kum1ciPmnPm2THKGtn8OUsehyGfF74fwZU Aj9dumD38elqDz6cHzd42uF224J3L2oWTI0KH9RjXHQZwHWepDDJH+9bCxsPh7o4PbD2 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 3mtdmtskwf-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 05 Jan 2023 19:16:45 +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 305I1EPq033688; Thu, 5 Jan 2023 19:16:44 GMT Received: from nam12-mw2-obe.outbound.protection.outlook.com (mail-mw2nam12lp2041.outbound.protection.outlook.com [104.47.66.41]) by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 3mwxkf7u5p-11 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 05 Jan 2023 19:16:44 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=GhsI0PqF3xAfvg/XVYJOsaoX2+H5fMVP74FyDAGvoT/MxzZvmI7VJilZ0LzbLDiRkHkx2cr7VsfJwkVDAuZ0m5hqsuFOE63zJjmwrYQ90ypddJ3hHVoF3t735DJCriPgiHkF4m/qSCOAbl76CaQgzeSo+T5K+EnFuugXzya7/Zq5h6RPS/3gVDEJDB3KeleJWr0ouaBBmhVfxQlysDlhXyLHAr8jhEOIuH8VvYjk/HnoK1MdhAH8wzAkFMK/JbEEwVorJeY9ugsBC49S85thxLW/hld6hmBTL4Sr7qEIYf1MS7BC8/UmI3+OJnC49sXfSZGP4PjjVz+qScFjXwLMuQ== 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=2xnT8FDEwDbbI1gHr/DU50xezL1IoQwENxQTeCIHSGI=; b=DC/q4ygMyoFAx+8KMKzflezsdrRhgyZdkn+LlFQxQ2OHtaMtneX5oXi0nq+VVSZ+8MVpa5S4B1E5gxBorTOUNHRxQI4AuQurNhtXnQz9jRoCGf8blKV0l5xwBa/27uNbTJUTnsIfXRbqN1/Nbm4TZTNNIvTOcMvNKGjfryFpjo8Gp7k4FyfRrqVENc52/CiONpCcjRZMs7G87YhwyzCLoimlhGRAY0GugHCYLylnkhtLALnrdkkgl3sw/WlzCx2a7DqJoRtiGqYPcpu6sJxtgNgBytXFmzNxlndZ77RW2HvhdPLN/14IVBhSJ1gpQdgal3qbuxcpCWJ1WXFa2eh4hg== 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=2xnT8FDEwDbbI1gHr/DU50xezL1IoQwENxQTeCIHSGI=; b=AWYbyuDp8XB3OIlFBG/kHrHXCpeGAXZT7U6Hierl1G8Kt0hU7OvPG+cmykutIYR2TwczbmRF2J4sSySSQ+qDo+dj/HA/saDoQ5uMaQnAg9G22viBeiQotIf+8xMPgJx06NJxzzVWtejXeRSQuO/sud/v6qI7ZSGfB+UYeMRGsRk= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by PH0PR10MB4791.namprd10.prod.outlook.com (2603:10b6:510:3a::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5944.19; Thu, 5 Jan 2023 19:16:41 +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.5944.019; Thu, 5 Jan 2023 19:16:41 +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 v2 40/44] mm/mmap: Don't use __vma_adjust() in shift_arg_pages() Thread-Topic: [PATCH v2 40/44] mm/mmap: Don't use __vma_adjust() in shift_arg_pages() Thread-Index: AQHZIToopuk2mk6qoUWd7NiOUa1+Gw== Date: Thu, 5 Jan 2023 19:16:04 +0000 Message-ID: <20230105191517.3099082-41-Liam.Howlett@oracle.com> References: <20230105191517.3099082-1-Liam.Howlett@oracle.com> In-Reply-To: <20230105191517.3099082-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_|PH0PR10MB4791:EE_ x-ms-office365-filtering-correlation-id: d1e5ce4b-5cf3-4797-4bdd-08daef51604d x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: aYIZfNlXES57fibzx5iXmV8rEa7iNPzEQv3Izhg7kWd9BFk7ruePb8+Yh0gaGsFstKMiyuML+MS8uUh2T0z8f/QxIOmCvZbMok0wGJKnpk1b9VYpUzKTAh3nFbfA6X2xoPpAd8iORy3GBLZgDs8Wdt852qshAAQVqdK2fpMQ6d9EeqU8y9hAcdqGeWqf6qqr5fdwE9I3b3zjDl1gJglu+su1C4QDSfs23enJjoTmIJFxMHewBg4WRHpbbT25eB6Vp+14LyrqdNbqWb44ZPx7QXpb26NTn11zIQgEH0Cacu+GtI1kktwZ+xf04ma2dkpAKQ8XnEw3lLBznD3B2eHNKq2XQyhbX2gjqWPqP4epRaw5s6tAtRqJlrpdTEmtw750sZSOV1v68q/Qp9OzLH4/lylOE/hiGegmQM8f3vRhG3I2C5nckGAJKP1UNSJHzaEZL8V69yvecvmu//7TWXlQZf4ZBS1MNss+2qv349wgkuVZvIwupwn0vd3Yvrnf7fgzNVAwg855xxms6imnyYDCXlcypBZoeOjikTnUp6/OJNPlSxCX696en1neP669L5wKFkZf31PX3eT3w9kg8I/4t1XiizN0T+Ndj0S0NiZ14AdV9etwj8kan3vg0vYwbr2uXdS3cLh6paTE0z/RvnjhQbrk2gYeYby9ZPMq7SRS39w6IDgEUmgOvxSufsmiZbDtSd8FJkJ72UO3cwsbUte6Sg== 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)(39860400002)(136003)(346002)(396003)(366004)(451199015)(83380400001)(8936002)(5660300002)(38070700005)(44832011)(38100700002)(36756003)(122000001)(478600001)(107886003)(6666004)(6486002)(2906002)(54906003)(110136005)(6512007)(186003)(26005)(71200400001)(66476007)(64756008)(8676002)(4326008)(66946007)(66556008)(6506007)(91956017)(76116006)(2616005)(41300700001)(66446008)(316002)(86362001)(1076003);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?Q?Wnqs0wyi70J7iggmclCAXKUGYikNKUVPxR1e4ugXOgKkdyglCAWuuxaSuu?= =?iso-8859-1?Q?QRCuj+kruxEV57SlRivWDLxZer5zSd5SuSMHl9De5DTjiMQ8atWzePRaaB?= =?iso-8859-1?Q?ikSX7XriznlOqT7H1Y+v4MrYxOsg/oVyKO+yuGTO6+aUP0jzhyley5KyGV?= =?iso-8859-1?Q?lEio9+uv6JFZe55SQ/FWYW40y4SxFGLWFj141+dsdFPc5yY1fytZOgI4+u?= =?iso-8859-1?Q?mLYoPgVT3oskMJti60PoB3CI1OlrhYHWk28rH+nwG1+skkuCPizUXJpNF5?= =?iso-8859-1?Q?RzkUULa2+d4Bk1h4cJqHQtQbryd1FkBQPisMBz1dm3QS6Z7psn3Xlu0B1R?= =?iso-8859-1?Q?iwFmwOy77WGU/Jej+iSiqgIvjqeD3T5QClvO9ujCzpROHtKewllKNZkHlW?= =?iso-8859-1?Q?9cKihvUqmlT2V5tv/K54w77dxNlUbRBnDDCe2suIuhgOEmtK7kQwxAycoS?= =?iso-8859-1?Q?4q835eQMVPnXGPUjREi2TKCFyL6f8DhuxIadSIJ7yebwHPOFqPGC8GRkWf?= =?iso-8859-1?Q?yEjQiQkpbnHOGTsFyqMbCu64XGiGaQO58Dwiy86/JacRnlfTStOBBDm8WU?= =?iso-8859-1?Q?girBv0R7zvU5qltF2O8HHM+JKUJbKI3tGkL2WH6Nn2eg3EszG0Q8XHqAwp?= =?iso-8859-1?Q?HmT20xH2NuhWVXHZahMY5ini5wvBTw2ss0wDhlT2f691Ls2EJXmubQFoqA?= =?iso-8859-1?Q?xrobL8N8EkW+ltW6tC28CmViUfGeVh/b6bbUqC59XHCXaVpTfR4Z4A+Tqm?= =?iso-8859-1?Q?StleEYaIWYY7UgJXZ+k1qhr/pR4ksYu30+sloCqmZ+kdrSGAv+0EgGQKa+?= =?iso-8859-1?Q?uL/62sPbAH8GPWG66jpXAjnx9YMv1DcT8LHGZeXEc/CQlL5MyUpNGCUH/I?= =?iso-8859-1?Q?akj4ADFZVai5gXAw8Y1F5OdFxjWspOMy4DL3rDXScq6hIO3YhcRhN0NrA9?= =?iso-8859-1?Q?pbCfeitm95hci0WB/Dla57b2x6TSgpSGyh3DUvFIwIgkIidkf8Qv4pmMC4?= =?iso-8859-1?Q?HaBiNQFJndDGAUJ+VMzQ6o0mGv7yEFSAQ7GgSJWOU0OPpYT+bCtcUooOZv?= =?iso-8859-1?Q?lxzwEBROLQQnHRsYdQreAm2f1TbNqWNb2jDjUg8xIQ7RgWj5XRN5bsgIP2?= =?iso-8859-1?Q?nPP5coGp7chyTt8F/wv0kr1K+wnnuLitKJAMv2dnO0EtwDBWl674ShPx8L?= =?iso-8859-1?Q?0n/toOUJSGtwI/5h2DAAH4fYtgVEpGJADDKpg1A7Z5hRIo/YA1NbbsZTL7?= =?iso-8859-1?Q?89P1bEBCmvWqcN+K3kpluunTjGLRNjBm/uGYdoa6o/FxbLM42c8tr5nj5F?= =?iso-8859-1?Q?2LTpB/OEJQ/dkpN+8Mhgs0RjYO5XKquneN+zHzoxSB5FFb+zhFS8/rfcBW?= =?iso-8859-1?Q?9sPOeMwz1f2JSA30G1e5lITW4g3McV+2cuVHOcHJAQbgad0eCKCMDepi6j?= =?iso-8859-1?Q?CIZOGZxR/2wHyoeFq4vgkV2x5Zj2blV7bsAwK56LEjFxnpiopoOt9EpDrp?= =?iso-8859-1?Q?xZ6l5Fs7x3voKm4RqZs2rytXYT8QJVZbBqG6IzJLvIETakAMOpfbyexLxT?= =?iso-8859-1?Q?nFyoZITecXrw0w18Hb0Bhqsos2fOE7HMjWekmGSjd1k5DTMuptrqGqTa/u?= =?iso-8859-1?Q?YoU3iPldJ5+3ExUy07qN0eQnvBtv2hJ29iBM7XRTIODq2VmjMTQBhWGQ?= =?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: UxocfaK7n5LAU65m3m56MUdXNb12ffJbOjz4TpjLN2nzgbgxeXrFHG44Zj4mTeSDw82DxOTTKo7cP8ciFfNV4a0GpAdqqhCbfz8zYZhcXoF3/XvSq4aRngGHfsdwqqbiJqKDr7b38f4+6Yu0NkBwuebVCVA3n9wc3ZhpS5vM30lnSdt+kAKek0+iU7Yt9CvTnoQRdobp2SZDEaDZJeeo8dSORKeVlXk4GEhrypYelBF9Orn+ThMWuvGxg8uouQYp8QcMOjqokaIZ2BvllWp/POqELzRHfgQpcRQ02kqTjBd0qvqXFnqcH3NZnsWMNPO6qnEBgvnwD3Wr6JOYSZfmPh+aMQAPl/IoJfk2HOt40om/JukCteZloiRDXJhyJemS1Yj77UinhhkwkI9X/+T+vijGGd6Ad0jzYEVF2n/CP+g+J/HPLAErsFoRiwNypEg++3S1uSjiIK1saeLnE7Em4zo/BfWPaRCHUFSKLXSUUE6xGo/s+EzRaS6vV+jTNNBvTvkUwZri1T1bIPIum+Fj220S8PWQJqLZKHd5QzV9G+Ms8Hr5DoTnwpNPRD75ECuWlGDz6mhSeiI6FzV2vC0SIfxyQ7HBU8N3mM6UURrxzNCkGr1VDtEXWLSNX+5UltnzuObUPZJSAanB7BYR0CylcmdzETtcnIlW91fMWqm6nNdtA2dT9PW4x4dWF7+D5xMSPJgW/8YRJ1eFYLLmTSLyg1v3FUP1AueXALySwJfdZraoX0DR2n/z5ueRFoOtza8CDwm/mvVH/sFxnKczQTJEVg4uNf/lYf8Q4JHkB0V0K6R73VI1zUhH+1PIlnQttHuKXJUIfPIVud4YQ6m38L69+6Bti7UAEqTXuUb7d3Xj2hUJJECrfbHm6nxdUpuZNYzQwB5TUQbDJRsVnYY1vlbPhg== 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: d1e5ce4b-5cf3-4797-4bdd-08daef51604d X-MS-Exchange-CrossTenant-originalarrivaltime: 05 Jan 2023 19:16:04.8907 (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: sgjWQgwwNcHF3538xNy+ap0e1x+abymr5fnvcTlIQBtKG/JSQ9Rwtk6J2Z3VX5v45LIarvbwdDbf4+IWoSStHg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR10MB4791 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.205,Aquarius:18.0.923,Hydra:6.0.545,FMLib:17.11.122.1 definitions=2023-01-05_10,2023-01-05_01,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 adultscore=0 phishscore=0 suspectscore=0 malwarescore=0 mlxscore=0 mlxlogscore=999 spamscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2212070000 definitions=main-2301050152 X-Proofpoint-GUID: gwfEMqY_5xVYKdyp9DUmco-nviV0xl_s X-Proofpoint-ORIG-GUID: gwfEMqY_5xVYKdyp9DUmco-nviV0xl_s 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 d52fca2dd30b..c0df813d2b45 100644 --- a/fs/exec.c +++ b/fs/exec.c @@ -699,7 +699,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 /* @@ -733,7 +733,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 a00871cc63cc..0b229ddf43a4 100644 --- a/include/linux/mm.h +++ b/include/linux/mm.h @@ -2822,14 +2822,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 3bca62c11686..dad5c0113380 100644 --- a/mm/mmap.c +++ b/mm/mmap.c @@ -696,10 +696,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; @@ -745,6 +744,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 + * @vmi: The vma iterator + * @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. @@ -860,14 +897,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; @@ -880,7 +910,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 Tue Sep 16 05:49:14 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 985CEC54EBD for ; Thu, 5 Jan 2023 19:22:34 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235802AbjAETW0 (ORCPT ); Thu, 5 Jan 2023 14:22:26 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:45906 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235737AbjAETUe (ORCPT ); Thu, 5 Jan 2023 14:20:34 -0500 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 205116F95A for ; Thu, 5 Jan 2023 11:18:00 -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 305ITchi025540; Thu, 5 Jan 2023 19:16: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=Lb5D9dYmkvlyu/H9rhqwjZSUxhGiHpFzlJQ5XE2d2T4=; b=18kzBsQFINdzi/FKWbbU62S6Cgwal3UKM+e0RQkXydHNBjzxnEbMuv/HbQ6IKwkKEClY L5P9BI4PVnumNwqcwaDIMqZGtfM8qkor0VjDN4oFs2heS07VM+S9a78V/MNOGENxQP0l 0HPfxGTP5nzAHrEWPp3M4pNlatN3ImQSjQwXTxm5jTIY0ZGXmkD0NiQ7Zw7hweYHAiRC Lpdm0CfQW7cegsbSs3KWL1NmTGJFMF/XRB3cU5o9+J/kiz7M5TpGLFjio9F+MbbR/B4j Mei3dsGpBjK6XfpS/IimoaEuJzzpZmM00me1bgFgdQXsCD0Vlt0T6jTSIA9pmYnvDj1q Bw== Received: from iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta02.appoci.oracle.com [147.154.18.20]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3mtdmtskws-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 05 Jan 2023 19:16:49 +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 305I9Tnn012151; Thu, 5 Jan 2023 19:16:47 GMT Received: from nam12-mw2-obe.outbound.protection.outlook.com (mail-mw2nam12lp2043.outbound.protection.outlook.com [104.47.66.43]) by iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 3mwdf0u4xq-4 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 05 Jan 2023 19:16:47 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Ly1wm34HTV+j+cJfjIoZstZu8F3DUS0JdRl/9H0Vw3CVyLDuW/jPVR0Vlrkzmx9RYGI1SYPu/alOUCQY3mHUcvFUmuAMana1uPBErdIH3E1/51DG8ttxLDpya0h8fLSjxR/7BPawGCWwE0b5pCLT9iUSesTNmPlrS4P+SmzLw2H13h/Yk7NS/p37DvayoRydXceOt/fTkKczBLBqmt4zNUtxgg5kibVWxl1Oc95W3hT8PBQe+AhwFJxWXSjKjXkqiDtushSTHELqCKMldHNCF/+0umBqtoaVR8zUAUxrk10BHU2RbcqXcnKiAGP4M3JW9fj7Oda/ti83FPjM0dnfrQ== 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=Lb5D9dYmkvlyu/H9rhqwjZSUxhGiHpFzlJQ5XE2d2T4=; b=fZxGdVBcvI0usOzqzJnZgTatjPDlQZfoz9B6Avvt4IXb0z1UxDxjNPViazUEdALAiuQg0gmfwB1k5yNnluO0Ho9MN4GBxyelLUsEcJm+JA/18NIsrZeJhWFB32S1B5Iq5twZRydYjuNmfmxzysXA43BsCxfxJ0V8V0WxPqTBi/yQaUFse1X+SMR7Vye0od6L/t9gRi5xWx2MbVm2PqdlW09JHhxr60jYlED6neKxS1qwdrjIYJxFTBwfVpZLY+XmI7IZgCcFc6P0lAw7wbNuVrAiQZt5f8Rg2kp2kL3KjNQIkS5DsRiyc3ZpMbIjUckOWjoD4sIt3xeT2ypQmII0lg== 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=Lb5D9dYmkvlyu/H9rhqwjZSUxhGiHpFzlJQ5XE2d2T4=; b=m3pUCj8DuZofBrw5djqddQXXkzZHwzClMe0xSvBsv9j2H2Z1podQi66BmtJukng8Wu2bDFJkKF905fHQHmVAbaDTb+h8skWPDKgtTshKw7O4VfT+dcUnVrmQxBpEdPa0hfwhj0Mrby26IAdKT7QKMrftlnWYbZ+415DHFyMYPsc= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by PH0PR10MB4791.namprd10.prod.outlook.com (2603:10b6:510:3a::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5944.19; Thu, 5 Jan 2023 19:16:41 +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.5944.019; Thu, 5 Jan 2023 19:16:41 +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 v2 41/44] mm/mmap: Introduce dup_vma_anon() helper Thread-Topic: [PATCH v2 41/44] mm/mmap: Introduce dup_vma_anon() helper Thread-Index: AQHZITooigzqF61MskSaz0KIp/6GDQ== Date: Thu, 5 Jan 2023 19:16:05 +0000 Message-ID: <20230105191517.3099082-42-Liam.Howlett@oracle.com> References: <20230105191517.3099082-1-Liam.Howlett@oracle.com> In-Reply-To: <20230105191517.3099082-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_|PH0PR10MB4791:EE_ x-ms-office365-filtering-correlation-id: bd052d10-48ef-4b2c-5c5f-08daef51607f x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: rL2Hk4UIkHYHxOPR1wqtdRYnllMslYymzvpLyu0mAF2dOolfjBmIrefCyG71c+7t0nTwc4eH458S+Wy+E6J0CZQf2+JZdMrfJznI+hag6T0drC8yNg/r4DK49Pwvw6aGmaBIVS0nXJi8GCCpk7G2yLQz2uUAM8NDqwYt+M4LFJ9UmF2ApukvGqaKi++0/qOviXDLv1PMQOdtcox4NZdwqv1LUW5M9VXY76TBq7DIV7DnokpHyvozGIOq/uetzcs1WAHM+77d+4qw+3EZu1aseQ5h2fpx1FFxb4egYwOdwBSAiw8QgtwdD7T6HPPky3nFUe1Rvgbgu2nCr7JZmIu2FjnJPqeHiSE289f06O0pL51SW5HBw+x/YQJZABOvY4xvFkRQ+2g9g42d882LHbk/vIe5cjySwCYIUVS6pdT8R/slEv9leUDkVwhHIZWWWu/D36f3UvwIU5OBJMzWVfDr9edy6QxkAXDkdK36/bpmMx/oaoJ0S72J8w5FSXYLJKgR4CQtb3YpZF5uso7E0cg0h+StCBvzin3Xf4lwergou90TH1W483pJQTLUns+SA7xDDP3GGgN+1+tN2eAWKle3zYSyIlXDxoNep4Si4QQdJWbWXEjJD1uIyPFxRtl66x9pv5QsmjUffkgcWvkthrDIgMzaBLdx2voRGbqQk+JiEdaRhiIvqhda7PfcpMvDkqBBVXxLuz5vYdr/Moefbmz2rw== 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)(39860400002)(136003)(346002)(396003)(366004)(451199015)(83380400001)(8936002)(5660300002)(38070700005)(44832011)(38100700002)(36756003)(122000001)(478600001)(107886003)(6666004)(6486002)(2906002)(54906003)(110136005)(6512007)(186003)(26005)(71200400001)(66476007)(64756008)(8676002)(4326008)(66946007)(66556008)(6506007)(91956017)(76116006)(2616005)(41300700001)(66446008)(316002)(86362001)(1076003);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?Q?hk/QqBVGOZC9/Gy2VqtQIldOt9L4j714Ng0Ob08Lysd9Paq3Um8IRzQ7IU?= =?iso-8859-1?Q?4APtB+QBQ7i4Hlc+zPXWQzeBDV9JuwQ0zeycSPqcrZJYzehZyCnaF73sE9?= =?iso-8859-1?Q?92IGR8t9OhhWLLpunadDn8s3EkbdmHUUrVtE9Qlc7WAFDiJezJfmCQWqZq?= =?iso-8859-1?Q?xUVwbEfnGumsLNCRO5tTUZpnfVhWDp6E/2Xh5i3VSxeXhD66+QItBRjgOm?= =?iso-8859-1?Q?Rdd09D8ZISJKSp6fGCmdq7HjEZ08ih7UmLqSInc9fYpIl3Y4IqbxcWFfYO?= =?iso-8859-1?Q?vdnMzaTiRSH8GTdZuNwXwE3qLVt++2y58/GsJdqTJvJ+lcObZJYs+CpgCo?= =?iso-8859-1?Q?Zch9KwoG/hOB/fTfwQzP+dZRZf3as6WbngU0cV5vCRExuQEoml7hj/XxoV?= =?iso-8859-1?Q?ZrKSWms5hfFvcriFuPkfg1jbXS0CD5TsDGFrt2pMipMQ/AGA1tj8f26KHv?= =?iso-8859-1?Q?7uFaCiT+DZ+DrgwQILsJ1b9fBINBrRL2v/brPvrLa17Lt+hGT+acBSwMl0?= =?iso-8859-1?Q?c0EeSYsgoDZyQyyei0iET4MOEcxZPoeSz35CTBK2W/BLthKA9qJjewWdeo?= =?iso-8859-1?Q?EDMa51IBtFUQohUbbMY9usAZoPFkjx4hqL1F0l+sMlA6/ifmg251ygfKPp?= =?iso-8859-1?Q?HKIRdE0O0b418dEqb65ej2zNiQU7bqwg3/9kXou9nars202KPS0vdbYdFt?= =?iso-8859-1?Q?ex3YQa3+gd0u8+ufufhzTKREDjavop9Ueu4hOJQl6ZiTO5K0T4pEOu2UfP?= =?iso-8859-1?Q?llze+20IipBiGYu6VYgsyUqKVJUgX6kEbTCBl/7dsyHpICi6JlGiW4mimz?= =?iso-8859-1?Q?4zeSQNNXPYpbaSVYV03TYyqsbizfLQfNBSBZEs034+tnnUeAtlMQ/j4E+f?= =?iso-8859-1?Q?snTnlOwVT3HTSb5gq/YGWw5vNohc5w42kuEPfoaFLDfMP3Pznyzsa1gmvh?= =?iso-8859-1?Q?KDhQHzW7wAkxAl3z9NJRX2i9YSizi+NGzZwd7NsCKDSYpGy0gNq3t+lDbO?= =?iso-8859-1?Q?TzkCAeaAOjRo4yQikK7lxTbwtnhWw2rCd9F9jvQekT4m5x0gR2Uli1FIS0?= =?iso-8859-1?Q?nfFib5bPoQ4HMUa9Gfin7QxZ+TLzf+YjhR54a28ELftxJU9+E+dZ87V0xV?= =?iso-8859-1?Q?TPvl0QWQF0vmRkA0Eh4pq0N3pBOirKhUXo0upAKSXl1DRaOLeuROEWhI4N?= =?iso-8859-1?Q?USvnFU9OT08La/Eba0dLOdxKnzZYIVTIWJrvDMR5CZfJ+O1/B9Mr0rs/Bc?= =?iso-8859-1?Q?fQmlxd9BqcUl5o+hB2BGmA7fU72TJoz02fSRYKCDBppvnDbP/+ivovXbs/?= =?iso-8859-1?Q?qdQLQVL6xzENaoIPSdEjsJPiUlpHadZx4yxqzuSHQdHFsvgyYcKvJB432B?= =?iso-8859-1?Q?gRCSdfb2LnV2cz3b6R9iJEQjr57XPQkZh6eKvDQ2KLltsMJof0PKj6M+8F?= =?iso-8859-1?Q?jyMsYaf0cHTQUOBsd1KaXoPEdLB0SejeA7ojLQoD2s07FU6zux5V5aWp9M?= =?iso-8859-1?Q?9tS8oGZyUNlTVPzQ2nzhMPgu10GrhLQxsZ15Bd7i4bDLDPVq+wZ9sFx6YB?= =?iso-8859-1?Q?Wm6mNiZD8e1EIxORiT+sY+0ywF/6P8Z4zUecmFQDg2SpLUCGeybNRbOyCF?= =?iso-8859-1?Q?8gH96tNviARBTL4w+huOPGPdOLaFEP5R8EGZOM2e2tENI8RT6tY/ntTw?= =?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: 1xCnvFcvJ5fWz3v/fE8gDhurzhfDgvaibAS84qHZtcgDUA/vQ9Mx/qgTokLf/iIPpVXtnkYUYGPsh7x3vv7Z017iZX5a7QgCntT0wo3q6bKrUQatj7p0xhkGKum32H6neTUzL03Maa1HCYlYb8BPcnGGk/iR1PoctfhyUEPGC8mn8uqdWKecOvfMcn1/yh9WtMjb+LoWwZjxWgYNrM/lJk2JBsqUuo0wbkBata/MLKlosLZMUOEqtoIFXG8e9A66plGgmiPbxgGZw2JmFMJOAG9xMMkWhvEdDjI+uB3/WEhKZIoMF7vKXo4Ru0QGq9+Oaw+fhIhMn+a0iRr16ytqUL1Su9avYAz6/x5XozNQUSCpfZdxnFPku266i/9umOVdz5wY0wAirFf9DoWHRfQhM58N7abIS7ht78iCPC6su+hfs4qodYhFmly8bz9TxGbfWjDCVF6e5W4/PD4x9qG/rStFxWfenn1yVcOK+oNKcPeralhw6xR5NULIIYHTywYz8pLTOMfAH/D1QkZKD9nfhuURYaqbYX9X1qmufNGylVzPe+gxUy/2mU4a7HNuy/yBQuHDI4l6Al5noR+4K9P4D7k++Kck943hs93WkKPGfnmZ9XF26xV0Ke3jssXdpuuc7uH/L06JUWur0pxoOWNqw5g+woS+xxNGyJhQVMX5+uxB76tO2iWrDYuQLGydxQqQz3XEh8vqL69j1fmA5gIRQVaHC5qQlWE8leTR8W1jOlc+rdOBIFRS++SH4R8zxPYim/QEYA+MrY4yNHVIgenpP1SidiO/DGV3u/zvn4u8DktUYmwld0L77mOIQ8Q+I+MQYwUJZuJQMM++CMVpfCig4a6avW933Qa/04LF9e4090cIpXounUcl0PJSuhz+vQP7P1v2vVbYhx7IK1ccQ/YqRQ== 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: bd052d10-48ef-4b2c-5c5f-08daef51607f X-MS-Exchange-CrossTenant-originalarrivaltime: 05 Jan 2023 19:16:05.1563 (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: XRH+3Q6gtXTY5zd3YJBL5IAMwwx9ZUClohfORGRI4ZoQfTRypxyLbJBwms3CDMO1Mp+cZyPdweMtRJe6WYhppg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR10MB4791 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.205,Aquarius:18.0.923,Hydra:6.0.545,FMLib:17.11.122.1 definitions=2023-01-05_10,2023-01-05_01,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 bulkscore=0 suspectscore=0 spamscore=0 mlxlogscore=999 malwarescore=0 phishscore=0 adultscore=0 mlxscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2212070000 definitions=main-2301050152 X-Proofpoint-GUID: INjkCY-trUIadTSNtXuIJ2a8zSpL1GWC X-Proofpoint-ORIG-GUID: INjkCY-trUIadTSNtXuIJ2a8zSpL1GWC 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 dad5c0113380..1e9b8eb00d45 100644 --- a/mm/mmap.c +++ b/mm/mmap.c @@ -679,6 +679,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 * @@ -704,15 +727,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); @@ -801,10 +821,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 @@ -839,15 +860,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) { /* @@ -855,9 +875,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 @@ -865,24 +884,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 Tue Sep 16 05:49:14 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 7543CC3DA7A for ; Thu, 5 Jan 2023 19:22:34 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235787AbjAETWO (ORCPT ); Thu, 5 Jan 2023 14:22:14 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:45884 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235718AbjAETUc (ORCPT ); Thu, 5 Jan 2023 14:20:32 -0500 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id EA1686F943 for ; Thu, 5 Jan 2023 11:17:58 -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 305IUR34002869; Thu, 5 Jan 2023 19:16:47 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=5JYDubWmB7EXh60uJz7Pi7ZedtauCJpMP8gKBFFvuxo=; b=B9xNfZgDVSWykte8mOUqOXoeJgAccjzalsAI+PSTyZitxriEJ21M4Y7ij/Q7DLlXibVF 3quVBgoZJH6hHgXz9OAD2Xi+FhPk0SBZqn6JiPUbojEfBZiKL6j3kPML7NfgSD+S7L08 OiLC8+NmvJ6uwktiqJQ5WqUX54PuePQ6otHZGakteaLdcbtSo8eUEFg/SwdjWGUuocZ5 xb0n77lbJObva8thhHEptBTCIZprbmO5jCNaC/H88ZoX5jd5pjxfw1SSHCZhA8GwxUAU Ma+uXZt3T+LKBlp68pXuRgt3BzJA8Dw5HSqLKHyeK4Hie2mBRkDw6Acc2WU0710kgDfu 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 3mtbp11q2a-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 05 Jan 2023 19:16:47 +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 305I9Tnk012151; Thu, 5 Jan 2023 19:16:46 GMT Received: from nam12-mw2-obe.outbound.protection.outlook.com (mail-mw2nam12lp2043.outbound.protection.outlook.com [104.47.66.43]) by iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 3mwdf0u4xq-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 05 Jan 2023 19:16:46 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=SOzkADEc9xCBPkVN77rvlj/W80W3afvzOb1Ke5vLqPQDDZ6tyg9n4tcH0mtRVt+5Jh5mbl5hLteV+1Y9NwWDsnvUsg3XqT10NsuXxbHqsXd5aUW+4jtpYjSVEF2T+Tye/ttGpTeqSIw1+E1Wcbdps1VlR9vkiRiS1w8S6EF06rE5XnsfsZpT9pG19yEJMJEbBEzowPUKtEIJtgR0b5UpNM3qILB2jM2TvjMds51MVtdqASdw3DsiDtE/B2hoiM0FC4xa6lRb5tWWRg1TAIGcRGRXYUy03v4x9n+g4t+EuMLB11uY7Xa2sc7+GKVJ746y0Vt2jBR8WdlC4727a/o5wQ== 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=5JYDubWmB7EXh60uJz7Pi7ZedtauCJpMP8gKBFFvuxo=; b=SyNLvTx1RkIgf4F4JWQLi6I/ye+hGfUE3CEndUqg5HKUQ+wDU1JZZtEmLdQcQSJjGacG4uaZzVftrijOVI50rsDWHFSaLsq5PkTwoEapTXv5YZmI3Ko8/lxZb5xVQrJkW6UNFCmX1SPREX6ekHApXY/F1IOswbmcwO1CMRPL294A2jQg2BuaPZ2aFrJlKG2521RIqJm6lQNrNtu0ZnR9LOqEAw/p1DVuWiSQDzsk2XM7nZF70XSM8rpZqKixD5+qX1Iguf+prW9nXnfJ7GKKHKeydJlprmiclAlpfbATNRTiPOjVouZbHCcO9mJ8v01OxcGsUnFUU9Me9h7VXI2eEA== 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=5JYDubWmB7EXh60uJz7Pi7ZedtauCJpMP8gKBFFvuxo=; b=cvveWnGO9YUphKPIdi4PZkfiT2VN5+Xwu+tFoyTOxaRcFEpnsfyWVJ/mnVbrUlXccTdQBOFm6JOwHH+yzT92Xy6UNuMpgB6oP+DCj2RD9BTpQn8KnLSrsJt8e48ozgq1zGaQfP/c8Y5D9StvDOKvueutnsWSm7Jt5lAD6O2JXVE= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by PH0PR10MB4791.namprd10.prod.outlook.com (2603:10b6:510:3a::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5944.19; Thu, 5 Jan 2023 19:16:42 +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.5944.019; Thu, 5 Jan 2023 19:16:42 +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 v2 42/44] mm/mmap: Convert do_brk_flags() to use vma_prepare() and vma_complete() Thread-Topic: [PATCH v2 42/44] mm/mmap: Convert do_brk_flags() to use vma_prepare() and vma_complete() Thread-Index: AQHZIToo1jpEoi8x9Uu43vq+N6ajBA== Date: Thu, 5 Jan 2023 19:16:05 +0000 Message-ID: <20230105191517.3099082-43-Liam.Howlett@oracle.com> References: <20230105191517.3099082-1-Liam.Howlett@oracle.com> In-Reply-To: <20230105191517.3099082-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_|PH0PR10MB4791:EE_ x-ms-office365-filtering-correlation-id: 6a8d069c-abd1-48fe-93cf-08daef5160b8 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: Z0jnPFzfSEnxPS2CxlgOlwOzged1H+RDcEHTX7o740eI2UCmcioVCFR/VN5cHP41uXK1jEbsDwII3eX246w8wlzLC15uRRi/oSaj4LMzrXEDfshEHmitwnzMiSb4ZtUMvEiWFYleZshbv1cjxuMrX8cvwbCzBxNja4XF3DOUGCzY1jifnFg5LrgwjZQYIFzDCCucfJ9b1+SBzj//I+oi1uZtiRj3y1nVnCt7Lbs43LQQgrTlgusQ+oymxoNuO+ABmMTJvhw5ozYFFVte04S1g2dwNikuM6x7GqjenqPdIXhQwNUNV+FdwR6z8h3m5lGXgP0130N/RwNlezF2A27KCRMm90dnmF9SqUDiWtG4XwY1BE8ribdG4W4yGQfg+z+y1WUWPMik0sU4+pg2NxaYhJ4b70oqfjjI2Oj5/Y6p/O/Jz58D27XufuPxhO7n/21mpjYsZ7HDnKRixeXvavyz/3Wi0Ukx706cIp1/2Zdl99iVteeoiqOU4pMoIiJdiHjyA/KXR/43iuXmzEjsdE+x5NSRIpYEsQUoVeJpPV7S25oukTUbI9KO6apt1blIiiAS7zJeMOM0B+uil3bnSEHf14JrhUp2IJFwQLgQwgzVHubRhzrKIMjSKRvnohIIDiR9JKzWugHLv133sBTeyW5cfGPgEY5qPpUT6RTTtEGB6ItHfsY/hFJ15wH/Ubn7ziNcXrNW4daXfwE20oCgSqpy1g== 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)(39860400002)(136003)(346002)(396003)(366004)(451199015)(83380400001)(8936002)(5660300002)(38070700005)(44832011)(38100700002)(36756003)(122000001)(478600001)(107886003)(6666004)(6486002)(2906002)(54906003)(110136005)(6512007)(186003)(26005)(71200400001)(66476007)(64756008)(8676002)(4326008)(66946007)(66556008)(6506007)(91956017)(76116006)(2616005)(41300700001)(66446008)(316002)(86362001)(1076003);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?Q?CL/cPdwsA42VHkKoyiZ/FHqeHxu2f6Lhj7tHGkFbHpIuH1xq+hZLIn/qKT?= =?iso-8859-1?Q?bSyFE7Yj8TvEtobhcWUJwGJZwvKlrhcT+dpHab9pmNzSM3WcHtaqOhehK9?= =?iso-8859-1?Q?ZRlnY/oLWkjZXnqXyfMlpWWNipze1am+5UcFxL+8vq8cJUVaRF1xKU5ddj?= =?iso-8859-1?Q?YobjabM3hK+J/gtPMtUGDQG8Ap34y8mEoGuTXwMkXvB8nMlp8/799BxM5C?= =?iso-8859-1?Q?FZg/w2zlQlZ/m/0/RN+ZUDAHA1oUlr3RuzgEb92xgTxME0NG856NJyfDgI?= =?iso-8859-1?Q?T72mdyNTayUaXobVoyuZWI7vFplXeBCf4S+xiw/dPRW9mVb2t9j/27jgOn?= =?iso-8859-1?Q?NNcv3mcrSwK/Y5VwmBpXU3RwmosjyIIKgspfkV4NoH/Ty0Wgb5Pxy0BNA1?= =?iso-8859-1?Q?pAxOd1txOLCLl8d2nkNQHNDU6dXzZTdZCrB0P8wlW5Sz0BW6eSCXbQRay9?= =?iso-8859-1?Q?iVCIPk7DSqIxOia7UadNM1GoiR01FtCg7BWzZ7ZYgwL40Yxb8aweOMpirj?= =?iso-8859-1?Q?Oxy24dudBH1lrO23WBHseDwy3x9nGJfJVCWveLSvZgpJAb1ue5hLwW/sbP?= =?iso-8859-1?Q?MQtrG6O5i2p+q+5HibW3PxCzow2krUip6K0cbfr6NqrDp//iYt93lmM66q?= =?iso-8859-1?Q?q7ml64trUkN1ESfI+V7SKUW+J77ZnvV2d6Cyoj6qWP1w+mopalTcsEwRLa?= =?iso-8859-1?Q?ZiudfM3j6svovmdeRFLQPGIfjS6NkaoxfWUdGTKLlXQDgjVR8iLt18MXFr?= =?iso-8859-1?Q?Ezn0LdYSrFkwPSo+Dsqy/P7orgiodU/dLOgr58A28FaNOQGhqdjisW6v0k?= =?iso-8859-1?Q?b/BhxOh6jplLIDotIU5Gu2wEAho9+GD+F0ojw+StT2AQYCFYyoPlMP7vG9?= =?iso-8859-1?Q?vIG4xYq/2bjvqiwl5GHpymhpeC9mcoBvp67oxQom0AhKSuEa5UdhqdN2aY?= =?iso-8859-1?Q?82x3t4U+x3doOnzNFJB7+puvmE97XkNNGjxnWx1pcV0mMPupt7z/8RVVdG?= =?iso-8859-1?Q?hvZ/R4D6dP5ehqYXKOsAL/whmD1Oi3LqwuS1oVd+8DDEiPB/hqiyq4LwsY?= =?iso-8859-1?Q?1ucc980SMIslLcFnpcdG3eQsOXaF7xhRLy4TszWcTvbdjRWQTLwodV+G9l?= =?iso-8859-1?Q?PxXWFwfV4Lenu+Rv8G2sbFiDX3yJEdMgY+7aV8xgUV0OfQgqp/mmYnt3Gs?= =?iso-8859-1?Q?8/mbaSunAsVf5Bkq+uzudxkOAIpZabwPoqU69BeSnoX7B+KuAgnTIX+72r?= =?iso-8859-1?Q?XHS8UbvuJIbSD+mK4wNfMkmaUU63WRS+wAs5ZUsGV1nExdhnVEQHHkxr0k?= =?iso-8859-1?Q?VmVDWoH+jCu/RVQequR9iczeLBcjZ/Uy8TCIk7PTOqo997kgTZR+PTHeYb?= =?iso-8859-1?Q?Ww/lWCCaLwf2ahisVN+6wOir3NP3n3grlWmPYH103gYpU1B3dMjaUwPdbR?= =?iso-8859-1?Q?2SuM1lgdcKMe0GqLJbW536aXMBO1hpWV1KQ84G5NjETce2WJyMLCF/gJSt?= =?iso-8859-1?Q?m95GvdOMwQwGZfbTGbqbck5fybiWrwvM7KGKVDmJFPJqobUx+NapmV0vT+?= =?iso-8859-1?Q?borFEONrtyyoGPdIPb2NWNSupEbVCJTLX5yLXXNeWrGLV/s1ve1smOc4gc?= =?iso-8859-1?Q?GbIDhw3WbWHHZOZoQvsGlaRNEe7kM1OPxiOLGRZygbzfoaLcWSQ/ouVw?= =?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: jhUSM9vB+VVrJC3YTsNIO8MBPmeq3vmIMVFEHsV4DmchPlSFKDG7w+BLCZgqtz/fiiYriSWiON8aVm/SqS3V3tgHfWaELf8fv4Ms5fnf6YNsIof/J7NSu5cvbC1c46JTkzU2Zjb/C8rMcH4Vl2VjYuhB/Xs4BI2MBkGR5Q/SikVtoxVVrOQ334xR4ZjNRymrrgkYAThSW4jHEFJDUHDdQfWUDUPEisKyUkmGFmnnUdrefWv1N4c8hPOl+IngC5vBj9GNLlP9g+xMfqASErDj6ao4io1ZFcYfeD/HqW/QdPBZScMkrxUacc6eVkD4dgywi9fI1SG1fU9zp7HQjMSm+u8iUjhKu71jCCiBWMB6PKc1yGBd7ki+vCOPVUKbFtt3NBCg485/+vzKI+vEl5dTIoFGFnpps6/q1BIF6kRn3yFysvFiYixTSujkEkQxwmyn2PNwVOmhGu+WYRmRIu2Y5MvliHAAH1NwrI47ABqtv1y8IBr3L8y1nJVScPsNzH8HyicPNvokiVeVFPmrwUDKbjBJHyU0oDrK0q/tCBjm++PiF1xiENHtglZwFqW9bho6Qlti0Aw1a+UGBx8gktQdp5KuXpXqm6Hr9XG7CdeAjYlzvMiBevTIpDJUFZHOqoZMX38J2UcxQURZOd7uqDOl3TtQJKSdWo82B924NvTXrJ6Y/wzms3EbYrjGqaV9bcSmDLS4Zagn9rZlCalLuQZEugNqaZixcjqtEYfOA+Zor3QrVFHTJFphBF6Fv9G1HBMmg6IxPc2XuIUcHIh6HdprR79PfpnzdeW6XoB1zPU8NH4xdmPkzlwLUw0QKjo+n+bmx+8m+BZ0vQJXxoRMJ/CW2VHjUtS4GYSgXxbAiEvQI7mFSrUf4TnKIeggk82hgafAH/QLL8TbjfVD5V9rix4Y1A== 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: 6a8d069c-abd1-48fe-93cf-08daef5160b8 X-MS-Exchange-CrossTenant-originalarrivaltime: 05 Jan 2023 19:16:05.3751 (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: jfGaQVHihMRLWnab7rOGr9ePEd2YkrWFh6kmaq93MxMhyWD/ju7pKv6KiTxyw3CWnoXtE0nV55Oypt2yd6tIww== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR10MB4791 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.205,Aquarius:18.0.923,Hydra:6.0.545,FMLib:17.11.122.1 definitions=2023-01-05_10,2023-01-05_01,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 bulkscore=0 suspectscore=0 spamscore=0 mlxlogscore=931 malwarescore=0 phishscore=0 adultscore=0 mlxscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2212070000 definitions=main-2301050152 X-Proofpoint-GUID: GkJNdrijSKzPXYb_-nQCClCUYeKvt1jP X-Proofpoint-ORIG-GUID: GkJNdrijSKzPXYb_-nQCClCUYeKvt1jP 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 1e9b8eb00d45..6dd34e5ff1f7 100644 --- a/mm/mmap.c +++ b/mm/mmap.c @@ -2979,6 +2979,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); /* @@ -3006,18 +3007,13 @@ static int do_brk_flags(struct vma_iterator *vmi, s= truct vm_area_struct *vma, goto unacct_fail; =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 Tue Sep 16 05:49:14 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 86B0FC5479D for ; Thu, 5 Jan 2023 19:22:34 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235795AbjAETWX (ORCPT ); Thu, 5 Jan 2023 14:22:23 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:44636 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235742AbjAETUf (ORCPT ); Thu, 5 Jan 2023 14:20:35 -0500 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id C5D686F94A for ; Thu, 5 Jan 2023 11:17:59 -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 305ITbK9025520; Thu, 5 Jan 2023 19:16:48 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=8X42YIEluPVSvQF5e57VuXQC/2wRI7tsq11bZj4u7qM=; b=iDzsMY7Q6+80BNR7KP/iuYl8hEnMTzWtGW7Ajkk/6cJ8PAix9lFiIRXMuV036BcXQYD5 fhQjZtmjmHeu+Gs+31Nsu8yRgtdDfZyUufojUb/H7e9XN6Z37BeYcuV0SLUeHQQp3gDE TBL1dod5W+gb+aKycsPPtbTQ0JMVwyUDkA07QyzR055ss7xsp92tOs7AuFx/bPrcfEYZ wiM8XSK9h1sQl20hUsuUf3e7rxmi8VoTLwqev0Em5BS+kQPJE0f+HHSQRTRqWYzOdH/p 7K4gqj/25T9zxcw02gpLrs3kiHd0P2nBzAgZKWNBX3+cB2tDEDBCyukBfAjRFNeGRoxq YA== Received: from iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta02.appoci.oracle.com [147.154.18.20]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3mtdmtskwp-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 05 Jan 2023 19:16:48 +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 305I9Tnm012151; Thu, 5 Jan 2023 19:16:47 GMT Received: from nam12-mw2-obe.outbound.protection.outlook.com (mail-mw2nam12lp2043.outbound.protection.outlook.com [104.47.66.43]) by iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 3mwdf0u4xq-3 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 05 Jan 2023 19:16:47 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Q1CiDUApUpaWDaQqjIgTfPS+GyGILO6JTPcv9j+FGY/NP2NqgVlkc41xQZlAvaT+mk2rawjFR6hfSZXT7vvcUHlqzH9v1vRH/8PdWlZgERVd2KarwMx9qyjxo3iENf05BCvM4CZshvV4p1PFoQl2jPj6a4U2DalFHZSVLP4sEgJz8kxiU3C3od+I3L5kEmU+1/xPXT3w42+onFTIFCY5gy58ZIZGE2xrnL2IEOINEwcwFhUqf7jnwEih325m1NLQ5DfsYf19kBV3bBnZs4l6eDuqd8pb5/GPE1ELntjHmNPlreCXByEz9a4vOsJvWjVddYQC1rzqfz72y8xrPPjSFw== 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=8X42YIEluPVSvQF5e57VuXQC/2wRI7tsq11bZj4u7qM=; b=kPKK+A9hE/XHsFQRdKDaYjJDp9DPQAZ1KYxMcq4lSC7sFrB/TUltplLSvIXpjUqPemG0YVxML3DYXlihorkR9X4iuzmuu19KIgOgdJ/M3JQuB1HvTC2piPncNH/CXDXSCylu56xIOjoNtv/JP0ypn/w1Ir5sGl8ma1Zwu3JbNqJ+/aBZ874phuq1pDH4KbaMdPdAgMRbHRDF+nBOy3VGiV+rdKRMYnX0kK8gf2u1BK6OMXoesqBFgRf6riaby8W4ohhXe3qTxmfdxC4JW4HiqrHLFW8Xf36Tz0g1FcMZ7gGEoW8JBEHGXP/iDsOFXngSHhsfaE7k2gdKQCwhLnDLSg== 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=8X42YIEluPVSvQF5e57VuXQC/2wRI7tsq11bZj4u7qM=; b=cqs5DU6PYkOcWJeI2xqtKAv/M4wmZfvWim/RqM1BOC5LzDtoYvv7JY8l1s/Rs5kVnSp9ZMHA8Jx+6jjEqSD/VJp4xIk6/UKLma6ceI1+iDAmDtrl/5i65w0nudwOi+Rxxk7nK0QP5MOrPqBTS8ComkZRb4gOwEyaNS9bQ253dz8= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by PH0PR10MB4791.namprd10.prod.outlook.com (2603:10b6:510:3a::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5944.19; Thu, 5 Jan 2023 19:16:42 +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.5944.019; Thu, 5 Jan 2023 19:16:42 +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 v2 43/44] mm/mmap: Remove __vma_adjust() Thread-Topic: [PATCH v2 43/44] mm/mmap: Remove __vma_adjust() Thread-Index: AQHZITooQKNu+CQr+0yyrT4FApFQNw== Date: Thu, 5 Jan 2023 19:16:05 +0000 Message-ID: <20230105191517.3099082-44-Liam.Howlett@oracle.com> References: <20230105191517.3099082-1-Liam.Howlett@oracle.com> In-Reply-To: <20230105191517.3099082-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_|PH0PR10MB4791:EE_ x-ms-office365-filtering-correlation-id: 93297b97-5ee3-4d76-cb3e-08daef5160f1 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: F7Rv6rHpcbPIwbY71MW3D7BddYjUyJAEbK0jh4NJDoQQuIB67kB28b+V09P0vjnchB2tewoTISWEIuxHaYCD//POk0NAkuIk8rsMqAv7Q4AeaetUzivBvCtsuhC7bWvl5urkwqkC6AYtyPmJu2xvdP2ZUhGCKJFciuK0FchKtYONiSkfGKLS/GdiZCq5oJ9dxnSKjlMzalJZJa8AAWLXj/qHJUIYDKXSJVpQ5fIoyCiliuucsBe1Aan0N3tZK0ryhOkNb/eI7zUzRS/Dip/boofwSbU2g9FoeAQusm4PXe+DrUfeNs/Doxydgj36EU4d/YtoRp/oSlgikkvUFOQ4Q/fGdDjBIQqbLSfkUHImXdI1jOvKoeyDIP0PdIBQa+kso6GReOjhksaS0l0Ltrf3vU0CJ7qg0LWLWcZ0FkSvsc+KVcauzqrOpYZGiWq8cyow1Z9yjk4vWeTVD1MkAl8oAXngZQkNcEg7yS9Qxgfpzq0qDlz06coB1YVkUAj9ix5Fagv7BU04BXi57/u5z/YgyaRp7sA42b5WCUGW5441iUJn+C2diVoYGZcwggTY4slKxsIfVgBFLyE+vevTgufn3KmvIQHPGCCzkKTYaFoq3A/cr0/Ygl6ig1D0ssj3+FDPfwCpc+1rdXtG1o2pLn7Jc146XH0T08oWVOrSK+WirM1Lteo1K0fBPYJyiyy+VNaMHdPpoVsC/y0BW0Tuj8lKww== 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)(39860400002)(136003)(346002)(396003)(366004)(451199015)(83380400001)(30864003)(8936002)(5660300002)(38070700005)(44832011)(38100700002)(36756003)(122000001)(478600001)(107886003)(6666004)(6486002)(2906002)(54906003)(110136005)(6512007)(186003)(26005)(71200400001)(66476007)(64756008)(8676002)(4326008)(66946007)(66556008)(6506007)(91956017)(76116006)(2616005)(41300700001)(66446008)(316002)(86362001)(1076003);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?Q?R1R+ujTk5Ydh/QC4tVRKmvbW63JXPtpo5/+90bvz/EcvTaR0yvdxuhZp0u?= =?iso-8859-1?Q?GWb6KzlHlq4fQEHUeNHhttBSM/pE+/1sQy2VPkNVcE6rZFVo73q5VOnXs9?= =?iso-8859-1?Q?MQN/WK35jFGSvEnWt6J4B4NLzmBkabdTOS1tN+DCwvwI2UoZGNcp48JZAp?= =?iso-8859-1?Q?AODOn93ehGsWDLVVDkDzaiQuwlBq8vEuOUW99XtOOQpKai3XPaY+FFHXsx?= =?iso-8859-1?Q?O6UOK81lU6S6QdmCX8Gm35kCBSgMmLYJVhRxUxPjgsJcNHRslqgMHE9CYN?= =?iso-8859-1?Q?kgLzi8cfus1yIqQ4GbrMfCrwsYtMyHx3P5YApyvZViojS1sg03URnm0ph5?= =?iso-8859-1?Q?JfJ6QQ2xojUeEpj0kxMs2JB0hOmuAl/Km001x860ip4mi2FxEKXQMEqaxJ?= =?iso-8859-1?Q?txnVH0ZeSRRJj+0GimoHieCLL2EeR9w4DpOXbpe9wjJJkvyfW58EaGzb3r?= =?iso-8859-1?Q?LasH/YnFc4WsMII5n+q2sM8yYF3yT1Yk2G6h1L/YBKWErqcZd5EgjhJj2M?= =?iso-8859-1?Q?tsCcNj5Nk1jpfPQXbjI0loAy9wM/rIjA8D4jYlVSTYsKuA4dsIt3F+0foG?= =?iso-8859-1?Q?OqP49FbD2Vk1asB7ktF316ZZpuHqH1boqMuOLJ2UQAgzfT3HzbCu/MND7K?= =?iso-8859-1?Q?srTyzxZY9LnXbDKrFn3HlzxIwr5v8uoyQ0bwsRbCzK65qQ0wA/R6U9kRcI?= =?iso-8859-1?Q?jMuyU5Eoco72ehKd34znf/cdKyKIcD9fS6fp7kEUT5lb0BjATXy1Ojh2ak?= =?iso-8859-1?Q?NehNNYNaiFmQrexh7ETtIv/epezF2Zc6ew6LfHEq8x3zFfG05z3orIddCi?= =?iso-8859-1?Q?jlc28BdI/o9pAmjXPgmQqCd3uyk47PvvoQYfGC95IodmAW2+7vPi4gqDgL?= =?iso-8859-1?Q?3MuBM68q+n33dFUtEqPAmGeZ8Qim78rLX6phLV+n42NlkiEHbeH9R72yYR?= =?iso-8859-1?Q?405w6bN6bAHi0Qh9TjBp1A0pnN36kH7Wxh5hV0akqtdWR4FVUeVABe5tnJ?= =?iso-8859-1?Q?bm1ykApklHV7FZkQqRUIOQIuzKiPIilLJKlIQ8pZI72jC/M8bxKf8rrUww?= =?iso-8859-1?Q?t2KuCOFqntk3S5Lt6GVRBwf8SfXgQEgHbPzvky/h2LkoBzg1e6KJqnhAbX?= =?iso-8859-1?Q?MTjlv93B/LBa0QYaMyMQV6jForGpRHXNSGUfHbkOzHWHa2TqGjvXHOKWyF?= =?iso-8859-1?Q?GA+nd3V/Kll8WN5QO7C3+7wroEDeo2S3aAZey9sNu3hm5YW8d35HO6SsP8?= =?iso-8859-1?Q?bT/ygQp40NWEF8TcpkNIydyETxU2d5safWKXRiLtVbrZOXY19rX5aIiVNV?= =?iso-8859-1?Q?eERC+6Hu/NX28y9wIgWqSvMCkTbyIxmenVCdRjkug298XZhKvKKCL847IK?= =?iso-8859-1?Q?AktjLshWfq2dZSYFf+BfLOLHU1oegJ8yzO2rcFTf4iv0UqRBYuJIjZbBQU?= =?iso-8859-1?Q?feba8k63K5cJ4YBvx6EqgY//Yw+kbD4VcbEcTphiEXrm48th2qBgA19wUq?= =?iso-8859-1?Q?XpQyybXuHm4E+GiDVtzubc6cbwOKwQhjg+afB+HiXwPzooNPSt4oxIuHjn?= =?iso-8859-1?Q?HB4isixLBvlnB0siWxjgEp3xglvpZQaJmSK70Ndy+vDFJ6pTET950Vqu+1?= =?iso-8859-1?Q?33uIh5wPXxXGvpkOzg39J/BN9xc5PXPcUD8tAOpTXetzO86agLWmghcg?= =?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: nTBu+4+vhB7Bxnf+tmNUaEGCthsgPpsrWJC0h+Lsn6YWPolGGPgoKSq2q4kaqSAIG8K0R/FGOlwjDvrT1ERpTFGKSo+Jiao+aer28bKDZAwBR4jX7zdJx43vLUxM8UATeK14WL83taTkd34qRDtXK4JUKJPFaS6vEXDTU5w5SbqYy1gAuq8I780GdAZbPM7uTLCe39lGEtZxemn9bKU7iiS1q6JKYRoHix3tbffVaGoo9OPFBIrT4Crv6ePJ7xU+wxvBKW9mBmonBQxHhixrWae8GDtaNydfyb16ZXTthBPI5pH806jTxCWXj3PcpjjhPBUW5l8LkgrM9pkratg+pgIqCdPr1dInwtNkxnD0qQmhRZbDuP2yI6Z0UWLMZwfsIkQPahkyHng5bqdwh77v0C1nBM1weUmEhIBZn1AQMLgI0mg+NPRD//8lLFmga74sPbKtKwR0vZ4JfBuHHVkAb5A2Kc4Gr4e75erE/NBMKgxEKD/iwQWZZmghKGAnKw6tyw8ksFBz7bysGLU3/e760xEOcODAKPAHEa5DcsePkGMIqNMQuIaGxn+BCTsW7/F8uusRraEAuqir+j6lJYhzrjDC8UVIO9/CGUo0Rhl4R0xNYjrKDWRvbj25RBYbAdVw1A5DWdQ02n4eSwUziawaqxwoDRo4MNgPNxlJ7bU8zbZXuvEnuCvQq5eCdel2rpalb04xqRctnk5czjVpwuQ09RoJt0NmYKczAOliKCxnt6OhQHTFNXVjyfXvhD0YPe/0LOp6bSJifqXjbAoPxeFh7Z9X/j2UUn+ilb8030llPuw9i39ZHTckeXSpKH52z2/Fqu6WZorcCrUPb0UNa9q2mXkmXYcMV/3FW+aeUgQUdHDuP6+75zE99zRjJWmuBD4HHpCi/s0sERwjBVoQupaHDg== 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: 93297b97-5ee3-4d76-cb3e-08daef5160f1 X-MS-Exchange-CrossTenant-originalarrivaltime: 05 Jan 2023 19:16:05.7188 (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: KKtwm9F+urO/eao1ou2ze08zfLB2YDKHwrXbP5iD7wXMCQ33JlEEcAaBJQfctPDJLBOGvOy6NHGmKbzHeE5/zg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR10MB4791 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.205,Aquarius:18.0.923,Hydra:6.0.545,FMLib:17.11.122.1 definitions=2023-01-05_10,2023-01-05_01,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 bulkscore=0 suspectscore=0 spamscore=0 mlxlogscore=999 malwarescore=0 phishscore=0 adultscore=0 mlxscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2212070000 definitions=main-2301050152 X-Proofpoint-GUID: QYbyHldh5EGBo_nHIQnNr384sB1lkxqw X-Proofpoint-ORIG-GUID: QYbyHldh5EGBo_nHIQnNr384sB1lkxqw 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. Change the comments referencing vma_adjust() accordingly. Signed-off-by: Liam R. Howlett --- kernel/events/uprobes.c | 2 +- mm/filemap.c | 2 +- mm/mmap.c | 250 ++++++++++++++++------------------------ mm/rmap.c | 15 +-- 4 files changed, 107 insertions(+), 162 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 c4d4ace9cc70..fe5a4973718f 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 6dd34e5ff1f7..a8dba6b6c34d 100644 --- a/mm/mmap.c +++ b/mm/mmap.c @@ -802,133 +802,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. @@ -1055,7 +928,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 @@ -1065,6 +938,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, @@ -1075,11 +954,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. @@ -1097,13 +984,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 && @@ -1113,32 +1004,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 b616870a09be..4ee90f06b05b 100644 --- a/mm/rmap.c +++ b/mm/rmap.c @@ -262,11 +262,12 @@ static inline void unlock_anon_vma_root(struct anon_v= ma *root) * Attach the anon_vmas from src to dst. * Returns 0 on success, -ENOMEM on failure. * - * anon_vma_clone() is called by __vma_adjust(), __split_vma(), copy_vma()= and - * anon_vma_fork(). The first three want an exact copy of src, while the l= ast - * one, anon_vma_fork(), may try to reuse an existing anon_vma to prevent - * endless growth of anon_vma. Since dst->anon_vma is set to NULL before c= all, - * we can identify this case by checking (!dst->anon_vma && src->anon_vma). + * anon_vma_clone() is called by vma_expand(), vma_merge(), __split_vma(), + * copy_vma() and anon_vma_fork(). The first four want an exact copy of sr= c, + * while the last one, anon_vma_fork(), may try to reuse an existing anon_= vma to + * prevent endless growth of anon_vma. Since dst->anon_vma is set to NULL = before + * call, we can identify this case by checking (!dst->anon_vma && + * src->anon_vma). * * If (!dst->anon_vma && src->anon_vma) is true, this function tries to fi= nd * and reuse existing anon_vma which has no vmas and only one child anon_v= ma. @@ -1265,7 +1266,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)); @@ -2548,7 +2549,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 Tue Sep 16 05:49:14 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 9CC06C54EBD for ; Thu, 5 Jan 2023 19:21:30 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235696AbjAETVX (ORCPT ); Thu, 5 Jan 2023 14:21:23 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:46564 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235688AbjAETUY (ORCPT ); Thu, 5 Jan 2023 14:20:24 -0500 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 313216D52D for ; Thu, 5 Jan 2023 11:17:48 -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 305IUIHr030165; Thu, 5 Jan 2023 19:16:48 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=HmgkQ28QOz7ZNEWXunztBpLVHZCE4edNWbiYOCDwRN4=; b=AqnUsF9/fDFRO2iJ5zTt9NftNr44FpFh5qvjKPRUH6+7GoE5fhCJAfk9YI/2prpxmQqx +PTjjBSkCJWGqzyIg7QnOj3jGnruSfH98KzX5OIyBO3sCnTP76eEcamO0ABcYKLTkBmP 15uJw3GZsOY0QoscoIBtQTajafbI2xi2hSEjxlwY3siuBm5Z+ekgEmLH0A8vgkpFvjEb 4da1l7oM0fpLVaDgL8/iclD1SeaV3XAKtZhV1O7xq9Rshorr5vr7XJy7WMG2dVYwxMRJ B4L5tMlSp6E+FvRiK2/A6b4L4QgK4zxdsRtQ5xDHgFhkyrZWOKH8TPsTTrEi2HbDilmq /w== Received: from iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta02.appoci.oracle.com [147.154.18.20]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3mtcya9kby-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 05 Jan 2023 19:16:47 +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 305I9Tnl012151; Thu, 5 Jan 2023 19:16:46 GMT Received: from nam12-mw2-obe.outbound.protection.outlook.com (mail-mw2nam12lp2043.outbound.protection.outlook.com [104.47.66.43]) by iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 3mwdf0u4xq-2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 05 Jan 2023 19:16:46 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=MjxZ1cUhPPlmOs139rSLWEnAxVmNBKTQtfDvzB4TjHjGhkdehVx63Q/WfOAS7foCJP09fNYtg8dCQ8NRPzbKKHL939ahf2JFPswWHozIEedj76QXDcJ7st/7rAAvwJNK58cjuY6w6oi3M+SYl00L3d0rp91bnKir9dH0LrjzF7NF4kBTZDpCq+I2EWp3cRrrZVgKbzdj7uvkMpn107iK1jQ2YpfeY1Rxm47VznmKDZ/XuvuYACr70VBckSbqzzFLzGrXcdI88JmZUeTq6kQccfbO73OSQgGNkGPpO1+zlE8y/YmCsKvjFZAWAzMRI68T++c0R1XJgCQlyUtXtAQiEA== 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=HmgkQ28QOz7ZNEWXunztBpLVHZCE4edNWbiYOCDwRN4=; b=Vi3DXD+LSevdTJXjJCAWHJoTD41L+UEd69rlKNR4KXigaSQc2nvM6UnYRZb54M6FDai+IvF+a81IE3lsjZRQ4Zk58G9rc4Q3hlKgE+R84Kd0Lc3NmQY67xmYJEzp3MeIb7ijW7vPRNIhFVHUCQVYJvNrHPGvYx106HFvew5cdFbdBXYQajWqDgUwGCavhAGGSd/32B5rE0LVSAV903t2xKkMrSk562RN8Mdm4ZxJhQrKjOrDT+Sbeew8LrvWNlPR5Z5VxUv+QQFePEBPkVWPWbvpT0F65CqrCfvzvPKiZgC7qRmC5mEhcNIYn3esaKiRfjMwCcJXp0i2FKEwCNa7FQ== 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=HmgkQ28QOz7ZNEWXunztBpLVHZCE4edNWbiYOCDwRN4=; b=tb61EsKroFQuZKrmVIPalVwLgY3JbOEGBfqayJQ7Z74y0lGgZ/rjp5mOLN/JZtRBgbDESiMkpRwDihoJLViGa3Rybmup5rMccPL1lcvBPTIhA+OqD4e20mySmPp/thNM2Tg0bLOzfwlimkVXwWyz/UMF+cze0y7L4QUtena4+eE= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by PH0PR10MB4791.namprd10.prod.outlook.com (2603:10b6:510:3a::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5944.19; Thu, 5 Jan 2023 19:16:42 +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.5944.019; Thu, 5 Jan 2023 19:16:42 +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 v2 44/44] vma_merge: Set vma iterator to correct position. Thread-Topic: [PATCH v2 44/44] vma_merge: Set vma iterator to correct position. Thread-Index: AQHZITooJ+5o/wSJjEyVNtF78Sn/nw== Date: Thu, 5 Jan 2023 19:16:05 +0000 Message-ID: <20230105191517.3099082-45-Liam.Howlett@oracle.com> References: <20230105191517.3099082-1-Liam.Howlett@oracle.com> In-Reply-To: <20230105191517.3099082-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_|PH0PR10MB4791:EE_ x-ms-office365-filtering-correlation-id: b6b76d5d-a603-4a8a-3e11-08daef516126 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: X/R2plOro2MLTgv/Vp51QKSPAQm3SX4IsaNaW/9PF/Ur9m2xeaNkkWnpRyO7bdG1SW+zqkRwndTZMIKDa12D8NyYNKx/FyqMrZiJl836v7oMjlt4OzZLR5VCknselm++OUYj/17z6e4RkMzpoc4A8O92SEgZPP+RN0LwkyE9TCeyJjolrtzWFXmDB/vk1l8xDPI7usSZH5A+YkShbTitqn2FEKbaR8HkoXFVw8h9oAHTJoeDkLk+u3RurbhZ291kFmHBry1+gtlQJp4AMyaTYFWleXSLRmbCwD1LX0Zz/gedjW7rR2cpp67Dg7MwEiu7YPtki+zF3QBaL7+sEvdNwO4sZ2Smf1geiSxxlmP6jywUzIZeE4qNmzoDmcvsHZzJkF9BAG7KhoaaN5zd/mYcVDJ4d5DJTOhp1Mo95hJ8v7f/sqvaISto2iON4xIStntmowvR/30OdF6u3dS6t6D/pwD9H79WVLPdE7Rh0pZfeE1T0NZYR3TbF0voR+DJaNXSG4Mi9ePSl45AM79ftXm2XpCiqCXeI7wgLRM+ZKfwVSZCk4NBXxwxoT4ainpirREQrNp1xbgcFroz30fiiU1l0dheR3ut1UjrxeDTg7Bp/Xqrxbu9LtRp9eIyrZyST4AiOHzUyEEWJ1My2BL1Hg7zpWx8akXgC6atGg3onQxkXKJt7E97+XaRU937pEL9DhcMp2ZhsJwdY+9krRvRrUszcA== 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)(39860400002)(136003)(346002)(396003)(366004)(451199015)(4744005)(83380400001)(8936002)(5660300002)(38070700005)(44832011)(38100700002)(36756003)(122000001)(478600001)(107886003)(6666004)(6486002)(2906002)(54906003)(110136005)(6512007)(186003)(26005)(71200400001)(66476007)(64756008)(8676002)(4326008)(66946007)(66556008)(6506007)(91956017)(76116006)(2616005)(41300700001)(66446008)(316002)(86362001)(1076003);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?Q?nNh3q6fryNVL+2L9Vi7PLPpJjwwpJxOVNCRz3ZjDu4cr3uvk8WA7pmrd64?= =?iso-8859-1?Q?xBNDxtxwAAKqlzsHEVu7tOj/MYTzMhV3GGxKpIVYT7jpnRxhPoNR1c54Xb?= =?iso-8859-1?Q?eKfZozw1nWYskjXVcoF30Lqix4CjqagiWxxpmDwJXAiIjEDpOzbTS2AmhN?= =?iso-8859-1?Q?oghA+wplxJq685uPi3gMdkQ/14Cl7RJABWJLBO+vSfdkbbWopBWrNb8v94?= =?iso-8859-1?Q?L+/fWuo2abnmwDQ/7uZ9RFb3Iv4+pCEDXB6qthy4mya/BSzh4HUaRavycq?= =?iso-8859-1?Q?mHrlnyswPOCvcf+a0W/564LDeVTIzOpaF6UUtU1Opt7r9ICOnaDh0ESXSU?= =?iso-8859-1?Q?z+ehpfHCQkj5Vw9se4ZSYe0U2HBT2RrilWwXqH8Bb55iHL+fjdQeCUVyz5?= =?iso-8859-1?Q?1jGGkwAcxhsbrrVpIqT4fS3qlSLOpUQHtIi6IDYy4WjTvxr7861QOYz6+M?= =?iso-8859-1?Q?sWBqZza8fdSnHn+cWyvaEdviwDA1Ll/xz0tBjgzIRoFUCmBA1soRXIxHh7?= =?iso-8859-1?Q?OnUYnNl5YfanTcsEF4673zg7VMGUbCVsHkX5Lhm8wOkQbT0WnAbw1GNahg?= =?iso-8859-1?Q?O6DC6SjXrA1HTRrb9xFI4Q8JtRjkxd9X5x7thdQu/vqikLPg3i0ZSRBcg0?= =?iso-8859-1?Q?XK+xKuGxgrtJ0VDXWDHKJd8/sprI94z6XSONalKLEi31Kyyu9fE9t/gtVl?= =?iso-8859-1?Q?Sg9rCoF7uuBfv7q8+lE91LllIw3pTTH9BoxwQQ3HX83wCHfEx1o+kZbrfi?= =?iso-8859-1?Q?Kv9hihf3jYUiBoz1aTINJyAPYGMhruolgyXPdeYB33ymZyQ0quBmZxruLI?= =?iso-8859-1?Q?CyOy/SxaXjfdkogaelaHu1cDdTAXVNoVSMHR/z3rMwWk4DtkxTb1+Nha2H?= =?iso-8859-1?Q?2lh4Jq5Wkg4boEY2ZXVTc3gabpX6aNLpJJ7MQPrSsJxcgLoGb0i1WndSip?= =?iso-8859-1?Q?dT4UCxdsD1yaZGwvTJcX9lYNcil6LQdduOelUwJAp9jdet6/1my1aFhMRb?= =?iso-8859-1?Q?sXcjmKK4ZHv5bPogehW0GwkvxmcTuFTadEWNy103YdXz+/hGv5+1JNaJuI?= =?iso-8859-1?Q?hRQvMBULYai+Y4VQT4ePhdKLotK9tLUMMf8KkVm+5KzqeiEJzGPr6EbI2Q?= =?iso-8859-1?Q?ELJfBLc8iJgioavagJOIsgMv5maNP89P12eG8cEdjUupjlRARwNUnxA06z?= =?iso-8859-1?Q?QDqs4pClKDS1yn20PPrFaRoEw1hiOPqreCwCvExMdYkX5l62g+SGnLH4Eo?= =?iso-8859-1?Q?chGiS8BFjqQf/4T7N9oUQiRg6xiIdqXWlabV6Qymow164tFbI1wwvhCwf2?= =?iso-8859-1?Q?U67vrsIoh3c7awy+SzLnVtD6wrLglaAwdXCqPEZPY9aAXc/sa7UlEejpHh?= =?iso-8859-1?Q?efxO0qXH5Z6Esee5NlJ9Y0Pm+Y9uQIMpodh06tn+auBLfBEH/Q/XDMkExq?= =?iso-8859-1?Q?Bb4eqTLbgGHRgrcjA5qJrcc5tlJIrn5g2QdaPOaugUgB1t+CRXgIiTptKG?= =?iso-8859-1?Q?6YDgDXvjbazzGhiYnJAoF32wAbdvyeN8aB2tBiREPa//HsTHlsMgk6WJWa?= =?iso-8859-1?Q?0v00xR+NFnULfXnJuNZojvGPLXxOVpLJoQViCbzsS5z9X2DOJB/PHDxlVq?= =?iso-8859-1?Q?gZT0DQgUm5J2O2EsaTJf5JGrLWiMcQ14ynhgpEZ8MJXUZVgcBYgQIEdg?= =?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: b6jtqnsv1QGs3MLrPde6gXS7gBVSRNOOFd6seaz1xtOahP0kV++rekhtWZ3JnobUV+ka8jEWx/1Lj2rdLG0UBvD1eu8GbqRLjdNETQ36hnHQQRpdL3kACLM5NO3VMGfnDGlVvTsIiOq4zRP60TMK1cgNPILYcoBym9Axhp8Ll5tg8MuSGgQnC+0t44qm9m/0lDsMXfd3nfF5KJAsd+/MS2UJ9mZaSZWQkFaGaJSWr6ZP/1Q2gSaBg2OIWkt6L9ZRMIioIOz+2PCh0+PUUwO9ReyLbzjkH+uZ+vTM+XzblgEeqWxDjdjrIZ6e9n8VzILfsytByfm2xmCBpT33uKDinO8S3fDaVLpFyF5FwEyaMFU4J24xzLXIekw8PN3Y8OhL9nZEWHVdYTJ2kdq0jugLZMBKi/mmQwSrgm21/udHDUyehK08uupd69EkUkS5t2whHyanwXg5w+ceoCWVLFBF10e4gLXK9Mq4qPneDQ+Rp1Anj9Dc1M/FCaUEozFuqli00UwztBsLK1uyAxpU2c+Ak0qhHX4HUYAO1xuhAyuxNJu8rCvLOU/N/lIRaD2Pk2lg9jCAvrhDq32TkGpOTgdyyLGcSrNh531MZ+oynIoZ35xeMm4z8bYRGnq5FoiarLX0PvEWRRtONhjUW4aewDyrhRe1MRTK1JnC0gxfXT5Wyse0aYrOfLuBHAR8q6tXdiDddFB4ZuNay6NRZUXySlvUYSRYk1WA/ezS2EjuBkhsvmJPAYqQUR2vKpfrcr6njiw7mRTdrhvjumcuuO1Ur0wEpwnNNCuKz2IZB0HkaxyeWl9ZkdQvEd+/YaEu5oNebNGDyVmeN8ynjs8o7uAi+vIHtJdLslp6Q9IiEeR2gpRDo55jceCYROlGiH/EzepN5otl0Av34TAFL5jH43lq+aJ2vA== 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: b6b76d5d-a603-4a8a-3e11-08daef516126 X-MS-Exchange-CrossTenant-originalarrivaltime: 05 Jan 2023 19:16:05.9532 (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: a3CFjJ29dxSN4AcYdVf4icMEzoWkBtxp8J6j7ryZ3J/SuL6lzPh2OXvQbJhiH5OPgQZgvhAZJ9AHIymQcyNfKw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR10MB4791 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.205,Aquarius:18.0.923,Hydra:6.0.545,FMLib:17.11.122.1 definitions=2023-01-05_10,2023-01-05_01,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 bulkscore=0 suspectscore=0 spamscore=0 mlxlogscore=977 malwarescore=0 phishscore=0 adultscore=0 mlxscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2212070000 definitions=main-2301050152 X-Proofpoint-ORIG-GUID: CjCJIEYrWf6fG-MX3qT4maONUya5GcQ4 X-Proofpoint-GUID: CjCJIEYrWf6fG-MX3qT4maONUya5GcQ4 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 a8dba6b6c34d..66e2f1b88c87 100644 --- a/mm/mmap.c +++ b/mm/mmap.c @@ -994,6 +994,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? */ @@ -1085,9 +1086,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