From patchwork Thu Jan 5 19:15:52 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Liam R. Howlett" X-Patchwork-Id: 39743 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:4e01:0:0:0:0:0 with SMTP id p1csp457915wrt; Thu, 5 Jan 2023 11:17:41 -0800 (PST) X-Google-Smtp-Source: AMrXdXvkLCtB5mcJFb3C6lz/JlHf7+tzAVvv3ffjBhDUi+oZJEV2bBegbph7rcNxmPzUQHB/hoXh X-Received: by 2002:a05:6a20:c1a9:b0:a3:9598:e5c5 with SMTP id bg41-20020a056a20c1a900b000a39598e5c5mr81442796pzb.35.1672946261456; Thu, 05 Jan 2023 11:17:41 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1672946261; cv=pass; d=google.com; s=arc-20160816; b=UCmvHKBMCs7weWqmpCpL96YiAfI0/6OFteAI9MOYu/zPXq/n2N0vn6aduj0qq80oBu TnqEAu5wQq/TOXN2beGpGop/reWuqideBAaF4TV4HjfWocgMHSsMYcT5uKvJ/jXTimln IUpKb4TKBGWyxvKpue97yoQFlUDO+l/cGh/ff283VbmrlNI+eSexpPd+jhey/f6N0HJA 5scgFS2ng1qH8dKJ7pSNIWNV2fTOE1yt0h3DRjnyR4myFa1DJyaEntCEpMKxU7kIu+VC wcUEo0gHDXlEwOf+qKGAHjkNaHA1/0PsBwMieW3zg/eCBFN0dnOMAmcrpKhDL+7bCV6e 0cQQ== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:content-transfer-encoding :content-language:accept-language:in-reply-to:references:message-id :date:thread-index:thread-topic:subject:cc:to:from:dkim-signature :dkim-signature; bh=m6Tx7nAJZ+GxOyzn9iiDwdI6oGCO77RYAvxfmdcFqVE=; b=KJoda1Z9rdr1XI7Z3IvLuycw+9klKljem3Vk+unRz3JRiof5lhCoj6HhYJMaMYYygo 7AWxJS3IOr+CkP0NUSbnySZDSUem/Dg7cl+UHh5CkXeKybgf9ESwsRoEMoApjks2VVeu k0M5SfIxejZnPvDoR4qEt9Yrg1C1FF4wlbWRLZwtTXO+5ZiCfY5w3TosgFwIkhhTWlqO 8VBbSYbwJ9iexWjfstQ3gy/Stbm2wBxxBr8ON3n9UDYknSux2oy3eRBie7cSfYizmfAd I0blclfTPrLWHeg1cJe7VOSFdZgmsN6S2bVLRqt3wAQN/bQMdJLxSXSxJ/mTy39Fb0uJ gmPg== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@oracle.com header.s=corp-2022-7-12 header.b=qk25lVnB; dkim=pass header.i=@oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=HnVamv8O; arc=pass (i=1 spf=pass spfdomain=oracle.com dkim=pass dkdomain=oracle.com dmarc=pass fromdomain=oracle.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=oracle.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id q24-20020a170902b11800b00192972afbcdsi21813251plr.449.2023.01.05.11.17.29; Thu, 05 Jan 2023 11:17:41 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@oracle.com header.s=corp-2022-7-12 header.b=qk25lVnB; dkim=pass header.i=@oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=HnVamv8O; arc=pass (i=1 spf=pass spfdomain=oracle.com dkim=pass dkdomain=oracle.com dmarc=pass fromdomain=oracle.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=oracle.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235433AbjAETQO (ORCPT + 99 others); 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?kqPjjaoCjD42JKdGkXNgarE?= =?iso-8859-1?q?BRqJ8cZaAxDhgBfENr1+/5fuoG0TAog8rUr4//T6lu3DMua7mr2tiJAunEW8?= =?iso-8859-1?q?2J3a1R9In+OJ4V6CPnrPyDoqMxHc9aXU12vFIO96rIxkyzLxI3+9bCZxAp7M?= =?iso-8859-1?q?0qr+LWH3jjEMfOyFGvl+86n5WMhjXPaQxcDpvY7k9FcJciQRuGUIHCXezdbx?= =?iso-8859-1?q?L/akpu1F1DVO7TN2vtRi4VHDfrH++8q1wLiuuP6UJp785s+hw196xgWU7DSb?= =?iso-8859-1?q?vTSvDvFYqkS0vCIpzZHdAGgidV/WqYKUi7F8UrqrYV83l/vVyAJGlM5TRYP4?= =?iso-8859-1?q?Y60/Y90dP6t4hTrofYqJFOMQIjG+9zc8szUICXUz7UQ/N3fQmX+kb+m6GJXz?= =?iso-8859-1?q?1MN0Q3JqNHJMzQrbt4YL26A94CvqU6VUQ/UnmH8TR1KyQChfZPbasaC39UAk?= =?iso-8859-1?q?O82QXv/rBBqlhxIaidZ/cMSejX9jPik3ycCdUlpG0/lUMYgnAsiLQi64h5dL?= =?iso-8859-1?q?BELjC2nsX5cuziZZ+meqryRhoGUK+IP98idSlan8woexaphtouCBpU2gocG/?= =?iso-8859-1?q?Rqc3HZQPm+u4vVTOKtUDINewd0J8kqfikSPPA2zDpGEsBgj6iuuWmSx7egeC?= =?iso-8859-1?q?I/VUgm7brhnT7pNaTDN544TQIQ+jKRuo1bJBPRhvAK42s+zNPJyLdAeXp1vG?= =?iso-8859-1?q?pj79QJCpTqyg+0mtZA/DL/ptqjC2chUuTVp1N4/Iqx7VP97pNFF76PXG5ysp?= =?iso-8859-1?q?/Jcpv83XkTqRsLJGTZCJkcGl0Wi+p9tfes/Nv+RM/YOc8I7Tq/jp39jXxwBF?= =?iso-8859-1?q?bpm9XNRYv/iGr9pKskoeTBApsjIUd121NWzk6vYa/KLfrq/B4H6OYUf5I4+t?= =?iso-8859-1?q?4kvXsmGg51yDm+RiINS6tKXOmeLMcSF/6zK4cpB6ZDOb0HPsiAfpuke9gUF5?= =?iso-8859-1?q?0xAMMzrNR5yJi4uK/Yok2JEGXUZ1QG00QnX2PomXgVse1dgQyD4OT/cDdRz0?= =?iso-8859-1?q?EqoSXsDwg63KRAyak5/52OGLhaStyQmSUPs81lwhGsQYjQ6+QfhoE5tj9dSj?= =?iso-8859-1?q?0+Ra6Vk6Nn671wqUuzxe7dXRJn2Q7WJ/Kp83wOr2ibsdMtQD+RUxLZtl9nzN?= =?iso-8859-1?q?rdN3h2tGZyJcPoGuJV1YmE/dWtU+2v4zEIHa5navwanhYpIV+lC/NU2wLMIN?= =?iso-8859-1?q?Qv8/uqtsdmp03I+TrU9iL3NwIHS0OLfTtxXFSJbHV3ws2GHGkUaA/WGsrh5r?= =?iso-8859-1?q?b86avF/pCuP4tfirwrgPrb6jdQMM81JUAPo/RQ8ko8/yERGIlZb/cGn+vV3d?= =?iso-8859-1?q?JjxobmOeydi9TrFvwUAbxyRDl6JE85w1LJeAKjKvvs1gYX7KerrrNK1f7plT?= =?iso-8859-1?q?Xsm6HAwUQxMJAcXWECtRiIlDBe+CP34cX/DxTbV3DCi8uk/uGl2LPuvV0csd?= =?iso-8859-1?q?e9b0IP0XTOUVPwcnFc3xpHZ5P1sS/xJjXdl1jjty/wq8bbCkLLhIaj76p12l?= =?iso-8859-1?q?Nt8l7zOcv55r8iCXT2O3A9fp710dFagMTwS9FD6DlSfobMUXwpi4Di2rICPw?= =?iso-8859-1?q?puhtBhHN8O83RB2WO59gOwI4iZuC01dZqqKq+E9/j/ojiGcERTOItAGYCI+3?= =?iso-8859-1?q?h5DUcrzGJoh4nTL+WCwMH8wqbAD05ZaXudFTHuA=3D=3D?= 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 X-Spam-Status: No, score=-2.8 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_LOW, RCVD_IN_MSPIKE_H2,SPF_HELO_NONE,SPF_NONE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1754211298822170313?= X-GMAIL-MSGID: =?utf-8?q?1754211298822170313?= 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 = 0, \ .max = ULONG_MAX, \ .alloc = NULL, \ + .mas_flags = 0, \ } #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); +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 = tree; + mas->index = mas->last = addr; + mas->max = ULONG_MAX; + mas->node = MAS_START; +} + /* Checks if a mas has not found anything */ static inline bool mas_is_none(struct ma_state *mas) { From patchwork Thu Jan 5 19:15:52 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Liam R. Howlett" X-Patchwork-Id: 39739 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:4e01:0:0:0:0:0 with SMTP id p1csp457851wrt; Thu, 5 Jan 2023 11:17:30 -0800 (PST) X-Google-Smtp-Source: AMrXdXsaEzGp3dq+0YX0cHP9Yy6xYM8zPyfa7NDEsFtMXZ0wrklYNan6oNFKX51fZjuZ0W1ccMk0 X-Received: by 2002:a05:6a20:a5aa:b0:a4:c01c:5e1e with SMTP id bc42-20020a056a20a5aa00b000a4c01c5e1emr81908783pzb.47.1672946250315; Thu, 05 Jan 2023 11:17:30 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1672946250; cv=pass; d=google.com; s=arc-20160816; b=PTYoa3YE7le3paiXbr/V80KhqPpz4JtOx1xM0yvrcmSvuvqnCooKF93BQowAy3sYJh fUnoPJ1y2FP/4oWU4mITlUeEF4SYVZHnwJ8B0w/IQNx8jOZCroF4phU7xW1X9OmEgN53 Op9qJQINiL5XWuJrjsTVmUZxSI53ZjYYJNdc14itwwXBNpIkAAr7kkCehzrIODL/Of+4 J33ZG+AuuY6g863xHoBipaiLzozzpgLmJpHZv99OUO7pBjIb7Lw9Nk8OZbSYvF16noVi F3PWUqM/ReVLF5O5rOAtrY6oZlI5Bt0NzFU2oe29JecgSSMdzfBleN7zJzYdnSXVEJaG w08A== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:content-transfer-encoding :content-language:accept-language:in-reply-to:references:message-id :date:thread-index:thread-topic:subject:cc:to:from:dkim-signature :dkim-signature; bh=+7lb3T9LpYIF6+7aVeQjtMBFxEGRNgAAXhAWR5tPalk=; b=Kw1wOYKUb2S3yLvLu9X1ZNutIMgWUYAMuP0sAiKRiYQh+vM1/avzgQXzuyq+Sc3QF7 KhO5qLx+Cj7OXMfkNI/d+laOWSgfKEx1r55f2bJ79FWgeXbDWtz0arhDipULScZYFp+V FLEm9xJ4XyEmKYE9nILYuk4qtJfquBLEJifzXpLWgTTHQ00jT5myNVI9xFMVuvuFe1Zr UIxRt90UmdX2m1owKRRXmnE26MVCsu2bGs9LDrfL+iMzr+SklX2bjl1OIBDIv3L7YFeu FEnI0isYtn8Ggfk0ZuM8t2MIYZ1fiqlwDaqphxWnNXAfNW/2Rc8IoJKTouGjMQ6SUiTH 7Hsw== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@oracle.com header.s=corp-2022-7-12 header.b=RyLxX5L4; dkim=pass header.i=@oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=KVBn2ygj; arc=pass (i=1 spf=pass spfdomain=oracle.com dkim=pass dkdomain=oracle.com dmarc=pass fromdomain=oracle.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=oracle.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id f5-20020a631005000000b004770d61d2a9si38787590pgl.120.2023.01.05.11.17.18; Thu, 05 Jan 2023 11:17:30 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@oracle.com header.s=corp-2022-7-12 header.b=RyLxX5L4; dkim=pass header.i=@oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=KVBn2ygj; arc=pass (i=1 spf=pass spfdomain=oracle.com dkim=pass dkdomain=oracle.com dmarc=pass fromdomain=oracle.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=oracle.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235458AbjAETQS (ORCPT + 99 others); Thu, 5 Jan 2023 14:16:18 -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?9UtCuNq72vsdCbxB5MXttY0?= =?iso-8859-1?q?9lA7hh0mO9Hex7J/iVOnwVkW5jHmj61hfbjorctbcGgcrqlxtS4WYmDXuB+x?= =?iso-8859-1?q?mS2DDvuwRK0iniPyLyvTMQJgCzOKgZePgcMD9gq25oUV5u/1H4g7fyDPbGdl?= =?iso-8859-1?q?AyaHY0NJRsjtSjaxPckSwvyVvXchduz22EobG+ubUicEY4mmBfqMnvsDRpbg?= =?iso-8859-1?q?xRU8NW7sVj52YbOhCELiPGdyYn9Eb8uy2FJt+Ix4E/U/w+I8CNn6ExOQmTmW?= =?iso-8859-1?q?suMVGAZ8w9q96PzaXAegxsfpeKfwNemDa1OYs9Cj1nuAOO2wFkr3VRWqmKAa?= =?iso-8859-1?q?Jr3LP0X9G+PMWKIntYWGOnliCgC6dS8MBr08hA/W6l1rVI7vM96tfsEgtCjs?= =?iso-8859-1?q?d14hdlmaNEHaYZMxaKNJHJ/xGU+vZctFVd7B7F+NcPkPCNf0qfGmO6dlydVH?= =?iso-8859-1?q?7jUzB0mdpCRpMsNhG2k+rTxcZkI8GUnCOLl5LJRwvu2I4FkjX8+AcPURfgu4?= =?iso-8859-1?q?I8amKjL0qClYUpLm/Q/MJlcDDSusL3Y/QfybBx1ZYjbA5zV5Ll7E/0gFAaEU?= =?iso-8859-1?q?iort8TRtVHMHb3QTKpwiThtumymEAIRBBUWBgWZCLSp6kn9x4Av3N0k1hAfH?= =?iso-8859-1?q?sdySdZwbVKH3l5PBbcyncfKOw1bNZrS8UUuLNlYaACcFoXl8srGty2Zq7KDn?= =?iso-8859-1?q?7vDL5H2Tez7YodBmlWJqhvz0rudRws3FnYFflw5z6/JIbolxQVeJViaVIE9D?= =?iso-8859-1?q?ymW5zP0xOAb+U1u/lsrqeNc/3hSGRMjmApmLzOmsQ92R2ZoA1/sdan5jOOoa?= =?iso-8859-1?q?leo4CrPggmzibNIOlqffFRtNuq8xsag2/+YHMdP4u8ZuxVyyORzZh/z9xeml?= =?iso-8859-1?q?J89aFUlk1zdshvjKLO/d022MfCBgEoiv6HedqEr/nzToaDW6brMeMTmZrziA?= =?iso-8859-1?q?vNtGAcoZiqZX4LjCY1Nm/zzCPr/UpIjRQdqA3bCCpeLeaYzv0AFIYC414AbW?= =?iso-8859-1?q?1+3SwCTaM/1XkqzrdexmBfv9VzN3Ah28zIY2ztlSA5mSEkp22Ve8kF8y6xSi?= =?iso-8859-1?q?hSv5uVpkRjjEZEsmTpCw4UcWcTVp0bsBEDLXZBSB55dCma5KNoEYCMaxnwlB?= =?iso-8859-1?q?e2dMQA/gRsVndlbHYtsYG/jtxoFNEm/lRQnREcA0xTLReTMpzSjX9ae0zx4M?= =?iso-8859-1?q?1UGFcbrhb/iwiWm5+EME9W+JcTZDcXWbj5EkzGbnwtDG7cAugCBlmcChA4nG?= =?iso-8859-1?q?qo8x1kBe69i17uflwwFsGTHefxiqu8XocHh3VfwqFWL2fPVOAPF0EijC4cxB?= =?iso-8859-1?q?huk87uPiNSfCMP5cMxbBKUWOcMThDWU4cKxs26hSOLu7LSUhQhrQslZ2ERmr?= =?iso-8859-1?q?fjdAUX3tHKpJuU49nl2g3/CdYoYfdynGKY6h2mFF0YVQf2bN42NqCXuOi6Bt?= =?iso-8859-1?q?XsuTUcyXJAlLPVhfkOL65jQMDHqpr9iJnStWFgwkBeq4+TUBIiwoF17wdLIU?= =?iso-8859-1?q?q3JAhg8cg9OXoec/ACG6kYh8+9tm32ZFGX9EZSlSy+WP0naofQT8M17zeAhc?= =?iso-8859-1?q?qkNPf9uXeeiDZ5m6WJqEwD9QyocyM1gpWZ3SlK9aExv6TYVD4NbvTfbvqqwS?= =?iso-8859-1?q?LPqhuMCXdWhrt5c+1hsQqZZL7sXlv5VfULlmRow=3D=3D?= 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 X-Spam-Status: No, score=-2.8 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_LOW, RCVD_IN_MSPIKE_H2,SPF_HELO_NONE,SPF_NONE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1754211287485624061?= X-GMAIL-MSGID: =?utf-8?q?1754211287485624061?= 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 = ma_pivots(node, type); slots = ma_slots(node, type); mas->index = mas_safe_min(mas, pivots, mas->offset); + count = ma_data_end(node, type, pivots, mas->max); if (ma_dead_node(node)) return NULL; if (mas->index > max) return NULL; - count = ma_data_end(node, type, pivots, mas->max); if (mas->offset > count) return NULL; From patchwork Thu Jan 5 19:15:53 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Liam R. Howlett" X-Patchwork-Id: 39740 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:4e01:0:0:0:0:0 with SMTP id p1csp457891wrt; Thu, 5 Jan 2023 11:17:35 -0800 (PST) X-Google-Smtp-Source: AMrXdXtbVJksiKY7pdyncJkE9PHUytWlr2lzdcuWlmrrH6X0oiN2D7H2of11nLQwXX3h6oS9EU7a X-Received: by 2002:a17:903:2149:b0:191:45e2:910e with SMTP id s9-20020a170903214900b0019145e2910emr50018707ple.4.1672946255303; Thu, 05 Jan 2023 11:17:35 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1672946255; cv=pass; d=google.com; s=arc-20160816; b=qUqPj1seP7OKg3xG3U34s0P8RsmfFkxu7wb4wWVckk1a1trs6KWhGXwZ2SLs8Yp9/A pYI4cJt1kzmGWI7TEFsr1idcPWqem2N5ll1hJ4WbIElXSc5f9VmLXvyovQnoX/eNX8Ep v8gahoCnXgDnWj9BrOxrxeMpcQnaTtjx6JUGedq9mkwWLlMk8JmeIHSBQCVHQx76QWxY qpGF+oR6UEQLRd/3oZq57jzkKgODYf4GT44RR8/jszL8Sk86VCdJ4jV+LzlUfvaTxhOe lsdf3bZAAaRmJEMIwUlklBDzoatGLw9xW2oezL9ccdbvF4OZlKt6LQujhRrIMEDMy0ky MYpA== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:content-transfer-encoding :content-language:accept-language:in-reply-to:references:message-id :date:thread-index:thread-topic:subject:cc:to:from:dkim-signature :dkim-signature; bh=AtQwHozD7Mms2T+KB+fR41DI5ZLtsKdl62R8KThpOeQ=; b=Kbatt2kicqJFgQbqPnES2jsF2A5g8JEtDqHwNYlK4Ik+qm9uczuEvxWd0QIbbMuNMC 3B1pZVY2bSzkkwpH5satV+EsQ1+rkWfnjcvrYy0GTyEg0cVOk+BBcBIIm/wz976+gn0M O00FtRUXbeF8dYcnmg7KEIz5lWK2UzlFz/fFsKsb0XI6nHm70rqGRBaA7w4NSqlsD0PO n95Jd7pkJlC5U/fOCj8kXkKgPkWxalqeG5bCxtO2Vx9B5eb7gzw/25WLMNo+4O9r5I3g xAcKe597TXn0hmX86iOCiT0s7+hTFIYraiziSl8o3772akPogc3nfg+bFBHJtmRqfTsz nTQA== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@oracle.com header.s=corp-2022-7-12 header.b=jmKsWUNa; dkim=pass header.i=@oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=FCtPmTdW; arc=pass (i=1 spf=pass spfdomain=oracle.com dkim=pass dkdomain=oracle.com dmarc=pass fromdomain=oracle.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=oracle.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id m17-20020a170902f65100b00189697e2433si8236919plg.537.2023.01.05.11.17.22; Thu, 05 Jan 2023 11:17:35 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@oracle.com header.s=corp-2022-7-12 header.b=jmKsWUNa; dkim=pass header.i=@oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=FCtPmTdW; arc=pass (i=1 spf=pass spfdomain=oracle.com dkim=pass dkdomain=oracle.com dmarc=pass fromdomain=oracle.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=oracle.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235469AbjAETQV (ORCPT + 99 others); Thu, 5 Jan 2023 14:16:21 -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?gZSuhwrIiZmcQiA4mGSUBRj?= =?iso-8859-1?q?aOkTf9/9EftaXsqLxMyySJ93CFdYSj2IAuC0EwumcQe1YA/tALOovzdNRKHV?= =?iso-8859-1?q?mrVEJXMxi8LTDUJNrjCyuIrPpvzHCNhHTL9Z2V/FBVf8jdsnCpFKXABhQCKc?= =?iso-8859-1?q?FRduZZhxo0OSMBOoXZSRa6JGJekEhxHsdJpgTTKIqD3j0Xs3GQAAE//nqULf?= =?iso-8859-1?q?/N15eED2SM2pdlOPJ0gK/lhCqPizAtPJIHImc4IrKq6BpZoBkjNGzckjqrPv?= =?iso-8859-1?q?IWsfP28iE6j8SFiRr3ZQfJLYx8tS19waSqpBVY4s+aRfttfiSEjR6w5zvq67?= =?iso-8859-1?q?RxxCyc3LWJ1MzXSMtAdR0vm5Lny5eAwJRDZkg5P9IXAGWA+TfIYAP6mfuHfg?= =?iso-8859-1?q?NeQUYqhc1hAcodOOgRVhy0v0OCYdgyMplXjKaRwEAMhgeI65Iqlh6RqevQdW?= =?iso-8859-1?q?F8wcrw0L7k5vcg7O1cxDwUsE7xV0qvjtFr8PgIVg19w6pRp5yewi4WL9txdi?= =?iso-8859-1?q?dI8biw3TIhibXFx8Kn6l2DOMP7YwAkqlMYGcgUdvMMOREt5Zpkc0iB17BCFg?= =?iso-8859-1?q?pdExiE0jDY5+sln4JOlsaHnXsrY973YzzNC4BDwFW9xCK7xZMissk7/YQmP3?= =?iso-8859-1?q?MdJy/CyvKpksc26ERLfr11I1nRnVjVniEG/KHSytkSN4NKEtNQA/3mTlPsUz?= =?iso-8859-1?q?NNWGHNS+4EIOFfMdXbYerYRZ2c7SnRb+PeqDIz6lQybRUQCZjvXMwxhgs6wK?= =?iso-8859-1?q?IhFtB7bk176MWuGqPcs1k1r9Dc8UiM798OVV1Pb3GYyQKrNbCaK+Af0poGbH?= =?iso-8859-1?q?4Dpg7d9K0UhD+YAwD9ngClh+4Xfoe2qYNT+9G3i0GfZC5Lja2pKtXP3lzPS5?= =?iso-8859-1?q?X9J4nEV8/wRjUaDEdz8ip3CNEyPQfUqdGJNEXgcPtzB6uBDTpGMLqFfvnFKH?= =?iso-8859-1?q?BoAasR4TYWnzzbrSpiXnp+Ffw4jwzDt13Wrk3IP0OvY+jtNfcjv6RDRwqfjm?= =?iso-8859-1?q?gOpd+lTLkQVhAaSELiDh+ebBxXJoYkDSAyc6LgVM3a+xSrNch8uH9PKj0LEF?= =?iso-8859-1?q?064s5CzTzJ3CpFH/FbWoqiXIUAjrekF6XLFsjzwGfEi5oPK1PJwlvv34X6ub?= =?iso-8859-1?q?CgQb9y5ztvpGCSIIanFxxikDwoVjvSsBxhkpci7Iy4zybegVHJZFJeKni1Tr?= =?iso-8859-1?q?b5LDcKJh5ssHsAq+092QlP2k+v6m4nVmqVHkfB9w8c3VVA9gwGXQSSdIDLxU?= =?iso-8859-1?q?PD6zm223yNDF3XXMBG1PpzT6PlULW0151bukaP5Dhgmqb1SqFjRdmDPmCPCc?= =?iso-8859-1?q?/U5/TrLUA42TJKUf0pZsm+3lzhlwhwMSag8SEUoent7M3DVILkxxE8BkQ56f?= =?iso-8859-1?q?+5otzUYoPydZODAc6SbDtgpmJ7TXJv13ocu0hUV9cq3aitnjto2lTqXpFky0?= =?iso-8859-1?q?rwHDPfE+3ToYFvea5hlDsh0HZX4hK+ID6DvT5k50q9MZxJcPRlJxLzNqJEwO?= =?iso-8859-1?q?uU7FHQgoNvl4W2qxh0ibD+nCV9MuobutvQ71S4/KXmsfY7nJDX3mgZUzkjKO?= =?iso-8859-1?q?vEsOebEFxHGMhqn4ybeMoSgqn6x1L2AMkxbxyW/BNuRlqC8UXOfG9A2BeRyq?= =?iso-8859-1?q?qT41PTpZZKgfzyMJCHMjRfJa34nWANmH6gj+nQg=3D=3D?= 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 X-Spam-Status: No, score=-2.8 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_LOW, RCVD_IN_MSPIKE_H2,SPF_HELO_NONE,SPF_NONE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1754211292525277882?= X-GMAIL-MSGID: =?utf-8?q?1754211292525277882?= 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; + if (mas->index > limit) { + mas->index = mas->last = limit; + mas_pause(mas); + return NULL; + } last = mas->last; retry: offset = mas->offset; @@ -4848,6 +4853,11 @@ static inline void *mas_prev_entry(struct ma_state *mas, unsigned long min) { void *entry; + if (mas->index < min) { + mas->index = mas->last = min; + mas_pause(mas); + return NULL; + } retry: while (likely(!mas_is_none(mas))) { entry = mas_prev_nentry(mas, min, mas->index); From patchwork Thu Jan 5 19:15:53 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Liam R. Howlett" X-Patchwork-Id: 39741 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:4e01:0:0:0:0:0 with SMTP id p1csp457892wrt; Thu, 5 Jan 2023 11:17:35 -0800 (PST) X-Google-Smtp-Source: AMrXdXtR1XmFlgUaT5EZ6agie67HL4p0oo96pNOB3j84fGm1NGEbWypGy3OzHfqUc3b8uuMO5rdx X-Received: by 2002:a17:902:8a82:b0:192:f79e:79dd with SMTP id p2-20020a1709028a8200b00192f79e79ddmr4733095plo.30.1672946255306; Thu, 05 Jan 2023 11:17:35 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1672946255; cv=pass; d=google.com; s=arc-20160816; b=dwsaolX8ULVVOJn22z4HxiYGQ3rmJdlvWz3bFNKDWzJRvIoC2ZyBGS9gBAAb3LGvKJ SjZTAwUcfLW502PJsDLV19Wc0DsBT9xjMymOqpqieT3qmCESWDQZc22PdxENryLiF0Gt Lt3JUo9hRsgsMh6d6quzmTmSCwrjdf6RBE8UpcoVinZWS6ODbXB4UrddwZ8Pho5qv2WI Iq5fTl25K9EU4kitW5NGpJVqRyDqwTCpDFHNnPZ19b7QBSO0j2DbJJ+8+YYrlYRuTBgV A/o1yhRyPVouVstCF1lKqe3K9cDqYUKcp9gfRsouWQnSFwiZg0zvLFEcBPIys0ddO5DZ H+lw== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:content-transfer-encoding :content-language:accept-language:in-reply-to:references:message-id :date:thread-index:thread-topic:subject:cc:to:from:dkim-signature :dkim-signature; bh=+gMycOgVy+MU0JxghxAAWSj026eW9Ud1l3dkHuAq2pg=; b=XubitLPdgX3tOTv6DlWk1jNfVJn823QcvuAEtxPbRmxA7xrQ/FJnPqgz0tCO2MW1Ei JscRqNkL8MiR9knYw6ys05+CVN591LTinvXbpVvXVaOWwjlN3vVKl9fUn6FIfyBK6nXg XMan6xSGoj5a2QrfcbW1Or/odf2mx7neJil145CBXhEGW9A5OY4Sk11QBCKQCxe1Wqzt +xDBnqen1qAjn8scMaoKCUniaFigPnWoGbrUyiU0s2XhMcOlou01GvHlyYx8oJvl4mxM wB2yOYl4UKkWinMRuRCK8UOmsSV9ShhH1awLdUVYj6NW0szxKXfbCsPN6mzJ1jGm75z2 o06w== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@oracle.com header.s=corp-2022-7-12 header.b=VU+69ky8; dkim=pass header.i=@oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b="tFHs/MFM"; arc=pass (i=1 spf=pass spfdomain=oracle.com dkim=pass dkdomain=oracle.com dmarc=pass fromdomain=oracle.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=oracle.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id l2-20020a170902f68200b0019257c9a252si45432062plg.175.2023.01.05.11.17.22; Thu, 05 Jan 2023 11:17:35 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@oracle.com header.s=corp-2022-7-12 header.b=VU+69ky8; dkim=pass header.i=@oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b="tFHs/MFM"; arc=pass (i=1 spf=pass spfdomain=oracle.com dkim=pass dkdomain=oracle.com dmarc=pass fromdomain=oracle.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=oracle.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235143AbjAETQ1 (ORCPT + 99 others); Thu, 5 Jan 2023 14:16:27 -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/8?= =?iso-8859-1?q?pgrtNIM3inwiX5zBsbqkUUreuj69r+xOVq10zPGuRI5gNuSXsFdofVjThxsD?= =?iso-8859-1?q?ucjbEdrzky66NPEfBj/H/cFOmb9OVCF4Dx9/GrqzbqHfV1NuBOQJkV4ABCSe?= =?iso-8859-1?q?SwKlbRlXSJjoJN4MptyBmkAKjeuNwIRZx5sTM5hxqvqmOlF9rm+QP2Tx1TI4?= =?iso-8859-1?q?yCGjoCS53iut0wlzKWeJ1iXYUDwMWN6ZJO0kmaou7xYVMDt5ZvZB9A9uhpbt?= =?iso-8859-1?q?aKYeT6kKEhGyKXeL1qaVOxtUcxiVBiqEDlm84hkAwsdbolKOGDeeWnXS5GnO?= =?iso-8859-1?q?5/IY2zRlah0ZKb3EiRDe8KtyrmqwEiKPL0vnGTuKCvERbTHSBOuHH3+b5k31?= =?iso-8859-1?q?JIlDg4EjKf+pa4eu7aNRCA/U34VrA3B1Css3prl7iZc7EY/bURiqBrMke3t+?= =?iso-8859-1?q?hiKPtMuK9VHgchQ5iaBVBdCSYkKNOwK1wCOVXO5h/XN9VrfvQReL5E1RruYv?= =?iso-8859-1?q?sZR3nvrh8PFbszm8314XwPu1U38qgUh7l6Pcwdsxh5NFnUqyA8FIvsLcY5VO?= =?iso-8859-1?q?Ebjzxer1xVDyLvAHvvRc1yUfsyjDIIJG2raSphWbrEuWJn0BrumUgBFThdzX?= =?iso-8859-1?q?1wyvHxdnUDU3GzQtran36Ls1Bv8fjqx8NNB3IR+fhRlI3kamriXoQjvpJBxW?= =?iso-8859-1?q?0ylJ1E3AG/o/AcKLjBfHcqhRteoXQf64Yadjo1qACJb2h3LL5sO3zP309Tok?= =?iso-8859-1?q?8WB5x4SvLhrIEo39GQaGmjEZkpLucQJcErpCp2Sx5mCan3a/JYcWpERTCRv1?= =?iso-8859-1?q?IVJEcntuXPyzZwfQraiPoDgWiNZ1llOlPGUukKxZLJs1YA8Al/qQ0B4APgLn?= =?iso-8859-1?q?iaCaOLUDJIJqL1Fn9unUr4Pm6YcMynEQMJSuxGJTWubh7I3JWjscZEzWcG67?= =?iso-8859-1?q?oVCkkTFg3/WGS4pQL8IJl15TLGKGOTEs4dXKRzT6QKyBfRKGWyiVmQlswpDH?= =?iso-8859-1?q?I9lAT88anRKoRZN8FwH98nukxqZPmpLT3UIYkEIHjKALPEV5owwdOHxhRob5?= =?iso-8859-1?q?xZrAc8YMHlkzyBSDhw3YvPKrKQaDcPkbeYKvvPwW5fHagwumE+DG0L24onlr?= =?iso-8859-1?q?DkyRhpzAsAAf8Rd0iMqjvRuWJMQlsBV1QDvrHSp0fzjF5s3mkg6LulnYjSxi?= =?iso-8859-1?q?1LcW8e1lKZkrxpcBdMhqJw6k/oXZtaiVXgCZo+I6XteQ5x7L8zVapH5n/Z9U?= =?iso-8859-1?q?X5Gx5M2s7EGPFZrxZJzyrWH9pPdJfLlMsfBOxFHzfwqZL1et5XaYjOn1NGro?= =?iso-8859-1?q?7P9ylkegO++MO1VA4CTyezDCDCzwU9wh11Uko4RiLn26k2qmlezOfpg8jN04?= =?iso-8859-1?q?Cn6/DstTrINRruBTw9hYiwOtNw2o+WepBjF9humKK+oC47E6imKPkghTCjjH?= =?iso-8859-1?q?NLZIeDkws6Cx1SRVZe9jYwZbXwdAklmySt28SrYrYATWwReWV/Tw4Kvv2Gxh?= =?iso-8859-1?q?ANT79yLHWJVErN9Hl77G+RXMKxbkfchPRpBaJGYE9fMwmBCbQ/7m0HoPwmeY?= =?iso-8859-1?q?ataYPD1SoaISzPo/4cJL2urxY+uK+cupB3lDmumgud+WWK/4c8uX0b9SQXdY?= =?iso-8859-1?q?W9rh+ZEfe5c2oHSoV1an52ZDWWJVVCVXmV9EXjg=3D=3D?= 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 X-Spam-Status: No, score=-2.8 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_LOW, RCVD_IN_MSPIKE_H2,SPF_HELO_NONE,SPF_NONE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1754211292406984667?= X-GMAIL-MSGID: =?utf-8?q?1754211292406984667?= 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); } +static noinline void check_iteration(struct maple_tree *mt) +{ + int i, nr_entries = 125; + void *val; + MA_STATE(mas, mt, 0, 0); + + for (i = 0; i <= nr_entries; i++) + mtree_store_range(mt, i * 10, i * 10 + 9, + xa_mk_value(i), GFP_KERNEL); + + mt_set_non_kernel(99999); + + i = 0; + mas_lock(&mas); + mas_for_each(&mas, val, 925) { + MT_BUG_ON(mt, mas.index != i * 10); + MT_BUG_ON(mt, mas.last != i * 10 + 9); + /* Overwrite end of entry 92 */ + if (i == 92) { + mas.index = 925; + mas.last = 929; + mas_store(&mas, val); + } + i++; + } + /* Ensure mas_find() gets the next value */ + val = mas_find(&mas, ULONG_MAX); + MT_BUG_ON(mt, val != xa_mk_value(i)); + + mas_set(&mas, 0); + i = 0; + mas_for_each(&mas, val, 785) { + MT_BUG_ON(mt, mas.index != i * 10); + MT_BUG_ON(mt, mas.last != i * 10 + 9); + /* Overwrite start of entry 78 */ + if (i == 78) { + mas.index = 780; + mas.last = 785; + mas_store(&mas, val); + } else { + i++; + } + } + val = mas_find(&mas, ULONG_MAX); + MT_BUG_ON(mt, val != xa_mk_value(i)); + + mas_set(&mas, 0); + i = 0; + mas_for_each(&mas, val, 765) { + MT_BUG_ON(mt, mas.index != i * 10); + MT_BUG_ON(mt, mas.last != i * 10 + 9); + /* Overwrite end of entry 76 and advance to the end */ + if (i == 76) { + mas.index = 760; + mas.last = 765; + mas_store(&mas, val); + mas_next(&mas, ULONG_MAX); + } + i++; + } + /* Make sure the next find returns the one after 765, 766-769 */ + val = mas_find(&mas, ULONG_MAX); + MT_BUG_ON(mt, val != 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) { @@ -2574,6 +2642,10 @@ static int maple_tree_seed(void) goto skip; #endif + 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); From patchwork Thu Jan 5 19:15:53 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Liam R. Howlett" X-Patchwork-Id: 39738 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:4e01:0:0:0:0:0 with SMTP id p1csp457787wrt; Thu, 5 Jan 2023 11:17:21 -0800 (PST) X-Google-Smtp-Source: AMrXdXvpyFH2hn5yBS5olKgL9NRxHppmfJAxTjhEgpoSciUPRoa5TWg3kxbwDpTXsKyIBJe87kVl X-Received: by 2002:a05:6a00:1342:b0:583:3e7f:a016 with SMTP id k2-20020a056a00134200b005833e7fa016mr503574pfu.9.1672946241060; Thu, 05 Jan 2023 11:17:21 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1672946241; cv=pass; d=google.com; s=arc-20160816; b=XV/2avB8nP+dOHSVRba/JlYRclrHZCX3piiUbE2SqtPMYls9t+n5BBkh5BnIu3GMO3 NRKJtLrlUJ8Cs2+pHjVYKZ+36Y1CZjhcBEHXeSX5e+IyfcWFhouJ9HKh4UD38irP5GqV HuMbSg8nY1o7mmrb0jkdgWMw6piMGmp6zHQpsQTVcu1vo7jcVl+8AzFqtyC5thGunsa7 Ei+YUdC32s2cEMpAHrA07VbHv6hBlwnL5i7OjwlJCfv1D0pUBYPQwcpZrCqmHsheA+fJ x6sGD3x7TeW+j60Lb6ZUApU5mxrzXa2az5+OV/kgJLaGwUdObMMcWTYQju4e44YXjwRJ +UIw== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:content-transfer-encoding :content-language:accept-language:in-reply-to:references:message-id :date:thread-index:thread-topic:subject:cc:to:from:dkim-signature :dkim-signature; bh=Q+J1EkBiJRATPpQFyS30k/tjqsPU0yIzN5CZ1B/Xy+8=; b=S2HNmvfesiyMytGugaDl1WLP4UHH63fqjeN7kTDONkh5GK2EXcqw5ILQihXWTolFsI lYAvJ7u+DVph2zBHer4zuvMEYAtfpP0h7Ma4QJOBgMCiGM/mBGAkjzkwQrKxqQo7M3v2 r44pUzzULjL9mYgGxt3qAcPYpetDSyWX3Q8qroNa5i+CnJk4kYaHNanF0spqXmCoFsv2 LBgdtGzYClUVpJoONkAfwTY1LqVctcQdJeImgUOYEDc9Uuj6CIWxIth4oXGZA4tGU3ME U2xoZ37GJXwOhX5sBTrjA4SwoDo6Ta+Ljb0eoqtg0g5ltgZH8bkazAnVjcOx2cJ+ejQt AKvQ== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@oracle.com header.s=corp-2022-7-12 header.b=TYUBUgCk; dkim=pass header.i=@oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=jGUzFx+p; arc=pass (i=1 spf=pass spfdomain=oracle.com dkim=pass dkdomain=oracle.com dmarc=pass fromdomain=oracle.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=oracle.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id q4-20020a056a00088400b0056c231e4447si39204374pfj.198.2023.01.05.11.17.07; Thu, 05 Jan 2023 11:17:21 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@oracle.com header.s=corp-2022-7-12 header.b=TYUBUgCk; dkim=pass header.i=@oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=jGUzFx+p; arc=pass (i=1 spf=pass spfdomain=oracle.com dkim=pass dkdomain=oracle.com dmarc=pass fromdomain=oracle.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=oracle.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235021AbjAETQG (ORCPT + 99 others); Thu, 5 Jan 2023 14:16:06 -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?ySduKwvHKaVbEy60M57hxbe?= =?iso-8859-1?q?8a/0bpso+7HWw8Q32Bx7RTyIotMwwj980qShWE25Cng9mXYKtq7rgIG5ZxQz?= =?iso-8859-1?q?VJUGSkj0SBB3FVlwotdW0Jr2+SCGgg0qrMI7mJKWSqMuYQMgU/L+pSmzrPMB?= =?iso-8859-1?q?1bg6ZHXBVe1sa9KXHnLWYV9KxY7nXsIqsmAq64ANuXmlmdt+Y4dPMrscM6eK?= =?iso-8859-1?q?kW9zaB0talxlaC8D+D/wmrWuCWgIrgzi1svN29DnIHK5s2NPyx3/MAjWaTff?= =?iso-8859-1?q?KbblMV+uUiiNQAM0klWqTDzUCUa14PnmC68P7FBjQ/tvQz/NOxA1OO1xl0QJ?= =?iso-8859-1?q?gJIj+6T6QXZWTov1tVF8qgaDfX/bQ0TAPE5Eevv3SnIQlFtdg6ETurZ0qQqk?= =?iso-8859-1?q?oupX0BWwIHavR/GLgApCt/9omIDbnPADQcB0yfB8GqfMbPAoAw19OH02z9Vf?= =?iso-8859-1?q?I7cSr8ig2yb+Za7/HivZR0wP46IVFS+XoAAzBO+t1WW6Npqk0Tk7U5ZLC68G?= =?iso-8859-1?q?b05TeCxChnV/KPR4UI+NHbph4UY5fUhPWqqo73rWKk4Sj/q+XB56o0fGzXkQ?= =?iso-8859-1?q?as7RMMfN0aAGhx+d9knNASnVO2nXSxGUVFDUy2ILWi/gJb3/G0g97TsK3Psf?= =?iso-8859-1?q?VfxN6G2ya47cDREx6vQW8CJ3/4toodoOtzGQEjxSCIhJEEzE/NriF56m5WJQ?= =?iso-8859-1?q?jaLZ6AuG+wJKdj9f3Y248XiOKgXw1iy5srMQr5BZg6d8JGjDDi2R3/Mohz3W?= =?iso-8859-1?q?rZnd3pURA+rKipsWQN7S3GWxuNIGMzhAffBBcDeuAzzc1EQP9fOlzFmPKEjp?= =?iso-8859-1?q?PMg/93Fjtyg7IDuAbCxvGelwYRCyBEZmZCFazXOSaIQIpHrIsOJngenl0gzs?= =?iso-8859-1?q?oeDa2czw8UcUwbMzkJVRHreQ4qcSwtTyqjYCwSEbH+LDcFoUwrsoh23phXjI?= =?iso-8859-1?q?3zo+OD1YswPsJuYbAYmshl1LUS/1l3cilbmE2eG0qBX8OI31YBv+DkE+tirD?= =?iso-8859-1?q?Gob69+GoK2wDZ3fSm+O0wIv1zGFzxnC+2y+Oq8lzV8lRT4nR2qFWdwZlLizT?= =?iso-8859-1?q?/ARpWNtSkrRMPCDO52SbnbqkCyu9p0X/mBxCIXQzTY4IV5Hxfi9TtuCLLT1Z?= =?iso-8859-1?q?2Ib/g6FwsmP2n+8Kgv0Y4Mj1bTJqbq4llSJjhyboLfvIhBzRS2U6U6tDpof9?= =?iso-8859-1?q?5jUzA3sDwdZpFPzIQLS+ZeAp2UV017CZ7I45l9pXzS8e6mK3KJSqtpPr0ZfP?= =?iso-8859-1?q?vDvI9o7zfR5vt2/sa/IWzje+gSMoU/sdWz/1PMMlPb/M+blx5x71ED2kQkmN?= =?iso-8859-1?q?IGdvlpBfWumhl1iTIbRD6kHLpyxVEqd8QOIpRIFCVMDO4u2SsC4Pj/nmXK5V?= =?iso-8859-1?q?esoQKNJpzXvSmC+gwKJI44E/Yog+6zBRMffeyLW3ruprgwXb5p9OJElnTepE?= =?iso-8859-1?q?qZMWxtEPacPP/QX7vnDHJh/pO1htSnWp43R+hlL4jPe+ZmQbB6fSD/oHivMk?= =?iso-8859-1?q?YP6YQD3eQvCdUJyu3N0OzLDdoxG7AYQxJMjpB7ApSOxo5MseYUUQ3aW2AbQh?= =?iso-8859-1?q?1wrzVvAWZAr+VIjhuT7KwFDbKaK0223HtDGu9m+FetS/CH0izN0Cts9lmSxX?= =?iso-8859-1?q?iFDy0THLlLFX98srMI62/9m8XvFCO65Up8H5efg=3D=3D?= 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 X-Spam-Status: No, score=-2.8 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_LOW, RCVD_IN_MSPIKE_H2,SPF_HELO_NONE,SPF_NONE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1754211277724195631?= X-GMAIL-MSGID: =?utf-8?q?1754211277724195631?= 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_struct *vma) static inline struct vm_area_struct *vma_find(struct vma_iterator *vmi, unsigned long max) { - return mas_find(&vmi->mas, max); + return mas_find(&vmi->mas, max - 1); } 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); } 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; } +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 = vma->vm_start; + vmi->mas.last = 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 addr) +{ + mas_set(&vmi->mas, addr); +} + #define for_each_vma(__vmi, __vma) \ while (((__vma) = vma_next(&(__vmi))) != NULL) /* The MM code likes to work with exclusive end addresses */ #define for_each_vma_range(__vmi, __vma, __end) \ - while (((__vma) = vma_find(&(__vmi), (__end) - 1)) != NULL) + while (((__vma) = vma_find(&(__vmi), (__end))) != NULL) #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 = &mm->mm_mt; - vmi->mas.index = addr; - vmi->mas.node = MAS_START; + mas_init(&vmi->mas, &mm->mm_mt, addr); } 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); } +static inline struct vm_area_struct *vma_iter_load(struct vma_iterator *vmi) +{ + return mas_walk(&vmi->mas); +} + +static inline struct vm_area_struct *vma_prev_limit(struct vma_iterator *vmi, + 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 != MAS_START && vmi->mas.index > vma->vm_start)) { + 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 != MAS_START && vmi->mas.last < vma->vm_start)) { + 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 != MAS_START && + ((vmi->mas.index > vma->vm_start) || (vmi->mas.last < vma->vm_start))) + vma_iter_invalidate(vmi); + + vmi->mas.index = vma->vm_start; + vmi->mas.last = 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 = vma->vm_start; + vmi->mas.last = 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 = start; + vmi->mas.last = 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. From patchwork Thu Jan 5 19:15:54 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Liam R. Howlett" X-Patchwork-Id: 39744 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:4e01:0:0:0:0:0 with SMTP id p1csp457918wrt; Thu, 5 Jan 2023 11:17:42 -0800 (PST) X-Google-Smtp-Source: AMrXdXtpdOR8kKwq5Aek2/gvIdbr3C9OhabIAif0SJ/A8QBKXOpuAsoBEVgMSxek6orembwA5WB8 X-Received: by 2002:a05:6a20:a027:b0:b4:9a94:af57 with SMTP id p39-20020a056a20a02700b000b49a94af57mr21082141pzj.0.1672946261873; Thu, 05 Jan 2023 11:17:41 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1672946261; cv=pass; d=google.com; s=arc-20160816; b=L3oSWElHMWguwYBoc+9yWxT1SXfHq4EJzg+6bufFDfpT27HVeJ8Iw5YDN3W5iTUajq rayaDZCv2v5pBpI1Ju8tTY4cJ9btm4dwmhwujZNcNdFGDj435ybmUzTuDnPrO4dVmUNg xsw68vIdM5cgc/MPG5f9eZCrs+GEUlpe5qUdvVK50rpQhZlL/ZYi6Qz0HzrEH6OlPH3u TCXMa1NnVGdIYk92oxM9CqFWlMwAomp4fxY+/jrJyJgvd3OiDg+KUgTXjqwx3DKTJ/3P /vZmu59e03gXcExw4dm7OU/UKDIp3Mv4pK8KQkn+54AxGHSd7Bcw/ipKm9ack9PqeJfb xuJg== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:content-transfer-encoding :content-language:accept-language:in-reply-to:references:message-id :date:thread-index:thread-topic:subject:cc:to:from:dkim-signature :dkim-signature; bh=6pBshLkdqSo1VBylaZBMWLf0C9CRkqL4Ielj6sbUnaU=; b=OiwW3kTcu1pPGCSxSskopT1H+Hl3vdXcgT0o63ruZ+jbEHNyNqMxwNs7WrmE503Ioi /YkediIWLgZDykxMM16m6Sz8pb5GoH5v5wcpLMocBO4TfmOeHHFmjMRSRheSXOMAbWKV 55kbtzQ4xMCDHAjz1G0GWNcNOHIUX2n6bUoljYAqtJHbOYjX68QgfKtFYoJYZbCmhUZg Cfzd4uE6YX4WOD0Vz1jSxUIMN01m5CUa4jxJC6PQ3qG2BC8FkRyghYYaRsmUF5MnmL7U u38LRYHUn/HmOi1/Bb1cg6beBBj0QCEjlHKmpE7o0A3aEJ5hukIT23qjXmp1Ia/GyA3n q7kw== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@oracle.com header.s=corp-2022-7-12 header.b="0/uSVYP0"; dkim=pass header.i=@oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=smtdmd0j; arc=pass (i=1 spf=pass spfdomain=oracle.com dkim=pass dkdomain=oracle.com dmarc=pass fromdomain=oracle.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=oracle.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id f188-20020a636ac5000000b00461b7568ad2si39832538pgc.527.2023.01.05.11.17.29; Thu, 05 Jan 2023 11:17:41 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@oracle.com header.s=corp-2022-7-12 header.b="0/uSVYP0"; dkim=pass header.i=@oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=smtdmd0j; arc=pass (i=1 spf=pass spfdomain=oracle.com dkim=pass dkdomain=oracle.com dmarc=pass fromdomain=oracle.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=oracle.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235407AbjAETQk (ORCPT + 99 others); Thu, 5 Jan 2023 14:16:40 -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/LknJrixZ10kbDQMTucM?= =?iso-8859-1?q?NoxOwX2NzCcboR3l3dCT5/oAEeFlRYbj8q5UA150RlZ766IqxSQTEU6MP72d?= =?iso-8859-1?q?uSYxUXCOtlZcjL4iq1OC4tnBZ/JP02I+J60PptqSwE2GqNNe7yXjAEfXNcOJ?= =?iso-8859-1?q?0V+ZIyq9MT1FfmEvpf3s5Y96yOoarIQPfjhNwpvfwXv1uD/E6UD5Zzdd94/v?= =?iso-8859-1?q?+yrNvATT7w3P75tuFozIVtOOlb+TEojSsZKL2avEis4c7JcZzl3AdBT+WCXX?= =?iso-8859-1?q?Hpsz/jyJml3RTGyozy5kzeBq9/5GnX23JGmdb9wAyiLQoqlrr2z+p4eDqwMP?= =?iso-8859-1?q?ZFD0GaJLWypthbbPG6+lb3aiFSTo+AUYfGHOXyxC/zOlmOSRQnfHyfRTJEfg?= =?iso-8859-1?q?QIBkk+OGNCFGLwXT8vZ4l7iLW3YOhMDB4E9s9Jr2yNkSn1lQ571/lE8slhzW?= =?iso-8859-1?q?jh1iVv9hhCc9TfZn7K48pqAcjXJyLy9SNExHFTIqNRAG9dtWfV9YFSh57MOb?= =?iso-8859-1?q?UxYc0Rxcu+bE1BC3/oi0ko979GHLdJVKPjw/rQ0vT9GvuostiRZYmGQZJAQ8?= =?iso-8859-1?q?pbLUX9UdiFJOcACT1iduB31qISzNjIeg1Cnm5vyawLaIJCW68XVE+cCeEKG2?= =?iso-8859-1?q?O13ml9TifZkmv80QtVYEBmLQC2BXkQDTVTPaJLg6VlwtUmC5p95HHKWBIl8l?= =?iso-8859-1?q?Zh3XWI/YN7LAKzxlg2Rf5WOTl5ePc8xkydeHAKcVV6QllfC4igy6zx0tUnxr?= =?iso-8859-1?q?edFBCAtPsx6ylEH1MFsmoVPokoC3DQfICydeCM7Kg4xV8tOZoeQjMiKRJDk5?= =?iso-8859-1?q?6xeApWhzsiQ/D+NwsbjhDuiwzONRyL9mAC15GF+GqYtH7ReI98eFBPG8tNEf?= =?iso-8859-1?q?0E8QpmVjE9/h9jmyP+w5MqdTOZRPbRWnjcdCyjJ1Tts89Qi/b6YrFx/d9AXQ?= =?iso-8859-1?q?sp213MWYV6SY5jnNiXsm+3WpcAaZ2V3+1nGPoHQzOP80YqBHgQpp1fwwxiOv?= =?iso-8859-1?q?NvZ3MbSu1wMDheN2SpnxoJ4+izMmMsdrSKWpxtmidmgexusAmLcqGh2thqgz?= =?iso-8859-1?q?kYP49On/UOqqhw+ju2bee2SUIKyYlCQ/jG6/w3HXERvQ8g6aNyFWVlYenZ5J?= =?iso-8859-1?q?aq4kLkDRRiy9pT9Kz7Ekl03wBIDrZvdSvFcND80ABl//twY5qeBiVCs3hBS6?= =?iso-8859-1?q?HmLCccPysnZFH2TJBErtiIEkm52ZG1Nmwd4U7VoEmfd0CN51uvkMqKKl+YRS?= =?iso-8859-1?q?7esTNz4oJzw2+R3iOe1tmKlB9W0vxSnhnWvL+4wECexSOEm6GCeEyGMDnnVa?= =?iso-8859-1?q?7q7LzRJpq+5P84xfgsR+z9xvdcg9eJNaHtzNlDo/c4mSUbYdwr8Xf121kxwQ?= =?iso-8859-1?q?A8NoI2FSEI713YwcU9w0kaYAscBrj90Pvf5rVTYiNEk8F7Qnog6TCId3uiPj?= =?iso-8859-1?q?HeFlTAn+p++xLMOW4u8J2PI+o6t/xoAjpQwROidRY6PXBaOO2BECAMb+fsAC?= =?iso-8859-1?q?lfWUcn1Z5IOg6AJ+veKfI3NAOkXwP4QsCdlnnv+6FvEQcubGMHbfP39NAI3F?= =?iso-8859-1?q?ZcmTsNvQDvNSEBozEdNVtIfsiM2DFxZy3Z/3w8isv3evkpaHca9m6CC2gDLI?= =?iso-8859-1?q?/ZK5ps5kCQ4i98HteoA91fdafrmvVKwPbhG7ccg=3D=3D?= 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 X-Spam-Status: No, score=-2.8 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_LOW, RCVD_IN_MSPIKE_H2,SPF_HELO_NONE,SPF_NONE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1754211299128761754?= X-GMAIL-MSGID: =?utf-8?q?1754211299128761754?= 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, unsigned long len) 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 *brkvma, +static int do_brk_flags(struct vma_iterator *vmi, struct vm_area_struct *brkvma, 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 = false; LIST_HEAD(uf); - MA_STATE(mas, &mm->mm_mt, 0, 0); + struct vma_iterator vmi; if (mmap_write_lock_killable(mm)) return -EINTR; @@ -301,8 +301,8 @@ SYSCALL_DEFINE1(brk, unsigned long, brk) int ret; /* Search one past newbrk */ - mas_set(&mas, newbrk); - brkvma = mas_find(&mas, oldbrk); + vma_iter_init(&vmi, mm, newbrk); + brkvma = vma_find(&vmi, oldbrk); if (!brkvma || brkvma->vm_start >= 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 = brk; - ret = do_brk_munmap(&mas, brkvma, newbrk, oldbrk, &uf); + ret = do_brk_munmap(&vmi, brkvma, newbrk, oldbrk, &uf); if (ret == 1) { downgraded = 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 = mas_find(&mas, newbrk - 1 + PAGE_SIZE + stack_guard_gap); + vma_iter_init(&vmi, mm, oldbrk); + next = vma_find(&vmi, newbrk + PAGE_SIZE + stack_guard_gap); if (next && newbrk + PAGE_SIZE > vm_start_gap(next)) goto out; - brkvma = mas_prev(&mas, mm->start_brk); + brkvma = 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; mm->brk = brk; @@ -2963,7 +2963,7 @@ SYSCALL_DEFINE5(remap_file_pages, unsigned long, start, unsigned long, size, /* * 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, start, unsigned long, size, * unmaps a partial VMA mapping. Does not handle alignment, downgrades lock 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, struct vm_area_struct *vma, int ret; arch_unmap(mm, newbrk, oldbrk); - ret = do_mas_align_munmap(mas, vma, mm, newbrk, oldbrk, uf, true); + ret = do_mas_align_munmap(&vmi->mas, vma, mm, newbrk, oldbrk, uf, true); validate_mm_mt(mm); return ret; } /* * 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 able 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 *vma, unsigned long addr, unsigned long len, unsigned long flags) { struct mm_struct *mm = 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 == 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; 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 = addr + len; vma->vm_flags |= VM_SOFTDIRTY; - mas_store_prealloc(mas, vma); + vma_iter_store(vmi, vma); 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 = addr >> PAGE_SHIFT; vma->vm_flags = flags; vma->vm_page_prot = 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; mm->map_count++; @@ -3087,7 +3086,7 @@ int vm_brk_flags(unsigned long addr, unsigned long request, unsigned long flags) int ret; bool populate; LIST_HEAD(uf); - MA_STATE(mas, &mm->mm_mt, addr, addr); + VMA_ITERATOR(vmi, mm, addr); len = 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; - ret = do_mas_munmap(&mas, mm, addr, len, &uf, 0); + ret = do_mas_munmap(&vmi.mas, mm, addr, len, &uf, 0); if (ret) goto munmap_failed; - vma = mas_prev(&mas, 0); - ret = do_brk_flags(&mas, vma, addr, len, flags); + vma = vma_prev(&vmi); + ret = do_brk_flags(&vmi, vma, addr, len, flags); populate = ((mm->def_flags & VM_LOCKED) != 0); mmap_write_unlock(mm); userfaultfd_unmap_complete(mm, &uf); From patchwork Thu Jan 5 19:15:54 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Liam R. Howlett" X-Patchwork-Id: 39755 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:4e01:0:0:0:0:0 with SMTP id p1csp458376wrt; Thu, 5 Jan 2023 11:19:02 -0800 (PST) X-Google-Smtp-Source: AMrXdXsKjoVfbZhLu1gBtNERaWwgUO4f2eQLZb2lx7GyHq6BsqCaVDxOH2f/JvX716gzbEsIVRI3 X-Received: by 2002:a62:6345:0:b0:580:cfbc:2902 with SMTP id x66-20020a626345000000b00580cfbc2902mr39009877pfb.1.1672946342581; Thu, 05 Jan 2023 11:19:02 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1672946342; cv=pass; d=google.com; s=arc-20160816; b=w1KH6dEiANI4JbDIqi4Nuqc/N+ALg7XQ229TM2CEvYcbP3VSGgHVKNaL7amsqNjURn wYHq65bMhjhwpx24ybQgBh9XdGk3t8TpEii3dgTANmUv1hbfY/hqXfXSHY8gMgIh7XUw 7pLo2wuzeLYwP7zcfTqWRdYMyLCczoXKbEQlWbuKEubG9i7R5mQe6NhTpjIBs9CHi2p/ g2GMzLEI/Ew7ii0fp2r5npXS8/BHSug43XNU1xHt++aAtu/gMU+eJtY0c963n7xOFqEV tfqaDiQD+kOkZ5C6FsR85xVIuI5ekem6FDEE8OoT1Ba8qiDEir5L66Q/+7E9tIUw58qr sNbQ== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:content-transfer-encoding :content-language:accept-language:in-reply-to:references:message-id :date:thread-index:thread-topic:subject:cc:to:from:dkim-signature :dkim-signature; bh=RFpRUc5Oex1lM3Q+9B7MFquPWyR86idsNW2D3KmMUJs=; b=MjsX/eCL8NyA9eFlyYzviu6xO0YJ6r2zFPwGfM0prAe6t+7fkJASSFQH5nSkqZnMh0 t0k/KhasrUuLGhGOEk5j2SJoqjmuJGFLCA+bU7Iov8ZpnOas16HEn1A0v0HpayGT5U5+ z14Akhqu42Sgd6r70hdzttGkPjWnjm0f/Iyy36JOW5Ki7vC9gpReL3H5QYSsMLC8ZVkL H2W/cmiLKxX8a+XZYKZ8TnKp7UxcafGwMjsDE/7KCvLGddTxdtOhkJxpuWT5K167YrcJ wbQmtrMEwNko7LxsZJ5jLQfH+yV9USgvs8JiOk9shy4DoRTidIswxyFlY2///SuapOPb K4cw== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@oracle.com header.s=corp-2022-7-12 header.b=VQx5jsf9; dkim=pass header.i=@oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=hP1Mo3sF; arc=pass (i=1 spf=pass spfdomain=oracle.com dkim=pass dkdomain=oracle.com dmarc=pass fromdomain=oracle.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=oracle.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id q4-20020a056a00088400b0056c231e4447si39204374pfj.198.2023.01.05.11.18.49; Thu, 05 Jan 2023 11:19:02 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@oracle.com header.s=corp-2022-7-12 header.b=VQx5jsf9; dkim=pass header.i=@oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=hP1Mo3sF; arc=pass (i=1 spf=pass spfdomain=oracle.com dkim=pass dkdomain=oracle.com dmarc=pass fromdomain=oracle.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=oracle.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235644AbjAETSB (ORCPT + 99 others); Thu, 5 Jan 2023 14:18:01 -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?2HFtpwcXzAsh7znEHWsuN7f?= =?iso-8859-1?q?I6M+nuyAFD+xq/2SYA5GZA1m0G6eUfZQH1wCOvvsuy6dmEahAFDdv/+b72RF?= =?iso-8859-1?q?yCi/XH3mN4n3mS7DKi3WMW6yBKbTKFVFrGyci/u5Q7aJOUtmCov37iy+Egao?= =?iso-8859-1?q?qLEAHnCru+/lYRMo9+2S2L4Cc+bvkrA1M2Rw3LielpxtMOuiVQrqu9RN/WtX?= =?iso-8859-1?q?7XQV2WtPnsv9rHeWu6SFRXmKrpP9gmgbGoMRA4D72vhYmezikeRNxRPtQnSH?= =?iso-8859-1?q?bgcbOGfhM+YmGl+MuiqQXt/gY2K1Lb548Xk55FcNSJuKUE7QNzg2l8vvQypo?= =?iso-8859-1?q?9A2IRzD5IFwpL88LA6uXQNQWkzjKkC6cERCO3b4P1iCoI1XFmEKXW7+xFO2H?= =?iso-8859-1?q?3yi9JSxFEef4kmscjW++PqnyzfgpS0FTwG+p7qLgjLxtALFVNHBZvquZgVDy?= =?iso-8859-1?q?FD4OG1eIX9HH4XgXz0kM0MTm1SywSomob8TLwJ2TQk/fS0B7d3YnC+MQUeVo?= =?iso-8859-1?q?174yL7clwWyFO5utuo5DqieMyfACFj5Ncd4oV++16m9BgFfZz2W6Wq628ZQR?= =?iso-8859-1?q?5o3VaGkotipVZom9V71k9lu2LfEmpMKuCkCyN3YhTsbF0+hkr7vA+fSVEqQA?= =?iso-8859-1?q?gEONar+GLvJQWXIgthmWPTXVb/JcCKFGvJsfm//JxH8A+69XrEYmC6W8tuTp?= =?iso-8859-1?q?jlwfW6bABVTI0juQHTW3C7wAbMuu9sq9LV7uEigBT7Z4xg4rjQKw5Tmqrr3W?= =?iso-8859-1?q?hf+vdgC3t/2K+f66K/PxUpgpjlX23YJf1OXRz8k/9jbr/cS+u5OFLP8Aw+KT?= =?iso-8859-1?q?jMs0h6j3CKQxYv0aS0SSKiu8dsvsPlq8ENYVd95xHvOhO5st6J3gvYe+YRFi?= =?iso-8859-1?q?trJw+xDewMQm8Zx9ILV+yspYHB0S9FLeEOd8SfCorHqZ28YAbsf2LLwj61O5?= =?iso-8859-1?q?EFbdaz7IM7Yw1Tf5qJKUtN2lwdv32O5fdRXOQXdQjbUbKWu6BrpVPhgLjAb5?= =?iso-8859-1?q?J7y+AOPCyLvPVkvnvz0ZQtJBhm6vtjpxZdL7mI8K3gCtDcUFeBtIl/4n9DJy?= =?iso-8859-1?q?mX3z46e90861jjQ09frmgRT9JUcgZxsuIOlkGRojXMczBJRMeokuCWH1Lq5s?= =?iso-8859-1?q?3YxHL6TBxvAlwPqoUOF+KAmikSTogSx+dCOowAtl0sq22WWtqyUdxqNQniO2?= =?iso-8859-1?q?yNsm7dTKi4abD2vYiyuGKWY0u2BglcOpXS6UyjsuBs5M5bhYRkeFPwcM3H3z?= =?iso-8859-1?q?2k2fpOt23s1EbJMzyfOTCnZdCjxI6Ol1Cwv/sToQkkABwBz03kBpgrg41Ca+?= =?iso-8859-1?q?FSucRYODH2//sxC3OmgCMKUWnKw/7SqNDsxqDU5J0G2UqI0DGQ7KwtSFcFpq?= =?iso-8859-1?q?IwG1hZnCGA4PU3N0UILKncMC2xWWVB23U5H6hc7UIxFAoXnJtNiZJnIsWk1q?= =?iso-8859-1?q?gnLHIB8Jp2IJrHeR8MyNJ4ZBcQiiQCB/LmmM+8FxWtKi3q8VK8ryLPkqhtJs?= =?iso-8859-1?q?1wvjk2JW6ChHG6PhO6xYbYbG3Sk0AIQqvfzmKaehbmpk7vzZrdYTPRt/sNPb?= =?iso-8859-1?q?pVxaTyG25nbEWuKAns9Fj0A/jmfWq2/hjpA4jzW/166EckUzBDN2D4YhZtQ7?= =?iso-8859-1?q?x9FVpifk6QQ4LgrNwbXyP18gnbyCqIPuVg/xYzg=3D=3D?= 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 X-Spam-Status: No, score=-2.8 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_LOW, RCVD_IN_MSPIKE_H2,SPF_HELO_NONE,SPF_NONE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1754211384031198548?= X-GMAIL-MSGID: =?utf-8?q?1754211384031198548?= 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 = 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); 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); - retval = mas_expected_entries(&mas, oldmm->map_count); + retval = vma_iter_bulk_alloc(&vmi, oldmm->map_count); if (retval) goto out; - mas_for_each(&old_mas, mpnt, ULONG_MAX) { + for_each_vma(old_vmi, mpnt) { struct file *file; 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); /* Link the vma into the MT */ - mas.index = tmp->vm_start; - mas.last = 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; 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 = 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; -fail_nomem_mas_store: +fail_nomem_vmi_store: unlink_anon_vmas(tmp); fail_nomem_anon_vma_fork: mpol_put(vma_policy(tmp)); From patchwork Thu Jan 5 19:15:54 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Liam R. Howlett" X-Patchwork-Id: 39746 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:4e01:0:0:0:0:0 with SMTP id p1csp457962wrt; Thu, 5 Jan 2023 11:17:51 -0800 (PST) X-Google-Smtp-Source: AMrXdXtXLN4gBhFVI2hqTZQBrLXgylKH0m4sZ3OxJHT7d9LVP827ZxJE/dTZeVNo4+WGO1XshHMv X-Received: by 2002:a05:6a00:4096:b0:582:7ec8:16cb with SMTP id bw22-20020a056a00409600b005827ec816cbmr16356497pfb.17.1672946271485; Thu, 05 Jan 2023 11:17:51 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1672946271; cv=pass; d=google.com; s=arc-20160816; b=g2FS+5cUyOJQ8SDkt/m7ho6as0ypGVtsQoLnxEa4YDyBu8KABMOgBQMYKziiYe2QyN XomW5KNr8FzbKLPUsADA5nvKNOca73QoX/u85eJzCL4yg720kJyDOfP1HQaTMluv/Cml WdPn5KOErOZdbsvS0yCMpH+Ka0juj5e3EsXv+tPKHr6VqheMykq3IVZV+NoO2QU6m8Ua IJWkige7mHYtG1qWiKv2WHIQc2UQU5POOly44xEpK3AHldGwTM4Bk17pKX/pooIVSRSD 1JaT9myOUy7KCe7aEDDnvU8yI5ART4ZMdhdBZRd6XzzrknIguModI79Jv8HSNUTfVsnA ai+A== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:content-transfer-encoding :content-language:accept-language:in-reply-to:references:message-id :date:thread-index:thread-topic:subject:cc:to:from:dkim-signature :dkim-signature; bh=B/nkXQcR6JgrRvx02poR9ZZyLxT8+fxjXFELOkpJf40=; b=cq+1Z0361dEix2yTnX1TI828rU4eNeazY0BSUzwZQ3hK6+Zac9UKsg9RqKQuxrCXHj aY9nroL8OZk+887vMGMrG7zkJ5TSda6QF69AnAhe+f36vinp9o2m7Y388+2M77RLKZW0 bTn8HuRBYTrlCkCs4Jl5WNQHNMOmsMJEda5gRA8b13sP6SrAzU9qBvb9oH3VxxjJWq6U fGDWfuw996WnewDNyYJic7/wXI6YCRVxbAe1EwcAmqasV24pPDCPO2zaLDISiNy/JvNO 2UX5mOQebOCKyqjspJb+sVENYvMsQ7q4kAGsC3+Dd04aXMakYsFkzowhasc991TyfEp9 pHdA== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@oracle.com header.s=corp-2022-7-12 header.b=B5LzgGac; dkim=pass header.i=@oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=gDRe5CW0; arc=pass (i=1 spf=pass spfdomain=oracle.com dkim=pass dkdomain=oracle.com dmarc=pass fromdomain=oracle.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=oracle.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id bk13-20020a056a02028d00b004a1a2630f1bsi14878553pgb.459.2023.01.05.11.17.38; Thu, 05 Jan 2023 11:17:51 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@oracle.com header.s=corp-2022-7-12 header.b=B5LzgGac; dkim=pass header.i=@oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=gDRe5CW0; arc=pass (i=1 spf=pass spfdomain=oracle.com dkim=pass dkdomain=oracle.com dmarc=pass fromdomain=oracle.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=oracle.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235300AbjAETQv (ORCPT + 99 others); Thu, 5 Jan 2023 14:16:51 -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?++v221DaozvkfBWrDMeMeXg?= =?iso-8859-1?q?JVVWrWR2tqojAuph9UOx7NkSKjUCi8kLNh7AzC3FaeTHH9One4tj4YCylvh5?= =?iso-8859-1?q?0TBOzUf8KInOPt+CG7uaS7B/+6wJUWMvsVT4h+ulUUqQLmyOklupi9J42Cdd?= =?iso-8859-1?q?Kf5l5PffGrj+pywf87K4F64eBnTEYkOq0aT+NUlGHgmRapUyeuOG2rHW13QN?= =?iso-8859-1?q?vTAWU7VGgokwzsxEPhwEW0nTQL9EsHyNgWAhwxwd1x8R1IDc4vf3EsURIsCp?= =?iso-8859-1?q?vpvGql20ITg+7rQs/Ewl+RA0GoRUupLppFZABkE2UXqZzI5y9N5kuYyO3cbk?= =?iso-8859-1?q?2jrs4aRrQ6vkkCS3l5+7iKDByO52LGfL5Z1R5KaaiOW/zahUoHz+AD2qrVo7?= =?iso-8859-1?q?zj13X3nht4C8uDjmYNasbWvV0ABEyZz1buJuUXejzWeT8lIAA9LaFoUOVJ/W?= =?iso-8859-1?q?BNuMoYJICsd90rVS9VWkeZwSt1KW+GJl6UARNTJRkadVzbgZMBR70Q5WzOte?= =?iso-8859-1?q?X3DNb35cgAlk3/YNZcU8zMzPCPp/T75IykLzTFWKtuWvSw2s5tWrWkh0XoGY?= =?iso-8859-1?q?b+KQmVN5U3zc+MUlau2AAFToeO7CHtqFi0a0hCFa3PI3Xa6CbSuF/LqsryNm?= =?iso-8859-1?q?0dqFDhzaIlTavHqUrV0sRo+vUH+tvqdGVnXfcetavcslK7G2ONFofN9N8ZUk?= =?iso-8859-1?q?PTAHwY3FFk2uQJAxzopOSsxH8Oik2OX0AOoHA5eVf6a1iwEZ8ru0gSUR1gmF?= =?iso-8859-1?q?zEZF7moP6psYvHlm4gUzlU1RMuGuPvjcp5N0y/Xn+dn73/b3E4Uc/7vQ8M1r?= =?iso-8859-1?q?IKd9FRmbwyAsrCdLqpFgGbRvKAvkOIT/03aSS65m5bLCK7hRYECPh1zmmWDV?= =?iso-8859-1?q?tTwaGeSQTVsQXYZMPANP0Z8csmTdXOaxJ96S905UIjDIm6cQZodHZVUXV9fQ?= =?iso-8859-1?q?gQEi7n/jmX2O5ITe4fHobyXFoOuwoM31WR/vj3vb58WgF0aWqS/MOLaPPR8U?= =?iso-8859-1?q?aR10E9vWmFyEkiK2SkwQNSSA9+T9iBa7M9Ruj5kVZKGmBVc8QLcpwg1Dk8sZ?= =?iso-8859-1?q?HQV5gtRecYVtTOJdvOSEyeRefD65p0KSe4aKzhOszP+5KzvZzujYM2NdelpK?= =?iso-8859-1?q?DeG/SA7gNxy7BetFHItp8zmBJKn+7osLVTqUi8iS2LHumzFRlLiq3OJkeBok?= =?iso-8859-1?q?96diZoKfAIxUGr7PYb02XnolhFzKfRz7jkBsh2ET89XyTW0l3LWt6ur6ULFD?= =?iso-8859-1?q?IY22Hgkg8pWP/6A16iUGon1qDFAk0lL9gwpKGWwr2Acek5GLL9B/qy+klanc?= =?iso-8859-1?q?5A7UFHy8yzF/EZArw/KDzW5/KVtNPvTMF3yK9YLS+9J0i3CzLpuypNr5kUmn?= =?iso-8859-1?q?Z4/f46cKVyJyHhEvUvQRVz1b5PnMi7f+iMAB/3HMhyP7rWN4L3zr/CPBw7xJ?= =?iso-8859-1?q?FJ71HemWZEIyWEW50UFWCB91XfK0DDS1t/KwqrXH3DCAPiyN9YD90w7MXU71?= =?iso-8859-1?q?vrNutT24Y3mtwMfll6S7ZfouBtBNe0Xx6rPXqjqSMwDaBc96/TWLCM8vtuBw?= =?iso-8859-1?q?hDkW020Jubxx5tE4sf7IELAx/snzClBKTatlkRZ7isPFfXJnZ+hX4Jn9t03G?= =?iso-8859-1?q?qAHHA62snvvzFsKAkcQbWad9RBJl2F3g7at8aMg=3D=3D?= 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 X-Spam-Status: No, score=-2.8 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_LOW, RCVD_IN_MSPIKE_H2,SPF_HELO_NONE,SPF_NONE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1754211309809154335?= X-GMAIL-MSGID: =?utf-8?q?1754211309809154335?= 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, 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 = NULL; - if (mas_preallocate(&mas, vma, GFP_KERNEL)) + if (vma_iter_prealloc(&vmi, vma)) return -ENOMEM; if (vma->vm_file) { @@ -557,7 +557,7 @@ static int vma_link(struct mm_struct *mm, struct vm_area_struct *vma) i_mmap_lock_write(mapping); } - vma_mas_store(vma, &mas); + vma_iter_store(&vmi, vma); if (mapping) { __vma_link_file(vma, mapping); From patchwork Thu Jan 5 19:15:55 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Liam R. Howlett" X-Patchwork-Id: 39742 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:4e01:0:0:0:0:0 with SMTP id p1csp457912wrt; Thu, 5 Jan 2023 11:17:41 -0800 (PST) X-Google-Smtp-Source: AMrXdXudi0QBi0keTPj76OfRXFbHNzNvZpp8TR9F1rMbsY2SHdredb646JWSm6OIWsyC0r5UjK5Z X-Received: by 2002:a05:6a20:5489:b0:b0:b870:54e1 with SMTP id i9-20020a056a20548900b000b0b87054e1mr85465943pzk.12.1672946261395; Thu, 05 Jan 2023 11:17:41 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1672946261; cv=pass; d=google.com; s=arc-20160816; b=QPr31nRUqVgVkLRfMBuCOf69EGyaKMcqAbz69cXuOdGnofdfWSvlVk06q90Wq3YR47 vntKcVWK2f/SSgc9N1Pi+KaA8VON/Fafi8V3eXt89IK0Jqg1L6qkmxtG8b44AHRkDnSU LIR1+iepRjb/iDDHmoz8sGgOjMU9dMYyoiHcSwR3KxisUp+J9GjKDcBja4zJQCVWBiaj iS2nvMCkxNi4fTEch78gxU+IMa+T482MYoEYbJVv32EtEPGw2h3H/78w6+wWrF31r1GI Fp+QuhWeaD1Plw++U1mPipRvR0F6D7qO6qgD5vT2OgTLl1KCh7eIe2i6rkHruFdeLAAK 1S6w== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:content-transfer-encoding :content-language:accept-language:in-reply-to:references:message-id :date:thread-index:thread-topic:subject:cc:to:from:dkim-signature :dkim-signature; bh=5oddPyVGxo/ITa895tY4016/N2FSt9g06ZqP6l9igmc=; b=fSHvPkjMI/rako4usrIt7ISa1hAepQuPRZJRF6C13YFCghhJGTHp1ZlyrE8zYJ8TK/ l3/r3BgMJB5IhI/n/QBeW0JNbuCGd+WNFUTzj53BXuoKovYeWv3W1cEnmnhew6fYXLiR uVJQhiA90m5h/tHkBAQl6eVqepFsGBm0aKfZKaArYj/dMtTeoGbRaY04t5VjSwzdrY9z RdSBs06E49lFp6aSpawhAWXVmk2YbsaPetNubA3dVrtQRAMANYXzppGrT3itbUZqS7h7 2SmJlwWv/EkOPmkukMNbu2UrhSo+2DkVu7L+Uc1Y+gRL2Ro03CzvrS47pkom+SLyCZTW Onqw== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@oracle.com header.s=corp-2022-7-12 header.b=tsGlMJ7P; dkim=pass header.i=@oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=ybW2BrbY; arc=pass (i=1 spf=pass spfdomain=oracle.com dkim=pass dkdomain=oracle.com dmarc=pass fromdomain=oracle.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=oracle.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id x4-20020a63db44000000b00476e6407413si41056336pgi.15.2023.01.05.11.17.29; Thu, 05 Jan 2023 11:17:41 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@oracle.com header.s=corp-2022-7-12 header.b=tsGlMJ7P; dkim=pass header.i=@oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=ybW2BrbY; arc=pass (i=1 spf=pass spfdomain=oracle.com dkim=pass dkdomain=oracle.com dmarc=pass fromdomain=oracle.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=oracle.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S234237AbjAETQf (ORCPT + 99 others); Thu, 5 Jan 2023 14:16:35 -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+4wb?= =?iso-8859-1?q?m/HwSzeFZFcMEAfbx0qnD4euMRYxKXDOL6mWgFJGGLlCru7m+9gNunBy1/OF?= =?iso-8859-1?q?4mb6qm0oprOxPIF0OV6Ix/a81L7/K11Es9wr9PZe9+IzyqBl33wWj5/ybQgw?= =?iso-8859-1?q?VEEk9bwrwvTwNJHcwXSS374qSG9IxKMbvUxjvKcZL8P/5tDGhj6cQ5NS9Vo/?= =?iso-8859-1?q?XG1nm/nLuJXyagLgIteWay6GOB0x+7TLslsPHwfsqtEpBh9thviy7IJJqzpa?= =?iso-8859-1?q?L6/r0w3kN5++G/Dt7X7ElT1cPHI4oAPXtr5Dc4lw5rdk54/hKomqTovfwFaB?= =?iso-8859-1?q?vHEdwuO2C2C2wU7wFTd8GNoHI1nEO/NqJvJWIKLA0WwmWxzHetNPYtBC+SrO?= =?iso-8859-1?q?jgwTE9ymfNns4lUR7JcKN7/wuhZuyTadGR1DN4OlTl6QbHRjMIUvs2we7U5e?= =?iso-8859-1?q?4vGID6lVXBD8nBiqfcxw9mu7WS1gtDDNE9keWBhfRafTIUpn0De88jSwdTQj?= =?iso-8859-1?q?zMCpxVgqTTIoLFbVqr3oqQt/ukIJq4eTp4WPz8KzUoo6L6VyveF/SttGpZVq?= =?iso-8859-1?q?C61xXXdeXCrc9huolXXK7jSyZ4Ew1rrWx6y5iQvi+HNEtE8gVfnphXhY91Tv?= =?iso-8859-1?q?bmMhBOXZgyYRNpGO6K84ectZjoVA4I/eg1gVW+KvtjF7KSmRGZl/ez6A5zoI?= =?iso-8859-1?q?7yO9ScZtnsyBFfhsRWI+4DlEoBDNe1C1aMQsAM6x1TveES6sFbWHmFM8R0cj?= =?iso-8859-1?q?DVMWnBDPdQp3ZNruB9bPneGpwhgFH/wOXAMfCB7SeKEx2++8DUiQliJX6ocO?= =?iso-8859-1?q?x08do6keLuD6xPwnONd42FGM7iWtETZwd59bb4X+9ZunCgGNxUnLzB7kVk1w?= =?iso-8859-1?q?tTxy4jJsjb99OluUlfsqHNxD8GbCdi4lmH9IE35tJmZUQd0xLFgnH/RwWwuW?= =?iso-8859-1?q?dJQAy302h0DRST1HPe4p7OsgFQyX6KImkg4bIAB8lXoHqx0vBd41v4nIPd+2?= =?iso-8859-1?q?0qsTX5837fiF50BFepn6b+OJ8Jw6DKmLqpCal3EMXxUL0fQzSlozxvx8hhvE?= =?iso-8859-1?q?FMZnN9asdbylhvorHi5YCZEE+iFKU8RcICLsReGYcGYfcJkI+fYShCY1UYAX?= =?iso-8859-1?q?vTgR9JYSog6WDM9n32FgEp676+1WGz+4yz5djM40FCnMq3SSBAonJsj9InVU?= =?iso-8859-1?q?UBVce9q69eHz+XAVHndNdmRqtg/4U2KK/LrV4EhdT9hbKo8z7umvwMPTv27O?= =?iso-8859-1?q?DB6LDakZbuTCNA6xVX1RLA67FwYsyu2dskOfI4kOd282P8AjvOZlS/UfLp40?= =?iso-8859-1?q?DD+aGiVGuWB9pXiazMFIa0WxC4M5Gz0CW5GixWovc6s05JiyuP0K79pnPW/m?= =?iso-8859-1?q?nV5AsbO6wqyeT2FB5YUyo7qQWzsA76VsXW6TAI1v4I/1z2uH7IWTGiZWk5mW?= =?iso-8859-1?q?/Rnw55RiJ48eicHXgKTZjvrfYaGKa1TvFJCqmX8XhHDyMN0tDVtAdNsBMcvY?= =?iso-8859-1?q?TPO/9T0t7TV+UOv0TBkm6KF4uzIJBCdqEZDuDvMYIFgRBKqv6gCjCQ+CsdJV?= =?iso-8859-1?q?hjHtY5zTi8xL2tQE8oOHm0DhSk0XCQhTWb+BjBsdPMrJ7muWd49dqngB+HZX?= =?iso-8859-1?q?8frs7phRDcnRU6QaLrRkJlXiUUsfuVrPHANwzlg=3D=3D?= 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 X-Spam-Status: No, score=-2.8 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_LOW, RCVD_IN_MSPIKE_H2,SPF_HELO_NONE,SPF_NONE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1754211298687115641?= X-GMAIL-MSGID: =?utf-8?q?1754211298687115641?= 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_area_struct *vma, mt_init_flags(&mt_detach, MT_FLAGS_LOCK_EXTERN); mt_set_external_lock(&mt_detach, &mm->mmap_lock); - if (mas_preallocate(mas, vma, GFP_KERNEL)) - return -ENOMEM; - mas->last = 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_area_struct *vma, goto userfaultfd_error; } - /* 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_area_struct *vma, struct vm_area_struct *vma_mas, *vma_test; int test_count = 0; + mas_set_range(mas, start, end - 1); rcu_read_lock(); vma_test = 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 != 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 -= 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_area_struct *vma, __mt_destroy(&mt_detach); start_split_failed: map_count_exceeded: - mas_destroy(mas); return error; } From patchwork Thu Jan 5 19:15:55 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Liam R. Howlett" X-Patchwork-Id: 39747 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:4e01:0:0:0:0:0 with SMTP id p1csp457983wrt; Thu, 5 Jan 2023 11:17:56 -0800 (PST) X-Google-Smtp-Source: AMrXdXsWd4De9BlFBXCbVWeU4cu+qzQzOSU5hrwyo6/mYtoNVl/DmMnX7KZVEmU8/fQd1h6A/9IA X-Received: by 2002:a17:90a:c281:b0:225:f606:341a with SMTP id f1-20020a17090ac28100b00225f606341amr40344527pjt.12.1672946276382; Thu, 05 Jan 2023 11:17:56 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1672946276; cv=pass; d=google.com; s=arc-20160816; b=Y+cGSnmr4mLeaN4qT8aszgrKmHZasdYJ/NHjMP5TzzC6M6iYJGfCng1qCgPJi53Ki3 9iLIPFEZkIpBEphIMzS9nU1AJjS1Fjdn5dmlweWte9HMug96iygZWEpIjPCDpoQNsK++ QE5snAcod0Yt2FPUglzs8q0aEKQl/jnKo4go5FnE+vcf9niS/Oh/MVKxHj9rApBlIg2w AcjukodYSzKt8C4bzrxkCpQsdTrVrxsSXSNL9G401/7SyGGhWSf5AJBlpTyZvbG6WHOP mFDUpgGX3jGKBSgDyhQFlGQ3fqxQC0bj7N8l4TS2KuwoLBzVucfOWeY2m2Tr1hxaBKWV KO7Q== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:content-transfer-encoding :content-language:accept-language:in-reply-to:references:message-id :date:thread-index:thread-topic:subject:cc:to:from:dkim-signature :dkim-signature; bh=FcupecLEwSLM7aTT/VbMXN4UiLJUyoURHuCIxtP5yW4=; b=tBCz6On79HQYFakdc0WXfIaAPaq7shoRVZ0ApOm1xotGy+1imGZ7XqLQnRuwbLi1Dq o0Ztm7r0eH5e8rV7LSiZo76T7GUPslzu15kzbLRSWeUkafksuuiup2HQU2iN17KVfufY sjNyG46OtNttqks6F4yHnLh6TERnj1efewhOjKQWRGrM5coYTzBuXAvEmGZHLG9LQoqr DeQ7PJqSDxu67ccv5bRd2rrrsYcRrQbfMH5pqjsmJjBLVJojxJS1nQu7v53sYifmOcBr iMMzlp8d/q5zAXhW2olidL0/Il/PGisHoDMe0VUeBoNzg25aS1ebH7WeV15Mq8Vizw8v XhaA== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@oracle.com header.s=corp-2022-7-12 header.b=qivSy8oo; dkim=pass header.i=@oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=CvrxNAWx; arc=pass (i=1 spf=pass spfdomain=oracle.com dkim=pass dkdomain=oracle.com dmarc=pass fromdomain=oracle.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=oracle.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id li14-20020a17090b48ce00b002194d4f1bf1si2432834pjb.151.2023.01.05.11.17.44; Thu, 05 Jan 2023 11:17:56 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@oracle.com header.s=corp-2022-7-12 header.b=qivSy8oo; dkim=pass header.i=@oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=CvrxNAWx; arc=pass (i=1 spf=pass spfdomain=oracle.com dkim=pass dkdomain=oracle.com dmarc=pass fromdomain=oracle.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=oracle.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233306AbjAETQy (ORCPT + 99 others); Thu, 5 Jan 2023 14:16:54 -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/IRg3y988YE6sK?= =?iso-8859-1?q?E8PRbliq/ejHG7WPQLChFM/JmTGeXYWUfiqOuUVwan2LM2I8nhqqaAfzXqh/?= =?iso-8859-1?q?N1G6+LAdFXa9keOYneMJyORGvU7YuMIB8M69nzYBFlxXr90fmdklAkzTkEmP?= =?iso-8859-1?q?Hn2PeeJBkd8wR9RFgI/D/0aPaXe2HrRnpnOTrdaGRfCXccxWuvFwccZnvHCS?= =?iso-8859-1?q?IGcgzwMOXpPpta2MLL95kePd/9ajgLEUZmgpWkxHL8dgCH1JGsd7p5KoTnEL?= =?iso-8859-1?q?k7EruxUc8PEggmXpqst/ndeQMhGgh+OytjeE+EkALue3+iMoudKW9VJjgTjv?= =?iso-8859-1?q?HXTq9z88Cfg85O4pAI3vp29mIyARbs+yYZjYAC+uF+rROPqfMNEqUIgBNlwS?= =?iso-8859-1?q?qOCBuCR+/kq77nwbeDclcSZEGvpS4XAlXyc2uM4atrDgRVlVplkbCgDc9y7Y?= =?iso-8859-1?q?cfdB7c4jOdXYzY/pIdWjsl+k6KMUopm7xwEsNywOYJTrh3Coas7i6pwTpxgr?= =?iso-8859-1?q?2ADjMNj/IvW57rwLBD+OII/GnGS5l4S21lGUrFfsKuLCOn+Z1Qc8CMObvWfZ?= =?iso-8859-1?q?xAeeMuWSgNCDCDAUWOBodriYtUUb02E5K8ld2GcuXQQVSqdiF1Wt7n0SucsH?= =?iso-8859-1?q?hz9WLaetfdWVUPiPwKfRHcCrL3OMP5LzjQO2/4GizLQL2PlvJQw3/pR9f+KT?= =?iso-8859-1?q?ivaLtf6jpXLGiklKeutlEC3oSCBzrZy/B19aZUCiiwolW5INSxXmB4PcqJRQ?= =?iso-8859-1?q?8vwwHtvRigbFW/exvEQY02PKQT9klWNFaFBnMb4jFhSZu+0563McJ2+Of7F8?= =?iso-8859-1?q?H8WqbruQtNwSsP7anEqeIMammMyhz0lRU1Zca/Srp3Hy6+FfFVX6k9lFdf5e?= =?iso-8859-1?q?DTgZ0MGalsTFa2LnCVBGKaOPtjl3nby9iKADawZxMx2cF94f4r+FFjyvOV6w?= =?iso-8859-1?q?Jk042WBh4/3zp6ZLXwmX5e64dkm+fro3sCHLUbqzf7NQG9L5FXYkfk4hrZwM?= =?iso-8859-1?q?bGDutFAqtyC91cZi9wbjMAzNllZkxnX40DUarb8+Vidf2pIG26RONiovBhCZ?= =?iso-8859-1?q?4nVVpbbLCi5rHvNkPfrL4xNuEiHM5C+1n69c/VNe+nktlm3DE9ANNOXy8n6g?= =?iso-8859-1?q?o1Lq771cR8Z1tLvwQQC+En/5/z2NXn0AqsKODIcl98NRA8cc02QK6+NgiS5h?= =?iso-8859-1?q?Pe8i8cCUlEMCK3AginT5WTaDxn9PSPkwgaSB3MnmIUctCbDRHAWuishjsz0E?= =?iso-8859-1?q?vqIVC8Dr/8fAk9urI1okFrDhU4SIQQHX61NNBybRcRteqGIcq/b8AV3VSjHO?= =?iso-8859-1?q?a1UngK9eMoo3jR218lce/p2rjGVwHQQxf/thYBvEQ04AOxHrLuqrEtQOtIHn?= =?iso-8859-1?q?x6ncXrdqhpZsgWIe/EcrR1hv4Z6CLrMAcvar3+0hj5Pn8rj92zBA+xepSWSp?= =?iso-8859-1?q?V2Gd8p0i4TS1GuubbAO1YpKi5Dc/7D9hAobuC9yIaX9OGmtZ+UFHtvKJaxk1?= =?iso-8859-1?q?O1aXE+kOwgDqyjkSF0N2F2juHquC+GSOLEhssahYVF6zbo5SpyMUsJiizW2l?= =?iso-8859-1?q?y7ONuxWDqL2mITyG7Bdw4JGwDv3TzIDloxTommZ4+vTl8CV5FxlOPo0FqqDq?= =?iso-8859-1?q?qdO9g/L9OSWobKDWkLu1Ine85ZJVfrrdLoaMDZQ=3D=3D?= 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 X-Spam-Status: No, score=-2.8 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_LOW, RCVD_IN_MSPIKE_H2,SPF_HELO_NONE,SPF_NONE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1754211314878786692?= X-GMAIL-MSGID: =?utf-8?q?1754211314878786692?= 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, unsigned 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_struct *vma, } /* - * do_mas_align_munmap() - munmap the aligned region from @start to @end. - * @mas: The maple_state, ideally set up to alter the correct tree location. + * 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_struct *vma, * If @downgrade is true, check return code for potential release of the lock. */ 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_area_struct *vma, mt_init_flags(&mt_detach, MT_FLAGS_LOCK_EXTERN); mt_set_external_lock(&mt_detach, &mm->mmap_lock); - mas->last = 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 >= sysctl_max_map_count) goto map_count_exceeded; - /* - * mas_pause() is not needed since mas->index needs to be set - * differently than vma->vm_end anyways. - */ error = __split_vma(mm, vma, start, 0); if (error) goto start_split_failed; - mas_set(mas, start); - vma = mas_walk(mas); + vma_iter_set(vmi, start); + vma = vma_find(vmi, end); } - prev = mas_prev(mas, 0); + prev = vma_prev(vmi); if (unlikely((!prev))) - mas_set(mas, start); + vma_iter_set(vmi, start); /* * 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_area_struct *vma, if (error) goto end_split_failed; - mas_set(mas, end); - split = mas_prev(mas, 0); + vma_iter_set(vmi, end); + split = vma_prev(vmi); error = 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_area_struct *vma, } if (!next) - next = mas_next(mas, ULONG_MAX); + next = vma_next(vmi); 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 = 0; - mas_set_range(mas, start, end - 1); + vma_iter_set(vmi, start); rcu_read_lock(); vma_test = 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 != vma_test); test_count++; vma_test = mas_next(&test, end - 1); @@ -2494,8 +2489,8 @@ do_mas_align_munmap(struct ma_state *mas, struct vm_area_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; mm->map_count -= count; @@ -2533,8 +2528,8 @@ do_mas_align_munmap(struct ma_state *mas, struct vm_area_struct *vma, } /* - * 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_area_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_struct *mm, arch_unmap(mm, start, end); /* Find the first overlapping VMA */ - vma = mas_find(mas, end - 1); + vma = vma_find(vmi, end); if (!vma) return 0; - return do_mas_align_munmap(mas, vma, mm, start, end, uf, downgrade); + return do_vmi_align_munmap(vmi, vma, mm, start, end, uf, downgrade); } /* do_munmap() - Wrapper function for non-maple tree aware do_munmap() calls. @@ -2582,9 +2577,9 @@ int do_mas_munmap(struct ma_state *mas, struct mm_struct *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); - return do_mas_munmap(&mas, mm, start, len, uf, false); + return do_vmi_munmap(&vmi, mm, start, len, uf, false); } 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 = addr, merge_end = end; pgoff_t vm_pgoff; int error; - MA_STATE(mas, &mm->mm_mt, addr, end - 1); + VMA_ITERATOR(vmi, mm, addr); /* 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, } /* 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; /* @@ -2631,8 +2626,8 @@ unsigned long mmap_region(struct file *file, unsigned long addr, vm_flags |= VM_ACCOUNT; } - next = mas_next(&mas, ULONG_MAX); - prev = mas_prev(&mas, 0); + next = vma_next(&vmi); + prev = vma_prev(&vmi); if (vm_flags & VM_SPECIAL) goto cannot_expand; @@ -2660,13 +2655,11 @@ unsigned long mmap_region(struct file *file, unsigned long addr, /* 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; } - mas.index = addr; - mas.last = 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 = -EINVAL; goto close_and_free_vma; } - mas_reset(&mas); + vma_iter_set(&vmi, addr); /* * 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; } - if (mas_preallocate(&mas, vma, GFP_KERNEL)) { + if (vma_iter_prealloc(&vmi, vma)) { error = -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); - 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 = NULL; /* 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 = current->mm; LIST_HEAD(uf); - MA_STATE(mas, &mm->mm_mt, start, start); + VMA_ITERATOR(vmi, mm, start); if (mmap_write_lock_killable(mm)) return -EINTR; - ret = do_mas_munmap(&mas, mm, start, len, &uf, downgrade); + ret = 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, struct vm_area_struct *vma, int ret; arch_unmap(mm, newbrk, oldbrk); - ret = do_mas_align_munmap(&vmi->mas, vma, mm, newbrk, oldbrk, uf, true); + ret = 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 request, unsigned long flags) if (ret) goto limits_failed; - ret = do_mas_munmap(&vmi.mas, mm, addr, len, &uf, 0); + ret = do_vmi_munmap(&vmi, mm, addr, len, &uf, 0); if (ret) goto munmap_failed; 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 >= new_len) { int retval; - MA_STATE(mas, &mm->mm_mt, addr + new_len, addr + new_len); + VMA_ITERATOR(vmi, mm, addr + new_len); - retval = do_mas_munmap(&mas, mm, addr + new_len, + retval = 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 == 1) { From patchwork Thu Jan 5 19:15:55 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Liam R. Howlett" X-Patchwork-Id: 39763 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:4e01:0:0:0:0:0 with SMTP id p1csp458929wrt; Thu, 5 Jan 2023 11:20:29 -0800 (PST) X-Google-Smtp-Source: AMrXdXuk0kVz5s5EcjYu+C9EwF1gLPWpatI9Uum6pi1qzjxeKymShgCXqX/4q0UNPHM1+NP2Zx2p X-Received: by 2002:a17:90b:23c7:b0:225:f8e9:a0b5 with SMTP id md7-20020a17090b23c700b00225f8e9a0b5mr41155211pjb.45.1672946428879; Thu, 05 Jan 2023 11:20:28 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1672946428; cv=pass; d=google.com; s=arc-20160816; b=kKEfbVrq+Z0M8mnl/J0QxF/Fca1KqiEtGbpIqmO+ZCw1bCV4zkbxkVTn57+7HQnUFm 6b4P4gdgO0FUT+IiyuwankDVd2SkpY2uNKFfnN38nnjhH6YvAHzaE4eNqFuCVMeQt1FC ZY8JPRZk5MKKtAqT3ViFivH/+sW5jWmMrqIgk1RkHtcgBwQQgWXGWUzAytuB7NVy/jBR nAotmEJqwJlTEUlsR8zRM1OaFJ/41uyDLpYXJj6VmTQPr2+EFHKnI2iIPU7L55VZ+Gno tkz0iFOX5AGxNPYeB7oTHm0d9e9mEeJvUds0khrGhpmWuK2PyFfa8Ew1MMrOeQDsCSb6 yWQg== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:content-transfer-encoding :content-language:accept-language:in-reply-to:references:message-id :date:thread-index:thread-topic:subject:cc:to:from:dkim-signature :dkim-signature; bh=6qo0x6FwfVqAS5uWsZQ+S2ecMjYQ7dLgAPgm0zpCre0=; b=awZlEylHSU72eI/wAMmL3pceuBAKQQ9qxcpRUyacx1MAzLLa7wdKBcs1fvKSvoHI+B OHY1/bp/xymKQCx/hln7sMEKMOP9u75WSJ0l8DiBWhw4GB2JKE0IkFGG1Ylf7OlIr3C5 MZoBVWcggbvt61eqxFUWb5WDN4oKkZjCBb2qGD0xMKsjKKxqqYmVHyZt2Xayp7KqZL8l 3NrmtD1a1cANDn8vhH2Hg4mP6j2WIdz3RBHKc3LLLufu25HMtVUqzqloA42WNL841J2H xwfiLXqIZZyiMVs34lU03N7iGiA3AnANH9Vx4EgN3WX1IWnWqTvPOdvtP4vQ3VHgd9Re mMfA== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@oracle.com header.s=corp-2022-7-12 header.b=vSyOzL8t; dkim=pass header.i=@oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=cwdL2033; arc=pass (i=1 spf=pass spfdomain=oracle.com dkim=pass dkdomain=oracle.com dmarc=pass fromdomain=oracle.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=oracle.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id ob5-20020a17090b390500b002194574db1csi3005093pjb.142.2023.01.05.11.20.16; Thu, 05 Jan 2023 11:20:28 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@oracle.com header.s=corp-2022-7-12 header.b=vSyOzL8t; dkim=pass header.i=@oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=cwdL2033; arc=pass (i=1 spf=pass spfdomain=oracle.com dkim=pass dkdomain=oracle.com dmarc=pass fromdomain=oracle.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=oracle.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235517AbjAETRb (ORCPT + 99 others); Thu, 5 Jan 2023 14:17:31 -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+WPC7j8nHzP?= =?iso-8859-1?q?fmbUZbzIXoKECVlmKCj4wCX9QMCQ70Xc78i3O/xgv9XW+0SMc50RHFaU2bdL?= =?iso-8859-1?q?OrBWzT+5II8ObUhT1m8CFyj+XEFC8b+uSNSoElsqNLvSkXkCYflTHmtW+jTN?= =?iso-8859-1?q?lJrroQEhRI/RGNzfO8x8zaDhsh+AvMKiDFz4/5o4Vq0lqrPTU3saQIdHHjsN?= =?iso-8859-1?q?VS3/jTpULviMC+jtB1dnK0X3fk58zK39stuClZ5M2Nygz0Mm3niLVBvWDY6D?= =?iso-8859-1?q?CReEHV3RIzAgT907OvkHvFGnBoGHpWOXMM7yH18AICPwWBQk5DJpy+GJddgh?= =?iso-8859-1?q?X1lWUkfQF8ZXbNWrAW7JqbOHnnbnKHrIUN5Kfip9GMUER4fN382K4v0/T+HR?= =?iso-8859-1?q?CwMXh6sC2B4fvd+HYBzP2UNfRum8gWZtbqhamN5hlrXHUTTDR4DfMqHmiwRa?= =?iso-8859-1?q?l+3D3ibLl+kMYG31H4b4A3of1hd4kD5MSWf9tAFiCkjNIMHzCvXDbvej6YTB?= =?iso-8859-1?q?R5BJw8w0OKyUyqehiA048pjnqTT0j+a90YvwqmDldAZlKgTp99W/RqNGaVdX?= =?iso-8859-1?q?JCOD6dbeTBkdUFgyoecggv27/waDlM6CQxs/4cYmXrLUqG7tdRb/A1FLPjAg?= =?iso-8859-1?q?f6AblII8WUXbybgN3/JD8OFod6L+nl2zsr+YUgdhsR5yEKniBjfmDO4vf5X/?= =?iso-8859-1?q?d88YpHi4fRN1GN4662yKfXHfoQcGj1W+3+RGEVKWdebnBBmQquhJ1RAzSfev?= =?iso-8859-1?q?A6/Vk2vgj17vkkXI3+1M/MUeHGYcwMae1Sugl2g8RHDFcbMOdRMk0KsvJzoH?= =?iso-8859-1?q?N5YfBXQMaBpcLx67N1aSPORA+Px1JukeJkQR3TavWjCNn0v5WX34H5UM5XtC?= =?iso-8859-1?q?SXrNkwwWWoBu6Yh3JQaCQMkGosUHmw1ELRIY1k5GlCVkuXdzcobHSvUufFQ0?= =?iso-8859-1?q?jtlN0p/76fRQT1oQXIQL/G+JDysbRf/At6kLyNtLwYHxBbA5GWokNw20h33z?= =?iso-8859-1?q?XbB/HuGClAijUBzj4O0/cHawpeOVBViao5m17AbQPq3Ly/cv24OKyHQt+VLy?= =?iso-8859-1?q?2L2gg2Wyggwy68f/Za+qnJExATCGZvFj+LVIzcO7Vm57ZUh0wwzX7fXzB8dP?= =?iso-8859-1?q?RC3bWKL1422+Hfm1n+krD4XwLHUI9X/h+Jx+eyIprF3itSXEsZZYOiN1bb3A?= =?iso-8859-1?q?044F0a5uBFT0NJL5mbut8JbLRyHVN6UGopTAvPaqq8d0I9Ocqr9Gj81+1CbR?= =?iso-8859-1?q?bI3Y2WnvWL/qpd/++5VnPBDh7PgzRJyZ0CiAY3d/qJQ7YF96x327zP2zcjIl?= =?iso-8859-1?q?CDqrg0PsjkW6fffQ9s5ZmyFdeAKVS0yunY7p55GcVgE0p+68owGJOH5O0yqV?= =?iso-8859-1?q?gtVsXzMC1EN64HuZjvzFu/IRmhUjsbsj8takMJgEkRyw5CUYv9UVtA6EB4Ue?= =?iso-8859-1?q?0kr3waMU2UJFXo1LBLB1s4ppWnzGTeVCkv//LjEVR7qECrmSEtMrIrDrSF4M?= =?iso-8859-1?q?NNqpaRw9MXr8JQ4tj8C7mIJhbQIQTvm1jP7uVR0nhS7SahlhNUCRyhM2InmV?= =?iso-8859-1?q?br/g/a1dRRzm9EEYZfuqpeD2/oI2/p9o7Jefr2CMObUl4xVZmYPJGHCn16Dn?= =?iso-8859-1?q?C1J8G/jzPf3Su+6Oqg+/tSG64G3Kixo4C9XW5ZA=3D=3D?= 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 X-Spam-Status: No, score=-2.8 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_LOW, RCVD_IN_MSPIKE_H2,SPF_HELO_NONE,SPF_NONE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1754211474522982703?= X-GMAIL-MSGID: =?utf-8?q?1754211474522982703?= 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_area_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_area_struct *vma, /* Only handles expanding */ VM_BUG_ON(vma->vm_start < start || vma->vm_end > end); - if (mas_preallocate(mas, vma, GFP_KERNEL)) + if (vma_iter_prealloc(vmi, vma)) goto nomem; vma_adjust_trans_huge(vma, start, end, 0); @@ -640,8 +640,7 @@ inline int vma_expand(struct ma_state *mas, struct vm_area_struct *vma, vma->vm_start = start; vma->vm_end = end; vma->vm_pgoff = pgoff; - /* Note: mas must be pointing to the expanding VMA */ - vma_mas_store(vma, mas); + vma_iter_store(vmi, vma); if (file) { vma_interval_tree_insert(vma, root); @@ -2655,7 +2654,7 @@ unsigned long mmap_region(struct file *file, unsigned long addr, /* 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; } From patchwork Thu Jan 5 19:15:56 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Liam R. Howlett" X-Patchwork-Id: 39749 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:4e01:0:0:0:0:0 with SMTP id p1csp458056wrt; Thu, 5 Jan 2023 11:18:09 -0800 (PST) X-Google-Smtp-Source: AMrXdXts+hnaGrtspWMPscA7tnlHgwQAKKP3WqbtAkgahZf4hIE7XnuWusuWJhUMkXEOHDOTvrSI X-Received: by 2002:a05:6a20:47c6:b0:b0:1e9b:e930 with SMTP id ey6-20020a056a2047c600b000b01e9be930mr56306268pzb.57.1672946289000; Thu, 05 Jan 2023 11:18:09 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1672946288; cv=pass; d=google.com; s=arc-20160816; b=p5gFptwyfMw6S809IItPqwj3DvBGNspEGAWZLWkIIr8zuwBbt8o7RU+JZz9haw8Sgb bSVQuMLIGKJYrcnR9qV8EXrq1QKhl9wGVZeZ+hcykOO/zEuX6KS+FITaufRqWxJNuSqg lyCp+gnfnsm5qZHY01wUv34EOgMg5wKsP6lYDYuBDWXIzfXJuHz9FfwhWzMpFZi3fvcE lYNK81V+HzZcz0lFg8cfaQNOMTaJIzrfUnrzGpjj+ORoVqYzpCU2HROVJmtTw1UoWX9k ey3Pco7dXtyqDB09DHmnkreIwLth56gQaOi/M3gKUu+//YXMWlrjUNt7IBPp6cxdikIk md4w== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:content-transfer-encoding :content-language:accept-language:in-reply-to:references:message-id :date:thread-index:thread-topic:subject:cc:to:from:dkim-signature :dkim-signature; bh=so5kYfEUIHFMMJc1aQOfT+gqvy/LsTSX+jpBqfvWQLw=; b=hlzNrs6rWApP1e2kZc1Duj8IDOJYanGU971ncccKVr+aEp5uxx8tPKdjQlteqvbgQu p5erP839/sv/YiORaZYTg6f8bSsgdzUwwiAcakdfnOuixV5p9AAuPTviA6j62oVU/XVe TYDJZ8rBw8dEcR3O15qxYfHN92h1LYyNLq3WDv8AoBnYsTUkrLXz8dqD4yg9LU6EvcHG QT6b/lJeolMRpgomsbkZrx59o0NDFLM+46DR7CiQDYQ48KqLGRzhcNdWan4d4DBVOMrr AWnDTgm+eB4/0D8Xo5ViGorW/KySHmLpTi5o9LQr8cwZSBYBcPfrl/xUqR0GBwgEFGN3 S3DQ== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@oracle.com header.s=corp-2022-7-12 header.b=V1ALkXoN; dkim=pass header.i=@oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=OwS9cJ6X; arc=pass (i=1 spf=pass spfdomain=oracle.com dkim=pass dkdomain=oracle.com dmarc=pass fromdomain=oracle.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=oracle.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id b10-20020a6541ca000000b0049f17211e3fsi19348093pgq.676.2023.01.05.11.17.56; Thu, 05 Jan 2023 11:18:08 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@oracle.com header.s=corp-2022-7-12 header.b=V1ALkXoN; dkim=pass header.i=@oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=OwS9cJ6X; arc=pass (i=1 spf=pass spfdomain=oracle.com dkim=pass dkdomain=oracle.com dmarc=pass fromdomain=oracle.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=oracle.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235277AbjAETRR (ORCPT + 99 others); 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?s9JWar33ZvmVx4o2zHwnUsI?= =?iso-8859-1?q?IV12rkkbD9rAO6UehQdY1Q7DZakmOUcVAGBxqK5XCvH8qa9VQjRzDVOTWr0w?= =?iso-8859-1?q?XG3/DneFZuiu4smF7ewU6tHAOMZj1Aq2RUQ7JwBBk1WFaAtmx33BQ0s0i047?= =?iso-8859-1?q?evZooWCybCuh7d6n6ZwtAYWzqkZLhbKEsVLr0SoAXNAeZlNTC5kmVMExngOL?= =?iso-8859-1?q?GMYOAnRqLK2sywYf1QPbHIdQC+OkrnqYC0Q5CJzFtPb8EfaAxgqb46+7fgiU?= =?iso-8859-1?q?7JN9R9okTB/uH9T8O0n/8iMWHa2ltk3OPrOrcDk93vPfg3zrBPrDv25RaLNI?= =?iso-8859-1?q?gWviXnzWDUFpHjE1oghncGcmmw+ExxKvli1K1Z7WOQyLRe0SqbmLtzAajIHn?= =?iso-8859-1?q?xnjKknZMIyF22M47Z52NHYRpu9o4a9f5i2ks7QYyOBS9zbGRk1BjFWXdjzja?= =?iso-8859-1?q?CvaTzVpTLaIyCoLPKJjgbZHAYiCxCXhMxrSm6Dk/GDZRG1R9yOwqtLr1rgvp?= =?iso-8859-1?q?lIsUSbQ1DBTQ9WZtYOwScc6UkheebHtZz+kAghC9HAJxMXjI7OQQuSO7YRas?= =?iso-8859-1?q?eiITgO/a0xNBAByfW04HCmje6EA5G03gE7lqZ5dV4KvTyot6r6oCGPbafCcz?= =?iso-8859-1?q?BpPzjqt0GkM+58U/WTT+HLNc65RSR1oDglIcAEdQm15ctL7GaKeliLgAV+ea?= =?iso-8859-1?q?yOJ2k8Hi1drxUjlNpOAY+DdfQgZ/FVspBlG6/GchEbUnx75dpc8b8aS4bwz/?= =?iso-8859-1?q?//0p/Dj/9mZQR7vdC6zK91BJw3SZvAZvbyNzp7TYrv48zZ3+BglzptKKQQHW?= =?iso-8859-1?q?9VC1vaujaC/SyiBbCXF3HbZklSXXzNK2J0FiDJhM4vGhOrAfUaxUNv2eaJOS?= =?iso-8859-1?q?nq7kWBG7QDsNzg02ewPaz5/mZIFDKAiVictIQo4TbfD1iiNdf6bMiNlRofSX?= =?iso-8859-1?q?b5ZKc8dh8Gnyr44/B0bLU7fohMYh8uTZhtn8rx7vZ2plG8pp1W50OPhTZwMa?= =?iso-8859-1?q?XIv/ayDzEFT0D6YaY8cFvsRLciNlKkOVebohqEK2nk9omM5UNsj3sWSSvjYa?= =?iso-8859-1?q?6bpXk3uyqiG6c0zcxDQxAMY7pJG01EZ3bIhCsfBmPuZ6KcvVo/NGdDY87aGQ?= =?iso-8859-1?q?YTHf1Tv5rMfnZzIInVia4191+EnVVjaGuor4iSzQffho7PFkli2sAzXDbVKC?= =?iso-8859-1?q?0UpPfKgL99N270R1FHJtEXc+373sRoIcLMFDNWMb/5WWaHpf7Xbq+86V8Cd2?= =?iso-8859-1?q?TTDKgaFa04Q+4FI5XK0bXqhUK9+mmZr6tDKufr9jhI46qFAfhYOKN6/k0D/b?= =?iso-8859-1?q?toDo/pv5/1vLH95QuX2Z8LtTAVIwTlGuw3+vMOVfMbeK30tTL6ATStnr895C?= =?iso-8859-1?q?vv5HICX+Z4VqApf7jAaKK8Z0DEdskix5nK0Bv5NEglBhEFKNUeBqC5osPYzu?= =?iso-8859-1?q?10eMDrzumjvDcWKTqEfr6uVkt2wFtYxJa/hcpn1CQK7doTl3+uZzLOGFoBJu?= =?iso-8859-1?q?gJxD7wdBt/hpwUW5av4ycMG22Cs34whvoKjJsRsFNFRmjlL3jYT6QzxImyDq?= =?iso-8859-1?q?S08st8m4XqcUdSWqVexEvMAfoAeRPsnDBBdAG19qyz8SroJNISiLVFnJhZJ+?= =?iso-8859-1?q?x2MyyFY0pRCGNgEUmPnYXrfyD+GDCwCdDTXuTog=3D=3D?= 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 X-Spam-Status: No, score=-2.8 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_LOW, RCVD_IN_MSPIKE_H2,SPF_HELO_NONE,SPF_NONE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1754211327737970335?= X-GMAIL-MSGID: =?utf-8?q?1754211327737970335?= 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_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, + 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 *mm, return res; } +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 = 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 = vma->vm_end; + + ret = __split_vma(mm, vma, addr, new_below); + if (!ret) + vma_iter_set(vmi, end); + + return ret; +} /* * 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_struct *vma, 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 = vma->vm_end; + + ret = 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) { From patchwork Thu Jan 5 19:15:56 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Liam R. Howlett" X-Patchwork-Id: 39750 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:4e01:0:0:0:0:0 with SMTP id p1csp458075wrt; Thu, 5 Jan 2023 11:18:14 -0800 (PST) X-Google-Smtp-Source: AMrXdXu0ePle9c5rVDTePnOYXH8w9FXKEZ/2zuJCcK85d7MNwO5kBs4KXpJgwVv9vWEd9zBVAnOQ X-Received: by 2002:a17:90a:b288:b0:225:c2b4:5742 with SMTP id c8-20020a17090ab28800b00225c2b45742mr47156984pjr.34.1672946294352; Thu, 05 Jan 2023 11:18:14 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1672946294; cv=pass; d=google.com; s=arc-20160816; b=BdTouNlPWFAmIrUqiHoKuAVd90V61zCSrl4SShkpm8eldFuiqBCHvx6m4qeMtQ0Jct Q3xI23x41WG4XIzhcTn26MRotupON6b52Oddf+O3unijNZKeb3vHTu3pcHIdMSIGZflr 1VwSozbQGAmwYbUvgfqhJyURjwXkZ2eGdAKj2soAhhk1Td1Mka+o0IVSqE0Jv8QJ5FtY fa7Oz1M/HgBpc4Tp861QJHv5U/jXvjF/ag5X0qJQMnZ6Oio8zF6IYJFOY3tbvePU+tum gMQWutUlP4qGYxG759jyQGGc0BMDxfmPMoowzHUmWw3JlSkCa579W0HQR4qTfLIEdqjf Tqzg== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:content-transfer-encoding :content-language:accept-language:in-reply-to:references:message-id :date:thread-index:thread-topic:subject:cc:to:from:dkim-signature :dkim-signature; bh=Cmac1MFdopFe4FQG1oWkYqzoTR0Iob3h5RL8j18i6lM=; b=NLJQ1zZPQ/wxP77ku+NDw8qkUAMdIBsbxyot4Gqwa6/+ySewDzIB5EvxgYbauZqV82 PrFMD8S9/57rAdZoWRMaJLojWmxYDJdqoMjqnxPdZF2y4Oga5IcrsCW7JrZaeKbjmvTx f8b8Yh/pohSHzmAYZ2p6bToEIiDC58aW62wFrG/XoIL1I55OSOtc5S6nDQ0F8Bahj8FI 9fX8Xn/vqrwPMxY/fA0yrDfQnJTqKdk3RgHLLfrFlEZ3NEnTKrT9xH2FNKS6Hnv7GM89 5ynNZT3A8D1ukHP2oekTRifQHXNQ/vTDLiwI3XzduO/pLOudYlrkNFqyGkZhoy7WGLbL IhxQ== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@oracle.com header.s=corp-2022-7-12 header.b=jutXYSaP; dkim=pass header.i=@oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=rIjLiQnC; arc=pass (i=1 spf=pass spfdomain=oracle.com dkim=pass dkdomain=oracle.com dmarc=pass fromdomain=oracle.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=oracle.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id x22-20020a17090a8a9600b002264d5dfc15si2666038pjn.113.2023.01.05.11.18.01; Thu, 05 Jan 2023 11:18:14 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@oracle.com header.s=corp-2022-7-12 header.b=jutXYSaP; dkim=pass header.i=@oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=rIjLiQnC; arc=pass (i=1 spf=pass spfdomain=oracle.com dkim=pass dkdomain=oracle.com dmarc=pass fromdomain=oracle.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=oracle.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235292AbjAETRV (ORCPT + 99 others); Thu, 5 Jan 2023 14:17:21 -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?/vXXz5daDckz7wAmzg1cYqW?= =?iso-8859-1?q?Mtd/nDp+sXoyrRbXCss5Cbd7dxLS+UZEqF3ndV5Ei09Z6nT22Sb98sh+fmex?= =?iso-8859-1?q?KdQNe8JKeVlcKYfNaUuEaJtYlN0CuJYPHWNqADIbOHPH0NLTbOKPRzH/HAZ9?= =?iso-8859-1?q?sJ2iCnC0VP261jhowRBfTi+GHdRQF/9l5kc1HzYYrCL5gLnkePEMLpNHAwkm?= =?iso-8859-1?q?ZIhFQoxYiuxNmqMp22xNcAtOe/0DGLAunjYVZ3KQKEQCSjuCmdpbZHYliiC/?= =?iso-8859-1?q?9NfkV0r8uIbJmSr+YqiY1S3vvp4WHZrnbpo75YLZP1mnhSm+hr3P2iLTIy68?= =?iso-8859-1?q?a58tF6/DuXtHKo8visrSqY8YHEX/ktTph0K5FRLlj6MsVuwgvE8/OlXiJr5s?= =?iso-8859-1?q?CP3BA7ER7GOcSQmJL+5P97/vff6i+WELiC9ObJei+YuC3KswfgSQiNXCyegX?= =?iso-8859-1?q?9AU41m66j7BB8+HBP1e3nsN4h9lezYn3QO7mxA1Q/5iNw0HYjat+0/GfYmU4?= =?iso-8859-1?q?yJwaGzKUkZkNVUNgOKEUiFf5+MV4k9dJJVaOQx33mqR/qx4VQGJt3ajWwETm?= =?iso-8859-1?q?0MC8rXBgw/JtrjQ46Hl9/764mWNIYs9GuIN3oykZr1Mo+urmpEw3vZlmG4n+?= =?iso-8859-1?q?uz45PsbHqPnNlvblPrWHOBc9A1W3QWn1eRcEJr/CWPzESFNfmD7f87DXeXf4?= =?iso-8859-1?q?vfqxX5HA32onSIufZwGWp4qgfc7rydR1Id88pEYFwB57oOTMJyeh4O9/XUXp?= =?iso-8859-1?q?c66AYKImj4eVjpho1nEeaz2KdSzmRe95AgE5qXQMMkkO8DC6ggp27U6u/bL/?= =?iso-8859-1?q?vazNiKYW/5TTzAN6cnXGXYd06qYBD6bZrwzu36SmfLH3/B3XfFBIYWUPDJEf?= =?iso-8859-1?q?Ye2jrlKDS4DA5z4tbMZSbrvc+eldHn3yMh8bZwg57f+eJEYyM0HrNeY5LNby?= =?iso-8859-1?q?NdqkBZ1PBGP1wtRRqRdwnlq+wVISpSBHmZsj6QLX++apxzWr1aW0UuX883/a?= =?iso-8859-1?q?kPzLIBimfBf4RxCLTU7LZb6eDWeT0M+C09HxPaKeIbNMdiuWBdZ9eu5gy3x2?= =?iso-8859-1?q?aDdNsipJDqv15G1c9XtgFH8jM996O3kwxb00sWz8EzhBCAJ2L+cWQykadU8A?= =?iso-8859-1?q?ewzNhIn+RODVw9szq19ZkpRIUHG9P0kEqyx17RlXzIjNUB8EohPskhdfVjxD?= =?iso-8859-1?q?AAbq0sUNjK+IQYZ8rx/QsIrT/JglGSlSYvO+qf9TyF3QnSGsgqfeXK1dvKYD?= =?iso-8859-1?q?raZIdy4w8Ri90k8pvhQJbQmD0LFegdDqKVQgyPsQ7I5DItaRMAVe4i3T2uUj?= =?iso-8859-1?q?+7Yp1i1Bh9x1GvQt3raAJ7+wkCNy4/i/sP4f+/tiyvCfI0/tShDEO38EdLuj?= =?iso-8859-1?q?YW3ftEX/Cg8tVz+ieCuS7YYPhMC7cHoVgSoYMitGfPDul2Qhlv0xac+NS4L5?= =?iso-8859-1?q?A/pBg6gUl8Do1tNS1iHMN5XYqM9J2bVwtpNt5m6J5o3VxjhuPPC6vedA9qDb?= =?iso-8859-1?q?BSoRHFSHImoh3ls9kP3SMWOIiIiFxdsZbgTtENVo7J7fPzbKXeztw2qdFuUh?= =?iso-8859-1?q?tXJggxxBHvake7o3SncqaAsWa5IK7ZWwxJGc6z1gKyFz1Vf43egtE3sALQqM?= =?iso-8859-1?q?+Ji2rAzIOMKIdutdY5zlFL3DRiuKWFSi8NZf7Jg=3D=3D?= 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 X-Spam-Status: No, score=-2.8 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_LOW, RCVD_IN_MSPIKE_H2,SPF_HELO_NONE,SPF_NONE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1754211333864255692?= X-GMAIL-MSGID: =?utf-8?q?1754211333864255692?= 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 = vma->vm_file; size = 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 == &shm_vm_ops) && ((vma->vm_start - addr)/PAGE_SIZE == vma->vm_pgoff) && - (vma->vm_file == file)) { - do_munmap(mm, vma->vm_start, vma->vm_end - vma->vm_start, NULL); - mas_pause(&vmi.mas); - } + (vma->vm_file == file)) + do_vmi_munmap(&vmi, mm, vma->vm_start, + vma->vm_end - vma->vm_start, NULL, false); vma = vma_next(&vmi); } From patchwork Thu Jan 5 19:15:56 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Liam R. Howlett" X-Patchwork-Id: 39753 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:4e01:0:0:0:0:0 with SMTP id p1csp458300wrt; Thu, 5 Jan 2023 11:18:49 -0800 (PST) X-Google-Smtp-Source: AMrXdXvGF+utCdlhrka8DlqY5VXzt7rLLDlX8nT4Gy6uV0ejZIvj9LP63pIK8RCvCiJZLPrLdJO2 X-Received: by 2002:a17:903:124d:b0:192:fdd3:af5e with SMTP id u13-20020a170903124d00b00192fdd3af5emr3752868plh.48.1672946329170; Thu, 05 Jan 2023 11:18:49 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1672946329; cv=pass; d=google.com; s=arc-20160816; b=QIXIAt+mRd5zHBp+FTTUux+lqiydTJ0bYyDN6neW3IlDp9tYI3aYM/ixV4ARbXatY5 frY0AyJ/hVW84ZOfSmDfsvSTlKNdLo4kg/lXoyFiG6CJztSgfdxLk7RBOvEs6qlUiJvH XKN7Nm8N/b02eVYBC0OLgOwbfCuzM6SytqXukcmfvf8neIWgz2WZkgx2jeGtYIbDp5OG U9t/pCD5Hl/jpwk/xXaWRA+cERtT0ZKkjLV1aq+MMm6QUmS2FtPwXg8MDCCR9kfkStwy maFrz6lUQCL2y3d8HzFzilX4hrOhyFSbKn9ILduSDZxfcytdkLsqIAyu46fgXfCdn6i6 jUYg== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:content-transfer-encoding :content-language:accept-language:in-reply-to:references:message-id :date:thread-index:thread-topic:subject:cc:to:from:dkim-signature :dkim-signature; bh=dwXa96mmtavLyIPWSQPEFi0lfaZOBC7s5fNRIY0AmIM=; b=lPr8jneIsGpjF8xvGQY+yCCFspR0JZ8HYn+khFHUNqEAlH7e7QSmnxiK5EGq2f8iX/ Xwt9hGGekI6GvEJg3PLvOB3Wd5GOoaaKovG+0MQmpzmqqu/tU6KmXX2paXiq+s2H2sHm cwwzvtgxB8Kf2kdoEaXy473suyESIDx/0muUVC4XvPrFZtdiWzIVcSTshPPzXnzfofDj oPLZElBxlfi5WD1UrPtMoY4Y3KmAjIEeeo27qjKjtyfVAabLUWupFgPGl3JwtThHAr8P 2qqmV1jHxF58Vur4C1v66klDEhv9Ml6LixQUZ/KEmDUO6ksn9inJvu3vTldvRQwiNudq ORgg== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@oracle.com header.s=corp-2022-7-12 header.b=PLcADLLO; dkim=pass header.i=@oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=GGohEQpr; arc=pass (i=1 spf=pass spfdomain=oracle.com dkim=pass dkdomain=oracle.com dmarc=pass fromdomain=oracle.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=oracle.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id n4-20020a170902968400b0019260195003si34566395plp.599.2023.01.05.11.18.37; Thu, 05 Jan 2023 11:18:49 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@oracle.com header.s=corp-2022-7-12 header.b=PLcADLLO; dkim=pass header.i=@oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=GGohEQpr; arc=pass (i=1 spf=pass spfdomain=oracle.com dkim=pass dkdomain=oracle.com dmarc=pass fromdomain=oracle.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=oracle.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235632AbjAETRs (ORCPT + 99 others); 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?1CGdb4qv35GxRokIflOpSYd?= =?iso-8859-1?q?MQpcbbCK29ZRk7v1BRTqMiB6N35eorPoXxM/tegktEDVxn5nlsjrlBKzJUkP?= =?iso-8859-1?q?iodI//NTphqGi+Qu1dWAk4jqpuu5trzKoJzuMHcYY31x6fE3t8tmfGpiBtns?= =?iso-8859-1?q?jnHKqstAMlUqkxzZqkJUMOBk0ullukjLVTamDNoaoN6s5mcbbjmPigDSS/ge?= =?iso-8859-1?q?qKNrY0k99r0UfdP1w/S/o5UEOK/aNdJr/f5mjcjGCPzuKHDjLYweV0LGnFhb?= =?iso-8859-1?q?0bNuapnKcMxY8v2PU8pbodEhKusGoK+fS5ni4JjWal1cBor0RLnT2+FsoPcU?= =?iso-8859-1?q?i+2w22sO1jsIFYd/IMfRkIZ0LJkYy1CTyX3Lk18BGGwazF8LXltaOWLBky8B?= =?iso-8859-1?q?NqLipxfpZp70QDzFfLAWHU7MuII1Q7CaXLsZUaff4PbWHgzYv7hICKemJ7DV?= =?iso-8859-1?q?yWYdcX0V/pxrviOxoju2jR4FmNBlpl/JKXoxZUIh+P8qMQpTOslH/oZD7I5h?= =?iso-8859-1?q?k7rsyskGs0tncAmXuS4T9ptWp2bVtD3FgpfdQJZEykxYBJaW5cc6mrhY+aXl?= =?iso-8859-1?q?i/89Y8G2o2wYgnXVRGQ+bJh8TVunGIBb2ol8wG+Dp/yHFaZnI3I5g+lLKX+R?= =?iso-8859-1?q?FnG7st7+8VVkcEu/nmwYTDhE4icCLJbI6+fOMC4IAUiZ38wGR8kNg8facv44?= =?iso-8859-1?q?WztIley7FIPXf0jB1trn0jEYMc+arrRlugv0Nbt6zQeUYGngsNKv3pb1nVOg?= =?iso-8859-1?q?tnzHJg1P/cZLNF8tjK5iW9tYUGGfqKZHNKTYqseWU2SCuHYvkb+xh7jdaUcD?= =?iso-8859-1?q?HFBfX70go2XS0nQi42YBqJRQ69X4AtOF9/edxI6f9bHOnBkXawescSdXcN53?= =?iso-8859-1?q?SQFRblvfRnQveC7Pbma0tzXoCexNFC0U2XRAynS34Hp2EBNA+Vn8S+RAG9MM?= =?iso-8859-1?q?1Ch3CRDLrnFFAX33GYElilDY7m9Ruihrk0TL9NVcx4pVcDx9rPqjwTlPsueB?= =?iso-8859-1?q?vTtrJnozMQXX325wim9zEwNuQJ6jfgnTsquu2o8Ki7aXaqjKqkgnj/UfAOKn?= =?iso-8859-1?q?KEW9xqh8ylEfygvZh+B+FvaNXcf3dHxcaeA5x96lsMhY5CUZdlF2w02gk20+?= =?iso-8859-1?q?woOg05JzgkJDEQXN6FFlZMtisjlQbIR7qJ6dqSa/4lM83yARvYFK5P0EiHsS?= =?iso-8859-1?q?x+839Ke4gljyLqro8YoZuTpMnnTAlSqczt+nvhJlTEEkdW96hO4Fet5seRx4?= =?iso-8859-1?q?3LbovrtSvnqv2izpR76xqYZpUdsjc2/p+ivN1SI2IMb/sf2IdXUPTzQ4wK2J?= =?iso-8859-1?q?UBGYbrqwh4xo/coe3lsHFAoJ/AyOQe5vjJLPB1fmpD1CgiOlJtmlOSORtyND?= =?iso-8859-1?q?kL4zKBDCPzaNVCICOqn3GaDxhm3pAYr3p7OgJtoEN3fxdT1VSTB7JHERePke?= =?iso-8859-1?q?pJdiov5iXe4WdtJLMVA+WQsOC8xTqPGzGzy30GdGzi2bhW4yFIPYYXoNyq/W?= =?iso-8859-1?q?SM4aEkzgi7+WcGg900zAHznVadFRTvgKa63+ucRZTAnzQ+4FikQZKhJ0ata5?= =?iso-8859-1?q?5lZ2emFEv3Cg8rQSinoAHU7HAJyDdKIRMFldWH31oSTAjHfVtaho6a++baTq?= =?iso-8859-1?q?C3fbGkHGXAjv2qMaMyZ51jqgGW2Ic1RUlkEkHqw=3D=3D?= 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 X-Spam-Status: No, score=-2.8 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_LOW, RCVD_IN_MSPIKE_H2,SPF_HELO_NONE,SPF_NONE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1754211370034472128?= X-GMAIL-MSGID: =?utf-8?q?1754211370034472128?= 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, struct file *file) /* len == 0 means wake all */ struct userfaultfd_wake_range range = { .len = 0, }; unsigned long new_flags; - MA_STATE(mas, &mm->mm_mt, 0, 0); + VMA_ITERATOR(vmi, mm, 0); WRITE_ONCE(ctx->released, true); @@ -874,7 +874,7 @@ static int userfaultfd_release(struct inode *inode, struct file *file) */ mmap_write_lock(mm); prev = 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, struct file *file) continue; } new_flags = vma->vm_flags & ~__VM_UFFD_FLAGS; - prev = vma_merge(mm, prev, vma->vm_start, vma->vm_end, + prev = 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 = prev; } else { prev = vma; @@ -1276,7 +1275,7 @@ static int userfaultfd_register(struct userfaultfd_ctx *ctx, bool found; bool basic_ioctls; unsigned long start, end, vma_end; - MA_STATE(mas, &mm->mm_mt, 0, 0); + struct vma_iterator vmi; user_uffdio_register = (struct uffdio_register __user *) arg; @@ -1318,17 +1317,13 @@ static int userfaultfd_register(struct userfaultfd_ctx *ctx, if (!mmget_not_zero(mm)) goto out; + ret = -EINVAL; mmap_write_lock(mm); - mas_set(&mas, start); - vma = mas_find(&mas, ULONG_MAX); + vma_iter_init(&vmi, mm, start); + vma = vma_find(&vmi, end); if (!vma) goto out_unlock; - /* check that there's at least one vma in the range */ - ret = -EINVAL; - if (vma->vm_start >= 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_ctx *ctx, */ found = false; basic_ioctls = false; - for (cur = vma; cur; cur = mas_next(&mas, end - 1)) { + cur = vma; + do { cond_resched(); BUG_ON(!!cur->vm_userfaultfd_ctx.ctx ^ @@ -1402,16 +1398,14 @@ static int userfaultfd_register(struct userfaultfd_ctx *ctx, basic_ioctls = true; found = true; - } + } for_each_vma_range(vmi, cur, end); BUG_ON(!found); - mas_set(&mas, start); - prev = mas_prev(&mas, 0); - if (prev != vma) - mas_next(&mas, ULONG_MAX); + vma_iter_set(&vmi, start); + prev = vma_prev(&vmi); ret = 0; - do { + for_each_vma_range(vmi, vma, end) { cond_resched(); BUG_ON(!vma_can_userfault(vma, vm_flags)); @@ -1432,30 +1426,25 @@ static int userfaultfd_register(struct userfaultfd_ctx *ctx, vma_end = min(end, vma->vm_end); new_flags = (vma->vm_flags & ~__VM_UFFD_FLAGS) | vm_flags; - prev = vma_merge(mm, prev, start, vma_end, new_flags, + prev = 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 = prev; goto next; } if (vma->vm_start < start) { - ret = split_vma(mm, vma, start, 1); + ret = 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 = split_vma(mm, vma, end, 0); + ret = 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_ctx *ctx, skip: prev = vma; start = vma->vm_end; - vma = 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 = (void __user *)arg; - MA_STATE(mas, &mm->mm_mt, 0, 0); + struct vma_iterator vmi; ret = -EFAULT; if (copy_from_user(&uffdio_unregister, buf, sizeof(uffdio_unregister))) @@ -1536,14 +1525,10 @@ static int userfaultfd_unregister(struct userfaultfd_ctx *ctx, goto out; mmap_write_lock(mm); - mas_set(&mas, start); - vma = mas_find(&mas, ULONG_MAX); - if (!vma) - goto out_unlock; - - /* check that there's at least one vma in the range */ ret = -EINVAL; - if (vma->vm_start >= end) + vma_iter_init(&vmi, mm, start); + vma = vma_find(&vmi, end); + if (!vma) goto out_unlock; /* @@ -1561,8 +1546,8 @@ static int userfaultfd_unregister(struct userfaultfd_ctx *ctx, * Search for not compatible vmas. */ found = false; - ret = -EINVAL; - for (cur = vma; cur; cur = mas_next(&mas, end - 1)) { + cur = vma; + do { cond_resched(); BUG_ON(!!cur->vm_userfaultfd_ctx.ctx ^ @@ -1579,16 +1564,13 @@ static int userfaultfd_unregister(struct userfaultfd_ctx *ctx, goto out_unlock; found = true; - } + } for_each_vma_range(vmi, cur, end); BUG_ON(!found); - mas_set(&mas, start); - prev = mas_prev(&mas, 0); - if (prev != vma) - mas_next(&mas, ULONG_MAX); - + vma_iter_set(&vmi, start); + prev = vma_prev(&vmi); ret = 0; - do { + for_each_vma_range(vmi, vma, end) { cond_resched(); BUG_ON(!vma_can_userfault(vma, vma->vm_flags)); @@ -1624,26 +1606,24 @@ static int userfaultfd_unregister(struct userfaultfd_ctx *ctx, uffd_wp_range(mm, vma, start, vma_end - start, false); new_flags = vma->vm_flags & ~__VM_UFFD_FLAGS; - prev = vma_merge(mm, prev, start, vma_end, new_flags, + prev = 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 = prev; - mas_pause(&mas); goto next; } if (vma->vm_start < start) { - ret = split_vma(mm, vma, start, 1); + ret = vmi_split_vma(&vmi, mm, vma, start, 1); if (ret) break; - mas_pause(&mas); } if (vma->vm_end > end) { - ret = split_vma(mm, vma, end, 0); + vma_iter_set(&vmi, vma->vm_end); + ret = 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 = vma; start = vma->vm_end; - vma = mas_next(&mas, end - 1); - } while (vma); + } + out_unlock: mmap_write_unlock(mm); mmput(mm); From patchwork Thu Jan 5 19:15:56 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Liam R. Howlett" X-Patchwork-Id: 39748 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:4e01:0:0:0:0:0 with SMTP id p1csp458023wrt; Thu, 5 Jan 2023 11:18:05 -0800 (PST) X-Google-Smtp-Source: AMrXdXvE55DllKZmwzyxRi3LEmkCbod90UwK8BNsGBfvGun5ZumCr3yFms66lOjZxs3nfPAQEXwi X-Received: by 2002:a17:902:6b4c:b0:18f:9cfb:42aa with SMTP id g12-20020a1709026b4c00b0018f9cfb42aamr52381260plt.10.1672946284850; Thu, 05 Jan 2023 11:18:04 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1672946284; cv=pass; d=google.com; s=arc-20160816; b=WdTV+kZ1T0+wTvDLU/G4i8zUQ0/Dvf7b8ebYj+lVsfD+gxYw5c8n9DTG2QL+53f00L g16ZzqLSpwsv0jEHVAXOv4CgZ1gLTjG3aO3cWcNtvPTj5dqj12x8+fVPgu2amyo8vTLn TcsFhIHViGIlT0BmQclF5/szfZH81GIi1PjcGQLzu+wvfjhdPW+7d0Tdpdi/OIgnjvYs Jk9jVciQTrWnALqRy3MeycCCbfRP//P3WSq6Etn4J37ziKvdj/dqArXWKbA5bO5GO/B6 sE1Os61G+fwy/LHZLKuE5gU+1Fpt/W0y2ne5G23jq8vkt3oCorMMDdqk/BTNL/c+h4l5 wBVA== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:content-transfer-encoding :content-language:accept-language:in-reply-to:references:message-id :date:thread-index:thread-topic:subject:cc:to:from:dkim-signature :dkim-signature; bh=D2mcWKAVukebEq7oYYVYGVxNeBUmJn8wuq7aGHCw3pI=; b=KnxxFmrid01Ndhy6ar3Cux5YU/zxYsdHnvSSVTMkThcItLSsLJmWdyc190EVjuZotN DoQGGlL0hix2++MVdMv+NOmcqP1/p5l+663UMoZdczUa+yIQyqpS1axTCwoPoDRI0lbZ upaQXhoaCfeDbueXAS0JIYd5uU6NDMbGSFg2GKse9ohOptK4u9SNK4YuqKyPYLFolslg V7dItrTnNh1iXse5DISzIXAtPaoevsbxyfW/37sIqASHINF9CR1E+m9k0tl32EJMghfg 1CA/RlNbUyXUW5NBuuULYuYD9ZPBIvzWIk1Z4k8KH1AvBuwT2m9z1Jo2lQQvfTNUhlIO +Gww== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@oracle.com header.s=corp-2022-7-12 header.b=mGU+CQJ0; dkim=pass header.i=@oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=uj7Ttgxa; arc=pass (i=1 spf=pass spfdomain=oracle.com dkim=pass dkdomain=oracle.com dmarc=pass fromdomain=oracle.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=oracle.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id h17-20020a170902f71100b00189f58ecb7asi37970692plo.151.2023.01.05.11.17.52; Thu, 05 Jan 2023 11:18:04 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@oracle.com header.s=corp-2022-7-12 header.b=mGU+CQJ0; dkim=pass header.i=@oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=uj7Ttgxa; arc=pass (i=1 spf=pass spfdomain=oracle.com dkim=pass dkdomain=oracle.com dmarc=pass fromdomain=oracle.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=oracle.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235569AbjAETRF (ORCPT + 99 others); Thu, 5 Jan 2023 14:17: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 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/6mZWFzq?= =?iso-8859-1?q?7h8xxv5BTIK7wKbzmvFnhSM6/FET+2RbJjbH0QG3DjG6A/F53ziH/p5txT0w?= =?iso-8859-1?q?T0IfNIXFXsQUhiQBtSFhVmCCQNZYY5YakKLmZy+ljRuWy/xhpbFBsrVT+oar?= =?iso-8859-1?q?Xj5/pO/p8ReO6TJpcY6yQuJBzeLlKQri8pt0KXl37fL1fPbwNFb9gk3tsGS8?= =?iso-8859-1?q?EtrZggjb/Uj9rXhnzyWnjdzrk2UxscrFGRfO1TbFAvLsMslmugTbKlGBbnAT?= =?iso-8859-1?q?LV285rjHw4M6BDF7mooFC3M1gDhrzhSgy0FkE6wCeWgveRNij5AxvoEzrSxz?= =?iso-8859-1?q?McuX4ykRFex3pwJerg9XqnUj3znnGQ2A1bjjKTXfF0O+otrASf5aFJ1VNNNy?= =?iso-8859-1?q?8qlyu6tYnGsSOzF3VCi2qHgQ0btktBuQOZRfqCFZVTrOVz9oFUU0gpfQ1I5m?= =?iso-8859-1?q?ph3U7jlefmOVSF1QXBhNZ8/1O1Pn4l4ZEkbmAg5veycF2grEtCP5nKFRmw35?= =?iso-8859-1?q?cX5BywjKa1lEctydAT+v3S1dX306WJZADP3B8KO/YbWk/OuxiM9CAm0A1Yfl?= =?iso-8859-1?q?jIa9Hlp8bZkWCjAyj6mnfOI98Eq+pAB+CNi2Fvfbq/sLpV0wRshESRneFY3U?= =?iso-8859-1?q?yBqpCT6PcGi0stEl4DVwAYHc2u1WtWiSccSPS8LFYK6QU7z6/bcytRXyBfKt?= =?iso-8859-1?q?pCEqbMGSlfrznttDcEaZ5Y1JYr3IpJJmWb9oi4xbpR1OQC1o7xorog86dnAZ?= =?iso-8859-1?q?2lrlRhDiwjDzq642t5wG0w19od/Qed5349mFo6Qrl4CfPoxwKMn9o77AXnRf?= =?iso-8859-1?q?pTejvpX03Mybld8u5H9zBKsWLWGUR+QhERgvkTda34dIo4Ab+T9Fa63EtULa?= =?iso-8859-1?q?EID79CglBIyWo+6YyhtauDqikldSOlhem6oNBeVdyipPGIoVKsoM5NWCzXgU?= =?iso-8859-1?q?ipTVyfvskSa/BV7otOwfPTqu678pQqWx4NuGKA+huWokXNfEgArEvboGCNP2?= =?iso-8859-1?q?9QnhkoiSCvCS+t06P0bdK/cmrJxLcszyp09CHQZRA78b+DfLaFPqW/FCYD0o?= =?iso-8859-1?q?JTq1FkCwlK99AmwUsuRuvwSS3CT804i4eMJqW1W7M05S/FxHdJa1EYQs1Dla?= =?iso-8859-1?q?JEoMWHYkd9grv78pnL/+/T/YfnN+g2hWXmCZFKD/iyZ0yFzytxaOeClx0YSq?= =?iso-8859-1?q?8DuCyYRlyqpGDF6TV56qro+WK5rZJFnFsreAc00J0q1VCb/vy+CXa/8KEHYz?= =?iso-8859-1?q?uHLZ/HKsa+aXYoU2bYn/LUiZFVaErEYLO9VJEeRvPVy2FbI9CsRLABVSJHJC?= =?iso-8859-1?q?9oLgXlKGYnICWPs4ggDX0EMoKSHylpMoJ6cF9WssWu98ye00nT+W38GLjaVj?= =?iso-8859-1?q?TByngM/4TmqPp27G5U0v2DHdRLthf4PY0NaW1sYOu2fVMJLfV1tMJ4aTAHW5?= =?iso-8859-1?q?qyCBlUbs5ZOOiM9Fo6Le2q8TCpL0OqXbdhsdeJ+QWI04nuYpnYM1mvUKiOtj?= =?iso-8859-1?q?cpERlj0F2Efamw5kGTTo/Y+UJZcVAA2RbsRMV+wWZxTM4yp5uaReHqDMKmnv?= =?iso-8859-1?q?lXWrgCEW3r0CGyqTABmKxZn8RKHLNrBC0qwhfkj1vpjBZH2rB91IrIBcuOot?= =?iso-8859-1?q?hTWdVZ046GBEd8DbyEbIwh3i0AnLgiqOpxzqNmA=3D=3D?= 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 X-Spam-Status: No, score=-2.8 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_LOW, RCVD_IN_MSPIKE_H2,SPF_HELO_NONE,SPF_NONE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1754211323787147960?= X-GMAIL-MSGID: =?utf-8?q?1754211323787147960?= 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; #ifdef CONFIG_STACK_GROWSUP /* Limit stack size */ @@ -812,8 +813,10 @@ int setup_arg_pages(struct linux_binprm *bprm, vm_flags |= mm->def_flags; vm_flags |= VM_STACK_INCOMPLETE_SETUP; + vma_iter_init(&vmi, mm, vma->vm_start); + tlb_gather_mmu(&tlb, mm); - ret = mprotect_fixup(&tlb, vma, &prev, vma->vm_start, vma->vm_end, + ret = mprotect_fixup(&vmi, &tlb, vma, &prev, vma->vm_start, vma->vm_end, vm_flags); tlb_finish_mmu(&tlb); 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_gather *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 *vma, - 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); /* * 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 = { }; 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 = vma->vm_mm; unsigned long oldflags = vma->vm_flags; @@ -605,7 +605,7 @@ mprotect_fixup(struct mmu_gather *tlb, struct vm_area_struct *vma, * First try to merge with previous and/or next vma. */ pgoff = vma->vm_pgoff + ((start - vma->vm_start) >> PAGE_SHIFT); - *pprev = vma_merge(mm, *pprev, start, end, newflags, + *pprev = 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 = vma; if (start != vma->vm_start) { - error = split_vma(mm, vma, start, 1); + error = vmi_split_vma(vmi, mm, vma, start, 1); if (error) goto fail; } if (end != vma->vm_end) { - error = split_vma(mm, vma, end, 0); + error = 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 = (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; start = untagged_addr(start); @@ -704,8 +704,8 @@ static int do_mprotect_pkey(unsigned long start, size_t len, if ((pkey != -1) && !mm_pkey_is_allocated(current->mm, pkey)) goto out; - mas_set(&mas, start); - vma = mas_find(&mas, ULONG_MAX); + vma_iter_init(&vmi, current->mm, start); + vma = vma_find(&vmi, end); error = -ENOMEM; if (!vma) goto out; @@ -728,18 +728,22 @@ static int do_mprotect_pkey(unsigned long start, size_t len, } } + prev = vma_prev(&vmi); if (start > vma->vm_start) prev = vma; - else - prev = mas_prev(&mas, 0); tlb_gather_mmu(&tlb, current->mm); - for (nstart = start ; ; ) { + nstart = start; + tmp = vma->vm_start; + for_each_vma_range(vmi, vma, end) { unsigned long mask_off_old_flags; unsigned long newflags; int new_vma_pkey; - /* Here we know that vma->vm_start <= nstart < vma->vm_end. */ + if (vma->vm_start != tmp) { + error = -ENOMEM; + break; + } /* 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; } - error = mprotect_fixup(&tlb, vma, &prev, nstart, tmp, newflags); + error = mprotect_fixup(&vmi, &tlb, vma, &prev, nstart, tmp, newflags); if (error) break; nstart = tmp; - - if (nstart < prev->vm_end) - nstart = prev->vm_end; - if (nstart >= end) - break; - - vma = find_vma(current->mm, prev->vm_end); - if (!vma || vma->vm_start != nstart) { - error = -ENOMEM; - break; - } prot = reqprot; } tlb_finish_mmu(&tlb); + + if (vma_iter_end(&vmi) < end) + error = -ENOMEM; + out: mmap_write_unlock(current->mm); return error; From patchwork Thu Jan 5 19:15:57 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Liam R. Howlett" X-Patchwork-Id: 39745 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:4e01:0:0:0:0:0 with SMTP id p1csp457944wrt; Thu, 5 Jan 2023 11:17:46 -0800 (PST) X-Google-Smtp-Source: AMrXdXtUhtPLT10BPkEr7sAjxhAGoeKychmij5EmDQx1RQC204SPnt9qvSmB42TDdAF0qZewfqKQ X-Received: by 2002:a05:6a21:3996:b0:ad:2abb:5a5b with SMTP id ad22-20020a056a21399600b000ad2abb5a5bmr65347752pzc.9.1672946266380; Thu, 05 Jan 2023 11:17:46 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1672946266; cv=pass; d=google.com; s=arc-20160816; b=iwMjmuc8TmlXxCQkre29tzkMwiLa+n6euazvbmoz1Ifq4aRem2rIodfUbuvdRZoI98 Ig6ghiqgNiW4PzKnN3Y1XuxTD0I5q8b65pc8wMdJTxV3XBoKGFg6/z9DoYVgaXSQP+1J O6ZCnXQw/eFd06E9F5dlSEzmCv9bT6PYeg0s6XI07k8lgSDbVHwfejACx8ABXg46MxfC MZ9z432CXXDRJJ8MX5Lk0KZ4K34mLf4ZIDQEELHP58f3tD8sOBc2daRIlInUd+ghtYgZ 4jffqDUOXvd3SZ6TlR9DW0ny/BVj3oWtm0LtY/W8SP/4D9PKYl3JVR/BXuB22LPJsGi1 7ilw== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:content-transfer-encoding :content-language:accept-language:in-reply-to:references:message-id :date:thread-index:thread-topic:subject:cc:to:from:dkim-signature :dkim-signature; bh=GOm614tl429iOQ+POVCVrJ+RGa5kuncI+Q8HcO7IgjY=; b=brkNN/4SQRFsSDKjNBuN2QFXT+/tWwIJ7aOkANJlFNe2ql+KwnGa4FCwl2J/GIi/sr ns9CgBrT7RclyapOzX/PgoVr5eCOViqc0MIhMYOpuHqoVicnjZKwPF6Qn1pu3QzfyuBJ eT+64V1QAnVuhs3uaXtbwncVbvHM+lOkx16UDVkU426jw5qEiksTxVk/yQvVxbXpy6DQ nPDko8Tj3+GX/fxvS8gbIWQpAe+qO+8lNzVPCPmJo/F/0FYF/hzXBdOmkz+g5i0Q/Aw1 djNyoahhvnApsMPuH/epfQ+u+WfijIHdmEW7aKRHcdPC/0hLyMkCZnTSzeIszKWcaK88 gr7g== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@oracle.com header.s=corp-2022-7-12 header.b=nFGiF70s; dkim=pass header.i=@oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b="xh9/F4dV"; arc=pass (i=1 spf=pass spfdomain=oracle.com dkim=pass dkdomain=oracle.com dmarc=pass fromdomain=oracle.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=oracle.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id n64-20020a632743000000b00477f864cf87si6980184pgn.24.2023.01.05.11.17.33; Thu, 05 Jan 2023 11:17:46 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@oracle.com header.s=corp-2022-7-12 header.b=nFGiF70s; dkim=pass header.i=@oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b="xh9/F4dV"; arc=pass (i=1 spf=pass spfdomain=oracle.com dkim=pass dkdomain=oracle.com dmarc=pass fromdomain=oracle.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=oracle.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235539AbjAETQr (ORCPT + 99 others); Thu, 5 Jan 2023 14:16:47 -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+J24swxMgong?= =?iso-8859-1?q?jgcVnPAc/z3dCdaJPK+85QOCT9aPNiz8bd9Kv6IAPMGri43tYt1+uzWQCtxr?= =?iso-8859-1?q?FIJDr3dqAZDfo6ynUtQpSSj1B6hs0BrH+ljVmrK/QA6fqMdB8sLlGa+5foFM?= =?iso-8859-1?q?HfpBzwvjpCdETzKUjhwvV9Xowjo9UP2qzMbxVp10MJC6MXf8NswKPUR9js3e?= =?iso-8859-1?q?ZLHL24R9Tl2FELU5lfV7piPqKIQHSverS6TxnenJG/cMtz4tSnvkHmNb6Q15?= =?iso-8859-1?q?ZURhk7yaU8tcN+rJZgktyjHCQARVOnLWefHHcIzI6S6hYut+koPP4I+VFLM3?= =?iso-8859-1?q?Kvdrr29Qls2Cxgyjh89eKbzNLWOTxb8vqGpCjLY2esZ/WgSApeX+lwzRLq+C?= =?iso-8859-1?q?QYgIB8J0ay/dFmgjWvVGEigPh+E2C3QLMCaZll9/hamTy1e/GG2ycIgyNET7?= =?iso-8859-1?q?DS5RQed9sYI3j9sPST2f7YK/7uI4J5BetsOfxCUObkCqGmLPzH1HZpXPyV/V?= =?iso-8859-1?q?zgmifXk+2v5gRwJOFYwr15IeHWw7Xox8SecHgE+btaMlqGsNh7dyGpmk2Jwd?= =?iso-8859-1?q?97eY8iJ7J00pnx4YrjazpjRsYzdU26G8OWR0OHz8DFxY6SvKfbHecf/2xOMi?= =?iso-8859-1?q?2+Nf06CSAsq4Kjm+43q3dNbmZVhaa27wgY5lm+aCq+sgAn6sOqwGg1eQkruq?= =?iso-8859-1?q?hZ3SzCYi+iMOwnZMW2HnfIcGa14dq0xbKgdYB/WX9g7SXj9mZAOr5yvmoO2V?= =?iso-8859-1?q?qmyI5S63alrnM9nF2w518peF2sVDTYtmUSG9XIF1EZPBmojj90G/rcgFZREW?= =?iso-8859-1?q?wLFczjkk3fMb4o51i18RcS12gEJEhxwhuNazFMK0kciXRuBYwAVJDHhpx1o5?= =?iso-8859-1?q?nrzmBYFTljuyls5zhKGssMgiOUUShDFhWIirl5KMKFHUO6g9ky+aEc2FwePE?= =?iso-8859-1?q?0B1v8q/4trSya/IcvcInlBnmeiBVmhtpVLB1ZZLhGlC1Si+4jJ+OecXq4jWm?= =?iso-8859-1?q?SaqHHySUn0U0QvPW5CzQrnmNkPrkQa+2e2bRWXgEnUNVUOMXY9W+v1uNOAOu?= =?iso-8859-1?q?l1SpOypJupSgWpn37q9CuYFSIkAjdlY4rSKZxfbu3uIvPWhk2byp7WL0d5Pw?= =?iso-8859-1?q?lY9doSTxP1v2fAC/cmtRCVCZR/m2bckwsr1ZF/pSM9zzCouiRj03K8TteBgT?= =?iso-8859-1?q?eMkQADvSNBu8iZoNknnVHoJpWlD0Xv4rAVfgh5txDQ/GlmXMbaMIDwDIPDFc?= =?iso-8859-1?q?Z4hWrbs5lRuqnNfELgDJZw7UxPVSjt17UhvJC8Vog9HNS98tV0HZbllvEmly?= =?iso-8859-1?q?s7pm1WJDT5/134qnVFx+3tdeu/PpQyrxyEtMtF/PpuvEO4AvffpOKRUhlkE/?= =?iso-8859-1?q?n+vU+w2E0VcPEbIBNm4g0Zq3HxA66t2YUQETN71JQeKTS4hWeKiEu/GwAG0r?= =?iso-8859-1?q?TZRO25+JVKV+pJapctry/8Fb12H5zqcnLW0RlQHZeIq2hWyO8Bl4o7BFIFlu?= =?iso-8859-1?q?wliU4RQ28IxmuAFdIV9Z51lRlWYf4LieqMIYToQIgrmP+vxHR2IWMHak5gN6?= =?iso-8859-1?q?hX/Kfy6I2ReGvpZjmBb5xJDCxb4cSt1T3cJ79X3Lt659EYfjR6xRlisHag9O?= =?iso-8859-1?q?lawukElEi35C4t0qma5RBUmlqvkG+HTlr+o72TQ=3D=3D?= 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 X-Spam-Status: No, score=-2.8 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_LOW, RCVD_IN_MSPIKE_H2,SPF_HELO_NONE,SPF_NONE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1754211303939940698?= X-GMAIL-MSGID: =?utf-8?q?1754211303939940698?= 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 *vma, + struct vm_area_struct **prev, unsigned long start, + unsigned long end, vm_flags_t newflags) { struct mm_struct *mm = vma->vm_mm; pgoff_t pgoff; @@ -417,22 +418,22 @@ static int mlock_fixup(struct vm_area_struct *vma, struct vm_area_struct **prev, goto out; pgoff = vma->vm_pgoff + ((start - vma->vm_start) >> PAGE_SHIFT); - *prev = 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 = 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 = *prev; goto success; } if (start != vma->vm_start) { - ret = split_vma(mm, vma, start, 1); + ret = vmi_split_vma(vmi, mm, vma, start, 1); if (ret) goto out; } if (end != vma->vm_end) { - ret = split_vma(mm, vma, end, 0); + ret = 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, size_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); VM_BUG_ON(offset_in_page(start)); VM_BUG_ON(len != PAGE_ALIGN(len)); @@ -480,39 +481,37 @@ static int apply_vma_lock_flags(unsigned long start, size_t len, return -EINVAL; if (end == start) return 0; - vma = mas_walk(&mas); + vma = vma_find(&vmi, end); if (!vma) return -ENOMEM; + prev = vma_prev(&vmi); if (start > vma->vm_start) prev = vma; - else - prev = mas_prev(&mas, 0); - for (nstart = start ; ; ) { - vm_flags_t newflags = vma->vm_flags & VM_LOCKED_CLEAR_MASK; + nstart = start; + tmp = vma->vm_start; + for_each_vma_range(vmi, vma, end) { + vm_flags_t newflags; - newflags |= flags; + if (vma->vm_start != tmp) + return -ENOMEM; + newflags = vma->vm_flags & VM_LOCKED_CLEAR_MASK; + newflags |= flags; /* Here we know that vma->vm_start <= nstart < vma->vm_end. */ tmp = vma->vm_end; if (tmp > end) tmp = end; - error = mlock_fixup(vma, &prev, nstart, tmp, newflags); + error = mlock_fixup(&vmi, vma, &prev, nstart, tmp, newflags); if (error) break; nstart = tmp; - if (nstart < prev->vm_end) - nstart = prev->vm_end; - if (nstart >= end) - break; - - vma = find_vma(prev->vm_mm, prev->vm_end); - if (!vma || vma->vm_start != nstart) { - error = -ENOMEM; - break; - } } + + if (vma_iter_end(&vmi) < end) + return -ENOMEM; + return error; } @@ -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 = NULL; vm_flags_t to_add = 0; @@ -679,15 +678,15 @@ static int apply_mlockall_flags(int flags) to_add |= VM_LOCKONFAULT; } - mas_for_each(&mas, vma, ULONG_MAX) { + for_each_vma(vmi, vma) { vm_flags_t newflags; newflags = vma->vm_flags & VM_LOCKED_CLEAR_MASK; newflags |= to_add; /* 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: From patchwork Thu Jan 5 19:15:57 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Liam R. Howlett" X-Patchwork-Id: 39751 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:4e01:0:0:0:0:0 with SMTP id p1csp458145wrt; Thu, 5 Jan 2023 11:18:24 -0800 (PST) X-Google-Smtp-Source: AMrXdXubOi52ehRszmi6UxjdxLk/mhQu0FCzSxEF/C2R5liur2k7LzRVSAq4H1nh+k5QKfgxa/c2 X-Received: by 2002:a05:6a20:3ca5:b0:af:ae01:54df with SMTP id b37-20020a056a203ca500b000afae0154dfmr88639293pzj.11.1672946303860; Thu, 05 Jan 2023 11:18:23 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1672946303; cv=pass; d=google.com; s=arc-20160816; b=jC4jvAeTt2WvJGqMku00N6g0UFOp0zPqglsJPvK/tgmjZJu3aWT+ss+EZ6lleAEkw1 tY4rJj0LxhfHBS1LyMjGm0k6Dap8AsGemjXX7ZOzqMedivkxty5yyWiEbKzuOsjhGySp KmcxQR/eY1vvqq3xo3ISG5hVMZUmDjL3IJiX75NT6GpsN2O+zNK63/fiSZ7z0B7ISliB XRoHBCJTWyroqodTpQ9C9RD1nNYOINEAcYssOdbL9Qhn2f36feJ8n1bExtGJVq+pRYfF IsdY6NAdeJ2cbj7CyybDZokVmYnejl/+P2QwDKr46dds5xpIB+/AlQGmOP8kN6FQI5eZ JV6w== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:content-transfer-encoding :content-language:accept-language:in-reply-to:references:message-id :date:thread-index:thread-topic:subject:cc:to:from:dkim-signature :dkim-signature; bh=7jgMvChxkwjpmNBsSLPkBEf800VrOzeU4TR5euk2NpY=; b=dXd3fwIfob4HBCYciFIqYwpJwu3aLctIo+fscs2fSCsFykdpX3U2QQQozlioqbNMTS zDn977Z8eQkeXPPidFqiSpB60dJq04RXo5gYNEie+HCrd5fdA2gkdysX9l9OKMmXExj7 RzV6Dz/rfqz9h20VKvyrUBPqNONwxM55Ldl5GvEyfVddth6HYTkfV8BZ1obr+iZwxdmd IWklfFZWuXdL3RPyL4a/JM6sxJ8SE5sQoGFJr8daOHypsCgoDfFd9wFQObEi83TK7gQd 6vLn+mhtQXh2qBy4aVskzKb26M7OoDg+ki1hUNHTdLrmPRB7MtA6vhywceoNLKzs+fht 0+4w== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@oracle.com header.s=corp-2022-7-12 header.b=pGwAKfNe; dkim=pass header.i=@oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=Wa9tUizp; arc=pass (i=1 spf=pass spfdomain=oracle.com dkim=pass dkdomain=oracle.com dmarc=pass fromdomain=oracle.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=oracle.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id r15-20020a6560cf000000b0047853fba938si37634134pgv.390.2023.01.05.11.18.08; Thu, 05 Jan 2023 11:18:23 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@oracle.com header.s=corp-2022-7-12 header.b=pGwAKfNe; dkim=pass header.i=@oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=Wa9tUizp; arc=pass (i=1 spf=pass spfdomain=oracle.com dkim=pass dkdomain=oracle.com dmarc=pass fromdomain=oracle.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=oracle.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235556AbjAETQ7 (ORCPT + 99 others); Thu, 5 Jan 2023 14:16:59 -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+zGL?= =?iso-8859-1?q?K4ccKCL4pRZiYcPrr2iKS7hKBZmOJVAfNb5L0gFfmqSv1FPAWzqt7GFWnXR/?= =?iso-8859-1?q?FDsQeGCI2iEdH8LFrfNCWvV4GSaxDjWMbSkrWTqo06cPt4wEMlmUhRz76rMr?= =?iso-8859-1?q?hfzz8mPP+WBZg1UMe4gazbrboUIChT+zokB8/zsRwHulary0JPmsegsjuzeB?= =?iso-8859-1?q?6Ml6rkr9bxYE7VJsVQb1TiktYVQTcGskzGf6nPuBb+ijpw/bCTBotwY3v+wA?= =?iso-8859-1?q?WbPgdSGxXRLAkgoPe7X8u7jKqnrJ58w9CQdcDRmIpQpT9NYjGxkAfaFNf+br?= =?iso-8859-1?q?2YoCrDaBSBk58cX7G41DBf17Pr2t9SINVp1szLl96g6feosNCWxzBeY4OF6+?= =?iso-8859-1?q?flcaWmlCxf2lXKnPWTJ5T9Xz2chNjsl2kd/UugI3ueuRVjKYOs41jnYqHQlp?= =?iso-8859-1?q?2U8zwqDr+8l6xvMpGyiALIixQ7j0PjmnPYPONvMak9+Bdc0aSM4ixiwo2681?= =?iso-8859-1?q?YpPa+mp3N2Oz4nsrHs7g/Z+YT6qM93nPjf6KoK+nEGj81tD1Mv6IZDa/m/Hj?= =?iso-8859-1?q?Fb27DwHOx2hOhzApDuCiwChs5bGfTB6rNQxa0P38zr48R54IrL9AqNZHeWvC?= =?iso-8859-1?q?5Kej1WZWHbgFEi/qDoD/5r7LMkFjaKZmMI/6WD6eJe+DgK5Iai3hdhJX4bzG?= =?iso-8859-1?q?q+JkIlBnDw1/2Jn64pbZavkXV+F5ieEaYOs1zaB5idPxvRDCSl/TwOw3MW1x?= =?iso-8859-1?q?VLxxLuD2HUK0Ljm4vtiHc6Lj88SSFWFD8O6epS52xf1M45Y4rKO/1ziiYJOh?= =?iso-8859-1?q?RFimSIYHiZfNNnDrFQHeo9gb4bYQZs5g/gs47b7qng0dfhTIw/8D5tCfpiOb?= =?iso-8859-1?q?sgZReXRLJLqm3glwPqBJoSS2sYEYklc4FuNultBRP3zahf/GgxcpzQNYOVeM?= =?iso-8859-1?q?boQcxmMJAZ40xIdbqoxYd6NodnUgJXy2Z2sOLZrBI2A4cuBQ2iGfi4BlNW/v?= =?iso-8859-1?q?dfndqmc+mPuLwDP9GXqC5If8BCbc7X65lWqDUGJlHnFIHmF/aSoVkFL2DZar?= =?iso-8859-1?q?39uFcl/krqdyVsUUOtfzRYnijaa7vKzmib+QA97Xly7CYN5snTsfOWQ0qI4k?= =?iso-8859-1?q?YkouGJ8dVhZ2buTtNF9s8UASjNYnYMq4sGCxWeQsiztwUhHIwJzvglk9tkXq?= =?iso-8859-1?q?lsNUzszVNFYQn/E9Q1i68TWSQsXblyCZXTtm7PFhsC8F8b/vhka7dW/w7IUy?= =?iso-8859-1?q?RX9HDwHBdZ3hgl/YqLCb8ENMvVf/ho7y9uihWBSETPpKiMdvjdu0LPDR2G68?= =?iso-8859-1?q?eLxN7SLIlIEcd24LPGpNGgK376PwciMnkrZxXLPhRdUuCjHJ+eBQZER38vCW?= =?iso-8859-1?q?2Vsz5b0hH4hUeHldkwOtP65Kz/WxJTd40HgV3pbJDhmmeMLHi95QpThLpOfO?= =?iso-8859-1?q?8TlL9/UMySRxP3mLWJYk3zRSQv99l4YUU2oPfhHfYPlCd/HH+n8dm3d0PLK4?= =?iso-8859-1?q?lZ97tojtG5z303KnPjgdG088lnEIV2ooiAZ2l42JIU+L9VZENWAg362ydnEe?= =?iso-8859-1?q?vYKjuN9P8UkZGPFDX6uSwlPheRjgDM2gS1u1X0FQp84vLZtCy0fPfVVDIZRC?= =?iso-8859-1?q?ioatQHiMKXaEZEi9JM9ArE24A8OtXCB6eM543Sw=3D=3D?= 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 X-Spam-Status: No, score=-2.8 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_LOW, RCVD_IN_MSPIKE_H2,SPF_HELO_NONE,SPF_NONE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1754211343506375081?= X-GMAIL-MSGID: =?utf-8?q?1754211343506375081?= 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_struct *vma, * Helper function for iterating across a vma list. It ensures that the caller * 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 == gate_vma)) return NULL; - vma = mas_next(mas, ULONG_MAX); + vma = 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 = NULL; struct mm_struct *mm = current->mm; - MA_STATE(mas, &mm->mm_mt, 0, 0); + VMA_ITERATOR(vmi, mm, 0); int i = 0; /* @@ -1167,7 +1167,7 @@ static bool dump_vma_snapshot(struct coredump_params *cprm) return false; } - while ((vma = coredump_next_vma(&mas, vma, gate_vma)) != NULL) { + while ((vma = coredump_next_vma(&vmi, vma, gate_vma)) != NULL) { struct core_vma_metadata *m = cprm->vma_meta + i; m->start = vma->vm_start; From patchwork Thu Jan 5 19:15:57 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Liam R. Howlett" X-Patchwork-Id: 39756 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:4e01:0:0:0:0:0 with SMTP id p1csp458379wrt; Thu, 5 Jan 2023 11:19:02 -0800 (PST) X-Google-Smtp-Source: AMrXdXvOnl1Jtc7KToj/9s3aXDjIzsT+T/9NSTz82m+fo85rglGnMSDPCJN47/pSlChSb/1NLDgr X-Received: by 2002:a17:902:c40f:b0:189:d4c5:f155 with SMTP id k15-20020a170902c40f00b00189d4c5f155mr75519330plk.63.1672946342562; Thu, 05 Jan 2023 11:19:02 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1672946342; cv=pass; d=google.com; s=arc-20160816; b=tTqoDgMHin+bIbgsA4rsxVThP0PzWOgvL2PB6VkfBM6wHIWb32f6bMeaO6Kcv6Svqm XFo9wK5r1NTZW2qATLhnIygRR8foGrqlCB9Num4Ave8wGLJD0zfc8XCGcXxnhunsQ9Jt uvAdybPCvGKpWCFylGpfvnqhHQdvUVUGWdF7eujyj9E95+Asdntna85VYMXVwfdcE+4c O1vIEv3NqQEI6gLqnz4q3rIvRi/32wVk8Ncdi2MXUH909035/u3MLUxnzfgmddwGcxwI JkCvL9lzWkCVrrZzn+JvRjop/rgtFYTQl5hVOrel0Lwz9yjp9LQ0EHrIU03zm3va1eAz nwLQ== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:content-transfer-encoding :content-language:accept-language:in-reply-to:references:message-id :date:thread-index:thread-topic:subject:cc:to:from:dkim-signature :dkim-signature; bh=ZOLjRMKcGRah0SkriUEnVf9iJfrlXmxLFviwP1H6bf0=; b=widRj/3f9fnjhuqqPxsFbmLNd/BohXoFJH3/Pjx+1VlhOfONE16DZSqzaXgEywl2GF o7pNeW2JCwM73/w/czZ/gyG0EIbWiWPPJCYwnMveV6RTbvA6zgK1ZFIb55WH1+yC+CoI QKkEE7vwr9Netk4NeNBTKScvnnGkF9af8sSZtU8jCuWlTK8Wamq5RPOVdA+Y/WstswdJ CO1nqD2b6x5u1VV7dqVdV6B0KITsVn3m1p2aO15OFfqWRi4uBMMXUcrtUvJA/dznioul IqDeqIxAhXqa59kDmEgPciprsKCWeVK7Zh1ifY51eLn/j3+ipEUcbiqqweHRuj7E9i/g LzCQ== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@oracle.com header.s=corp-2022-7-12 header.b=rlvmFaVb; dkim=pass header.i=@oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=rpZx69if; arc=pass (i=1 spf=pass spfdomain=oracle.com dkim=pass dkdomain=oracle.com dmarc=pass fromdomain=oracle.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=oracle.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id m17-20020a170902f65100b00189697e2433si8236919plg.537.2023.01.05.11.18.49; Thu, 05 Jan 2023 11:19:02 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@oracle.com header.s=corp-2022-7-12 header.b=rlvmFaVb; dkim=pass header.i=@oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=rpZx69if; arc=pass (i=1 spf=pass spfdomain=oracle.com dkim=pass dkdomain=oracle.com dmarc=pass fromdomain=oracle.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=oracle.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235637AbjAETRw (ORCPT + 99 others); Thu, 5 Jan 2023 14:17:52 -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+QztiyZwJMqNvrEfWyHN?= =?iso-8859-1?q?klTuakB+xU33/vLXV2D2V194UM66K2QvYYH9INWDeZBMTtKxV6dS4ZlF6Tbk?= =?iso-8859-1?q?szyE8xTi+mbNhe3igJaYUIRgUf9zLljP3z/t9zVYDyra+Zamnq0w4A7YXYC1?= =?iso-8859-1?q?4kQ2RZ4K6x8dSqTV4uhYGxC16yhOp0fjmDeO0xPDNALb75IpsErYBLiS/B49?= =?iso-8859-1?q?cQOOxMLUfc4UWVkssaT7mADMpsaFMD3XnPLPnGZzzqEFF2OuDm3x5nCR6G9G?= =?iso-8859-1?q?bxG7bvoHpLH7a36unsGt0JLo8C4UXX4+FSzIPYK6F37tJ4xd8X3Q289FgxJS?= =?iso-8859-1?q?ajR+UDFWXhxFffvH8XQgSEPcN9O3R7wCr+hv6/s1Y8FI+v0tWPaFqMBp3skH?= =?iso-8859-1?q?+iPJxho7c51nNQqftn8iBoVknsWT6NpTdTc5gAQDxwklq5gfPU36mOI+lKCK?= =?iso-8859-1?q?SVx76XlrcTT4RIELbljzSt8GK6YXecbhFH3hqsgUzN/jHZ3FevFLQkBL7hxI?= =?iso-8859-1?q?X4fAGJjzf3nb/MeHu7KUDNG8aG3AS6UVfFjJlR/1zAGxuS+M/ZxlM5NF/bQb?= =?iso-8859-1?q?328gQavdb48NRQYijx2u892gOpJghanl/BkI/jjNUnkbY00NDFUpyyLYCjay?= =?iso-8859-1?q?I4ktXaMg8t8znWwEYsuBQE5zW4XP5D1dZeYJjgJMmrtQaN/dCrTbiw2O5B3L?= =?iso-8859-1?q?WopuA9ge0whgFy4lHJRLciX+sqXtJeQOCyrmLw22S1pF3TvoFADnJ7SMth1N?= =?iso-8859-1?q?wOBcJTkxHWNZfwD68QbFoPC1Ly0rrCpTgvNcRUgXSyWCzSt8djSjwK1qQ0UT?= =?iso-8859-1?q?9aSqgqytvp/80IO7VHmQnDV5zoK2EMDRtr0y1KWXTXReniIlTjx2x/AbKZj7?= =?iso-8859-1?q?ky+QbpVUkBJZzcOr6boy++32we3WtBQ1eq8gmkmBhnA59wK49sB9iL/QxZmk?= =?iso-8859-1?q?/A1RaI0brRpTaLHrAk4UoqF4Eh9OYIbm2sTzzwoTVOe+kIqiWogBS0a29slA?= =?iso-8859-1?q?PBrzH0gh3lSfL9fF3EgIFlBVWfzdEK+y9XNyD11Wlk3eqcZP7Phwaf6kNNVl?= =?iso-8859-1?q?rKW5Gs/9/ERt2X6BtcshEB84tIDa+1M9prXR7nQbVQ25ecGkvmqFb8bDBSXh?= =?iso-8859-1?q?BSobwNMmZsBnP8FuTvjoacBCwFZa9oxBM/Lf5QcieZo/c252y4UV0L7Jlqmx?= =?iso-8859-1?q?d1rjAbnlQE69j3s2c4gjQk7zdlk//lV8EoiYMqoTXNmEJ5g3sLJrRHrh9SgS?= =?iso-8859-1?q?DipihJWTm+01kf9xjqjfbnI9qZLPlM56BD4a5SUebccjJG8L8vYu+UTg3GFz?= =?iso-8859-1?q?7P35vupDkOl2MJBu5LAxau8sl8ByhUm75/rjCDR3DMbW26IGQfreev6+Pj2E?= =?iso-8859-1?q?IvvRYNwWb93QJ+UhF2SLPpLNAaGCB7o/SfVoDBl5NR42oXn84lms7+ZQuhNW?= =?iso-8859-1?q?BdSOGgXe82KNWa+AUdNkqK/2bNY6KTMuPZGW7f0bNdCSks+YouEElHqYBsyR?= =?iso-8859-1?q?eaL/c35eMmmmqNVJblualL9HGCcetRqZoc3lzummESPFm2is1K2Xfi0GQ6XB?= =?iso-8859-1?q?XZ0D/nxvbLj9wFHhK4cmoIJ7scJltzPCmlEXsP3fs+1QhGy1wA0xwPRdB7nn?= =?iso-8859-1?q?y2XUpyzE1piRnh7SKNsZUfiynvGZguDXZNHLUhA=3D=3D?= 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 X-Spam-Status: No, score=-2.8 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_LOW, RCVD_IN_MSPIKE_H2,SPF_HELO_NONE,SPF_NONE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1754211384391608063?= X-GMAIL-MSGID: =?utf-8?q?1754211384391608063?= 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 = 0; pgoff_t pgoff; - prev = mas_prev(&mas, 0); - if (unlikely(!prev)) - mas_set(&mas, start); - - vma = mas_find(&mas, end - 1); + prev = vma_prev(&vmi); + vma = vma_find(&vmi, end); if (WARN_ON(!vma)) return 0; if (start > vma->vm_start) prev = vma; - for (; vma; vma = mas_next(&mas, end - 1)) { + do { unsigned long vmstart = max(start, vma->vm_start); unsigned long vmend = min(end, vma->vm_end); @@ -813,29 +810,23 @@ static int mbind_range(struct mm_struct *mm, unsigned long start, pgoff = vma->vm_pgoff + ((vmstart - vma->vm_start) >> PAGE_SHIFT); - prev = vma_merge(mm, prev, vmstart, vmend, vma->vm_flags, + prev = 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 = prev; goto replace; } if (vma->vm_start != vmstart) { - err = split_vma(vma->vm_mm, vma, vmstart, 1); + err = 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 != vmend) { - err = split_vma(vma->vm_mm, vma, vmend, 0); + err = vmi_split_vma(&vmi, vma->vm_mm, vma, vmend, 0); if (err) goto out; - /* split_vma() invalidated the mas */ - mas_pause(&mas); } replace: err = vma_replace_policy(vma, new_pol); @@ -843,7 +834,7 @@ static int mbind_range(struct mm_struct *mm, unsigned long start, goto out; next: prev = vma; - } + } for_each_vma_range(vmi, vma, end); out: return err; From patchwork Thu Jan 5 19:15:58 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Liam R. Howlett" X-Patchwork-Id: 39758 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:4e01:0:0:0:0:0 with SMTP id p1csp458492wrt; Thu, 5 Jan 2023 11:19:25 -0800 (PST) X-Google-Smtp-Source: AMrXdXudA4FrErjIsqGwPRkEQVvEUYKfJidUTsuSXs3yKpmt2A5pwaK/FkqbcDNgTN/CXhfuiCfo X-Received: by 2002:a05:6a20:1455:b0:ae:661c:5553 with SMTP id a21-20020a056a20145500b000ae661c5553mr78792263pzi.4.1672946364877; Thu, 05 Jan 2023 11:19:24 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1672946364; cv=pass; d=google.com; s=arc-20160816; b=nHECiRspbG4NjvFw8SHZ+kHqgBJbfahbpit8aaIxTGZSMsCdXi8bZbacvd9Mnggcm6 jyDL60uGyBdX5AxfLRe6nFZ1S/UYxtpTWVyhl6s9gsza97KlzUi2geaK9VMGN81b/0LC +nUzYEjD5z+CXZBOeUcoddqEbQ0AA720Vspo2uKaj1JTM53unJ7Nm6dOpZEJBhFL2qRh xV9ccmllFZPYqedI61BS88p9GIKxrUHZuLNvg/jmz7NqnH+xK+Znj2ftoOcMvqPnJ6Nd 6vaqi2vI24ruMbMvYv9f+flgRHiIwqSuMZJ89A4CQPxiuzbvvfKrSOtqAKD2liwYtkYT KRgg== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:content-transfer-encoding :content-language:accept-language:in-reply-to:references:message-id :date:thread-index:thread-topic:subject:cc:to:from:dkim-signature :dkim-signature; bh=/oRh42AdWHNusHP8+8qQ2D6ha2f/p4YzaT4dgmlHW2c=; b=kM9Tj+o/0OpYAJH1ffW+pPZhrFN8+QDKXLqUBZc5c8kia1+uLuAhgK+j/MTTUv1GC2 80JsHIawYffEGXxTs90K5sxaMmfwP8JX2lSz+OsHcxJFFRFGF3ybfqvl4Jo0dt61egWi i/dQeds/d5HufjBSIk6F3zAkmR3kG4BbMh+kdBAKAdS1BYuq+UEpyl91jhQ/q0SCggTr RSC4CRUp01Ge4ahoLQONs1JfX+vnKMOcVIaRM4xDJXSulMgjeldDJ09DJVl6X7KPabmI k+0jpgW0r/Iu/BUkJOMjZmpvdbx2QqGLEAGA9KnCFUj88hXo+fgg9UFa9d7ow8LYj772 anFQ== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@oracle.com header.s=corp-2022-7-12 header.b=WxsN1PEP; dkim=pass header.i=@oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=Rx86C0jP; arc=pass (i=1 spf=pass spfdomain=oracle.com dkim=pass dkdomain=oracle.com dmarc=pass fromdomain=oracle.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=oracle.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id a62-20020a639041000000b0047888d9f3aesi38536520pge.547.2023.01.05.11.19.12; Thu, 05 Jan 2023 11:19:24 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@oracle.com header.s=corp-2022-7-12 header.b=WxsN1PEP; dkim=pass header.i=@oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=Rx86C0jP; arc=pass (i=1 spf=pass spfdomain=oracle.com dkim=pass dkdomain=oracle.com dmarc=pass fromdomain=oracle.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=oracle.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235595AbjAETR0 (ORCPT + 99 others); Thu, 5 Jan 2023 14:17:26 -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+3waN6rSywUhy4x?= =?iso-8859-1?q?QsmhbArr3y/c4G649WhejCM1/oLQOm8+b71GkZ1L/+mr/g94kT5MLQjyPPR/?= =?iso-8859-1?q?j9K0fRVnq9+XrykqYHwadPvGCiMBCdtIOEJQZDNpxid4qH9QkTBEpbNzjkUJ?= =?iso-8859-1?q?5moFE0k/lyp0ffAW/O4WD+lQdkdKDH1nBixSNssSJ8Ry35dMKl9HMB7yyVYt?= =?iso-8859-1?q?c28OsJlX9ZIB/kkUeh57kRoWWwEECCgCdVRImZ/AVkNkEgFNhtJzhsPuHUpe?= =?iso-8859-1?q?bVGxgPwLopCN29AyeO8FuikDIbNzrMM9Z8iWApGu6988w/zD/9DmoUqHk6f/?= =?iso-8859-1?q?iQMVKoN4209bVP8+IdcwKM84r2oYhntGW184DiYZ+VL2geSPSe5wJa9dQxF1?= =?iso-8859-1?q?YBOVXc2rhC8FLU7E1T7dzR/TdWjlGhWjzgyx6Rq6GYgUNYbeQ9LFaSm20i7V?= =?iso-8859-1?q?YkrIQnAOV4wNcx1+uLpgonX4grsINQKSK0VKuB0hSGE3gd83i2k4fHyBIpoy?= =?iso-8859-1?q?UW7Rsi0ujwTrV/vo02JVJMHqD4EJDUsJqlzXKA5HUy4zPsabjpaY/Bzh9JC8?= =?iso-8859-1?q?sc36+CKsVVyS7KUXeq1gqEWlhjUuhxspR1YikYmbYkND9RrDv1r7+4GEJMGy?= =?iso-8859-1?q?fMoEe/hg/6LDnYuXqKIQPcAwEmnH+A9xJvMQD9jTGCQhaBEvbwUt3qOxRlmf?= =?iso-8859-1?q?CtgFfRcETCF54b/Rn60mL7kEFkxLhWORymHYEk6FGnQZ568esAzcKbpFeKNT?= =?iso-8859-1?q?7VT+Mx4mcaTGv+NX0Hs42Xh1LTgCjbMqTe/By4Lxwctxd3ch5RugonkIvdVz?= =?iso-8859-1?q?wLSsQmsbFeJ9fcit5PAHxysfIuIANR5FME7H8rKMxuZ5gqoFwRcOVrBOoapV?= =?iso-8859-1?q?uL2JFpUP1XC+yuUNN1PGcne+cpklg3oPOSQV97hz4P/alHtHO08ljZwgAH1t?= =?iso-8859-1?q?AJcZull1fNjBEv/djMzxzzgKu0fbRxPi7Qc+aSeEqXzPpmxdCy+R1pKJlFo9?= =?iso-8859-1?q?SmwW7p+Q1WC2Z3Ml7JeTxfENEilfnHkFFXPl33kl8mK/gsA7UdWxAcAwK640?= =?iso-8859-1?q?kEJMRikB+RcKsq2DxR8JLZ3k9mKyC0/h88cIY/MrBMteaY1vufUlzyIfnAYJ?= =?iso-8859-1?q?4M8+Bt/cn3g0I2HIyr7oikXGoHKtJqDfwL2QEelOM1dCOg7+rcdEbOkkuA3e?= =?iso-8859-1?q?18jhlyJdii516c2DLFykAcIgMIR8GYXdE3hKPTXut/CgpDff0JJZ82AgWhbn?= =?iso-8859-1?q?SEH2xH2jo2CsJC8jGKS5ERYtUFFkl9wot3ZbbhBg9VyIb9UuB8wuVdMygWOo?= =?iso-8859-1?q?JON875OFfyS+XLu0qQaLbgfe9WaMIrnfq6R69Q9pyVjcr5/qkVwLc1bK04UG?= =?iso-8859-1?q?BwvesJ8SHPgy8YFySxm/7O7M73DyADK7V9gRbo18t4p5A1VA3AXKyrG6JA3B?= =?iso-8859-1?q?UrBfJea9AQ9vvYaQPG+MmPuO0atrLKkDklQov1csY+d0dzfJ0f3GP+wUdoaU?= =?iso-8859-1?q?M4lk82+Tw0qEp5YzTMNE+cAwAfKv0NSIv3D8+gY+ZIr0B/JmacNtkcCkPHBS?= =?iso-8859-1?q?7OuXJoLzUVQNv58PjJ8+eD7hvgRojDausRB9SFvbOri5xSF0Eo6HmAL6Ob77?= =?iso-8859-1?q?k6SqDXk1wbweCb34Ben6gNXAxUiCj+hmJcUQJOA=3D=3D?= 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 X-Spam-Status: No, score=-2.8 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_LOW, RCVD_IN_MSPIKE_H2,SPF_HELO_NONE,SPF_NONE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1754211407300488836?= X-GMAIL-MSGID: =?utf-8?q?1754211407300488836?= 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 = 0, last_vma_end = 0; int ret = 0; - MA_STATE(mas, &mm->mm_mt, 0, 0); + VMA_ITERATOR(vmi, mm, 0); priv->task = 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; hold_task_mempolicy(priv); - vma = mas_find(&mas, ULONG_MAX); + vma = vma_next(&vmi); 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 = 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 = mas_find(&mas, ULONG_MAX); + vma = 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 = mas_find(&mas, ULONG_MAX)) != NULL); + } for_each_vma(vmi, vma); 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, const char __user *buf, return -ESRCH; mm = 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 = { .type = type, @@ -1299,7 +1299,7 @@ static ssize_t clear_refs_write(struct file *file, const char __user *buf, } if (type == 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 &= ~VM_SOFTDIRTY; From patchwork Thu Jan 5 19:15:58 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Liam R. Howlett" X-Patchwork-Id: 39752 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:4e01:0:0:0:0:0 with SMTP id p1csp458221wrt; Thu, 5 Jan 2023 11:18:36 -0800 (PST) X-Google-Smtp-Source: AMrXdXvEI9G95a3jAwY5nm5grO26oFSgtV4XMI/NQ9E9ZLpeI1icUEjLQr7ozeYT2AT7TT1VjZYG X-Received: by 2002:a05:6a20:a027:b0:b4:9a94:af57 with SMTP id p39-20020a056a20a02700b000b49a94af57mr21086281pzj.0.1672946316568; Thu, 05 Jan 2023 11:18:36 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1672946316; cv=pass; d=google.com; s=arc-20160816; b=ur8dQXYzk/V0EMtuovwZc7NphIs4L7EG2k13ssHeiozagv6CLjczJpJC6RsMu3Qp2y MwAypvaq8eTzLMi7HNc5a3iWsl0vIEgvfSbkuMq7NlbeMIxqDNaCb93myx3Mj6DeX2ny ELKshg3bAN6nR9xJP2EE44BX+VL7UrVZZD7d4GwYUt8yJlk2Eg5OsrmTynNAHdGFTSXZ Qh2v3bUoJEludtYU/E4FHEov/u4cIScUdDkdKlNnv4HhCsAiZ8qim7cyHH+RTHqZOXzP UjrO5XlZi/UF6DJsrQT6KM73XrsUmMlF/r741Q+L9F7CVLnlYRdrMilsYj81H/ffnWa9 Mkhw== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:content-transfer-encoding :content-language:accept-language:in-reply-to:references:message-id :date:thread-index:thread-topic:subject:cc:to:from:dkim-signature :dkim-signature; bh=SJEJ71CHLPVQ9y9IwfIDwgRcUFzrXy+O3J54pk2rrrU=; b=y1OV7e5C2QrT/vDcEPaq8NGIkZW/f/7I25PfHYD4s6+/oRRe/u5NxfnshkWjpCijbe xBiJXIoQHs/oKhSJcCD2c8XYQjF88WR5KzxocgEquza7retIsH/VoOI59Se4U4ZeycsX f6y/UonCzkku0SPFB+MaqoYfzU9PEZ1ve3wqNjB46nvHyZUStMkFRq0ng9kE5o1Eedyh IuWiy4KNmUjAbwiIpH/odTO2u0fIeInRlk6B/Rh+biMpakCpSzC4g9JINie+74Xkkwy6 9xUc8gy1iY/g3ASlmrEUN3APW8mZFRtVTjosPx/PpGlosnxO8a8tGTZPhM/bySCxPTFy FbRw== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@oracle.com header.s=corp-2022-7-12 header.b=HzfmVbi8; dkim=pass header.i=@oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=IMu9ICEg; arc=pass (i=1 spf=pass spfdomain=oracle.com dkim=pass dkdomain=oracle.com dmarc=pass fromdomain=oracle.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=oracle.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id n11-20020a634d4b000000b004a069d07e13si16512714pgl.734.2023.01.05.11.18.22; Thu, 05 Jan 2023 11:18:36 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@oracle.com header.s=corp-2022-7-12 header.b=HzfmVbi8; dkim=pass header.i=@oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=IMu9ICEg; arc=pass (i=1 spf=pass spfdomain=oracle.com dkim=pass dkdomain=oracle.com dmarc=pass fromdomain=oracle.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=oracle.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235622AbjAETRn (ORCPT + 99 others); Thu, 5 Jan 2023 14:17:43 -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?EknVxGuspgqGwaxIcRvU0fC?= =?iso-8859-1?q?Bv6lbyGRMu8ZxHJiGF38D5RzPZBoLAwMiHYAnNI28dgzGMXVcS4AplqMNzUh?= =?iso-8859-1?q?kq7HTRnvUJSlm0ouN4L3SJRjvn1gG2CRVVMYFkTdEOAuMOZbxtMsn6d5R338?= =?iso-8859-1?q?oJeZC0m1xQNpHDniu805lv+3NPkZh6Bb0JZvaiDG4JJKvCFvOYJkeAITpoiB?= =?iso-8859-1?q?5pQrv8Y1aw4taXFU/E/P2TxTIenViRFB5Q6TRo1cn5lTWsdd9yl3dIbqZyCJ?= =?iso-8859-1?q?P8Gltmu9XNbxA5+4gEL3uHpZ/c3GqsVyY7mwB6asPDzsEsq7Yj4gclZmRZFu?= =?iso-8859-1?q?Pnt931LJ1PpmSB/9VIJgSePMp+V/X/sCyw9B4MzCPUw4fieqm+6bNvUbNjVI?= =?iso-8859-1?q?vqtPLfq2yqWTvVSa/O9hXoxYgAfm1+2hN8p++41/5cxPUYg8J3AloMP097+c?= =?iso-8859-1?q?fylv5iMDhc1cCgqaXMrEYA7VQr0oMvLd7fvlDt3BlPlDnqPuh3d3seE+VgBw?= =?iso-8859-1?q?Aabddz008fP8hCxpiLKo597jJ3qMN0B73wYNuTLQjFf95zZelSYUUEtJWcEf?= =?iso-8859-1?q?m8EBJ7qcpA6B6RwEvxeLStl+YpimGDFA+vvV/LhyltwdKi0ZfU8boek/92+N?= =?iso-8859-1?q?MuAOL/0iMMqq1M7VtRxO5nya77EyIkfPSAK2QyWZnhNIv/8D5LtXso+gNFiP?= =?iso-8859-1?q?sKpMpSlO9Gp4B7Nqxlzo8Ywd1z+Ly0GWDpLRE0XQLJAijAKdiqJX4TeqJiWB?= =?iso-8859-1?q?8xY0zpOqWm6GRF0GwUZLDJ79Fq6zt3kv15/h4ZnGDE+vIkXxF9wzHnNd2BuV?= =?iso-8859-1?q?rj5RbNawLhLIX7WR6a86tf/4ujq5nTq4Fm2qCSAZWWihNPWtOfd0fnCkZX57?= =?iso-8859-1?q?crttmSh/xvJE9fgc3doM/oeIAC3BgSqIOc1UGINu073PApkwZRX6pEv69TJ0?= =?iso-8859-1?q?r2RLXa0WHnxP+nRZ34/eb/a194c4zsvg9tVV8FXr9ibZUb3BYYX8+SchJ/3b?= =?iso-8859-1?q?pKRduaRMhcn3G2j5Hx7a7EEMgEjcKnXG/LDJjSdCIhfAYmrSgd9WvHTycltG?= =?iso-8859-1?q?NdMFm9PHJFx6q/0UsJxVmcj4n9ltIJeJigJ/g7GLA1g94miihvJPSXWKtird?= =?iso-8859-1?q?rEWMYU/DxzCwPXf4V2oCtIe8QHiFrQJQQSDmCMhamA6rXzGZbkWGgdATTNPj?= =?iso-8859-1?q?a4R2iGf2Z4KlWuyJi5wCH3uufba9+OdG9jBqLLjwklgBI7YFU6XKjOR6DGAp?= =?iso-8859-1?q?UZ649MMgm24/4GXJX1PhF4vjRdmUoabYVWm2gqM587FaefAlTRrK4bdDsMLK?= =?iso-8859-1?q?YAb+vgJ64XrbR7/IOCnPUSGcymVQSW6Jj6vvKtSAyxhKKRNEbP+FFDQZqf2U?= =?iso-8859-1?q?LqQLbdcRYV4mkuetfNeO9aZx8vheU3VHTwtCV0t1tTlRQwtp7ervI0T1zleq?= =?iso-8859-1?q?9U6seW5zx8fslbwQ27dDVJizP5nhkEbNHda13AxQyVVIqpDlgJmnMhxdK34O?= =?iso-8859-1?q?b7ozeroALab8g5W5aZXF9+RyEpLsKlojfdfKZYG/G6PHnQ8hI7ecsNgoK/AL?= =?iso-8859-1?q?HnU4us1AfiDSWHyPL8ZyLVrARDGuVL/K1CTz+32t0K8iFcyWUNEmXg4pZP+C?= =?iso-8859-1?q?GAnOQ9Zl1Ztebzm58ESDEeLUWDxWo0dhxigo9eg=3D=3D?= 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 X-Spam-Status: No, score=-2.8 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_LOW, RCVD_IN_MSPIKE_H2,SPF_HELO_NONE,SPF_NONE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1754211356982604124?= X-GMAIL-MSGID: =?utf-8?q?1754211356982604124?= 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 *work) struct task_struct *p = current; struct mm_struct *mm = p->mm; u64 runtime = 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 = 0; long pages, virtpages; + struct vma_iterator vmi; SCHED_WARN_ON(p != container_of(work, struct task_struct, numa_work)); @@ -2995,16 +2995,16 @@ static void task_numa_work(struct callback_head *work) if (!mmap_read_trylock(mm)) return; - mas_set(&mas, start); - vma = mas_find(&mas, ULONG_MAX); + vma_iter_init(&vmi, mm, start); + vma = vma_next(&vmi); if (!vma) { reset_ptenuma_scan(p); start = 0; - mas_set(&mas, start); - vma = mas_find(&mas, ULONG_MAX); + vma_iter_set(&vmi, start); + vma = vma_next(&vmi); } - for (; vma; vma = 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) cond_resched(); } while (end != vma->vm_end); - } + } for_each_vma(vmi, vma); out: /* From patchwork Thu Jan 5 19:15:58 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Liam R. Howlett" X-Patchwork-Id: 39754 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:4e01:0:0:0:0:0 with SMTP id p1csp458375wrt; Thu, 5 Jan 2023 11:19:02 -0800 (PST) X-Google-Smtp-Source: AMrXdXvBddxNo+AdGwuKL8ik+ZbxXHIU+6yC/dvPTJ0BdtvvPj+MsixXtITuaBh2YhNcokP1A3vl X-Received: by 2002:a05:6a21:998a:b0:b0:1aa9:25bb with SMTP id ve10-20020a056a21998a00b000b01aa925bbmr82043632pzb.60.1672946342606; Thu, 05 Jan 2023 11:19:02 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1672946342; cv=pass; d=google.com; s=arc-20160816; b=YEc3Z9SKmV8+cffqoTI1JtkMykUkcMpbeJs40OXmkS8SlJ5ua84FLCDzhEmtPCgizs ICrGBu8m47QVZCDW1j+cZCfLkiBaE9m1MNgvl3KZvrtHt+pDNC+Umt4yGUffoVRw5uui 1319ibfd3kk8Yip3UmegPhzI18ae26Th0Lg2gvuDmFq8GqA7BdJSI22iRa8XBFwXzYjE 7n3yEbRW2px6OePtvKw1dlKBTl+q/Blik/4VIiXYgX/S6lED/IoZ3A+O54+TOqxqNl3S TTZ4EvwSvHX2oWaWyuS9fDX7E0/eVasqhzeOR0HrZ9HwqfeLcmrY8DpQATbwI0TTard+ SjHQ== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:content-transfer-encoding :content-language:accept-language:in-reply-to:references:message-id :date:thread-index:thread-topic:subject:cc:to:from:dkim-signature :dkim-signature; bh=fdS754oOP9KvyPGz3fj9korFEn8Y/p6HOE8wad5P+3g=; b=LmOjfkFszaoAlhkkCCRRHCthKc+Rx7smAzMBav43OOczlJTaLzruI1yVaWNI8vp/jH 7+h6Kb0sc6rYnoLt/ARMzue/WuWY1la5dYH2rofieILpLeI6IrgGF6yd81mUjC5xxzci FYYT3wpzGrr95UZJFbTTK55fBXrIQeDzI9TaUJHnTXYqF5OL8ZIL4wqFB39ne0jm/WZg z6bmpQUdY40VFiJz8aH25hOZstDcDGKcwDZ2+QleBSCDXNMWmto4IWQoqbBGw4p2Guq8 u+9R/rTlcV+EF7GW/8xYRXJFS7jE++grN1s69Hz3+wIraSUgurVzswfg8dafeeDt3njt dFBw== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@oracle.com header.s=corp-2022-7-12 header.b=A4EIfExx; dkim=pass header.i=@oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=KlbWu7jS; arc=pass (i=1 spf=pass spfdomain=oracle.com dkim=pass dkdomain=oracle.com dmarc=pass fromdomain=oracle.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=oracle.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id o17-20020a639211000000b004a587b86b62si6976227pgd.786.2023.01.05.11.18.50; Thu, 05 Jan 2023 11:19:02 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@oracle.com header.s=corp-2022-7-12 header.b=A4EIfExx; dkim=pass header.i=@oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=KlbWu7jS; arc=pass (i=1 spf=pass spfdomain=oracle.com dkim=pass dkdomain=oracle.com dmarc=pass fromdomain=oracle.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=oracle.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235543AbjAETSF (ORCPT + 99 others); Thu, 5 Jan 2023 14:18:05 -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?wxNlgEuahGB3yWCWcZx9Rgn?= =?iso-8859-1?q?47byyC3cAjOyKBHigh/3N/+fqvxjM7ocJUN3U85syfJN6XBQkq728tqI8J0q?= =?iso-8859-1?q?JCGj1dWdEVfwqaSERAoxL5dJwGA2k+aPEhP8H8H/rsoIs49Qj5F2H5LhyOl/?= =?iso-8859-1?q?zU+nATLkpyUtx+IJcJTMtQFDes+7BkZ/wxe38yDmitVqBQIdwnpztHBIZJ5T?= =?iso-8859-1?q?jX7efbKh3CqUMMX3Nu/dqEmJyzeGTKDEGTycLzQt1Sy1lXn7qR0NIOix1bai?= =?iso-8859-1?q?RsHoj+Fd7FEH5w56zl68h/awnN2ORUiGUQXBJY6wKqkBzBOju9Rr0cyjQZ3g?= =?iso-8859-1?q?lNaoJZbZce4eaE815JHuZhdP4AOF+M7LEfwUZekwhJ1rPww1VHRrA7G/6ofu?= =?iso-8859-1?q?pZ7ZV/mwjThi/Zs/aaIZwokeA8Ds1OKhJcETy8jaCniJlvmZrx+AH/H6V6fq?= =?iso-8859-1?q?FX8XFNzKLAdv2bjEo9F3GynbffzpmBrsPv0Txo8aQUKNaZ7YE/xROBBRmq1Q?= =?iso-8859-1?q?kOvdI0Fx0CmBtf39Z30iQ2b0MefTJ6gBi4b2nhQiZBPfxEszS1JevkdsXFOc?= =?iso-8859-1?q?HN5vXbpPHp+RFsahPhu3ta94VX8ZoJ9hT3st1S7yiY9Y+Q9LCpxulC5wRIzq?= =?iso-8859-1?q?QlPYMX01zwmF+4C6Ezp2x0zgil2oFELBN2wd790jOF/AKP30m2ML1wmcy98b?= =?iso-8859-1?q?dd/oJEEXyYJbMOP1IhMhk1UagcM/vGCPsW5TiS+oM3hBoxDn1T24hb2I1VHg?= =?iso-8859-1?q?qouTM2+yFOuDrR4iKxqDFwkEQqg65VLw1m7Y31YmDngOdqt6fAA1/8hbOrac?= =?iso-8859-1?q?DSEl1R0Ul3emODWSW+4vB+DLchhYoJejCX/QIzmdl7kW+KDTIxOuENed2ii3?= =?iso-8859-1?q?ZaoysLROmLpsE9Nz6CuHzM2OfD/NF9a9LVoUeQYDmnr5whFg3sC64fUrH8KB?= =?iso-8859-1?q?IbO6tp+yxtSRCt7MB1d+xYEcNVSql1wqjCWVlzMQFppxG2PJwxrGYMJfB5xY?= =?iso-8859-1?q?QrMt+tvs048EQgl6kwrUPEgxQq/AxVdGrtaCNe3Xvtfk0h/0fQyTj+ALeogI?= =?iso-8859-1?q?yAksFMXuSRUNaV7UvwC1JHjsU5JCaEm2ai0z0xQLBj52SkCMo2d0K+11hzWL?= =?iso-8859-1?q?kQN/qSCLAe+BY5XexcRNl/Ap/Bnsa6rwO53FnMAXt0bUSONRZpt78mcBt7un?= =?iso-8859-1?q?17uZ2DaMddsEiHxnGArS7ncfST/IhvQ2VWa0xKn1iVhRxbA7AdKL6FGeuY4S?= =?iso-8859-1?q?Vp1xb6FHa4eJsrlx2gOUrBUDIxqXknslVvhACxWzUzqGQsAQ8kAngqSv/ddc?= =?iso-8859-1?q?JMW/70EkZMC2/GW+rPRmIYBbP5n38W4a1Yf82DWEGqRDz5TL8y5iuoWjEx1i?= =?iso-8859-1?q?Xovu8eQLKuRERqJsMbdA9M0THLKGTEyCYQ9wOZZ9J0loyNr21SSsPio4Bcao?= =?iso-8859-1?q?UAuLOr25cZt0yBCBQS0e13SnWP3317+Bad2uyQbh5ExteprEum+COYnmicA9?= =?iso-8859-1?q?+0IXjUZrTUkuYINjx+Ju/EGafxeBJg3QAkDHSE2U6idTNCaDBfDnQOinCqje?= =?iso-8859-1?q?oHE4x0riNmqtdbKOQguOswT2D/Val6TMHqK9IKHJiZ3+tekbSBUIY/v0i6yW?= =?iso-8859-1?q?7Xlp22Ic6kluxYsHhLnEbCqy4bcR+OJMGmMHO8Q=3D=3D?= 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 X-Spam-Status: No, score=-2.8 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_LOW, RCVD_IN_MSPIKE_H2,SPF_HELO_NONE,SPF_NONE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1754211384134462039?= X-GMAIL-MSGID: =?utf-8?q?1754211384134462039?= 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 *vma, struct mm_struct *mm = vma->vm_mm; int error; pgoff_t pgoff; + VMA_ITERATOR(vmi, mm, 0); if (new_flags == vma->vm_flags && anon_vma_name_eq(anon_vma_name(vma), anon_name)) { *prev = vma; @@ -149,8 +150,8 @@ static int madvise_update_vma(struct vm_area_struct *vma, } pgoff = vma->vm_pgoff + ((start - vma->vm_start) >> PAGE_SHIFT); - *prev = vma_merge(mm, *prev, start, end, new_flags, vma->anon_vma, - vma->vm_file, pgoff, vma_policy(vma), + *prev = 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 = *prev; @@ -162,7 +163,7 @@ static int madvise_update_vma(struct vm_area_struct *vma, if (start != vma->vm_start) { if (unlikely(mm->map_count >= sysctl_max_map_count)) return -ENOMEM; - error = __split_vma(mm, vma, start, 1); + error = 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 *vma, if (end != vma->vm_end) { if (unlikely(mm->map_count >= sysctl_max_map_count)) return -ENOMEM; - error = __split_vma(mm, vma, end, 0); + error = vmi__split_vma(&vmi, mm, vma, end, 0); if (error) return error; } From patchwork Thu Jan 5 19:15:58 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Liam R. Howlett" X-Patchwork-Id: 39757 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:4e01:0:0:0:0:0 with SMTP id p1csp458377wrt; Thu, 5 Jan 2023 11:19:02 -0800 (PST) X-Google-Smtp-Source: AMrXdXv6S3uUWlD4T0VF98nCt6HFQBHnlCDTsOA+CittBeuxjM3nHn5ORlrPmPfuJDTDE6SqTWKo X-Received: by 2002:a17:90b:2314:b0:221:71fb:388f with SMTP id mt20-20020a17090b231400b0022171fb388fmr60856349pjb.35.1672946342581; Thu, 05 Jan 2023 11:19:02 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1672946342; cv=pass; d=google.com; s=arc-20160816; b=xbTMdMvP2LR/GV75zGuajX+MXu3wj0t6JWIsN+c2UzMYvSILSWnR6+vxm8im1RZMhk U9W/YMAsdhvCM14FR7zoxv88fL2rE7lUi6Srtb2r895tla/uNEMfBuvpX7MTt5K3vtYk C9pggrvn3nSTfjH+awFUOzbmowK0JTwA9Ci3Fqb4Jf7xbJLWTonxf8rMWiWjb+1vQdRN D0Q2NK3HnGMXf38jKPXSYjbSR++KyZadGeB/UWNtMBQIPeuCJIz4sxP5Y8DNayStlBew 1utju8aijkxqsfBuWVf6/XEJXCIiNzaDn65Abn9B4Ug+Ryvy8T56Ru0JAtL7KqytpfYO Qwqg== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:content-transfer-encoding :content-language:accept-language:in-reply-to:references:message-id :date:thread-index:thread-topic:subject:cc:to:from:dkim-signature :dkim-signature; bh=A8EhhluF1/bHGEprawBT8nXjfiUMfSvpckqA7Wu6mU0=; b=tBRZBFEkMrRXWkfYTvOH7R5cnxmLRzVE3qOhf3pyiT/dRDftx0pxZL65Q/IH6dWwh4 e/CyNIn6hoCC55IxGks1HKxuuJMZ0G73BZ3dVPkwKGJ0lTqiF90V02eg1T7qJ0Bq/ZGq 09SiPPP/smNbCz8I4ZMz6l6g3yLPvaE1GxY8xvrWhBHOav5sszZtKA84Xu/VgJzISHvP 3vAUPtJ5wAA7StGjw6o14qp0DG35TbGoZk/Ij/OzGQ08rkCPOBkqQCPYwzRQmQJi0exx CIOHhc6n0mQB14eGc6+eNlLCynO5hvd9b5vozgU/FS5AKt3+VkXhDTH5jJRgL1WCjUG6 Ec3w== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@oracle.com header.s=corp-2022-7-12 header.b=cUqV1TAR; dkim=pass header.i=@oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=A33dSLBI; arc=pass (i=1 spf=pass spfdomain=oracle.com dkim=pass dkdomain=oracle.com dmarc=pass fromdomain=oracle.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=oracle.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id q8-20020a17090a1b0800b00218cbdb0de5si2702303pjq.72.2023.01.05.11.18.50; Thu, 05 Jan 2023 11:19:02 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@oracle.com header.s=corp-2022-7-12 header.b=cUqV1TAR; dkim=pass header.i=@oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=A33dSLBI; arc=pass (i=1 spf=pass spfdomain=oracle.com dkim=pass dkdomain=oracle.com dmarc=pass fromdomain=oracle.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=oracle.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235665AbjAETSL (ORCPT + 99 others); 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/ZrvLpD6fTOc?= =?iso-8859-1?q?drBURcQZbb7xFx2eO5N76Rq3dGaYCNLfj8eC8mN9MUxMv1tNqubZPYDJ1Nk7?= =?iso-8859-1?q?euJn+fx+pt0g79Rbr29ONERqykusuhGGKzn4YTiDY22TNSj40Jjd1ArY1dh1?= =?iso-8859-1?q?wUvt0tFYpaguSFgv0HE0KvZdv0tjY////hhzn5Xvlhvwv5i5CI/j2Vmbka0r?= =?iso-8859-1?q?8TVkPRAba+qoc1NABFqNA/pf7mK+iWT4u+T2g8JmJy4QuqXr46B59ucHE2dD?= =?iso-8859-1?q?7wi9WDII/RnZitYByIJ8U5NfGAL/TmMu+ZHn+xwxchOXX69H2UcG1TIGecA2?= =?iso-8859-1?q?c8deKCaobJ3MyuTmcM49R3nsQJg+p+jHImrC8XEBS8Wwt+bEbYc1HezJa0e4?= =?iso-8859-1?q?0kKUxK3v0w1WjDlTHuomX/ldQIDgpNltq3OtnwWkZfF3bx7rWy5bJJl2lp8h?= =?iso-8859-1?q?Mu4v+RZt/PBLxeYuN8s3PXALYhD3LpEBGk8nfyhJWnP1tFaFT+QDkzE5yA3+?= =?iso-8859-1?q?3ddSns3z4r5kVDzujvkBn84B1HghipgxipyUjBXN4ENPUxW4gvcvrVvyvBun?= =?iso-8859-1?q?5F0nOVm5cNkZoHXVUPg8n7ZP/c0YvlypS7rpRfNuNuxmqJ5jgW3hmQFAXjxa?= =?iso-8859-1?q?crD3N8IeiTh+6ahlHNctMjkH3CE//r+Td9tAdpjgBNxy2hIFTgor2+KqFuCD?= =?iso-8859-1?q?AY61TsQgNh6jtpeYlIseDZO0CqVg5omoZBrChUcrSKRv2u/ZxlDzvIAsdtMu?= =?iso-8859-1?q?6nGieY49wp65Fy8PJanvi0YBsJvTVyspQ5rVYHi7GAvdRXNtJdM4uBNd2W2x?= =?iso-8859-1?q?0HwVKinpXLpOa5XDcIaoNZdCB+lRfRwjZPJLsKjg3/XiFq3e3S6737zeGaOe?= =?iso-8859-1?q?cI+cJozR3vXT0AXMgcsjliyGhb/Pe32K1/6vZWrk1/6xJ3loqJ2/xjQF2hpS?= =?iso-8859-1?q?iEfldYLRinL4Xqx/0ao5VCs/E8YuhZMkfUVjGixrFxTpvqfj4L6bvT6LfwV+?= =?iso-8859-1?q?N0gzUuNhdQczwK0+doiaMT8WYAMtyQfUu/H1izp3+VBbH/lW6O8g8Mrd8XZm?= =?iso-8859-1?q?K+uXSisodyFnvrq0xj+bSQVeZZAx2vUgJGR1uKt78SI3MASnxVRSTsGpiuIe?= =?iso-8859-1?q?yS+1nG6wWaSiHG0S/dARwoo5Uze5GE1yXzi87cqzKoeG1GXYrTCfc4qXlCKZ?= =?iso-8859-1?q?Y/y9chmQVIPPXEpsEUXy4AIh6m83hVCwnEHI8S4cuHuTthnMxSylwBWHuylm?= =?iso-8859-1?q?a0Aw9sOC8REeODsNf79Z+S0QTr+1sSSkwJCOt5bLl+JDR77wsHXvDad1tQLc?= =?iso-8859-1?q?VjsGC4kOVybKWVoIlqsJENwWDclpmEJm9RhDmgIeQEq/3B1A0CA1wARvIGwc?= =?iso-8859-1?q?s6T8KsE5+6pRBf1wRG2xsPG5yFAT+fLCw8pMqahuEFHDqPZFstYKMnK+g4C2?= =?iso-8859-1?q?g9Uo+j2ZxoisLrRmYN35DiDluCPfeFqLX+DJ70uZcpRfSQjuaLNNvlB7Ms5t?= =?iso-8859-1?q?wLw3jd7TZXIYZQQFQVbwM4XCeYEHgtT8v9KyjiUaDRRD9oezgXuLpWUT6dZ+?= =?iso-8859-1?q?Dor+iBwuJ0uCe2I3d2SKh1aT/ovdCA+SISUIflawKoOqKmNTmiRhbMQCO0xs?= =?iso-8859-1?q?/IQJTAk5KbogDN8qKJG+RLODc5jvr8xJFe0ddQA=3D=3D?= 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 X-Spam-Status: No, score=-2.8 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_LOW, RCVD_IN_MSPIKE_H2,SPF_HELO_NONE,SPF_NONE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1754211384397860921?= X-GMAIL-MSGID: =?utf-8?q?1754211384397860921?= 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 >= sysctl_max_map_count) goto map_count_exceeded; - error = __split_vma(mm, vma, start, 0); + error = vmi__split_vma(vmi, mm, vma, start, 0); if (error) goto start_split_failed; @@ -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; - error = __split_vma(mm, next, end, 1); + error = vmi__split_vma(vmi, mm, next, end, 1); if (error) goto end_split_failed; From patchwork Thu Jan 5 19:15:59 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Liam R. Howlett" X-Patchwork-Id: 39761 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:4e01:0:0:0:0:0 with SMTP id p1csp458576wrt; Thu, 5 Jan 2023 11:19:37 -0800 (PST) X-Google-Smtp-Source: AMrXdXuf/Zbt0M7VCaA9RQAR2LIbrAlbY+f3P9P5H9KCD75A4r0T7v6W4jaLZk2GH32CQUAWK722 X-Received: by 2002:a17:90b:78c:b0:226:3b15:6aa0 with SMTP id l12-20020a17090b078c00b002263b156aa0mr25780936pjz.3.1672946377137; Thu, 05 Jan 2023 11:19:37 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1672946377; cv=pass; d=google.com; s=arc-20160816; b=v2ZFQsISF9Ax1u2C625bIdQlWp8NysTHktGTC6FO9PNHrvKomaU4iaN7VvPdOn+0zH kLVdjfA9xP8iwyNMW2ccrPGf6BOwTN5LuDB0dBkjEZ7HI5cpkQhUQhZhb/P+qpu4rOzM sTQkLnl78Ghap4wsdScDIsfVFe3lLxNT+0dIbr0NBUxkSHWBTrUc3A2VywWFADoJ37jm 0gtmxmK4tFlUJFf/MFKSsNPnoaGQanf1Hx+kiqiRQ1qqnKglhvbRWI851NzLaxYc+uDv QukOhBhxqiC1XmZDnABUpJq4X8w7KLQS5hLim1xL4UUMcVoyV7xir0HbNLTYDjsx/kjY vUrg== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:content-transfer-encoding :content-language:accept-language:in-reply-to:references:message-id :date:thread-index:thread-topic:subject:cc:to:from:dkim-signature :dkim-signature; bh=Zr4FwLzE/b/njzhC63eZIFLKmXoBo0cX3/2jU2egB8I=; b=L6DwN6uYtPug10Y/on2Zs0VALuLSEcIdZNAI5uMnUkX04DA4YGBFlMA89mNw5PXX0P NDcGDIRVoH/NuiJDnnJ43FVNhB0vDECrIJuK2fdO/EjlRFlLzMD6HTzmD62U91ahNa+p Hz0QhMX0yXR+hMdJzUGDJasWntHHg3Mg9OyrzQaurlJFKH44tzktEEmFOrRe1NBm+d7x f/j5fe8ko3pT4a0xAiGIefUISnAKgJ5Dwo07+/tPd8vihdGxPV1gccBOBnEXTfQHahxg IHBA6vd7RQuUoMhKmBYn5kgVkC3o2ZgZ6Ulc0KEnoaav/HIR/QGcz/02vUUj+tL5LTTS rgsw== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@oracle.com header.s=corp-2022-7-12 header.b=cUPdy8N1; dkim=pass header.i=@oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=FbBJvz2I; arc=pass (i=1 spf=pass spfdomain=oracle.com dkim=pass dkdomain=oracle.com dmarc=pass fromdomain=oracle.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=oracle.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id l4-20020a654484000000b0049d3383238fsi21996513pgq.436.2023.01.05.11.19.25; Thu, 05 Jan 2023 11:19:37 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@oracle.com header.s=corp-2022-7-12 header.b=cUPdy8N1; dkim=pass header.i=@oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=FbBJvz2I; arc=pass (i=1 spf=pass spfdomain=oracle.com dkim=pass dkdomain=oracle.com dmarc=pass fromdomain=oracle.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=oracle.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235689AbjAETSX (ORCPT + 99 others); Thu, 5 Jan 2023 14:18:23 -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/?= =?iso-8859-1?q?f3oNcwTROAkFi7PkPhMz7mDXnlQ4O/KPRbfulP3b/4/31y6F9l/tA4/9R2k2?= =?iso-8859-1?q?4ZUrsyc3RqUNE374Ih2SvFLYAW1y7ST9O1pgOXkp6U3LPJYKj3CZFVH34jMd?= =?iso-8859-1?q?Kd2eV4WzjZ6WbCMB4gjzdzZIOIMAgWLwA/Bhf68jIKpzJJGDvq7XYftmI+q1?= =?iso-8859-1?q?NzM4yxKer1JQJ8XHTUPjAfdbNVAwRvJMtFwy5xEtZnPfxRl+iPrnapAPitfb?= =?iso-8859-1?q?MmxMhMGxARJ7kYYlM9uDUTW9jVcXY0YCg8g6qduilKVbfozCAdd3JowOgdz8?= =?iso-8859-1?q?f6zWdKgKK/aK0LVyxaMFunrQhfCZRlWxkDl3s0HcL9maDuAYWCwtYrtRFfyG?= =?iso-8859-1?q?69M5p/efFtvlAYBeTkGlrkJf6cADNeXz3e4r2IqZKfwlX1Rj/V/+OR6vx8QZ?= =?iso-8859-1?q?PCqE4gDa9l5hHtabqfThJaAvcwMN2rNhNBbt0x68EDkZqneDU+99foy+cn6f?= =?iso-8859-1?q?hM+rfn8rE27EuQuloAcR/rUHTDcmk0f25EDQdzcdBubQzKokJLWpHp+Pb+mU?= =?iso-8859-1?q?CgSLgBQIqiZmIz/4fhDpJsvMTrCmrdNf0WAEomm8uhbcKUfLBPQrFdPcDVi0?= =?iso-8859-1?q?nvYMGVztlSWCw+MPGBj2ZzIhrxXQvLsatNKaX0a7C7qUmzJ+mpx3Ei8EQgDG?= =?iso-8859-1?q?AVNxQUeJU5pW2nMEUO8ldInng5HzMga7YvM5+xwelX1SLlV1T10ZpgUVx50r?= =?iso-8859-1?q?TzSmgyK2ywmd7mUlXzSo6pazhoFzxTSkfOwx639FVK2+ilR0HPG5eaqcQ2AA?= =?iso-8859-1?q?auWTiaOQPKvM+PQAw115xoqk+D4HUeQ6r1oUkCissK1qajNcX9X0vFqoJpZs?= =?iso-8859-1?q?7ryo3YU7xjlKjn39Wpccth6c9J7CWKx9hDwr6IILkdKIisN1PxDjK3auSTzp?= =?iso-8859-1?q?4o3VJ+RwW4KKiGmK3cFGsJrT0vXNFI4JsbRNmNSLO8kpGg+SLQxE90OTy7mI?= =?iso-8859-1?q?odRsw67s1ywo+9AIOtkanMGW1rIn3N/AF4R822Dni7P0rb/idXrRHvxdJJdk?= =?iso-8859-1?q?P4g2juMI1eM8VoC3+a10LnSlKgS7DnYbZRclqW71MSppGZoRJt1L0yXprGuB?= =?iso-8859-1?q?bYBOf14PO4jvbeMVZSiqOlQ2RwtEI30yc5qXdcHv3YdHfgH57tynDu178zVa?= =?iso-8859-1?q?ob4QwGnP1Ey+tFNG5vE9idj3/nn9JFcsqTMcNY7MlfnnkmdrXAqMl3WAMOEP?= =?iso-8859-1?q?Z8OTzsv7kxsh51EajIrZ1f5L+D0RqQ6lgYq1SiUS0MMliOBLGbgRyJyQ+FEz?= =?iso-8859-1?q?ePsjLIm3kbEhHKveuu0ycj55UrX5VI0daTMG3ChVSqZjJmoLhnIZm81+qCzs?= =?iso-8859-1?q?eE5EmOjbKWWVekbwbA1x+hNeegLdTOq1C/wG45zmx6iIHGetOxVJgyTTByUc?= =?iso-8859-1?q?lrwF/IF11BFtxvjJQ26eSZR+aqSu4OhUL7I0GHfClKYU7xWp7/NAfJWVTEWO?= =?iso-8859-1?q?SJCeU3MoEoKmOepsiajURmN/LHnV4F2KLRwhGHRMS6ta8+SgupVqVWXqiNV3?= =?iso-8859-1?q?s21oidJorx9jh0mxRKkuk+pEabjYE481rdxrdix/0FiH5ltt6EF1paUMFDGx?= =?iso-8859-1?q?HRKZERfNd2/9+dJq8zOkMR1lYE/4Y4WuM+FuvgA=3D=3D?= 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 X-Spam-Status: No, score=-2.8 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_LOW, RCVD_IN_MSPIKE_H2,SPF_HELO_NONE,SPF_NONE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1754211420089803223?= X-GMAIL-MSGID: =?utf-8?q?1754211420089803223?= 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 != vma->vm_flags && prev)) { - merge = 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 = 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 = vma->vm_mm; struct vm_area_struct *new_vma, *prev; bool faulted_in_anon_vma = true; + VMA_ITERATOR(vmi, mm, addr); 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 */ - new_vma = vma_merge(mm, prev, addr, addr + len, vma->vm_flags, + new_vma = 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) { From patchwork Thu Jan 5 19:15:59 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Liam R. Howlett" X-Patchwork-Id: 39759 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:4e01:0:0:0:0:0 with SMTP id p1csp458510wrt; Thu, 5 Jan 2023 11:19:27 -0800 (PST) X-Google-Smtp-Source: AMrXdXvwr1NMADoPOMMZjxB/ZMvHw6wL8Ncl65BOvg14CJuE7dcwbkrd3siRfb6vWs3ZPxF8yY8s X-Received: by 2002:a17:903:258e:b0:192:903d:4b46 with SMTP id jb14-20020a170903258e00b00192903d4b46mr29271208plb.32.1672946367472; Thu, 05 Jan 2023 11:19:27 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1672946367; cv=pass; d=google.com; s=arc-20160816; b=BUagAZqYeCmKPHB+9/al9TJlzbjWV0UcFYN/XtSk+maWRMB/ki3veyzGB78Zydz9eM lCJUEyhrMxe4FZpuMMZVPgXN82TqnnSO9lNQDchAwOrST3KMibmjdyS1obKJh1uStcUA e1WieyrBFwx9KGCHbf8MXQJgBVRw3FPF01CPZGdrQSape83XBu8GqdUTVdy1iq+9uorx CMM2dfqhUdaQgNtFYg65PoPBU1CkN+xC0L0fsbv41OCTyEpvi7our2fP5aDuqmp4+S/A UaRuwl+9G/AvP9487f8dwfSeJ2vUHl23zYLG0CfMEaBuapm3BCDVWPStGgteY52Oq0CR 6AEQ== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:content-transfer-encoding :content-language:accept-language:in-reply-to:references:message-id :date:thread-index:thread-topic:subject:cc:to:from:dkim-signature :dkim-signature; bh=22Z6OpYufdBtzxSvf9B3LFJ2NyY1sjKM0+x62TTuiWc=; b=tQFeSS9oDGbsR8+rsbpqt3ZrEpyusKbFvHm9XurdgSR3yZk3hfQk4HJmztW6qi8b6T iP0v3DcafK12CFkTYgZc7ZTzhy98MmZGSPX4cH7Is4+QPVTiHfrGei8SQBZMMWWYjt/C Ta/FOjb02H3nIzwloDdxZE2qXS/zSQyIo8/QOVFnKkvzQQxmxfDk/OtIkDHgZcffrxki ibFm/biVu1Uw9gpOHGkrwsukBs3oJfZFnmisOuPHiPdhlNY8dbqHsj2OdKAtMRarD4LT McL8q+vg3cBZSi9Bzn8HiXYeuOJ/5kFVCo4zilwKvDHgzjOgtLBvVBfYob7NhW/Ydwif Ukew== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@oracle.com header.s=corp-2022-7-12 header.b=UHllwHGB; dkim=pass header.i=@oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=LHGWNTBV; arc=pass (i=1 spf=pass spfdomain=oracle.com dkim=pass dkdomain=oracle.com dmarc=pass fromdomain=oracle.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=oracle.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id w17-20020a170903311100b00186e9ff4edcsi35780045plc.408.2023.01.05.11.19.15; Thu, 05 Jan 2023 11:19:27 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@oracle.com header.s=corp-2022-7-12 header.b=UHllwHGB; dkim=pass header.i=@oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=LHGWNTBV; arc=pass (i=1 spf=pass spfdomain=oracle.com dkim=pass dkdomain=oracle.com dmarc=pass fromdomain=oracle.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=oracle.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235615AbjAETRh (ORCPT + 99 others); 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/gjq5JUk?= =?iso-8859-1?q?4U0DDCKcEwBUKWPFRiMMShaDY89nAVonSFmC+MpNA5Bhqic86WiIwfCqnuFN?= =?iso-8859-1?q?XCprCAiB7mvBYHpVwMmWoFBKx5gcXzrvVP19Ex76MbaoHm8lZgAV+Sy2Z1R3?= =?iso-8859-1?q?bpGZUUtaZCC7xyPjXHEKanUACn6rguFm2mfNp1wbb7xCqtOfnMw0CexA0U62?= =?iso-8859-1?q?GxpqKhmHUU9gtKXbPnXnro7nUaySzgpYkle1OQ+tCiubpa79a3TL9N4VA6uK?= =?iso-8859-1?q?nDTXwg9VaToe0ZTZuj3bmTDz4PVbQCz5+LcYl3CSGPCyH0Uea11kabGyXEer?= =?iso-8859-1?q?EL2Ohj/AsQt4Hkym6DtTFegBo3e2zQ+yWPsjvWIbql2MOVKJYLLP5a5SWIsT?= =?iso-8859-1?q?iFF20ZkzUvopKpmIBkfkK4BajNIqUyrAWK4jcMZrMFSbWBlTvUwqIsKxOKq+?= =?iso-8859-1?q?iiZgxhUefkrrENh9/jsaLTkb6IK3MZ/qaRio+7/7/f9e6IH2T86rWBdolpYm?= =?iso-8859-1?q?KhVGvwUEKUOIJYmOj+Wp13YLPGa5ee4BRDoe/fD5AyzEZ48y+5Eb/oC4h2ZI?= =?iso-8859-1?q?GuuDKKSJTQVft2VjQ7aNcW+A4tH272Rqf2WTpcg7WJjiYzgpdYKeSei6hUT8?= =?iso-8859-1?q?57EF/nGnmOm8aByHtzzyHzELeL3uIcYYXZS0PPnqpXGw8W1Y1EQkC16iFID7?= =?iso-8859-1?q?p/mw/0wbOPEeHqwyBLSgGaxGC4DFSf9nxArMLnohmUjzFVtSWYCwwDOoxWYr?= =?iso-8859-1?q?bLroBmxxmW+t86mfcr3eBiPEbnYEZsygoJOXBSqzYsuCHppFFznQvPuQsp0V?= =?iso-8859-1?q?u4QBP56JPeoO/tzIcp2PS/nphRnUKzEuvR1Nyr7FOs7CsP38aPtky0X/aN+W?= =?iso-8859-1?q?URcSJa8iaoGPO3aud7FCc29eYuOIDGi1wjV8jbDTA3RsZnjsP8FgGFAph8qY?= =?iso-8859-1?q?EghrpuIg09Xg5xeu/mQ71UTl4ibV97IgZ2nM4rj6OYqRkf39d6/ca+m69kvD?= =?iso-8859-1?q?j21slOLxddl2TaeDV0VmpIUL5CQyuwYhhCECcHnuZA5iZQlQrArRsSt01mrO?= =?iso-8859-1?q?wJVykEVPCwBiLnuxEkFC15UgXZVo2KA4n3KtpZGcmahq0qlwfzkD7ywFSCR7?= =?iso-8859-1?q?As/YvxqepP5pGmvO8EhVTZVho895+yHcq/ExCQnLvwbBr8eAyKqkbXO5I1Aq?= =?iso-8859-1?q?pM55bGWo/Hv3ai9VpMoE/2qF1ouIZqDR0Tik1r1RMFE+rHT0Znw2NSf+oYge?= =?iso-8859-1?q?0PAsxHhKRiC0kak/c2xbmhnZC6KUCqFybxBC7cWM/YaSb+ChGZtYn9EBr1II?= =?iso-8859-1?q?dHT16Zy1l2WVY9HaR2jGJJRCHZY8W4/bVcFRIj54yJ8By5xa2TOBTAMs8K3t?= =?iso-8859-1?q?MI7i9BM4ORTjTT3PmJkiAufpGfgE2Vk4ZBZO1cAsx2CvdvQjcl1yNBpygFY1?= =?iso-8859-1?q?7TT3LbtrG2u3ivUBHks9vf9A9BVoAmX6RyaPch8GeUTcJBQJfTFEev9vkTxw?= =?iso-8859-1?q?3ydq30ndbL1Qm+AjjklWwMj4UIk9tbJkphdbkYae4zB2VzWGY+33Dry0IOoG?= =?iso-8859-1?q?MfkTJOCYqG+Q3Ge44ZkahQk/N6z5Box4YDMYb+HEHXVvnSteeK5qFk/KSfkR?= =?iso-8859-1?q?ZsJCx6xrXuA4qnHXWPbEtBxePzsAj6JCd/1GNWg=3D=3D?= 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 X-Spam-Status: No, score=-2.8 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_LOW, RCVD_IN_MSPIKE_H2,SPF_HELO_NONE,SPF_NONE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1754211410155936701?= X-GMAIL-MSGID: =?utf-8?q?1754211410155936701?= 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 = addr + new_len; pgoff_t extension_pgoff = vma->vm_pgoff + ((extension_start - vma->vm_start) >> PAGE_SHIFT); + VMA_ITERATOR(vmi, mm, extension_start); if (vma->vm_flags & VM_ACCOUNT) { if (security_vm_enough_memory_mm(mm, pages)) { @@ -1033,10 +1034,10 @@ 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 = 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 = 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 = -ENOMEM; From patchwork Thu Jan 5 19:15:59 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Liam R. Howlett" X-Patchwork-Id: 39765 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:4e01:0:0:0:0:0 with SMTP id p1csp459177wrt; Thu, 5 Jan 2023 11:21:10 -0800 (PST) X-Google-Smtp-Source: AMrXdXvdYHCiFu9xfxwQif0VOHktlbb24Kdg41PmGBMaPnCBVN09gIjFjjaC6Cxa5CPh5AkJ7CSs X-Received: by 2002:a17:903:2447:b0:191:1a7c:ef9f with SMTP id l7-20020a170903244700b001911a7cef9fmr79512989pls.1.1672946470603; Thu, 05 Jan 2023 11:21:10 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1672946470; cv=pass; d=google.com; s=arc-20160816; b=sXE5isJ1PGxajJSuBS2QYM0Bb0iqfGk7y/uBmcv8UO7uarLiL87lwyxyQxn+BAhk/O FKIcWc/Pv/1wLnc2IYWdbmXy3/RxFbAJRJrH7+ebA6iBjWKcy7bUAvsPbimMzbVNedol 1OKpW7SQz3NCiFs5U3w/uOf/x16VWZGcUEsVK7L9YhX1tsyLzflKSNNGdrWaijKCM4qG 2YnoLnjmHJ/i/yHLqHhzrpiOrx9SawKDrKwZFnu2WdXcyZ8bd2XhdKrxKJsDA8Gxew2Z 40EsVPFeQo0zAlJVQ6TbdWj4FfK6xUrJbnmm9KOn9WEKEiTVmojcmu0t61nnlIVTN1XA LmsQ== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:content-transfer-encoding :content-language:accept-language:in-reply-to:references:message-id :date:thread-index:thread-topic:subject:cc:to:from:dkim-signature :dkim-signature; bh=5kGdcRd7sciAlJGxfOjIvnP/V/UXOl2Higa/J0aWF18=; b=y4wY4FxqdzQhDlChJz4KM9W/CfdYhzcgSlLOcuLRxxEjHNcSke3engY8hqC/gl083r WHZIfmEJnAVRy2sh/Y2AeBdfST1HhGsSz1PQBUTHD4FtK2AajYvaT+bg7W6vAud+rYhu tll0LWhwGfhFFPwnbRUE8HRWinvs5Hvi/mcXhDDY7moM//Uthqg7icd3i2kJ+Tni/dMU EpksAu3MS/rBMiCCWcthC/mK+s6zW7iwYEMiQ6g2/jQXH8Ok8kp0zJl0KHtKXdDS7rng fbtbnQb4ujAW4I3B+MtLBBBCKM2Ko4fsTnU44Cymt2ZCcXEVcQFPXY2UcU4C7/5Fk3Zs t6BA== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@oracle.com header.s=corp-2022-7-12 header.b="tyNXV/Im"; dkim=pass header.i=@oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=ukLlbKbb; arc=pass (i=1 spf=pass spfdomain=oracle.com dkim=pass dkdomain=oracle.com dmarc=pass fromdomain=oracle.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=oracle.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id h15-20020a170902f7cf00b00174eef66680si29827924plw.120.2023.01.05.11.20.58; Thu, 05 Jan 2023 11:21:10 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@oracle.com header.s=corp-2022-7-12 header.b="tyNXV/Im"; dkim=pass header.i=@oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=ukLlbKbb; arc=pass (i=1 spf=pass spfdomain=oracle.com dkim=pass dkdomain=oracle.com dmarc=pass fromdomain=oracle.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=oracle.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235729AbjAETSc (ORCPT + 99 others); Thu, 5 Jan 2023 14:18:32 -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+zkQCWG3uQObULX0Mr?= =?iso-8859-1?q?J+JJ1YOU2/Ty+fwp3wl0cx1GOkGy9L2U7a7KQCVhA4u4/7UZA7Aq/VbhkUzS?= =?iso-8859-1?q?Z3Iyx8R7xzYji1J7YixR2mZntRJheuzzkjTCe9zdgrAvTV9a+IJLX//eZXwW?= =?iso-8859-1?q?jDZUNZkqPnWe8mXlrBLCFfBcMZdo0s+GOih6KIN2n8H9+R6bWEQa+ZjyEdAI?= =?iso-8859-1?q?bpua0Ea4EdVF9EdvqFXTUpKeTUawPUwmptBZlqh2SqdG021s8ZXSxTVYts7x?= =?iso-8859-1?q?p6Rqck9dhJZWthbwF7zl8mq+7f7mTt+rzgHTaJpa1m9898Kvt9xl6QEv4n/j?= =?iso-8859-1?q?cSQikjMXS/tTO09h+AzolH4TfKVl7g2IPTijFE+eIXO8qdw7J1InhMtHD3FX?= =?iso-8859-1?q?vYGYylZ3opBCrHgjEIF75iNYVmWPXgVpkpNnH4XRSq/UmACVLfWqZwdicdcu?= =?iso-8859-1?q?PWK5azNsYo2H+unzujbGObK6K6ddyN2R9C2bKKj+MRRn+qa1ZATooOG7X3UF?= =?iso-8859-1?q?wkTGkfdEOiy+3HvQH23F/EPGUAlKBFTduZBe7sfEJYbMgg6bAt3/jkrODPvr?= =?iso-8859-1?q?i9MNpYZJLm+fe0bgUbUn0Dd63lUZpgaMDXluRgPoj8oE+P/MH2ah11QU9+kX?= =?iso-8859-1?q?wfkV9/+7J4dmK2tHfTYGLVaQnF6F1Z2B9s6un65+t8rKd7ZEsrPe/P0PTJTj?= =?iso-8859-1?q?AZOm/Qd5wDbGRCTYVlXTGWKBqiSVtnoiIAmpz5DDdbj9I8qGBQlXIr7e9EuI?= =?iso-8859-1?q?QauqN6ac8l2ZjavxCKkJAQGyIlLZ0/F1Azti3726OnywwKyizSpwODP54/jm?= =?iso-8859-1?q?3MZWty91Qnxyq7BmxLjAoLnzmO+8O+s8dskrfXjUT1jeSR+Rj+W+UrzbfXKG?= =?iso-8859-1?q?6fTHD0phwQlQL6TDkWrvLdmjiasiXXh5ieTryGYnmv0JQC+P2o7kW+/S4e8m?= =?iso-8859-1?q?fjKrTMYQLKzXFOwmTC0+d+80VEmXcmOUSJxo8C+4QavzTYRtNxvohJqp6XNA?= =?iso-8859-1?q?PST9BkJhiZvFCln1IUm7x4UcNBzIgz90/kCe3+WfYRhxOF1KoQdDCc7T4OZ+?= =?iso-8859-1?q?kI01OIqc3ZMVnKIJfLb5CDxZ+1V+o/3Epn84AXC8PtGWp4ZlTMkq2HPpOp71?= =?iso-8859-1?q?uiEgEkp1/AT/sNuXzvK8f9BqQQWQhg1pOIZI0q/UYQflJ2uiDl2qTuniP85f?= =?iso-8859-1?q?xsTNV52la/3jow/VKPqclxL9tmTlH9ldEfHMmVnh/UP/51x5SNmCW0C8act8?= =?iso-8859-1?q?LtdKJtg+CRcv0gPxAfAGXozjqwWrQapOiFxc+RswlP9aPROXJQW2h+b00uzP?= =?iso-8859-1?q?q+Ju+p5JAE4Yu+xn7hqFz9dMfIbcWOvHfYhe8R6rc9wia71jWSkd5MN1ISjA?= =?iso-8859-1?q?2anjQtwyHTsZrDNFXI4N6dqsVqEwYQImrS4Q+xSPmliyhkwbVoUiQaDkjwBp?= =?iso-8859-1?q?h61DcY5scoMnUP7fbbbAbbAuJ4f5QF/Y6rKxQmIYMmdZAg73cPz7RLxwVu5I?= =?iso-8859-1?q?bvKDiAKMsxW01//BPCOCnLrsv39ppq6WACC8y/KKuw0p9X4D5a9Kml8z/Coo?= =?iso-8859-1?q?GnQVVFVTrq3Lp5V7pRAFC2bMGKm3E20k1qybsP99LOOknjTuWRcav5GmO/p8?= =?iso-8859-1?q?VADNPPesegnNBqXGCoSP0M5FaAlcAsHAxvDmx2g=3D=3D?= 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 X-Spam-Status: No, score=-2.8 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_LOW, RCVD_IN_MSPIKE_H2,SPF_HELO_NONE,SPF_NONE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1754211518328155849?= X-GMAIL-MSGID: =?utf-8?q?1754211518328155849?= 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, struct file *file) continue; } new_flags = vma->vm_flags & ~__VM_UFFD_FLAGS; - prev = vmi_vma_merge(&vmi, mm, prev, vma->vm_start, vma->vm_end, + prev = 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_ctx *ctx, vma_end = min(end, vma->vm_end); new_flags = (vma->vm_flags & ~__VM_UFFD_FLAGS) | vm_flags; - prev = vmi_vma_merge(&vmi, mm, prev, start, vma_end, new_flags, + prev = 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 = vmi_split_vma(&vmi, mm, vma, start, 1); + ret = split_vma(&vmi, vma, start, 1); if (ret) break; } if (vma->vm_end > end) { - ret = vmi_split_vma(&vmi, mm, vma, end, 0); + ret = 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); new_flags = vma->vm_flags & ~__VM_UFFD_FLAGS; - prev = vmi_vma_merge(&vmi, mm, prev, start, vma_end, new_flags, + prev = 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 userfaultfd_ctx *ctx, goto next; } if (vma->vm_start < start) { - ret = vmi_split_vma(&vmi, mm, vma, start, 1); + ret = split_vma(&vmi, vma, start, 1); if (ret) break; } if (vma->vm_end > end) { vma_iter_set(&vmi, vma->vm_end); - ret = vmi_split_vma(&vmi, mm, vma, end, 0); + ret = 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 *vma, } pgoff = vma->vm_pgoff + ((start - vma->vm_start) >> PAGE_SHIFT); - *prev = vmi_vma_merge(&vmi, mm, *prev, start, end, new_flags, + *prev = 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 *vma, if (start != vma->vm_start) { if (unlikely(mm->map_count >= sysctl_max_map_count)) return -ENOMEM; - error = vmi__split_vma(&vmi, mm, vma, start, 1); + error = __split_vma(&vmi, vma, start, 1); if (error) return error; } @@ -171,7 +171,7 @@ static int madvise_update_vma(struct vm_area_struct *vma, if (end != vma->vm_end) { if (unlikely(mm->map_count >= sysctl_max_map_count)) return -ENOMEM; - error = vmi__split_vma(&vmi, mm, vma, end, 0); + error = __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 long start, pgoff = vma->vm_pgoff + ((vmstart - vma->vm_start) >> PAGE_SHIFT); - prev = vmi_vma_merge(&vmi, mm, prev, vmstart, vmend, vma->vm_flags, + prev = 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 != vmstart) { - err = vmi_split_vma(&vmi, vma->vm_mm, vma, vmstart, 1); + err = split_vma(&vmi, vma, vmstart, 1); if (err) goto out; } if (vma->vm_end != vmend) { - err = vmi_split_vma(&vmi, vma->vm_mm, vma, vmend, 0); + err = 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; pgoff = vma->vm_pgoff + ((start - vma->vm_start) >> PAGE_SHIFT); - *prev = vmi_vma_merge(vmi, mm, *prev, start, end, newflags, + *prev = 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, struct vm_area_struct *vma, } if (start != vma->vm_start) { - ret = vmi_split_vma(vmi, mm, vma, start, 1); + ret = split_vma(vmi, vma, start, 1); if (ret) goto out; } if (end != vma->vm_end) { - ret = vmi_split_vma(vmi, mm, vma, end, 0); + ret = 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, unsigned 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_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, @@ -1081,7 +1081,7 @@ struct vm_area_struct *vma_merge(struct mm_struct *mm, struct anon_vma_name *anon_name) { pgoff_t pglen = (end - addr) >> PAGE_SHIFT; - struct vm_area_struct *mid, *next, *res; + struct vm_area_struct *mid, *next, *res = NULL; int err = -1; bool merge_prev = false; bool merge_next = 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; -} -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 = 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); - return tmp; + return res; } /* @@ -2286,12 +2271,14 @@ static void unmap_region(struct mm_struct *mm, struct maple_tree *mt, * __split_vma() bypasses sysctl_max_map_count checking. We use this where 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 = vma->vm_end; + + validate_mm_mt(vma->vm_mm); if (vma->vm_ops && vma->vm_ops->may_split) { err = vma->vm_ops->may_split(vma, addr); @@ -2331,8 +2318,10 @@ int __split_vma(struct mm_struct *mm, struct vm_area_struct *vma, err = vma_adjust(vma, vma->vm_start, addr, vma->vm_pgoff, new); /* Success. */ - if (!err) + if (!err) { + vma_iter_set(vmi, end); return 0; + } /* Avoid vm accounting in close() operation */ new->vm_start = new->vm_end; @@ -2347,46 +2336,21 @@ int __split_vma(struct mm_struct *mm, struct vm_area_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 = vma->vm_end; - - ret = __split_vma(mm, vma, addr, new_below); - if (!ret) - vma_iter_set(vmi, end); - - return ret; -} /* * 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 >= sysctl_max_map_count) + if (vma->vm_mm->map_count >= sysctl_max_map_count) return -ENOMEM; - 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 = vma->vm_end; - - ret = split_vma(mm, vma, addr, new_below); - if (!ret) - vma_iter_set(vmi, end); - - return ret; + return __split_vma(vmi, vma, addr, new_below); } 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 >= sysctl_max_map_count) goto map_count_exceeded; - error = vmi__split_vma(vmi, mm, vma, start, 0); + error = __split_vma(vmi, vma, start, 0); if (error) goto start_split_failed; @@ -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; - error = vmi__split_vma(vmi, mm, next, end, 1); + error = __split_vma(vmi, next, end, 1); if (error) goto end_split_failed; @@ -2748,9 +2712,10 @@ unsigned long mmap_region(struct file *file, unsigned long addr, * vma again as we may succeed this time. */ if (unlikely(vm_flags != vma->vm_flags && prev)) { - merge = 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 = 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 */ - new_vma = vmi_vma_merge(&vmi, mm, prev, addr, addr + len, vma->vm_flags, + new_vma = 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_gather *tlb, * First try to merge with previous and/or next vma. */ pgoff = vma->vm_pgoff + ((start - vma->vm_start) >> PAGE_SHIFT); - *pprev = vmi_vma_merge(vmi, mm, *pprev, start, end, newflags, + *pprev = 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_gather *tlb, *pprev = vma; if (start != vma->vm_start) { - error = vmi_split_vma(vmi, mm, vma, start, 1); + error = split_vma(vmi, vma, start, 1); if (error) goto fail; } if (end != vma->vm_end) { - error = vmi_split_vma(vmi, mm, vma, end, 0); + error = 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 = vmi_vma_merge(&vmi, mm, vma, extension_start, + vma = 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)); From patchwork Thu Jan 5 19:16:00 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Liam R. Howlett" X-Patchwork-Id: 39769 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:4e01:0:0:0:0:0 with SMTP id p1csp459366wrt; Thu, 5 Jan 2023 11:21:43 -0800 (PST) X-Google-Smtp-Source: AMrXdXv/ou5ZxPlFfojsVckq3QporTsrFyzy0w96U3pyMeEpGFl416Y1N93Vs8+jEdh+h7U7A/k6 X-Received: by 2002:a05:6a21:78a0:b0:a3:960e:7d0a with SMTP id bf32-20020a056a2178a000b000a3960e7d0amr81202890pzc.58.1672946503283; Thu, 05 Jan 2023 11:21:43 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1672946503; cv=pass; d=google.com; s=arc-20160816; b=iEqD4amLTFZ3e1KnoECZkXHfYurZZz05R9duwjGGA9i+qXh31fZkWJe1wJMXXXAe9P L2a7FVwKgKP0zoGJyMhkM5Rlb21JPIM61IGL1QmmRiVL3M7YvIRhsPEFohKhuN6Gt7Ok sxEwHYIUyqNDfffkHGMZfZDbQ29r+xiZhgaCmNgBDG5lUc+lmwZ1BxiSo5NtJzYXtPOa p+Z92ZDesEAsbeo43WpHdbfvxW+J/m6UfX0e5rmgZDo5uX3pR+AOH4HETX6ac57Q2X99 aCUb7Qgaw9BRpes72bWJIvHtneM1rxQdEJWGKIDotsBq3NY4b/9JqHlFndp1HDj/OheD nxmA== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:content-transfer-encoding :content-language:accept-language:in-reply-to:references:message-id :date:thread-index:thread-topic:subject:cc:to:from:dkim-signature :dkim-signature; bh=vxu9/GSp2gjISoQa/VWxjVS2svQdljAFFuFyxND5ieE=; b=CarRtqlpMYXfyek1o+D/+/8qawmyhN2ZS6PIRJocLNIBcL9Mwlvl5OjQQpf/vDIoOx /iHF38ttNZtmM8+thWGD3DkvEBUizX1QrL1p/HP5j5NhR6gdHyAF/oQl7U1KiePCUjTU PPGVOSL5SmaGug3N3fdfAW13ICW4ppSuazYu6fRJaISMBILy8ZTu23MZbAXglBJdkr0l nYVoNtY6ytsWIBApzUx/V+1o9ZPCTrwik/la2mieE0P9cUoyLt+Oyg64/19eKqLyLR6E zkpJml5EckWOLcPitDPNnvrPE9mwgCD9oI9zgl1zM64tgAZK4I9XNiM0X8V5JvbhySxh HTpg== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@oracle.com header.s=corp-2022-7-12 header.b=0pDXVgG4; dkim=pass header.i=@oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=h0zPWCCz; arc=pass (i=1 spf=pass spfdomain=oracle.com dkim=pass dkdomain=oracle.com dmarc=pass fromdomain=oracle.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=oracle.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id m3-20020a6562c3000000b00478ad4955f3si36164672pgv.594.2023.01.05.11.21.30; Thu, 05 Jan 2023 11:21:43 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@oracle.com header.s=corp-2022-7-12 header.b=0pDXVgG4; dkim=pass header.i=@oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=h0zPWCCz; arc=pass (i=1 spf=pass spfdomain=oracle.com dkim=pass dkdomain=oracle.com dmarc=pass fromdomain=oracle.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=oracle.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235494AbjAETTY (ORCPT + 99 others); Thu, 5 Jan 2023 14:19:24 -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+I?= =?iso-8859-1?q?Uv//rquaxsr3xy9UfEH2u093MQkHKny2Opmt2MRe0RCA3ZOuKmunF9UXKTej?= =?iso-8859-1?q?oJShCEPhzwDPC031ZfeXOHJJdc2nVZw44fiIG2W84y9PzcAM3P3hfzTNjWwA?= =?iso-8859-1?q?g/zmvuWD2s8NLriMlotalMaShvLKw7pZvP9+8tqrVGCSC0PusArEAx1r6GGO?= =?iso-8859-1?q?IqMymVuVG+KX1dzc3TBRrgAKcFv3Fb/GVpxTvJlrZF/izHu2E+mpHm6GTtRV?= =?iso-8859-1?q?/ixbWoz0KOjtRqR5bfM02GjaS6nbPSyBZ/X9wFL+lVK9BiXpyctBY/EHW0XI?= =?iso-8859-1?q?YkWLPu6+o+ciiSJKZfFPoZQ5tRivB0wZhQa9DlkADuAbFf53FBkWoztEkeCB?= =?iso-8859-1?q?Fs3qu0Un2bhhlCcLnsMfzhxPWXQFog491gG8ESpyEKUv5e4r7UTrFXcOHsLK?= =?iso-8859-1?q?S+j+qdmFNHrdxmztQMmj5xIx6mKgwHNLDKxBm2MuQBhFveaeJl4HyEh+M+7v?= =?iso-8859-1?q?F7nRpqmpE/USG5ptymjsIsTdKo1RzxcS8ctiuRLiGsTAkaYuVtsjZ/QMuGhn?= =?iso-8859-1?q?CZH9A8aB1OrBv3f0rvwgIyAZMao466fhxCY/7C+tOQETtEmFaMS0Bkbdmz/b?= =?iso-8859-1?q?mQZygXCnpcUx9L2Fp3Zu+ND4cWSiLsWvfsDvWqL27dgGFSUwL8EDJ8b5kU6V?= =?iso-8859-1?q?r8rQXRxhiaV0D3odUnJNJELODj7tdVy+sWNq7Boo1KOf47vI4ncNWk3X/wch?= =?iso-8859-1?q?zhUuphJVFQd7NkT0cHd3bFNaUxb4QtsHxMMJBoY+4E4YS84Ud3pXoA/+aUxy?= =?iso-8859-1?q?T1/V7iINO+LmfBX0rKQ87F8Bl1MTxuUhJyxY9BBiCV6qNg9i4m85oGtrn1ZR?= =?iso-8859-1?q?Ih8YfEDC54TdlIYF6Sb1Mg5o81Aa158mbzBhcPJrw3mrPlEFFCfY6sS9zAbA?= =?iso-8859-1?q?Q8DQHguErn3KW5D5Ou1pa+XL9Mefx9r+qEZ4BBmEXcfWpqrs4ErbXvgnUv9m?= =?iso-8859-1?q?OY7bslGqoyzVNd3fuN84TdtOMX3CfAR42TLfOvAtS/HdNNQb3saGofg0Qape?= =?iso-8859-1?q?+DuSx0U6r8nVkkpuYwDjFu3yRegd3nHz36VaawayZEsVLSwI92MCVETC/tmF?= =?iso-8859-1?q?4VLuGHvaXJ0BqcolrnK30shuKGssCa7vqV/vlHWy8JAHr8I40jA4klrvykJj?= =?iso-8859-1?q?qmxgYD2LDlwO1S5Q6iAA9NZcNhdbL/+O1lV9Xg+sJSej81EWnKgN3BEEYRp2?= =?iso-8859-1?q?kiSnMsGUmlJIliT1Tc01KZTwX1+iJFwxEXUmEj0c/hJfTjNtEBpBadkD9Acm?= =?iso-8859-1?q?9Kyk9WVgnPxgOECR2JEM34WYGMxlF+9PlJCTAac6jYiVrNXtauwFED8H47F3?= =?iso-8859-1?q?ikzrj/Ujhe/HHRsR69dYKHOqLzEvpOg+MLdz3tHom95SPxGLarbQDbtHe1T/?= =?iso-8859-1?q?k0/8cxoZ2T2iC9yuk9SmsI79wiGaY3SKcXh9ae7yUzPjXnsW5RzhgShvRSBy?= =?iso-8859-1?q?Gn6WpVtxwKqKuqmp5ipWwiMkVTHN6y0LVUd3EvK3otcauIF0RyJQCAzgIzdr?= =?iso-8859-1?q?J3ApwWFP2EGx3QtslzBCpgYWVwyD7jA42mxGO/krRTZ7622oZFqLHwHQY/Ot?= =?iso-8859-1?q?IDFFFHwfPc7icVvGzO+BaYZIpUTxgM7KNPzl3fg=3D=3D?= MIME-Version: 1.0 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: =?iso-8859-1?q?DVzOlMjzB0H?= =?iso-8859-1?q?P6c/rqTp0i1D81/k6tgJ1/AZ8YT9IvydiZqtd2kURkHB6psg1V7Ad2/Vx0Re?= =?iso-8859-1?q?xQXi6lZ3lF1RIQQNz5bqpZ8vGhrtDpWJS3/KlT9XzLTcPq9iFLXuY5r3sb5Q?= =?iso-8859-1?q?+Wfe+oRSoFEVG13u/nV3/I8NI6KvHW55qJg3pxbZyuqOHTLhTgFR/+2V9uhf?= =?iso-8859-1?q?POMWwq+WE7PhSj18MVvngE5z/Wj5GmsVhV/N3z/pj/Su+j0OcmntTGyMbPAI?= =?iso-8859-1?q?wUEN/gKLV4c73QUhbxGmUZDLOOh0rJirUfyNOwt/bzCC4yQ3Yi4ihKggqRW3?= =?iso-8859-1?q?nA2cST2MNTmVLYjiBe5VS8+pb9ygJTRubDDxFjNw4KL01JN2dEBciwiT82wY?= =?iso-8859-1?q?RI6METXXQkrjZW6PSOxb5z2pZihfuJPGwgdy40n+Y5LqSBfZh0GYY79k1Xp7?= =?iso-8859-1?q?wGdRl6H1ByFmGHlhq2ynVU4zHEuKT8hcYDCN7f6aFKLFYTF5uxbDGTl9BFDK?= =?iso-8859-1?q?gCid3z2gvwgyolyKTlEQ7lVGesNmGYpW1ZdcgjjeL77fASPStxRm5oNMtN87?= =?iso-8859-1?q?YmKRd2OlVc5mjf67LnR+nxFe1o6H8TrZlt0oY9qovBMWCL9iLO6UcIr8Bn5a?= =?iso-8859-1?q?kMSPu6FuR0ZYZs7u7MsSb7I1Po35f2TiYyVS+MIeBeZRSJy0ltjzXN9fwmOO?= =?iso-8859-1?q?1bVXurSuxKXVvWgTuLkvnpD+YhVdqy2iLt3SVQ+5gWKaSFljTUgh+icMXLjE?= =?iso-8859-1?q?00rD1JbYh6fC72xDradR6YgbaZVK2i058dtut7L4X/H6jjbdUSC7QmcnY3U0?= =?iso-8859-1?q?50coNdC/wMmntZqj4kJgnLzgzvT7VTcD09+n0R8Zgi+Z4jf6tIX2JxIj27W5?= =?iso-8859-1?q?GMh5/urcg9BTcP7GfBbFRN6oOLhg6jD6X1jwQ3AbeEUhFNVjl/w9Gzx6CYRr?= =?iso-8859-1?q?xolZeiDXYXkoHVi0/SjgphFDnbN0By8RqTlbqPrMO6USXx3znuyQ7HqOETOR?= =?iso-8859-1?q?+20czNSVXw0SZOR+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 X-Spam-Status: No, score=-2.8 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_LOW, RCVD_IN_MSPIKE_H2,SPF_HELO_NONE,SPF_NONE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1754211552991818484?= X-GMAIL-MSGID: =?utf-8?q?1754211552991818484?= 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; mas_lock(&mas); - for (i = 0; i < nr_vmas; i++) - vma_mas_store(&vmas[i], &mas); + for (i = 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); } From patchwork Thu Jan 5 19:16:00 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Liam R. Howlett" X-Patchwork-Id: 39764 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:4e01:0:0:0:0:0 with SMTP id p1csp459013wrt; Thu, 5 Jan 2023 11:20:42 -0800 (PST) X-Google-Smtp-Source: AMrXdXsuld4kTtxsnUyLIHeyt7eZxzo121gjpSgVYQrvjGcj29glWn2GbPojxHnYMMNe417crHq7 X-Received: by 2002:a17:90b:4a8c:b0:225:a8f2:fa38 with SMTP id lp12-20020a17090b4a8c00b00225a8f2fa38mr51994448pjb.21.1672946442168; Thu, 05 Jan 2023 11:20:42 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1672946442; cv=pass; d=google.com; s=arc-20160816; b=PUf+uE5hs7xum5QFIjijrsdzmcwXXdf3K/I9DE0dS7hZdvmNAvzqHrBSxn/n7QsmXc MHGcoa10vgjKXnTMWRoJXcZ0c5pUq1YiCnr4GoF/dQsobfO42vELFr6jDsvow8/ELjqP cV+5xDFKGO7lRw5bL9G1RRFRSFCDGis0tdHoTRfLaqg/NfcGcIreJWY7+CklwXO7AqKc vpcEaHz+eA5yQ40AG+/gxekqDRsqs0wZ6sAAbCX52nTY+fztcHtT2SNin4sKRKi3nuqj 3gvavG47vl33EilmALeBkF/LC6+YUUNKX4nKbkwvAnoaf/iVADYWwKLSUebEzSh2+Efn jkZw== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:content-transfer-encoding :content-language:accept-language:in-reply-to:references:message-id :date:thread-index:thread-topic:subject:cc:to:from:dkim-signature :dkim-signature; bh=AFwaB2DSHd9hyJwJhLeWD9VEJD+3datyV3oyw6c4BwE=; b=Fuop07IsXt+4mtqRM8QwayGxtYxQBgCz92bcfWIEQl31t/pzn6m04XXeJaVZzjIQ+F 5pkQ/PKa1Oc0sHXsyrZkr7CYji6cgQgFMENYZ4k9/QjFZAgunZnGSTXOiTZQRCxN2S3k blEAP2r7Q9ofQj1mgzXKXulkybHSMOK4M7RfSxq2YnA0Uu0ENoaZemYDHSSV4Vv1P5qK cI+PY/casz8k6z6EmD+RqW+Iq8EJQiVQn0Lpt7dgCSOFj2o3LRhYDi1k7gTnx8gq+Mfc BmaD8P3jxdkDhjigK25AHikBjtKXK+PmAF8cf+WjWHbgz+a9N+dlzee3gCAV7BvgkWkA KzSw== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@oracle.com header.s=corp-2022-7-12 header.b=k+0NX6ug; dkim=pass header.i=@oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b="io1Q/4J7"; arc=pass (i=1 spf=pass spfdomain=oracle.com dkim=pass dkdomain=oracle.com dmarc=pass fromdomain=oracle.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=oracle.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id mi13-20020a17090b4b4d00b00219846484cbsi2742326pjb.176.2023.01.05.11.20.29; Thu, 05 Jan 2023 11:20:42 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@oracle.com header.s=corp-2022-7-12 header.b=k+0NX6ug; dkim=pass header.i=@oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b="io1Q/4J7"; arc=pass (i=1 spf=pass spfdomain=oracle.com dkim=pass dkdomain=oracle.com dmarc=pass fromdomain=oracle.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=oracle.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235719AbjAETS3 (ORCPT + 99 others); Thu, 5 Jan 2023 14:18:29 -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?68d3yzl9PpQgeC2Z8tLDqrU?= =?iso-8859-1?q?0M2+xFuzSwsc/xwbeBm2h7MHHV/dmtBiAq31olYaYreeAqvCdT3TMZz6bM4Q?= =?iso-8859-1?q?sIXirwYVWDWBBl5zFuvJI2OD8yWXMAt9X5OuSfChPQeIcKBc908KyRlRHLSu?= =?iso-8859-1?q?An3bmwKlyjUv6MVCwr+s5EtcLwaJLXKwntAQMCdfg92UlFDQa2iOUM/X3YWW?= =?iso-8859-1?q?JjIhkpNIEgDGKeR5Ml2SVVuHRN3imjznjYLhDyOA0w0HJ9eiX5JUdEPrlBFX?= =?iso-8859-1?q?+MCdDm4v2YbKQkePffWcpsVSaCTYtyfIEw0E5Z+0Npp6TyByjb5B6uoo35cS?= =?iso-8859-1?q?dRjKjoro8Fge4PcxCUiXt7ObHR9WCIno29F2AeYnxU0MacsHKwcOtW4TYq+M?= =?iso-8859-1?q?CW96GqG2W2IygI2Fw7R0RJ4a6njIQuon6YT9xMkaQi/C+hpJ7lRe2oFLLdSw?= =?iso-8859-1?q?zmsr35Jb4IlKc5h1O05yP5PkY7ZEO/GNKmrz0/9Hmb5pvSTzvC8xDmONd+uR?= =?iso-8859-1?q?T0zzKCla20W+EfTOjqAT7RPz+qB9lCkYLeJ1v8pipXE110V8URPa/Cs7hhAC?= =?iso-8859-1?q?UNCVZg6+5PRi2my0QCulrm5NLOGp7JkM/rywCzToOJLE5wV+/A9avrAl0TMG?= =?iso-8859-1?q?e/0q7WDxiZ7eCqBjdJVSZbsIXRu2s85hWfsvE55/tYQAUc1c1VCsBN11ywvx?= =?iso-8859-1?q?Z29Lon4hMbNoEMzz/F31IXrv7HBXMfvxeoeLpeOHDwNsW51lvF1LBDcCbdyC?= =?iso-8859-1?q?J+/FEK8xmmFCg9ff5nx+EI1W/Av4VWNycE7tgX3VkoTM5xlrzJjXJ5CA0Iog?= =?iso-8859-1?q?QObmhH2aFJXP7GPDX+mtj/sdIpc5mkp06IMTb7ZLT9qVbqbR0hBGdRsvOVtb?= =?iso-8859-1?q?LLX4bj5+PHJSN/hX6NlXal9q1ZwTZEE7Fc2sx8PedWo2hOZXwj6EoNXFoRIW?= =?iso-8859-1?q?6HvnZhZ4BC8S4Li1RH/mmIFOSQmoyI6qJgBXP0boCUOfPkKL0JtXJhLlo6lF?= =?iso-8859-1?q?iDW7Uuk6a5TR8/EYOQ1tCgUHC89fRWH/qABe5f1EnLERMUXyYFqTwdDChmo8?= =?iso-8859-1?q?J3tuiIatSRwWMSJFhi53ZalfyVvo3wZ7RPpmBkXshOz1jVGEr9GSEWUivghj?= =?iso-8859-1?q?5kGtor82qqyb2mTwA+rn4+00Bd7IIjysYMNBaaWqJ9BYslk1RDmN3GkTITzz?= =?iso-8859-1?q?9GQ3lhT2TCt+j2DCyTM5n39spUHkaM+2+cWfvVtScDu4trBb6Vn3VLYSSY/k?= =?iso-8859-1?q?1VnI2ojskludpgQCR5KBuOdIIrYgIkLrfRRkVzvz6rlw4ERnzN3Ut3ULZ59a?= =?iso-8859-1?q?Rb/I2dhVBD82YnC0MFmRwFxtOuDurVKmlaHpqyHK+A3qlircBbjpKeNqe8yx?= =?iso-8859-1?q?zmUMhYVA3yGc+pYCjKgUnyDzBSzNkwbpFmUva+/BLALcNg5tI8LuRxmbJvm8?= =?iso-8859-1?q?z+1tPI+01ECOQvNwg6ldF6v1+NbW5R9NtVAMnH4lr/UeDQh2sKNz59YaW0jk?= =?iso-8859-1?q?ZDw6dCUsn2WL541y6jqJLUf0Zwjn5vni3taz3d1mqVDQ8khBBqN3jnHCZNmG?= =?iso-8859-1?q?SlFguNH7OEQFIMVxaA1C4K7e/FHMpjc1YreOB3YkbGPi+ooLeuZis6xCRnc6?= =?iso-8859-1?q?/cqocoQcBBWS+o3EQ7lQHy3WWLmxwGQ5p9BZe1g=3D=3D?= 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 X-Spam-Status: No, score=-2.8 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_LOW, RCVD_IN_MSPIKE_H2,SPF_HELO_NONE,SPF_NONE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1754211488220299913?= X-GMAIL-MSGID: =?utf-8?q?1754211488220299913?= 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 *); -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); } -/* - * 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 already - * 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 = vma->vm_start; - mas->last = 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 long start, bool vma_changed = false; long adjust_next = 0; int remove_next = 0; - MA_STATE(mas, &mm->mm_mt, 0, 0); + VMA_ITERATOR(vmi, mm, 0); struct vm_area_struct *exporter = NULL, *importer = NULL; if (next && !insert) { @@ -788,7 +738,7 @@ int __vma_adjust(struct vm_area_struct *vma, unsigned long start, } } - if (mas_preallocate(&mas, vma, GFP_KERNEL)) + if (vma_iter_prealloc(&vmi, vma)) return -ENOMEM; vma_adjust_trans_huge(orig_vma, start, end, adjust_next); @@ -834,7 +784,7 @@ int __vma_adjust(struct vm_area_struct *vma, unsigned long start, if (start != vma->vm_start) { if ((vma->vm_start < start) && (!insert || (insert->vm_end != 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 = true; @@ -844,8 +794,8 @@ int __vma_adjust(struct vm_area_struct *vma, unsigned long start, if (end != vma->vm_end) { if (vma->vm_end > end) { if (!insert || (insert->vm_start != 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, } if (vma_changed) - vma_mas_store(vma, &mas); + vma_iter_store(&vmi, vma); vma->vm_pgoff = pgoff; if (adjust_next) { next->vm_start += adjust_next; next->vm_pgoff += adjust_next >> PAGE_SHIFT; - vma_mas_store(next, &mas); + vma_iter_store(&vmi, next); } if (file) { @@ -882,8 +832,7 @@ int __vma_adjust(struct vm_area_struct *vma, unsigned long 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++; } @@ -929,7 +878,7 @@ int __vma_adjust(struct vm_area_struct *vma, unsigned long start, if (insert && file) uprobe_mmap(insert); - mas_destroy(&mas); + vma_iter_free(&vmi); validate_mm(mm); return 0; @@ -2057,7 +2006,8 @@ int expand_upwards(struct vm_area_struct *vma, unsigned long address) anon_vma_interval_tree_pre_update_vma(vma); vma->vm_end = 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); @@ -2139,7 +2089,8 @@ int expand_downwards(struct vm_area_struct *vma, unsigned long address) vma->vm_start = address; vma->vm_pgoff -= 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); From patchwork Thu Jan 5 19:16:01 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Liam R. Howlett" X-Patchwork-Id: 39762 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:4e01:0:0:0:0:0 with SMTP id p1csp458771wrt; Thu, 5 Jan 2023 11:20:06 -0800 (PST) X-Google-Smtp-Source: AMrXdXuWVaNCW91cmMltu77KAjkDllNamNZWVaHqhASea0EuJ8o8c4mTFmEp/LVnF7uXDiaqIXfD X-Received: by 2002:a17:90a:cd06:b0:219:c890:abda with SMTP id d6-20020a17090acd0600b00219c890abdamr55937850pju.40.1672946406305; Thu, 05 Jan 2023 11:20:06 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1672946406; cv=pass; d=google.com; s=arc-20160816; b=R9ZWvQGfigFs8aE03uhrVcQeolS6M9jwoy1Ioj78KFBRFdoxESeJeS0m0IiFGTCLZy ZoX5ICNRkAyPjcgqi+V4GWEHfQVUyrwwg5W9NhlQt2L1RnaFAVBImO2RDtFVVy0qj9iC D+6Z/qPcJDdisLZb5jthmN65hTVHLh+MTZZbn59xnxYrtMWx5L/E+F86NU/zhppFODeV 0gcd5mrlZlNw0KtFRS0x2yN3Ac9RqedFYv40sT3zsMIsl/jawvXh/bfZJSbuK6aazlPt V15RnnuKdU6ZElhLpBxMFy/aIZwekKwfzcMafKdFuKYtD2qXf/xcMMZcKQVNDuTXf5IT owgg== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:content-transfer-encoding :content-language:accept-language:in-reply-to:references:message-id :date:thread-index:thread-topic:subject:cc:to:from:dkim-signature :dkim-signature; bh=t1VE+uP0jqC3jOm7XpSKuCal+vp1A9FT1kzszqwq+lA=; b=vTitAYb4DnOpm1PoH6WPL+9JTyoeDAMC7nyeGbFL+acRXBefJkhHHYF/pLKlZYC3qd nkEPKhc6Cejdbby7kDAHH317tiISEmfTQlDxuLDteGy+XF0k52iRis3TBVLCHZwBq0u2 xpS1EuViZ9haNfS3sTBosgmIoD7oP84A2flDgGPPD+s7xGElLccQrWFaVWIUwpkEysuW vxJAYUTz2ZN+NFPvN8iLCX0sIk8f46KsyqpeAGe8k0sGK988SprO6vAfQ6bTDxCdyPDx FnaKyim8tC74/isUgD2HVMxgMemBHbF4wapHUeJljdLvuUp5nroEYiuU3MenwrvzdZvm 9WBw== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@oracle.com header.s=corp-2022-7-12 header.b=3IyfxdvI; dkim=pass header.i=@oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=UNrgVQ5t; arc=pass (i=1 spf=pass spfdomain=oracle.com dkim=pass dkdomain=oracle.com dmarc=pass fromdomain=oracle.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=oracle.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id pf11-20020a17090b1d8b00b00226c2881812si2723812pjb.189.2023.01.05.11.19.54; Thu, 05 Jan 2023 11:20:06 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@oracle.com header.s=corp-2022-7-12 header.b=3IyfxdvI; dkim=pass header.i=@oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=UNrgVQ5t; arc=pass (i=1 spf=pass spfdomain=oracle.com dkim=pass dkdomain=oracle.com dmarc=pass fromdomain=oracle.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=oracle.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235700AbjAETS0 (ORCPT + 99 others); Thu, 5 Jan 2023 14:18:26 -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/qJh?= =?iso-8859-1?q?viJS31gqszTinpvuFJ2xge+tP4Mc10zwoNzdRqOGTYyHbQAIrMBGKGsTWxFw?= =?iso-8859-1?q?jZELHTY/0EaWDmfEsSc2hwHJs6htmIs0lMJgyIfOjg54LM6MXSmjEwlNHZzK?= =?iso-8859-1?q?Nk2FwxoRlp1CmFa06wYX9HMu1YuZF4kL7DJkX4/xO/W8u1AgmrmKsKQTtTHW?= =?iso-8859-1?q?e5Wj/CGKufsqKsqSZqoX18t+jS5YogIrHKUejq5WiBFR/Zj44UvXdL7mS1zs?= =?iso-8859-1?q?GMxNUSUbnTkeHbVI0Z3EZ673uSMbcqUMfzDYqHc9ASjm1ccK6eDx6/o/dg1a?= =?iso-8859-1?q?l4Cf8kxxLS7Ql5/xmI0WKKFf/A1iY7aDDjZpcjrcm2ovD8qKROpuKMYEfMAo?= =?iso-8859-1?q?VX53sbPuZ1CUbKVv9CH0/yPCKEocBkC219OeN+9a1/E1n3cThV/dUnfrw5fw?= =?iso-8859-1?q?GjrRj6bK0EzgUiJkROov5wzsus8Vb3rBMxX6mHClpBeqxXsgLFpPWSEpG9rt?= =?iso-8859-1?q?QD55LW6HMNy6pBe66nKVaSsnZ//4ayqUnLYvDlqFJBpw8iDDM0k9bQSu/ndu?= =?iso-8859-1?q?Qgg7yFlLgonay/wdUwCG8Pvg6A/1ClPNGn6ejc2f1LHEL6apNyJDNK+c9haF?= =?iso-8859-1?q?GVEwY42zqi5A8Lz/HU1SLghumw2oT0cPFjWbAJnnSbD2JEpTOBOrR/3Sid0D?= =?iso-8859-1?q?1lNDAq0z+06XNktyU3asi8zmMdMztvSdPYA3JWbiK0YGP9Bth8HszykkwDvU?= =?iso-8859-1?q?35MN83JMyACexlIX8mKknot0G45D1ACVQeDyEzcDAQQU6/qwY8FJU7bGZtPx?= =?iso-8859-1?q?Dgh5EjS3o9+3H4FCUz+Vb+PkmaVW5fW0hfG2AYCLUzlBuURHXxIUWXSL25u9?= =?iso-8859-1?q?06oD1dXRLF43aTmOHFfoTjbj1/R/3knX1wPfWSmNYV59FPAAw54Gdf0Qt8pM?= =?iso-8859-1?q?8hCFgrgDW+AZcurhddNmn0JLlEJSPfnT+LCKfr6FVtRpK6CP4/NS5cMYFNpk?= =?iso-8859-1?q?8A2sBjs7ZCVP93XbxHmrgT/echD9bxN949L1VqlWmy2Iaomh2UA+RuZOiU8/?= =?iso-8859-1?q?ZTRvZkY5WI3QSw0SZLLTuShSrRr6bPRRrJOGZhsmCWr8uBMrxhqrt+truKHI?= =?iso-8859-1?q?r4wRcCzIU7EdE19JOm/+TCPX+5hRSey59cTZ26ztf/yHFOT4TstQFtihOjsI?= =?iso-8859-1?q?QUjtjkf8GruYcoZOHiBGPhEPyV/L44G7CA1+vJQ+qMqLfozhSUHcfQewV8IP?= =?iso-8859-1?q?ZdEAdAXFR5C18S1ZpybidId00Kg+8l0UXP/5SUsKfY45AC2Kj2b2GNlnhYiL?= =?iso-8859-1?q?PD42Hv2V4U0C7PZ0eikMvetOv7uwnTum2GG0Tm+eifTogPvRvUzk0DfekQAA?= =?iso-8859-1?q?NzYJuAhh4a+86q7izMLJ28/rq3JpYebG+VJYcGbQi2esRjuyulJUzL/WKKp8?= =?iso-8859-1?q?FCvgUme9M+Cd0HowdThJnAFbpLDqpRQh8T/491urQPH2yXWEFEL0VZ4rZ8AJ?= =?iso-8859-1?q?ks6+8LPbmgZaAUYd2irCnUV3gzaAFXVbh6LOLHhFtM6oNml97Uy6RjbCBYFx?= =?iso-8859-1?q?noRvJkkxp2kywZzwnZ13l96oV+Osmxv3Qcibk+Cw72ZqlVLAdhXzfsXR9/yf?= =?iso-8859-1?q?LJe7drwNB8aAjLe+qjvLcx5SaDl4dLnGO7dEjhg=3D=3D?= 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 X-Spam-Status: No, score=-2.8 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_LOW, RCVD_IN_MSPIKE_H2,SPF_HELO_NONE,SPF_NONE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1754211450927207945?= X-GMAIL-MSGID: =?utf-8?q?1754211450927207945?= 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); /* mmap.c */ extern int __vm_enough_memory(struct mm_struct *mm, long pages, int cap_sys_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 *vma, 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 start, 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 = vma->vm_mm; struct vm_area_struct *next_next = NULL; /* uninit var warning */ @@ -653,7 +653,6 @@ int __vma_adjust(struct vm_area_struct *vma, unsigned long start, bool vma_changed = false; long adjust_next = 0; int remove_next = 0; - VMA_ITERATOR(vmi, mm, 0); struct vm_area_struct *exporter = NULL, *importer = NULL; if (next && !insert) { @@ -738,7 +737,7 @@ int __vma_adjust(struct vm_area_struct *vma, unsigned long start, } } - if (vma_iter_prealloc(&vmi, vma)) + if (vma_iter_prealloc(vmi, vma)) return -ENOMEM; vma_adjust_trans_huge(orig_vma, start, end, adjust_next); @@ -784,7 +783,7 @@ int __vma_adjust(struct vm_area_struct *vma, unsigned long start, if (start != vma->vm_start) { if ((vma->vm_start < start) && (!insert || (insert->vm_end != 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 = true; @@ -794,8 +793,8 @@ int __vma_adjust(struct vm_area_struct *vma, unsigned long start, if (end != vma->vm_end) { if (vma->vm_end > end) { if (!insert || (insert->vm_start != 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, } if (vma_changed) - vma_iter_store(&vmi, vma); + vma_iter_store(vmi, vma); vma->vm_pgoff = pgoff; if (adjust_next) { next->vm_start += adjust_next; next->vm_pgoff += adjust_next >> PAGE_SHIFT; - vma_iter_store(&vmi, next); + vma_iter_store(vmi, next); } if (file) { @@ -832,7 +831,7 @@ int __vma_adjust(struct vm_area_struct *vma, unsigned long 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++; } @@ -878,7 +877,7 @@ int __vma_adjust(struct vm_area_struct *vma, unsigned long start, if (insert && file) uprobe_mmap(insert); - vma_iter_free(&vmi); + vma_iter_free(vmi); validate_mm(mm); return 0; @@ -1072,20 +1071,20 @@ struct vm_area_struct *vma_merge(struct vma_iterator *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 = __vma_adjust(prev, prev->vm_start, + err = __vma_adjust(vmi, prev, prev->vm_start, next->vm_end, prev->vm_pgoff, NULL, prev); res = prev; } else if (merge_prev) { /* cases 2, 5, 7 */ - err = __vma_adjust(prev, prev->vm_start, + err = __vma_adjust(vmi, prev, prev->vm_start, end, prev->vm_pgoff, NULL, prev); res = prev; } else if (merge_next) { if (prev && addr < prev->vm_end) /* case 4 */ - err = __vma_adjust(prev, prev->vm_start, + err = __vma_adjust(vmi, prev, prev->vm_start, addr, prev->vm_pgoff, NULL, next); else /* cases 3, 8 */ - err = __vma_adjust(mid, addr, next->vm_end, + err = __vma_adjust(vmi, mid, addr, next->vm_end, next->vm_pgoff - pglen, NULL, next); res = next; } From patchwork Thu Jan 5 19:16:01 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Liam R. Howlett" X-Patchwork-Id: 39760 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:4e01:0:0:0:0:0 with SMTP id p1csp458565wrt; Thu, 5 Jan 2023 11:19:35 -0800 (PST) X-Google-Smtp-Source: AMrXdXuyPIaSO3vx9tQxmZwS11Pja+92++Q8UKxpMQHDI1epHLhmw1zxIQPLRNPbauDxEEUxcWnR X-Received: by 2002:a62:b412:0:b0:581:3557:f75b with SMTP id h18-20020a62b412000000b005813557f75bmr34980969pfn.5.1672946375429; Thu, 05 Jan 2023 11:19:35 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1672946375; cv=pass; d=google.com; s=arc-20160816; b=FaeUSWBixqxeCe3wkPGFH70halO4at7ELqFXl+kqHtYAgUhw2a6cYaj48CCPl2+O4y B3+fvAdDdkXtX/SpxR9YktAyuMwOk401TAds5n6Xr/7QIOoiKcddL/d+YUL1LCuTemNC IvVWZIGa7IbpFOMTSP5CAt9mPLDzQUPANGJFiY+Vo8qMgzT1iIUtJ29hwnEA+7qtZBwF w1k44Bhh5/zsE2i6ybQ0UC5JOSf2hYe1Tz1x1PsNwTKBy9PSD6F8wyZAmXDQ0zFM6lG6 V/DRPGiI0LcROnzzqL6psuyrnoxgxMGanRDnr4d698I53Ko6RVZvqvfUfHpcjC6Gnsgo wJ9Q== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:content-transfer-encoding :content-language:accept-language:in-reply-to:references:message-id :date:thread-index:thread-topic:subject:cc:to:from:dkim-signature :dkim-signature; bh=GDIZnvT3c4nLUKTNTDe4tm/qdLfWeMn6rJBcSK7ia88=; b=t34YZ4OpWyL3EH02RyZubopjllBGYJhvALvzFg1Wud+mlyc5y/2g0dBWITocK40OH7 scSQVS8KtQYyuTMm/zZB8hqZyYfOVSBf9/TAKwrALik/m7gRiv5NVkrAWQpFg9Q6wvD9 TtdnnTH3wdAKt6whNEG3pEoAj9fS+GCO/kg8455o+4ATdnk4DKHDX4900wAZMHpvHxzT TgLnWZE4H9bWIdXgUQ9hwpO5R+/tMHkKEImweYPQNDHFIxkoo6RCdQQ6dKr9zqHfuPUf hFWaNpKUpnyB/hkHg8P9sOhIgxjQOYZOseO1wQD8O7FdQvjjx9AtDxcZAp5Jm8HnbUuH HY/A== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@oracle.com header.s=corp-2022-7-12 header.b=xhRdThz+; dkim=pass header.i=@oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b="iHntBl/6"; arc=pass (i=1 spf=pass spfdomain=oracle.com dkim=pass dkdomain=oracle.com dmarc=pass fromdomain=oracle.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=oracle.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id b74-20020a621b4d000000b00581f652f124si18783261pfb.156.2023.01.05.11.19.23; Thu, 05 Jan 2023 11:19:35 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@oracle.com header.s=corp-2022-7-12 header.b=xhRdThz+; dkim=pass header.i=@oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b="iHntBl/6"; arc=pass (i=1 spf=pass spfdomain=oracle.com dkim=pass dkdomain=oracle.com dmarc=pass fromdomain=oracle.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=oracle.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235670AbjAETSS (ORCPT + 99 others); Thu, 5 Jan 2023 14:18:18 -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?dNKp7y7lc4yORc1MRzXAvsO?= =?iso-8859-1?q?JeXJeEjSWCtd2rnKLvJis+VxeuihnXalpB1gYozpKixf25wjiOsoUoQRm/ZW?= =?iso-8859-1?q?RLV+KdGSkNbbhv1d9mR64G2XhnP1oQ+MHF6Y6GW136Tr2rDyFv3us6jHYCs+?= =?iso-8859-1?q?GvjoiTJ4LobY16S37OJ4ILZL6oBCKjBtPJzyBL6O3eITC9okfIpqjGyK9amc?= =?iso-8859-1?q?JS0zggOYhNJK6BYb1mP4Q366U2Eta41y/cmWQ65Zqoc06wxEMTgiInShO94f?= =?iso-8859-1?q?i/wXTnxOvdu3kMuxI4c7GeuL+qbwqaYjQuIya659lsDTZ7Jr27xfPFJ4LmMe?= =?iso-8859-1?q?BeNZRZZ8uADI3l1PSKsl5pMEpA2KC52YhxVz2q0bniOtkvtyPL0g15FMFNar?= =?iso-8859-1?q?gpoEQuVZ4O3MzQhHxjLDVeJtyKSuxuiR99kHLrdyq1XVX4VDN/G0ZmE+aRFX?= =?iso-8859-1?q?yZ4PFbKPq2rov5Pi7rlFEBU6DLIGvbKLSZKbMEJOnqDIpJBlORqQDHfhhmNc?= =?iso-8859-1?q?HAWUgLrOVWFllEQQxYt9jXrWRo3zfoSWeFzsV6XLGWPMiljl9npnb5qqaGf2?= =?iso-8859-1?q?W1RA+SJU1FJz+hhwTZRm54xo5ulH+tKPfpE8BRChO+e5U/ejNGmTEpWhCuvJ?= =?iso-8859-1?q?yp07gqZw80tsPDIIW+1ZgV8JT4CUmPaFdBdpe2gL/W71Gu0w7n3a75qusUiH?= =?iso-8859-1?q?8TBrEi3Ya9lxn7HOElAc4b+f/dB+tDWE54XD3sQlBXvq77VeqxM1WoAwpRWX?= =?iso-8859-1?q?QmnTTuW+SYjpyzy4uu6TMzOg/hR+AAxn+T6ciXbvCgcw2tGRncSuW7srDDuU?= =?iso-8859-1?q?O4uDaFZqhTDfju/RtPnEWtFmoWu/BEV6qRi7eHfcyknNPnDSkyG5WImh8CyD?= =?iso-8859-1?q?DeJ9TdWK/XKpwZx8X5vHwCBs4f5wK06sFBnqVXceLa/YS3rO261Diq9p9wYf?= =?iso-8859-1?q?9xXkwNutJO6AWD4Y+2xqCgjLbh20zN8iJmFMUgx+taYsxKwLtX0yy35ZOvzQ?= =?iso-8859-1?q?bS76ie894mPqdm47o5Zd++uLq3slAi011L1TJyy//JXQts6lcHoahuoF9otW?= =?iso-8859-1?q?HDOsWewz3t1oltYLnyw4rwz8koDXegs5ljMx4Qj4bXbB8yqSpreWDZSx47+F?= =?iso-8859-1?q?3saCvy6CdfbOVyOStIKX5a+QNklDmieWLeyg+16OWJZzOk8F45UpbCnUbxbF?= =?iso-8859-1?q?qtnp5813idKTDzs0L4bdvfGEL4W+ifSXudg9Xm7gGedVbTx88jLiDUuR2t15?= =?iso-8859-1?q?BUCsxvQEN+Up/7Nh9TEXvCwxTtowPiDSOeRgY0JrLmk5UtOwF3cJDMjXlM1K?= =?iso-8859-1?q?WmwvA1/ltuNf+G7/sfsRT5wjWHNvmk3tXnq9b/61AkYBziqKEMWt30nrG8rP?= =?iso-8859-1?q?caR2QOGLUnyMiBZ28HTdTiNe3+tafvgyQn+aQUtQU8tpYDwLl2x/6W9ZoSxp?= =?iso-8859-1?q?2+4f/Rm923N/TwxxXsW7JbtwJTOjuC9bsug44HzJfdTRjH0UbD3RtS3LlPwZ?= =?iso-8859-1?q?jaUqolzwuj0uDC++wBjC9UugHQWfYHkmoj/jW186BYa6icy2s9Y4dJiWq3wZ?= =?iso-8859-1?q?R4T5eNGWgJaiucIZ6cz5LGvrEWcMQzB2xrCSTbMbXCSe6owGhoSE06cXwaYo?= =?iso-8859-1?q?x3B3PC818PhTx0P3h9ln0ImDc0bgu4zv+0DkSAg=3D=3D?= 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 X-Spam-Status: No, score=-2.8 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_LOW, RCVD_IN_MSPIKE_H2,SPF_HELO_NONE,SPF_NONE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1754211418651262817?= X-GMAIL-MSGID: =?utf-8?q?1754211418651262817?= 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 = vma; if (start != vma->vm_start) { - if (unlikely(mm->map_count >= sysctl_max_map_count)) - return -ENOMEM; - error = __split_vma(&vmi, vma, start, 1); + error = split_vma(&vmi, vma, start, 1); if (error) return error; } if (end != vma->vm_end) { - if (unlikely(mm->map_count >= sysctl_max_map_count)) - return -ENOMEM; - error = __split_vma(&vmi, vma, end, 0); + error = split_vma(&vmi, vma, end, 0); if (error) return error; } From patchwork Thu Jan 5 19:16:01 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Liam R. Howlett" X-Patchwork-Id: 39771 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:4e01:0:0:0:0:0 with SMTP id p1csp459539wrt; Thu, 5 Jan 2023 11:22:14 -0800 (PST) X-Google-Smtp-Source: AMrXdXsOiHoO0eJH5Daw9dQC8V9fnYwSuZOELnsLHLY4CWANw8aPIH3eCp8UqfEuglagR8OOf8V2 X-Received: by 2002:a17:902:a607:b0:192:c125:ac2f with SMTP id u7-20020a170902a60700b00192c125ac2fmr17635540plq.8.1672946533812; Thu, 05 Jan 2023 11:22:13 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1672946533; cv=pass; d=google.com; s=arc-20160816; b=p5S0IwXdYGNbkrtFgxkCrnbT1u/cWH38z9KH59++HRVYG5we9v2xE6XQVEyg3jZJD9 hq1mAzZxxuJOpCoJFiXCXpgtrlgdGaEpvwRwgiPp93X16Ch8yeqbqQkDIAWcW9bI5LG4 RPzS3VXXAZo7TZaa/XSP9HxqF7i9BTut/hQUbgYAprG1bViQ8bxheTCQF1cePcQCNiOJ DKxPtYSEM1t0YPqZK0UoqcNvRG2vc5Zv6WgywXUc8XbCSJ12Wt2L/JkqhfciK789k74+ xTRITHaO/NYKO2zkQj2oTgPRwHKsdBrnE1aWbg1lYMcz4YOuLWikCsBzmlYJqzAfu2St hIDQ== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:content-transfer-encoding :content-language:accept-language:in-reply-to:references:message-id :date:thread-index:thread-topic:subject:cc:to:from:dkim-signature :dkim-signature; bh=38kJ5mbQ6p69SHQMpyl1qGQj4KMnaMdtXVUJDeG9MeE=; b=eZOJUr+5M4OabizBBgo6pren9SoPV+KQD5dp0alHkq5qgBjm2iQ7MqedpcaTp1nWXU jJq/QL77N6tlPqKxUBFQHt3OkVILZjE7zw56mqO02IV39HEUUpcKYCyBEijTlEy2Tns9 tW93CLupNXcdeMIyIQvh9y4VZrHWeMsobDQEaTHK/j6OkjO6qpPmmqdJR5dch9uZMOGr LqXgDXMwRf2EOPfVvfcfMpZjhWwtJbbQ1rq39hiE3OmHdZibVPRjg7GjJwfzyS+Xzthu tije6jv+hhc+bo78a1NvMR4pZFo0/qL+0InM4UB4lVDSgpPG0esKNEZ7OcfmAHp2EDTI vR6A== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@oracle.com header.s=corp-2022-7-12 header.b=ytEmoXTy; dkim=pass header.i=@oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=x3CoBsLj; arc=pass (i=1 spf=pass spfdomain=oracle.com dkim=pass dkdomain=oracle.com dmarc=pass fromdomain=oracle.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=oracle.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id o11-20020a170902778b00b00192a622ef72si19204174pll.454.2023.01.05.11.22.02; Thu, 05 Jan 2023 11:22:13 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@oracle.com header.s=corp-2022-7-12 header.b=ytEmoXTy; dkim=pass header.i=@oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=x3CoBsLj; arc=pass (i=1 spf=pass spfdomain=oracle.com dkim=pass dkdomain=oracle.com dmarc=pass fromdomain=oracle.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=oracle.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235562AbjAETVK (ORCPT + 99 others); Thu, 5 Jan 2023 14:21:10 -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?gBC2aUj2PY0k6EfHBHWEZTe?= =?iso-8859-1?q?fRigtZkzjRVDGcZy92FBv3wHFxV8gUEtFHMej/x2KGlg5hQ0Ywxa+T63thx8?= =?iso-8859-1?q?DX18zqYBKM8ZmYEEzyePlrM9/nvwkmSaHNq/f33vqY7aa5VvpkpEaPS88vN/?= =?iso-8859-1?q?F+G2gtNca8FP/GFJ+fiW/HS6HpuUOChGC2bgQnTgG+wEG2Wkone3JKHj1eCE?= =?iso-8859-1?q?mTDUExw552/+BVaLGhp30RwA/xPkBPHT08GDcU0F9GzU2aJrjfp/P5p0ddnB?= =?iso-8859-1?q?etc4oNI0q679dxoqW2ltyaZRARw1v2SDz5UR+pNmLOo7TNYQ7VSpt+RQVWym?= =?iso-8859-1?q?UAnt0vVECOpJbOEBKMqqoVBoOoW9qStIFhtMhh3TIrV77e4nAQc/O3cFk1a2?= =?iso-8859-1?q?Ji+7+i29r4THLm42OFMPGeia/UHGUf+kuF4cdvseP71vnYKLP3lHIcIKmV7i?= =?iso-8859-1?q?AHSHZYXEevKSU22u/oAfM3DKtH9+g3R7BBhdL9IVNHbruoofP28YTSTYBu3B?= =?iso-8859-1?q?b4xe08W1XgRJLNQjGIaWT3SkBfl5SYvARIui0hDA2ZIYmLCqPx19EgpXDODr?= =?iso-8859-1?q?ByBn5rlFJqGHd6YKZ3vLH+NVdG3Myc9YEITQVrLzCdEz+1z/XaAyEpijG0Te?= =?iso-8859-1?q?8tg6/rpQtNtBF8HaGr7+2dvqYAJeTN2ATFHscZ9YXkbduj4j81axmQwXZlaI?= =?iso-8859-1?q?J+o00ToyILQwymbrWQ2hidyT45sjkHA3gkG1De2KLP/PEzT/FEADbsfrXfvg?= =?iso-8859-1?q?ScAPQcpq16i64wTSRyQo9F5DKJXiTLroRaCc4z7JJW99JmOTp41oud+wpclp?= =?iso-8859-1?q?hTM19SwfI70zd0Ll/8uepQNW18Ca6U6IALOO5ZXJyrCqvERzakqtdr+KdKcq?= =?iso-8859-1?q?kovRIqW95FwoF9uHzpQqkoLEhUXE/1MvZE6SsJjqtMPpVWSpfKb960TVeipS?= =?iso-8859-1?q?guJom+YgrAccXjshv8LiLWLGNYuAKiDlZZ3xFu1D9EEIoNnRob1NZft8cjPP?= =?iso-8859-1?q?QpTncaSeZNDCnvHKuJwRc9ak568YiwdOrLruHAezE1MAXE7v+zafy2eH6hFG?= =?iso-8859-1?q?/GGsJqw/OsslA6EKNuKMgMN+RNMLgNiDfIGyY7Y8bjHlVtEVHJZ3U7CcLqMw?= =?iso-8859-1?q?IH9kJDEspzpN69YEr6x5v0GBImUTc+O1V5ec6Jg2OKkgNzODbdZ1o7X+5n51?= =?iso-8859-1?q?kIN4TUTFuoWmpAsnSrSBY+/z2ry4u97s/uVkC6GrjtINxeKWvOq2P97U27DU?= =?iso-8859-1?q?HbomhcZel1sF14Ve91/7EMk9rmyQxGls+aeqLBc/Ckz1QIkI9ZZ1YYXUbVGs?= =?iso-8859-1?q?3h5HAvVwExenAGV3BUxNBNELgDRYi6ZYpA8UEkjatGcf7XS91zo84scXXETF?= =?iso-8859-1?q?+6joHclXd3wTTJSDtCs6ap3q6YuzSZtDUh4KeU9Cdh7+TGtovkyRhOuRSQuq?= =?iso-8859-1?q?nQmKMUzTdEmlViEe3OTMjIvLGlQ2N0vtSVaoKQs0rYM/GsqJJSqJrEOYzHu3?= =?iso-8859-1?q?fnZGKuEMyKJJ8zcoYljHxws+TNJASYeT1tOLe38+apCBXQKoDcOauj7z0ngP?= =?iso-8859-1?q?K1jCug9IpGAbGrlTIG7PQ5pZ5x48zX8wyE7kGHwv7qbqfXab0BoCWV2asUtO?= =?iso-8859-1?q?re/PF+A5d4rlfzPRnOX6eiRmTSFL2dHXIYa3oKg=3D=3D?= 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 X-Spam-Status: No, score=-2.8 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_LOW, RCVD_IN_MSPIKE_H2,SPF_HELO_NONE,SPF_NONE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1754211584232399710?= X-GMAIL-MSGID: =?utf-8?q?1754211584232399710?= 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, } if (start != vma->vm_start) { - if ((vma->vm_start < start) && - (!insert || (insert->vm_end != 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 != 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 = true; } From patchwork Thu Jan 5 19:16:02 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Liam R. Howlett" X-Patchwork-Id: 39767 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:4e01:0:0:0:0:0 with SMTP id p1csp459363wrt; Thu, 5 Jan 2023 11:21:43 -0800 (PST) X-Google-Smtp-Source: AMrXdXvQd/P9y+XssBRbffD7fAjw1rrzb1PJQIkLBAbFOfPvoJG0MWG5LSFxfwxeQz4BD1gKZqrX X-Received: by 2002:a17:902:7284:b0:190:d273:38a9 with SMTP id d4-20020a170902728400b00190d27338a9mr55335683pll.14.1672946502743; Thu, 05 Jan 2023 11:21:42 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1672946502; cv=pass; d=google.com; s=arc-20160816; b=UCPz+G543fM5QRLdwvR1Pbh959UBnAY9E9mCdKC/GAKRgIBB50ox6CWs9Gl9kJjfIK 06OjnKdJmUbRsVAwFjK7sIAifYnIJBc4ngfooqLmWK7WFj9mzjSC2SYjlmK6dhEoOiku Ai3RaRt/Ja3ClLQ2nMz0uoJZChNVSIdXFt0/1/91tIDZNBcNvdcv6xpsrdpha7wgzGsB 0kOI/U9BQSEXWNRwOmlpgl7WSGquo690ZhSeHvV0i7VHKY4QfST/tQJuVUHkB7l0lrbr SiLvd7aFzRJIU9VJ4WjC+b0MFJHo0/RRCvaEiVliPm2vJEMy+ZFuf2/3YFMql+5IE84B nhqw== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:content-transfer-encoding :content-language:accept-language:in-reply-to:references:message-id :date:thread-index:thread-topic:subject:cc:to:from:dkim-signature :dkim-signature; bh=2moO4fYkQsgktnVqqUCvFnFabSTzK46jDsoi7qj27Dw=; b=CkveQa0N/pYM1QZDVb885SAuNXYwjTcsCw/OvjtAOMPNYDV1TkY7DRvCp++TVKp2Vh dZKiMKhAX3SiU/A558JGGR/ciMUOw7l36fYApCm8sRhrOx2SCmy8N02/yordwA9JDvpV U8aXWLmFLawKVFa9UAKZTVk9+/3Kl4xcgFHjwJXizbhKQhyA8cWkpHgWhgmXoD/8m05h xqwxJIhox+/jwdcpnS/0n85Su6kuRTZ1Pw3folk/Xnxzfy92IwdY02yIDnWwTNW80Lj6 JR9+J9ZfTW4PBhMkKwNBZMIwdFG7MzuY94Vd0/RwpC0IU36SQibCvnsb7tRF1bN6E56r dcrA== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@oracle.com header.s=corp-2022-7-12 header.b=Y9XGCBBP; dkim=pass header.i=@oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=f7YRrRJo; arc=pass (i=1 spf=pass spfdomain=oracle.com dkim=pass dkdomain=oracle.com dmarc=pass fromdomain=oracle.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=oracle.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id g12-20020a170902934c00b00188fe19d3dbsi35812181plp.163.2023.01.05.11.21.30; Thu, 05 Jan 2023 11:21:42 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@oracle.com header.s=corp-2022-7-12 header.b=Y9XGCBBP; dkim=pass header.i=@oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=f7YRrRJo; arc=pass (i=1 spf=pass spfdomain=oracle.com dkim=pass dkdomain=oracle.com dmarc=pass fromdomain=oracle.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=oracle.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235383AbjAETVD (ORCPT + 99 others); Thu, 5 Jan 2023 14:21:03 -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?= =?iso-8859-1?q?+hf/D2aYZamjjHFmL6glVhmfK08Ibo+DDQx1MfltfwfiSp90L9VJ4KynHq7p?= =?iso-8859-1?q?4ZMghnzU09gtDdoZdSraWTfVsq/Jz5M8pBT0er38qCp6Eyya5FMdmJS2UYnK?= =?iso-8859-1?q?bdLnFja+3gAzy6Wu/1NahKaUv8AuZ8zvxFLbCadmUedFcp3uGELdvBkPedBg?= =?iso-8859-1?q?g3w8f7QnSLpfcZccKSMxnw50VWlpL1OYrc/+6gNbUsOh2OFZknY7LFsy2sl+?= =?iso-8859-1?q?Pxt4K1Tt2UJaBpG6shOmdoFnqSAzbdtCcYoibA15e4KAcHz6DDAAfQR5kkb8?= =?iso-8859-1?q?kWcklDH/6iyBWo2z/GLFP5gX0C7g1gYVSZmmqfK6fa1fnJFwOi5ycpvQE4L5?= =?iso-8859-1?q?ovkTPvfQheDJnGC4Bzh32lbHH9GSoD8X/Mo2nxXqe/E4u9IJffOBrR1wSDDB?= =?iso-8859-1?q?62raa37pkrDNMSg2Eh+GqoLokHm9Dk5SDeR53R6Ws7rJVWc4ZnNU5raymXnK?= =?iso-8859-1?q?41gNtqf4MCe3Pyu2skKXh18bJLBbSmgVUlqej52x3o/10t/aA69r4UwnOtEZ?= =?iso-8859-1?q?mlYACGXxdCyer1xTNknlczi1cX+f3PJ3vu0y9rSJbNd+SJDwVRDoeIWWQ0PU?= =?iso-8859-1?q?nr7hzVjQ5DhE29i2VGkEFC6d/5M25mDct1mOFhAdNFa/IrA9/b7/bVUgQeny?= =?iso-8859-1?q?O3ZgTsepGTELXQWiMKt8j0CfwBUx7A4+qeVECtGqlkBseJiNNuKAZHfRjJup?= =?iso-8859-1?q?ZmX9EboM7M+udjMdYbVRw/8f8/4tUDcVE1sIw9YCEMkSj+AkK4zIlqEliNa1?= =?iso-8859-1?q?USmVXHTtu/EH+YpjPTxHhUKvELMRKAMotzambyeTeKr5+ifG831g4B2dvQDq?= =?iso-8859-1?q?Vb4S998swEFU0gt1woaGqSeIBmlUOeGTJA6l5tuZbJsv22HF5FAyt8wtBJaW?= =?iso-8859-1?q?TT4JCBjSVWqK5UtdJsleGmAxKpcSmUIn7D/DUV57E2MlnGEKKIHiEBjwTFC9?= =?iso-8859-1?q?EqJbZ8OfDIOubJLfEhEstOEI53oPCTTJFzmDMlwlhq0VL9mBDsfMHEcwmXZt?= =?iso-8859-1?q?fBLmZI5Lex3zRDt2hCBC3r1WktiAsN4a19SW0VBtQ96zGiuk6uKIpunltGB+?= =?iso-8859-1?q?Q5p8LUwy/AVuX9CtvVGdJRy2s/b0/TWMJVDiWSOgeMJSph52Y+gx4dE8aF/t?= =?iso-8859-1?q?QVaFLrg3fp4q+lYb9BbkHGmAOoxIdW3bHABDiUsCb3cIq5udgW1La6w8PIEv?= =?iso-8859-1?q?TWrAaWmJMDHKVwkHNJtnszSLk3TVnw6FX1eLoqSSaPxmEujgrjVjeqfRTSaL?= =?iso-8859-1?q?N21WJ2LfVbqiabcFVD/GOmk0+shXFqf7T/o7fFYXfKNBUv8xS7E/IduNAb3S?= =?iso-8859-1?q?ow0QMrgmwjP0whBk2+y0Luhd34QVavuA87pY7SOBffqhjAmVJcWMLvRZquxb?= =?iso-8859-1?q?/l2C2IFHZbae2algCN6eEca4YxjeharTA4drGK59TtFnUSa9S6TRo091xj7c?= =?iso-8859-1?q?h9l2MwhFeIYis1oTUjDJ4Ctx0+qZw0giOh5yH62Ymz1ss92rOY4HiKLJ9YK7?= =?iso-8859-1?q?vjNR5PZMTUOtwvlNcB+3+KKTEMir8K9OqhlabzBA2r27/Em239gXDtI5bwbq?= =?iso-8859-1?q?XRjX7lsbgw9zIo6QOg8hquGMV++MfwpfsTldYOw=3D=3D?= 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 X-Spam-Status: No, score=-2.8 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_LOW, RCVD_IN_MSPIKE_H2,SPF_HELO_NONE,SPF_NONE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1754211552289091562?= X-GMAIL-MSGID: =?utf-8?q?1754211552289091562?= 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); } + /* VMA iterator points to previous, so set to start if necessary */ + if (vma_iter_addr(vmi) != start) + vma_iter_set(vmi, start); + vma->vm_start = start; vma->vm_end = end; vma->vm_pgoff = pgoff; @@ -2222,13 +2226,13 @@ static void unmap_region(struct mm_struct *mm, struct maple_tree *mt, /* * __split_vma() bypasses sysctl_max_map_count checking. We use this where 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 = vma->vm_end; validate_mm_mt(vma->vm_mm); @@ -2264,14 +2268,17 @@ int __split_vma(struct vma_iterator *vmi, struct vm_area_struct *vma, new->vm_ops->open(new); if (new_below) - err = vma_adjust(vma, addr, vma->vm_end, vma->vm_pgoff + - ((addr - new->vm_start) >> PAGE_SHIFT), new); + err = __vma_adjust(vmi, vma, addr, vma->vm_end, + vma->vm_pgoff + ((addr - new->vm_start) >> PAGE_SHIFT), + new, NULL); else - err = vma_adjust(vma, vma->vm_start, addr, vma->vm_pgoff, new); + err = __vma_adjust(vmi, vma, vma->vm_start, addr, vma->vm_pgoff, + new, NULL); /* Success. */ if (!err) { - vma_iter_set(vmi, end); + if (new_below) + vma_next(vmi); return 0; } @@ -2366,8 +2373,7 @@ do_vmi_align_munmap(struct vma_iterator *vmi, struct vm_area_struct *vma, if (error) goto start_split_failed; - vma_iter_set(vmi, start); - vma = vma_find(vmi, end); + vma = vma_iter_load(vmi); } prev = 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; - vma_iter_set(vmi, end); split = vma_prev(vmi); error = munmap_sidetree(split, &mas_detach); if (error) @@ -2631,6 +2636,7 @@ unsigned long mmap_region(struct file *file, unsigned long addr, goto unacct_error; } + vma_iter_set(&vmi, addr); vma->vm_start = addr; vma->vm_end = end; vma->vm_flags = vm_flags; From patchwork Thu Jan 5 19:16:02 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Liam R. Howlett" X-Patchwork-Id: 39772 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:4e01:0:0:0:0:0 with SMTP id p1csp459543wrt; Thu, 5 Jan 2023 11:22:14 -0800 (PST) X-Google-Smtp-Source: AMrXdXsUkvZwCDh3/Jw7wKSgL0gHc1CQjESgtVaGrJx/J2RmY7X8TlfoNauPP2asUO+1ZrajqD5x X-Received: by 2002:a05:6a20:6daf:b0:b0:76a:51ab with SMTP id gl47-20020a056a206daf00b000b0076a51abmr69672191pzb.26.1672946534261; Thu, 05 Jan 2023 11:22:14 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1672946534; cv=pass; d=google.com; s=arc-20160816; b=NJ6RZWAmBZ3cz2FU3LkZyPspYhFRG3QfQk46FF7gvR886BAZzyAKCYzD4sKaL6plNg 8mAfc5KEKVOrWmuy2wHTAcu7m7ME1UYp2hTvRl+AyCIsVbymGamUcXWsgrVdzVBVvE7h 0Qm9sizTQPmb9q28986L7hTqsCkE1j4/NLlRgCagZlxTcnYZKl/wjkR1oW7joYSvpS8F Go0veZXKsequu3UK0TeO3bGqW6y84sfDahczVGvbwcXi2ysj+QhUlLieoUIeYXFkzbDI jdUtUvpynmfPgA+OFk0ParzkoGKvic0hZ3J0wfLUxs/2/MwFOYRr06gpnh7cNa2DV7xf JaTQ== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:content-transfer-encoding :content-language:accept-language:in-reply-to:references:message-id :date:thread-index:thread-topic:subject:cc:to:from:dkim-signature :dkim-signature; bh=v7b7Y0VoKjU/443c479HAnuhJa8h7cdUlvoZe/Bl8Hg=; b=0ZZ3mGHTw/0u+tqP10T/XwUwMbyzfMlRZ6X9Ex54tLY9VT2f+hCrO6lByqC2YfdpOR dV0NzxZAE6oqW/v6/u0VlXvUXP095EJZpxUKPi/sfotSbDT8hkgFVUm545iEZHi8zHEq emONn1/bD8yXSRiAAishF/XxDBur16/EROIEZKWu5pvCfWh9Ddxi9YV5wIFHadXCwbuc /nP1ZLolRQ4OH6vRFjAB6ZKMhnQnJbkv0AZKTM712bBcr6rYPqelU3YjEP4+SISVJlS1 +jR9mY2zXEOqPvixpTLAV6yRVNB40PL9O3yRp+86PTa7Qh6lQDXNk2UHhlAlOP4WlsWz 3eiA== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@oracle.com header.s=corp-2022-7-12 header.b=Y68xLo2c; dkim=pass header.i=@oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=Lqw+QsUk; arc=pass (i=1 spf=pass spfdomain=oracle.com dkim=pass dkdomain=oracle.com dmarc=pass fromdomain=oracle.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=oracle.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id h2-20020a636c02000000b00478cf659a0dsi37128702pgc.546.2023.01.05.11.22.02; Thu, 05 Jan 2023 11:22:14 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@oracle.com header.s=corp-2022-7-12 header.b=Y68xLo2c; dkim=pass header.i=@oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=Lqw+QsUk; arc=pass (i=1 spf=pass spfdomain=oracle.com dkim=pass dkdomain=oracle.com dmarc=pass fromdomain=oracle.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=oracle.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235614AbjAETVR (ORCPT + 99 others); Thu, 5 Jan 2023 14:21:17 -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+HbI4HXkINuSW?= =?iso-8859-1?q?nOemy/QMXp8u2l0ef4eadEMFAtvq/iEMXoebsy6QQeIjvKnEagSxuuKkc8oC?= =?iso-8859-1?q?ki7SxgKKNlBOYabK8v+Fueu5OLsA746s8KDSuJKEclEAfS8nGwsBYTFaA3oC?= =?iso-8859-1?q?pyphpGo7Mdyef7IkgxLoc0D6SzofmtEBZlYbCS1zrtZVXvVDuHLyBneBHIvR?= =?iso-8859-1?q?aOJ44QWVZtFFE8V2VW9RH4Za7pBcKXgAbtavHnMQpHaNl49mPif/Vf/zcunf?= =?iso-8859-1?q?WEDPPwISCZgE6iL5vdHqRlVSZLzpiLQz+LprySQ2xME4UA8tjhen768Nmnw1?= =?iso-8859-1?q?EYCqU8hxBAMWqYYrl0DOkMHB+ZkJrVUbLMR+Ok0po5Dkn5L8ql5wzWasf3TJ?= =?iso-8859-1?q?5SOK7RFdYiwpjTdOmbwVz7oHJlSgP7gcODhGGg+VxmsLyJ6/hnSyFzUBJceg?= =?iso-8859-1?q?kmMmLr/5do2BPDpJeLd0Ao+9zj+hCNVptt/OLZNNEDPVp6SYleD3OqMlH8Qv?= =?iso-8859-1?q?gsRUjqNsILqsa2EKn4eTXTrB66uGqvvFnV8Zj4Bf4U0xtLaWt7JgXpwVqH4u?= =?iso-8859-1?q?W5FfepNHtglkjH/kF9DJZtEG8wnXLAJ/yOa0mih1cH8l5g4yPllm+BOmf8Ag?= =?iso-8859-1?q?cQDlfbBlt2TqOaLZ5UgOGutPnAR7LJKOfMdLLoengZp8b3MqO4LcMbJmhvM5?= =?iso-8859-1?q?vosJYDlrX34k6AS+JZst2nASugrXNoTAb2cDI/j0dafe3UgoeLlXxtmvibR2?= =?iso-8859-1?q?oit1PTiX7hMsWP4Q4O9TCSk5AhlshPM0wya8ecJ68B7+rckRvwni5ouU+Zbk?= =?iso-8859-1?q?z4QNjA10Vh3AQCpo5U74gLb8oPNcpVTOAoN+KhFx3tmCgqbl6r8VtPprSMcq?= =?iso-8859-1?q?KV3AGqcjsGwmZG5rpDWRoqXgjR0o2kS7tQWg7M68E0lAUUihNEH8JCBap9HA?= =?iso-8859-1?q?/w5paDqk4ZW+xEc7aBZIL/c2BOf75QUfDUMeBrPLYlifZe0lmGsRF7lRYYl6?= =?iso-8859-1?q?w7wAJbIHHTBTxWagYgbvnQjn4qESBd5bi6Ko5vZ5gHNoexW5iDXUle09gaRp?= =?iso-8859-1?q?MnvOp7FnjZujLz561R9z6/udSSFclTn3+iLyBMecXPKSLLllVhEDdgJigIcz?= =?iso-8859-1?q?P2qDyhEZtmLSSJRtkra1F1nq9xXq+e4j9goS2uAKiPNerIIQUc+zi9d2UNRz?= =?iso-8859-1?q?9ltMhezMlAvrMnpGbVEN3/Gyw6KtC6xSh6A+1TpbMG7vzM2DSQQEIoafJe0u?= =?iso-8859-1?q?q+1SbCMBYGBSMJlMA/SRbZcDTxKX8EvkFr1xu5PUXSW0W5IEJp8A3nrjTIrC?= =?iso-8859-1?q?wOcaUFcvsyo9ZuNHlTZbHwgGT/sHFBzvoR54sWnuXWY0oDDUt4f4Zfz+A6Tp?= =?iso-8859-1?q?vHQXOWQOq6dZwMgXY3VVjkVbnKHdHQVEbN4kxtzP4wH69ogEIupeabNDxsF1?= =?iso-8859-1?q?uD2NMZcxD1lgXb6ssE8IS4h5K/JkgBsyjSKUn8uR4GCjhBLMC53Gkw+36OFz?= =?iso-8859-1?q?7RndZ2zYPuXlf+wIa/5aT2jUIGjdZFLpcDRpI5clnEljZWzv5Aphz/0fznaH?= =?iso-8859-1?q?mLl1bud11gcvXRzreSWBi++yYhkVe8CO7PHsvYvmhEsh/DADAUnUnV3Ur/8G?= =?iso-8859-1?q?gvBPPoBtBr5B4a9T/f2s/4zuilf3ytxUipshAvQ=3D=3D?= 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 X-Spam-Status: No, score=-2.8 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_LOW, RCVD_IN_MSPIKE_H2,SPF_HELO_NONE,SPF_NONE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1754211584869576181?= X-GMAIL-MSGID: =?utf-8?q?1754211584869576181?= 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; /* @@ -731,12 +731,9 @@ static int shift_arg_pages(struct vm_area_struct *vma, unsigned long shift) } tlb_finish_mmu(&tlb); - /* - * 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); } /* 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 *vma, 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 start, - 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); if (new_below) - err = __vma_adjust(vmi, vma, addr, vma->vm_end, - vma->vm_pgoff + ((addr - new->vm_start) >> PAGE_SHIFT), - new, NULL); + err = vma_adjust(vmi, vma, addr, vma->vm_end, + vma->vm_pgoff + ((addr - new->vm_start) >> PAGE_SHIFT), + new); else - err = __vma_adjust(vmi, vma, vma->vm_start, addr, vma->vm_pgoff, - new, NULL); + err = vma_adjust(vmi, vma, vma->vm_start, addr, vma->vm_pgoff, + new); /* Success. */ if (!err) { From patchwork Thu Jan 5 19:16:02 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Liam R. Howlett" X-Patchwork-Id: 39778 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:4e01:0:0:0:0:0 with SMTP id p1csp460290wrt; Thu, 5 Jan 2023 11:24:33 -0800 (PST) X-Google-Smtp-Source: AMrXdXvf5/vNZdxATjCbwij4GYy8mpRqKqkrIxB4OEAUdn40HD9D+myG4Q5i+0+sKEi/ck9ZJEfA X-Received: by 2002:a05:6a20:1386:b0:9d:efbf:814b with SMTP id w6-20020a056a20138600b0009defbf814bmr102883701pzh.20.1672946673650; Thu, 05 Jan 2023 11:24:33 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1672946673; cv=pass; d=google.com; s=arc-20160816; b=sXMu1riDtUj4+FAUIjoUjwpeD+clvzouREKfVhAAr7G7MqwvE5r0gqWOakww2hxh89 f4pZhjxEW14Uxj7KMRBxShdUU646RbQR45kvd8G42bJqneKLB9y7baIisBUl8dI4x2xe NjGiYtk2C7AMweTIj8porwN2HOFQC9QYLU5idw4ifTTkC2aW9VHTOLfBHYc4ysP3JBdq JEYkRl0XQYB8RngtS8oK3Ix6kDY/6jsrFoUGNCE/b4hos2vDNzNQvZFwyN5p0kCSJnEP eHwejOdHwyP+nVNgBlZ/+a6MM5O+UrUqh9jNQUi7fKT+mHn5zFGgv3+NjIDRIQVBbdAH BwuQ== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:content-transfer-encoding :content-language:accept-language:in-reply-to:references:message-id :date:thread-index:thread-topic:subject:cc:to:from:dkim-signature :dkim-signature; bh=eh5UlXV7hjFyyF0mhfN12WYE0aWYs7buLsoJ1xB7wXA=; b=UsFW4JsGtARJqMgxxFrf+jUyIEMGiCXTcl9FLzh37In31Mo4f49tcWmDexEcd0u2Jf 29hXh6wOCkianuih1bsfayWIz5/Q4EuY79ErU2+9N5OkEHvzAasnW53ES2fioba7i1re TUx5RW4AxqzUDLkCyAPfmiy5nzZ8t5/HwzLB+v/R1Z2TF8Mx2D7lmPI7fH8JWdYI4+pc +kt4o6YbhOF0xn1IyCF0JtKXHtokaEZt5UynNh7kdxqHrQttDIOMOFKHUYJE9udzyvz1 EjFEfo9vHjlTL6+kn/0DTeZOJ1Cn1xo+arGkRxkJh9Hj3pmqfc66Xt/CcRn2qbtrUKPK vwog== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@oracle.com header.s=corp-2022-7-12 header.b=uUCEuLbe; dkim=pass header.i=@oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=MT6YldWq; arc=pass (i=1 spf=pass spfdomain=oracle.com dkim=pass dkdomain=oracle.com dmarc=pass fromdomain=oracle.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=oracle.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id g10-20020a056a001a0a00b005779f520683si39037567pfv.200.2023.01.05.11.24.21; Thu, 05 Jan 2023 11:24:33 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@oracle.com header.s=corp-2022-7-12 header.b=uUCEuLbe; dkim=pass header.i=@oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=MT6YldWq; arc=pass (i=1 spf=pass spfdomain=oracle.com dkim=pass dkdomain=oracle.com dmarc=pass fromdomain=oracle.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=oracle.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235537AbjAETWE (ORCPT + 99 others); Thu, 5 Jan 2023 14:22:04 -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?HU2wUGevViikhwi6FuDjcEy?= =?iso-8859-1?q?F2pqLEOSeIXYBSE0Z/6gxtr2vUrzGgxMngw9fSZMOLVjKZo5NoJ78/cDCaeo?= =?iso-8859-1?q?u+XhKuoGSkEILBo9tj1yCSi9Z1snK6HroogfDhe7HJu4XX3ICFFuKZ9mfzny?= =?iso-8859-1?q?WofipLlcqsNo8AvLRp3ChYh/bRe84VJ+0xBDbWKulSZlvRGwZZrwrg4ICmBT?= =?iso-8859-1?q?dmhra4VsmT4pOkKupcW5gCDy7ydvLzvy+4CbtcHDhr+kGx2O5Dl71Cam7M+N?= =?iso-8859-1?q?pf5FIn79Wc/6BBEVJaCksPSR/VeRdTD0iemHEx/F72WUulk7Faxc/jlpi6DW?= =?iso-8859-1?q?QCXkcqjBDdkdi+A+iYAWaXJn3TiMgfPmei5x/cA4imJgWEVXvjFS61D4D5yW?= =?iso-8859-1?q?lp6M+SQSJONl0AD2UXBMSiYT2gDAjGFsAXNsKs6wYkMxs5frPJYXkFQJDOUV?= =?iso-8859-1?q?u+E6WadKFxsKtrBrRNFd/6D2KodJ93PhO/47SBJ9CcDiKoWjLWfMxaGsCcyC?= =?iso-8859-1?q?IgPuBppukBY2ICANKHz7FSW/eSa5/CuLPG6xMN4Doay9Plxx/U3POUu+H2va?= =?iso-8859-1?q?jUvDREgDytPRWOMAiDOl42n0mxPi6jx/xvJP+dE0OwxI5TQLKI6j3zJDkpJJ?= =?iso-8859-1?q?wkS/Ajm+WY/TP1zzAxKTqcZEhKPEVQCKTw0sGDS5o31K+ZCC3kNenU9kuj9y?= =?iso-8859-1?q?v5IK4B+z+Rg9lcAcinriuYpr4+QONQAvH7bJt0b1DmJ2m8xM+JmSjuOvc1uA?= =?iso-8859-1?q?fdZbOOZcFAsKxLnD6RQN/l52ifoKp7FGgiJE7LkHxpJzJA+y9s5O+HUZ2jCp?= =?iso-8859-1?q?YEgPJtjjuu2smxMRsT0tBg9zUTUCplGnh00PCDn5vBeDNB2INtzhwUH8eL7r?= =?iso-8859-1?q?QcnCfbbcWHVDZwVYxChHnYg9PBBM6cQceNwVTMB4nz27yVR8RXqHWkmGAKxs?= =?iso-8859-1?q?pmWm/gVF/ce6P5Mq3Z9R0QyQ6WUqch4KmwanGMzcXh2K9yx/227HsAH5QjPf?= =?iso-8859-1?q?y78bGiKqhx0JFdb09S8OOHkck1t7GaXMaDE1ADaae7jQmJCH3Yz1Yh+N3ley?= =?iso-8859-1?q?9jkOTr1XpKN1Q6RFtiOczJxvKX1xbZw4QTbB8QZXqEE8R/6Cjhu1pRvHP8bA?= =?iso-8859-1?q?0WR5BNBARBUBjCTKsLNllMcgUt2KadGMo0I5aO9Q+rKvFZ9XDQwfcVdeZo0l?= =?iso-8859-1?q?MTuB4mCT1/QsNmR+ugJ8j+bSltFGAe8PiFU52SnTTQa6cm5kmroTWYwe8SFg?= =?iso-8859-1?q?mRNXkG2Xewe3U+Qg0CiASWsVLcXjOpeamogSHjYuvPyn3GojUwcQ8KXcOtA2?= =?iso-8859-1?q?MbX8mPEdLkpzBNCTCgOiwVJXo/VbOY2mZnzSM638lptu74iZNLtTF/A6L8dP?= =?iso-8859-1?q?cjSAeB58WJeFuDLtA0U4Bkr0KBMHlDTKwnxpdcAN0X+cNSZl46HVBd57QgR0?= =?iso-8859-1?q?CjNcj/alz6jggSEq68uJi5Dpdidy8NY5K9nAuC8CntrHiyvy1+5zE1q/Vdhp?= =?iso-8859-1?q?U/sZ9/XRLZgugHtNICEgSlw+/12pww/i5HTLl01jeh8pwPDf4bSTLose+ojK?= =?iso-8859-1?q?sINnSf/i4KaQYazh+ad67gXx7v1afMHeQ1Bev0iwJ3AbIoolzkLcYucKU8Va?= =?iso-8859-1?q?Hrz5fflZ1VJGZwq1O5pm8TbZsxX7C/Id3ltmJtA=3D=3D?= 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 X-Spam-Status: No, score=-2.8 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_LOW, RCVD_IN_MSPIKE_H2,SPF_HELO_NONE,SPF_NONE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1754211730952544072?= X-GMAIL-MSGID: =?utf-8?q?1754211730952544072?= 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, unsigned long addr, * Expansion is handled above, merging is handled below. * Drivers should not alter the address of the VMA. */ - if (WARN_ON((addr != vma->vm_start))) { - error = -EINVAL; + error = -EINVAL; + if (WARN_ON((addr != vma->vm_start))) goto close_and_free_vma; - } - vma_iter_set(&vmi, addr); + 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, unsigned long addr, } /* Allow architectures to sanity-check the vm_flags */ - if (!arch_validate_flags(vma->vm_flags)) { - error = -EINVAL; - if (file) - goto close_and_free_vma; - else if (vma->vm_file) - goto unmap_and_free_vma; - else - goto free_vma; - } + error = -EINVAL; + if (!arch_validate_flags(vma->vm_flags)) + goto close_and_free_vma; - if (vma_iter_prealloc(&vmi, vma)) { - error = -ENOMEM; - if (file) - goto close_and_free_vma; - else if (vma->vm_file) - goto unmap_and_free_vma; - else - goto free_vma; - } + error = -ENOMEM; + if (vma_iter_prealloc(&vmi, vma)) + goto close_and_free_vma; if (vma->vm_file) i_mmap_lock_write(vma->vm_file->f_mapping); @@ -2778,14 +2765,18 @@ unsigned long mmap_region(struct file *file, unsigned long addr, return addr; 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 = NULL; + fput(vma->vm_file); + vma->vm_file = NULL; - /* 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: From patchwork Thu Jan 5 19:16:02 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Liam R. Howlett" X-Patchwork-Id: 39774 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:4e01:0:0:0:0:0 with SMTP id p1csp459643wrt; Thu, 5 Jan 2023 11:22:33 -0800 (PST) X-Google-Smtp-Source: AMrXdXv/sLCZfAl3KmQMHHMq0cgtpPgyxFyfantSI2XuN6kO9TArr4WeWKwRv7lOZPxbP5BInTM4 X-Received: by 2002:a05:6a20:3d84:b0:b0:1abd:8604 with SMTP id s4-20020a056a203d8400b000b01abd8604mr85658429pzi.41.1672946552853; Thu, 05 Jan 2023 11:22:32 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1672946552; cv=pass; d=google.com; s=arc-20160816; b=KjiICv0/Yr5rkGsNrtCZRPJIoS3zQOtQbYXl8dHcu5vS3YdULbNWS4yDHKlqZNwebL N2lVtNkJQHsLp16tvLyKIQxYrNOkdL/SoSwKpDvW49yfKhDJiTHWORwUin72yzMpGH7I 24VLPHuSOp4jOpFCzmI05pZT9kd1gi3u0Ytz6AW9JtOZfDuX7i3Iagiml/2m75At2pB8 CJhnCPMItfaYqf0/4fzoVJUjEtSoY+phce3wGwzcsd/Q4G+M+mn4khB5kqB5SaN0tgjY Nc8/GASHM+7ORmpAtlFL5o9pAVaiWv52DyZnlzD2uEUBxQZAhEROg1R+vudh0txXdopu hyXw== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:content-transfer-encoding :content-language:accept-language:in-reply-to:references:message-id :date:thread-index:thread-topic:subject:cc:to:from:dkim-signature :dkim-signature; bh=6hunqgoWf3+7qbnIUEV4yqvkvvDOOGXUrMH8nrK719E=; b=aMaT/KwvfJ7uhbJncrtThcMbc30gzo/3StKZYEkM1DSaflS2wdHZ1F+XP3RMMmPWS3 LQ3uhA2nMyvL+VI/MTMM9/Bk9a5xgtfuXS5up6E5i8a38rfJycnBO3j6jc9EIIVWzF4e Qcn6sUGrgY0Tqp/vaWW11FQ7PxNoh6bdaW6zGGqDw4dGtVE99pHONHYPEeb4l1CWnELs L2cNTAdVEuk0+6ShrjNWCs3OmIjwW5jncCIr19tAJTOFoq1fClD3odjv9EJR6/f2hkf9 c3HAQpi6f5EiGZgMT9+4eUJdJe4jTmZUJ3XmBU+FbOAUkZPO7T4PkjRqiqJ/G11vC9A0 3Qlw== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@oracle.com header.s=corp-2022-7-12 header.b=Xv0oiZ6c; dkim=pass header.i=@oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=Nj7YFai0; arc=pass (i=1 spf=pass spfdomain=oracle.com dkim=pass dkdomain=oracle.com dmarc=pass fromdomain=oracle.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=oracle.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id i70-20020a638749000000b004a854e85317si1204224pge.164.2023.01.05.11.22.20; Thu, 05 Jan 2023 11:22:32 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@oracle.com header.s=corp-2022-7-12 header.b=Xv0oiZ6c; dkim=pass header.i=@oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=Nj7YFai0; arc=pass (i=1 spf=pass spfdomain=oracle.com dkim=pass dkdomain=oracle.com dmarc=pass fromdomain=oracle.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=oracle.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235854AbjAETV3 (ORCPT + 99 others); Thu, 5 Jan 2023 14:21:29 -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+EOJ1wdvtzA?= =?iso-8859-1?q?kxbaGdz+c0AmlwmM30c+pMHuXgwA5+3nmdckBS6RN0tm+VvhirKq+YTbqNc2?= =?iso-8859-1?q?V3nXXkntr+1uWD1LLCEqFgJfBqUpkw55EekpRQwQ9J8eBZiCIE4hz9yjyPhL?= =?iso-8859-1?q?2bRf4vbJFil/faISn8yzoVgWbGOCrm8pVjJSc6MCFYPi4tTq7bSRMday7e2+?= =?iso-8859-1?q?Cr5iIiIL7AxA4rwh58/0Dvn56iMu72A4i5VCXk5Rd/zS+r+R4QTnZ9lUOYJv?= =?iso-8859-1?q?khJ/WTrMpt7d/qzdX0bCRohSIGuWpHvR6NdgQ7+Rq4GokAhOhlSHLB5xbigX?= =?iso-8859-1?q?UNlrQDJ7brITOeSCMZiLAypjt4c3zdUj6UgTOAKvf8ta5Usng1vkvcWLaHk2?= =?iso-8859-1?q?UA4WQ0NrCoCclrkFqaY5TYutY4tI9jURTyr6mWDRg2SNNp9fozRqdbaxDL8k?= =?iso-8859-1?q?To2nnFWXQR51TusRktywgtCtVBNe1lL7KXXJt42uIVKZAWyxMKQLl7VekQ3Y?= =?iso-8859-1?q?DkLr/qXkKRLDn8ZxLyg2B4qc2pUlx3c4Mk93JLCpaCUXacq/10JCqbTpmXMf?= =?iso-8859-1?q?peae98zZ6XnusvwOide9e+5A2IVB5KwluMpNZBzpsP/A0MyPD/5upQzhg7C3?= =?iso-8859-1?q?gUkjCZikcRuu6WTP+Qb3qaQI6BBMGIwGE/IxPzmOBeX/kJpQhDX/5NKEY2P0?= =?iso-8859-1?q?1q0ihMJZ5O2WxWEn9FED19FoIo3cq99FywwCgmAC6UeGj0Zfd3IGNAMeCyTU?= =?iso-8859-1?q?PV2UhN9HXPqbh3ylLQsk0wMDU4o5BD75MQKXJjrMg9Nwvs6hMNWta/WtKWNW?= =?iso-8859-1?q?jcIlNOlwDYMtutvFYnYzqdtc266aptJW6X1/2M9Vlo0n6yTPlETbDx6/HRJa?= =?iso-8859-1?q?4uRViiZvu7tltZD/AT4M6Y1BpwXYR5GGu+Jsq/DD8+EYJ4IqlGmnWI8l8psA?= =?iso-8859-1?q?vv2OdOu+EQj/uOTdazUT1U+7CQ5qLktK6TQq4jQeXpbPlD1JlHspy4LP1DXz?= =?iso-8859-1?q?xeRmPel82CV8Wl8BNiE7I5h6wOia6s6IzVYK2ideMfyIKCjJflygp2wr/Xoe?= =?iso-8859-1?q?bhw4L1HwAI9G1gMLskE+/Yz7GWGYRbuWipBwG8Qwj48Uz9VuHKxnBwT8ksIy?= =?iso-8859-1?q?NZN+4rSwsKeVKKLtsPfMVrbde5w+bgOLTU0ti0yIhtHRwS64m6K670A5lcs4?= =?iso-8859-1?q?V2N4Xpai0RbM0dciUCHNmzI+EDITNPELJZ7hEszhvogEuck8Xyz9EBOFUfTe?= =?iso-8859-1?q?Iw0khVCwF302HpKemgQXapXJNZX44jIFFXKYCGTa0RqfNpfhsZ7EVN3qxiL4?= =?iso-8859-1?q?Q3lUGv8ZSVzEsywg9jJEGejEbuJ9ojyjDTjbv+GCEQ54fV8QFGQ4Hl3niDMU?= =?iso-8859-1?q?HKmDgAduV1tvLGhf1dB1xsXNcB1wXtA3G9pN2ZmeSE0I97ycgED9l7zJV7nN?= =?iso-8859-1?q?/R0Ys6llnpUC6E+tHZ8jS1dE/J0J1ruQLHsOPw/fxlvgmeqG49r9A9qNeVIx?= =?iso-8859-1?q?IFRqQaAbt4xtQQZWOeIBbHhbpnzuw9BRFQgDiWql7TxBpx40q23ixX+dQwem?= =?iso-8859-1?q?uJtOvovxsBvBXogHB9s8ZGX30zNZXlOeaLsSwv1liBbToEdjr7NoGwokJzbc?= =?iso-8859-1?q?YrB19VMLEAu0mD0jklUqRVD3DiKfPg/NkRr0k6g=3D=3D?= 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 X-Spam-Status: No, score=-2.8 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_LOW, RCVD_IN_MSPIKE_H2,SPF_HELO_NONE,SPF_NONE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1754211604234508213?= X-GMAIL-MSGID: =?utf-8?q?1754211604234508213?= 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 = __split_vma(vmi, next, end, 1); + error = __split_vma(vmi, next, end, 0); if (error) goto end_split_failed; - - split = vma_prev(vmi); - error = munmap_sidetree(split, &mas_detach); - if (error) - goto munmap_sidetree_failed; - - count++; - if (vma == next) - vma = split; - break; } error = 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 } - if (!next) - next = vma_next(vmi); - + next = 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 = vma->vm_flags; unsigned long new_pgoff; unsigned long moved_len; - unsigned long excess = 0; + unsigned long account_start = 0; + unsigned long account_end = 0; unsigned long hiwater_vm; - int split = 0; int err = 0; bool need_rmap_locks; + VMA_ITERATOR(vmi, mm, old_addr); /* * 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 &= ~VM_ACCOUNT; - excess = vma->vm_end - vma->vm_start - old_len; - if (old_addr > vma->vm_start && - old_addr + old_len < vma->vm_end) - split = 1; + if (vma->vm_start < old_addr) + account_start = vma->vm_start; + if (vma->vm_end > old_addr + old_len) + account_end = vma->vm_end; } /* @@ -700,11 +701,11 @@ static unsigned long move_vma(struct vm_area_struct *vma, return new_addr; } - 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 = 0; + account_start = account_end = 0; } if (vm_flags & VM_LOCKED) { @@ -715,10 +716,14 @@ static unsigned long move_vma(struct vm_area_struct *vma, mm->hiwater_vm = hiwater_vm; /* Restore VM_ACCOUNT if one or two pieces of vma left */ - if (excess) { + if (account_start) { + vma = vma_prev(&vmi); + vma->vm_flags |= VM_ACCOUNT; + } + + if (account_end) { + vma = vma_next(&vmi); vma->vm_flags |= VM_ACCOUNT; - if (split) - find_vma(mm, vma->vm_end)->vm_flags |= VM_ACCOUNT; } return new_addr; From patchwork Thu Jan 5 19:16:03 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Liam R. Howlett" X-Patchwork-Id: 39773 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:4e01:0:0:0:0:0 with SMTP id p1csp459545wrt; Thu, 5 Jan 2023 11:22:14 -0800 (PST) X-Google-Smtp-Source: AMrXdXue59npkLEond6pKk77+LJpvE4CRFkoggrpAc5urCDwDsO0t27myCRLL4Bj6cSJYWbcfVXy X-Received: by 2002:a17:902:8309:b0:189:469c:dc0 with SMTP id bd9-20020a170902830900b00189469c0dc0mr20473875plb.7.1672946534427; Thu, 05 Jan 2023 11:22:14 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1672946534; cv=pass; d=google.com; s=arc-20160816; b=Ex/laSYUtILW0Yb1QybCulxURO963yVn+TXSWfxNW5IuLhgIy4NmCFZvvV7xPWPN8u gTDGsc/SEb1FMud8F5XfG9cYeyFkdOnsJYvjFGFqwTT5WxBaikWBJ1J43YLrWgHzB1T/ QcbxA4cqI/N9KKcs7GzKX/WqtD4tYpJnwAGZFSAKtIZk6QJb0mC+v2oqCi0JglmSAEyL RW/IVgEQJxJgCjaSecpUkIRr7TnHqsgVeScAM4x/RJV4CkrYsNyaB4L5lq0hEM3LDRPQ Sf7JE1lLa6ynAeJVwribn4xCDmvdUKqNWUGyH4+IfYyiXc11oBublNLLh1JrZWjhudi1 XTpQ== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:content-transfer-encoding :content-language:accept-language:in-reply-to:references:message-id :date:thread-index:thread-topic:subject:cc:to:from:dkim-signature :dkim-signature; bh=243tS/T1F9l6g47RsLtVG7etDV8WRpTgO/rf9piXa7I=; b=pnlmnglygrI7PxeyW7EBD7QQCMbjXVKjYslOfCPIcG7QsMHo204IkMgsVJu5ztFnQW /dP5FlAwBgS/TR+9akSWScOzpBDprUhfJwiqOd/GRILZXemQxBjKztFCVycwjmu3gprf oTLO+U7qqMRm+RIPiGm/ZxeLMvfPcv+o0X9u9okx9tm7BsyX5cl6KKgURXnoCNj/SN2s 1VvfPjLob/ASjIZbvCPpY9l6K+Me3NsWzDZgNpE1G1yUQAb17qTmMKfdoxshzw9FCeRc /Pgt7NlbpdHGmv6x+L6l4nex+BQ1JRzyTRSRh4qjDjwM5oMGHphommLTCDQ4NjPCjKRO Er+Q== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@oracle.com header.s=corp-2022-7-12 header.b=kUTv2DV0; dkim=pass header.i=@oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=DVctm0WJ; arc=pass (i=1 spf=pass spfdomain=oracle.com dkim=pass dkdomain=oracle.com dmarc=pass fromdomain=oracle.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=oracle.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id a15-20020a170902eccf00b001899477302bsi39911811plh.588.2023.01.05.11.22.02; Thu, 05 Jan 2023 11:22:14 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@oracle.com header.s=corp-2022-7-12 header.b=kUTv2DV0; dkim=pass header.i=@oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=DVctm0WJ; arc=pass (i=1 spf=pass spfdomain=oracle.com dkim=pass dkdomain=oracle.com dmarc=pass fromdomain=oracle.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=oracle.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235733AbjAETVZ (ORCPT + 99 others); Thu, 5 Jan 2023 14:21:25 -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?= =?iso-8859-1?q?+an4InSf5me/FtTpwMEdbCeMB8bQ1bdqumLBzvFsygnmzcGr6K7ZNqDdZUit?= =?iso-8859-1?q?8JPFZJ0rEKo9mJL6u9YQOIJrFUZ+Ush+SKoac9pDQIE136u/kVFaxf4/oqbF?= =?iso-8859-1?q?d5rrEP+Ilgi2/1urMufEUBPIRXPDwsmE73eVi9+wIkd1ufp/4XFYDW3NQi3u?= =?iso-8859-1?q?UzctiiFqAWdwohtrC1Lk2Hx5ZAkS2ZtjV/z0iZN2xgBUgBdA4KsG2LBXcbmB?= =?iso-8859-1?q?vS1f9Vcrgvn7UwJWpI/764eVyp5k1TfxuiJC6VKcm7rKq52C6Z/xWbB6eMFS?= =?iso-8859-1?q?1ESnVOPCazRkDFj9Skxqmm3ZohS2or9503jiP+ly1ZW3GyP7p7mJhV/1kwgl?= =?iso-8859-1?q?hjB9r9cFo4++w0mzD/kSta6/yEQ8ZfgGMA1O+zLgKMaAKR7eDcBKBqpeB5TX?= =?iso-8859-1?q?sQzzIwZH6BBoqpeetmGgRz5nYguOqhFJTBlZi7hjjlQH/xoCtH1Rat6b1i5y?= =?iso-8859-1?q?WROFVrxpQ59hfqklPtkDc8ftrXK8z2p/c5EQXiC+Vq1K41qZNY+/e3dbaDCb?= =?iso-8859-1?q?8gUyVCHV6yD7giyrK4TvMO6ZEM1L5B+ap7EDiYRLEMyzNRn46XLkVhQFO+UK?= =?iso-8859-1?q?ozLyf1waOKi9sujZwZhZ2RRXLUAnY0/NpGSm1SuN+42XQCkzbcRVHDNmfktw?= =?iso-8859-1?q?PCjX5t6vMyLU3toaxMR9kRMlHPrvYhGJqCoMlzFH9ofOOfdD/DXmjzvfAFCg?= =?iso-8859-1?q?W3+5QMPj75TJWRdpzpSlMb+o+vCXNBKkF8Oe4GI7xwFh/Lg25XJBoN+GTnjL?= =?iso-8859-1?q?athUWcFAdBH9yCZZ9v5py4WPENBi4cGL/RzfO6ClQflVjBh500PVWOYS7Ick?= =?iso-8859-1?q?4t8IFp5QkiQ6Evky3vleDBfDNu1TQDl9zIDlYoLPwYjIEA+eULRfLd8rKIU9?= =?iso-8859-1?q?HQMNQdmXhSIFGliN/IVUFzwjdU9PIwkjqQtyJlv6T5+4VWzIU+NgxcVmcX98?= =?iso-8859-1?q?2VelSaXk25qltYoM5yVxdOMVaMwjKFYHke3d3PoH7YcXMdnNPkfYGOfXoSZq?= =?iso-8859-1?q?sfmfxJ68DdTzUvJCiApz3QrKLwTzA7+ODScAs7980zO472bMg3/bI1QO4aIC?= =?iso-8859-1?q?n8gYQPX5jilZVzMQ0dFP9r664kgITGUQ7iTFAD4SvHsyv6cr89FWgY1fXldE?= =?iso-8859-1?q?uSx6OQBxvCFDfoywBCU7yMZmRIFDq0CmDUXSVen8R0FKA9lr0Bs61CUoTdx0?= =?iso-8859-1?q?QsKV8M5rWT2BZ5Q5k8qaKEG0loE8BhSoePNlWDehNL0PAPHCnr+zMMIemnj6?= =?iso-8859-1?q?1GL7Biz8J89mhNtqPn2c58WGjiAQYLqOkOISFu0+IunK11/NQ6ylQt1aBqpf?= =?iso-8859-1?q?zgQ+E6wjKAWdcNUioFp46KxPlUffqikVXbaWKJzNhJmNT5pjy+ZjuZPCghGl?= =?iso-8859-1?q?GhKd9im7kWSo886pEJ2uqdqbLNmUKvX76GepB63CHRZCD6vt0DDOn4g4dB6/?= =?iso-8859-1?q?1GXo2HjbkxqE5qrJJwUa5M+Bxh8lrdABKTRynXrRZYYcU7JzSxySSFTq9Cm7?= =?iso-8859-1?q?PXLElqkI+AhfD3xHLTSLCzi/tH2Vod+/FGgw1sLtkNCjYGsqw6sv91lbuqaJ?= =?iso-8859-1?q?9esf8WStFpXyg9PJzSkrN6u4C/Fh6lHgslqdjTQ=3D=3D?= 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 X-Spam-Status: No, score=-2.8 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_LOW, RCVD_IN_MSPIKE_H2,SPF_HELO_NONE,SPF_NONE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1754211585551089058?= X-GMAIL-MSGID: =?utf-8?q?1754211585551089058?= 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_area_struct *vma, if (vma_iter_prealloc(vmi, vma)) return -ENOMEM; + anon_vma = vma->anon_vma; + if (!anon_vma && adjust_next) + anon_vma = next->anon_vma; + + if (anon_vma) + VM_WARN_ON(adjust_next && next->anon_vma && + anon_vma != next->anon_vma); + vma_adjust_trans_huge(orig_vma, start, end, adjust_next); if (file) { mapping = file->f_mapping; @@ -765,12 +773,7 @@ int __vma_adjust(struct vma_iterator *vmi, struct vm_area_struct *vma, } } - anon_vma = vma->anon_vma; - if (!anon_vma && adjust_next) - anon_vma = next->anon_vma; if (anon_vma) { - VM_WARN_ON(adjust_next && next->anon_vma && - anon_vma != next->anon_vma); anon_vma_lock_write(anon_vma); anon_vma_interval_tree_pre_update_vma(vma); if (adjust_next) From patchwork Thu Jan 5 19:16:03 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Liam R. Howlett" X-Patchwork-Id: 39766 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:4e01:0:0:0:0:0 with SMTP id p1csp459361wrt; Thu, 5 Jan 2023 11:21:42 -0800 (PST) X-Google-Smtp-Source: AMrXdXv+JCOVJ16Q5yT8GuYoUpD73FtGFRJay1Avt6E/gXTxy7520Q9vDh/G/tsbCq///7UpY8hv X-Received: by 2002:a05:6a20:a6a6:b0:ad:d4d6:5c1d with SMTP id ba38-20020a056a20a6a600b000add4d65c1dmr75795435pzb.14.1672946502603; Thu, 05 Jan 2023 11:21:42 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1672946502; cv=pass; d=google.com; s=arc-20160816; b=yaE0y7r+6w1xion9wn/s2FdegxYKP/BfxAM+EMpWlzVgidAGeV89ihOySufaOcehwS 1byglkJkxyEpzqxVwcw4IIwzVH1hiWpyiP63eh0KEHtx4uMRXm1ovgBWl8ieM+bcv4gH 28e+4ZfHV4wO5TYNqFet201NUThGHw+hoGAa1AH9h330Vr0mEtIOicHtKc7qyEJw1g0n B4e8vjPRdkQBbYLP+R1lnftdVcU2jFhJw8AtY9Zevy3jN4U1IqewcGfuYEHIZcSgYknH QRfYqXNc0CLY46mNuWKJVsr2ENhz+uVrToDSUk/mK+O9UyUc63re3QlhHjlDrRYgeBk0 x5Qw== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:content-transfer-encoding :content-language:accept-language:in-reply-to:references:message-id :date:thread-index:thread-topic:subject:cc:to:from:dkim-signature :dkim-signature; bh=9wrLMq2gptGF3Uu0h1TPr93fT4zhbM9qkTOW0TghwWA=; b=wr4b9WyxrFn17FJZWMNMHAuo+3MaZdEM1b2i+eQhZcM114v6B+X3qViqll7d0us7Uj 6VSuNi05kngBzf7mwb+LyNbbWRzGWWGAh8MRWu1jpW07qHowzcD7NwtuRjmDx4bjjlP5 erzU0zl0elUhMJ94DfUV3vJt0pIv5CRGydu5O2288P4fwYBCBGYReP8l3a3jJxSq6YJD LXVfvKmGXMg7F4wINCcHFy2ifJMzII8wiQ1r4ctmxtgY8zyzhTlZOalX8gYLQcM2b4aW Lrcgxt0E6pFWBmPLieEcPwedFR0/NoZ4w0AsqQNn93K8T1KbD5HjdWJwQJ3BpgJQpyBe 3EhA== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@oracle.com header.s=corp-2022-7-12 header.b=qJ01Aj81; dkim=pass header.i=@oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=dbGCYIU9; arc=pass (i=1 spf=pass spfdomain=oracle.com dkim=pass dkdomain=oracle.com dmarc=pass fromdomain=oracle.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=oracle.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id x15-20020a63170f000000b0049f3be3d212si18266175pgl.141.2023.01.05.11.21.30; Thu, 05 Jan 2023 11:21:42 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@oracle.com header.s=corp-2022-7-12 header.b=qJ01Aj81; dkim=pass header.i=@oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=dbGCYIU9; arc=pass (i=1 spf=pass spfdomain=oracle.com dkim=pass dkdomain=oracle.com dmarc=pass fromdomain=oracle.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=oracle.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235509AbjAETU2 (ORCPT + 99 others); Thu, 5 Jan 2023 14:20:28 -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?= =?iso-8859-1?q?/pzgeq8lOugIzGxzbBTWI7TpCL+A5lFs4ywsT63bOgMPSjVPUfhSKM3z8Eu5?= =?iso-8859-1?q?CY1NqzHdW1eDff5arKLmSBvUJrKrWggkZVPhjFg0xjHKA+8XM4lIacCGAHrR?= =?iso-8859-1?q?hbPZlb2aLnzgFcg7h5Z4gDgEybSExNuOZ/E5H++AXeRCmJjXGPtbV7EA99TJ?= =?iso-8859-1?q?OIMbTNJ+Ud/MTTTi8aECXsrIkLGNR8QV2+MeRSwHlC/np8k/fRKR4W6FtjSe?= =?iso-8859-1?q?vzIs982iXjTqqGjkxy+KXGt7l0GpIyh9mtZptVniThCdtDcKWLf10ByV49On?= =?iso-8859-1?q?6d+8YmqRaD+5GuTp8It2TAdKW+8hD4JC0BkUZ5CdNNH0VReTmcKpOeeDi502?= =?iso-8859-1?q?RCZtmPXMRJtZ2NDlaZPeyXYjGdUTDUrd/5amfOf2jzi4pf4SNijxpJXnMAqe?= =?iso-8859-1?q?v5uKhn2s0frRuxTolgs6LQDYTetcAg6oP5AhNA/UOeYB6QA/GT4ywDWUwyJe?= =?iso-8859-1?q?MpI/J29HqxbuwblzRILLyVd0Cq7N2b+s3TsMxDHEVoMNm/KRQmZiCf24km4l?= =?iso-8859-1?q?qSrJVUxexnRXJcsx8DWXBALDaj9lImQ7TUqJGzAtkmpNOCJ3yFmrPftQ+Ufg?= =?iso-8859-1?q?Ld3ld9znHiWIMhvBlo5nSEa5wYVXWktEg08Fl/RgQGmx+b8DeGyVMObRp7zQ?= =?iso-8859-1?q?xJ+ylh/x69eqVU0gSIoQOKIjFttU8cQDfxrHIaAgAp+7aLrLgSUR7Fw1A8Q/?= =?iso-8859-1?q?ef025Bv2S+oaXVB2iVWyNPrPRfV/I8HbYjWWYoQISi2m3oftkCiuRk2KIOYZ?= =?iso-8859-1?q?gMznZNp5gsw209SvLTHCLpySneUilQn0UgdztX5M0/RSt0QLfYA8EG5Cxw5F?= =?iso-8859-1?q?KkZha650kHOj0qf34prFO5Kf62h7DwcX5qVpJRJVWzYjrjpehkRoGohBAnOu?= =?iso-8859-1?q?53pB/Xbf7Ws2WSkNnnQWE5caaWjNkTM93g6TblG+szSavb4TqbaRL8GMGkMm?= =?iso-8859-1?q?/6AxwXtShXcL2l45C/MJrKczGmL3sKH0klf8qUUx9xs7JRyADQnEMcJz5yun?= =?iso-8859-1?q?LQzaV6Ntz0okBclPD0jUgJQ+NAS8Kxk7YMT/+kO3hFKvXzO/NosTTQoq1ow2?= =?iso-8859-1?q?bGHL3liEbohvhrvu8gd5sG4Rbkl+DI0QDHdSopGrC0Ns6osu6Vi3FIuKSwrP?= =?iso-8859-1?q?BuFPXguG/k7QomSoXzANA/j2mtaKOhviqyd7E3jn3fpcqv+rh6wQlz4KRivE?= =?iso-8859-1?q?HYz4SIB7wH7aEYPLSCN9aQ8a/vjtKkyrVC5TztDJMkYP08uGK13YBvNK3l0B?= =?iso-8859-1?q?G5Rm715WMVS8+ofmCbDl09cUFM+dPdZq92QLoS3uo6tVm/4eMR/5L6aLkHxD?= =?iso-8859-1?q?IueHEiHVbXu36ZxZBMyU5SZc/4UpeQlipste95aXRTESMZJ1Kis0KlrR4UIh?= =?iso-8859-1?q?HEUq7VUe19aYLk9nnyt7fdx6HUlDR/q+Fp9YaylzcYwBtyENsHqEYGRXoI7A?= =?iso-8859-1?q?gfbN9UEttlxiPlpU5PxJQsU6AFZQogexl8KB376Ye8HNcf6/YEGn+gYrLG/6?= =?iso-8859-1?q?W3D80GlN+xJzQw32wQ/sagEeYF4JdWDYva350j30xOyst0DsLq+nLYz72Xmf?= =?iso-8859-1?q?5dKCSD/qxKkFJwlC0j270Vy+z6a3d6DI2k02kaQ=3D=3D?= 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 X-Spam-Status: No, score=-2.8 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_LOW, RCVD_IN_MSPIKE_H2,SPF_HELO_NONE,SPF_NONE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1754211551512448357?= X-GMAIL-MSGID: =?utf-8?q?1754211551512448357?= 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_area_struct *vma) return !(vma->vm_flags & VM_SOFTDIRTY); } +/* + * 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, struct vm_area_struct *vma, return -ENOMEM; } +/* + * vma_prepare() - Helper function for handling locking VMAs prior to altering + * @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 = vp->remove2; + vp->remove2 = 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 = NULL; /* uninit var warning */ struct vm_area_struct *next = find_vma(mm, vma->vm_end); struct vm_area_struct *orig_vma = vma; - struct address_space *mapping = NULL; - struct rb_root_cached *root = NULL; struct anon_vma *anon_vma = NULL; struct file *file = vma->vm_file; bool vma_changed = false; long adjust_next = 0; int remove_next = 0; struct vm_area_struct *exporter = NULL, *importer = NULL; + struct vma_prepare vma_prep; if (next && !insert) { if (end >= next->vm_end) { @@ -753,39 +873,22 @@ int __vma_adjust(struct vma_iterator *vmi, struct vm_area_struct *vma, anon_vma != next->anon_vma); vma_adjust_trans_huge(orig_vma, start, end, adjust_next); - if (file) { - mapping = file->f_mapping; - root = &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); - } - } - 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 = vma; + vma_prep.anon_vma = anon_vma; + vma_prep.file = file; + if (adjust_next) + vma_prep.adj_next = next; + if (file) + vma_prep.mapping = file->f_mapping; + vma_prep.insert = insert; + if (remove_next) { + vma_prep.remove = next; + vma_prep.remove2 = next_next; } - 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); if (start != vma->vm_start) { if (vma->vm_start < start) { @@ -823,69 +926,7 @@ int __vma_adjust(struct vma_iterator *vmi, struct vm_area_struct *vma, vma_iter_store(vmi, next); } - 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 == 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 != 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 == 2) { - remove_next = 1; - next = next_next; - goto again; - } - } - if (insert && file) - uprobe_mmap(insert); - + vma_complete(&vma_prep, vmi, mm); vma_iter_free(vmi); validate_mm(mm); From patchwork Thu Jan 5 19:16:03 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Liam R. Howlett" X-Patchwork-Id: 39777 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:4e01:0:0:0:0:0 with SMTP id p1csp459726wrt; Thu, 5 Jan 2023 11:22:47 -0800 (PST) X-Google-Smtp-Source: AMrXdXvN/F3T2tAREjkJXdPW9zvQ2QXmy84PLyrPqzfkD1cgJq7AQ07ox/jevZ2TxTmcdSmbfItZ X-Received: by 2002:a05:6a20:158b:b0:a2:d594:6868 with SMTP id h11-20020a056a20158b00b000a2d5946868mr79678075pzj.9.1672946567619; Thu, 05 Jan 2023 11:22:47 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1672946567; cv=pass; d=google.com; s=arc-20160816; b=HTvgRGORQbtsvKKMMkuX6cfgbMyHGVANoNxjWJx4vwsukPEnwRRX7Gr3eho34q64yS /EfCFNhq9+qn5iXbRN3RafoA1VpA48GsKyCURZU1O3C3HMGHxG9QCvxCBCB2r6p57VXW ZsGwRhrmdCCI6KIQPY+Ge15OLZdBTuX+re3AilPMmaoENZI1eUOm1scagpVVlPTYTJCE /EGaP8EQZYzcPDMG3dSBbFKb/ZNMA3rU3t9+lXD0hw/oHHcEHio4ZyXFS348nlbR+4GL i8NwmD3veAs1nwbk6efH86cfNXKPnAczrPFLcUsZx+MKKE5uQe4elrGs0YhJv2HNJOVA e4qw== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:content-transfer-encoding :content-language:accept-language:in-reply-to:references:message-id :date:thread-index:thread-topic:subject:cc:to:from:dkim-signature :dkim-signature; bh=Zf4dD/GIxBl0AjcjR6WG+8X+eKixuRYpeZDz4C5cHuo=; b=CrMtCRxnlQMlUCaMWcdkKMsZhEom3dt26Ga//pCxer1v9DwQgjMONDWo5lo62CMPBl Ojd/ifJvbAs+d+6dUhN69Y7hzjjB+I2EkgaqhH/QkzhmZBUsRuMfvIwfVY+0dvbS/Q20 G3EwWDg4mZVqV3gCkaz3rbk9ZYeuMHmN/bag63xtdc4RZVCSAYWxhmv3TcFBcuGlngPi xEl5R5rQby8/WLRp7AsgxcLi8khUoeGzCusIZt43Lm/UGvNU1n7GFiMPV0r16IRc9c18 ySksqfIzYc6xWt0vwOQw2dHoiwj69HgLUGA5h4LiMQ8J6N60fxvo+wz9gvtIZHJD7d8G 4tfA== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@oracle.com header.s=corp-2022-7-12 header.b=wzyrOu3T; dkim=pass header.i=@oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b="dXz4K/G2"; arc=pass (i=1 spf=pass spfdomain=oracle.com dkim=pass dkdomain=oracle.com dmarc=pass fromdomain=oracle.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=oracle.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id h128-20020a636c86000000b0047711269d75si38958886pgc.516.2023.01.05.11.22.34; Thu, 05 Jan 2023 11:22:47 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@oracle.com header.s=corp-2022-7-12 header.b=wzyrOu3T; dkim=pass header.i=@oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b="dXz4K/G2"; arc=pass (i=1 spf=pass spfdomain=oracle.com dkim=pass dkdomain=oracle.com dmarc=pass fromdomain=oracle.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=oracle.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235776AbjAETVz (ORCPT + 99 others); Thu, 5 Jan 2023 14:21:55 -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/d1z1zlvx2Zx6Eh13?= =?iso-8859-1?q?ejwJ7CpKl1SQIOgm8/9Rc7qb/2UT0Yg+itJNrdnlF0yBZWloUSzTCtRUa5O9?= =?iso-8859-1?q?HcpKMyH+tdNI/ybdt8AftKCT7e5J70Taj1sbw+sxyTFPMK9b5MR7gxO8qWUA?= =?iso-8859-1?q?gbEasBcOUIdUUp1MneShQ+NPxT/vtHRXCFlcN3UEvbI7OE2xr4I0e7q0Ejxj?= =?iso-8859-1?q?1GvRaDjbQOtW8jlwZCB8Q0HmPyWLASjqL4E0QSGlL9REUrQxnNiK5AR7L0DA?= =?iso-8859-1?q?cUd3HXKdRHTEvP1hZjmQnXOmz7k9SBjFnALsVsMpjp1YaWw5wiYfLyFd4VnV?= =?iso-8859-1?q?a5vQpKHzavWBHGkH/xGt35CcfVQ0EE5S2XF2+3sTbDabmNFfW4ZkEWyutj3X?= =?iso-8859-1?q?D7sdwHMW+/hOR5QbfTY9e7wT/pQF/RK4ad69Db6feonY8Uts//hcr1UeVwt4?= =?iso-8859-1?q?pVAKgixu8jPmAsKBYZ7U8hxu2H27X6KiJkRVXRNqUj6v63ZFQFGWRCicDb3n?= =?iso-8859-1?q?UEBcR17h97RmksYJk9rlsd98FG6cGJP97mztYfh6oQ6K8gklAvwJ4cFdWqC/?= =?iso-8859-1?q?Znn41/jiAxVgA+p1UhF8BmcHx3janOyl2ZMjeULdp6fASf1fwA+ns68kITFg?= =?iso-8859-1?q?UfZ7RxldXszPpGojYarwti4Qdq35jdrVV5zKg4E7Qhp5SatEbR2gCsJMrko5?= =?iso-8859-1?q?BkUX3XuMPWgzNWkmkuNhyJVFxYAEIJTgRchSqnQ4SxFt5diMu0rwOqAEwiTb?= =?iso-8859-1?q?ivnTFCgU5rmj+6BHwh0vzZP/7wd/BhPTqRMruW2ILIdXMcAVwrQzXNZlxK3/?= =?iso-8859-1?q?MTE/RnGHwMK4/Xp7NMr86CrED0DRDbbEgeJJXc6670dWnMol+avZjGYHunoh?= =?iso-8859-1?q?eC73RYCq0h/v07KZv6C1aFEz7G+I496Bj2vdc0uTNk/g7i3Elai4VBnFOODQ?= =?iso-8859-1?q?fHOB1sO2n4HmmI3VT3IruA9PqrxV29p9tiY18CbIGjE6tywZ4m/y258M4pW8?= =?iso-8859-1?q?EvEuK+P1bA8xklvRGD88tGItIlwkNwBb60oz4T3DDP63imVrHPtSgtk6yk9B?= =?iso-8859-1?q?bIWQ7wBfJohap8Zq0nRsfqwlxzeL5iBTE/KQy7Uv/gn+nS7oLTW5QTvhx6J6?= =?iso-8859-1?q?dulK4FWls69t3XwDBdpgR1uDp8adTX5zd1yaqRi5TEOTU6UVUc3KHiC1PStH?= =?iso-8859-1?q?52Vq8pdXOFcvjTTq58SGTjdhWjeFwhRYT5+z04RI5M62Hta4tES/jO+U6ugO?= =?iso-8859-1?q?i56IDPzJ8QSAsbXQimjQc+y27+CT2kPbwctbYVM8bObMqSCsdYmPXemk1mbk?= =?iso-8859-1?q?9OAO4C/lS9jreTD2grTOiuPx2rjIowXEFkgS7rYMcYpcCXiVOwDiV5UMkY7+?= =?iso-8859-1?q?cP0Gg4zJyEsgL3vfvfApMGqpAR+d4c3SuU3KxDpEvwM4FChn/hRE7joNXSVQ?= =?iso-8859-1?q?pnQTe0UtILi74Rq1XgJWOspAVZVHDn0y3exeKy/iGhrurdqbIa+hjcMH2/vq?= =?iso-8859-1?q?KbvQ2CBNCYsAfpJOTHYz055nA+RI44wukXJdsoWTEY52FyW5wmpsbeUJBwBo?= =?iso-8859-1?q?e6MkxdzyGBUx/lnLUu/k46VrwbttdwErQZHCBddy6zHV6K8AGTXgk23nRHup?= =?iso-8859-1?q?z8JytSavnW5UlGqMZn7DrcALxBfEpBG/lN78BpA=3D=3D?= 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 X-Spam-Status: No, score=-2.8 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_LOW, RCVD_IN_MSPIKE_H2,SPF_HELO_NONE,SPF_NONE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1754211619646212540?= X-GMAIL-MSGID: =?utf-8?q?1754211619646212540?= 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_area_struct *vma) return 0; } -/* - * 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 == @next->vm_end. - * Checking if the @vma can expand and merge with @next needs to be handled 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 = vma->vm_mm; - struct address_space *mapping = NULL; - struct rb_root_cached *root = NULL; - struct anon_vma *anon_vma = vma->anon_vma; - struct file *file = vma->vm_file; - bool remove_next = false; - - if (next && (vma != next) && (end == next->vm_end)) { - remove_next = true; - if (next->anon_vma && !vma->anon_vma) { - int error; - - anon_vma = next->anon_vma; - vma->anon_vma = anon_vma; - error = 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 != 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 = file->f_mapping; - root = &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) != start) - vma_iter_set(vmi, start); - - vma->vm_start = start; - vma->vm_end = end; - vma->vm_pgoff = 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 altering * @vp: The initialized vma_prepare struct @@ -756,6 +640,79 @@ static inline void vma_complete(struct vma_prepare *vp, uprobe_mmap(vp->insert); } +/* + * 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 == @next->vm_end. + * Checking if the @vma can expand and merge with @next needs to be handled 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 = vma; + vp.anon_vma = vma->anon_vma; + if (next && (vma != next) && (end == next->vm_end)) { + vp.remove = next; + if (next->anon_vma && !vma->anon_vma) { + int error; + + vp.anon_vma = next->anon_vma; + vma->anon_vma = next->anon_vma; + error = 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 != 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 = vma->vm_file; + if (vp.file) + vp.mapping = vp.file->f_mapping; + + /* VMA iterator points to previous, so set to start if necessary */ + if (vma_iter_addr(vmi) != start) + vma_iter_set(vmi, start); + + vma_prepare(&vp); + vma->vm_start = start; + vma->vm_end = end; + vma->vm_pgoff = 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. From patchwork Thu Jan 5 19:16:04 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Liam R. Howlett" X-Patchwork-Id: 39776 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:4e01:0:0:0:0:0 with SMTP id p1csp459724wrt; Thu, 5 Jan 2023 11:22:47 -0800 (PST) X-Google-Smtp-Source: AMrXdXsJSlfjdbBuXW8u30CE6BtVwButYwk/KimvsygrMh/4AUmDGCqYhCPawLev8YiavZaldu7b X-Received: by 2002:a17:90a:8b05:b0:226:7fcb:c215 with SMTP id y5-20020a17090a8b0500b002267fcbc215mr14145314pjn.17.1672946567624; Thu, 05 Jan 2023 11:22:47 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1672946567; cv=pass; d=google.com; s=arc-20160816; b=PgO8Jz5YpbByiIfDwllQvAAiCNkfAfyM55umfDK9VIsbRH2i6lE9GyeJH+tau0meSu sJtp05CVscZuy95NL5X86g5hQ4HZMQ/0Z84kFGhIJ0fxBerjBkJnnW3KtAOUAQ1zhTyB WBd7wrlO+rl4TiUN/HrT9Sh0uE5hAKlfZIf/Qm3S7UWIZYAXhHWt5SBu5XzDETkJKy83 OL0MqzdF6oT/1PafQMgj2F4IPExW5RzEemb7YA2qGAW2zEioWnGyueQk3YQ9uBlcLpev 9SS1DhMqulGkXYVdFEpdXXH5CD7iS1pBSmt73D9iJ7xc+ySzY30VEmhjHBUnUwpi7RpA Nf6A== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:content-transfer-encoding :content-language:accept-language:in-reply-to:references:message-id :date:thread-index:thread-topic:subject:cc:to:from:dkim-signature :dkim-signature; bh=KYM+JnnKnoZTopkYfjEHdPmQECZEXb+C9gXcn1YFP5g=; b=QS8t1W3VvWxvpECL730eRJguJH5/JhdVOi7pVWtD/L6GVGRPj5jQ76X7siFXQmBRsp dxM9FYaDtmu/A7Ke20hUpxemHTCqI9XHEnqaVKgOq18Arf73iN6wxA4Rc9srQwgDOVho vL3R5W4LgmGDk7RxocZvXHnWVlcJFKQISikA6dnsM/f/5mBX/RH4raYUc9Ue9dKj3omk YSo1lxzXEUNDqZ+HYMvT0W0artBuAF3XzrqXauleZR1hzE1JkKnB8w2o6PSRKVdK5FCI jD3dWBHr2mbyuOUmrkLLvBZnib3As3p0hMb5skKQ/vhnB1L+siP/1T3HpZCjdiLMyzi4 W29g== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@oracle.com header.s=corp-2022-7-12 header.b=sWIkGv9w; dkim=pass header.i=@oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=JuhQdMZG; arc=pass (i=1 spf=pass spfdomain=oracle.com dkim=pass dkdomain=oracle.com dmarc=pass fromdomain=oracle.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=oracle.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id q18-20020a656252000000b004988e653842si30739600pgv.139.2023.01.05.11.22.34; Thu, 05 Jan 2023 11:22:47 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@oracle.com header.s=corp-2022-7-12 header.b=sWIkGv9w; dkim=pass header.i=@oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=JuhQdMZG; arc=pass (i=1 spf=pass spfdomain=oracle.com dkim=pass dkdomain=oracle.com dmarc=pass fromdomain=oracle.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=oracle.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235756AbjAETVr (ORCPT + 99 others); Thu, 5 Jan 2023 14:21:47 -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?x3xtsLWq1CFYqihizsZMoXN?= =?iso-8859-1?q?lOiR/eZIkL9vL81cE6JjuOj526T07yADKH0YoC5EouuJT+/I8WdaqGirDaxN?= =?iso-8859-1?q?t6OGUFv0lnFjS2WsfcskZaTlfm/unV9SA3vS/EGFgMSvgH4izrXst1i0kULN?= =?iso-8859-1?q?NDBx486SCers0VV6liu5+EF5cos8GvpQ8UauCROHSKBSmnJIh5V9ftbwyVYb?= =?iso-8859-1?q?tEvynH+TXL+Po7uqqgA2o0d3DjJGMBwtDHZbN62fsa4A7ygFbdo2bt3CDvIt?= =?iso-8859-1?q?v4KLQqdgcfkoGrIP8JH/M4DLOo+1hjHCw8QrrxrFh18+g0vUFL4FPFZfZIJc?= =?iso-8859-1?q?+8ajuS/hIGDU/olx7XsPRCovIbXNyWOKUp52PDTPWDVMGAKCOxYX/PcGeP0R?= =?iso-8859-1?q?CQEJvU8Wqo/xVnC4E0Ri6uq30pUd38gppPbzROrBbsT/NcV9w6a9Ep0XuT8f?= =?iso-8859-1?q?brO1A0ghfvrrpK9C/5lcxfq5eEmzhq6MsuMRtt4VSnhMEj9e/N/IUee2pxoM?= =?iso-8859-1?q?ur+4GcnH0jo/NMVoN3NdkRvTTP1ROYsyO9yU8O0VY4uy27PatNCB//ItA4Lq?= =?iso-8859-1?q?lTzSI4CfTBbsOi/u0/nTtwXaZgeqodXBgsXzQWrErTqmZkBMTq593CccluAD?= =?iso-8859-1?q?QqJc7FzZn+8lV5XPRTxVfwSbI5h39WTMxL3ZDTNsDO1sNm5py90+UXKr7E7c?= =?iso-8859-1?q?/Eg74Lo59zqomc75dUUQFGirrpUAHAXEqEk33XOG9g1RuCx9QmuZxm4cueOb?= =?iso-8859-1?q?zxrA5QbFDlmb22AMnsKMwyFyGxDkA8IBx1NRyWMAPxTgA6qiJ6AiRj6Ijdgu?= =?iso-8859-1?q?I+B+jA7WK4KLugO1VAIpjf0OCKC23rsZ2i7o5Nx7zrIHUiNP+GYBZYoum+sx?= =?iso-8859-1?q?Nrqnpp7CpFfdfc78b7WTi6fcBZBGgVDNL1eGo+pFcdzQEggAAOy8QncSSszw?= =?iso-8859-1?q?pDsbbhiWM0TK4DNmp0l3s1R76mQhJYShYFgTtWOLRKuLkil8AjvnE+sWyWlk?= =?iso-8859-1?q?0hsjtUHFXCRL1+sztJ1plJ1bBqDbvj5KpsdkunLcb24cJA3wZAixs8gN+AN5?= =?iso-8859-1?q?8stT/OCU7ascJsvhsAn7kMR3Gu7+paN+Hc2nU3mO/YUGX0y+HmRiayc6viOL?= =?iso-8859-1?q?rf8dnw63a/A76QncE7V8Q/AVBiDLsB0shKlULY0RBOZqkSdmXQXB+GFQhmlV?= =?iso-8859-1?q?4MdbqNe3LdF6UWilXEne0BE7IFTsbP9CiQt4p5PbUUMoQ+4h01NPFgLbJU8U?= =?iso-8859-1?q?l1DUt+BfWnlfzA1p8IpPoJ8o5cD5B8mWiucAAZIcK4NOavxDKJg5zu5itAj8?= =?iso-8859-1?q?VnU6zU0zxYBi+i9G+C5TjnVHCl9zzW25GXbV/YelQx2hIWWzsvU7yNriFTGk?= =?iso-8859-1?q?WQaHgM9A7xntGDHyEWUL+g9eUg8dD3fixOhlrPielYDyqYC4zZL+nCd+JXM+?= =?iso-8859-1?q?HsJeO89hPRvJACXlhMw7WdLs36kw9W0JgcNTyuhVf1L4T2yyqSwrdFMmonC4?= =?iso-8859-1?q?bNZi7sJ+7FSi+1mYnUwHY3dSekGc/6fjmcVk42DYY0Gt49TXG86sqJzgoIDX?= =?iso-8859-1?q?mK5JbiqnLA5foLfPNK+Tdw4VKaHoJd94WgMZY25IKXL4HV3i2tP0F5NKIhk0?= =?iso-8859-1?q?drnZrN/+EsulOsW9yYLj3RHKMc4kOr4RV7mUsXw=3D=3D?= 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 X-Spam-Status: No, score=-2.8 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_LOW, RCVD_IN_MSPIKE_H2,SPF_HELO_NONE,SPF_NONE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1754211619627453193?= X-GMAIL-MSGID: =?utf-8?q?1754211619627453193?= 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_area_struct *vma) return 0; } +/* + * 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 = vma; + vp->anon_vma = vma->anon_vma; + vp->remove = remove; + vp->remove2 = remove2; + vp->adj_next = next; + if (!vp->anon_vma && next) + vp->anon_vma = next->anon_vma; + + vp->file = vma->vm_file; + if (vp->file) + vp->mapping = 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 altering * @vp: The initialized vma_prepare struct @@ -628,7 +667,7 @@ static inline void vma_complete(struct vma_prepare *vp, /* * 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 = vp->remove2; @@ -662,17 +701,14 @@ inline int vma_expand(struct vma_iterator *vmi, struct vm_area_struct *vma, struct vm_area_struct *next) { + bool remove_next = false; struct vma_prepare vp; - memset(&vp, 0, sizeof(vp)); - vp.vma = vma; - vp.anon_vma = vma->anon_vma; if (next && (vma != next) && (end == next->vm_end)) { - vp.remove = next; + remove_next = true; if (next->anon_vma && !vma->anon_vma) { int error; - vp.anon_vma = next->anon_vma; vma->anon_vma = next->anon_vma; error = anon_vma_clone(vma, next); if (error) @@ -680,6 +716,7 @@ inline int vma_expand(struct vma_iterator *vmi, struct vm_area_struct *vma, } } + 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 != vma && end > next->vm_start); @@ -690,11 +727,6 @@ inline int vma_expand(struct vma_iterator *vmi, struct vm_area_struct *vma, goto nomem; vma_adjust_trans_huge(vma, start, end, 0); - - vp.file = vma->vm_file; - if (vp.file) - vp.mapping = vp.file->f_mapping; - /* VMA iterator points to previous, so set to start if necessary */ if (vma_iter_addr(vmi) != 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 = vma->vm_mm; - struct vm_area_struct *next_next = NULL; /* uninit var warning */ + struct vm_area_struct *remove2 = NULL; + struct vm_area_struct *remove = NULL; struct vm_area_struct *next = find_vma(mm, vma->vm_end); struct vm_area_struct *orig_vma = vma; - struct anon_vma *anon_vma = NULL; struct file *file = vma->vm_file; bool vma_changed = false; long adjust_next = 0; - int remove_next = 0; struct vm_area_struct *exporter = NULL, *importer = NULL; struct vma_prepare vma_prep; @@ -751,25 +782,24 @@ int __vma_adjust(struct vma_iterator *vmi, struct vm_area_struct *vma, */ VM_WARN_ON(end != next->vm_end); /* - * remove_next == 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 = 3; VM_WARN_ON(file != next->vm_file); swap(vma, next); + remove = next; } else { VM_WARN_ON(expand != vma); /* - * case 1, 6, 7, remove_next == 2 is case 6, - * remove_next == 1 is case 1 or 7. + * case 1, 6, 7, remove next. + * case 6 also removes the one beyond next */ - remove_next = 1 + (end > next->vm_end); - if (remove_next == 2) - next_next = find_vma(mm, next->vm_end); + remove = next; + if (end > next->vm_end) + remove2 = find_vma(mm, next->vm_end); - VM_WARN_ON(remove_next == 2 && - end != next_next->vm_end); + VM_WARN_ON(remove2 != NULL && + end != remove2->vm_end); } exporter = next; @@ -779,8 +809,8 @@ int __vma_adjust(struct vma_iterator *vmi, struct vm_area_struct *vma, * If next doesn't have anon_vma, import from vma after * next, if the vma overlaps with it. */ - if (remove_next == 2 && !next->anon_vma) - exporter = next_next; + if (remove2 != NULL && !next->anon_vma) + exporter = remove2; } 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; - anon_vma = vma->anon_vma; - if (!anon_vma && adjust_next) - anon_vma = next->anon_vma; - - if (anon_vma) - VM_WARN_ON(adjust_next && next->anon_vma && - anon_vma != next->anon_vma); - vma_adjust_trans_huge(orig_vma, start, end, adjust_next); - memset(&vma_prep, 0, sizeof(vma_prep)); - vma_prep.vma = vma; - vma_prep.anon_vma = anon_vma; - vma_prep.file = file; - if (adjust_next) - vma_prep.adj_next = next; - if (file) - vma_prep.mapping = file->f_mapping; - vma_prep.insert = insert; - if (remove_next) { - vma_prep.remove = next; - vma_prep.remove2 = 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 != next->anon_vma); + vma_prep.insert = insert; vma_prepare(&vma_prep); if (start != vma->vm_start) { From patchwork Thu Jan 5 19:16:04 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Liam R. Howlett" X-Patchwork-Id: 39768 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:4e01:0:0:0:0:0 with SMTP id p1csp459367wrt; Thu, 5 Jan 2023 11:21:43 -0800 (PST) X-Google-Smtp-Source: AMrXdXvgPDgJueCeNDufeU5U8i89/PZDbJDooPLge7dieOpDNFhJCCfJMOhatS9wFExeNjP3BWBt X-Received: by 2002:a62:fb0d:0:b0:583:319a:4413 with SMTP id x13-20020a62fb0d000000b00583319a4413mr2435055pfm.24.1672946503551; Thu, 05 Jan 2023 11:21:43 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1672946503; cv=pass; d=google.com; s=arc-20160816; b=k1ywCBSdpmDL77AkaaFzqhuxyEDTFrWgtzhbI5ii4G3HH6A2honLfr07Jzw7WfR3Qj xGTOMlIwlngNtM5DaQkCkWx9BIaBY2p9bVSdrIMLV+/f5XKP5M8lV06L8mX6wCW+LaiK ArXooB6B5EdiV9gpe4l/+ZlTp9VaTYicfZsKTV1lLsNmUU+Y59g/yb0WI5Bi/McX7Nyr G9zZ9N0Rl1B8ypZRhCxmnxqjPQxSyjnimzdmY8yNtlSQSoYoEQrzWHQUyDDv2wWo5IJn B241Bc9zL7Ebii+Tj9kgJYs6qQrRJ0co1BHsg2OGV3VfB2Z7Oss2q2oD3FxGMBm3ih65 hOIQ== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:content-transfer-encoding :content-language:accept-language:in-reply-to:references:message-id :date:thread-index:thread-topic:subject:cc:to:from:dkim-signature :dkim-signature; bh=fOI0ThBpRiVc0Uet2n6YUDaHqGgBSIkgC44zMu8JC0I=; b=s99zs1h2Oh3QkxANWlUp7ddtp5amuUifByQZEnoHLQKID7hEtVaVKnj8cXiO7l3hwk 61dJrgDD8rIBTJoA2UIowjkM9VcT395SqiMELDSrQNwE8M+/EQ1xwkPOCLU6r9La62B3 eqMlzuXelQg+5s6pIIdvfAtN5U1fCuXqTCjCwwP2YxnWOo4f1qS04lSigyqWrQhwz26P 6qLF1LJH1hbEVNTiMauhluzsddlJ7oMY9DBhbY5xKbI6RgDeP246FshLnaO0lw7g88xU OLDCWz6bfLGcb+RvnNFxweyYRqNd8oqP/VciEZlefYoZmX7BnLjCS9LKQdq9ZLCINveP LTiQ== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@oracle.com header.s=corp-2022-7-12 header.b=0Ix8+iJA; dkim=pass header.i=@oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=h0LNgUGC; arc=pass (i=1 spf=pass spfdomain=oracle.com dkim=pass dkdomain=oracle.com dmarc=pass fromdomain=oracle.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=oracle.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id a38-20020a056a001d2600b0057f8d82dda4si37282694pfx.218.2023.01.05.11.21.30; Thu, 05 Jan 2023 11:21:43 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@oracle.com header.s=corp-2022-7-12 header.b=0Ix8+iJA; dkim=pass header.i=@oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=h0LNgUGC; arc=pass (i=1 spf=pass spfdomain=oracle.com dkim=pass dkdomain=oracle.com dmarc=pass fromdomain=oracle.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=oracle.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235703AbjAETUb (ORCPT + 99 others); Thu, 5 Jan 2023 14:20:31 -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?rEbNZj2lDdOTQ9OdzqyJYfE?= =?iso-8859-1?q?cHzX0SM8S4ubrIumjXsdCEpDwyxzsLTS0eiIY6WhyuYyxopJAknJ7MYZZHdZ?= =?iso-8859-1?q?7F/Q9C+77URfPIeilOBb6RynUHjYCnnPiaDy/Frnm46qjgbngz/FHY++3An4?= =?iso-8859-1?q?IlCsq7TCyNRkXcBanXVKK0CsDHQtfsolH+7m8EoaRD6bushHHQtD5TWhEEHH?= =?iso-8859-1?q?/p/EA8Zu7qDLuINzxnewVfrlcLqwaCLX4Ky+iyC0q4VOEHK1o5Hl79PwAdFn?= =?iso-8859-1?q?LkCB16aYuJffdJdkx/oemPYSrwAypf4VkInZKYO5GTXJThdFZ7adj9VEQJAC?= =?iso-8859-1?q?P8YqaiRMTUWLRWkBSOZAmvEsArMmz0yLc46u7jn8PcjP8Q2gv5nb0H0lwT14?= =?iso-8859-1?q?5Cg8QgUfEiJCxJLvlm5cxfcCx1BsZkDLiTefl4Evg7QedllmMcs7PRjRoScz?= =?iso-8859-1?q?EmRoV1/hLxDbK0gt7NsAxMQMT2Ysx8LDNLUHTXCJYe/rvNWvcBItz03wa6jk?= =?iso-8859-1?q?Z2CEq8usLg++hf0hEuYl1DtiMItEnsjqAzZHK9sDgbGuMI7k/pIfCfHSEL0o?= =?iso-8859-1?q?rpgfK6BZiKOghYKHZlx1sXu8Qkn5urnbw7TOLJfXn+QP6UQUADNZqj9V//6M?= =?iso-8859-1?q?Ly5EnKuCHwZTrvGUWIdwuGZotra2vXSpUt9LKS+CtOLFg11mwJZyMRkGzMUJ?= =?iso-8859-1?q?wcktf0+2bh8NrRQxDYtYgIrT+hO8TYP47/19rtkPRe+zV9xi/feKBRRGEQwD?= =?iso-8859-1?q?P4n/kbVrNJrgk1/gv7e0of61DzvFrnbkJnwCB/kUk/CTjt4f6Hcwy4sar302?= =?iso-8859-1?q?MxcxSm2n+vcgI+kiKdGJZPs54KYxC0kJ1mR9ASqL7szyOYm6K9G5tEk9hs7b?= =?iso-8859-1?q?cXy15y+3aS9wQwaAsRbMJVx9nFN9L1GZBqSYS8+HQMozqfXKe8e3RusR2Zmm?= =?iso-8859-1?q?uZy8dy0sGQrwiN5iHtWry+b2IB4BbMgnIvJV0Yl1YVkUFUrbHbNkqWdI8H4F?= =?iso-8859-1?q?35arLvYMPOzDTT+BBIo7srr7iGfwZG2U90FujBFMdrhqEPOZ6Np/JfXZDDBF?= =?iso-8859-1?q?rjjYlvSF9LWj22feFbVxvPCkYpqV0tZHDd6TuISVY2Uq7k+oQEO2jiKtbV05?= =?iso-8859-1?q?UAg26eBl3yrOgpnnI/TKydRXCvviKdzOHM4oraZS+Y5gsBVO6a1nL8s5sNCN?= =?iso-8859-1?q?BUHG47rPRrQeEnfUap9NVkiG09df493krHKV0szKBfA00mD8KHJLPII45n3n?= =?iso-8859-1?q?tdLfdkNqfBm6K0TQ4SsYzk+w9BHTgiIbvzF4F7kbGjP5ZGXLJj8Pnh2wAjbC?= =?iso-8859-1?q?gWyKr0Rt2/yBa40lEAAcKvQglpZ93XTJP+lSF4b3PDR5uYrc3hchI1JWVx3q?= =?iso-8859-1?q?GWGewogAmeQnspyheJaz4eAwKPK5Mv6/dyKv7Q1SzQKsonxJ9mAYX7uNYiGD?= =?iso-8859-1?q?XANu0r+uhZfIg2XUvNMSHaltK5cP0KaAVUbj7eKoejZGHgjr5hR96OORuVf+?= =?iso-8859-1?q?E3COPQFBWUh0H38vBcwyH1M8DDAVzrKEkw/4ZZLFIaqnXfYbLn6d8jrt4pVr?= =?iso-8859-1?q?95R4o6AyPlehguElFLPd+WKBPqWBbCQxljzzc6ZTiH7zKosuuuP/i3dV9/Kc?= =?iso-8859-1?q?K+RXg63Fz3b/5yRWPp/+fO5DqXvKli6ESLvDr9A=3D=3D?= 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 X-Spam-Status: No, score=-2.8 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_LOW, RCVD_IN_MSPIKE_H2,SPF_HELO_NONE,SPF_NONE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1754211552920923931?= X-GMAIL-MSGID: =?utf-8?q?1754211552920923931?= 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; /* @@ -733,7 +733,7 @@ static int shift_arg_pages(struct vm_area_struct *vma, unsigned long shift) 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); } /* 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_sys_admin); extern 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); + 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 = vma->vm_mm; struct vm_area_struct *remove2 = NULL; @@ -767,7 +767,7 @@ int __vma_adjust(struct vma_iterator *vmi, struct vm_area_struct *vma, struct vm_area_struct *exporter = NULL, *importer = NULL; struct vma_prepare vma_prep; - if (next && !insert) { + if (next) { if (end >= 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 != next->anon_vma); - vma_prep.insert = insert; vma_prepare(&vma_prep); - if (start != vma->vm_start) { - if (vma->vm_start < start) { - if (!insert || (insert->vm_end != 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 = true; - } - vma->vm_start = start; - } - if (end != vma->vm_end) { - if (vma->vm_end > end) { - if (!insert || (insert->vm_start != 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 = true; - } - vma->vm_end = end; - } + if (vma->vm_start < start) + vma_iter_clear(vmi, vma->vm_start, start); + else if (start != vma->vm_start) + vma_changed = true; + + if (vma->vm_end > end) + vma_iter_clear(vmi, end, vma->vm_end); + else if (end != vma->vm_end) + vma_changed = true; + + vma->vm_start = start; + vma->vm_end = end; + vma->vm_pgoff = pgoff; if (vma_changed) vma_iter_store(vmi, vma); - vma->vm_pgoff = pgoff; if (adjust_next) { next->vm_start += adjust_next; next->vm_pgoff += adjust_next >> PAGE_SHIFT; @@ -909,9 +895,9 @@ int __vma_adjust(struct vma_iterator *vmi, struct vm_area_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_iterator *vmi, struct mm_struct *mm, is_mergeable_anon_vma(prev->anon_vma, next->anon_vma, NULL)) { /* cases 1, 6 */ err = __vma_adjust(vmi, prev, prev->vm_start, - next->vm_end, prev->vm_pgoff, NULL, - prev); + next->vm_end, prev->vm_pgoff, prev); res = prev; } else if (merge_prev) { /* cases 2, 5, 7 */ err = __vma_adjust(vmi, prev, prev->vm_start, - end, prev->vm_pgoff, NULL, prev); + end, prev->vm_pgoff, prev); res = prev; } else if (merge_next) { if (prev && addr < prev->vm_end) /* case 4 */ err = __vma_adjust(vmi, prev, prev->vm_start, - addr, prev->vm_pgoff, NULL, next); + addr, prev->vm_pgoff, next); else /* cases 3, 8 */ err = __vma_adjust(vmi, mid, addr, next->vm_end, - next->vm_pgoff - pglen, NULL, next); + next->vm_pgoff - pglen, next); res = next; } @@ -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; @@ -2261,16 +2247,20 @@ int __split_vma(struct vma_iterator *vmi, struct vm_area_struct *vma, if (!new) return -ENOMEM; - if (new_below) + err = -ENOMEM; + if (vma_iter_prealloc(vmi, vma)) + goto out_free_vma; + + if (new_below) { new->vm_end = addr; - else { + } else { new->vm_start = addr; new->vm_pgoff += ((addr - vma->vm_start) >> PAGE_SHIFT); } err = vma_dup_policy(vma, new); if (err) - goto out_free_vma; + goto out_free_vmi; err = 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); - if (new_below) - err = vma_adjust(vmi, vma, addr, vma->vm_end, - vma->vm_pgoff + ((addr - new->vm_start) >> PAGE_SHIFT), - new); - else - err = 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 = new; + vma_prepare(&vp); - /* Success. */ - if (!err) { - if (new_below) - vma_next(vmi); - return 0; + if (new_below) { + vma->vm_start = addr; + vma->vm_pgoff += (addr - new->vm_start) >> PAGE_SHIFT; + } else { + vma->vm_end = addr; } - /* Avoid vm accounting in close() operation */ - new->vm_start = new->vm_end; - new->vm_pgoff = 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; From patchwork Thu Jan 5 19:16:04 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Liam R. Howlett" X-Patchwork-Id: 39775 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:4e01:0:0:0:0:0 with SMTP id p1csp459723wrt; Thu, 5 Jan 2023 11:22:47 -0800 (PST) X-Google-Smtp-Source: AMrXdXuDkWtnT2ZgrMQVRkg6BRiD6qhi/bPUEA1XDMyjkADT2by1m8WeXQK7GrceGNE8GNPgm9zE X-Received: by 2002:a17:902:f80d:b0:192:f6d0:6029 with SMTP id ix13-20020a170902f80d00b00192f6d06029mr5578287plb.15.1672946567633; Thu, 05 Jan 2023 11:22:47 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1672946567; cv=pass; d=google.com; s=arc-20160816; b=zZbbl0htSAq4WBrhPquzvbZCvfSoFxkbVXhsSgnJzHsw9JwGj+p3/skw1MyKDg1GD1 pVcSHq+YPqXLR/Us+Hsd9Oy59b5eX6O7dC3lf622B1Dt7vJXRQvdKY0TJ1WNpFyo5r9b ZVTKjk/+zn3oDQHlsIxUJhq5KxB0qtb6ojvC57dtzg5bppmwiR8iVJb5YrimuuVOd/9P TwIM05EIQ3+/j4JJ4aGu+DkSSzYUQXSvdF8B9gAgIf+e7JWWzGx9lGBWdSagMFWPwK2s Jnj604swR/5sYClC9WN0IYSxfPVnrBnA7vM7IdTssE5BfD++edDcY1acKcTAc/4b84Vo QTYg== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:content-transfer-encoding :content-language:accept-language:in-reply-to:references:message-id :date:thread-index:thread-topic:subject:cc:to:from:dkim-signature :dkim-signature; bh=2xnT8FDEwDbbI1gHr/DU50xezL1IoQwENxQTeCIHSGI=; b=n+5745ngmYZXVX0uo82SCfLjBFANDA7vbMfpHdxAPIyqFo/U1oFEZmrLg06e+1N3AY jTYYE0bdSHs/0LSskXM+m/gRGqfGnZ9WPlqWUM3VWywZ+bl1MdPYgWrmnnRiPV2QOwpg hGcZok1jqE5namt4SZerGkoNoMUmpYL9PsmmRUjNfiT5XGuuV7HKhHLglROjfeab+5+D unuviOockM1IUKAZeEt0Gof/7eunlYtl2KgVBas1tm0m8dbOlaHB26Tqo1WNueMqoulY DsaV7fSHV0pLoEkPjS5XlWPv1OTzyp2U9bcAxSe3OgKI6+XA7MU/tLLez9sIo2Cnx8ho oKgQ== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@oracle.com header.s=corp-2022-7-12 header.b=JEk8YkRn; dkim=pass header.i=@oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=AWYbyuDp; arc=pass (i=1 spf=pass spfdomain=oracle.com dkim=pass dkdomain=oracle.com dmarc=pass fromdomain=oracle.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=oracle.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id o14-20020a170902d4ce00b001889ad48288si40023016plg.384.2023.01.05.11.22.34; Thu, 05 Jan 2023 11:22:47 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@oracle.com header.s=corp-2022-7-12 header.b=JEk8YkRn; dkim=pass header.i=@oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=AWYbyuDp; arc=pass (i=1 spf=pass spfdomain=oracle.com dkim=pass dkdomain=oracle.com dmarc=pass fromdomain=oracle.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=oracle.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235782AbjAETWB (ORCPT + 99 others); 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?Wnqs0wyi70J7iggmclCAXKU?= =?iso-8859-1?q?GYikNKUVPxR1e4ugXOgKkdyglCAWuuxaSuuQRCuj+kruxEV57SlRivWDLxZe?= =?iso-8859-1?q?r5zSd5SuSMHl9De5DTjiMQ8atWzePRaaBikSX7XriznlOqT7H1Y+v4MrYxOs?= =?iso-8859-1?q?g/oVyKO+yuGTO6+aUP0jzhyley5KyGVlEio9+uv6JFZe55SQ/FWYW40y4SxF?= =?iso-8859-1?q?GLWFj141+dsdFPc5yY1fytZOgI4+umLYoPgVT3oskMJti60PoB3CI1OlrhYH?= =?iso-8859-1?q?Wk28rH+nwG1+skkuCPizUXJpNF5RzkUULa2+d4Bk1h4cJqHQtQbryd1FkBQP?= =?iso-8859-1?q?isMBz1dm3QS6Z7psn3Xlu0B1RiwFmwOy77WGU/Jej+iSiqgIvjqeD3T5QClv?= =?iso-8859-1?q?O9ujCzpROHtKewllKNZkHlW9cKihvUqmlT2V5tv/K54w77dxNlUbRBnDDCe2?= =?iso-8859-1?q?suIuhgOEmtK7kQwxAycoS4q835eQMVPnXGPUjREi2TKCFyL6f8DhuxIadSIJ?= =?iso-8859-1?q?7yebwHPOFqPGC8GRkWfyEjQiQkpbnHOGTsFyqMbCu64XGiGaQO58Dwiy86/J?= =?iso-8859-1?q?acRnlfTStOBBDm8WUgirBv0R7zvU5qltF2O8HHM+JKUJbKI3tGkL2WH6Nn2e?= =?iso-8859-1?q?g3EszG0Q8XHqAwpHmT20xH2NuhWVXHZahMY5ini5wvBTw2ss0wDhlT2f691L?= =?iso-8859-1?q?s2EJXmubQFoqAxrobL8N8EkW+ltW6tC28CmViUfGeVh/b6bbUqC59XHCXaVp?= =?iso-8859-1?q?TfR4Z4A+TqmStleEYaIWYY7UgJXZ+k1qhr/pR4ksYu30+sloCqmZ+kdrSGAv?= =?iso-8859-1?q?+0EgGQKa+uL/62sPbAH8GPWG66jpXAjnx9YMv1DcT8LHGZeXEc/CQlL5MyUp?= =?iso-8859-1?q?NGCUH/Iakj4ADFZVai5gXAw8Y1F5OdFxjWspOMy4DL3rDXScq6hIO3YhcRhN?= =?iso-8859-1?q?0NrA9pbCfeitm95hci0WB/Dla57b2x6TSgpSGyh3DUvFIwIgkIidkf8Qv4pm?= =?iso-8859-1?q?MC4HaBiNQFJndDGAUJ+VMzQ6o0mGv7yEFSAQ7GgSJWOU0OPpYT+bCtcUooOZ?= =?iso-8859-1?q?vlxzwEBROLQQnHRsYdQreAm2f1TbNqWNb2jDjUg8xIQ7RgWj5XRN5bsgIP2n?= =?iso-8859-1?q?PP5coGp7chyTt8F/wv0kr1K+wnnuLitKJAMv2dnO0EtwDBWl674ShPx8L0n/?= =?iso-8859-1?q?toOUJSGtwI/5h2DAAH4fYtgVEpGJADDKpg1A7Z5hRIo/YA1NbbsZTL789P1b?= =?iso-8859-1?q?EBCmvWqcN+K3kpluunTjGLRNjBm/uGYdoa6o/FxbLM42c8tr5nj5F2LTpB/O?= =?iso-8859-1?q?EJQ/dkpN+8Mhgs0RjYO5XKquneN+zHzoxSB5FFb+zhFS8/rfcBW9sPOeMwz1?= =?iso-8859-1?q?f2JSA30G1e5lITW4g3McV+2cuVHOcHJAQbgad0eCKCMDepi6jCIZOGZxR/2w?= =?iso-8859-1?q?HyoeFq4vgkV2x5Zj2blV7bsAwK56LEjFxnpiopoOt9EpDrpxZ6l5Fs7x3voK?= =?iso-8859-1?q?m4RqZs2rytXYT8QJVZbBqG6IzJLvIETakAMOpfbyexLxTnFyoZITecXrw0w1?= =?iso-8859-1?q?8Hb0Bhqsos2fOE7HMjWekmGSjd1k5DTMuptrqGqTa/uYoU3iPldJ5+3ExUy0?= =?iso-8859-1?q?7qN0eQnvBtv2hJ29iBM7XRTIODq2VmjMTQBhWGQ=3D=3D?= 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 X-Spam-Status: No, score=-2.8 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_LOW, RCVD_IN_MSPIKE_H2,SPF_HELO_NONE,SPF_NONE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1754211619781158966?= X-GMAIL-MSGID: =?utf-8?q?1754211619781158966?= 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; /* @@ -733,7 +733,7 @@ static int shift_arg_pages(struct vm_area_struct *vma, unsigned long shift) 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); } /* 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); /* mmap.c */ extern int __vm_enough_memory(struct mm_struct *mm, long pages, int cap_sys_admin); -extern 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); -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 = 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 != start) && (vma->vm_end != 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 = start; + vma->vm_end = end; + vma->vm_pgoff = 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_area_struct *vma, vma_prepare(&vma_prep); - if (vma->vm_start < start) - vma_iter_clear(vmi, vma->vm_start, start); - else if (start != vma->vm_start) - vma_changed = true; - - if (vma->vm_end > end) - vma_iter_clear(vmi, end, vma->vm_end); - else if (end != vma->vm_end) + if (start < vma->vm_start || end > vma->vm_end) vma_changed = true; vma->vm_start = start; @@ -880,7 +910,10 @@ int __vma_adjust(struct vma_iterator *vmi, struct vm_area_struct *vma, if (adjust_next) { next->vm_start += adjust_next; next->vm_pgoff += adjust_next >> PAGE_SHIFT; - vma_iter_store(vmi, next); + if (adjust_next < 0) { + WARN_ON_ONCE(vma_changed); + vma_iter_store(vmi, next); + } } vma_complete(&vma_prep, vmi, mm); From patchwork Thu Jan 5 19:16:05 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Liam R. Howlett" X-Patchwork-Id: 39780 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:4e01:0:0:0:0:0 with SMTP id p1csp460432wrt; Thu, 5 Jan 2023 11:25:06 -0800 (PST) X-Google-Smtp-Source: AMrXdXveDjhgc62zOUKo8EH4zOlZZWD0jJe5E985DyFEMZrxWNaEwLL5oLYrmc6gImZKVd9abAXd X-Received: by 2002:a05:6a20:2d1f:b0:ac:9d6b:c1f0 with SMTP id g31-20020a056a202d1f00b000ac9d6bc1f0mr69836757pzl.40.1672946705743; Thu, 05 Jan 2023 11:25:05 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1672946705; cv=pass; d=google.com; s=arc-20160816; b=S/l6R2gA0vmvbtBcZElidCBqmti5ryF7WjCt6F2bkxJ1aA5SxKQsgSZDPtpUk2h818 UU/gJ1kfHENahGaun5Ut6BtPgm7OaIFjjwXOzbPjzJwounbI7p6PkvsOL6anDS8v/9dd LOKJqJCErQ3NST5dsNtEzDvBhrRtzPkELy0ptTufN8tuxROurUiBjz21AgRf8l8y1Ggy 3sFP+R4l1WWt9IlNqhoalw1U7nIcqO1G7lV+zMw4wBq53+xK4aCTCAo42dV8FvaMQJ6h KR9G8cWeJXINGtoHkN04jPTTPYGjrKXH1gq7cm76HvG5uLtioQ8LpAlPJRvvp8kKVe91 SePg== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:content-transfer-encoding :content-language:accept-language:in-reply-to:references:message-id :date:thread-index:thread-topic:subject:cc:to:from:dkim-signature :dkim-signature; bh=Lb5D9dYmkvlyu/H9rhqwjZSUxhGiHpFzlJQ5XE2d2T4=; b=FeH4uyne8DVWrmlON3nFaFnQUVU6gGer22yJxG/VGePFC1QYJr8zuWfbE2+1UXsF5a jsGWY6oNHS8w8DYnFsVpSjWZPTBdZhiDMjrWOPE9NINaeDMVohcm2EeSiELq32UXV4ko dQKqnp+OcBtM0T28JRF+89ETPfk+XdBbBjpH2s962Z4SU8fjfyY01iTX3+3PgKHhAf2F VhnlOuK9g6P4oly0bQYB6KVBLdwWuDDQqFhQHIVt/uOX9zB0BEYl2zH4O+2Byxv6aOOc F2Z4DZVlhE/JsH6h9RDbQyz7Bu/+AUgJdLNQZF7NgfIUgmvyM386Lh6/KWHn4PlO8/FV nRNg== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@oracle.com header.s=corp-2022-7-12 header.b=18kzBsQF; dkim=pass header.i=@oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=m3pUCj8D; arc=pass (i=1 spf=pass spfdomain=oracle.com dkim=pass dkdomain=oracle.com dmarc=pass fromdomain=oracle.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=oracle.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id c76-20020a63354f000000b0044e12bf26ecsi39934319pga.465.2023.01.05.11.24.53; Thu, 05 Jan 2023 11:25:05 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@oracle.com header.s=corp-2022-7-12 header.b=18kzBsQF; dkim=pass header.i=@oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=m3pUCj8D; arc=pass (i=1 spf=pass spfdomain=oracle.com dkim=pass dkdomain=oracle.com dmarc=pass fromdomain=oracle.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=oracle.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235799AbjAETW0 (ORCPT + 99 others); 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/Gy2VqtQIld?= =?iso-8859-1?q?Ot9L4j714Ng0Ob08Lysd9Paq3Um8IRzQ7IU4APtB+QBQ7i4Hlc+zPXWQzeBD?= =?iso-8859-1?q?V9JuwQ0zeycSPqcrZJYzehZyCnaF73sE992IGR8t9OhhWLLpunadDn8s3Ekb?= =?iso-8859-1?q?dmHUUrVtE9Qlc7WAFDiJezJfmCQWqZqxUVwbEfnGumsLNCRO5tTUZpnfVhWD?= =?iso-8859-1?q?p6E/2Xh5i3VSxeXhD66+QItBRjgOmRdd09D8ZISJKSp6fGCmdq7HjEZ08ih7?= =?iso-8859-1?q?UmLqSInc9fYpIl3Y4IqbxcWFfYOvdnMzaTiRSH8GTdZuNwXwE3qLVt++2y58?= =?iso-8859-1?q?/GsJdqTJvJ+lcObZJYs+CpgCoZch9KwoG/hOB/fTfwQzP+dZRZf3as6WbngU?= =?iso-8859-1?q?0cV5vCRExuQEoml7hj/XxoVZrKSWms5hfFvcriFuPkfg1jbXS0CD5TsDGFrt?= =?iso-8859-1?q?2pMipMQ/AGA1tj8f26KHv7uFaCiT+DZ+DrgwQILsJ1b9fBINBrRL2v/brPvr?= =?iso-8859-1?q?La17Lt+hGT+acBSwMl0c0EeSYsgoDZyQyyei0iET4MOEcxZPoeSz35CTBK2W?= =?iso-8859-1?q?/BLthKA9qJjewWdeoEDMa51IBtFUQohUbbMY9usAZoPFkjx4hqL1F0l+sMlA?= =?iso-8859-1?q?6/ifmg251ygfKPpHKIRdE0O0b418dEqb65ej2zNiQU7bqwg3/9kXou9nars2?= =?iso-8859-1?q?02KPS0vdbYdFtex3YQa3+gd0u8+ufufhzTKREDjavop9Ueu4hOJQl6ZiTO5K?= =?iso-8859-1?q?0T4pEOu2UfPllze+20IipBiGYu6VYgsyUqKVJUgX6kEbTCBl/7dsyHpICi6J?= =?iso-8859-1?q?lGiW4mimz4zeSQNNXPYpbaSVYV03TYyqsbizfLQfNBSBZEs034+tnnUeAtlM?= =?iso-8859-1?q?Q/j4E+fsnTnlOwVT3HTSb5gq/YGWw5vNohc5w42kuEPfoaFLDfMP3Pznyzsa?= =?iso-8859-1?q?1gmvhKDhQHzW7wAkxAl3z9NJRX2i9YSizi+NGzZwd7NsCKDSYpGy0gNq3t+l?= =?iso-8859-1?q?DbOTzkCAeaAOjRo4yQikK7lxTbwtnhWw2rCd9F9jvQekT4m5x0gR2Uli1FIS?= =?iso-8859-1?q?0nfFib5bPoQ4HMUa9Gfin7QxZ+TLzf+YjhR54a28ELftxJU9+E+dZ87V0xVT?= =?iso-8859-1?q?Pvl0QWQF0vmRkA0Eh4pq0N3pBOirKhUXo0upAKSXl1DRaOLeuROEWhI4NUSv?= =?iso-8859-1?q?nFU9OT08La/Eba0dLOdxKnzZYIVTIWJrvDMR5CZfJ+O1/B9Mr0rs/BcfQmlx?= =?iso-8859-1?q?d9BqcUl5o+hB2BGmA7fU72TJoz02fSRYKCDBppvnDbP/+ivovXbs/qdQLQVL?= =?iso-8859-1?q?6xzENaoIPSdEjsJPiUlpHadZx4yxqzuSHQdHFsvgyYcKvJB432BgRCSdfb2L?= =?iso-8859-1?q?nV2cz3b6R9iJEQjr57XPQkZh6eKvDQ2KLltsMJof0PKj6M+8FjyMsYaf0cHT?= =?iso-8859-1?q?QUOBsd1KaXoPEdLB0SejeA7ojLQoD2s07FU6zux5V5aWp9M9tS8oGZyUNlTV?= =?iso-8859-1?q?PzQ2nzhMPgu10GrhLQxsZ15Bd7i4bDLDPVq+wZ9sFx6YBWm6mNiZD8e1EIxO?= =?iso-8859-1?q?RiT+sY+0ywF/6P8Z4zUecmFQDg2SpLUCGeybNRbOyCF8gH96tNviARBTL4w+?= =?iso-8859-1?q?huOPGPdOLaFEP5R8EGZOM2e2tENI8RT6tY/ntTw=3D=3D?= 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 X-Spam-Status: No, score=-2.8 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_LOW, RCVD_IN_MSPIKE_H2,SPF_HELO_NONE,SPF_NONE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1754211764757826439?= X-GMAIL-MSGID: =?utf-8?q?1754211764757826439?= 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); } +/* + * 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 = 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_area_struct *vma, struct vma_prepare vp; if (next && (vma != next) && (end == next->vm_end)) { - remove_next = true; - if (next->anon_vma && !vma->anon_vma) { - int error; + int ret; - vma->anon_vma = next->anon_vma; - error = anon_vma_clone(vma, next); - if (error) - return error; - } + remove_next = true; + ret = dup_anon_vma(vma, next); + if (ret) + return ret; } 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 = vma->vm_file; bool vma_changed = false; long adjust_next = 0; - struct vm_area_struct *exporter = NULL, *importer = NULL; struct vma_prepare vma_prep; if (next) { + int error = 0; + if (end >= 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 != remove2->vm_end); } - exporter = next; - importer = vma; - /* * If next doesn't have anon_vma, import from vma after * next, if the vma overlaps with it. */ - if (remove2 != NULL && !next->anon_vma) - exporter = remove2; + if (remove != NULL && !next->anon_vma) + error = dup_anon_vma(vma, remove2); + else + error = dup_anon_vma(vma, remove); } else if (end > next->vm_start) { /* @@ -855,9 +875,8 @@ int __vma_adjust(struct vma_iterator *vmi, struct vm_area_struct *vma, * mprotect case 5 shifting the boundary up. */ adjust_next = (end - next->vm_start); - exporter = next; - importer = vma; - VM_WARN_ON(expand != importer); + VM_WARN_ON(expand != vma); + error = 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 = -(vma->vm_end - end); - exporter = vma; - importer = next; - VM_WARN_ON(expand != 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 = exporter->anon_vma; - error = anon_vma_clone(importer, exporter); - if (error) - return error; + VM_WARN_ON(expand != next); + error = dup_anon_vma(next, vma); } + if (error) + return error; } if (vma_iter_prealloc(vmi, vma)) From patchwork Thu Jan 5 19:16:05 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Liam R. Howlett" X-Patchwork-Id: 39779 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:4e01:0:0:0:0:0 with SMTP id p1csp460355wrt; Thu, 5 Jan 2023 11:24:46 -0800 (PST) X-Google-Smtp-Source: AMrXdXs0kHSqZvxRxCDPW8QG28Ht7BTCP7cmfs2LHhYS/2pZ5KNKlmUuPBAz4I+l8sLBKdOrw6dJ X-Received: by 2002:a17:902:ec01:b0:192:89f2:e07b with SMTP id l1-20020a170902ec0100b0019289f2e07bmr37946043pld.57.1672946686377; Thu, 05 Jan 2023 11:24:46 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1672946686; cv=pass; d=google.com; s=arc-20160816; b=hgszen4d1PmEHbyuly416jS8QJ70dpky/oM4IW8enazhaGYMo70JZFGNM/AXJMRw4R oa3Ko/5f90FAOPF8r9PD79J6++2Xj8DNSibn2CKYNwyVXXlWKdwuKHywAv8DktexSuPG 6/k99KzsnRxeaNmOinJwxDH49KKMITbxSoEfcCouJk1/1X0VKOygwfyMrwMHOjnQ/532 r99Qa3mo8ISVP5hduVLS4VYHD9/O50fNdOOW6TEaURzDybKFy73ZwoLa6m1opy7Pzyf8 CQdttNnPFgcHDyrgDJOVlgzuRP37HStLyT70rfUVgf22T8OdQ7qjEa7mN5ZBW5SblRy/ Wpkg== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:content-transfer-encoding :content-language:accept-language:in-reply-to:references:message-id :date:thread-index:thread-topic:subject:cc:to:from:dkim-signature :dkim-signature; bh=5JYDubWmB7EXh60uJz7Pi7ZedtauCJpMP8gKBFFvuxo=; b=QuyUrUTFNyg29XwnJSQRdevguv9CCwPQ5azihvA4nKEmpmlNWMDq0s9XYrdPDoWu1n 5V1wXbzI2cjwhO3Qm3lgBNuGL2S0WXfTUcjB9zYZ9p29AKhf1Gl8fEN9o+XyPp1c++3T 3JorQmir8SKrKtjvdgWj2ryc8Ha18eFZrIXRo5LDj8ST2r9uMOe9IgyGrnBP7GJfSrRH x/aIfI2wBx4p9gZLN0boJPvtVdlfGyYCImhx4fAcQqI9aFCipy3VheLlPshbKhLIsY4q UwN0MnKUjC/s0kqOroI2M38/BYLorDurayNNgCuNYhMaSLu7duNgvxSfBFlw/0rJdRC+ WWWA== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@oracle.com header.s=corp-2022-7-12 header.b=B9xNfZgD; dkim=pass header.i=@oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=cvveWnGO; arc=pass (i=1 spf=pass spfdomain=oracle.com dkim=pass dkdomain=oracle.com dmarc=pass fromdomain=oracle.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=oracle.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id iz2-20020a170902ef8200b00176d22a068csi37576871plb.515.2023.01.05.11.24.34; Thu, 05 Jan 2023 11:24:46 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@oracle.com header.s=corp-2022-7-12 header.b=B9xNfZgD; dkim=pass header.i=@oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=cvveWnGO; arc=pass (i=1 spf=pass spfdomain=oracle.com dkim=pass dkdomain=oracle.com dmarc=pass fromdomain=oracle.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=oracle.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235590AbjAETWL (ORCPT + 99 others); Thu, 5 Jan 2023 14:22:11 -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/FHq?= =?iso-8859-1?q?eHxu2f6Lhj7tHGkFbHpIuH1xq+hZLIn/qKTbSyFE7Yj8TvEtobhcWUJwGJZw?= =?iso-8859-1?q?vKlrhcT+dpHab9pmNzSM3WcHtaqOhehK9ZRlnY/oLWkjZXnqXyfMlpWWNipz?= =?iso-8859-1?q?e1am+5UcFxL+8vq8cJUVaRF1xKU5ddjYobjabM3hK+J/gtPMtUGDQG8Ap34y?= =?iso-8859-1?q?8mEoGuTXwMkXvB8nMlp8/799BxM5CFZg/w2zlQlZ/m/0/RN+ZUDAHA1oUlr3?= =?iso-8859-1?q?RuzgEb92xgTxME0NG856NJyfDgIT72mdyNTayUaXobVoyuZWI7vFplXeBCf4?= =?iso-8859-1?q?S+xiw/dPRW9mVb2t9j/27jgOnNNcv3mcrSwK/Y5VwmBpXU3RwmosjyIIKgsp?= =?iso-8859-1?q?fkV4NoH/Ty0Wgb5Pxy0BNA1pAxOd1txOLCLl8d2nkNQHNDU6dXzZTdZCrB0P?= =?iso-8859-1?q?8wlW5Sz0BW6eSCXbQRay9iVCIPk7DSqIxOia7UadNM1GoiR01FtCg7BWzZ7Z?= =?iso-8859-1?q?YgwL40Yxb8aweOMpirjOxy24dudBH1lrO23WBHseDwy3x9nGJfJVCWveLSvZ?= =?iso-8859-1?q?gpJAb1ue5hLwW/sbPMQtrG6O5i2p+q+5HibW3PxCzow2krUip6K0cbfr6Nqr?= =?iso-8859-1?q?Dp//iYt93lmM66qq7ml64trUkN1ESfI+V7SKUW+J77ZnvV2d6Cyoj6qWP1w+?= =?iso-8859-1?q?mopalTcsEwRLaZiudfM3j6svovmdeRFLQPGIfjS6NkaoxfWUdGTKLlXQDgjV?= =?iso-8859-1?q?R8iLt18MXFrEzn0LdYSrFkwPSo+Dsqy/P7orgiodU/dLOgr58A28FaNOQGhq?= =?iso-8859-1?q?djisW6v0kb/BhxOh6jplLIDotIU5Gu2wEAho9+GD+F0ojw+StT2AQYCFYyoP?= =?iso-8859-1?q?lMP7vG9vIG4xYq/2bjvqiwl5GHpymhpeC9mcoBvp67oxQom0AhKSuEa5Udhq?= =?iso-8859-1?q?dN2aY82x3t4U+x3doOnzNFJB7+puvmE97XkNNGjxnWx1pcV0mMPupt7z/8RV?= =?iso-8859-1?q?VdGhvZ/R4D6dP5ehqYXKOsAL/whmD1Oi3LqwuS1oVd+8DDEiPB/hqiyq4Lws?= =?iso-8859-1?q?Y1ucc980SMIslLcFnpcdG3eQsOXaF7xhRLy4TszWcTvbdjRWQTLwodV+G9lP?= =?iso-8859-1?q?xXWFwfV4Lenu+Rv8G2sbFiDX3yJEdMgY+7aV8xgUV0OfQgqp/mmYnt3Gs8/m?= =?iso-8859-1?q?baSunAsVf5Bkq+uzudxkOAIpZabwPoqU69BeSnoX7B+KuAgnTIX+72rXHS8U?= =?iso-8859-1?q?bvuJIbSD+mK4wNfMkmaUU63WRS+wAs5ZUsGV1nExdhnVEQHHkxr0kVmVDWoH?= =?iso-8859-1?q?+jCu/RVQequR9iczeLBcjZ/Uy8TCIk7PTOqo997kgTZR+PTHeYbWw/lWCCaL?= =?iso-8859-1?q?wf2ahisVN+6wOir3NP3n3grlWmPYH103gYpU1B3dMjaUwPdbR2SuM1lgdcKM?= =?iso-8859-1?q?e0GqLJbW536aXMBO1hpWV1KQ84G5NjETce2WJyMLCF/gJStm95GvdOMwQwGZ?= =?iso-8859-1?q?fbTGbqbck5fybiWrwvM7KGKVDmJFPJqobUx+NapmV0vT+borFEONrtyyoGPd?= =?iso-8859-1?q?IPb2NWNSupEbVCJTLX5yLXXNeWrGLV/s1ve1smOc4gcGbIDhw3WbWHHZOZoQ?= =?iso-8859-1?q?vsGlaRNEe7kM1OPxiOLGRZygbzfoaLcWSQ/ouVw=3D=3D?= 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 X-Spam-Status: No, score=-2.8 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_LOW, RCVD_IN_MSPIKE_H2,SPF_HELO_NONE,SPF_NONE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1754211744201058364?= X-GMAIL-MSGID: =?utf-8?q?1754211744201058364?= 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, struct vm_area_struct *vma, unsigned long addr, unsigned long len, unsigned long flags) { struct mm_struct *mm = current->mm; + struct vma_prepare vp; validate_mm_mt(mm); /* @@ -3006,18 +3007,13 @@ static int do_brk_flags(struct vma_iterator *vmi, struct vm_area_struct *vma, goto unacct_fail; 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 = addr + len; vma->vm_flags |= VM_SOFTDIRTY; vma_iter_store(vmi, vma); - 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; } From patchwork Thu Jan 5 19:16:05 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Liam R. Howlett" X-Patchwork-Id: 39781 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:4e01:0:0:0:0:0 with SMTP id p1csp460436wrt; Thu, 5 Jan 2023 11:25:06 -0800 (PST) X-Google-Smtp-Source: AMrXdXvHGOs+4ISUBcNErOpuhMcySyGRQ0kDASBQdlwgTBoY9cvyRkt7I4ucWLRv5qc/0lRnJYoP X-Received: by 2002:a17:902:da86:b0:189:747e:97cc with SMTP id j6-20020a170902da8600b00189747e97ccmr71526182plx.26.1672946706373; Thu, 05 Jan 2023 11:25:06 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1672946706; cv=pass; d=google.com; s=arc-20160816; b=nz4hfegkowNrRXEFGNUhb38lZcqkqAO35CVoJqc44RkBwdDTNeCUXKXxt4hKoa2nkY 6JH2vm/o34wafziP7yDhWsHswVGbBGkL4jXIvUNxnVQxdXhLDgGxHfKD3GTYeHfeo+Q+ 8b+3+IVdXx1lr6XcD+I6NLPTx7AEWy1vSzviwybMnOHCZ0qIws2D5N+U6w39X7wNerwk lStRetSu86osUOo55nCcgX3O5BSKF8xGa4DajERb8krXms5J/G5iw3SLiXBkHY79pT5p 2atiwwwHXULAeXw2q+DIenk8i+4gELod8ZaSp1rBLPki206DQTXfMkEDFrSwUD+55ptd 6VSw== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:content-transfer-encoding :content-language:accept-language:in-reply-to:references:message-id :date:thread-index:thread-topic:subject:cc:to:from:dkim-signature :dkim-signature; bh=8X42YIEluPVSvQF5e57VuXQC/2wRI7tsq11bZj4u7qM=; b=uZgW0CBD8F/MgbM3Ce8otbBzRBZimHnzcLJyphuj2GY+PeTAL1u7xvTDLukwZfhSOh iigTFDZJtxq4TggKUmyNSFRx3gKWyRjI2eI1kUtb/SuABJ9HMf+2kB09Z5piHwJplTxj 8NCQi822imtdwutgJATekrhqI7BpIbc0yzW8CrOCHH/B3KXTTmkySX9WZZaMBR7XXHlj q7mbr2pdYt8Q7h2wPXEpq3LENltFKw7aHDZw+j3rtm3yb380Qo5iLXkZXikMaPVEK8vm oEJyzLAJhZmupfnt0Rb8saY2xumRudd6eWDCPdf7TSJkzY6YM6mgKQwP/81uwEHzAHAz 0rdg== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@oracle.com header.s=corp-2022-7-12 header.b=iDzsMY7Q; dkim=pass header.i=@oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=cqs5DU6P; arc=pass (i=1 spf=pass spfdomain=oracle.com dkim=pass dkdomain=oracle.com dmarc=pass fromdomain=oracle.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=oracle.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id l11-20020a170903244b00b0017841de491fsi5783707pls.361.2023.01.05.11.24.53; Thu, 05 Jan 2023 11:25:06 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@oracle.com header.s=corp-2022-7-12 header.b=iDzsMY7Q; dkim=pass header.i=@oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=cqs5DU6P; arc=pass (i=1 spf=pass spfdomain=oracle.com dkim=pass dkdomain=oracle.com dmarc=pass fromdomain=oracle.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=oracle.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235793AbjAETWW (ORCPT + 99 others); Thu, 5 Jan 2023 14:22:22 -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/QC4tVRKmvb?= =?iso-8859-1?q?W63JXPtpo5/+90bvz/EcvTaR0yvdxuhZp0uGWb6KzlHlq4fQEHUeNHhttBSM?= =?iso-8859-1?q?/pE+/1sQy2VPkNVcE6rZFVo73q5VOnXs9MQN/WK35jFGSvEnWt6J4B4NLzmB?= =?iso-8859-1?q?kabdTOS1tN+DCwvwI2UoZGNcp48JZApAODOn93ehGsWDLVVDkDzaiQuwlBq8?= =?iso-8859-1?q?vEuOUW99XtOOQpKai3XPaY+FFHXsxO6UOK81lU6S6QdmCX8Gm35kCBSgMmLY?= =?iso-8859-1?q?JVhRxUxPjgsJcNHRslqgMHE9CYNkgLzi8cfus1yIqQ4GbrMfCrwsYtMyHx3P?= =?iso-8859-1?q?5YApyvZViojS1sg03URnm0ph5JfJ6QQ2xojUeEpj0kxMs2JB0hOmuAl/Km00?= =?iso-8859-1?q?1x860ip4mi2FxEKXQMEqaxJtxnVH0ZeSRRJj+0GimoHieCLL2EeR9w4DpOXb?= =?iso-8859-1?q?pe9wjJJkvyfW58EaGzb3rLasH/YnFc4WsMII5n+q2sM8yYF3yT1Yk2G6h1L/?= =?iso-8859-1?q?YBKWErqcZd5EgjhJj2MtsCcNj5Nk1jpfPQXbjI0loAy9wM/rIjA8D4jYlVST?= =?iso-8859-1?q?YsKuA4dsIt3F+0foGOqP49FbD2Vk1asB7ktF316ZZpuHqH1boqMuOLJ2UQAg?= =?iso-8859-1?q?zfT3HzbCu/MND7KsrTyzxZY9LnXbDKrFn3HlzxIwr5v8uoyQ0bwsRbCzK65q?= =?iso-8859-1?q?Q0wA/R6U9kRcIjMuyU5Eoco72ehKd34znf/cdKyKIcD9fS6fp7kEUT5lb0Bj?= =?iso-8859-1?q?ATXy1Ojh2akNehNNYNaiFmQrexh7ETtIv/epezF2Zc6ew6LfHEq8x3zFfG05?= =?iso-8859-1?q?z3orIddCijlc28BdI/o9pAmjXPgmQqCd3uyk47PvvoQYfGC95IodmAW2+7vP?= =?iso-8859-1?q?i4gqDgL3MuBM68q+n33dFUtEqPAmGeZ8Qim78rLX6phLV+n42NlkiEHbeH9R?= =?iso-8859-1?q?72yYR405w6bN6bAHi0Qh9TjBp1A0pnN36kH7Wxh5hV0akqtdWR4FVUeVABe5?= =?iso-8859-1?q?tnJbm1ykApklHV7FZkQqRUIOQIuzKiPIilLJKlIQ8pZI72jC/M8bxKf8rrUw?= =?iso-8859-1?q?wt2KuCOFqntk3S5Lt6GVRBwf8SfXgQEgHbPzvky/h2LkoBzg1e6KJqnhAbXM?= =?iso-8859-1?q?Tjlv93B/LBa0QYaMyMQV6jForGpRHXNSGUfHbkOzHWHa2TqGjvXHOKWyFGA+?= =?iso-8859-1?q?nd3V/Kll8WN5QO7C3+7wroEDeo2S3aAZey9sNu3hm5YW8d35HO6SsP8bT/yg?= =?iso-8859-1?q?Qp40NWEF8TcpkNIydyETxU2d5safWKXRiLtVbrZOXY19rX5aIiVNVeERC+6H?= =?iso-8859-1?q?u/NX28y9wIgWqSvMCkTbyIxmenVCdRjkug298XZhKvKKCL847IKAktjLshWf?= =?iso-8859-1?q?q2dZSYFf+BfLOLHU1oegJ8yzO2rcFTf4iv0UqRBYuJIjZbBQUfeba8k63K5c?= =?iso-8859-1?q?J4YBvx6EqgY//Yw+kbD4VcbEcTphiEXrm48th2qBgA19wUqXpQyybXuHm4E+?= =?iso-8859-1?q?GiDVtzubc6cbwOKwQhjg+afB+HiXwPzooNPSt4oxIuHjnHB4isixLBvlnB0s?= =?iso-8859-1?q?iWxjgEp3xglvpZQaJmSK70Ndy+vDFJ6pTET950Vqu+133uIh5wPXxXGvpkOz?= =?iso-8859-1?q?g39J/BN9xc5PXPcUD8tAOpTXetzO86agLWmghcg=3D=3D?= 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 X-Spam-Status: No, score=-2.8 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_LOW, RCVD_IN_MSPIKE_H2,SPF_HELO_NONE,SPF_NONE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1754211765442256312?= X-GMAIL-MSGID: =?utf-8?q?1754211765442256312?= 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) } /* - * 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_area_struct *vma, 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. - * 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 = vma->vm_mm; - struct vm_area_struct *remove2 = NULL; - struct vm_area_struct *remove = NULL; - struct vm_area_struct *next = find_vma(mm, vma->vm_end); - struct vm_area_struct *orig_vma = vma; - struct file *file = vma->vm_file; - bool vma_changed = false; - long adjust_next = 0; - struct vma_prepare vma_prep; - - if (next) { - int error = 0; - - if (end >= 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 == expand) { - /* - * The only case where we don't expand "vma" - * and we expand "next" instead is case 8. - */ - VM_WARN_ON(end != next->vm_end); - /* - * we're removing "vma" and that to do so we - * swapped "vma" and "next". - */ - VM_WARN_ON(file != next->vm_file); - swap(vma, next); - remove = next; - } else { - VM_WARN_ON(expand != vma); - /* - * case 1, 6, 7, remove next. - * case 6 also removes the one beyond next - */ - remove = next; - if (end > next->vm_end) - remove2 = find_vma(mm, next->vm_end); - - VM_WARN_ON(remove2 != NULL && - end != remove2->vm_end); - } - - /* - * If next doesn't have anon_vma, import from vma after - * next, if the vma overlaps with it. - */ - if (remove != NULL && !next->anon_vma) - error = dup_anon_vma(vma, remove2); - else - error = 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 = (end - next->vm_start); - VM_WARN_ON(expand != vma); - error = 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 = -(vma->vm_end - end); - VM_WARN_ON(expand != next); - error = 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 != next->anon_vma); - - vma_prepare(&vma_prep); - - if (start < vma->vm_start || end > vma->vm_end) - vma_changed = true; - - vma->vm_start = start; - vma->vm_end = end; - vma->vm_pgoff = pgoff; - - if (vma_changed) - vma_iter_store(vmi, vma); - - if (adjust_next) { - next->vm_start += adjust_next; - next->vm_pgoff += 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 release * per-vma resources, so we don't attempt to merge those. @@ -1055,7 +928,7 @@ can_vma_merge_after(struct vm_area_struct *vma, unsigned 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, unsigned 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_struct *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 = (end - addr) >> PAGE_SHIFT; + pgoff_t vma_pgoff; struct vm_area_struct *mid, *next, *res = NULL; + struct vm_area_struct *vma, *adjust, *remove, *remove2; int err = -1; bool merge_prev = false; bool merge_next = false; + bool vma_expanded = false; + struct vma_prepare vp; + unsigned long vma_end = end; + long adj_next = 0; + unsigned long vma_start = addr; + validate_mm(mm); /* * We later require that vma->vm_flags == 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 >= end); - /* Can we merge the predecessor? */ - if (prev && prev->vm_end == 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 = true; + if (prev) { + res = prev; + vma = prev; + vma_start = prev->vm_start; + vma_pgoff = prev->vm_pgoff; + /* Can we merge the predecessor? */ + if (prev->vm_end == 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 = true; + } } /* Can we merge the successor? */ if (next && end == next->vm_start && @@ -1113,32 +1004,85 @@ struct vm_area_struct *vma_merge(struct vma_iterator *vmi, struct mm_struct *mm, vm_userfaultfd_ctx, anon_name)) { merge_next = true; } + + remove = remove2 = adjust = 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 = __vma_adjust(vmi, prev, prev->vm_start, - next->vm_end, prev->vm_pgoff, prev); - res = prev; - } else if (merge_prev) { /* cases 2, 5, 7 */ - err = __vma_adjust(vmi, prev, prev->vm_start, - end, prev->vm_pgoff, prev); - res = prev; + is_mergeable_anon_vma(prev->anon_vma, next->anon_vma, NULL)) { + remove = mid; /* case 1 */ + vma_end = next->vm_end; + err = dup_anon_vma(res, remove); + if (mid != next) { /* case 6 */ + remove2 = next; + if (!remove->anon_vma) + err = dup_anon_vma(res, remove2); + } + } else if (merge_prev) { + err = 0; /* case 2 */ + if (mid && end > mid->vm_start) { + err = dup_anon_vma(res, mid); + if (end == mid->vm_end) { /* case 7 */ + remove = mid; + } else { /* case 5 */ + adjust = mid; + adj_next = (end - mid->vm_start); + } + } } else if (merge_next) { - if (prev && addr < prev->vm_end) /* case 4 */ - err = __vma_adjust(vmi, prev, prev->vm_start, - addr, prev->vm_pgoff, next); - else /* cases 3, 8 */ - err = __vma_adjust(vmi, mid, addr, next->vm_end, - next->vm_pgoff - pglen, next); res = next; + if (prev && addr < prev->vm_end) { /* case 4 */ + vma_end = addr; + adjust = mid; + adj_next = -(vma->vm_end - addr); + err = dup_anon_vma(res, adjust); + } else { + vma = next; /* case 3 */ + vma_start = addr; + vma_end = next->vm_end; + vma_pgoff = next->vm_pgoff; + err = 0; + if (mid != next) { /* case 8 */ + remove = mid; + err = dup_anon_vma(res, remove); + } + } } - /* - * 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 != adjust->anon_vma); + + vma_prepare(&vp); + if (vma_start < vma->vm_start || vma_end > vma->vm_end) + vma_expanded = true; + + vma->vm_start = vma_start; + vma->vm_end = vma_end; + vma->vm_pgoff = vma_pgoff; + + if (vma_expanded) + vma_iter_store(vmi, vma); + + if (adj_next) { + adjust->vm_start += adj_next; + adjust->vm_pgoff += 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); 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_vma *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 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). + * 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 src, + * 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 find * and reuse existing anon_vma which has no vmas and only one child anon_vma. @@ -1265,7 +1266,7 @@ void page_add_anon_rmap(struct page *page, if (unlikely(PageKsm(page))) unlock_page_memcg(page); - /* 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, 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 = 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); From patchwork Thu Jan 5 19:16:05 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Liam R. Howlett" X-Patchwork-Id: 39770 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:4e01:0:0:0:0:0 with SMTP id p1csp459537wrt; Thu, 5 Jan 2023 11:22:14 -0800 (PST) X-Google-Smtp-Source: AMrXdXt6sr7Q7ie2bz+36GEBNXK9+jGGC3et/8zrgJfs7j40+MKlvW8Mc5Ze4hapqHdCBonKM3yu X-Received: by 2002:a17:902:c942:b0:189:c93c:e5e6 with SMTP id i2-20020a170902c94200b00189c93ce5e6mr83938596pla.33.1672946533688; Thu, 05 Jan 2023 11:22:13 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1672946533; cv=pass; d=google.com; s=arc-20160816; b=twRGbUkV0IGcrGhYgcc2ggaes8ugGEF6uAhpUVRa/4Nnv2FhgrB19aM5WiSWT7A6ay M3/+cXt7SzL1v7org0OgIadvie/kc1sWlx6B0WKxyglXjf8PlbBVQ5Hz9detic21n0qV 5+MLSp13Lc3oQ2kVDBcgp5DVr/HPpr67PYoPw8+XLuCcZDRXtIdZwvd8FS5ds7m/0dj9 yWPrjMg9q+QsBlS7C/gg/V1MqG+r8Go9nsvLw+0o9Up7UApdmu5InTEg/d+Czs9c+6qB n3/5hSlqn2r5PUIKxAQOi0KggQxIOjhW36L6OZbyn5S0I+6tMmWjQKrrB+Hi+Pf+eK0k Kt8w== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:content-transfer-encoding :content-language:accept-language:in-reply-to:references:message-id :date:thread-index:thread-topic:subject:cc:to:from:dkim-signature :dkim-signature; bh=HmgkQ28QOz7ZNEWXunztBpLVHZCE4edNWbiYOCDwRN4=; b=U0zFYlRZ4As0Z3Q7oHx4GxFxKHjhq5MO5R3lIjxPwC14YVYlOn6j46M09d6jTzgOvr OCiGzq9yk9EEyyN97BDPR4IzYn9ShU5xpZqfdd8t4pxxaZ6Wrnexjcv4oyjKQWUr6PIg jPrR4fq8JcV9+qj3L+Uw89pIoQD2bfxTUQy1zdQFG7qYFg1XO/Ig7OwNayrsMI5Esmu1 LVXswKXoYXmq+UBxLH46fiMy3IKfTul6RBz4KaYWrXlhwFd/2XRMP1U8ochrCDXqww++ ULBPXXiU8fWKOzITACy5e09Yi6lKyzWC38tEHLKAgKyllk/eEPwHPjWxupIRNnqWjmUS 1ieA== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@oracle.com header.s=corp-2022-7-12 header.b="AqnUsF9/"; dkim=pass header.i=@oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=tb61EsKr; arc=pass (i=1 spf=pass spfdomain=oracle.com dkim=pass dkdomain=oracle.com dmarc=pass fromdomain=oracle.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=oracle.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id z2-20020a170902708200b00188fead2329si36376342plk.135.2023.01.05.11.22.02; Thu, 05 Jan 2023 11:22:13 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@oracle.com header.s=corp-2022-7-12 header.b="AqnUsF9/"; dkim=pass header.i=@oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=tb61EsKr; arc=pass (i=1 spf=pass spfdomain=oracle.com dkim=pass dkdomain=oracle.com dmarc=pass fromdomain=oracle.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=oracle.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235678AbjAETVV (ORCPT + 99 others); Thu, 5 Jan 2023 14:21:21 -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+2L9Vi7PLPp?= =?iso-8859-1?q?JjwwpJxOVNCRz3ZjDu4cr3uvk8WA7pmrd64xBNDxtxwAAKqlzsHEVu7tOj/M?= =?iso-8859-1?q?YTzMhV3GGxKpIVYT7jpnRxhPoNR1c54XbeKfZozw1nWYskjXVcoF30Lqix4C?= =?iso-8859-1?q?jqagiWxxpmDwJXAiIjEDpOzbTS2AmhNoghA+wplxJq685uPi3gMdkQ/14Cl7?= =?iso-8859-1?q?RJABWJLBO+vSfdkbbWopBWrNb8v94L+/fWuo2abnmwDQ/7uZ9RFb3Iv4+pCE?= =?iso-8859-1?q?DXB6qthy4mya/BSzh4HUaRavycqmHrlnyswPOCvcf+a0W/564LDeVTIzOpaF?= =?iso-8859-1?q?6UUtU1Opt7r9ICOnaDh0ESXSUz+ehpfHCQkj5Vw9se4ZSYe0U2HBT2RrilWw?= =?iso-8859-1?q?XqH8Bb55iHL+fjdQeCUVyz51jGGkwAcxhsbrrVpIqT4fS3qlSLOpUQHtIi6I?= =?iso-8859-1?q?DYy4WjTvxr7861QOYz6+MsWBqZza8fdSnHn+cWyvaEdviwDA1Ll/xz0tBjgz?= =?iso-8859-1?q?IRoFUCmBA1soRXIxHh7OnUYnNl5YfanTcsEF4673zg7VMGUbCVsHkX5Lhm8w?= =?iso-8859-1?q?OkQbT0WnAbw1GNahgO6DC6SjXrA1HTRrb9xFI4Q8JtRjkxd9X5x7thdQu/vq?= =?iso-8859-1?q?ikLPg3i0ZSRBcg0XK+xKuGxgrtJ0VDXWDHKJd8/sprI94z6XSONalKLEi31K?= =?iso-8859-1?q?yyu9fE9t/gtVlSg9rCoF7uuBfv7q8+lE91LllIw3pTTH9BoxwQQ3HX83wCHf?= =?iso-8859-1?q?Ex1o+kZbrfiKv9hihf3jYUiBoz1aTINJyAPYGMhruolgyXPdeYB33ymZyQ0q?= =?iso-8859-1?q?uBmZxruLICyOy/SxaXjfdkogaelaHu1cDdTAXVNoVSMHR/z3rMwWk4DtkxTb?= =?iso-8859-1?q?1+Nha2H2lh4Jq5Wkg4boEY2ZXVTc3gabpX6aNLpJJ7MQPrSsJxcgLoGb0i1W?= =?iso-8859-1?q?ndSipdT4UCxdsD1yaZGwvTJcX9lYNcil6LQdduOelUwJAp9jdet6/1my1aFh?= =?iso-8859-1?q?MRbsXcjmKK4ZHv5bPogehW0GwkvxmcTuFTadEWNy103YdXz+/hGv5+1JNaJu?= =?iso-8859-1?q?IhRQvMBULYai+Y4VQT4ePhdKLotK9tLUMMf8KkVm+5KzqeiEJzGPr6EbI2QE?= =?iso-8859-1?q?LJfBLc8iJgioavagJOIsgMv5maNP89P12eG8cEdjUupjlRARwNUnxA06zQDq?= =?iso-8859-1?q?s4pClKDS1yn20PPrFaRoEw1hiOPqreCwCvExMdYkX5l62g+SGnLH4EochGiS?= =?iso-8859-1?q?8BFjqQf/4T7N9oUQiRg6xiIdqXWlabV6Qymow164tFbI1wwvhCwf2U67vrsI?= =?iso-8859-1?q?oh3c7awy+SzLnVtD6wrLglaAwdXCqPEZPY9aAXc/sa7UlEejpHhefxO0qXH5?= =?iso-8859-1?q?Z6Esee5NlJ9Y0Pm+Y9uQIMpodh06tn+auBLfBEH/Q/XDMkExqBb4eqTLbgGH?= =?iso-8859-1?q?RgrcjA5qJrcc5tlJIrn5g2QdaPOaugUgB1t+CRXgIiTptKG6YDgDXvjbazzG?= =?iso-8859-1?q?hiYnJAoF32wAbdvyeN8aB2tBiREPa//HsTHlsMgk6WJWa0v00xR+NFnULfXn?= =?iso-8859-1?q?JuNZojvGPLXxOVpLJoQViCbzsS5z9X2DOJB/PHDxlVqgZT0DQgUm5J2O2Esa?= =?iso-8859-1?q?TJf5JGrLWiMcQ14ynhgpEZ8MJXUZVgcBYgQIEdg=3D=3D?= 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 X-Spam-Status: No, score=-2.8 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_LOW, RCVD_IN_MSPIKE_H2,SPF_HELO_NONE,SPF_NONE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1754211584396063855?= X-GMAIL-MSGID: =?utf-8?q?1754211584396063855?= 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 *vmi, struct mm_struct *mm, && can_vma_merge_after(prev, vm_flags, anon_vma, file, pgoff, vm_userfaultfd_ctx, anon_name)) { merge_prev = 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); - if (res) - vma_iter_set(vmi, end); - return res; }