From patchwork Tue Jan 17 02:34:09 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: 44429 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:eb09:0:0:0:0:0 with SMTP id s9csp1519414wrn; Mon, 16 Jan 2023 18:37:31 -0800 (PST) X-Google-Smtp-Source: AMrXdXvwR4i500mskWH5e6JMQS1/hSs1xILRKD9iBbaj2k5Ge8BqonBVDobrAzVjuj+L/Ypz3E+e X-Received: by 2002:a17:906:7190:b0:870:cef:ef0d with SMTP id h16-20020a170906719000b008700cefef0dmr1123472ejk.38.1673923051295; Mon, 16 Jan 2023 18:37:31 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1673923051; cv=pass; d=google.com; s=arc-20160816; b=dRSPBudB8X9s5ejng9LNjGED4nXqQlWGHPHzbyUWi7o2a+KNmgtXFXnZWN6NthPMLb giL3Wl2sVDS44dTXcw0w5GWYnVYkqYeEXQZiCPyItj6RSKAxxO7rXk++8RXHrvX1se30 sPtj8NUtvxROBm8ipXnl3clMXVbgscS6O+dS96Cn6DUA/zvfoN0DMWFooRMHYr9vt21z aA+i4IGp7DBA/hYGsVUrxoamlTibG4O21Vp1VuI22kUuFVh7FzJq/w62TADnEI/Amv6v RMKrhyuHJEQNT20g+H10YZtGAbeJGqYbSAhCQ19PELJ2VWYtnLmHd7/tS9OMNXHq/Vtb sp+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=m6Tx7nAJZ+GxOyzn9iiDwdI6oGCO77RYAvxfmdcFqVE=; b=Y7bU+jYcmTHVus/sStbtE5m9AQyr6jFyPkWOBqcF506nkm4HTyoIn1ClYJ15HD4Nvc ZrL3e4O3kCxmUwxmrixDuDcsbs5gT7XVWkZBA9Acoz3pV8EoPXaf/wiC8Tk6RISVAT72 iwcJ+VjNRv3b8h3p7kWI2pcg0oBaixkeIgExyEW1FHVFjH/MKgPsfUZ+tPm3kQGclmxS E24wjVVRnZbpDLTKaF1rLX/E0AKLxPDBMTbQqL/1bziv8E4k1xWN3mfm4zATdy88/4s/ JlFWxGs/MTfyedRpBUSw/ArOjBYOTPTeIjabpZ1crNC907AY7tI0xiNopXPIjLG+EoCj 8uGA== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@oracle.com header.s=corp-2022-7-12 header.b=qlpjwcQ+; dkim=pass header.i=@oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=VBOcVVoS; 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 fe17-20020a1709072a5100b0078d459a1ce9si22841413ejc.693.2023.01.16.18.37.07; Mon, 16 Jan 2023 18:37:31 -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=qlpjwcQ+; dkim=pass header.i=@oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=VBOcVVoS; 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 S235163AbjAQCe0 (ORCPT + 99 others); Mon, 16 Jan 2023 21:34:26 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:34548 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235175AbjAQCeU (ORCPT ); Mon, 16 Jan 2023 21:34:20 -0500 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 47DB824107 for ; Mon, 16 Jan 2023 18:34:20 -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 30H09dDD006500; Tue, 17 Jan 2023 02:34:13 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : references : in-reply-to : content-type : content-transfer-encoding : mime-version; s=corp-2022-7-12; bh=m6Tx7nAJZ+GxOyzn9iiDwdI6oGCO77RYAvxfmdcFqVE=; b=qlpjwcQ+vOLp33vC9eVpvrcbDZVSarjq2TQaV5Y7C121/YbSB5e4VizuNYUBKfgxHLWR nEjGOAAN0Op2UHEcPaWMvGrystRoCB/e8a0eWLD/zjPiYH3QzetgUgH+dGi8qMCvuryH YDQq/KX3rIlxPEmT/UnyiEBOA1j4sTsHRlo9GZzLzwLyBdou/8nbuIJ9eXZGNAnc00yk I8qAOyKbvzawELKZulWpiiQxa73Rs0vRAHupm8qfQViYkJKE75B2RPGb3x4PGuUSi6QH WY7OVouI3zPmWCbI1Uq98o1kjxc3jOf1on3t0wc6M/AkrqbEuUh6cDZIXCWbi3ZFsyqz vw== Received: from iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta03.appoci.oracle.com [130.35.103.27]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3n3kaabrj7-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 17 Jan 2023 02:34:13 +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 30GMM4rX028480; Tue, 17 Jan 2023 02:34:12 GMT Received: from nam11-co1-obe.outbound.protection.outlook.com (mail-co1nam11lp2175.outbound.protection.outlook.com [104.47.56.175]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 3n4s2rfxkx-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 17 Jan 2023 02:34:12 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=aTpJEoX5pi3OWVC1PVLAynYJg5FPYipu0/U1mStbHaSa4PBNW5Abaw4GBa6EyYx+sqRF4pjJODO2+X+mMC5dfUzB+tmYBExmPls51XL5L4HmvV2xAe6eh9sMqIi32YSOF9GFGi4cH5FquMCg1/kDPmh3oBpi2jJ2Q+wzDiZA2c//WO/zp/QFsbJdP0wwrqpAfXYjXsC/dTX+j0r9KHSsV3aQbfm8Q0SzlWz6cANS4AEO8xZ6tFpEbutMNmkHbYa/Wi51Os0tNp6U6yOOL9RCRkdIC8Ky6/WCXP0MmiAJ2oDM88ggwzlmCjoc7JsS+N+V2CEG6HP6SKJAVZ/28EkpRg== 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=S4q8HkAJtk4z0qqI5LfVjHBzBkiEQo6vdhktCVdCoWRtEA2CYoIBkCU0juGQ9hPul3xq7YibNhN3fk7+jBys8DfTaHNfoemXyHqjOrm9Jr3Uq5IWWH5w9dyRtoo4p2lVgvaCox7SHC0mwG69YvFvaWwqBf93TjXV//zeXpIeIbJlM6PFZLzbVD9AdM2CZ1oAvmQnsLEHpsfjMvUr7vwQScapoL40JNRh4ooLq4PhpJ8sgIurPVSWRjk5ZwRLBO5x6+19B5602dCzkZrxbHYvYFoX/bsKb6tZANJOER2FOXn+WH5fccjlt9J0z8bRmmDyxFdcSNyuf/K+gZKpvAsxGQ== 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=VBOcVVoSDFj//aX/QLS/qyIliXeujUhegPDsg83n0kYW4SyEtWLpLnge6L2/O3vu9vO1pTKLkyW2zIaGPdpMUco5Lz10OjFnUBw42Hq1sEOaoFVom+f1dKAxZzqyIXQZeS6BrImm5jtaiWlzBwjHGwZIJUN/MwRRvNTDznDq52U= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by CH0PR10MB5356.namprd10.prod.outlook.com (2603:10b6:610:c3::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6002.12; Tue, 17 Jan 2023 02:34:09 +0000 Received: from SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::a02:2ac8:ee3e:682]) by SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::a02:2ac8:ee3e:682%4]) with mapi id 15.20.6002.012; Tue, 17 Jan 2023 02:34:09 +0000 From: Liam Howlett To: "linux-mm@kvack.org" , "linux-kernel@vger.kernel.org" , Andrew Morton , "maple-tree@lists.infradead.org" CC: Liam Howlett , Liam Howlett Subject: [PATCH v3 01/48] maple_tree: Add mas_init() function Thread-Topic: [PATCH v3 01/48] maple_tree: Add mas_init() function Thread-Index: AQHZKhwtjrQXc+DFkUOn7yC2moEjxw== Date: Tue, 17 Jan 2023 02:34:09 +0000 Message-ID: <20230117023335.1690727-2-Liam.Howlett@oracle.com> References: <20230117023335.1690727-1-Liam.Howlett@oracle.com> In-Reply-To: <20230117023335.1690727-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_|CH0PR10MB5356:EE_ x-ms-office365-filtering-correlation-id: c1e45b57-aae7-4f19-6ffe-08daf8335027 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: LAkaLZaVJaCobn0tS0VibTmr+oc2Qv+NZh7dEizm0WHQtXiu3i5pUKRuMj+NxlHivrZ4CzEfu5izVIsr/SuXW4MYYOTMh8DTJD2vEl6p9p8JzJxaO480fNxS+22PErI2wm8p+BC/HvGR24jtBk8KBx9ExGQjCMKd8AXR4yyAg7GcM14R3Z7t4+gC3PHEHeli0/nRj0aVB2SEtLCwgdledzzNrznBIrkQgmVhOV4mzzivXCE2Ni0bLHmiBqbIC0XBT/AzPpPK3sc8VyBhT4XH5VF8dy8j/5oDqBNr7lH4lPk8JMXEp4/YP0JydNrAaKxnbhgGG4WDtAEtjQPkYYd5b8hPWF+mlj1HzASNXslVD+iMBCQQxFJfmUDvHRcCJgmCLTY2ufkQjwsHBY2l4Oc1YX6zVp0phbQIiJL6mLqs+NAluwAv5lCHKQipdg+5Q7e5IjhZKbv8tAZVDFfugHKejT/zZsvVvEfmNuBEcICL6jl+nOgZvP3tMHvo3uv8tOgwmHkqJlVJPiTQx2s8/eA0mYJyZinZJtIA6eTLncRFYemZLc0ak/kl35gH2ClcrMsqnYnGjTtjm1mqhlxTYLkOt7nA/3jxQaNAOCvNGno9y/sTuP996JCOPKzrEU7dQIeet9EW9Lrb6ljSGCkTcdO+xYp/pD4VQS4vje31PZYXbnoMOY+sqXgkprfykd1CSQ7wvJ/AdBXjO6zt+qXav8/a/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)(396003)(366004)(376002)(346002)(39860400002)(136003)(451199015)(36756003)(38070700005)(5660300002)(8676002)(44832011)(8936002)(4326008)(76116006)(66946007)(64756008)(66556008)(66476007)(66446008)(2906002)(38100700002)(122000001)(478600001)(54906003)(71200400001)(316002)(107886003)(110136005)(6486002)(86362001)(1076003)(41300700001)(91956017)(2616005)(6512007)(186003)(26005)(6506007);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?q?XfA6GSNK669JWbttDxBzA0E?= =?iso-8859-1?q?ZNFMBjdZ6PfP85MejDpPvrFC7KKAPB+4QBVU0VmvTP45rVSOewuYSVQYWUqb?= =?iso-8859-1?q?YEOIEbQTxsbgMOA1vKN+8AJvNDW5Xrwn108H5VbmNM+tFktB7o9aBzKja8Vq?= =?iso-8859-1?q?tzgWh2acHBqdVQxV7BHGyzZcUqs7JEg+6AXfUNjny8RR3D5TvfVK0RULBwKG?= =?iso-8859-1?q?lbKOdb9DM3/gPi8DJp0yNOPnjEplsPOTT18v05AVAE/erD5olr4IjJGOPhMS?= =?iso-8859-1?q?o4fTFHbyP73pLOaNIIsHLMoYc3L63QcFPoxO9wArgRa5LdzY1xZOw4LqLIX0?= =?iso-8859-1?q?0owO8OQndM/Bsl+Z+E8hZrwxWmomae81qiSASd8HOJmyGmYSvxaPQuzJf4lz?= =?iso-8859-1?q?gnMqftdisL0x+CJSF8db0UR9kqgaxxK7EcWpu3qlMZEg46M+srDjkvgb9uPq?= =?iso-8859-1?q?F4qBVKNUKmGnTIHdpKhIBqDKyhnl5gfffOl38E4/PfCelHriWOYpZKoOqSNu?= =?iso-8859-1?q?SV3E42HJLscefBXtLLXVe8C/9bHzvNIL9XrUJ3r9la3mnzG6X/sn4irYWivV?= =?iso-8859-1?q?e5QFgpZLe+1oBxMH4Qv4FhhC+5uJF4cBTrIclK5DC/FF/p1N/kN5cQZKrOD5?= =?iso-8859-1?q?Pov01aRR+qZeDvNFbvPB+QEwGXToeZ76kIeASoMQRZVx4oWgEq5bvK2KXSyR?= =?iso-8859-1?q?Xp3nC5KZ3PSIdPe75o4vXz7rkXLVLrYh9tl+z1vQdLr4jJhUN9IO/90wKLuQ?= =?iso-8859-1?q?FmY0e31dXazsPn46fgraAZqRXEZW14MAFYtVKquSg/OsBkJAUgNs+qbmGrfO?= =?iso-8859-1?q?oJorLKS3Md8ih1ET69oG9oKVD1P4/KyipH3KW3KhynqYZjcQ/UN9RR3GQEPR?= =?iso-8859-1?q?9TMFmB0z8ifEbCo3iMYckOe3Ruxy/ARhnVSJIusEE+nUKUOf0QBb7VQigbCf?= =?iso-8859-1?q?+OW7mMVrzholxtTaVo5rLkNLi822JIIboDhSn3Zq5wgsAYKjSGPFdxhYOEcr?= =?iso-8859-1?q?mrpmLQ5rR58QMbr+R90g9uRfSoT7tPX9iy8G3d9L+Wzy4g3fw4vRZ06rd0TJ?= =?iso-8859-1?q?lkensY83Lk4n2Mf3WMdPLaOLB53XavvpZ+nzoG1CBIRf4t9Oba89AHbLSs6P?= =?iso-8859-1?q?p+h9si9SERKhAQZQKkustv79zwYpxTmmSZsIeBcIQCEnNdKK7xAEZilBrl2T?= =?iso-8859-1?q?kG5i06HJECkRQ/mVfMjWQxknFZmp24aEeVt7MlGDSqi7AyWYR9i5xa9Vswim?= =?iso-8859-1?q?307xj4guL7T5wYc0hSDT7sRgMC1tYaZbnqU04+60pwLtzw0LXsD51G9n9zN0?= =?iso-8859-1?q?ADb7eeFljIk4IiH2XsWaNR4b3+S5wemFB9jnmC+SqLMZzQfA8SS17mCIEqWT?= =?iso-8859-1?q?S/1ddh4HkMyIRdEHj74FHhDO2HvhXhRgO1DEvPUVoRG+9HOB+L7th39YX80f?= =?iso-8859-1?q?lSIvd1Qr76MhKtMAdsSS0rt50+j45Y8vW9G6y7C/od2kB4kSGlaeXVVOScNO?= =?iso-8859-1?q?C6Q6LUh4wbw+5HmrEr3OgoHHTfb5LBMlkrlPR+dVWOfbWjLJOV9o2m18aX3x?= =?iso-8859-1?q?qD/pHifuwZ5QDE4/lkej69x++68zFxL4VROPMokMUNxTJyr47CJqKV5rp6JU?= =?iso-8859-1?q?spPOE9JE7dVeHdeZapqQbeygUBikdFAitVJb7wQ=3D=3D?= MIME-Version: 1.0 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: BaT9wVVHZ0/HwgiC8df1K36foIqlucoWU7+mGSxupLhL1vxe3HfuwhG/mU3dqgDnGacNoybCiU8HXnuSmfs9hljYW1wGRGBW94QC6YfIkyPtOIoW3+L/fVN+nfH1dLPlOPL4/jtA3a/8YGJRxLmtyxqAiKzrsjEm+v0MSA88fINOcCxppPEk47JN2J6R3JEqppVHRNPpdybjdUyz13YV7K4Fat62BKUZO1wjgXdo3Q2rNigHN3D0G+ojoarDThjaTYHN47S7kSYkni92sBy8TUnlQZRtgCns4xafX3AL53mWwqRrdspLPVbPjsyXso1WzbarwSQ2EGxRZJmg4uJ/2HZH7QJbch5OrCAfbyVZk6GXYBZyFXLawfJsATb6hKJBhZRl4t8cphr/QOLwJRub69QdzAF8wVSo+hcTD7OhYJAcByZU7FobltOIy3BazJtHnpms+5j+af9yfDnXAq1OB5iZCmRNn6E/b+vZE48aIlciUHt3SRlncWCtfmmEPAvd4FscuJosINrDOVrIOvDU6O9hiUZ3adIClslY7GAXPwAgq0TFYWxAsHsaUPztdVVpwh066qoRL1Pxyzi0+esmzhSEm3rv5TJjy5+zTbo9pbmZVAl/Nyth6ZPmMUuSeFIv/ubd6DbPRUD2Jt9Bldti2NnLnNe7XwU43EmVySV4njFrmWyRxnTPk0zIQySPkdqSNk9v51K5X3TwX4OtH9cELnT1A25KQ0JMZNASZ4Z53/3ZCK6TqXKNJI0IJpb/eqwR05RO/PtdZRvcjafD5QC/0xczYG/ziswkaPOjTWnirDEE64kUCcKQvZXcifLJC9f9adbAmz/o33cWcHi9fqf7kB/a08VSCsoD84Ey9rJKioRpq2+5KnQvhKd6GAU6FP9/pAfsKwhoxAJjDuAxOOUu1Q== 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: c1e45b57-aae7-4f19-6ffe-08daf8335027 X-MS-Exchange-CrossTenant-originalarrivaltime: 17 Jan 2023 02:34:09.7660 (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: h1pEQDcNRyDxgRxXUNcNxygcDut6CVvxnW7nfTczOKaZEQJJIQiCha/b1Wtldc5U6eu+32cqnHPbauzJ7gqWtA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH0PR10MB5356 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.219,Aquarius:18.0.923,Hydra:6.0.562,FMLib:17.11.122.1 definitions=2023-01-16_18,2023-01-13_02,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxscore=0 adultscore=0 mlxlogscore=999 suspectscore=0 malwarescore=0 bulkscore=0 spamscore=0 phishscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2212070000 definitions=main-2301170017 X-Proofpoint-GUID: PRvm0HTR-0_gEvISzk3xOtDLtQnR4qUl X-Proofpoint-ORIG-GUID: PRvm0HTR-0_gEvISzk3xOtDLtQnR4qUl 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?1755235537151310786?= X-GMAIL-MSGID: =?utf-8?q?1755235537151310786?= 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 Tue Jan 17 02:34:10 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: 44432 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:eb09:0:0:0:0:0 with SMTP id s9csp1519485wrn; Mon, 16 Jan 2023 18:37:47 -0800 (PST) X-Google-Smtp-Source: AMrXdXthgA4kkU1uRvnI895wOnQi1MeLx06W47CS2Yq9dZ9mEdqZ7jB9SOFMeodx/m9ZxXycGyPT X-Received: by 2002:a17:906:ddb:b0:7b2:757a:1411 with SMTP id p27-20020a1709060ddb00b007b2757a1411mr13517284eji.9.1673923067246; Mon, 16 Jan 2023 18:37:47 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1673923067; cv=pass; d=google.com; s=arc-20160816; b=WgEuizqmHuaA1p/tSgkPRWeWaxIjaOCRTNDjjpvBVaUU9wUClWUa4e0M2YJpm9+JZP rK9LCYKXmHAdj9AttScVePV/ppkdk4dFXg3EqfRbpzO+n5kyD7paWZZkjR/7Yhz+sNtD 4SMJ/myVwbIdpVlt9l5qw7FK+TLoGXd199/RaLKomvjzI9lJY9aXN5r8/Sjn03jofmJy 21Hdm2U/9fnL33GoDz2MrU39isdcFowyOsJaVUH8hP8uBZwsVYqd020r3jNGOTDPHc/b 7OT/0kKsSUzp/D6NOBEP3ItpuUOTLyvMMv//o0Kuu0U8W8rbtj/6Db3zdwuiktZCQPrS a5rw== 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=AXHRmex9kN1yB2UuFyS7ra5T5N+f1/L6yN09mI+0khE=; b=zGxsq0/VMgdWsojwQ58m6cNhXEnPQ0pk1rSHgTJHMUYwk/TrkDE+13ZmFpfxCziian HOZOaANhohsBIneYQT4yQGjLM9/d0IsbhgcIRBDJ7K8afuDM3FyxQp+x/8S8atriTTo6 d/DZiWeNWuLRI/9QymJd+ebHrcIynZDVVX6xZw9pqV9S3mRa9dJ+DCk1CV/txWMk7eCV 9J80wtcCdxpjxBukUNxarQLxtR/41bFDPzEnH8Q3pNi1fS5Riq4PHcDsY8BDg+Yjb0VV itZL0G45YT1RyfgH8abfpR/fu+Pm0OWQ5i2hzC81vV9fJNZM7N0UBDWSj19kOXwVHspP 7v0g== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@oracle.com header.s=corp-2022-7-12 header.b=DWgGXkqk; dkim=pass header.i=@oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=tplOauUW; 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 ae10-20020a17090725ca00b0084c4a806258si30578142ejc.645.2023.01.16.18.37.23; Mon, 16 Jan 2023 18:37: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=DWgGXkqk; dkim=pass header.i=@oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=tplOauUW; 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 S235124AbjAQCen (ORCPT + 99 others); Mon, 16 Jan 2023 21:34:43 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:34578 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235177AbjAQCeY (ORCPT ); Mon, 16 Jan 2023 21:34:24 -0500 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id EBA16252A2 for ; Mon, 16 Jan 2023 18:34:22 -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 30H0901T000915; Tue, 17 Jan 2023 02:34:13 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : references : in-reply-to : content-type : content-transfer-encoding : mime-version; s=corp-2022-7-12; bh=AXHRmex9kN1yB2UuFyS7ra5T5N+f1/L6yN09mI+0khE=; b=DWgGXkqkIAqVZMrFUv2QKzWJFRHmL2CvDhg2kZmGSyy04dVhHI4vXt+1p0SjpGpLgb/L /LdimUB/PlerYWh0IRV8Toe5IaWmjX2GARaR+QQHa+phkeCvMSnbCFtSMk6Neu9ekL9Z oRd2RKy64BLx4IIuYgPgieOVLmyCeagOGXxSz8FoJC4GFYXEASvpSXtiqYILlMGNHAo0 TemK0QH0FS5QOD4udzApk+ntyFNEyXLriXKK0AawBTVMYbeBxJUFNY4eBnvT6YmSzLH3 Cr93bsFIdwsf9RpU54AzdCz6NW3iOxAm80qmfZVPpp1HvNr0Vhn2W1/9OXb0YbjnQzvx zA== Received: from iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta03.appoci.oracle.com [130.35.103.27]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3n3medbqb8-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 17 Jan 2023 02:34:13 +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 30GMM4rY028480; Tue, 17 Jan 2023 02:34:12 GMT Received: from nam11-co1-obe.outbound.protection.outlook.com (mail-co1nam11lp2175.outbound.protection.outlook.com [104.47.56.175]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 3n4s2rfxkx-2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 17 Jan 2023 02:34:12 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=iQQLW4ZxOzV/vQjxeJxxS3ckPgrJCdKkN+iBulh5o4UiaHLxPby3j/0bgfrpg1VfcjzPzEXwKr8XgRPjVAwPUYRZwIGRum0kmHuDWejxh4TGe6d3fZaXIbIUQUdfCLWwuH5Yb8e8GOZKT9NRb9VnDgJO2EnjgyHeX/0AHNjXSuxzqfVOgK2FhgwCCiZxbhto/mF4fVOKtllBfpSTYj3TdxAvUrMugcw1A3/P16NfKKpFcId/+Tq9AcBfFB5YtQ2/joUySAkYecp9Iu2p5ggECVTejPnWcGksO16t29swR4jSOPVXp9sIf+wGT2eBgKtzdTI4CupNzx3NUimwIO8PhA== 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=AXHRmex9kN1yB2UuFyS7ra5T5N+f1/L6yN09mI+0khE=; b=XB/2tqyUZZe0xwrz/ToTkRnGVJgA1jnX1PzlgPUc3lyqsosC+CDursiAWKBHV/EBrJ3Tsu8SFpC9dByqMoIfIYLGZF8AfALpsJa6cKZfyOmUIv0VFx35xnFayMEkQ4rjm+HRY0m1O48zbWNKyfj+Rn0qJbvh/Gpz1dMgZhPPTsmbAjgP42TFW5+ja3brf2sl8HPPnvOeY1A3DzEnF/bc+kVyvtZiG1KXzqskGXUJf/1yxw+ibMGnHjyrMY/saoxHcCjIpNantHQBCFjRrVRjWGci4ijjDX0DWdKPPQEYxbuE+fiFakkv1v59vECwdLIMWzX6iYqPMlWZuKY5jWk/Dw== 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=AXHRmex9kN1yB2UuFyS7ra5T5N+f1/L6yN09mI+0khE=; b=tplOauUWhLVNBfnke4wqlgEyTJyp9Y377KlBkVBWQgx1HQk8XXI57BWC6OyVAMRtWZgco3L87pI5pSESjJGjAh5FjZxggwYRcUclnml1ppGqfgKyKlzAxbKrCwTVQ8H3j0X/OIJimZiIGXEgAmeXMjW6HPIwInYFtZMNIO18s1k= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by CH0PR10MB5356.namprd10.prod.outlook.com (2603:10b6:610:c3::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6002.12; Tue, 17 Jan 2023 02:34:10 +0000 Received: from SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::a02:2ac8:ee3e:682]) by SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::a02:2ac8:ee3e:682%4]) with mapi id 15.20.6002.012; Tue, 17 Jan 2023 02:34:10 +0000 From: Liam Howlett To: "linux-mm@kvack.org" , "linux-kernel@vger.kernel.org" , Andrew Morton , "maple-tree@lists.infradead.org" CC: Liam Howlett , Liam Howlett Subject: [PATCH v3 02/48] maple_tree: Fix potential rcu issue Thread-Topic: [PATCH v3 02/48] maple_tree: Fix potential rcu issue Thread-Index: AQHZKhwt5gpvfZOx6EWnczLg2I9GHA== Date: Tue, 17 Jan 2023 02:34:10 +0000 Message-ID: <20230117023335.1690727-3-Liam.Howlett@oracle.com> References: <20230117023335.1690727-1-Liam.Howlett@oracle.com> In-Reply-To: <20230117023335.1690727-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_|CH0PR10MB5356:EE_ x-ms-office365-filtering-correlation-id: dffc5300-e351-4e13-30ac-08daf833506a x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: j6FcDX2ZvLSSgaKCwRktVMHxi7qgyPo+FbsgMQUGpEEYLY3Tr7DnvbBWAjBOkW5eVJlZdMsSOohB0mor5+4FkeDxM7RSbOH5z8Izws6FWdt6InFF+AcXh7lSaqANL0OFKfTCkgA0rFaIdMJ3gXJ9sTki3aHHwl7TGGz0Vb5UDsEnI3BGJl2PDlhcmWg2Cdyp/uKBihC+STyz4XDtdzOLO8Y3cAqZ1qCSVLkC/dp2LqJKi16XMJitsEVIru+KW8JUu9WKHgAS0gQCIewBJXFwLA8pR1wqf7nWEr+rHDSgeM5Lhguj6TzIT1p6aPts6gEBawJiCQhlEW3JKK7JaQjKmRNeeHydjz7ew4Nx63p7wu4NLR4fDZuAm/5RH6Lafv1kECfJowWVjArvChn3z+Ms+qq1SGkZrJJo2GLeQ26qiGacs6Fytl4OlupYXtI1cY4nT0+HW/fuvg0uSeDbnt8IY9kG5yJdrBnjVpi0dPYYjX4wHP20C4iXEr+F07mXSDUiDngCMh2KwO+QRTAcoeMsaGoDLOwonoPkGHDpp0S69xVyuzJ72vhccir159YPGnvp0AaMMJ2rLoMYotgpCdOgnApKDCS7W4Y4yUxq5gpDifApduLmnFzAu6N1nZPAZrtVDpn/7vi3oxHR+F98AbRag9Sivr3sEF8YWPbBqf5fhNjQr2Qw7obbp4B5mVFosG/O3DdRdLVEOJaHmflGrlKYag== 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)(376002)(346002)(39860400002)(136003)(451199015)(36756003)(38070700005)(5660300002)(8676002)(44832011)(8936002)(4326008)(76116006)(66946007)(64756008)(66556008)(66476007)(66446008)(4744005)(2906002)(83380400001)(38100700002)(122000001)(478600001)(54906003)(71200400001)(316002)(107886003)(110136005)(6486002)(86362001)(1076003)(41300700001)(91956017)(2616005)(6512007)(186003)(26005)(6506007);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?q?chFiIb6SVrInD00ms7OmIPb?= =?iso-8859-1?q?LEp4CQIBvUDegsIbhNnZUAbwGC9LgDVXyLlEOrLG3QNJYHbxy3CXPMy32Eyn?= =?iso-8859-1?q?hwh3XWikFRafl5Fnxpg2sMSzrZBzFnd1YiHfXFbpVX0OlFtzmAfW9VcXRJ5Y?= =?iso-8859-1?q?AxqwfmLIeVNaUueLiAOFfwwSdv0a0A+qWlVgiXdtC+Z+GNzMjoIdqj889Ke2?= =?iso-8859-1?q?m0n7D4wte+YWPBJA0Qr0F2HMcUTSl7ytK8rC884M1tslkEBvQ7P+3RJiVz6E?= =?iso-8859-1?q?yexKXI5c6JIw1r1VUuSjfREe91utleHTY7kGXW7xIpzrVrsoPMrnfIgdAlgR?= =?iso-8859-1?q?7PsbmKI/OFKXz9zI3Hv/5KEwkOhCecv43OM3X4Wks0Z8FgxqBnVQWocL3B7i?= =?iso-8859-1?q?thnSFZoxXJuJ0NnSl8SlyzpvG4/vrkAyS6zPvCBZyT4i3vht5tu1SZloVJfi?= =?iso-8859-1?q?CYwGc8EouRpQV5pWoTHaVvV4RJhpNrrdoSFfSLT3MzkIFq9PwWo9K7egztbs?= =?iso-8859-1?q?WUie6hw2OPMsiH7/2K4ZeniyuZIB8E6FwxAWI3Sp6rOYSf8lMqHhIz9j3vUf?= =?iso-8859-1?q?bjVLenYUHeII2IIs0MX6AXAty3uqxs8j0/a56owexUrdrgZs8CiLUUpVV2Oj?= =?iso-8859-1?q?wGn3UFGjP10fA86XqSDa/FboxXAqzE40UMNU7VaxLm4BeApTS9b3sCEP018R?= =?iso-8859-1?q?KUbfnj0DZZ051XGKVCluLEZ1bnqVWe+SnnEGnUgV8PAbTkolJdVoMnStMvhh?= =?iso-8859-1?q?AxkZDDVx4tdr8DuUXF148rVuNMtXLjY9G66G2JWdAkuGTKhnI5GITdw4YH1j?= =?iso-8859-1?q?f7Q2FqteRW2mavNj48gAkoeTu1xBSdD/VqEQtXaEKiigXJhMHqXQb9YlEI0i?= =?iso-8859-1?q?gB01ZwwRXo+x80mgnbYQ7EBHEXuDAwWqSbms8BE5F6raIbxkGUTd/aJpwTYG?= =?iso-8859-1?q?aCL3+YRk9LCGy6Xxb5Yw1a2AuNcY43ihH0bb8SRiJSRDWnuy4pH/60ypmpRt?= =?iso-8859-1?q?MyTyncDXWl9xpooWCPecAaIlRE1h8lqqtqwpBQM7O/A0E+L38pCnlaVAA/FK?= =?iso-8859-1?q?p8pG3jbVRBZdUFJTH0wDBBSehXUXe2PcpXS72fjD7dlhAz8jlgDRhwqVrVBj?= =?iso-8859-1?q?2ftgqVW9dFKsTWKp4t89N8O/KjAkmEqKqji551tSYkN0PU7B5B5Iwjtpcemu?= =?iso-8859-1?q?ZzY8c01jzoSRFvj+DlgLAKxB84vaE72jgT3Wl/gUVtseQslQHVdQnkBjjzKQ?= =?iso-8859-1?q?ij1zwZU4XhuxNwrvzSD+M0yTIPivw3tkF3lrg2JxgQzKH6nQMCfplC6XWPKU?= =?iso-8859-1?q?0s2hatbU3gvED48JBtqY+HF1zdWji4qyJevqv+Efbp1KVnFm24u6n2vNGyfW?= =?iso-8859-1?q?3DyOO7oAJ3atvH1qYLO1WeUrlvpX6AbrDRZfExstypoZSkpN4tP7asBSAdWC?= =?iso-8859-1?q?NsdqIcX+BpteImG1UiY+cydIIRqhYViC0p3ARwYrk07jx/2Kmwn756u+vLZy?= =?iso-8859-1?q?LjDctF2d8PYmJYSU89SwMrWr/jNb/md+t8famRLZbp2+Hq51k+c7mjwq4iRr?= =?iso-8859-1?q?irSQO7msp0fIvbW+OgAn/FquwRhqUkyTJbdCIofE60xeQTAUznHZ/1ZldAKC?= =?iso-8859-1?q?WVQ6dR1uIhrfFYWwPbs1IEgwnt1b4sXiqrj9tuQ=3D=3D?= MIME-Version: 1.0 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: 5hIlwpO2D4hLLuu4n0PhX0IyKHsyLYIq8TJWmjsLFs4CAUKqDYcizZiuW9O8+NbwBmWkRJC93K246DU2qwNhOhxDtu20AIAXHnEOvmRNLfGZGZPESEv3RrkRTq5iE29SX+DBQqckomxEFM7Id6tYwAQqiQgLVmNRU4DoarFoejdcT4fWee8cQt9nSoPzGlKQj7GGnBxFuNc27WqwnSmJQ2IS6/4Jwj2BFmH6UO4bwlrpPFqS+U5z3N9F7fkIzdc5d9S0g2x0KO08DiqhQTR3YNCrTz5sXGZ1s7QMNB0HfOqbjh1TiriYXfgyNU9OIUIZQKMlRx58O5AKjupFT3XKYcH3yppt27u39Kf52sFNZsC9nIU5alRIH3cDqSlSzPC3n0cD4Ct+7FBUZv6/+U5jDghcRfWZL1N3Ucl5gfs+Nc2DIb8vXV0nwoinMegvnGwbKMBmUj985J99/rE3YYX7ppw7SVVDnt0EvEfGYAYJAMaTp3/T5lJMnsdatYfXWwOxXQsGpKlhIEBl+4pJ8HUwgNdKWkPRSmYI5+HMX3IUISDTvb+vE1ftCUSoM8NMT4a4V70tyjd/v50p/duJ2KF+17UIBHqW6RAj0x8vMcyLEqO4aqIejcgN960QLlWdfzavY9vp597+ScpoQuJotClj9NwtrWyqEw9XWiOEoiRh0tAZLOI2jWiwFtFk+QNnTM3BKHl3zqObtmatjm8WolhNlR+hwQhyjHX1lYGi4xWqDuQYH0VEI7mPrFSsQS3NE0EY/ENcBw8fYgn0DJXCOYpAaulz499bzYeMEmee0g5vNSOTaFJ8hTRA/UEULlyC2cY0e98+DHA6pjLHs85SwnHiY5h+FtLkOek5ieNdVgvEztc1QFR1j40Vp2ovbCCvTApV0PRX07gj781R7ANnfewXkA== 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: dffc5300-e351-4e13-30ac-08daf833506a X-MS-Exchange-CrossTenant-originalarrivaltime: 17 Jan 2023 02:34:10.1253 (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: +GnIwSilBdzUAg6XmlQs3LKO2zw13P7vUohN5YBjZVfghXV4TVFXgl30DavgcOvBUt0HQlfhNxHtUKbVx1mjhg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH0PR10MB5356 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.219,Aquarius:18.0.923,Hydra:6.0.562,FMLib:17.11.122.1 definitions=2023-01-16_18,2023-01-13_02,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxscore=0 adultscore=0 mlxlogscore=999 suspectscore=0 malwarescore=0 bulkscore=0 spamscore=0 phishscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2212070000 definitions=main-2301170017 X-Proofpoint-ORIG-GUID: uwJsNK3XVyMkU8TL1o2i-ghJm3J_CYy9 X-Proofpoint-GUID: uwJsNK3XVyMkU8TL1o2i-ghJm3J_CYy9 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?1755235554092341485?= X-GMAIL-MSGID: =?utf-8?q?1755235554092341485?= 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 b990ccea454e..c15e63ac6e93 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 Tue Jan 17 02:34:10 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: 44422 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:eb09:0:0:0:0:0 with SMTP id s9csp1519217wrn; Mon, 16 Jan 2023 18:36:52 -0800 (PST) X-Google-Smtp-Source: AMrXdXueYIWuZf93FL9NQ6kItA19pTnu3GjGynoXN8/h+PTGhxzujUrWPVwD1mNOP7xGQmbJD02o X-Received: by 2002:a05:6402:524f:b0:490:47c3:3d7f with SMTP id t15-20020a056402524f00b0049047c33d7fmr2020253edd.2.1673923009034; Mon, 16 Jan 2023 18:36:49 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1673923008; cv=pass; d=google.com; s=arc-20160816; b=v6ixm3R9+spB1ocYjbDgEuFi9JKQ2rbYfVSfUSqAx7TAI3DSXmz3cHNTcjYPVlFXF/ qrbxq76AsVTemQcdcaFpG2HQYYs3BJLUFSIoGh5OpV06yUyo+I/HiQivZ0UR733ZhBGP zlfTqNk1TcAlQHO28EoQ0npL2yC1QIIWJjeaifWvmnmlKEb09xFb8dFjDHxB44/0cKa/ wUfUkzlerb4zpufaPngJ9ZJrxwgykYc5O4g1mrkeJMYAaFNwp5nA2vaPsVpVOp9WhPtM MkWDKLxaP6He32TW9MdtMtYtPoNl9yrPH50nJSWlrFeZh5R9fqxnkiItKLRqhjpdNH8r f46A== 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=XLKqo2ELigudJIql+JZj9hF8T3NaXHJ9soB6HeLIglA=; b=VH2elk4hdsD/9tD1nzNIUDwaubCZMtW3haqdsMo0EDP5a2DwLoRXca0Rbyqt0lqjhs 6WQr5Mwz9W2CCshXfgpWVskeJznEpiTwkmwwnr/QXXo/CnjSEumG9i5zbXCQQgOKs0q9 P6Z0j0vPTHB4rNWr6X+Os0Syc/6wkfinNx8AkQQDUJQGZM+VUUo3Z8VM8YwDlFc/DHyZ 7AFK5y0R5lpdAftADYqSi137QZB8gzG//IhqR/LcfH6jOw7s2fqzike/OULOrvAYFAMf wvIfL1h68UXtCQWEi9QzQbo5IZrab1bacCHf+8DjSSvDxiYDPZossnrRpz0I5LXjDHsc A6Kg== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@oracle.com header.s=corp-2022-7-12 header.b=NH78StYW; dkim=pass header.i=@oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=zv5BAttg; 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 f15-20020aa7d84f000000b0047f85add083si27992647eds.623.2023.01.16.18.36.25; Mon, 16 Jan 2023 18:36:48 -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=NH78StYW; dkim=pass header.i=@oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=zv5BAttg; 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 S235347AbjAQCea (ORCPT + 99 others); Mon, 16 Jan 2023 21:34:30 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:34554 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235247AbjAQCeW (ORCPT ); Mon, 16 Jan 2023 21:34:22 -0500 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 98A0D24130 for ; Mon, 16 Jan 2023 18:34:21 -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 30H09bnF005673; Tue, 17 Jan 2023 02:34: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=XLKqo2ELigudJIql+JZj9hF8T3NaXHJ9soB6HeLIglA=; b=NH78StYWWtDgOSNczksP8k5Oq4/gJQFlrLQQP73CfyqBj56uCnlAwqSxjWOkD2CAXXRv byE51RLys783CcXCurTI+54d5D1yWOhDGRduW3v2RK3uSKCQ+2rVKvKLtoU0QmxB3v7M 4c24j/7jpEYOceH4c+k657/CI7AIB7QazjxeLmBZq8vftN1KODVR0kud8UE+hBVIo4Qb DyK7THyxmQnht/k34dCfs4r11xEpoF+wyKp1ixJtDupusA3FgiA/TEceTC+RAq8csTA+ mK2sQveGY16Xk1Wl2+fCtmT8lLqlm09iHff+CWfYbLA2GTOYvl9Wy1B2qGMyqhpU8a4X jA== Received: from iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta03.appoci.oracle.com [130.35.103.27]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3n40mdb5e2-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 17 Jan 2023 02:34:14 +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 30GMM4rZ028480; Tue, 17 Jan 2023 02:34:13 GMT Received: from nam11-co1-obe.outbound.protection.outlook.com (mail-co1nam11lp2175.outbound.protection.outlook.com [104.47.56.175]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 3n4s2rfxkx-3 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 17 Jan 2023 02:34:13 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=et9LdcJaZaQY4SVLq/kE+Zb4SihJHOx0XW+JunlPTFO97M9/l9snjzhi51yaB+BZfyvMi1ZQ1wy1TDVKTfKNIxteoCBboPVHsSjqr4tbt5VedAZxhc63KupD7yfIdv/JTCnn+DXgx+4d3Y9jKYCe36LJxw+DdGClxPKZJAteDtEqbHtNfoXZ6iDJFhBN9o3rii70EusgO0jd6Rq/lYkpPn/BFAnEJS2OFo5tmCOTpWb7vCQuVPi3zVRqbvPYfxjr34A4QAQPcdGfU23WO4ooOTCPeGnbZ1K/BC89WFt561PU/WCeNeewpK7wx80t3uR+gtSOaMZ3bsJljcsjOkFJTA== 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=XLKqo2ELigudJIql+JZj9hF8T3NaXHJ9soB6HeLIglA=; b=l8AY7YUxBxplCeWma08zDUURp2cWuw4pnqISHsCVHToDm2wC+Gz4BJ5FUUIK9pH2tbyIf/PbMjFMxz2/wuGSLKBL50crp16XioVuht47oHoetuxbZNYC0bgwo1xcuurxSuLrsYJh4VzOarH8SSHSssR6keIobLYKe4UvCM2oG/C9rU9n7yv/BSAomrwwJbzMLpxhIiPWDITiihQ8yct8Blvk3UQwsfJpwXp4IxhrQT/FfOBKICt7jnRZRXOiE1At6aUXozWI3vrMB8pvPArto8oCG7LcaMtQ5mygsQkErx89UbQTB+I5VK4Yd0CsuzWFPX1es6+idqcM1FG3939ONA== 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=XLKqo2ELigudJIql+JZj9hF8T3NaXHJ9soB6HeLIglA=; b=zv5BAttgs7COz+k26KEJ3Je+0HDoPbtmyz5o/zJVj0W86w7fpPgr3pamQnbUTAsWOVHtR548Qw+3RYuBysCNKvxnhWmteO9wW5nZMVfUEwvIJE01mEMK8/wzVliEsEOpsG3JUvsDIa4x/j2YKDFsaEvv3Ukw0v6IvXgrrPCv8R8= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by CH0PR10MB5356.namprd10.prod.outlook.com (2603:10b6:610:c3::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6002.12; Tue, 17 Jan 2023 02:34:10 +0000 Received: from SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::a02:2ac8:ee3e:682]) by SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::a02:2ac8:ee3e:682%4]) with mapi id 15.20.6002.012; Tue, 17 Jan 2023 02:34:10 +0000 From: Liam Howlett To: "linux-mm@kvack.org" , "linux-kernel@vger.kernel.org" , Andrew Morton , "maple-tree@lists.infradead.org" CC: Liam Howlett , Liam Howlett Subject: [PATCH v3 03/48] maple_tree: Reduce user error potential Thread-Topic: [PATCH v3 03/48] maple_tree: Reduce user error potential Thread-Index: AQHZKhwuoNeNmxQIvkKL0cCs+o9Zvw== Date: Tue, 17 Jan 2023 02:34:10 +0000 Message-ID: <20230117023335.1690727-4-Liam.Howlett@oracle.com> References: <20230117023335.1690727-1-Liam.Howlett@oracle.com> In-Reply-To: <20230117023335.1690727-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_|CH0PR10MB5356:EE_ x-ms-office365-filtering-correlation-id: 918def09-4825-4de9-ca8d-08daf83350a5 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: B537zKD7lnYKNXWMZZ74Hk1JksD1cEtAKTKaLjYP9jYR3yVNb2XwOpAxLBcBmap+Bj5TbL9bBwSYs3FuQnx86pujwJjjiGrFRGNL4pO4Ro1R82hsiQSrqko8ImNRthqmHZiX1Brw1/fw9pR67k+HRnpArRU/gHgmTJUfkfhxQU2M/w7konmafQv24W6hLgXBqJhNQLMj4tZwKL4B1sv4kFZoVaKKvRGTirlcLvOW9jSd8vS6UttNc2q6+m7zMwVGUJwNgoF3BUtZO0euVDJ6vSY4zjqN3XH0iU9GWi6MkkkjCzaGKko9QbqWKMO+B1OjP/ZchDmawXqNTsDSmqCLslEPxBhvaLsM7FcNDkHik6D9cHxDAC0clsoOYtw2kzH8jkQjzwHQrSWRae6NIrCfF5BveJdAEmsu0ffU+UKzTIRfhuQEYhY5IDHQVn1eESjvz4JLPRs/3WNRBMKDscKstO2AkntnG1NEgdhMLYnZ+03Uu4sRixoRThmyCG/F+yfoR8iATG/msFy0MgV+lavUONnvl737UVTHco8OAN9kCvfXdmETCR2bKMbH2Zl7b0NFg1pt2Cwl6O0R6/pIcSnRujKPkR/C7P1eVH/6fELhfP9gF4X/bYkX8Y9a0SbVNvfguWBeJjIpADbBohTkKMH7IBbvezH9MN6uo/2fXIRb1Cz24ZjYRdSJix23kayJMKdxHFxcSYPU6BMDZFEXR3UjZQ== 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)(376002)(346002)(39860400002)(136003)(451199015)(36756003)(38070700005)(5660300002)(8676002)(44832011)(8936002)(4326008)(76116006)(66946007)(64756008)(66556008)(66476007)(66446008)(2906002)(83380400001)(38100700002)(122000001)(478600001)(54906003)(71200400001)(316002)(107886003)(110136005)(6486002)(86362001)(1076003)(41300700001)(91956017)(2616005)(6512007)(186003)(26005)(6506007);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?q?InE2mS89g4CVJWVVeVl51ML?= =?iso-8859-1?q?J97VJp96ofYguZY0uN0ar9LZLtO1hqpVmOjukHN1vdZI6toWOwJjOBBuJW+X?= =?iso-8859-1?q?ILM+ifXEGNJllluCLrlG/28qMwwsY5eCz3RBAhdmupbHJkwwWHAs8YFyGv5Z?= =?iso-8859-1?q?Kt1dRBozdV5czhpdQ9DZEpx5cJogUdaFhEHlJveIkx9AdJOcAOdj1hnYI//F?= =?iso-8859-1?q?z5GYfV6IjhkVPhLbS69n6xckbU96aEpwrxPt+mBLRKTy9bHXnLmcfIqVUKOf?= =?iso-8859-1?q?1EB0rD5dO+noLYawaK8M7ovjYh2GswIc65luFRiNbr59xfI/WMLiCbqMDSc/?= =?iso-8859-1?q?iY+MD+4QDGWlGZwZ/yIeeA31myCTfE5AYTEM6AVmAhEeCJV0tNc2FuJJwXyx?= =?iso-8859-1?q?fL/RQRODPvYwQfZ7wLBRmzmfbzPnZxeiOPd5ULlQQqEdda0XgFrllPPfsVgS?= =?iso-8859-1?q?DGMoznUNxgvTAZiZGD3ztkEFusIC+7X/kvCWVXcRRg8aolyt72ah6YgxHkgI?= =?iso-8859-1?q?Yy8e7WDc0VYTXiyuzMJhVSbtOQAynL45nHjj2LLSlWDDbftFEDURLt5rdr2D?= =?iso-8859-1?q?IDoyW+M8Ruc4tbXxHFdxftCy6LPemHlHl0svRsjUpze42ecM5Be5kUoQWqiD?= =?iso-8859-1?q?uJ51nVfT7T1w7bNA6OxDmOb/IRDFfqWtUWTWV7zU0Jh51Tseh1eULHX0Uuu/?= =?iso-8859-1?q?Z+GmR0uJ4gt6Jiuy3Hj7m8DsHyOQc6T2XS4oik6O4LNrE/Oo0X68QH7vjHUv?= =?iso-8859-1?q?4J1VB+eJhu66d7opI87QEW8phPI+OIWD22M6S2uCi1+xQPYJSEJuQgAjfjF6?= =?iso-8859-1?q?T4PWFZEB5bue+aceWrchHyNTLFXmzY0pVt7VUMhZQ3sE1nlr5SDACRCB84a3?= =?iso-8859-1?q?FHP1HZ/+8jM/qLL6ZJ3SY6oPMZNwmyYlr3YMEMsRQBhWAm21lSLrrcFSnG78?= =?iso-8859-1?q?h6TnoWTooUQHX5zmik6IY37N+J2xDPUWQ2VPbO3abJCjqus6aweetzlQ+l0W?= =?iso-8859-1?q?w6RfROzpJoriNsG/q6FWw1owvy7NWYcOHcxiM9SQfXitpkOdacfsgxRwRGm+?= =?iso-8859-1?q?ctCLTe3SMZIIWPZjNsBYTEBCOR2at9XhdCLPiWcxCKZUCCWUIxKGebUTe3vV?= =?iso-8859-1?q?UfQ1CSHQ5xXcDyv9JdgCW9KycSWunnVuqS9FIeEhzDyzWRE6Cp1ONZRMhsPr?= =?iso-8859-1?q?k3VHOKhiwc6IIRPIIFB/GIdoZZ8CO20aUXGOUNz+EJtur7YqCXIiFKimLQvs?= =?iso-8859-1?q?hH1Jw8JDQ5eCeQMd/RHARzUFU0h9rvcl/nQwguWIqWQafkeW3ZU38AU3Pjfn?= =?iso-8859-1?q?q0qGjgORs41Vfj3ScP94KtxX7E+1CvjF+djAaB3oFHsZ04HHHH56Fl62Ld72?= =?iso-8859-1?q?Td7V1FsTPlmN7qFk58+dRaCV9QADP7C6PjxCw9UJUk7GBqVZAOZCqbcxXHkS?= =?iso-8859-1?q?vFjsHJStgLMmnA+TGX1KCuq1t/ljFXlEtTlIpvGqRJpqIU2R8Ea3YO6c/8gf?= =?iso-8859-1?q?59eUSo9QgLR7zZEBM96KxjNfrym2EGu0TP6Eg5hKKi6ERSr3tJl2Tzvy536L?= =?iso-8859-1?q?Rwf3iC5bKYyPHc9W9/pyZpCyztZqOKEZ5P2hag1JwbyV97X6R3hLqxtnlBDB?= =?iso-8859-1?q?Fuat2nQZK66uAoyC3GiSpcck3i1hcVPXv6+hr8A=3D=3D?= MIME-Version: 1.0 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: SZxlPseR8ebWrlhHDPxCdfPJb7AccnNPlvj1jqtp3wibL4AONxHtf+i/62SHAvkS8+NofIJQAGN/2e0zkhIM9LxwWK7kmKCFkasMztutQh8xFl4VJraNOh80vn+8Kk1YkL/RKvfWXixLHhSUfMD0fIW0IK1mW+Cu3aSwPtmr2e7DjrdFKIkbAW4r9fLVnX5uS6VKAC1Fvf70+iHS2+B9lb67otJzOJyi4Q5HVwFnQ0FavzmaPmUdUZhfibweVbaA3IxRvUDQaoNK4NpSCem4KO3ZNb3LqdZkYTG70x3ziLXCK1OUygqmni9139sbWvkqUSOhBEnNVhNQVyCwdZpenodnY/BbN8K/m0SwDL7DohkZ6BHWzIbfe8+g0U8K/dFvJHTFn8R7nyIJqpbRyLz5i3pknI+O9wVY5BU3O+VWyP/GUW2+lJSxk2w+Zva3sbZNa6jleGZ0sCyhB1BJisxHj8f+16X8SdTzZYtMF5qE6sOf8wVV9rFkjZ7Diytm5VehRKvX6OBQ0Xv9KBhoavCs6EPM7t6GL0QCN0hgCvf5t2bt8lQYRdklADG4lJ0Kd6wZ0z5r+3BHJrdmGnsgUeXpuWQ7I4gwQHrWTh3kbVK4lYnhB1NrcYZhVOUjX6t1OhE7TmrYLCq+EhExVnHRxD3dZICOQRrISpPySPT8mrqw77tPRdgu6SSL9V6icrsC/9QTfUI7ztLLsk1Cj6nANzPDYgfoxwYnjs3+JvICQaUj4l1/z8OUS94hACYKoc+BRnIvPVX3qKutRgTcRVmTDLK660XUBEEdBLTAByNPCYu9+Er2rgrCwUrhzkNyEr8X+cJfcsm+hUYUP3mXDmRQ9tvhIG8/OYUNXeabaS7AAnG735YNarzYY5dEnHm0JKC3U2RRGnmvazedhVhEH+b4kDGFbg== 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: 918def09-4825-4de9-ca8d-08daf83350a5 X-MS-Exchange-CrossTenant-originalarrivaltime: 17 Jan 2023 02:34:10.4222 (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: 3P5h2YJ/pj8s20cWkjYnWdk2IHuAmkrhFXRz7bL1ge3qHKyfRvfmWd5M0mciILYL98uqJkpyf28E39tlufCNoA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH0PR10MB5356 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.219,Aquarius:18.0.923,Hydra:6.0.562,FMLib:17.11.122.1 definitions=2023-01-16_18,2023-01-13_02,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxscore=0 adultscore=0 mlxlogscore=999 suspectscore=0 malwarescore=0 bulkscore=0 spamscore=0 phishscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2212070000 definitions=main-2301170017 X-Proofpoint-ORIG-GUID: c7Ws5lg8HSpiTILSMCmxdirCNFuBVkwj X-Proofpoint-GUID: c7Ws5lg8HSpiTILSMCmxdirCNFuBVkwj 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?1755235492694667268?= X-GMAIL-MSGID: =?utf-8?q?1755235492694667268?= 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 c15e63ac6e93..9af88726d88a 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 Tue Jan 17 02:34:10 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: 44430 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:eb09:0:0:0:0:0 with SMTP id s9csp1519456wrn; Mon, 16 Jan 2023 18:37:40 -0800 (PST) X-Google-Smtp-Source: AMrXdXvJXS7fX0noFjM7G+aOvvz5odV/QGqfhXEQrXhttPGDdsmiAESsnz/tM13puyJTw8O+G8BP X-Received: by 2002:a17:906:b14b:b0:864:1902:7050 with SMTP id bt11-20020a170906b14b00b0086419027050mr1110070ejb.69.1673923060654; Mon, 16 Jan 2023 18:37:40 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1673923060; cv=pass; d=google.com; s=arc-20160816; b=NZURIEEOJSY26njnjRyDZh9BS+IQ/SRi+2CnYplK2F36MUc6kJDiXt7cecol7FknkF YmGo1ituBySQdo8MUnMgqpgWSLv3Gm7xZhPuPwV4r8bo/czCoYGxIPWTNG4/Wh8DaYTZ KyQTqESE1v7h12MY7r3ORkXNaShcp4tGelq6ibhrNoOGOf3kxBg7gqmwd8HVkgFTdJLY gvWN13fWF3BYkdafFapOLgjHsqxdQRpj8fRs077iWgHvKqSjVWhD8GHGzm3dRF55dkDk nT5xI9n1jx8j4yYeI9IXXP8ZASJCiGaQ9WN318yYoEPp5StRxMb514hLMejh2WqdVEVx bZKQ== 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=FTs1PFHqjgRMD6MJ3c/h4YCmKn+JizCZMB/AfGy/jyw=; b=bpCNYz7lG/eyk4g7r7ziXB7cTEgcg00uiGTQO2+l2bHCcFivbTg43g3Ry4/oyq8py0 /5rBL/BkfnMBK1vWG1Phm2cJZvT+tQN5T65n4Ff1GxVOnuGfJjX8S0zm3NWWRXOi1agJ UCY4HEcPqewbkllvk1zWfCkUKxllh37leq/2fNtjwQf1KcVg6UCKpDhXKmhf3arWYzKn g2hS+AR19DZluR/vs8a9zPMjpBO6BGPIt390cHa0UzoPwYwKm0/IKEE9+GxBHTMbGfIK OelqW+ME0m0gKV0EUQavgRBICOZwJs/r/cRtNUj6ZhqgkAM4eVUEZQiQQ6029LzqLFTp hKWg== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@oracle.com header.s=corp-2022-7-12 header.b=YcLf8wRC; dkim=pass header.i=@oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=fbj+n73b; 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 bx8-20020a0564020b4800b0049ccf6f99basi8587062edb.602.2023.01.16.18.37.17; Mon, 16 Jan 2023 18:37:40 -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=YcLf8wRC; dkim=pass header.i=@oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=fbj+n73b; 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 S235385AbjAQCeg (ORCPT + 99 others); Mon, 16 Jan 2023 21:34:36 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:34580 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235335AbjAQCeY (ORCPT ); Mon, 16 Jan 2023 21:34:24 -0500 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id EBAB825E04 for ; Mon, 16 Jan 2023 18:34:22 -0800 (PST) Received: from pps.filterd (m0246631.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 30H092rI001907; Tue, 17 Jan 2023 02:34: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=FTs1PFHqjgRMD6MJ3c/h4YCmKn+JizCZMB/AfGy/jyw=; b=YcLf8wRC5Vz6cXZCMNXHnVmQnbTFXe2M7V1p/RIMdzTzAjSqasBMB+QN9WfHorZmsVFR geUJuYlodkJzWVmcZE668lMJdFFHAFqc7aaz0sfpsdCi9PepcdyFCB4jjJXj31HO0cPN kp7FePPLh4TdWvhH/EWJHOvP3OmcdYGdE4fNxBZ091WDIG9QKc41JBHbtrRnC22gBQor 5taGx4kJwMayG5ura7oTXn4l6VNJeiWgZ63EdVf62ZiLkP2km0gmxUAZfVs8nwbcBcEU KfkwZSxOLrCjkLtIN1L/DI6tSA5KkmN0kJszT5c6Yh45HvPMJ1SpoTcfiAiQiN/Jqs2c jA== Received: from iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta03.appoci.oracle.com [130.35.103.27]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3n3k6c3pqf-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 17 Jan 2023 02:34:14 +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 30GMM4ra028480; Tue, 17 Jan 2023 02:34:13 GMT Received: from nam11-co1-obe.outbound.protection.outlook.com (mail-co1nam11lp2175.outbound.protection.outlook.com [104.47.56.175]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 3n4s2rfxkx-4 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 17 Jan 2023 02:34:13 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=X+f8ITuUQ/1Up3HV5zrQeRpjF6j+Tz5n3hHQi5ouEP3HtrV+jlGrh2KL1aTN2evWtLef9Vj53xVjLk0aRUOLM6GBm4GVFjgdOzwTkxE5fZWxdWye+UMF8YlwfQYDD5DnHZ06QDHVtvCEGQCLZieW10/6QyqxRQ3zVP4jkcKHRhk7SSjCEgo4ucc5Exc2v0gpx7tAg9o7U1URmtwQ0Y7M6Ezy8L927YVGncEb419gxiMoyN6te2hE2n5i7PtGsehFVRUJ9YTS14xnDDeddQKnHb/4GNtxJJoBKcQJKCiCm2X+md3sbmkz3M2X+PyZGBz5VRl02dwy8jtxpmb7esc+bA== 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=FTs1PFHqjgRMD6MJ3c/h4YCmKn+JizCZMB/AfGy/jyw=; b=ZM6V7qwe19iq+eUzSpNnTZR19I6pUNeNNQ2c5+VO7/Jdxysp/ImXjGMzoz32qfN8AISVdVUOrXmUIyeA5mwE6xqpEQE+b4dAiQ4+YHjp9iZZXEqjl2QpulqIzW8mqtrV+VZ2pHeej9N3tIcktcj6wTZANBewTHjR5SPJ9vl2RIivLnohypVOr4o1SjO4gJyBRG2CathmY/49QJEwWSMIJq+gyBk8JFRlcyhbrPOADLfckJAkPDckYw9IwxerM4wHqRl6aCFUFhYwk7SPBN06eBE9Ge+wzVi9k7NTyfp6MvkECdS7epxgysg2LDF3h2E+/nFGLYpG/ZpEn8QsNJUMrg== 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=FTs1PFHqjgRMD6MJ3c/h4YCmKn+JizCZMB/AfGy/jyw=; b=fbj+n73bO7Fw3SGFwdMDZVui5sdNNBTPYP9iEjojwoJzAPgP7lZlvTFLXRfLZA3ihCGnjY1ZYwKh8bM/o/yGHU5t0dc9SDLbstKp0FmLW54M/EVacnDdKR7lGMXRAgGQw+LEPpDh3AWMg8RYFPHnNZDwquMELr224bmbfd11IIg= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by CH0PR10MB5356.namprd10.prod.outlook.com (2603:10b6:610:c3::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6002.12; Tue, 17 Jan 2023 02:34:11 +0000 Received: from SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::a02:2ac8:ee3e:682]) by SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::a02:2ac8:ee3e:682%4]) with mapi id 15.20.6002.012; Tue, 17 Jan 2023 02:34:11 +0000 From: Liam Howlett To: "linux-mm@kvack.org" , "linux-kernel@vger.kernel.org" , Andrew Morton , "maple-tree@lists.infradead.org" CC: Liam Howlett , Liam Howlett Subject: [PATCH v3 04/48] test_maple_tree: Test modifications while iterating Thread-Topic: [PATCH v3 04/48] test_maple_tree: Test modifications while iterating Thread-Index: AQHZKhwuED1irTjJeEmDGgAGgOPqkg== Date: Tue, 17 Jan 2023 02:34:10 +0000 Message-ID: <20230117023335.1690727-5-Liam.Howlett@oracle.com> References: <20230117023335.1690727-1-Liam.Howlett@oracle.com> In-Reply-To: <20230117023335.1690727-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_|CH0PR10MB5356:EE_ x-ms-office365-filtering-correlation-id: c891935d-7f4b-4da1-c483-08daf8335102 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: aJPQdiw/GZfeEy8QNbB2qqdaLkMxYv1ogxiJlQIKpFa7Av7ZQgMMS+/cKTmhS6fMx62irXdM9QtY+1CrtoNwgqfqGjoxFUtDHVOnrTFVw/J6YxhJMESqlfzoKN7utvU/CKKh2iygKp4MnIPzk0WgcQeraIHmhXrar0KBh85fU/NL4/Ym3kCRg771C7pIfZOjp8XTGJ7pqWsdbLEJPaMGqTifmu4Y15S61OfwVZHqQ6ln9jbwEtiysKNFC2XCYab1p19w49lGxXSn4HATgIIc77t/UgMhCebvXgK6sSVQWS2Yo7VJDcLMGiAEcumeHB0WFCipodZNMVL25jDDANiSmlL5Z4FIKF47bpMtE4SB1kHJYw8iwEIY2rc/+B56/UdU0AqktfzGK3LckSzg+vIytCIy1V+Rb3clYBun4mApsZSqGXSkOr6gfF9l6mQFTnvZQgG7C5Nb4YjTx57xf72g00HVyDTFBJGXzeKhYpPT+UhIybKwT0pn/Peb+CmVJDtuyjWYrNqQNC4C+9pffJrdI1xpZBfsJctorpV8ArMIpebJ3mTwTjcZBmuHp2XHaR8BEU4lpyYXVcBwsmfZ9Wr/A+KyMpEyc9dVwxP/FaJx3GOcRcO1AiHNbGrk0CVuTgXrE5Xurs93w4myxraOaaKEnmc7iyXtvbt6B8eTqJHJo+yciupVMfhQsa8KVaNwhaDdj7Dbz3QnAdrEgKxveq/fsw== 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)(376002)(346002)(39860400002)(136003)(451199015)(36756003)(38070700005)(5660300002)(8676002)(44832011)(8936002)(4326008)(76116006)(66946007)(64756008)(66556008)(66476007)(66446008)(2906002)(83380400001)(38100700002)(122000001)(478600001)(54906003)(71200400001)(316002)(107886003)(110136005)(6486002)(86362001)(1076003)(41300700001)(91956017)(2616005)(6512007)(186003)(26005)(6506007);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?q?lfsZvhVT2u6fnr0/CJEuK0i?= =?iso-8859-1?q?Lf2vE9vqHZz3MfNeW++rnZUpueSSTuC8q3cZEEKGsilBUqK9UhbSjuz764xV?= =?iso-8859-1?q?bEkarprxEXyU/cRmoxvOONMamPLffkQCCiYiqA/5A1LTBimwxIFnmJFzUhI9?= =?iso-8859-1?q?GEdXpLtToUFLEgX8DV4P7ZqXeIvxfgQ1CV9wjSY0E8d7Dl6jcZ/O6CgIkZJw?= =?iso-8859-1?q?QtvMF/aObSi3L594E9JbfGTnGUuneypbeJhz2y6pNh93EgSgC0ELs8oDv1ED?= =?iso-8859-1?q?z18wn27P6zb8AeHi5waMPa2jiwf1CfJnN95v/4F59yF0brPbcU2d8Mzk8AWW?= =?iso-8859-1?q?1UnWGjTVPTfe1tptYDROHbMso+TMQkmqkr3cGwEyYE7B653pnerj6gOydJzw?= =?iso-8859-1?q?h+sYC62WBlfjtqXCDU6IZjRtEjCNXXHGZfTPFTlU71rrN59/9Nzjs65iL0LY?= =?iso-8859-1?q?KGNViJI4us/qa/2srfhS6jAlBqESxmLun40+5DRO/BZisH4EIMYD3SgCSaD8?= =?iso-8859-1?q?VEx5P0dl57gZIEs6okuaxTOZPNIZntt7NoSIz8Y2QoK5YXC3eioCNlYsFB0f?= =?iso-8859-1?q?gNYmH85/FB5mn6sXhOriGBOSJupGTOw5DGJmzyGFqXlTg6eTlb87ewh/s1In?= =?iso-8859-1?q?gfsvFXrDHxMPpqwZ4PQ+02MeZmAhCyzC97qgYXWfTivjaGyv53Jb+AhY453I?= =?iso-8859-1?q?GJJvK4jm7dLpwEFIwlp+MBwJYoJyfjCfUYiZlumBznI+z1JrHdGUTIEa+zD4?= =?iso-8859-1?q?92nHAyOVc0zizb/35qDKwT0xtsLZnJnL2IWtBR5+KaYFXPm6fB+YiEezq8Tu?= =?iso-8859-1?q?q1JbbXQMTypTvyoPM+pU1y7h6ub0w8sZnoIE+9inDbwZFnW9kp4F91HoGzmT?= =?iso-8859-1?q?HS3J8Vom3q9yV3nz3a6xAZ8U8SI+IulqfvYGAxhin3aT1rl/RGCTADfoyrQZ?= =?iso-8859-1?q?yYylT3fZXywlpGkIZ8bqeTzqmE3Pyp1Lz+PIKKtg1OiApgXMfmIyfM5mxsWp?= =?iso-8859-1?q?OTqfgY+ohouCLQBv6a8XIzghzdyt9JRUGWv2cn+fUCnakYLYsh4+YY0tm2jj?= =?iso-8859-1?q?zv8/Fn393+6BnQSJssIG3NyjpzMxwkAqVLItMg52TNeHRvz6hzy5IpXJcLId?= =?iso-8859-1?q?A7HcNDJYgwCvIKmWYFvV/RBmfdbPxhLecUAKDLnjtdURZIKbgmGSM0K0dipK?= =?iso-8859-1?q?ymhDNhDMMGZRIUXU+UZH3rZT2Lxs1N4Rq/wVFJbAUwDUrsUSjQMPZzadOdgE?= =?iso-8859-1?q?uW+/ieSgq7UohfqDG2eu4s95jJEtuFR7jb2wD/FkyF8GCZcqdsw1bZKpPfWM?= =?iso-8859-1?q?WAMHOhV4PpVkKlbYcksd3i/t3H8a2ZiA9rtFxdp0GYg3veoXSwDEOi7Tu1M8?= =?iso-8859-1?q?pJuGH4SICZKqOUavjIT1mzezA0YRx0/6J9fcH5xj3A36rYbZZe2Vf0m6SlZw?= =?iso-8859-1?q?/PfGvb2by/7nw+bOkr8jHHjllQvgeoanw/sprLun+EXiAmimSL/M0IIbPma/?= =?iso-8859-1?q?9LLnyLKP02eGQ/zKr3wV6lJjAqAPgp4rNLF0zQP37Socn9H3U4pHtcDYrbmn?= =?iso-8859-1?q?oLhlPG2pJ8bgzHnpt3oKiAJjmPeZHicegivlWMUN1DSITlcxGMS3QQFACvZ5?= =?iso-8859-1?q?KimkhuUKDGWDxt/As5kVV8aJIBWHxskViUTAh9g=3D=3D?= MIME-Version: 1.0 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: YindGtna3Ydtj1Y7i2X0eyfhOawLbwzPoigSVmp2BnFdTfPTLoOlSxdMjAhdhRus1uY61wBeK+90cuT6XiR85gSvap6p9qddDab8Sg7kqZyuMdrrkbtlCuIqwP+Kg/PwMWho7i3X+pgavPFxQPuik0BuWEcREVUgyUN9pgoX08ppObMYIIFkP62QBL0aZOmS+ZMP1IIEXDHzGqyX4in+Doc7NeV/POC/BYlUjuuKeXt0JG+Ncj/57WzhkZKpSWFlYTVCRn5bDFOSoAHxMQ2GXuaSsxkf8sjnZ4Narh80cHgXtnN0CR1UJfaKhlTFfwA3m8hz3oPq96igj8IT4T4hHP0LeiV/IeHfvHdURO65EBO13jlDc2yZLxnTHwHPYhxncueEKcKgjd1CbHQuF3dApVDNbkp8grOeGZly7NvRqTPydmhYnycwR6AbMpZmVypryLWOm9Ivg/yrIc1BFwRvZwRgeS/YP06jaMZ/vUnZWuKyQceaAeeEdKuBnONUkFeV8tT8vG9/yqqkJfl5CbeX3PqGvKYRR3suc7qRhVjAfaR8afnMHwohQ/H3DbGlz3GQp7NCRt6J+UiCNlzXf+0EdhGE5k/12sGhiONqKkLMydiXgxq7jqFyv/yKxx4BKtyB94aG2WvG2Aj1MyzS8uxbWG3aIjX4YktnPppREZp7fHytoURk8/FCUceXkMIngmCXueKGFeIKmmLod1XymrpgJW1aOa7a6mCgyehJ/7t50mhWdP9iq8IdhsMy8D4akOVWoRlJD7BedQ3qZZJLv3Gkz5nFyFbfDoJHk8dPyY2NF7kGGfV5O5vt3xm09B6a810qRmYYrrGDiexpzTYtRl0WevNUsvvGoQhUc+Zs3uJ/QOKgB/DmxkGY1CU+STu/OUBUVX6rgTeqWIXxenI7mVCZpA== 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: c891935d-7f4b-4da1-c483-08daf8335102 X-MS-Exchange-CrossTenant-originalarrivaltime: 17 Jan 2023 02:34:10.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: XDWO6rc7wgJIqvZ7XV5g+wjfU13yy3FHbg2+YDYQYYc1bqWkh1hqoLqfHsnV8a17u2/X5JLQsaGrL23IDza1qQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH0PR10MB5356 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.219,Aquarius:18.0.923,Hydra:6.0.562,FMLib:17.11.122.1 definitions=2023-01-16_18,2023-01-13_02,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxscore=0 adultscore=0 mlxlogscore=999 suspectscore=0 malwarescore=0 bulkscore=0 spamscore=0 phishscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2212070000 definitions=main-2301170017 X-Proofpoint-GUID: kJvbc0GKXx8R6GZwLlaJvrtjSA5x-8Wm X-Proofpoint-ORIG-GUID: kJvbc0GKXx8R6GZwLlaJvrtjSA5x-8Wm 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?1755235547029927238?= X-GMAIL-MSGID: =?utf-8?q?1755235547029927238?= 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 ec847bf4dcb4..3d19b1f78d71 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) { @@ -2659,6 +2727,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 Tue Jan 17 02:34:11 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: 44418 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:eb09:0:0:0:0:0 with SMTP id s9csp1519022wrn; Mon, 16 Jan 2023 18:36:21 -0800 (PST) X-Google-Smtp-Source: AMrXdXuhQKo2Tu7RuSmHPZTVKKbLjD69+NZmpKdGmKpmcDEI2h/FFRDQgyNbAC7Q/BXWcGjj1BKK X-Received: by 2002:a17:907:98b2:b0:83f:1e04:b776 with SMTP id ju18-20020a17090798b200b0083f1e04b776mr1192965ejc.40.1673922980985; Mon, 16 Jan 2023 18:36:20 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1673922980; cv=pass; d=google.com; s=arc-20160816; b=eAETqvV9KhnkdAUTvUgnJJ/70YSriNuD1IcPliHpXDWI8r//iwoMgTvNWjRQhweXYh IC5oO5ATD63XNYCbGGv365aD83nCgd/974H2f33p+LbC9oBcjwu+/H3vX+barcpkgCmc 6YM0TCbH3l8HpFfY2yb0B6yiJ5COMXmmaJD9cwjTbqfdpQ8q17U65WzCsV8dsNklfHR+ XqPQK0DSzjUiu1kpKvbstEwAOpj9BTVLhy9GC1mHW3PLVskKb/UbqiVcEhJEXWE2PQ9B eBNXTR7+oSy3Fr/42TUHWaQqIsNbVE7e4uot2wfOZRvQyEpDo5tQdqWY1Mx1xhdYkXTf AOBw== 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=i3H9gUfYFOM+Ivkc7nM0n/EQWMB3nORkpZUrqw/ZgU0=; b=qHxyfN58Lb3GcDWh9+qAveBY6zRs9iWWt8yUHFsX75+L3TneteTyhKDv3xgWfz1lFR EAhUkSJ7e0Ke0if2RGefEWY60rvVvDLgV5DKMiE65y6iK5/+rLCf6VzptrDf/33L66pu nEjzTPCg2QIvEs8xXSlVWapvOdXql7Kd9ACbdCX7rFtyQsa16jg+jtI8hYVv/HI/pnu2 QVruVqHHF8usyBCMdkWXMYBjcPL/1gFd37Clf1hbP9PW1GY7DdY/yq5XrA2uGPwXesdv vFpUemt34O6bp/7Tm+hLdST4iKzwxOtiGo5dd/ofGa9styUIAgC+stvixmgdMqp3b3v7 t0tA== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@oracle.com header.s=corp-2022-7-12 header.b=skXqMcVS; dkim=pass header.i=@oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=cLFGXWIe; 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 hw9-20020a170907a0c900b00871a4e8d7bbsi3203986ejc.268.2023.01.16.18.35.57; Mon, 16 Jan 2023 18:36:20 -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=skXqMcVS; dkim=pass header.i=@oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=cLFGXWIe; 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 S235401AbjAQCfF (ORCPT + 99 others); Mon, 16 Jan 2023 21:35:05 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:34624 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235355AbjAQCe0 (ORCPT ); Mon, 16 Jan 2023 21:34:26 -0500 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id CE08229E3B for ; Mon, 16 Jan 2023 18:34:24 -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 30H09Urf005545; Tue, 17 Jan 2023 02:34:15 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=i3H9gUfYFOM+Ivkc7nM0n/EQWMB3nORkpZUrqw/ZgU0=; b=skXqMcVSId1BqkDDArBq5UpSMGdd98cGIIfkWJbkqZ5gxEmZr4SzaN7r8PeSeefY11gZ J495AfXggwIFLrAJthULlFxsJfa8cV10wzog75jt/lDxxRDFSZhz/SUwJ27HjIIGfYSK ryE5uZ1SauIE0lTSTArA4YOdrC0EX2Latb1+ABTcr8Qo+NRMoZCQkSIAmja/WIVteXCH +qIMnmUOTvGoHh92uE8M19uIvybwsmY4u6lg6Hi+bFxNQudo02YoB+8Nwcy1tFpNLFZa nEy5kfjMQbXQevBPJuK4eYavAS5xb4UGtIgHe+mx57C5dS/serGYWAGUXwACeBvps2jF PA== Received: from iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta03.appoci.oracle.com [130.35.103.27]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3n40mdb5e3-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 17 Jan 2023 02:34:15 +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 30GMM4rb028480; Tue, 17 Jan 2023 02:34:14 GMT Received: from nam11-co1-obe.outbound.protection.outlook.com (mail-co1nam11lp2175.outbound.protection.outlook.com [104.47.56.175]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 3n4s2rfxkx-5 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 17 Jan 2023 02:34:14 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Vi8745pSUfeMPeELCo4ewUrN/8Vn4I04hVxg25rmvR7lXvvnoCC1g32BXCmQcOhnMKIqDjqUBCyYN/ReTfx8sqdNmuRorf0xkWsdEWVbWLSTUhaOHgAtwVh33h3isbpMpbd6xWBVKv4GPav51h/S40F8bCHWkfN9TQKiBViQI4z/H+Nw3FuwpqyajHrZOyL2gaVG7BhUlY296c9UCQDPK6GNe1YkEdo7MS7TNmpafySCkuDJ4Wi3T6qn7dLBJbKwehXfu2Uz426+cT9lMKzV/cInBJfuYCLxpNpUCPCfE7vdmeUR4t0SKEDz4ZvbSe9iR9Rvk/4puKqoO6PR0mlMhQ== 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=i3H9gUfYFOM+Ivkc7nM0n/EQWMB3nORkpZUrqw/ZgU0=; b=AagIpPv8SglLoY7dyxzoJEDjgp7Cu97f1SjWcrgqv8tuynuwtmVdAmGaQg0VTebQ2xGa+RNxsxD2ut+H/nxNkUe+hqm8H9pPxvP5zGzk9nnl/wz7SsfpAqGx1GVHslKbiOJhS7R1gIFZGoxPIi70LniQOGgcIAULZgf19CxJWUF5ynweJQRqLk9+27Hjb9PE83QcybhKrvhXoSKGdNvCIldhantpbxMk9TaLcMUfrDFbAstuWqfEF3dOVbapATakxB8nbmhbAb5tTIz0oQkgTC0cSVnn476SB6pV3AWa0++5hYKKmihMfJW4hDZv15Q0CUPTP1VUEuRnsOUqGHiE/A== 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=i3H9gUfYFOM+Ivkc7nM0n/EQWMB3nORkpZUrqw/ZgU0=; b=cLFGXWIemS4x6C/DM5Xm9YNQvItKI/NeBnF4OGpcB3B5JPazFOaehFi0LymFhhpggOciz2anoNfjVS5SD+PgOVcvj921x1Xb7uqarPK38lC22JBUsFr+2+R21Z/PCGIBVz/ZTEV1u5OIoPm5ud1dpUtHrOJhueqP1x+xFcIqXCw= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by CH0PR10MB5356.namprd10.prod.outlook.com (2603:10b6:610:c3::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6002.12; Tue, 17 Jan 2023 02:34:12 +0000 Received: from SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::a02:2ac8:ee3e:682]) by SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::a02:2ac8:ee3e:682%4]) with mapi id 15.20.6002.012; Tue, 17 Jan 2023 02:34:11 +0000 From: Liam Howlett To: "linux-mm@kvack.org" , "linux-kernel@vger.kernel.org" , Andrew Morton , "maple-tree@lists.infradead.org" CC: Liam Howlett , SeongJae Park Subject: [PATCH v3 05/48] maple_tree: Fix handle of invalidated state in mas_wr_store_setup() Thread-Topic: [PATCH v3 05/48] maple_tree: Fix handle of invalidated state in mas_wr_store_setup() Thread-Index: AQHZKhwuta7+AQoZ00W/1/aoOxpVew== Date: Tue, 17 Jan 2023 02:34:11 +0000 Message-ID: <20230117023335.1690727-6-Liam.Howlett@oracle.com> References: <20230117023335.1690727-1-Liam.Howlett@oracle.com> In-Reply-To: <20230117023335.1690727-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_|CH0PR10MB5356:EE_ x-ms-office365-filtering-correlation-id: 0f4194b6-6586-46b4-c09e-08daf8335140 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: vbZmXtzbHGaGIbJR1+y5sEyjnVeqQPtTz5aJD2/Wf9PrHrq8AUp7jbRA5kZMUQGXgVsZ5385K5qPqk/IXBv5HYF4dpxtDZgKbXMRbDJhJb5QpWo4WkCCgXR0joeYpnDQZI6AAf3e4A/iV1Yatosf9/RDtRcneQyZVHvokVstnaLzQQ3xOaWU6JDkUscHGCGZRK0nh9JDwHA/oGFAZNgSAXpB2ZBJ4oODTDiIkz3LT6VXEqPzq5KdNgwCW/3aVfBA4s58rki1JG9JVw4h4c82LOGrflch03oNCrc9j2YfhXsAAOt23zY0rlVOMvKwi2jxoJ+Xvlhz6P0CvRx/xgF65Epj9kaSF3gse2CeW2H8fChxF/4WfTE0OuTKYVjpqtjbj9iCunDSsxCpjqYYm0InA2D8hqLpSdlByENW/LA73/AHzvOJjQOgPGNZGisnCLVTnmKa26fwMrMoz3HuL2ievaMqNtG1N3GlyAUn6M3/6WTywAwzQv6exOQ0AdJ0JIPucLm/yobca0W1KAV0R71XMO1i2oG/7XjZOSJyoiyMQaSrz7ZRCE+gCw898BdH8Snrb/MJeXn0mBj3pApbLbEnt66J+2La158K2K/if9y8mAJUkfhbkSpOSqhTkyW6Zu9cWUcBuka3wIvSCRZhMzu0d63kNK6DwT1n2C3E2UvaVnUUhx5vobdcNWv/6jyxAHOCQBTUnC7zCLuyy0pSpP/u+EwimmKD14vGfxF7eztOMao= 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)(376002)(346002)(39860400002)(136003)(451199015)(36756003)(38070700005)(5660300002)(8676002)(44832011)(8936002)(4326008)(76116006)(66946007)(64756008)(66556008)(66476007)(66446008)(4744005)(2906002)(83380400001)(38100700002)(122000001)(966005)(478600001)(54906003)(71200400001)(316002)(110136005)(6486002)(86362001)(1076003)(41300700001)(91956017)(2616005)(6512007)(186003)(26005)(6506007);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?q?AYieW8ecA4AXJiBbOuygEah?= =?iso-8859-1?q?Xj3/kfPhGC+YqYldoIixvzJFGJQQd+P00tdu1pZZfMUhD/iKm2tEEBh2pMbF?= =?iso-8859-1?q?QYtXf0emrevqindlNZee07Edlad9U9Z5tT6tFD4y/ynwKfiSK/YrssyWFkum?= =?iso-8859-1?q?HhAJZqTs7dwR3hJ04X/egg1TgELOSfeW2goGggXIUPTGcQWVJdzRkVpEf43B?= =?iso-8859-1?q?sFwCD85Ihr9FtjmyM/q3uTHyZpflQ+xJMumvVgS8aypjl+eo+t8CZ5kFEW15?= =?iso-8859-1?q?Pwhnyl8jMdT07rdUp6IoO7TVsFPOxF+p2UTzQcUlXjipmVWQIaOR0O2qt33K?= =?iso-8859-1?q?BcgrKiTjlqJm9fv9JcwdCDSTR/2C/+zbjbjRDd8vUpdd2qje/aGykU8gtdO+?= =?iso-8859-1?q?TdbQywDpls4wxUh0pA2WK2IXYzJBI/L86orNoLeLksZj9NgNbFvJr4G60z98?= =?iso-8859-1?q?I4xffVnZFIQRaOdqOIWpTogMNoS2osXjaVean2BOIO7ZhAQbFcdNBqsOaC8I?= =?iso-8859-1?q?jYm5ZmznsmQt54lkAo4v9gXdqLzHGHcWjemVpgEhuyfr6FLYEBodCRhWfPyx?= =?iso-8859-1?q?MGfa9tZU1N4EFw9dRputzam9GWK3ptgjBDE1ZazOLz6T7EFZs3GPyBGMFkDh?= =?iso-8859-1?q?DDzhctzm4pNqKC6wVwn74XWgn+J50NN/rSgClZXfx/8y2N/VnITl/kQSZG6R?= =?iso-8859-1?q?Q6Qs4tRowtSW3XbFNcF5cyuvgL2b961c7vst8N9UQFE+yWTWkjlxQRSeMxRN?= =?iso-8859-1?q?qTM4qcnDVf/si2Le3BGuBoLDT3KVH2s+9wkLBOfaMYg/vJF2vIDzD7VStOeZ?= =?iso-8859-1?q?w8N7BYw6fM1h6b+aQcHZJJJoSXASLJWc1PklLaJnJy4vZnpcyEjpyqUWK+F4?= =?iso-8859-1?q?Elu5Jy/M9a9j9ueGlLWm/wTHXpTciLntHKMUBa3xf6yMAmLcHwXaZ4WAZdxR?= =?iso-8859-1?q?szxifthdY+Xa+jseT+P50GJG7ONQaisoQYX4QL91WkROeaKWxVswKsJMXo5k?= =?iso-8859-1?q?6gxrD8SM49oPp8MaYQAMBEdR3wundsFFXks7tLw0HIaNdIYv57d/RBPrGDPR?= =?iso-8859-1?q?J2rTbLFV2v7B0itU0AFdp64C93BkVR82y4x//p0TkVtE9ARmEpjduAGG0ZUU?= =?iso-8859-1?q?Z1Urbw1GZBKYHx52rVoAAQbOGLTfHh1QY94hDNkB++FKhBFl52bxaEeKWur7?= =?iso-8859-1?q?K+hEo4aZYOcyjd3kRzZ0pFKBUVR5qIiXbCImZEqzdbyJek6JfnosOvIllU0Y?= =?iso-8859-1?q?xugGlGE/mlhLnOVfbkOsSZ/BV6ape7yDvdjyr7msXnpti0ow5gsZawRjtVy8?= =?iso-8859-1?q?1A+G4Q4JFbNQ4z33LUY/5DYeebYuMBG0534P9Uw3Duu5j+PDPGcXxoXn4yc0?= =?iso-8859-1?q?++KWfsVE2nXQO6kih1G+WKjPibaZ9uBD7HFmWb/DQy3SWVR0bwEF7mFWbFct?= =?iso-8859-1?q?IkMaa1uOoJGoNlJdG4ac5HUmDe3Kw8RVTHQpirIUfQcDxnZPX//a/Ct8Z7/q?= =?iso-8859-1?q?Wtx+fJ5T4WF+s2hTtw4tkMmX+RlUa8WMqXMpP6e/C02VHpyjqRFQvb+GYq0E?= =?iso-8859-1?q?ROOTWrEarhI6+AkQuSzOSLAP9zkCpmrna+BK7wuDSpk0qJamcKcJtIBfx9dT?= =?iso-8859-1?q?YF7t0ORJ5JsnLmWqTUSKjltjqRgMzdhKm7hvVRA=3D=3D?= MIME-Version: 1.0 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: cBWWSQfgWh5PadCcbkYTK0S1HYdR7dkl8msNJe2pA2f9eP+Dh+FGkVt99NCWZgjCBCu+OgbqLGyxtrIp+lgezbhvbylM7UErafMxTn5KwiDAEP+zJ1785iDZFV78bi9CVrFRtNYezXMCEoowRu9fXbApfeJ5NS/BN5X6xti9wHw5C4qkl9uG5l8h3Ns/5ibGgYawGOD6uj/4xxRTAmfgAVJ8iEE5bcuwYb/ufWz0jnH1R8ojnaDbNWCTYfjG5bwSkMFnDfiU3jAKWrtKFNJfK4Q7jqbwrGOe7drrJIazJoMmuKJIk0C6lYwCc3Ah3vQQC1/j7OloZn6JUM+hycuSnil6fcoJ+87UUIG8V8KrTOSK/8u18MYOFaglqaKmsjD9TkipOGwaXfOt+VlL7bQ02bkIN+uBw7waiDZNwYylfPf0V2RJuXeR0viZpNpJClgRGyKBWrf6DrNZBKOYXQAT0xD5IlteCGz3ya+RKWRIIyluMHaK82CX/nXo8nzEsN9ZztkBu4kr+iNC4eythOvEWuhINQwomLhR76mL082UFnIWDMbh9i7VHOzCGZFn4UVvHZlr0XrTitllEn2Zt2AMOJkIZZEArWyC/u+nS4jBqKdxcaUrJDOSWRvIPtA/497DbbYkO4xgXcZnp0gIKezClR8PRlvAMHxeJz0GotHF3Aq7NEtGjkpNYm+vBCkdXXzzeoszGsfR/iIjKvTrsCjosR7jeLUqnjPYs7tE1agbhTzIjFFWf4IYv1SGC7VAgwLRBc5N+wvoGMnlEG3zzINOri7+Obm2tEp8YRTqVPppIdK/4jykWdFtUZhRkaILz+xeNOLDm6RbHohCXB/tpGkDCkS67qQ5jZYzBldhmXS7V/1sfbAOVTf2A4W2g15zz3gFplOq2vJHYT30+MJn7FlBfWY1utC6oWbNgD3xCTRmphs= 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: 0f4194b6-6586-46b4-c09e-08daf8335140 X-MS-Exchange-CrossTenant-originalarrivaltime: 17 Jan 2023 02:34:11.3596 (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: ik2MlgfA6J+16L1yAXOrF8XiVabmlGtwJx/lg10WExxCR0nnzBjVIy/V94BGgeUrg0QPAfb9pIzQtsifE4qaxg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH0PR10MB5356 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.219,Aquarius:18.0.923,Hydra:6.0.562,FMLib:17.11.122.1 definitions=2023-01-16_18,2023-01-13_02,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxscore=0 adultscore=0 mlxlogscore=999 suspectscore=0 malwarescore=0 bulkscore=0 spamscore=0 phishscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2212070000 definitions=main-2301170017 X-Proofpoint-ORIG-GUID: Fg17NcaRt7B8R0zc6Xt4b9MWqm06Omc8 X-Proofpoint-GUID: Fg17NcaRt7B8R0zc6Xt4b9MWqm06Omc8 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?1755235463820576369?= X-GMAIL-MSGID: =?utf-8?q?1755235463820576369?= From: "Liam R. Howlett" If an invalidated maple state is encountered during write, reset the maple state to MAS_START. This will result in a re-walk of the tree to the correct location for the write. Link: https://lore.kernel.org/all/20230107020126.1627-1-sj@kernel.org/ Reported-by: SeongJae Park Signed-off-by: Liam R. Howlett --- lib/maple_tree.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/lib/maple_tree.c b/lib/maple_tree.c index 9af88726d88a..03429149870c 100644 --- a/lib/maple_tree.c +++ b/lib/maple_tree.c @@ -5619,6 +5619,9 @@ static inline void mte_destroy_walk(struct maple_enode *enode, static void mas_wr_store_setup(struct ma_wr_state *wr_mas) { + if (unlikely(mas_is_paused(wr_mas->mas))) + mas_reset(wr_mas->mas); + if (!mas_is_start(wr_mas->mas)) { if (mas_is_none(wr_mas->mas)) { mas_reset(wr_mas->mas); From patchwork Tue Jan 17 02:34:11 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: 44423 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:eb09:0:0:0:0:0 with SMTP id s9csp1519249wrn; Mon, 16 Jan 2023 18:36:58 -0800 (PST) X-Google-Smtp-Source: AMrXdXsnxEk5B0G7gGxND+O6pr7nttlruK5K2PEyxc6kQFvXACQzXw6j0kvbLFaqDLXN9B3ow7sl X-Received: by 2002:a17:907:6d1d:b0:86d:d78d:61a4 with SMTP id sa29-20020a1709076d1d00b0086dd78d61a4mr1487935ejc.28.1673923018625; Mon, 16 Jan 2023 18:36:58 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1673923018; cv=pass; d=google.com; s=arc-20160816; b=bqJiQ3eh7pk6akUTPzCvVd2lV/kOHgl2R81KQHlNCKkUG1HXjLLsAkROSNMmaPYNtX 26ML64Fk+GeYUSu5W/xeI0RdXXaD+g3fXKDTVobjzH8D+BIy2/PijFHFUmEhbBytx9E9 BxXCuoXSV7wAHG/gu/CkhvKGR6ViQDy0XEUjrrYGsWTYJI0RWGcIYvjwiw+TtJzwJlRa +IzXz/k6A4pHlu8VnEF0TmYO+grBL72BdUFbg+brOYFgQHik7Glo+Jb2pXrNBFhCf5aZ mwa2Di+XuCBqNSaFp1T6yGPCid/w2P68iSNUISql8HnmZBTJXGHTIjUHnxTAy/0U7gMs 7oWA== 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=tjLh+gKE9O4Zm+oZwKNRnJ393ZMeCC/T8IueOFF39Ww=; b=vhnHKIqrqmx9ir851BIbVPrfy30CnIUIyet9olm/W+38yBrDf/Fqvgb7ook5oZdu1b TsjnpaF0eJ4g8v1VUomtyzZYhdZmKB+MA3EJHGvvv64NxwQJyr2kRJ/cUMwfcrSWWUun D3bQMReuUNnNPhZhNVn/1QP1dOhdaYeK6B2tEfywydbwQ0el7Qjs+gXd8YwsSZJwiAil OcTaOMuwyYqFMKerSuNZp8ry20wyzf390jLe+wHGYp+vbHpxn+8WKyRSyMNiYJvtkzYT OCCh220xnGjUT8RcDKRaFnNtUcF1AA8rlgAgwvF7ux45KduHON+eSSkcomWyOVMEpwOR 8/bA== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@oracle.com header.s=corp-2022-7-12 header.b=OhvzvvTn; dkim=pass header.i=@oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=BzOA4IcD; 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 h6-20020a50ed86000000b0049b67ac6ecdsi12711196edr.556.2023.01.16.18.36.35; Mon, 16 Jan 2023 18:36:58 -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=OhvzvvTn; dkim=pass header.i=@oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=BzOA4IcD; 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 S235130AbjAQCeu (ORCPT + 99 others); Mon, 16 Jan 2023 21:34:50 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:34582 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235344AbjAQCeY (ORCPT ); Mon, 16 Jan 2023 21:34:24 -0500 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id C1743298DE for ; Mon, 16 Jan 2023 18:34:23 -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 30H09DqI023597; Tue, 17 Jan 2023 02:34:15 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=tjLh+gKE9O4Zm+oZwKNRnJ393ZMeCC/T8IueOFF39Ww=; b=OhvzvvTnJTW6WgEx3A2cNQTGz5JSdg6mSxKu1aKhS2kvAsWyFR7EQwxEnCKcP/oLIHG5 JgAPZ7bL4BLcGg3L/RxFNCZQCfGCkdJdInBOWM2SLBtZw4vqROBrnPdf9ffHH+9ELpTf xGRRcgVnuCncUDk1wI63xPQ96jsTqi53NUETmQ07k9bfPw2zsPd41RMpFkXGnjHsqH2L Yn4DDglpNfHpYcW4xHfa8BZEmP+ZxvoL6vHfcYJpCr+Y/4TbYFwg50FLRvapO6oDYaKa XTojxXjDmQKLA++qWYYOpkQ47YLaDEj+vCoheGvw+b4hbWN6/a6GI3ojZwAK4L83Vx2k aQ== Received: from iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta03.appoci.oracle.com [130.35.103.27]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3n3jtukq1x-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 17 Jan 2023 02:34:15 +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 30GMM4rc028480; Tue, 17 Jan 2023 02:34:14 GMT Received: from nam11-co1-obe.outbound.protection.outlook.com (mail-co1nam11lp2175.outbound.protection.outlook.com [104.47.56.175]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 3n4s2rfxkx-6 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 17 Jan 2023 02:34:14 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=SbxMPf182Z0PjAwRiG+KpUo/7oDsJQLc4FExTa909YAI4NDRM2hUmqwDg5fKr8j1SwCPCP2MDLUE7l4/ABvvHFnT68zef5FUdUkaje0y6W1ad/s3hS92/DUQ7/3Aq9eZtE6tP1oqHxIqr0P3s+H8DCMiZAzKCaerGm1p1wkp2cNddSv9IqyxW4khfHJ1f1nNw+mFDuKF7AyjBrjiWamazEP69fHmLhxXi2GcuwLqyAtajShiZ0+6p2+ZlZFdnYCwqh8NOijR+LpckUjRt1AeT+geV+GeHY6dVxyKd/LEJbuLi2/1cVnCQkulvRK6D4yzLGa24Q4mGlUjUiPw0UrfRA== 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=tjLh+gKE9O4Zm+oZwKNRnJ393ZMeCC/T8IueOFF39Ww=; b=bW2BEipjx/AnbWT/6CyB4dhtc6Gv4WuB87ZR+DUTGZwDisui4FqLWY8MDo1N67k78WSbyXY498Fz4IpodIlM6/XDNwrSFXTaZ3XggzD78odTI7zpboeh6WVR+0fZoNoo46sgajpHNisiHFlQumG6r44EFmyWCM3u2onsDuy+xal23ndsPPdMBA0mK0GjdP2mhe/f1UXMeko0JF/AXVhvPxjDLwWZxFemWqIkMoB80CeAbcbsC5EA/p7eIVsj+i27RNjwdxgW4VP9XCcx3ieWkgkubxSaaKCfjdWqmL3AZOcSP5fRR94NeBPB1fpdu2XnKkmq8WKYnO1v697VWx+mpQ== 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=tjLh+gKE9O4Zm+oZwKNRnJ393ZMeCC/T8IueOFF39Ww=; b=BzOA4IcD8UFmNoIG20XvhS5O+OxuUAPQOjMIPygu6XLyXRS46tHa+k3+Qu9+GI2g3t7y7OUHJbs/xG2hXhDYnlK36ceGpMdCC3GWu8p5g/8X24Ezeh0Iw8F1aPxEpcUjoHNvfXxhZWGb7Lq+H8l8Kh1UuaF1AstKzyaTggFGrEo= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by CH0PR10MB5356.namprd10.prod.outlook.com (2603:10b6:610:c3::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6002.12; Tue, 17 Jan 2023 02:34:12 +0000 Received: from SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::a02:2ac8:ee3e:682]) by SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::a02:2ac8:ee3e:682%4]) with mapi id 15.20.6002.012; Tue, 17 Jan 2023 02:34:12 +0000 From: Liam Howlett To: "linux-mm@kvack.org" , "linux-kernel@vger.kernel.org" , Andrew Morton , "maple-tree@lists.infradead.org" CC: Liam Howlett , "syzbot+502859d610c661e56545@syzkaller.appspotmail.com" Subject: [PATCH v3 06/48] maple_tree: Fix mas_prev() and mas_find() state handling Thread-Topic: [PATCH v3 06/48] maple_tree: Fix mas_prev() and mas_find() state handling Thread-Index: AQHZKhwuhhwaScj4WkyQ7od226ZJ7g== Date: Tue, 17 Jan 2023 02:34:11 +0000 Message-ID: <20230117023335.1690727-7-Liam.Howlett@oracle.com> References: <20230117023335.1690727-1-Liam.Howlett@oracle.com> In-Reply-To: <20230117023335.1690727-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_|CH0PR10MB5356:EE_ x-ms-office365-filtering-correlation-id: 4c402420-eafe-4a97-6ade-08daf83351ae x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 4+lP0slDIw4J8GK3Oy8nhQp/3euop0ts15d7S/4CBMGB/XRWWVL0CU2dmnB6Xbwhe1a1xXQgcKSv40RbzGZR3Vzfc82Gac583ynmxWQW1pyUYplM6S3A6fd/PnWu47bZ4FF1dHefiO8lTA216sO5iDW4Mfg3xJjAiR0gFRtp3OhevfgIPCNs63IHLxzn2CVq2SNRKlqkSD4VEhjVJduTQHhgFe0JxqA8Ygs7xN5omtopBb1jK8e9SGTOL9U/Os600vEUZrtMNyu/cityp3JxLkez2LeLJD9+yE5pog8ZtTk7BxLEZe4l4UbvjfZp2AcHFKgCtIkEsnynGWtcz+B9abBTVlfpfclewKz1uAhodEJb0Bi2Q3D4RO1i5iMwK4IMbUpodCjfGMGowPh4tyt3BMzdcv493yZubhipuP+oUy+dih9V0rjmMyVMoiEBAxWoDABwSJTwBL+mYYFnaGYMJizMR86zdZBkYHuBeuuxWg3NUdoPwfui201OQ1N2wvxk+RbYe8Kwgpt3zCu/lgCq9hLRk8Yb1NspTNqL1qgprIwECd8QCg4qkAoQpp3+LAiupPEp8c62kSlVTNHmGbYpF907ppc03LMHCE5+0tDaiw/gW3ti28/ZumamDxCq3XmUoxD+Opo5gHXA0pfm6Fjf9MOSzO+dcrGGO9gxC8wLqlXfc+1lKPYGyRMV4+1jk2B5VwKyJA49KkvZgcuS6bUZgQ== 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)(376002)(346002)(39860400002)(136003)(451199015)(36756003)(38070700005)(5660300002)(8676002)(44832011)(8936002)(4326008)(76116006)(66946007)(64756008)(66556008)(66476007)(66446008)(2906002)(83380400001)(38100700002)(122000001)(478600001)(54906003)(71200400001)(316002)(110136005)(6486002)(86362001)(1076003)(41300700001)(91956017)(2616005)(6512007)(186003)(26005)(6506007);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?q?dnX3Im8B3eYYEGkKdnI8Fqt?= =?iso-8859-1?q?RFyT++nvzU3scVwLh50ThnJ+caSrlewgKag83uYmnibz7wYTauxjsFAwk/ZZ?= =?iso-8859-1?q?sKCiH4nuap8jsmm3Fmzr6cXjCnVpMpI62GhN/URX07EswsNbjEoKuUUtSu3n?= =?iso-8859-1?q?tIJUR8SoUussED1ai84nbFEsG97hjeJwJcES6pykl3wB4u6Kms/zGOSqG6Ey?= =?iso-8859-1?q?aYu1auUeshVCJ6G934tgnOdcpO7wOgfw00wntS5epgPghlXM8oiW98tYDGpx?= =?iso-8859-1?q?Ij+l/hinsbnvELSiXeFAA+EP7U9JTrbyzBGoEZhqttt3IeonZrPksbKB81Kg?= =?iso-8859-1?q?Ib81pWYazHk8LKi1GlRF4WcgY5gYdDxGD5XmwlDcLRNwXaMtM3p1P/x1We2n?= =?iso-8859-1?q?z5CPz4TyOhLLp9Lbqa9Ii96KuzXxS8RIxRPRNYVSEHnOCm7xQb69UQIgG0cC?= =?iso-8859-1?q?GHnhsRabmdhtmnf/W/HsvYb3LoNkWpnL5d/c24cE/BNL6gBNZKqf6YryhZM5?= =?iso-8859-1?q?HbKl/HN2OGB+gAAx5ZswVJ8Y/3Fm0YkZoSI/hZCnTGpUjUrmULDycntnj8Dm?= =?iso-8859-1?q?HiW9+6iaqDu3kF6+xmR0V7kmkidN421tZvKjQWmyCAEAeaSQG1yN0lEv/UKB?= =?iso-8859-1?q?+sRxr21/LYJf0Kjk7cW9BQwPY6rPSw03oE+s9ZKILMfHmKDtElzNz8FOAd2b?= =?iso-8859-1?q?RWhTLJngsXKuwac1a/7CA0M4j10kKnT+sVJhWZmyloQImH3+P1FMYBfdealy?= =?iso-8859-1?q?+OjPmlGy6d+vsOhpLAqHSc5F2VRfZioMIBJmhGEOgTz1eEMAVPoSDFoHhaZ+?= =?iso-8859-1?q?azoUrpUYoGwX7EFL8K+W3ga4wXzMUVTDyofB41uAoP1CMPa7sn8lqIEFM9CT?= =?iso-8859-1?q?2yX9BmDRjFy/r30fyr3CD92Vpkqu9+eHdVGmyNwk9ddz6SjcVNu9utbaltaf?= =?iso-8859-1?q?IaoH4v7I2uy9ygwxqkzbXj7/2mM9Mr3hrPPgCOqikrL8cgvMiI87ukaGu6G5?= =?iso-8859-1?q?6HHuCp32Nz2euBJVbZ4HZ0bEcrtN13ZZ4iBmvTTn+W+KmDOysGF02kffaUk+?= =?iso-8859-1?q?Rt1ZHxC41L6f3a7tJeChKftunwt45OQre2tkUq/btcM2fYUpodvjIw8Wz0Ex?= =?iso-8859-1?q?HhHCD636rWfF4sdeBlwfloN6RKdWvHAYQvVDUrZY6Z9lQsELspbD38EfmAOj?= =?iso-8859-1?q?H6h6WmxR8h8mtk8A49LZ50T5qwz6Ko8/M3WueVjxyEAlcmcniQDfjqyoC9Lh?= =?iso-8859-1?q?1UMa0kMIN/5Ok2scB7ifnegGksXMEC4xvVvNiYyujIfGZaCn/a+AQRZNyXo6?= =?iso-8859-1?q?U6xLK19xdxqEaaG02C7/U8qEJatO1nNtMsGc1sdprEWmvn4zKVi4rhRkLGYA?= =?iso-8859-1?q?iACbWLXu7+XHVrNOqY6qxRd/X7rEqDqrcVEWrMF8uZc5kdCvKeTKc3uzPxEF?= =?iso-8859-1?q?3807/gKiJmrHW37C2xfE5nVqFb2mLoymfdTzqkw2NUMOiKU3TjpbKCLzwSe1?= =?iso-8859-1?q?r6mEl/G3Ayaz4xLSO+/Y0IC6AQvj5pPVIeGoxGIaVkKn3at2eIwnqdZiY5rG?= =?iso-8859-1?q?6EQlzFMk/yarASdXY8+kNS7OhEN4EEz2zjMPYzC+tCz31Bu8ozxcOR0bxfEW?= =?iso-8859-1?q?5Uj6Xe64tvbKUYr1rGincEsJ6GBJoLPZnywWxuA=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?nsH1Dh38pmD?= =?iso-8859-1?q?E6pnw7M9QkGS6UfoWU52yBcXJ1U4rE89RVqsMKK+EWRmf8ABkdIN9MIl6u+H?= =?iso-8859-1?q?KhroHStuut0CGzdHEKkZEOi9D8TJDXcrtqO86OXSSFUE4eYAgonaVhdB4oJw?= =?iso-8859-1?q?zdWj6XPJzWqT1sLjXRR1ehTtXnXl/SAjb+OdK1HUNW+If69/YqsEJxWLelI2?= =?iso-8859-1?q?eb2+Hl0jizdNiN/4bXNjGbb+Bb+iNYvhlEHnJXcceFHjMcKGkR5foueXEN2B?= =?iso-8859-1?q?hjjBLC7zI6b8wtRa9FgmbUn/mkD7LMH2FciSeuKQmpATlbDVnXKD1W5vjcvq?= =?iso-8859-1?q?kuK26UIAh7oAGumZLBEqf3FxOekPM1ehjDkF98Lt//9mCuRtd0PZCPjF6KUx?= =?iso-8859-1?q?SyigVxVMTVoPz5HCSTWJcAOF5qZv4s1oZlIJZEJbYRr+oywZwiz1poAoEyM4?= =?iso-8859-1?q?eJ6546JvE20Na2TF5PSzc6QBRf9uW1bnxSg5cGl4JugbIHM4yHK88uvzzX06?= =?iso-8859-1?q?VYdRVZoXfx+PwJ0UPlllNheKKoumPaMYC182QfYM9Wr8O4mo5eHGXhEzPQdL?= =?iso-8859-1?q?bzdnFq2M9BMk1xNehfNUifzr7+t1K/XEIuRw25gqWK8/V6xs2V+nStntNJIB?= =?iso-8859-1?q?BPUrqa6U/fmhMOXX/wekWQ4BfzkxKe9awyekaT/7BWNdFAhrYkuR6PMYiv2z?= =?iso-8859-1?q?HL6BCJqH0RoFecIqiwi5J0THsgYDxDejfhhWBYuub3ZPo+5Ybl/5CzBOe0U0?= =?iso-8859-1?q?wb3MsoZyX6LMmPdkORWy2jdvSN+lf8VU7pCP5iyuj9MEwak5evKydQ5hAJc9?= =?iso-8859-1?q?JDqvEgoby9GUsIud8rUxTDET75RIe6xudOx6b82U7J0y9hhk3yYd3sgYt5ZZ?= =?iso-8859-1?q?1oXL3r6JfYqXBXob1OawGF/p56C9H/nK/qGW9H0pM+QuQc/FFZUFy0wpOVuP?= =?iso-8859-1?q?iz8I5TCdxLpwerdhhot73AjgU59Q8BXoYTW1mkpuci9uxzvtakhwPbYaeva9?= =?iso-8859-1?q?jQgvKrv52vA=3D=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: 4c402420-eafe-4a97-6ade-08daf83351ae X-MS-Exchange-CrossTenant-originalarrivaltime: 17 Jan 2023 02:34:11.6252 (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: 9RSzkMvLTalfRq7TZux+GLKxxhBN8ObIyl1ijR4tNSPSypsgqnSiIXmxSyw4XPfghU0DfDTN/I8IcZ7v8QHjmQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH0PR10MB5356 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.219,Aquarius:18.0.923,Hydra:6.0.562,FMLib:17.11.122.1 definitions=2023-01-16_18,2023-01-13_02,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxscore=0 adultscore=0 mlxlogscore=999 suspectscore=0 malwarescore=0 bulkscore=0 spamscore=0 phishscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2212070000 definitions=main-2301170017 X-Proofpoint-GUID: yXOBaWhdFaTLFJZBqvnT34pH18fXcRan X-Proofpoint-ORIG-GUID: yXOBaWhdFaTLFJZBqvnT34pH18fXcRan 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?1755235502975819679?= X-GMAIL-MSGID: =?utf-8?q?1755235502975819679?= From: "Liam R. Howlett" When mas_prev() does not find anything, set the state to MAS_NONE. Handle the MAS_NONE in mas_find() like a MAS_START. Reported-by: syzbot+502859d610c661e56545@syzkaller.appspotmail.com Signed-off-by: Liam R. Howlett --- lib/maple_tree.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/lib/maple_tree.c b/lib/maple_tree.c index 03429149870c..667a4a46b024 100644 --- a/lib/maple_tree.c +++ b/lib/maple_tree.c @@ -4855,7 +4855,7 @@ static inline void *mas_prev_entry(struct ma_state *mas, unsigned long min) if (mas->index < min) { mas->index = mas->last = min; - mas_pause(mas); + mas->node = MAS_NONE; return NULL; } retry: @@ -5924,6 +5924,7 @@ void *mas_prev(struct ma_state *mas, unsigned long min) if (!mas->index) { /* Nothing comes before 0 */ mas->last = 0; + mas->node = MAS_NONE; return NULL; } @@ -6014,6 +6015,9 @@ void *mas_find(struct ma_state *mas, unsigned long max) mas->index = ++mas->last; } + if (unlikely(mas_is_none(mas))) + mas->node = MAS_START; + if (unlikely(mas_is_start(mas))) { /* First run or continue */ void *entry; From patchwork Tue Jan 17 02:34:11 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: 44419 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:eb09:0:0:0:0:0 with SMTP id s9csp1519023wrn; Mon, 16 Jan 2023 18:36:21 -0800 (PST) X-Google-Smtp-Source: AMrXdXv4O4vvxXy+r+1NaL+y15pg5Vat4rx6LT9wzLDch+GpKDeZagmcE8eJGKS7p86a5vW+9lCx X-Received: by 2002:a17:907:2910:b0:86f:9fb1:307b with SMTP id eq16-20020a170907291000b0086f9fb1307bmr867476ejc.31.1673922981033; Mon, 16 Jan 2023 18:36:21 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1673922981; cv=pass; d=google.com; s=arc-20160816; b=RNUlkakXuTLUio12FObbA5VWh4ga0FmhcL4Xo6Rx76jMUUtSw4FfsIo5MI1mUKDMLj pu3b8+DovwJ3oiXB55HevdHq1upUUPmIBVROQsN4/peQj/06nyrmqDSAYH0ObcTgnnp8 N/PrCtpTkXVrDh+yf0PLJMSF//YyirzZeYS34luL/+r/lRoeAU8M8Rs/I3dUFEDOBoUh q8zrr5MIT9DEoCvTuiUFVSqgOLXQV/SIXQ66z1DqNQPNAArdzBL/x7cJvrVxfW7hwXFF jTmuDg+S5ao8ojL6h2MJAIPHHE6RQpuR5KJcO72WubjLdJioVV3RC2GjRV/n6LhjavVJ +o4Q== 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=36JAGIZf38/lpBpFg+73pEHL2NcMoDYWMP+UVv9tirM=; b=WeiC1vYtrMe3wwMV0AxDfd9CkVhmb+5CjEW1MWhCFYVwuBeZU6qknmt/JWK3203j4G wNR5FPv2LQNpmucuvCSPrV80W7yuG2yg8a6yfUR/3y9FHHYTOO5A9AQCEYyvuoRqeuPh WsWAnWC+tRc0E6ykHZMxZm81B8aMLynpPM9t0TiAyNZQ/smhcYiw1lx4581U1kWgDO6/ J5lYW6UzTuGBxBVOpQ4pOHtN/a3WApJoQjPIi1VjL+bmXpRxriEtb1AWHeYwjM64spX3 n4TIwEkCKEqL1xfJjXAAfEoCjvLTbJpJlMW1bF11wx33u9oCtFDLFPONR2AxwKetRHuu sUfA== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@oracle.com header.s=corp-2022-7-12 header.b="GcX/0dcu"; dkim=pass header.i=@oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b="RC/uU/AU"; 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 hv9-20020a17090760c900b0086ce37e0daasi11008050ejc.789.2023.01.16.18.35.57; Mon, 16 Jan 2023 18:36: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="GcX/0dcu"; dkim=pass header.i=@oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b="RC/uU/AU"; 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 S235366AbjAQCe7 (ORCPT + 99 others); Mon, 16 Jan 2023 21:34:59 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:34620 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235342AbjAQCe0 (ORCPT ); Mon, 16 Jan 2023 21:34:26 -0500 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 8DB5C29E16 for ; Mon, 16 Jan 2023 18:34:24 -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 30H090DK000916; Tue, 17 Jan 2023 02:34:16 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : references : in-reply-to : content-type : content-transfer-encoding : mime-version; s=corp-2022-7-12; bh=36JAGIZf38/lpBpFg+73pEHL2NcMoDYWMP+UVv9tirM=; b=GcX/0dcuXe8O8i9/0nL+THgwL+0vU9KjEj6BVer+Q71VxVfWrY+ZxA7vsxRIILx6UaXV jLV9WLujASAijCn7bQCrzfZwfz813HUn9bag6xTK+wtEwF3OzcbUtFbUCbIhHYvXuS3q pZ9qaZdqkRf7RhatF36yIXVnTWzHxxVlJhJAGhh/NJrnZ9GSB2Y/0b0gXtErudUR04qt eUJGVExeWpXVXeNM56GhZ3nLbI3mQFChjBwakpNyn4etXRBlP6xF4C1EP+CtqgsJcCzv LY4UWIA5kulExRo2GJO7G8Yh9SlEAF03aRiO0BnmROamEfdb4LJrijfuKjP9PVbLcHIC lQ== Received: from iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta03.appoci.oracle.com [130.35.103.27]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3n3medbqb9-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 17 Jan 2023 02:34:15 +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 30GMM4rd028480; Tue, 17 Jan 2023 02:34:15 GMT Received: from nam11-co1-obe.outbound.protection.outlook.com (mail-co1nam11lp2175.outbound.protection.outlook.com [104.47.56.175]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 3n4s2rfxkx-7 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 17 Jan 2023 02:34:15 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=lG/tKZSMM5LWDFGrEvqtv9lDtpuMvFqIT9DDnqD0HTqjg9+cBiH2r3wZQnHGPrToHh/GLrkO9jreMIElgZi6g0z0WB6+KY+tbqswz9DSc1Y0iuPOTIJUX9FM3pa4pGMz2mqlGLGoGp5lT0+l/UwEKsW/xEcjLlPV4TpR9LP900xZF8NLuYjhONLHwoXGMIl3II/OepAca7FkrWnUD6cTGxFyC38fprWRgiP++EHD6H9zF0v8wRDwOynXGv0XEnV7BEov7bnVfDCsgH8YqBJf10IF0XnTJ4ZpR8njGb4/2Ts7MJB3BJyjBlCCdGLen4MwNcLfGVoIrt9I95NuPKclYA== 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=36JAGIZf38/lpBpFg+73pEHL2NcMoDYWMP+UVv9tirM=; b=cYhDzZ9Kv0x7zFhkFPNuaAnYJqeKp0wSlawl5J5q2FN+0POcfeTzZewbpHqskn/s9hizrYwPT/ExbOTgNhSCmvvscD9b68Bkrqv1rDq0LVqYnUVL7JPzuz3yMljcVhVkUm+dZTmi0p22KdbAOcMV8NmzSPu3nhzPUo5/ZadT+sVJzawqw19SLupZR3hvQOtsKd5R3No8ltSJC+kQFFVeSB9jFem6D/JzxIfopZRtqB6GxcruAqBEYO0gZV7vaaL+A6mqLQZRw8tpa9yaFvo8gfDlHAGeU58s4v+hXaz+yOtZJlKZBKTBoh6/XtRQj/ntImWZpp90b0jceYj4RvXwKQ== 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=36JAGIZf38/lpBpFg+73pEHL2NcMoDYWMP+UVv9tirM=; b=RC/uU/AUmgf+AelqxHinV7tkyQB3jrj+4DFu7o1dHvMKK1v6DNFfxgi8N95hdMfK4oryAy/g4gAa/cGrNbT0X3xxwWmJUym5nsDKyOgczPkzCnwaCKMq3skw2vjq2WlfUDKjS9Tzifln6jUP0nRgSpq4IK28kNxEMrf0JEwnCyM= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by CH0PR10MB5356.namprd10.prod.outlook.com (2603:10b6:610:c3::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6002.12; Tue, 17 Jan 2023 02:34:12 +0000 Received: from SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::a02:2ac8:ee3e:682]) by SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::a02:2ac8:ee3e:682%4]) with mapi id 15.20.6002.012; Tue, 17 Jan 2023 02:34:12 +0000 From: Liam Howlett To: "linux-mm@kvack.org" , "linux-kernel@vger.kernel.org" , Andrew Morton , "maple-tree@lists.infradead.org" CC: Liam Howlett , Liam Howlett Subject: [PATCH v3 07/48] mm: Expand vma iterator interface Thread-Topic: [PATCH v3 07/48] mm: Expand vma iterator interface Thread-Index: AQHZKhwuu0TfnkSVqkiRBkX6J0VWXA== Date: Tue, 17 Jan 2023 02:34:11 +0000 Message-ID: <20230117023335.1690727-8-Liam.Howlett@oracle.com> References: <20230117023335.1690727-1-Liam.Howlett@oracle.com> In-Reply-To: <20230117023335.1690727-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_|CH0PR10MB5356:EE_ x-ms-office365-filtering-correlation-id: e42f6d1a-6611-4710-b4c3-08daf83351fa x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: ym9ZrrQxUKkV1FWzFt8iU2Ib9YZORkhRAIotQga+NxZ272/liW+78Kz2LgxDoLXi5rSzd6rOSfsoKJgRSVfPdUZzWTdQ6J838LeNm9anJN7Jp9ASZah3VMWoeQrz7Y6RV2reL60l5Hu24sYfjBltjqK7V5IPP4UBRcAwEO7fnBf0u2SiL2MksbEkvmbMtmzZi/Al81opJ6Slb+zls5T5HTrMaOIhqK5kG7VLpbVOBlYQ29NFJrWBuBCLw36VsOSssWkeekRSLD1X7TYNHkse9U0+fGySqyY3WYxk0jyv9b+JmXH4apG5O8hBo7IaDW8PDTJ/e9gUULpnVtyGHLMDwmPIOhCqgpZQeLA0kGQj17DU0eUmpfELVQLCcN+mhFwbEu2I27gyxtYUXYyGYQGEeXUkvK7Idc4C4Gpr+fQuuCSN6C9F0lvV6Pb7PUp2Q440ZNH0CQePSZE7WPWVk6egnEWou7TNiwViscKUrwdrq5RVrWyPr1bpgDTDbzFHUUrJcmitx0+6uNxGnga6RU4yL/ulpjtPk0wn4ubH6zYv1KlI8itZuX8hkcO2ZDucY3BXp41lx2MiaMn7kOU8xDJVEovM5I+SWmoMIbZaBZjEJN4gBx4F5Pd1XGPqeepyOOf+Xd2JS22hapX6/YXc62F+PU8jf24/91mZDFx0mDESw6xyUkkkHsvza+8NuBmu6eYvFy6Bf3RPt92QjIehHT5zEg== 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)(376002)(346002)(39860400002)(136003)(451199015)(36756003)(38070700005)(5660300002)(8676002)(44832011)(8936002)(4326008)(76116006)(66946007)(64756008)(66556008)(66476007)(66446008)(2906002)(83380400001)(38100700002)(122000001)(478600001)(54906003)(71200400001)(316002)(107886003)(110136005)(6486002)(86362001)(1076003)(41300700001)(91956017)(2616005)(6512007)(186003)(26005)(6506007);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?q?7jm9xFa95s5oaRvR33jHgKa?= =?iso-8859-1?q?jAaJEWG2H+Doj/9FOroeKOGUA9mJXbxfpTgr/9oCQSQpXbncD1wlCIJsTREy?= =?iso-8859-1?q?qWameAY9HpWYlBeCGtztObBqwOmsO6BOZwj5qq7gg5Eno+j59tPie18aIGpe?= =?iso-8859-1?q?MycTyyC9b38k7CHEF2e/cQgtI9ljKaTKMpetbaU14egSVkBW5ABNNQCOlFoL?= =?iso-8859-1?q?3uqP/KRxSIY54t/Lhbpb3LF8+ReLspJRGA5GRjGDeRE8Vf2+Va5xjQvtxvf3?= =?iso-8859-1?q?neKomA9Cp441+0qPZ89ThXEGwqml4bYwfpAMwVj0mqKbrMW5lyqWJtCr5PNK?= =?iso-8859-1?q?O69ePQh22IKZqsDBvL+a9vWvbr7ek5uokMUAcwR/ZjTl5vJatJLdaa6C5VB4?= =?iso-8859-1?q?FB/qxANIlQ8mWZNQhF8F8dr0Mw2BQBqDX7ik9jp9kTcFXYmVFoZNjzPInZZk?= =?iso-8859-1?q?b2bfT1x5knJSylD6jO7CVAwx2fKYd5Ak1JjqPj5pDoGoYbLtmp24s3yM7JVh?= =?iso-8859-1?q?WNhJrL4slml+c1o/mgwUGINfrrAAfDFomgN7IRToz6fOZ/Oth4G9bbvGUjl+?= =?iso-8859-1?q?ZSyX1KkXloXlggQMpF5/g8Zps4+SbwXYRBmpwRbmG3JbnnHLsTmaGzBcfLC1?= =?iso-8859-1?q?0CIXogCIqB5xKhzbLu1RtPB4DFuu7Kw5xFgl42bxP9G9kizq/pAPLsSfS6fi?= =?iso-8859-1?q?dQn8Vt29/0arkR/jnbFEfol8UZL6E4FeHQnlf0SXq1odWZGUcAhdeAKi/djz?= =?iso-8859-1?q?ArzXquF3Rez95GfuDDVfregrOLA1TusqybXoLyaioOud36m7J2OfB9OMPMw3?= =?iso-8859-1?q?yo1kX9b2nsLdgqxKIHzspGXqE3P/rQVBt0XBuJG9xJgMZVrpW9nbw8wmOz2I?= =?iso-8859-1?q?T5bV9cYI2PTW+FvhBF8TkhUmoypDQQpKMxEUBK1OItF7XK25ASE//m35COxa?= =?iso-8859-1?q?4AlEYP0LJ1TW6cUzHz3ADukTPcokSFVePrvyDuR2XIAV4+chJuQSNU7bgSIY?= =?iso-8859-1?q?bREBvu7W2L16T/EcKeqnJglesH3qYlDWhcFV2lf/SMGhwYGz59m/hmSs5LPh?= =?iso-8859-1?q?hIUgjxDQEpDBmvXpngAKIaAFNXodWDrpC5mVLuRToDqAp+lIUWNwy0Hq2bWN?= =?iso-8859-1?q?vH1vcKgkWn6OTfB+2Xe1utEGgCyRNc7cOUrN3nN/HsxdEtegDXP2A+XhD5XB?= =?iso-8859-1?q?A+gNli0pTmQnlRG/RQf5eR/PuX38QJ1tq51QxngqSabumbYygBb+qf9oRjFe?= =?iso-8859-1?q?XH/1+EJsBWFsTfyBPElDo8PQiLIakY5MG4asLDV2yltvlWgU+MkJpS85wDT7?= =?iso-8859-1?q?Rj7993c6dg98zkQc+YwEViwrhYdNzh7iiwPYQ39x2THTMFRX38EzppeQpzeB?= =?iso-8859-1?q?qnCpDon7jIqvA+if2HCf0kohgcxTvhvNhytq+wVNEfW+bGG6g6G3tjCn9rEQ?= =?iso-8859-1?q?OUTJywb1DN4k+IKAht/+y5aELyioJXgZzD+WGauWhfAkbDWbKjoApeS38N91?= =?iso-8859-1?q?8WkWvYlD0mbLxeHPQpli2GU+Mzv8tM5qc6MnCRb+yhfLQ36bIBUZjFzdwENO?= =?iso-8859-1?q?yxYZZa4qmzC7GMAyxAW7KYUo2QPEyLGLSGomxUBno0kK6DDFXEpI++uLnuIu?= =?iso-8859-1?q?GCf1yCm194uCaz2d9S2344t3NZVoT714l1myRdQ=3D=3D?= MIME-Version: 1.0 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: wP369BdOWKGEBgL9JwNGJ4WSHLL/gSOQDjjvvB64avxI6bzZ7WIZ4AVnkaXOMXFFUoLzWy7cSc1ZHZXDp8oDNruYYdOy+ejagncODcFSln08w8PLSPYb4EOgL8BykilfI1Z9WBQZWVXo3ZjMM4pD/buSeL7e42PO1sQor6sNvrJnBH/74wgkCD8Gqy8qxW+BgzG1s/qW/zdUEvzmRDWxJ549kasQEqUIF1DDRtzH4/WFjTLgKnKGRwyaIXodtzSez+b8RXBE2lQEVJU2ztQVd6orHSkB35XlL3wX2q38OZthJiC3lzucIHWGuVSfE/osDmRLRpF6xj9xa8Bk3rkFCk0A0sCzBdpidxFRCraQmXy9qgWYjac0H50/o4NgO6wzs7QvKw82aY9L0mdlCQn/RSp04lYU2r14EA4aN5PhwaEzKxuE/J4VQs3tLc8MSTCc9Cb9zwdqHx4QUQWZ4WnbHwlYuWbQaxKMUMKbzHjQi7BpVNGyBsAXaYD2RuokuAnuvqfoPR1owhhxWGLMm5emxwnL/kYaEwA3jQxP/DjjulrUZLHOzbpEjJjh3FuWcAd7fhWJEEZDw8rQ+Yab53JDgDkrE/zJM+tYUVS9BolbxZ913adyITIIP+gVM5Az6bXFm1m6jWr3VwvhAp6TbZKFNKbLG1jiO+EKsbuD74nV6TbgDTD2u0cn9/bUea9ZpZ55tFIYnRb+PQN4HU5CFwiXcpEyub2vxhyVeVX1XIe/8zmv2YsA8ETScbsOeDfACDy9ZijdJp/WpsJgdN2S/DUNvJFDB82ys9QggGwY+hS8/FKAeDgoapN8xUn7/LF2HKpCHa/OYSa6DfdiS+q3ekabtt6IcgrJlE+8hovVUM4tJxFBS2zGbqA1M5gKoAp0bhJvCSX7QJThz/qrQlwgc9+1bw== 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: e42f6d1a-6611-4710-b4c3-08daf83351fa X-MS-Exchange-CrossTenant-originalarrivaltime: 17 Jan 2023 02:34:11.9377 (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: qgmeQvyMyF9Lgolv7K48AZyO5g578/dIQ+ZYZPRADRJHo7K5HBGCwLhfZ2hWVTE0G/SVtMYbolgXHrZ3AC+xcg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH0PR10MB5356 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.219,Aquarius:18.0.923,Hydra:6.0.562,FMLib:17.11.122.1 definitions=2023-01-16_18,2023-01-13_02,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxscore=0 adultscore=0 mlxlogscore=999 suspectscore=0 malwarescore=0 bulkscore=0 spamscore=0 phishscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2212070000 definitions=main-2301170017 X-Proofpoint-ORIG-GUID: YpURCZzBbO_rDxZ7OCqe_vnvmRArCnXO X-Proofpoint-GUID: YpURCZzBbO_rDxZ7OCqe_vnvmRArCnXO 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?1755235463957422865?= X-GMAIL-MSGID: =?utf-8?q?1755235463957422865?= 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/internal.h | 65 ++++++++++++++++++++++++++++++++++++++++ mm/mmap.c | 18 +++++++++++ 4 files changed, 126 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/internal.h b/mm/internal.h index bcf75a8b032d..1c3eb70b7a7c 100644 --- a/mm/internal.h +++ b/mm/internal.h @@ -848,4 +848,69 @@ static inline bool vma_soft_dirty_enabled(struct vm_area_struct *vma) return !(vma->vm_flags & VM_SOFTDIRTY); } +/* + * VMA Iterator functions shared between nommu and mmap + */ +static inline int vma_iter_prealloc(struct vma_iterator *vmi, + struct vm_area_struct *vma) +{ + return mas_preallocate(&vmi->mas, vma, GFP_KERNEL); +} + +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 struct vm_area_struct *vma_iter_load(struct vma_iterator *vmi) +{ + return mas_walk(&vmi->mas); +} + +/* 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 int vma_iter_store_gfp(struct vma_iterator *vmi, + struct vm_area_struct *vma, gfp_t gfp) +{ + 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_gfp(&vmi->mas, vma, gfp); + if (unlikely(mas_is_err(&vmi->mas))) + return -ENOMEM; + + return 0; +} #endif /* __MM_INTERNAL_H */ diff --git a/mm/mmap.c b/mm/mmap.c index 87d929316d57..024fb46251e2 100644 --- a/mm/mmap.c +++ b/mm/mmap.c @@ -144,6 +144,24 @@ static void remove_vma(struct vm_area_struct *vma) vm_area_free(vma); } +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_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 Tue Jan 17 02:34:12 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: 44427 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:eb09:0:0:0:0:0 with SMTP id s9csp1519389wrn; Mon, 16 Jan 2023 18:37:28 -0800 (PST) X-Google-Smtp-Source: AMrXdXvUJD7UkaYpvzaPmTzgMbr0vfJapAaF6ZMMHDkgU1xh6lqzdsiRQ/JJ+OAKgTx1wsy2kzNk X-Received: by 2002:aa7:d707:0:b0:49d:1a59:174d with SMTP id t7-20020aa7d707000000b0049d1a59174dmr14027911edq.30.1673923048085; Mon, 16 Jan 2023 18:37:28 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1673923048; cv=pass; d=google.com; s=arc-20160816; b=yjE63brAJXEY96/6/PI01BjhXgQzOu6w6v5pw8mv9vksL2rYKKNjJC/Zugxg+6xPNb NZZefoIauM63Rb/EzENX4lhFd9+3xFlbsbqCqDZ5VwAAU3d6MtZeybwlG6L1KqRJs+jF RVLqiFTSiB7sQi6BlQVdmPdr6U2YEKrHib0QV+1tKbl6WkNGyQ5teT2vuZYQXEsIQxop Xxb0hBXAUgwdrZQoNKaKJkn/QuL4FweU3b1/ki6MdJthWmgi/dCAtn7FhwHRg6iwOHxw WuSfdWIIKqlMpbu7/uyNwn2CKKWRRpY9gqTjkNVq0Fp4cCip99fmm9eMzmByUvS8N6BY LSKA== 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=achDkf1FEZpqOQkM+iZMPfX2tkpkKZnH7dkp0tHtHbs=; b=WYrK0gYBZ4Rwq1G6ezTKnFR/JoUwSfBrLTXur4Mg0xH3sodhJ+59GX+SLf//sNx91H ozuruLdvjyjpPPixfcLaqVjtsuNSa6eIfFJ73tIxYxPWwwj9TqW4lwBKUx2qhJrDP8LS lC/rilusaB9k44dObcNvtZcb4nE7Tp5BENzQC6rXotGMffiT2ZDFXj8sXZFHxMIiRHw+ x1sLHacy0LtPcHJZQ1eAYVg/oqE3PWJha/YBeXiTOd78kIZflgIm51PP+BblUzbRSsk/ 3Y3SxADsCWEcXZylzlot0DcWdW14LfRP5OotsbML3dZMVaZt9CIV4kbWGABOxmaajLyG Ib3A== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@oracle.com header.s=corp-2022-7-12 header.b=fYyNK8OF; dkim=pass header.i=@oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=hWQgOZi5; 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-20020aa7dd4e000000b0048ea26ce021si28449298edw.68.2023.01.16.18.37.03; Mon, 16 Jan 2023 18:37: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=fYyNK8OF; dkim=pass header.i=@oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=hWQgOZi5; 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 S235351AbjAQCfR (ORCPT + 99 others); Mon, 16 Jan 2023 21:35:17 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:34712 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235376AbjAQCea (ORCPT ); Mon, 16 Jan 2023 21:34:30 -0500 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id D579229E3C for ; Mon, 16 Jan 2023 18:34:24 -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 30H092ro007573; Tue, 17 Jan 2023 02:34:16 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : references : in-reply-to : content-type : content-transfer-encoding : mime-version; s=corp-2022-7-12; bh=achDkf1FEZpqOQkM+iZMPfX2tkpkKZnH7dkp0tHtHbs=; b=fYyNK8OFUyixmDD+zHGYNWLebr9vapQANnv6GauFVRacF+a5sAS98vJaJGh32z78zLCq 2V8DD7xHrvQ4nLXopzIXiFdKm8wyZHL9jCggo9UnBUctyr3/GoZDvB4mcpsiTJQ+GDo8 J528YoZlrzRInYputjQlSVUPwS7L9itlwDjThRmeKxRC8MFH9J6F9nIN7GU+2fsDs3MK uv8gRvLNlYzmasLVRFKPmLMDg9aPiuJ2MEmH1hhaYeVMOEx1w+cggneWR0m9YuhFHHh6 6X5ln1Xdzc5tOpNrqh2fCeAazi8b2TsYwbVGA9RO+9FNjqFhmLNrJ3LIFEZY81jFWHMW Sg== Received: from iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta03.appoci.oracle.com [130.35.103.27]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3n3m0tkp01-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 17 Jan 2023 02:34:16 +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 30GMM4re028480; Tue, 17 Jan 2023 02:34:15 GMT Received: from nam11-co1-obe.outbound.protection.outlook.com (mail-co1nam11lp2175.outbound.protection.outlook.com [104.47.56.175]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 3n4s2rfxkx-8 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 17 Jan 2023 02:34:15 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=kTyrhP5HTJ9/c44bAAsu3q9xOeM7LQWa+ixL0lH6LItCZuedVXnWd0tRicw4oM8+1eYauUmdSZKYz4eG8WLuzCbVDZUuk//MvTHMkltdZJfzGE+fyT+UpZqe1fa33w6SfvfKKXh0sbmwOc6LTQv1mGueBXbM5zgjHwjJuCtb736zZ/e7T08uyJkzjlYrUYMUX4l8NZ9ZRGZcnnVUYuoaP4wC/VshZo0wlhO+6EyCtEzFDW+KSIKz+jret7eJtzBaGnsPsUivmxH9ipjYOqPsOxED3XGNxi9V/+03gGPx4s0XlXJOzJ+KksNqJtVYoFjGbcnCP1tm40QjrhCbK6W9jQ== 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=achDkf1FEZpqOQkM+iZMPfX2tkpkKZnH7dkp0tHtHbs=; b=KkhMtGV4IxyxJg8TKcgeWD1IAF0x3p3ZacpLBM3gddn5Wp/z/YZGZx8EVjL1tPG8mA+xng4P2dIK+w+dBDLpScbM2AskYM5pv/NSg9wNCV2FofY9eOF6vOosImD+rOf1pdzWQTIBryPnPwahiZv+xx+ZpuPKpbJugXuK/pA/OSPv/5wZ8Q32lSSX/Qn0kWoAmkSTPfsLv8UTwUmfXDU69e/M5gukZL4cCYIOS+O9O3+ogda3xxAWEplfAyu5Km3Ecpdlj3UN9gsYuZOq+v1Qi1BQB9YQE+4FTPQRhQmTGWw1+kqFumfet+JIBFBvLsM2yNtYCjqVkmCCzlqFQ5F3FA== 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=achDkf1FEZpqOQkM+iZMPfX2tkpkKZnH7dkp0tHtHbs=; b=hWQgOZi5UcOFAC9vyA6offyRXGEqqpwKYSHXA9ftpY7tpubOINjAYxWTJ/oELcVniTah8FHTh+GtThT9KY3NY5VgLF8AtVYHvdtvep1wIMjczXdkiDlVzphQuhKlmPB/RqgsvGZQk5nRVOD2ZUnSyzdvrNQSDd4NqeDtbrFmv88= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by CH0PR10MB5356.namprd10.prod.outlook.com (2603:10b6:610:c3::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6002.12; Tue, 17 Jan 2023 02:34:13 +0000 Received: from SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::a02:2ac8:ee3e:682]) by SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::a02:2ac8:ee3e:682%4]) with mapi id 15.20.6002.012; Tue, 17 Jan 2023 02:34:13 +0000 From: Liam Howlett To: "linux-mm@kvack.org" , "linux-kernel@vger.kernel.org" , Andrew Morton , "maple-tree@lists.infradead.org" CC: Liam Howlett , Liam Howlett Subject: [PATCH v3 08/48] mm/mmap: convert brk to use vma iterator Thread-Topic: [PATCH v3 08/48] mm/mmap: convert brk to use vma iterator Thread-Index: AQHZKhwvS+P7uMU/SUqGMBeDCDB8nQ== Date: Tue, 17 Jan 2023 02:34:12 +0000 Message-ID: <20230117023335.1690727-9-Liam.Howlett@oracle.com> References: <20230117023335.1690727-1-Liam.Howlett@oracle.com> In-Reply-To: <20230117023335.1690727-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_|CH0PR10MB5356:EE_ x-ms-office365-filtering-correlation-id: 519c5fe3-cbd2-456c-b0db-08daf8335238 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: b/7wBQWO2fyc4PZNA66ExANWahSqEDDI2nK27oc2CeY7kMCvb7WkEVpXinGQWVm7P8c8KxnyLpf+EoHMNcbqbd5/UiEy2c0cJoA3zjvxyZCP245gMzIJdg1lf1nbNcm4KNeeq4u/MbOIMtnQaD7Xd3gmMaRTFPn16Jc9X7Ht8emfc3CSHWd8tFfzNhOkRJu+9FZRKkofIWvAzxSXsmtRyCT9zH/WquEATorJe3OGzeYY7Zb/LsNI1n/oejpbE1j5rD4lfAfyt0Uq/dM02hio4qhIPG5RLeorexvwobKLmustMMSArb3FkP+oQ/7uEwFFlafTpiGm+LifhEGSAhnO3IEHZEaMt9MWjvTfIXtoh/zEQ94jcpTCzUYvrvYvL7ZfUknIsKX6WlXg3CjhkSL0/B20XApC0QrOzkCdb4GK2vaO3P1ciDPqlMSz3+tkxmI7SUvc4/mn4K1NG3Nhr+B3abTPUFXlVpcyVp9KRgTR781vs3A+SRpeSQw7IA0bDcVUWtBf9TLEBLqZryJ4lwIFLbRJeU2TjKu6hhErfQOXNuSJC9AXosqaxAEA8MHuUe6aTmqQyNdc/4mXvRUPJQg91w3U4PU2YZZfc96PGdsfwLzyLp/AecSnIPCtSbfnPlx5LoydvKCVnBG7XAQDqnFJY4boPLCuEKuFHyJgfdEnDrV7w8E5OioIjETXGEGbvq2b8xwXzm/dezr+2pxiQLWr2Q== 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)(376002)(346002)(39860400002)(136003)(451199015)(36756003)(38070700005)(5660300002)(8676002)(44832011)(8936002)(4326008)(76116006)(66946007)(64756008)(66556008)(66476007)(66446008)(2906002)(83380400001)(38100700002)(122000001)(478600001)(54906003)(71200400001)(316002)(107886003)(110136005)(6486002)(86362001)(1076003)(41300700001)(91956017)(2616005)(6512007)(186003)(26005)(6506007);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?q?Pf0YPBi29Cg+v3KVTxx1IpZ?= =?iso-8859-1?q?ChnKNZXfB4dQlNsq123Chbiw+uvi2sTvSIRRpsGeIRF7/WnoJTz6swf7q1vf?= =?iso-8859-1?q?0QdDOD/GiV1pXMMOsf6Je4DUpbiclfjk25Ouxy6sMGykxx+KOCrDB62fRpua?= =?iso-8859-1?q?6tj1/eQ0EifnNVPKSKXC0Q/HDAoiOJBw36U/svjyGSPfpNaN/p0Z+CfuipY+?= =?iso-8859-1?q?zBVS1uTPO21/BNM51TeshOHr6QERs7/bFViFL4n0v2rKu37C7vsMGDjTTmwF?= =?iso-8859-1?q?wqeh81me0NOPVlsNH44p0NXtsh+ZsB0MjnnhzC1TKe1K5Nrl2pFAdUWsNBzA?= =?iso-8859-1?q?ZgN0bOzIvQ5j10BrxbmABMidt29cTMPUxjLMSUHW8kJTv8bHb57C/fA3CNFg?= =?iso-8859-1?q?FhI4EwPdmfFlBc78YR3VhO8gzHgKensG2xJKOgKhl+eXI7j/Q92laxR0GUzB?= =?iso-8859-1?q?wOB9WoQZb0v52kB5oN+fhjnlRgecuX4OrXRBmb9Lb7vE40rhwSmm6fd89Vbz?= =?iso-8859-1?q?M9YGL5ebz7r9xtZcW1B8CpMfkLC+Y5Lle4f2HZ8kWj6iqvDBu22M7+Zz6AgJ?= =?iso-8859-1?q?mowIFr34smOXiQc702qk32M24Xj5Rquhf6zcF1ceAfqHtvLdPBnAprHJM4Gj?= =?iso-8859-1?q?eguKFnqe/vO5feb4O7m11dqAPlttF/T2orW6dkeEBeHrmWZlaZN6P06h15DP?= =?iso-8859-1?q?N3qT3qKNqe70pFOf83oJtLiMTDyEkHPp3wE7Jatu34HsqYqp660C4LkFhW90?= =?iso-8859-1?q?1f1Y/ULPWHnCxErihvUBG4UEervps6dmapxmMtn9sfeIFd8xkQzjuulimt7a?= =?iso-8859-1?q?ZA46zal/nvxsZ4OaPqjH/oEVsSDQY2mWcczUxj6WEaJJYAXHDrdo6rkhxFDp?= =?iso-8859-1?q?Sb5cgouVHtJ7XcrbodEnNkz4xsE0PyilzUHlWG7WR0+Wfti3gV6CvULn9WFC?= =?iso-8859-1?q?jjUeBuiHk0jgrtsC9YrcMIJh3E9uHcGzDowBMi5WGnyWmenmJt21n97tiKfy?= =?iso-8859-1?q?k8wkW/ZhGaPK8un1RrL1U5oDCaz8YkbNjdUieIptPwAlcraKfA8n8gJnYFPi?= =?iso-8859-1?q?cR40LaCM7KOxku6ufdSdlkqu8c+dmNrTcq2l6QgMt++3oa3JziiiC2PZgt4K?= =?iso-8859-1?q?tVL/Hek3BRmM3aP9+PN9gxGvs6ZitfY8ZUggwAZmLD+nU27KP+yew3AkjEMm?= =?iso-8859-1?q?xLkYj+CF586NgnmmkRCvdHtHUeM543EFhePi0IL8MFfntnBjiYZoDBwiW24t?= =?iso-8859-1?q?9uoWat4tRZr8LHStHcmswhJwNxA7iyaT7RKVBzpqYGW0z2qZlvV57S1GEcM4?= =?iso-8859-1?q?QBQQPPQhZwtWQcxBY/6A/maqXufq3whO2og5x22h4HPpP0WF9vFdcJXOr3iR?= =?iso-8859-1?q?pOKXaIa1/O4vzhCqc4bZNls95wBo6BklBmx9/77nQQL+MI9U9JrXWyACpK+R?= =?iso-8859-1?q?Tz9TVic9BCbwyh31O+nLYBhUemW6n/gMwfuMf7Xo9V0spbiCcRJ2QxnREgmX?= =?iso-8859-1?q?lf3cac7OIw3qVAWR8Q0bJwTOTph1ssSc/LHCCoX5e+7rYAdKAyLArOMJ30hO?= =?iso-8859-1?q?UhxZiMQz8dftEnxrHbyD9/Tnxlf2Skp3vKn/5fd9ZkckoWpMS+mSZQtDtD6o?= =?iso-8859-1?q?pzDGZoEVbn3W7d8mB7dQbzYRdp2XERvGSedwqzQ=3D=3D?= MIME-Version: 1.0 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: m0yK44LypjK1ywd9ScZCAAeBLTpJblycxS/WQHiXxyO4CQ2Tf76PSiI3EMl3cuFLI8hy2aTlUUGYJdMWcG8Q+kCZyiSj5v1blLVtdSbKqWaPcljcS/P84wOkdiIhihy9YFHpq8IR4e4vk9Jh2IAZHZmoxAsO9Xj2bsnr5nrEjpFNYA5lDOBfYGP5DGfkRvk1mM9m9EpblWZQnzFnt7AGRUioFtOSoTiApZQwUVZEIdg1QyHpU90qkhIgVh4GtPuOj1EpTm/F7PVZKyTi1uZAGKVNF1aWr9Ne9HvCaA5Z2Kyjp2HQHLfgfnXSslwF1uN/Z6MB1PJ3O9shQE06wuwEmoTtho0gjcSx12rvMLq8WJNkl4vVi0oWp1tuXyOQWmu4xOv3bBEfEJGZcsjHemTf5tDgbwsP3vLEV4SyP21W9xHepTB2YkA3/SRG5H6bWFDGtNnPfh2apFit5rLYnh8T3d/fn2WimZ+vC4ouJNe4/ue4/nPRHiz38k9IKUll0/j/S4u40sVthIy5GUb71eE92cEIZ1AzHDT/dYrfosKd5ZoHHf0by7+D+YhtM8DOFfbMjOoKQQE09z6B6TpG1FUMxQLeZ8infh1ahY7u9XhGTOXeEN+gxZh/D1IPLlsAI+Kcbr6W3SMHBeItR4x+aoWuAN+FGf928514NYpo9PI6VoQR6koKFF4tfPHqTMf5Ws4qtxoPAwjCgSiLdAzWOOs2g2pkKBBD+J/FE75kcMq6WsB0QlISVm6yS+Q/mP2606dBDGQNmRMYekYN2OXem8aCOx5Hkdsiad8O4pt9sLV9knJp/hKt/msQG6RRWxp0GgnI178up+1dyqfIiNxCPXKzoSZPiuNcQGpoTFeoTUJBxv14QsUTMfMdXuH6R+yNQ2WRDfwGGYfOT5OzhQNYajAdjw== 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: 519c5fe3-cbd2-456c-b0db-08daf8335238 X-MS-Exchange-CrossTenant-originalarrivaltime: 17 Jan 2023 02:34:12.3283 (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: N50VSqtBnq71JmdiP+YPbT3kY6Zz7AfVWwqgeXt0+ZtbRX9Gc+sGTbY0jcJRphVa2zqThiHKeOMMYpCOz/XMEg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH0PR10MB5356 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.219,Aquarius:18.0.923,Hydra:6.0.562,FMLib:17.11.122.1 definitions=2023-01-16_18,2023-01-13_02,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxscore=0 adultscore=0 mlxlogscore=999 suspectscore=0 malwarescore=0 bulkscore=0 spamscore=0 phishscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2212070000 definitions=main-2301170017 X-Proofpoint-GUID: thmWD9AAPc0iwQyoviaCNtKGuSkzjx3k X-Proofpoint-ORIG-GUID: thmWD9AAPc0iwQyoviaCNtKGuSkzjx3k 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?1755235533993248432?= X-GMAIL-MSGID: =?utf-8?q?1755235533993248432?= 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 | 46 ++++++++++++++++++++++------------------------ 1 file changed, 22 insertions(+), 24 deletions(-) diff --git a/mm/mmap.c b/mm/mmap.c index 024fb46251e2..81ff47147317 100644 --- a/mm/mmap.c +++ b/mm/mmap.c @@ -180,10 +180,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) { @@ -194,7 +194,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; @@ -242,8 +242,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. */ /* @@ -252,7 +252,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; @@ -270,14 +270,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; @@ -2904,7 +2904,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 @@ -2914,7 +2914,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) { @@ -2922,14 +2922,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, @@ -2939,7 +2939,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; @@ -2966,8 +2966,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); @@ -2977,7 +2976,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); @@ -2998,8 +2997,7 @@ 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)) + if (vma_iter_store_gfp(vmi, vma, GFP_KERNEL)) goto mas_store_fail; mm->map_count++; @@ -3028,7 +3026,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) @@ -3047,12 +3045,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 Tue Jan 17 02:34:12 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: 44433 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:eb09:0:0:0:0:0 with SMTP id s9csp1519496wrn; Mon, 16 Jan 2023 18:37:49 -0800 (PST) X-Google-Smtp-Source: AMrXdXsz2tqOCcqo57mvT4EPwjZx6oTLdHXJu1isXelJqII62hEAqVetr1pebBtZGp7L93KFwkOj X-Received: by 2002:a17:906:a3cf:b0:861:3ed5:e029 with SMTP id ca15-20020a170906a3cf00b008613ed5e029mr14278200ejb.49.1673923069332; Mon, 16 Jan 2023 18:37:49 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1673923069; cv=pass; d=google.com; s=arc-20160816; b=Gtb9HYB4j0P9+2R8MY57cOo9vPX+NjJ5db7QPk7TOJOTa7FqGotRjB9c+ISQqVib8O rysCT08nlWZl+h8+kATAoe8cLIfhhdMOpsUpQ4HtEFVC/S5ojxIl3CDxi/N1mrFnLuH6 Uaxbao62nZ1vto8kuC1Y/YiuSMGhOtWaagI4fBXofnMBR9nSkezKpuJp69KNvv4yfuku PuvSu/ejkQdZEmKiU9JnDUAO5UeFp/rK6oikRlkUNd8ov15vV0p8P3/9IjYipbheQpPW DFJTp2Y96jxQS1xvHsMS7OwkOj1WPztoHiLspEoipI0XL8B+7tuSSGVgiTJW2TRhB9VS oewQ== 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=OpvVzn0zdV7JdaucKodCDEuLsEvW66ySy9r0VbFBys7X03RHo8VtQwfuaxUaQ4fkjd TK590j4eU0DhU7N6/9OTpx7k3K7XYTvFn6gHUWuJt2Ur272Kz3k70SYQKpCVJ4RModHS qo5O10NFXir+DHsxyCzmzfkeFU3awOcPcekwWz6bwYvIWun2958A5Zy5/pxRKgqOd008 RhJzIx0nyrVD9N2rBP6Pzf4OYyKwqdJn33wDPVuK8xoQuwYzxyBqcJxk7dsZfNmvmNBX zkJpeiSKJwVRIII1gxHyhT1UUB5sBqoFi8ShJC5bXX5j3yI27xq+koNvlFxgYsmVeUmN KeBA== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@oracle.com header.s=corp-2022-7-12 header.b=iEDQyoed; dkim=pass header.i=@oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=cNJo5bHS; 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 wt9-20020a170906ee8900b0084b8885984bsi1605020ejb.517.2023.01.16.18.37.25; Mon, 16 Jan 2023 18:37: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=iEDQyoed; dkim=pass header.i=@oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=cNJo5bHS; 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 S235413AbjAQCey (ORCPT + 99 others); Mon, 16 Jan 2023 21:34:54 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:34622 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235351AbjAQCe0 (ORCPT ); Mon, 16 Jan 2023 21:34:26 -0500 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 9C2EB29E33 for ; Mon, 16 Jan 2023 18:34:24 -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 30H0924L023158; Tue, 17 Jan 2023 02:34:16 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : references : in-reply-to : content-type : content-transfer-encoding : mime-version; s=corp-2022-7-12; bh=RFpRUc5Oex1lM3Q+9B7MFquPWyR86idsNW2D3KmMUJs=; b=iEDQyoedJs31w1dP92SUo7aQpiRfAOLdd+WoAAmJKZ4fEZMMLCq/qe4TdWQIMJkiLYeL 7w2/YpiX9tcedsLIi5cK9q1sirpdaR9TMLhTVUcFbcSe/iCWSVrgdTD+hYx9wcNoxRA6 ZM/VuOUsXdeAnoGfXGPTpcs+fzAV75oIhS4ad/W6nS830tmDN0+R4/I0VwJlHrbZFo3l PjfFQ3/aJv3uEV8+BA7LqawBMSEHHjPa2NRmQweL1pC9/B5Qk17nQokMpDCzEODnsnSb M0Qkhv9Sfj8Li0D7iMkICEvITMY70XIkw1K8LIv8JwR5xaBUSHzokikoPkRwtCxGAzcW 9Q== Received: from iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta03.appoci.oracle.com [130.35.103.27]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3n3jtukq1y-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 17 Jan 2023 02:34:16 +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 30GMM4rf028480; Tue, 17 Jan 2023 02:34:16 GMT Received: from nam11-co1-obe.outbound.protection.outlook.com (mail-co1nam11lp2175.outbound.protection.outlook.com [104.47.56.175]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 3n4s2rfxkx-9 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 17 Jan 2023 02:34:16 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ku/dyQigxC6vFFKptx4imBZGbgfoJqxmVWSlYmmsfJgT1QoXIyVciqo4bUusk0p9MmAzL49vcdDXURn80yh1NKUH/OKw3URMxetsufYC0oeb/aLJA+C5FHaC+mF+J1/CVR/HtS5Ow0/zVUdbDc+4xG2R4ND0wnGOgGuvtY8sp3hu+PGFMdQ4JT2OHFFRqt+JYU9lz7NzQC0h9yZ2TvB6989W1pGJtMYebFxCeyS9tUyz93KZOaN8/HCQHBJoTghlKo2qDRx6tEMxY6Nbq2miD/8fbRyYGGfeLYAGS9PjTlDkpKTfIVCqu6coUkF7aRzy1eDdlVimOIt79avufNvRKA== 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=D1W8i9DYNEExODEEtz9lcUxB9LxrDv6jkjTVJF6SQ2QkspSaazQciRhaUNVCxAO9uePrZ5o/ln6sjy4ugduc4D66CVuWxpV6Jt53pkekFfRpm4jD/L3kROCeRiP0Wdzswj072MzlaoQV+kZhQ00cdYmHhSY4njvPvUsXJwRQ8Qk4lASjoVX/yY+cqNOxH/eR2TisastOW8Vn0QHwszh1PNNmPDHGGYV46cD43juTzcM0piLAl1XSPfvYzrB/LTKcYo4AW3tk8JaNKURxykAsrZAeDgERWuahaQOYIwCUL3zQtbh3D6fJ/1mjJEIq8HAFGyo57zDLitHX+yI6e0G/Qg== 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=cNJo5bHS5Kjx+x9svquaq+cXdPUvHBcdYqLHO7BJR3BiYTghbB5g+dmPI2qIGPl+Anv0VBFUWhU7lpolrmCt+qveNuxm5Xv9rohIo+9gP+STtnyCcNDooYIdK4noaOzyoncJxxlwh00ODyRzfgIZu1UP9NLjs45nqj4LCpDbvn0= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by CH0PR10MB5356.namprd10.prod.outlook.com (2603:10b6:610:c3::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6002.12; Tue, 17 Jan 2023 02:34:13 +0000 Received: from SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::a02:2ac8:ee3e:682]) by SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::a02:2ac8:ee3e:682%4]) with mapi id 15.20.6002.012; Tue, 17 Jan 2023 02:34:13 +0000 From: Liam Howlett To: "linux-mm@kvack.org" , "linux-kernel@vger.kernel.org" , Andrew Morton , "maple-tree@lists.infradead.org" CC: Liam Howlett , Liam Howlett Subject: [PATCH v3 09/48] kernel/fork: Convert forking to using the vmi iterator Thread-Topic: [PATCH v3 09/48] kernel/fork: Convert forking to using the vmi iterator Thread-Index: AQHZKhwv+rRLG2GBJ0aYrHdykImF1Q== Date: Tue, 17 Jan 2023 02:34:12 +0000 Message-ID: <20230117023335.1690727-10-Liam.Howlett@oracle.com> References: <20230117023335.1690727-1-Liam.Howlett@oracle.com> In-Reply-To: <20230117023335.1690727-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_|CH0PR10MB5356:EE_ x-ms-office365-filtering-correlation-id: 20151e19-604b-4c68-acf0-08daf8335276 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: BORx8JgDeEmr+d12ZHDtVa0ZEexU3ytYSQIj973hadToEhPl9oJyXNxUqJlLY0VeBB6eNU/VP8h9NdjwK8OUqQD3g5H9Tb0r/WIjnW/eGd3adVLBcySR86DfZ9A0/fwcgg3YcOIPi6fcnTM+f+lp8JtIyw/cy8nL1FtU+rRpA1QQp9+PbBRIIpoz6lyAHHT4ohPai/DwsZULLOXjjmUfZkRhqdlCYAeh7Bif+j298dyb9E1dF68Vu/gRFzQn1lhNHjnXlM0PNlUZSS6RNTE790vqwOzAWjcybWvmrITZPpY9xyYw46XeQlAV052MY5leZvw1MnPqf0Gn7omGJULhhsGCJHHNUdpzC+2Xlxl5xl66khAcUAXwysbJZTnzQURkxSIPtdVB5EwOUyAoxAmES/v00203zP+X1v5jooVQ0YD2I7USSdtvSbIJX/RZMSSi1xM3As213PBAZVF20+cFNUvr+uwFmIh3JTCmwfv5GV2opHdKNnosXdlO6D0RHRofr2orArVUUuWeQhm3HZJDiUI1RLr/FRvUChOrzXzWK4lmWtNGVzZFiTX9U7a5t2oy9V8in1yN6u1UsY/wdYrp5yPU820+lb51127efYLGtQYY+AwoEYbjW42I8SDOZ7HnwEI6KEKeKMPNyUS+9zIMuD8bAJYBMPdV6v4WF75lXaUe/FdyO7jFX19fjTeyedh6wrepMNToqmnGEGaCjFTQCA== 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)(376002)(346002)(39860400002)(136003)(451199015)(36756003)(38070700005)(5660300002)(8676002)(44832011)(8936002)(4326008)(76116006)(66946007)(64756008)(66556008)(66476007)(66446008)(2906002)(83380400001)(38100700002)(122000001)(478600001)(54906003)(71200400001)(316002)(107886003)(110136005)(6486002)(86362001)(1076003)(41300700001)(91956017)(2616005)(6512007)(186003)(26005)(6506007);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?q?TROUze5cZ/wMKCen+7IR7Qt?= =?iso-8859-1?q?tmkiHHFNziUv1QwNAgN1Gn4gEray1bcoBGI09jjp5iED94HD0Id8OJPyNe2+?= =?iso-8859-1?q?zSJTh30QWKJmyrlXgYoQ/ubf8gYpmzufGWSlEkzqY4+eILm6tkNAseLeOGu+?= =?iso-8859-1?q?lxwOnI5TPQcU+BunSkzHs0mvLWGai4VErj7Tyu5Q+UA4+zFvvy3VQWjgE7/T?= =?iso-8859-1?q?ZTZ6OhgJhmF+EThFBIt/+wWjFAs5ZMYTXMhHxvHcIY9X0Jc9WIMCMsnXwXNW?= =?iso-8859-1?q?9xm5LejF4WucQdaP8KdcMidTbaeSumMHUR5wPs7HQZ6Ao4F4+I3K5MW/tFhX?= =?iso-8859-1?q?nvJ0buGFCmOwnY2w3+6U2R7aCeT72NOwKMxPBCUJkETCp0SG2CRZb8bjN3Un?= =?iso-8859-1?q?kqaRQiHwSCIJH8qQkGF/jFVkBHnFYR8cUPgoiE2fcmdCGHROVpLFk7I7J2eT?= =?iso-8859-1?q?i24GzCoMIM3rm2cjjamsNUUacNh5P9n2vCbLVPQxcVmk0nOFOALYolCeIs+d?= =?iso-8859-1?q?QjQ1QoEZlAqkRJyxHMMFvC5jE58soxfFLlk3jjFymBhQIlMJiEZaoUvUq568?= =?iso-8859-1?q?nNvNDU2OUDklIZCmY4HRxMkmIdTlMA9GPtSsSM0Kpd2vIq3kvbP3XF7ynqFC?= =?iso-8859-1?q?D8GIQqT8SbcZ97U8qmRyhDTKvqC54OVEkCfC/Ok5UNTV4x9jIuxNPdKGrw7I?= =?iso-8859-1?q?kkd4vH1OTLjIbsrCVo0qiPOq/dBBGc/5kMWD1RlqAFY17O9cGj4HV49/pvR/?= =?iso-8859-1?q?pTQupN5U4bnzWWPKXdQsnqTn1MxXcKtuhcCmxgnaoX+F340HWTA6JOvgeXxc?= =?iso-8859-1?q?taeHl2c+Wa2ho+EX0PQcdmzhtJekC4OH4j684+uu0erdOMWQp8UEm+MiXYmJ?= =?iso-8859-1?q?QJD0D0Fi+sIU4FA5tdhCyOcx4WiDySIYexxop7lsr507fs2zEWktfQYZIxxO?= =?iso-8859-1?q?WE1cfvSJ7H9cCmlf6fbd3hDUfVQ6U6FvbJyuicGBtPJOncM021ZlApLCdZnm?= =?iso-8859-1?q?FTfm7Yg2DexCdtPSQBZhLkHHcJupwvHG34vgXAU1j9f+BYDRWKoHun7KMQNV?= =?iso-8859-1?q?zn8RdEghi5btPJYRIodixDIxTyJQoa0J7I2VN6wQeazk4Z53E1Yav4q0LlTf?= =?iso-8859-1?q?kp39xs9aACyXQUlq8unqA5BSdLoG5i8lHS94cwDiYROiewGaMlWkUPJHF2n4?= =?iso-8859-1?q?B/XkJRzo4rYSJef7vzGrViiwBqMSwvF/raxIcdL5xLdP3u3cY6RK3lioMNJq?= =?iso-8859-1?q?xPV9Eodehs/7wVYlMNLj6z3bh47R4VabJ8ylFTaOl7/6AJQx8FWPxehTKFVh?= =?iso-8859-1?q?VzHG4Kqk8parLSGGWlnVdRGln0+1L7kj771fjDJlpw3c2uMop7hObDtm/sgt?= =?iso-8859-1?q?EWMlz5WdoL8AZOBFk74IbelZuZA/dPNv3Tv+tPsIoaDzEwZMu2p/4pyxyiN0?= =?iso-8859-1?q?36hqwf2hV5XoanyRAZ0BDSl44bvECRzaqrhVjx4CSngQcE1uNA/+2JZtdyX3?= =?iso-8859-1?q?aogaP7I10Tx6o8o4A+GRnBOasODR23JDIFWi3Kt1tmEFFe4mDUR9y95yeLD6?= =?iso-8859-1?q?iUHNChqm1OxGio+DgN0Hq58/qmxHm794S4TDKOl3sh74CKOiYkpO++W+m727?= =?iso-8859-1?q?zQTKcd7Wf/OOrxwRp9gy0THy6O4qYXAahNjQV/g=3D=3D?= MIME-Version: 1.0 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: v7GJjiVRenlfl2AzWjLxzVie1xh7SGyDz1uRTfrghe4r8nJr5+pduKTUcWS9AyPpSxfcF8Wrg19b7oVZzLc15qgtWaj/yciqNKa0Hu4yMFjYfs5FdW+KbLtsDD0MTfbR35Hf25cCySTu3YiMm/yo2QvxT73Gbl6JBW9GZxNh7BFoQd2EZjITZUVeFV7Z7owYNiz4/jwPi5WV2FyCbyhnf/udMBusyLo6KIe6vTXdRHr8/JYQYIPv28pofuEAmitl66fyrKZSneUEgfnPpO9pkBpGJUMjYYBHGvj8Jy7yq7VpSoMfPjuZWshR7HJTKkb6wwY3URGGg9wMpAdz9cEjA2yQVB7W0Kuvhi6vFtUV908F2G/ycu+ZP3dNCIC6eacOtusBtrUla6tQnDZzamQBlb/V3YXzAJ3JPHJ5YD9JQScl94MdwXjoaaVnjsg+v2/wbe7/3O9Iv6L1TjrqdVAYgAO+54YYe+3ukK6n4y4z5Evn81k9egclbo7NkkHuMwxJMj0BJeakUEPcOVFkTomADisxUdfHgrb/9xJFP2MPvWAgDGhP4F0WEz8bdU9XAeznqbssloKWAT9ojj1e3KR9F0Gj9V51cPXfkLTl1z2kFtVXCP9dkXTnrBLvSDryCNW9oKDD8LmpI6ZENhDF0DgcWE4KH/lkOT3x+eZHSKaH1/P03MjEVWjXnlBJTSJMc5eYRgryoyxYIqtqhe/fLGWl9Pv/uJljbGFHFYUdsiHmapohjkimkSUcYJmaZE3suBfAsunOPiXTQ5LmVPSbzajLUHdqg8KYLpxjMVJ9mWQsYtk/SKnbxQ67mkQDpiJ13wzv+XOHCYJF9v0Wa1zsj+d7NQjwdI8uFf0PAOfDNh93J84bzpTGfsHcR1DY8argr0ZY6cnXLIzBlcjYsETrv1Svwg== 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: 20151e19-604b-4c68-acf0-08daf8335276 X-MS-Exchange-CrossTenant-originalarrivaltime: 17 Jan 2023 02:34:12.7814 (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: CDqxRQFt9sD0b+BEM3dYmzdeaboi6kpNGI39WMuJa2wao6kjdB3NW3+N/Xhdx2ZByA9PXBHXzF3NsShrWwG0Fw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH0PR10MB5356 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.219,Aquarius:18.0.923,Hydra:6.0.562,FMLib:17.11.122.1 definitions=2023-01-16_18,2023-01-13_02,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxscore=0 adultscore=0 mlxlogscore=999 suspectscore=0 malwarescore=0 bulkscore=0 spamscore=0 phishscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2212070000 definitions=main-2301170017 X-Proofpoint-GUID: dAq5btFyAjlMfr9h7rMRKjosWns_DdiK X-Proofpoint-ORIG-GUID: dAq5btFyAjlMfr9h7rMRKjosWns_DdiK 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?1755235556431444392?= X-GMAIL-MSGID: =?utf-8?q?1755235556431444392?= 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 Tue Jan 17 02:34:13 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: 44420 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:eb09:0:0:0:0:0 with SMTP id s9csp1519089wrn; Mon, 16 Jan 2023 18:36:32 -0800 (PST) X-Google-Smtp-Source: AMrXdXtAsgFKFjYJAcr9Kwri9yVKXsudvzmy+fvxsgEuA3EjwvpXVe1My2BGKj7Zurm08dY38Wc3 X-Received: by 2002:a17:906:d20f:b0:84d:4d6c:a462 with SMTP id w15-20020a170906d20f00b0084d4d6ca462mr1267943ejz.25.1673922992735; Mon, 16 Jan 2023 18:36:32 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1673922992; cv=pass; d=google.com; s=arc-20160816; b=cdsIa9ck4gN3XZ/Sm2+Sm3exBstum3/fBE1TnCw2gVdaBsolKgzAXEztnF5tvBwOfB JRh+Msmp34+mCRDBQgwspcmiFjFtjqRYnom9wchLlCprI/02UXPKYETKx7OiOYj3UaNn oiyqA4O5ujAYEOY6Fmhp7rkRQGapjmq0+nNIZ5Tns/JomgKPO04XgmBqq6SkqhuOd9Bf RRxK01P2HM5DKjbfS1xyLIN5ORkAAVv6YGnQzP3L978WCzAIu8qvBrVQd323h9UFpaFv Pc3tc1PCV6UkL6PiX0q7Grtq2Qp6YvXaCCkgtrVa0hwj0fAO3PazauD8oowlPhTedcac IDJQ== 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=GRWePbNI4yMLl+8pCfpa5/+3hmk4mix7DdpU5vArRK8=; b=EYPpwTOMxtUNsfPhX8KNMuG7idV2FrVRUJyeq/U8rR1eiLxJT3btBKNz8GH2uolu8S uVO0AsRh2nYh73wCoLDTPoOya4xwngniPUbHRrQUp5tEz1cjLBh6pZOT6U+R8aOWrnbl 6Ctj86/M/2CNwyShrpdOtGkpCAfpsBJ4pe+fwwmnVJiGclugs9bE2dRIlbn9dvrEl99F 4FOvAhEKE40aNWadSLAhQp1Pw4ecrPL+LMwM5Sh7FB7F9L/FJO8y5lls5X7moRnEempS 2ubCZowXAtclZRe0O5371TQiyQIHP0v0QTtE1UqFNPEeH2aXKzUhsdX54Zg/rB7ZdXKc gKbg== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@oracle.com header.s=corp-2022-7-12 header.b=HJK73VUu; dkim=pass header.i=@oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=gxGg3RHJ; 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 w21-20020aa7cb55000000b0049651e9f65esi819785edt.395.2023.01.16.18.36.08; Mon, 16 Jan 2023 18:36: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=HJK73VUu; dkim=pass header.i=@oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=gxGg3RHJ; 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 S235442AbjAQCfI (ORCPT + 99 others); Mon, 16 Jan 2023 21:35:08 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:34626 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235356AbjAQCe0 (ORCPT ); Mon, 16 Jan 2023 21:34:26 -0500 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 91E6E24490 for ; Mon, 16 Jan 2023 18:34:25 -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 30H09Urg005545; Tue, 17 Jan 2023 02:34:18 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : references : in-reply-to : content-type : content-transfer-encoding : mime-version; s=corp-2022-7-12; bh=GRWePbNI4yMLl+8pCfpa5/+3hmk4mix7DdpU5vArRK8=; b=HJK73VUuvwSBoT71JG9uPEwcxD+vBs8QxfIhAp6UzS5JkXYvSvXkb9f362uCoZQlWbaC uSm7oHalbHRI9PelAb2m37+HjMNr/U7aTOfi9wmzW0yUKkO2jBKqWy1dxdI+YLUzpwqC xQO/ax0QrnSgyHdX+4Kz7AgOmaxSA+oyyxPULWFiqProW/RTGc7WCdlkyETkag7A44+/ 4lQpo9LtHCd87kZRMb4XgfcK+wYXQ3+Qgc2tYXY/zzAIDqiijyx1pwatF+egNb41aODg S2h5Hc8BWQLHEW92V8gz2fF/8FXRQOwQCOCrxPExRHIwAalADfLhRiSBccV8br1WK8Cw dg== Received: from iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta03.appoci.oracle.com [130.35.103.27]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3n40mdb5e5-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 17 Jan 2023 02:34:18 +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 30GMM4rg028480; Tue, 17 Jan 2023 02:34:16 GMT Received: from nam11-co1-obe.outbound.protection.outlook.com (mail-co1nam11lp2175.outbound.protection.outlook.com [104.47.56.175]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 3n4s2rfxkx-10 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 17 Jan 2023 02:34:16 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=iVsFWwN8Zns9WpGwHmFZxtiKO+a0RoOuq4bCsgUHrt0PpK+Z+EVz6CH27um6mp8uhTI1i2zjXEdo3XVjpY79WHb2xJRDpsP4bsZkunsh07SSC23EKSZtEVtGEVr+AEkXR0li7T9MsLNw9d+vCkfuEhVSb0DsODRbOIQ+fi+st1oZ4Vc5uhGOyn1sSJsfZcstZkjt9VH4PPRsx1DcSWtbh2izc3yUypgg0KYdAyQEHMaKvqFise2itHiI2MunheUKWCLihTght2HHyk8vs7WsioEg7zYFnnDzhBAQ+FcA6kjOye7GJSeZj1wcl4jySat80vCVpl2TsRg3ruix3iJKJg== 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=GRWePbNI4yMLl+8pCfpa5/+3hmk4mix7DdpU5vArRK8=; b=iFxk+viXEYFxfDxFGsMkQl0TYN3zufWA201MRMcpeSrMcaVQHD30iMSchjOhwwrzX9mXEnIwRFwN0BTPZnXofBeMhEFPtkGfONhNCjVkjxcAM+nhO/gZ8hNUr9qfMc3GTigmlmkuKctqdi02tWMCxMsFzKj430zIiTUWRxsTlc8zahYIASEpXBioQiKzuPmPxQfAULlEFGFX2DtMpBgVstObUZLZqrAYimg1pm6SJDASb4J4YTcANwQd86KCviaRd/1cWtvFvnCYvEjTBHNGV5TWdChmhZFg9drw33nzm+6LU0bqKeuxm0AP53viDLR84EcE+IHRc7b/FeLM4zFVKQ== 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=GRWePbNI4yMLl+8pCfpa5/+3hmk4mix7DdpU5vArRK8=; b=gxGg3RHJqS10lRV8UqAXn/LHgvv7kPahTsge9AJOlp+EL20r/bp90Fa7+cHTpgUe5rDqeC1hp9AA4iNaGMxRSxtkl+OlxSl/mx8YIlDDOphJjoj7XL0vPuy35l/FUgjngTDiseCf4e0F/7cpie+kCr9cAdwAcIG2eXNI1wxKdHg= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by CH0PR10MB5356.namprd10.prod.outlook.com (2603:10b6:610:c3::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6002.12; Tue, 17 Jan 2023 02:34:14 +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.6002.012; Tue, 17 Jan 2023 02:34:14 +0000 From: Liam Howlett To: "linux-mm@kvack.org" , "linux-kernel@vger.kernel.org" , Andrew Morton , "maple-tree@lists.infradead.org" CC: Liam Howlett , Liam Howlett Subject: [PATCH v3 10/48] mmap: Convert vma_link() vma iterator Thread-Topic: [PATCH v3 10/48] mmap: Convert vma_link() vma iterator Thread-Index: AQHZKhwvnvB3Qi1ye0Sk/QnMyt6tuA== Date: Tue, 17 Jan 2023 02:34:13 +0000 Message-ID: <20230117023335.1690727-11-Liam.Howlett@oracle.com> References: <20230117023335.1690727-1-Liam.Howlett@oracle.com> In-Reply-To: <20230117023335.1690727-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_|CH0PR10MB5356:EE_ x-ms-office365-filtering-correlation-id: 8fdf9bb9-a47c-4669-46b1-08daf83352b2 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: jEB35gSK7m4W55PDtJpgAQF1KEetVU3gj3IybjN8+MRr9bIav9ZMd0LGwZcGg2JWzoXeiwXNZLygr4guOwodmh6p3pAYJZzzz+suP4BP+mxRAM2L3BZTF5wEaPryneRZ2Vw/FnbkFA+B94BPud+KPDNdhieoAyA6GBzTB3m5JDs0cn58+6A35L2wDxwtMxaamk00YKnlUi98Z+H/UTys0qraTLyEG2mPqYHw+4UCcesJ/Nl7T8I6qVZjJWpuGpeIKG8ZJER/2p3gAFG1lLk+DXERa5h6OY4Qej3cAHWnnWfZzUu6+IT8xA33BdxZIjV0IqvDOYuJujKDiHDRQJHVSrUz2DG7OaGoLN76v8BCqtSM9XjvbsutIDxRHpjBxQIyy1XwQklX2EaXioEuEQ/+YF/RP/W9moBDVIdfSh3m0afr+VdD9/EKn2cTuR+7XeBbga/zppF9uJC5QU5JDRBj1jHozPPykM7aNmMiCNFOjc+bjDdNomOe/WOmj+AxZy8SGtwmShfnic4/2MSjsAQzcNzmkHmKKvWhPYoYBqJGjrOuiIukF9H6p/ceJuPl0IwTjvc0zBgD0BxohB+Ha5h15ofS8K7b6yQMXsgF7a2rBQxIcE6dTTgKVUj7w6JRa4mdby+jiQinTCo1dOLl6IExm1eJU19n/3F6dfLAG2b+dta9MjqNykfVV98O6sUTNsvna1CbqIo1rkYigJ579DDSoQ== 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)(376002)(346002)(39860400002)(136003)(451199015)(36756003)(38070700005)(5660300002)(8676002)(44832011)(8936002)(4326008)(76116006)(66946007)(64756008)(66556008)(66476007)(66446008)(4744005)(2906002)(83380400001)(38100700002)(122000001)(478600001)(54906003)(71200400001)(316002)(107886003)(110136005)(6486002)(86362001)(1076003)(41300700001)(91956017)(2616005)(6512007)(186003)(26005)(6506007);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?q?j3TJmm8Ztr90Vv6Ff4Yewna?= =?iso-8859-1?q?o1oTD/xwjT1OAY1sRtT4iVCcC3SdBdjogchsSKfWC45HQ8ZiHU3IejKDyV8R?= =?iso-8859-1?q?DuP74G/qeKyFsMdKknG2U2/gb3CX9lstZHLvGQz0exqXQkPJUSNvcb0dPhvE?= =?iso-8859-1?q?U+ieDS5i9Uc9DF206FytMwyLbm8izWhtvL/2nTLBuMjpt2nvfcrz4arZtcGa?= =?iso-8859-1?q?aOJOzpMaEGqcjPbgD+G3i+ihrnuBaxsvmaLTiVHuyaArTWkDmMT61NAAJqzk?= =?iso-8859-1?q?sa7+U5BIONk3VPm0I0lr4phZa1XWhrAr1AbuDCts14ECM4ZCHPborwOcKoGx?= =?iso-8859-1?q?27zThNtPTZh7OtYX45/Wz6mhyMMvU6MvHdsV3RXe3wY7LZMdPtBEI5a3DcZC?= =?iso-8859-1?q?Y+lWMxIZjUB9B2GcWsbrasGPuAcoryf3c0bjb3yFvPhzhzdyiJfvPGX3ud0Y?= =?iso-8859-1?q?YN58OgnYsI1C+GGUySlg9y8dEiaGpoY8rywalXmN79prMpufT7i4A/BBAUBb?= =?iso-8859-1?q?NEqYtW512rcZhoRQeme+9S5KEu/wv1/C+6w1GPB7RcoYlFMBwwc9BtI47dSN?= =?iso-8859-1?q?kkOwULulQ50NycbEPCKjkLZ0FEyXfVid9vS9z6YedfngYDCgns7N6EHa59d5?= =?iso-8859-1?q?FQ3RZnAwP2B1OIzX75F9HyT9jOBSPWEkFa0bO5QEVl5rG/Li30izw4mfsJkX?= =?iso-8859-1?q?u/uCFY1HPk95ru/TZrqS6xrrWO4FX5Tuo7U2V5g6HiyBO+ipXta1wDv5J7ha?= =?iso-8859-1?q?ciKqUjU3Iie1LBFHhfzwz/LrAlItjDIoGT6JfC8lluCGqRKR6MGaYCaLIahU?= =?iso-8859-1?q?VUAFgWUwR8hWS5B+NS6lbePrdjyGp9yTYrlNrGiZ6dRseoY6bEqCpTLeS6Ej?= =?iso-8859-1?q?UYcDifS1nJi9dg1AebKOIOO70IQcXjrvU3lRzwpAejPdu2bmwmejA6O8PyL7?= =?iso-8859-1?q?IRzhq6gpNdoGd6kYlu3QgIfsC71aDjLyvo1CifW/80NRhwdqoO7sXHRGEreu?= =?iso-8859-1?q?H1RZjQQxlDYWumMzvd6DVS3/5nXWx7hc53JsgBpw4mfpvZrGV/OMRS480VvA?= =?iso-8859-1?q?Io3DFYB//MunxLymybH1Q+XIUY9LFnBAhYrO9BrcfCNNnskJvReBGsEBDgT0?= =?iso-8859-1?q?03hWXkYjtJA9qME5Xe+uKz1nR2K+/icuPWVEBDRgXN/+Ni8sqqUnp/RWDOD7?= =?iso-8859-1?q?uMifZGYzLjA04oPklMIvmNeMtmK1qcxJSveLGZXBmhWbLG8CTXG5LVxWMi2C?= =?iso-8859-1?q?0tvlUkDi7iFV3Eo2Hxb1m4BhgTW/TU9U1sJB4AFrK/fBV+VKWSxaG1bRJNXN?= =?iso-8859-1?q?nCzXpPybpHoP6sRw3PpG+Mx/WuzVXsc6VMRyWttoM6KBuofbPSPJ9TL5Bs+P?= =?iso-8859-1?q?M9KIPgz6fXmeF70NMyDOoyRi4+SDBig9muYCew1CEgm5Ae7ztHA+S1sc8RFn?= =?iso-8859-1?q?M6mgZtGxP4kZNZxyAh1tFhZv4u/nnr/KuXahiCmac8QpS+KatteSNYHAKn36?= =?iso-8859-1?q?1Np1sQU+TiaidgJEzyMnAV8w7X1UY8LIYJQjSSwqkOP7RTEI0X9VDlkMO/bv?= =?iso-8859-1?q?OJAbhMVWknYOBuliY70cSJ/Chw+FAZks7WhUNjLj4tOWWKy3TEpQzzIWNMXr?= =?iso-8859-1?q?WsJRQqWnDyE0hu18r2319yhO0xrcmvm0oZT/68g=3D=3D?= MIME-Version: 1.0 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: huCFyngmivGGgN7qIyg/5wuJjnKMLVsUPIKr/U/2+FDS2+1h/jTDLvdMc2nb6uFR7iEJpUgXlRoE3PGLagBYdQ3kJGwcYGsM0gWMaKAVR5Bo8uD23PJ5l3JfyVHUFbKxvNltZxaDp1E3Ov4dXxIz//WSuTUdb8LyWqXEyr3P/CgEjLigStQrL5GluniF+SGuOru/UUeCafVyHCQyf60OS0TGWCP4O+wMJQRjLZjPbsoLPHvaPE0v2+rKovSKeJbf0Vq8/lk2JcWksva/0M/ue+lESVZ2oeOVqsAzbbtqUIJx2FgloE19H7GvN9cpQfklj9eI1c4hWyJVlpKABq/LwX+T/c3h5xrEU5Pi75Jw/E1o594QKTBYowA3GHjSHTgkVPrDLerEf53Lmd5p6H5vqmj/sLLtR1tnAYYRwTGDMKwnC9TOE6beAJzTtr20GFtwOV0BQ/jfrKsugwqGnxxBPNsI3t5aPGK6NMpZj59o7K5/UXndkOeiuvTr9jB+knrFiJVMrnUxTKQlbj8H4qA0rJIgOLF0oM1rfbzCnEooatcGKp9nSxEn3VLg3jTjtO0nCIErwalUOgKgrDMXLJDhFT/HzGVYJXvxn8ycxDzU9B2gvEylMXh0oNKYdD98TzQ40GzEyHU+bn+K05GJw254Z+TGruHVtEs/3tWuKx29yo9d29i4hcKNBoD3r3zyieybUERUIyd17inBoDS0EWikgqKEzXph8IvcHfHkced3mJw2mLtUZeH5c6wPGYkU2e6WWMzSuXNKuAA74DrNcpJFqSijwpJEqJzfGLy8jnmVhy6oRXq0BwxCPhDGeS+ZAXwK4YcDoiLJvo2AaaI3v62wF8u3+wKWUydFOveoyFVkY1daNT2TLKcpjxr/aGCpC2RBgwai3ceaO1esLVJrrn1oNQ== 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: 8fdf9bb9-a47c-4669-46b1-08daf83352b2 X-MS-Exchange-CrossTenant-originalarrivaltime: 17 Jan 2023 02:34:13.0782 (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: AP1SPaiOpr+P9FjyCj8GnlN8Ix/yTqKgZ9YNoMdMB2aIOZeNuPJNHCeo4+iJg/kbuGq6SYiDmLKHe6tLOjAEiw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH0PR10MB5356 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.219,Aquarius:18.0.923,Hydra:6.0.562,FMLib:17.11.122.1 definitions=2023-01-16_18,2023-01-13_02,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxscore=0 adultscore=0 mlxlogscore=999 suspectscore=0 malwarescore=0 bulkscore=0 spamscore=0 phishscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2212070000 definitions=main-2301170017 X-Proofpoint-ORIG-GUID: AAnTNXotSLvKjuxbdyd-qG0JWCnmQtJL X-Proofpoint-GUID: AAnTNXotSLvKjuxbdyd-qG0JWCnmQtJL 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?1755235476193141286?= X-GMAIL-MSGID: =?utf-8?q?1755235476193141286?= 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 81ff47147317..fc279b6784c9 100644 --- a/mm/mmap.c +++ b/mm/mmap.c @@ -487,10 +487,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) { @@ -498,7 +498,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 Tue Jan 17 02:34:13 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: 44421 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:eb09:0:0:0:0:0 with SMTP id s9csp1519188wrn; Mon, 16 Jan 2023 18:36:48 -0800 (PST) X-Google-Smtp-Source: AMrXdXtSCOOnXb7BkCuADifgfXU6VN4jG2plHlTX1Xd7Pt+UuSDX+PS8iVJuXqgwkP0QzCKI4NZQ X-Received: by 2002:a17:906:6313:b0:7c1:6151:34c0 with SMTP id sk19-20020a170906631300b007c1615134c0mr1193326ejc.6.1673923008458; Mon, 16 Jan 2023 18:36:48 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1673923008; cv=pass; d=google.com; s=arc-20160816; b=oipuERTfH9jJdAltXmyk5LKP/Jdx8EMSGgcJqxzFFEGRmj5kZf+628rnp6LiGPakQ0 l+k6N1AZ68kYr2j6zYHX0CcCbQkI0pgFRKqeDGyUiD8sO04CaPh4+icw7Ex3fkkXGs6f Pp4rdgsoBb413NIhpEvUrTftQg+Xs2eef8MXa+ht/7rrGLIDJQKKJlKGQijSz1KFmg7G 9NFFkHVw9Y53gt3SP+CPjDgvwVQ5cb/shoRE/TcI3BspSZkUeTdzIm7Sx27hAjPh7vpZ 0mhqiIv16bdXq78sA2rHBtC4QGBhBGGml1wCZ8zC0++T1XS7N13A9yx33WnBoxoaxCH3 7zzQ== 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=lZynW8502CaSJqcgmy6oY5pj+v9wZFB3NSlvIr5uaZk=; b=fBvQ7CqxS9wmOpuFbjWbT9Ehl/yqvmXUq9zw43m1FsCT/YoX64FiPSu3CbgpiYwjMJ Y1b+myCe/0ks3y0Qef9DNLDf97tKlee6ELSX3KGRVwgAfi3UJGkRIFTaR6JT0hJgke3Q NEB1YoBIhaIHPFTWml1woXTJUgDmijlVqN2MN0cL+wajq1a/QIG4FFhmcIIHtJZR8L9S aIRbiuX2VlWmHPXmMSKq3SGYeiBCD9hpLpmYolYwj8PDzJpSfMoq565dXmvCSZjjQRQS A7EmanzeHNL23RahsdcjOkUv+Y6xE7bEr3EMMJXO3SAtuFCFeLZr0PV4wN2THMRZlY4r Va2w== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@oracle.com header.s=corp-2022-7-12 header.b="KA1Us3C/"; dkim=pass header.i=@oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=FuKvQ3of; 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 xa11-20020a170906fd8b00b007adb388df38si9691762ejb.706.2023.01.16.18.36.24; Mon, 16 Jan 2023 18:36:48 -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="KA1Us3C/"; dkim=pass header.i=@oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=FuKvQ3of; 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 S235450AbjAQCfV (ORCPT + 99 others); Mon, 16 Jan 2023 21:35:21 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:34714 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235377AbjAQCea (ORCPT ); Mon, 16 Jan 2023 21:34:30 -0500 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 3B3B425E04 for ; Mon, 16 Jan 2023 18:34:26 -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 30H09dDE006500; Tue, 17 Jan 2023 02:34:18 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : references : in-reply-to : content-type : content-transfer-encoding : mime-version; s=corp-2022-7-12; bh=lZynW8502CaSJqcgmy6oY5pj+v9wZFB3NSlvIr5uaZk=; b=KA1Us3C/yMBsnBanq2k0QF9USnRiehIHQkxDLK7LtqXCSVmDCValGWBqn1XK+O0g7qYL bAVswRmpNHozMDa8gnuPfa0S+qS7l+f/ML5f6z0wTtu6AW6dFZH77U+DqQdaL4GeVHhE YkT4RpDm/YKJxokbyeWAG/5qDSwnPtGSLApvE9eBFOsOYkfJXucP/dMt676T0ICDJMf9 eMLXne7eXRqdcfOX/1wSwH+NDa9nQYum+vFT+hGCmqACl1AdgBl464OFUKoJ8nPoV7Px iToKTzaIOSqJpdOonWzng56Y6kd3/RNq426leCYw2VjPgXXktFTrmYVHgH4u4nF5ePh0 Tw== Received: from iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta03.appoci.oracle.com [130.35.103.27]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3n3kaabrj9-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 17 Jan 2023 02:34:18 +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 30GMM4rh028480; Tue, 17 Jan 2023 02:34:17 GMT Received: from nam11-co1-obe.outbound.protection.outlook.com (mail-co1nam11lp2175.outbound.protection.outlook.com [104.47.56.175]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 3n4s2rfxkx-11 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 17 Jan 2023 02:34:17 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=aJ9k8xQXs3defcGxRogJyTGfO2nL/PRFUd+CQP/f3Pzsp5k3lpc8bNxfN7z/FOUIyW/jv4oc5lzmr9ha5+Cz7vgMTA2CyxAH93JiiEWArMNplyUXia3xeDv506hQP5hcj/THOyErE7rs0aAq5mkiy6DoZgNLdsDe5STdFAlicd56N6ob5OiRnpU+K2y9CLmV9P7FUXq2HHct01aepu2cv9rHabWKEQ1pqbXkW370BDvOoC5CwpH0FfIqTTiuGmudrzdkXhZS1/+ca5xDzapkLIA99SRdEhfSu+fsaElD4uYaufEV60IMVKb2GsWr18sk+wrdwl1q/VAlL6JkROUbnw== 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=lZynW8502CaSJqcgmy6oY5pj+v9wZFB3NSlvIr5uaZk=; b=Zq9EPpq67/t8r24soXyraNUNl4LUL2TAI/B0GTZ2VGw2spqU99KXVO3g2pPSMk7zM+ZR+0q4teP7XWUNH2P9/swuyz1ht1VFpEjDtZ2p+kkJ7lBynKpupkbaoi+yLaj+h6i5O2DiLgE1pdpWjQvtDQK4/1zMiV1fjEXL3grkKVJVt6VKmP4pClNnbV4j6W6IGeuLlWrVLs/jAKhFg+wMs1UTBP9aAB/EXDOg9teJ/Zq4CPcvcKofTdH1wWHCaU/mL+YwJhcdZ64v7CTrGY/ktTgYH2sT6hBiDXuub/cMtoXw6OLlJKz71+7mAR1OOnGHEWij9bLW0wvfGxc4O8MHOg== 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=lZynW8502CaSJqcgmy6oY5pj+v9wZFB3NSlvIr5uaZk=; b=FuKvQ3of7DgOB35T5mqiovJgxr5DGQxpipceCX6aZBA5MwtCRDuJrxAyeHzwcWvDQoYRdhsXpc9xUh7jqR/pbO9AF7p4aAgJPD+VlffNFRy5MWxzu4eznHJySZv0fOCGSswhXQ2YClGsBj14ND7YW1gx71TKa0+xbn32wdSvwks= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by CH0PR10MB5356.namprd10.prod.outlook.com (2603:10b6:610:c3::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6002.12; Tue, 17 Jan 2023 02:34:14 +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.6002.012; Tue, 17 Jan 2023 02:34:14 +0000 From: Liam Howlett To: "linux-mm@kvack.org" , "linux-kernel@vger.kernel.org" , Andrew Morton , "maple-tree@lists.infradead.org" CC: Liam Howlett , Liam Howlett Subject: [PATCH v3 11/48] mm/mmap: Remove preallocation from do_mas_align_munmap() Thread-Topic: [PATCH v3 11/48] mm/mmap: Remove preallocation from do_mas_align_munmap() Thread-Index: AQHZKhwvQyq3wbkS0U6IuYR6K+N7/g== Date: Tue, 17 Jan 2023 02:34:13 +0000 Message-ID: <20230117023335.1690727-12-Liam.Howlett@oracle.com> References: <20230117023335.1690727-1-Liam.Howlett@oracle.com> In-Reply-To: <20230117023335.1690727-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_|CH0PR10MB5356:EE_ x-ms-office365-filtering-correlation-id: 911da601-7415-44a9-a50e-08daf83352f2 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: DXHcRl2aDHcLZUJQ+hDskACyuvjXO/vDQ0BaOLQ1Nd1Oz8bYovJr8b0SvsxpycWBnpk6mod4bh69o+QfkQ41zon/rae35VE44ubSc4GGZagpbmQB4P/qKVQtBxuZA5nDtq1gICh402Wcy35Brk/S+rNfBUej4/pJEgEevlYv1C9syZoQSehOaIeDQI1cAos/zk8hxab56a7qdSgq44j7l+wODkO9SzUNWMjcLZ+yoLpa16O1y/f5JCNCWJsO+1MHtQTy6zYTPFFAy68rF5jMmupTDMGixg5BGQxZUXAPcvZrGDE4OSLq8gSdxyExMRkXjXL+RI2XNWenFDSYrPWa/BgSPaDJ2asrs39clPw0h9eeWLNvAafA4FbAFFBft07uAgavSwti00/lXhy9Va5KSGD5UbBFBSWcgrxGruKJsoXzw5AQj/mrSSNHnmcnDNjRvxR/HT9xZWvuAmzpYU6hVsRyaZVKRuPVlBSrVylGVhzETQi8nTOHSGv2hhRUPEtphjeDRBwgAO/rXnZzX+5Zuea3eW53WYImLXlbUxCYUhd2/N4zR3TXk22yUcpwuRvkZXMjXDt8nnZZtIyl4joAvuSm/1GOQxfqMsi4dMkWXpcvTt171p6Fz1KVFpyt/i0cTLJ89JnPtT6qUKGAg3pPxFrLMXdU/u0YYVhrA94KQiB4ZHbHwqcZu1b8Ay0g5ZDxpB4BfOZGC/DBqVIzrtpElQ== 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)(376002)(346002)(39860400002)(136003)(451199015)(36756003)(38070700005)(5660300002)(8676002)(44832011)(8936002)(4326008)(76116006)(66946007)(64756008)(66556008)(66476007)(66446008)(2906002)(83380400001)(38100700002)(122000001)(478600001)(54906003)(71200400001)(316002)(107886003)(110136005)(6486002)(86362001)(1076003)(41300700001)(91956017)(2616005)(6512007)(186003)(26005)(6506007);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?q?cKC4rTI3293yfkkFLciOyCg?= =?iso-8859-1?q?sIQf6/1yLEwKMiPqy73Ae0ELXkFfoIxNs3jXqNcu913E/TPMO/BCHHzOL4CD?= =?iso-8859-1?q?oJpimBu2j3YuJrWWN1lYdWjd3976O2/qocDO0o4dEmYc9QqrfMgD/seiVXSZ?= =?iso-8859-1?q?kUa4mseMukdx0vln1TkYhvrqK+IWKj6hLNrRQcVyL2VDMICibyeOwwrqJNSe?= =?iso-8859-1?q?IOP2py0y0LfQ0gE5oHmvycDDQaujMGVaVeCGcwHezefnVAFBtkDPSDVGel1G?= =?iso-8859-1?q?GV0VY7UbnJ0E2Qogy6n3NHICGKidBst7INSdqqWuxC8rgy0YSwimA5AJyETV?= =?iso-8859-1?q?NAjf/YxrqLAGZc5VOge/k9Med7QMr74rrPmTWbyVkIokfAkVM5pOTi3mkEzc?= =?iso-8859-1?q?QJyjFZpNbDJo0AKdHPw0WWC8NxU6YlcPZcfdH2DpVgQ0LqV3pwQUnJM1l/Vt?= =?iso-8859-1?q?lFPcjvbwslgeqT/aZ8pON/4BRdsOKyNm1ZaAoH4t9F1BrvX8E6efdel7GJef?= =?iso-8859-1?q?Q6YTuv+E1WkEhYy6UgLTmQU5PufwOKid3lxVOEl/9EomCXCBWpYIUDV1wU/U?= =?iso-8859-1?q?GemVUiM02m6WQE3yJdCk8P559MvwuDQ977QArP9UGYZtqynmmPpu2kXKljvc?= =?iso-8859-1?q?4XJXME9hVy7bCOvRdsouEad58ETIUId9Z5+nGh4aLwemNuCJNpH9dslPnU3O?= =?iso-8859-1?q?0XUeV+Jeh+y0jsQROYDWM6199p8TX6AymJ+sZDcsqA9QtDst5r0QUsEFEwlB?= =?iso-8859-1?q?LTvKNIbpYWPcuMyVKw+v7yG3K/mrrXtOAVR2UJdwE44+b1bC7M30cn7wY6g3?= =?iso-8859-1?q?ukcoJVB0rG5mwROG6jP+8ZM2byWG8opIye1QhK1hGz5SUkJ/om59/hHGJACD?= =?iso-8859-1?q?YS4lyKFSh4nNWhrxE3VO5y1AYpM6hosbyFXK+wqd1TQbDqvBPlqUqqSXy7JG?= =?iso-8859-1?q?jwInwjuQIeiGvXbV421uCjAvZpouHDAs6oEC/8y4Dm+py26lzlEEn+c/TA8H?= =?iso-8859-1?q?oPpSOXnRGnxb+hFQrk3orCSNZ+Z0p+QX1A4ZjdaKcq8IkySQi8w8bTZysZFY?= =?iso-8859-1?q?xaT0ceea1nyWpNuuR4C+QnkD789ohzUZjfsdsS3tT6O7y3Ryp8YmwI354RZq?= =?iso-8859-1?q?D0i4oASpyqa8eJy6APZUJ2lzJsAe1Jn/lnVXM66YPj0GfdGjfjKt/AKctxzW?= =?iso-8859-1?q?v/MRtBR6I5OeKfIFwwgo0lRl6YheqlgL/aGJohMjZoJr4RfQbNFXqPpIcZKD?= =?iso-8859-1?q?nLzOi6ROtGztLOl9hh/SY/Xh+XEo12wgLT4FCpBZS8QMj4Q2VYp+Msa1i48l?= =?iso-8859-1?q?JS0xdchQKhTfz/iDVLb0MCqtqjlPeY7rwRinvAT0+6wYgKeCotRXu+AFCofT?= =?iso-8859-1?q?ReBFBMJEYkM0lHI1SFFceN6q+TSFJRllR0RU0+3b8cDvgsK8oYbjKTFXo3M/?= =?iso-8859-1?q?14AlOuA9ILSRkApMgT8RimFdVlx99mzaSXpQ+wlpY/kGIDoeTh4IkS49IKl9?= =?iso-8859-1?q?xRgxHK78BCmHqry/JvkwK7v8gkcW9J0wHEqVo0hT0PGXgNbBOM+h/VixcDS6?= =?iso-8859-1?q?iIGUzE0vcFasN6ebGxEadpxLlM6cJ+eGXLFMdpqquqm9v8hewK3NlNNj07F5?= =?iso-8859-1?q?0KmsdN3xWS93i+YRDY9TvM/0EQ5Cy5tHXY2jMzg=3D=3D?= MIME-Version: 1.0 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: vFIvWclclpIwJW+fnT9LW6poem/5NdVSsTTrv7G0ElEetw5uxaqrOX9pxuFlrG5bFG/cBAFypSuX7DKqDdx7/Vhsjc3xxbTrTwXePjh3/DNnYsK9ThJDgdlPP8zQstn1QZhi2cYWPCVgt9bcuW0uMdFXFPJmJ6be+sxldY7diKfu4FsQujT9wXW6MTtAfZ5H+BJhW/Xyn7RBvjxKuLRfN3UDtXkfGbjh30XdkP4gmlpQhTXh84d6sjM2jWW7OTV7IRzNCaGJRtROgxhhspXgzPPsZE+Ntj1sUaJ52dTr9F7s5exJ+m3B1uVXh9x1/pAPUGPRwKZMv24hBlxgqfWhPNEeeyAzagSl0QPBIGuIVllRfY5vef+0/CN1UoiHnghBaLEg4w3HHsbbK7+TXzVgKGLTO/VSWuQHwKsRuQTU1Q9SpnNP0zFLbuXSLWfFbAb0quMW7eVB2Nv6Op/rnMRLXelSS2HyH9oBr5uN3bVme2TwspL8zy6xJEqCBacK56QbXeLjU723jQGko1ZRiJRQ2wlVABeuM9/ZQCR3Y1CH8SnTuvJ71dQ7i1+IuGyfYSjdbzXQqpvIvuHs2yylXBunjvV9oueKzqJt1dnX3lsmvxyzrxMmW7Xin3t1xnOwOwkKresD0OwOssJ0LNh73Gwx+z6AAseC1IJgZYn3NzKxqEJPoRM4qDW7X5e8hlSxDgX0ubiUZX5C2dexVvpCazR9XMX/yFK2tik6LRTMcCeNG6m9Zu4GMtDyrI4a7I3GXv2UxIFpE1RfqWgGoSqKEruxvyqo5hKQ4CAgMwRtgAh8G14tIJlibg7xaksOjQqNQ33aArFUjkEKi47VEP075Uo/as4ptKPI0WGeVBmlqXAdw4IQ31AaaVbEAM/+IP9y7yxt/HEy5YND0vmqnfhiY+gNAQ== 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: 911da601-7415-44a9-a50e-08daf83352f2 X-MS-Exchange-CrossTenant-originalarrivaltime: 17 Jan 2023 02:34:13.4220 (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: ILCXKiRCLHsizabR+FYlgJ8a3YTzrqAc0FSCGWv59Ni9AbJ+hkdwrsoHgUR+VF916n6yeC+UoxvR6vEsUefGSg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH0PR10MB5356 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.219,Aquarius:18.0.923,Hydra:6.0.562,FMLib:17.11.122.1 definitions=2023-01-16_18,2023-01-13_02,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxscore=0 adultscore=0 mlxlogscore=999 suspectscore=0 malwarescore=0 bulkscore=0 spamscore=0 phishscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2212070000 definitions=main-2301170017 X-Proofpoint-GUID: lyIDvuCfxfRWyG8HBy6eh24WtqMTI2Oi X-Proofpoint-ORIG-GUID: lyIDvuCfxfRWyG8HBy6eh24WtqMTI2Oi 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?1755235492337004344?= X-GMAIL-MSGID: =?utf-8?q?1755235492337004344?= 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 fc279b6784c9..1d18e8e219ff 100644 --- a/mm/mmap.c +++ b/mm/mmap.c @@ -2325,9 +2325,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. @@ -2418,8 +2415,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. */ { @@ -2427,6 +2422,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) { @@ -2436,10 +2432,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 @@ -2471,7 +2470,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 Tue Jan 17 02:34:13 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: 44434 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:eb09:0:0:0:0:0 with SMTP id s9csp1519500wrn; Mon, 16 Jan 2023 18:37:50 -0800 (PST) X-Google-Smtp-Source: AMrXdXup+3iveyk7I36FkU16UpIiSl+YFmlgNdw1GsBF9k8IM9ctU3/cJjfaEfKYTRRfCdKLDGKU X-Received: by 2002:a17:906:3397:b0:86b:e50c:151b with SMTP id v23-20020a170906339700b0086be50c151bmr1101074eja.28.1673923069961; Mon, 16 Jan 2023 18:37:49 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1673923069; cv=pass; d=google.com; s=arc-20160816; b=vm1DrQe832YGVlOozvnTVrjHTZxx5uolSfuuPtwtwv6SMhbukkrqcrZF/nM8J2g6bz xhm75WM11p7vOGCwz1EnvAQNltIEFZTXVM7rO1/pSXIPRegaeTOTWhv8Xi5xUVfg7vp3 bxv72Sd38zI/DxqbywW73oc8dyNojSrN3t0sW8iUcye17JM41XHxubNqZ6rmDR8ALFPv 4d+4QmivkaS9xq67nXvf8l7t8Q9QoJwiCF5fa9gZCDIWmFfQwtmRoF9klzRgz1ZYDhKN sxkKHHnkla/zgPul6zJGDJIS5HjMgxSIvs/AD8VQibhSm6BDDyLhrxmrsH3bIlBmRPEi zGIQ== 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=Rj+ExYqI98+tOrvVnQFf1t//d9d9F1VxS105W7RPcVA=; b=hn//yiI5hi3nv/z0mpf4JG7eRwHZcOnAwa2QsMKV7MLzG4MPfA71to13LWn18USJ+r 3egjdxFD6Xevj5bA8XiL/tU3gFYFNnMj5IOW2vTp4QODUkM7rqPJl4nogDAutk1GVTLy ftKOLTjHz4295Y3PldxR4inHEhszeHuAdDdJte0csSkkw4GD+LyJW8PjtxJ+5DqRrhW/ 5V9rKaGyfX2ZFJWPN6xFKlD28M7NDOToopqpNPdmb+B9cWXKqqt4je82e4v2WCCVYh92 0VCBEuYXgnG9z1lgQPDXZ+9wMvBlwVsLrd9gxnauBtsNINniGJkzM76t1D8Tos50iTiv K5LA== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@oracle.com header.s=corp-2022-7-12 header.b=HutvgOQG; dkim=pass header.i=@oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=L2cax3kG; 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 gb26-20020a170907961a00b00872733f3ba0si1182877ejc.1002.2023.01.16.18.37.26; Mon, 16 Jan 2023 18:37: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=HutvgOQG; dkim=pass header.i=@oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=L2cax3kG; 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 S235553AbjAQCgE (ORCPT + 99 others); Mon, 16 Jan 2023 21:36:04 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:35694 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235432AbjAQCfD (ORCPT ); Mon, 16 Jan 2023 21:35:03 -0500 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 92E3E2B0A7 for ; Mon, 16 Jan 2023 18:34:30 -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 30H09X4n006400; Tue, 17 Jan 2023 02:34:20 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=Rj+ExYqI98+tOrvVnQFf1t//d9d9F1VxS105W7RPcVA=; b=HutvgOQGDH/WW2+GbrDy/FZD86TJy4R/X+njBMbjKP8Rm3vMOZ6fgpvBIFEAzQaMFyJH /N80i5TQ1i6fguaeClTjEO7FLvk1xdJ8ndb690WVsaeWxlbEsXwFtp1zRz/EHKG5a+mc lJGaNm8rpjghxFGetqqig8qb02Ve1Fp6+Sj5HZOdxn+ySRy47edpM+8/zHwUa+pDjge8 LCBsbFwld8bEp7Je5C83zQbLD+cUOvKbPEhQ5EIWsYR0fdVP7PO+7gcHvCe79y/91RIC mf4wbKVNKrimMdIsGLquPWZjvmtfiQn9A0ekMBbdAOZofBPFiuq2DlQvlnGgu3j+16DU 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 3n3kaabrjb-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 17 Jan 2023 02:34:20 +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 30GNXAUS020577; Tue, 17 Jan 2023 02:34:19 GMT Received: from nam11-co1-obe.outbound.protection.outlook.com (mail-co1nam11lp2176.outbound.protection.outlook.com [104.47.56.176]) by phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 3n4rq37hat-3 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 17 Jan 2023 02:34:19 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=XlHLUE+WOMrxYh20BTgb3z1ma0nE56a7Zy0413TziIt1JF/J2bM6/frqAele7nQdpCGYqsD2S1Rd/pklsFMwsPWeNe1WW+dXIg/0bDEYAyxmMfJXgwgOjBJYQIL0NgZN9TFCxKdOPsSu1szjblFCebCaIvxzzH8ioFiFufge13oEgy/jiGVEec6P67az8txgqM8crnbYOHqBXTnv8OtQYiHGu8Gys+v1xlJSSeaTnXYCTHUyeZTZBht7f7RTBBZF+f7dgiCMMQrjBvlTGLdDHnw/LjhPPlh+/8zWKM1jM5Hcfi8T16W4WnkxAdBsOwv7cSwCJsqSe9MVh4kWwW1wKQ== 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=Rj+ExYqI98+tOrvVnQFf1t//d9d9F1VxS105W7RPcVA=; b=f1eWyU8y95P55en1zHx4pZl53BHCimmz7iD7ljdP8xb53GOEbmRzFeLrNb/vOqB8L+HlN7taV9W5R765C1vEhF+Jo+zf7EUFqYyzS3KSmWLMidUYX2XF1aYDwXM3XClpLDWr+oMJKWf+9ieFCgJ2e4OU9XseBHJitMJmBbVSVnrfSNxWCkV1jkcaZD5DzGqV/Os6avHgPWdBkNBZTkXO5k1C4/GbFAlHR/UGHrFMP/41sjkgkSuXowFfiWn5biqUHT9LyK9u9ZF9qhhjXYRRWHZwFXgCbGQLmISRRlJ6AZsHA/BR+8NCMbbp1YaJaEDHLbs9WSA7ngyKnS66ZDqnrg== 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=Rj+ExYqI98+tOrvVnQFf1t//d9d9F1VxS105W7RPcVA=; b=L2cax3kG3a1A5HchyyRNff7zttJyEUVkTpFP2iqamK6O1/rkX/Hjzm7l4URDjv2HRE8d70CDkEhKfyHeUa3ggMmrs0EoX6ltp/GproickixRO9mtVOBplVV69L1GcbZsKs+a23i50eyoyVTPFYZrRsy+7u3c5MC7bqWzStnF+UM= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by CH0PR10MB5356.namprd10.prod.outlook.com (2603:10b6:610:c3::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6002.12; Tue, 17 Jan 2023 02:34:15 +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.6002.012; Tue, 17 Jan 2023 02:34:15 +0000 From: Liam Howlett To: "linux-mm@kvack.org" , "linux-kernel@vger.kernel.org" , Andrew Morton , "maple-tree@lists.infradead.org" CC: Liam Howlett , Liam Howlett Subject: [PATCH v3 12/48] mmap: Change do_mas_munmap and do_mas_aligned_munmap() to use vma iterator Thread-Topic: [PATCH v3 12/48] mmap: Change do_mas_munmap and do_mas_aligned_munmap() to use vma iterator Thread-Index: AQHZKhwwNBrUMvIX0ESUjoQ+CGcxaA== Date: Tue, 17 Jan 2023 02:34:13 +0000 Message-ID: <20230117023335.1690727-13-Liam.Howlett@oracle.com> References: <20230117023335.1690727-1-Liam.Howlett@oracle.com> In-Reply-To: <20230117023335.1690727-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_|CH0PR10MB5356:EE_ x-ms-office365-filtering-correlation-id: b70730b8-18d8-48d7-2a78-08daf833533a x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: mMqm+zY67XWTSO67Pn3Z3LTe3crnDgOyoHSaErxgY/kCWwzELHnEeZjltoMO+z3Lka1UnYnDqQCM5oSXdtZBB/o+kX4vY5u3pvyc9EcPl+GsBVgujsj9o4Iru9mIZbWGM+8np3PwrITt9P3PtU/GmxeNh7bNMIbZ/PG6PPYCYgcKmtSRCC6+gGQmydPk7qZLpPekOy7R4NludSs7E+HwbObsnwipeLBEBZntvpGtZG0IN5A7+8hWLzXTQKF6JxCT/QvX2nVwGvCbSa6hP6ozS8eM6IIy+SWpbKADwlXCVd7IUbDALXxb3OEacs4hd4rXwJANqdNIFw89gfWmqaqj6IZUuEpcgFQFaONoNu+w/3qmOQ8sk+hy7qDFZUjdvrn0QNlpH28LsXCuRxlQLErTNQTrdICD8EGHl1RrWSWGl3T1L2qYyCtQ4weuQINzpWm8nvIkRE3ns2ET2/G//miJP1HFKmtQpSWbGnbCPFFdE9wLR6DXoPH2vMUHojjXYuweoEALg8vCCQDGjl4AjaSKwdMOr0sM5mG07c9a3dPH+kRCGMjWZFeVPOLIyKXn81ujwlvhHAyf0W5KIG2//9K7l9X+94BEzSl76szlnKEYOFvth9OjET5JD3TDULhiz+hFn4F7o8oc9N0xDl/KDoSWPkscfzIlMjBBj77wwdsHkEav8HfLIe0Atje1cUulSlaWgi2IwJwdLC+Lqtor++QOSA== 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)(376002)(346002)(39860400002)(136003)(451199015)(36756003)(38070700005)(5660300002)(8676002)(44832011)(8936002)(4326008)(76116006)(66946007)(64756008)(66556008)(66476007)(66446008)(30864003)(2906002)(83380400001)(38100700002)(122000001)(478600001)(54906003)(71200400001)(316002)(107886003)(110136005)(6486002)(66899015)(86362001)(1076003)(41300700001)(91956017)(2616005)(6512007)(186003)(26005)(6506007);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?q?iCqSXdS/vLfpYUembzvN7kC?= =?iso-8859-1?q?o1KrEzfCHsXjCaT4H1C58FoyLgSGHznqRK3bZs7AKb21z7wNAr/uR3lqnLE5?= =?iso-8859-1?q?QZITSCVgiXA1C98NeNL4tynY85eBzV58PTjwlaytRTMDJCFhVQCOFIogbw+K?= =?iso-8859-1?q?voZF59RoHlvIO9HJsYTZU6gcUFazssSTwa49RP7g7UNqMM3Go5Y5wSbR2mWf?= =?iso-8859-1?q?pDwhpA0no0aLJ+2LEuklESZREKk95o99pfWwljBk8JWO1IlxbUoVzXejlrZo?= =?iso-8859-1?q?d2MJL4IYrXCqQO4DDFVuyYrdx/rk3wuuZo0t3GPm7wMVveioSlUPcD6B4QDR?= =?iso-8859-1?q?LhqbwzR4onLOxcsn0u3gIQx8XloGMHq0T7KwIhTddjGqEvQlxeqPgFqYmsL9?= =?iso-8859-1?q?CJwSV6Zt1A32vzfAluX09IRFMW41zfRXU+VFOUOmjwvNfFnr4fsUfzOdSZ7p?= =?iso-8859-1?q?iWPl9Mq7jxiztDgu8DfnGS5aODcA+yV9zbOzh38j7nvXZ95CUKrVguKdi7YJ?= =?iso-8859-1?q?AwDgN7X19QKe88pqD9SldpQsVUl4hPmgDNCTtMTTha2ZaikC6Ig66RHVggCG?= =?iso-8859-1?q?tFwxzDBuWO8qDxqj9Snf7fVZePB8cUQs2zBaHFMrbP00RR+e2dYHHYJwUC3N?= =?iso-8859-1?q?hLiYkjLfE3QU2nZKGxNFVkhYpbOix1HLYeNpJqBHREJgbXAdaes7Kk18veQZ?= =?iso-8859-1?q?cMNakcJU6weU50SYqx5uX1R7r3DvIHxoRy0Vvgb/EXBlvnPDGd7Kkp4ltmik?= =?iso-8859-1?q?9b4+VDevMX55sPamLQvlOKeZdhX8JkjTHr3xi5lDXc1v06yoALvkIakjBMYa?= =?iso-8859-1?q?OL6mR1GARsC+BV4USLjdX46IaGGHHbtISCu6fG7C1B34NXCuo9bELIxgLSbI?= =?iso-8859-1?q?pxVqnUUPFr6ZQucXLVerzzMa1ccXhpbd9tYP0AiUeC4RtZ7WLJxFy3Qyv0hc?= =?iso-8859-1?q?FGsjQPFt47WOoaRIJYYqejSbpaQ/KSevOiKKGzRWPui2CKxnpFJxi9pQ4Xnj?= =?iso-8859-1?q?3pTkPq4kWT/GR7doUchFdBNvVaoynY00Ycg7V8KZkVHY1n8SDa0UoZNoPoGE?= =?iso-8859-1?q?objqiArsNZ490tFaEWV54tVaFNUXW5QRzDajRLfeqGV+USyPU9erDoggnYBz?= =?iso-8859-1?q?5viW5BTNOdkzpJ7TxeXzJrZEMHbBtl/UmSnTLzRxUlr8BbVY9+4loD6KZa9Y?= =?iso-8859-1?q?GEPK2ioAwbntsVUWOePf6nK8lhHo86T83Wu5KZmoEe/AhjicVRdVvVWBrB3A?= =?iso-8859-1?q?+cosXaCqngFjxDDxGcqJaGj1wgtVi1ZofdJfblAFOAALR7HQ2bkEH5t86d2P?= =?iso-8859-1?q?+YJ3PooyJDh5PSYjb8Fj1W1KkbDIhVf9PA7vp6auMFWtNrQlnra9XjEzFJsP?= =?iso-8859-1?q?lHINe1Njz0sA9SLVGRoi/r18ssv1QuXs9u8zgi+oCzpoHEEadcf2SOW81kDp?= =?iso-8859-1?q?qW+X4s6wnt9sj9WCVZVPDhBxDgYiPQ6R/9TYm53NwZP/yTyXxMfh+EFEHApz?= =?iso-8859-1?q?DfUPLqOEK+Mfjvq+PG6IbmY5IP5adck3C/wP94UbRy9wtDffoGpmiiOtyqCv?= =?iso-8859-1?q?/gtb94NZj3HMoOrb3PsOHDZwLDU65N4cft1v6RihfiEt+jRJTWO3ubHCCOri?= =?iso-8859-1?q?maTEDg1iCArs11QQbUJa9i3u9TbaAusdMD0ZUZw=3D=3D?= MIME-Version: 1.0 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: TGsQfAM4znuzKfwJjx1belYq6WL/a/ozFV5OnfdTPVOZilJUC5GYO0/es1O1UIZM251Ew6It9itjh2sN2RbiLXhptYG3R2W6U2VldUvr/WlO9O1y/PldNBiEJ+bcp4AjXWaoJT7NdHbV9tDw4gb67pkA9uoxV9tZQXOfD9Np9VtBjPcD7+gmlEkIy5fba+IDEHQBgfKuaxFipzRIk42weuQfdnpuMgkmOBDJbwN7V/p4xn0fyNetWuNh4ksvmzxJEg54i5Cx5Yy4pWwPUG41omGovahZP9Sd2iaMsLbENkQ/mx6/+5JWAkV8nobdmIr18Ug4GsniTvLri96PHK5Di8vzoN1F8DPTg7OYG2W689EG5MfEumjXrsC2TcSdhajcrU41WLYA3byV8lP7lxQYf8kuD8InqTzwXmu+QUZX819IdxbUxUsVazdY3uMu5EW6jleR0Rd9rlhK1aLT1iefSbzpXQSsMddfAwZ3XrtY/QbIGWUMyAFPfVgRqijShj9V4LAiG+ucXH99NR/fF5gCaJtS9uvtJC15Fasg7O7bI+Uuu6uEp/3fplqK+sszLjRSm48y5bZJrnxAt762prAJyjpgUBEdRhvjEI8CR8MxkUPBX0l4xciAfzzNNWFGN048t4eJDy7urq98K6lNaQJoSdovsuyByt9KvnW9Fs10pjVOdIRiaU/Y01bheqBf/5oOHVlME4/XGSmSyTKPwD/CnlO2IRArp4qCctrtdQ6eEVWBYHppM2JrAL4ODobWPOlqIgwpaBZJEgv/X8H47c+904fS/oRKXJXdywUG/44Fk2XVKbIdyxsDbObQ38x8yz2XxcTcVtTLoXsT90WnV0Oceoi9yUJuTQnl/PL/ECSfc4efR/poSJ4EH/Zx2EXi0tLku4dF1tEfjpLLoDQj5wkH0w== 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: b70730b8-18d8-48d7-2a78-08daf833533a X-MS-Exchange-CrossTenant-originalarrivaltime: 17 Jan 2023 02:34:13.9844 (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: FmHAeC380jxjAQXoFpd2wAXQlPQHjpHq+FiV1ftsS02Y3oFta1Hq34DNnR6DVPsWH52mEbcWRQxoQWsmy3nKnA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH0PR10MB5356 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.219,Aquarius:18.0.923,Hydra:6.0.562,FMLib:17.11.122.1 definitions=2023-01-16_18,2023-01-13_02,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 phishscore=0 bulkscore=0 malwarescore=0 spamscore=0 mlxlogscore=999 adultscore=0 suspectscore=0 mlxscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2212070000 definitions=main-2301170017 X-Proofpoint-GUID: OwpfypoI7AoSeChJCIIQztmZbJfgaClM X-Proofpoint-ORIG-GUID: OwpfypoI7AoSeChJCIIQztmZbJfgaClM 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?1755235556994995296?= X-GMAIL-MSGID: =?utf-8?q?1755235556994995296?= 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 1d18e8e219ff..364b1abd8ddf 100644 --- a/mm/mmap.c +++ b/mm/mmap.c @@ -2301,8 +2301,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. @@ -2313,7 +2313,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) { @@ -2325,7 +2325,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. * @@ -2345,27 +2344,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; @@ -2374,8 +2369,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; @@ -2397,7 +2392,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)) { /* @@ -2422,10 +2417,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); @@ -2435,8 +2430,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; @@ -2474,8 +2469,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 @@ -2489,7 +2484,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) { @@ -2507,11 +2502,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. @@ -2523,9 +2518,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, @@ -2541,7 +2536,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)) { @@ -2559,7 +2554,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; /* @@ -2572,8 +2567,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; @@ -2601,13 +2596,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 @@ -2646,7 +2639,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 @@ -2692,7 +2685,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; @@ -2705,7 +2698,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) @@ -2766,7 +2759,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: @@ -2783,12 +2776,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 @@ -2920,7 +2913,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; } @@ -3043,7 +3036,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 Tue Jan 17 02:34:14 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: 44424 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:eb09:0:0:0:0:0 with SMTP id s9csp1519275wrn; Mon, 16 Jan 2023 18:37:03 -0800 (PST) X-Google-Smtp-Source: AMrXdXumOy1pViuVud2aX8R7EY8e6kXBdS1YsBl5tG2HHZIh1MCIY0N6zEKqTUIp5QpCOqLGi1Cx X-Received: by 2002:a05:6402:4447:b0:497:c96b:4dea with SMTP id o7-20020a056402444700b00497c96b4deamr1529144edb.5.1673923023137; Mon, 16 Jan 2023 18:37:03 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1673923023; cv=pass; d=google.com; s=arc-20160816; b=hJA8slYJNtqLdm3vCzKa4b1v9kkvGb/BiveFKoZmrx15fMlIx3iSf2EPt8UXtOMReI JUGvEqYPETVhsWf9V1BW3B/2Au1PvXz+wXMmb9LBqGtewjTZ3x1TbdiT2rzhAr6WWwPl M2yeBG57v4Cwrh7XKSyuEitSLiSLPrVOFOcnFFOPDNAu2swl0nhQDh+79nU1Bj0XmdfJ 5h2TvKWFM/UoSUZWEenhV8bxJ1s+X2rvqZ16Cwe5hi7+wUzzdCsE/GHjZS9Gd5FzFlOC h8Qu0J7AXDaGjGg1Jf8PeEpP0W0P3FKSFhfp0RcLT4pm5lUrGCiOqckoKHxKiU9lM9cV Gx2A== 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=tVIi81lx+WGbxrahe2pvo1w9apb1eQh8SkwhMec/4Kg=; b=mTqWELGfYyP8JzPpE2894KLf/WZscld5Bjt/skIuZSnDqQw/u0xM5PFS8CQoeebSAW nBKGX89Wp6fgj3i6kwbAjH/58C9yCSFgBgBXIcFh4MvGRA7aGSoHhXgdSdgYXfDY4U1N ZFIHhgoZ2CMsXoG2a//1Btm7cGIIDcqrLRxi5ZZsNNw2dvC8EhLjrxMSH26Opw+yYGpP q58/0gUp4ehbCX1b2QPA9+cYAAPGdwQwmBr4eKvcCJG5tMV08SK/DkU5FVY5hyl6ENcm XR69hNBg7oOqiMtLqsqrNGV+QgyK9OczGXKmEWbuDE5TYeEavCP4yCbEKKKRshg1m81b Ok/A== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@oracle.com header.s=corp-2022-7-12 header.b=AlxSC2Jy; dkim=pass header.i=@oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b="IMm8/m9c"; 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 ec18-20020a0564020d5200b0046b0205ab58si27713814edb.580.2023.01.16.18.36.39; Mon, 16 Jan 2023 18:37:03 -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=AlxSC2Jy; dkim=pass header.i=@oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b="IMm8/m9c"; 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 S235426AbjAQCfc (ORCPT + 99 others); Mon, 16 Jan 2023 21:35:32 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:35670 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235395AbjAQCew (ORCPT ); Mon, 16 Jan 2023 21:34:52 -0500 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 244932A148 for ; Mon, 16 Jan 2023 18:34:27 -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 30H09eKU006596; Tue, 17 Jan 2023 02:34:19 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=tVIi81lx+WGbxrahe2pvo1w9apb1eQh8SkwhMec/4Kg=; b=AlxSC2Jyi4x09FUySiLq5bOQqgifq/tFtuc2uoFf12hydk+2/x+ETR8k7SS+WTV50hh0 xxBjE4PXGatf3TcdI1h8BCq1bxcEX0WphXIqOXMyNdf676GsYXwEAwQ0E7wM6L/H3Olk GDi7thWY923U+xWOuIUTMAySuaGneicIACiJqMKtLAH2cONlhIH1CB4AGdmN2jv28PBR gYV0owGDlV3KxdQp8zkfVYiXCCSySucF87Zmd3yVpyzc/uMvG/kmT8xVLV8brISX52k4 BshhwtA/PhIDNcFQBn9IeWrZiGqnp/A5EOjrqSk7JsdQl6UENtUVkgNcUEDad2oU/rYX mw== Received: from phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta01.appoci.oracle.com [138.1.114.2]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3n3kaabrja-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 17 Jan 2023 02:34:19 +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 30GNXAUQ020577; Tue, 17 Jan 2023 02:34:18 GMT Received: from nam11-co1-obe.outbound.protection.outlook.com (mail-co1nam11lp2176.outbound.protection.outlook.com [104.47.56.176]) by phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 3n4rq37hat-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 17 Jan 2023 02:34:18 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=cDPotj9XlpY5jvnR2TTIoUgOLyLf3kRvt4W59V+Ayc4XE71tnf1ldsAHRHIT5zIN2eOjNQGfrti2NbSJ6qJZvXZ7P9vopxGBuYrTOHnO80MnlrK7FcAfT9Ju+xTyKznI4CXBlolzwQt9oXlPYLcU4Asb9pHXgCmBNDVTFSsrVwpJfWFb2BZ02kNfc0ty9QLopCpfmMQWSGnl3LuRWjhsJhVlN75jWfuX5UEIaa4rnkHdrWSv2HeZE7orEY+0wKUysp+ObCSmKydrOrSC34nR9y6aBAXxARG36DyUWc0DSkidqYttcIm0hjHG1ZqaNS3YZ6kPuvnyO1ExlPe/QUwHWA== 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=tVIi81lx+WGbxrahe2pvo1w9apb1eQh8SkwhMec/4Kg=; b=mLXgBPjYzIIki947AlyFbbxs/xpW2+ZPUBkE4JXqJsvfGTmfCVX6VN8tLmDK+KFYt5/Ud4cdiHEuNF1rITRVcaYdJhUjQqRK9wfZNxgMko4GcIjr4xfBgb4svuXF2xGi1nEjztK8Uui2z3iHkOUXlBF5W/Gx8n9poJqUIF38F5v6O9Z+6kOEEn8ep6jlXURspwSIP5rXRNxH6tgHb+PNjTYCqRVN9BxWibMEJml/BWtb7p1L5a+OkDazov9pUBQMO0x6yecGyfej5UYdRsmKsGkeYc/blNK/ny40maQ/6Fd8CIjUS1Slbd/g63wVTBDmdeZdHHW0Jzgq/mLpJadbMw== 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=tVIi81lx+WGbxrahe2pvo1w9apb1eQh8SkwhMec/4Kg=; b=IMm8/m9c7P1vM1EVkexqko1iK8Gw/hRZEkZuD/HRLbKclABtj8MQO0LafoVxvcKpDHISo6sbxbFQo3hprnhp7mqmnJVpKXx+jZt8sgzu1VTBC0l2ep5TaNc9orgQ0cJY7LBEmjyx1rtPUBaldSvwq5JlLbXOASktdUW1s4O2kiE= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by CH0PR10MB5356.namprd10.prod.outlook.com (2603:10b6:610:c3::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6002.12; Tue, 17 Jan 2023 02:34:15 +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.6002.012; Tue, 17 Jan 2023 02:34:15 +0000 From: Liam Howlett To: "linux-mm@kvack.org" , "linux-kernel@vger.kernel.org" , Andrew Morton , "maple-tree@lists.infradead.org" CC: Liam Howlett , Liam Howlett Subject: [PATCH v3 13/48] mmap: Convert vma_expand() to use vma iterator Thread-Topic: [PATCH v3 13/48] mmap: Convert vma_expand() to use vma iterator Thread-Index: AQHZKhwwKw6d4BE1jkicqMiUM6RJzw== Date: Tue, 17 Jan 2023 02:34:14 +0000 Message-ID: <20230117023335.1690727-14-Liam.Howlett@oracle.com> References: <20230117023335.1690727-1-Liam.Howlett@oracle.com> In-Reply-To: <20230117023335.1690727-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_|CH0PR10MB5356:EE_ x-ms-office365-filtering-correlation-id: 26245deb-91fa-48ee-afb0-08daf8335381 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: LRHwlFH/pNQFLlw/jmJ4Hix9KH4AtKquYXKj5RUaASRNbAwR1nOaQ5OP1PRSIg3x74xK9x9CqGAvh9//ltrMVjFLojImeXFOjqqHOjuqMHrKlFGZCcwEQAlzOBQZ/m0dkrBa889jVEm6CNqjkOiEJzbds4X0+GF9T93ocS4ZZAHE8jh7PdR8wo2MTbYPECx4gOZLOinO7OJS3/YTeiuqo/bM3dk8J76sMkOPsHySargn0sVPxUzc2cv//pX2wBBaR/zmLkZ5ZnkADSxlRUpOwnMt73HBXoy3nBoe6QQNjmLWE3WDKSNo9WshE6IoKewBBI6ILi4U28LEJeLcexFx3B8KdbTatVGVEaHORniNlz0R27+H2GudOjPVpGsRER/CfVIXIeawT1pphEWj54f7oWeIgAfqXcRWuOt2Qapv9eWp1PhMZ+8GZKtDn6JNLz1VFXfnnCH2RGB1nubsnpRX/LZHjZfaEJakhY3fm/g6vmXIw9pMFiY3+epLmVRI/+2cNvw2g0qwGJek512RoBE7qK+apI6cGGhKxYvhulVPmmSxqFLL5phxzBXltsio3LVfSle87xgceYyz+7+xMc3uPsC6aUwooOUS0ED20hW22305nIFOl7WOe6ZkQyK/Wv2XKSbwkgIwkvL36JmP8TPNXQ2gJNBpp72jyl+XNANhQ4Ug9kTRyspCzuC5IV2JASD/eYLEB92hSqDeggtQuqXAew== 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)(376002)(346002)(39860400002)(136003)(451199015)(36756003)(38070700005)(5660300002)(8676002)(44832011)(8936002)(4326008)(76116006)(66946007)(64756008)(66556008)(66476007)(66446008)(2906002)(83380400001)(38100700002)(122000001)(478600001)(54906003)(71200400001)(316002)(107886003)(110136005)(6486002)(86362001)(1076003)(41300700001)(91956017)(2616005)(6512007)(186003)(26005)(6506007);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?q?Z/8Goab9AsZIQxahqVOnQ3C?= =?iso-8859-1?q?aw2I21wen1Vx184DLLLm8tXgEFN4dLPD5+7vpMbmZTeBzHRiDdRcEYcEeGFp?= =?iso-8859-1?q?klYgK2Gs2MB5JMRCfwvDfeweZX+qd7s5Z2hlKvYi2DF1cIgS26AvCpC+ETiq?= =?iso-8859-1?q?9WxNvJ6T0EPrCFRWWkact16FrEJOHBVMkTnJJqI0lQsVZs5yE6BnaHjUf5qE?= =?iso-8859-1?q?j9huu5rwKhqB4wgRrncuc7Bey9g4xiyIthNRjkMcayfku2wTxddroLNvrcDe?= =?iso-8859-1?q?57Yj7IlnKhetK9QbxsMHcipU5WBwOXmmWrfcwsq4kEivX5iFxvm814/NfLi9?= =?iso-8859-1?q?OEHFqMpqjbhUiQ+X0LUmn5EyMmnJ+5aupEB53WUuON1jxGkqe2iyhkwVzaCl?= =?iso-8859-1?q?4dkOpZR0zkNg59i18r0sy9Ekc6foBdGqaLgGJkWpkPPMS1TCSZuOcF3DJ+mL?= =?iso-8859-1?q?Qj3qxaC5G8wCVgOhxMkwY1n+iAsf1/cMdqP/pM1mQGKD8hO7ho1NlmEYTIcX?= =?iso-8859-1?q?NxDZ7t4B+m19fB6V1Dz5Yiwo7djzf2QM2F3RGiTN25SEgIFR92mExflG/bAa?= =?iso-8859-1?q?374RcrgFxId4sShFS9HlYn7HlhE/sQ+HmvcdubI6iHV5EXWzv09wiLZR9R1X?= =?iso-8859-1?q?ACynHonE1quaqZdklZt+6SZ9BdXibu03DoxqPQEYxPoBr1gedTTXmE9mMG1b?= =?iso-8859-1?q?HlhaPtP7HPEmYI3RU3xKAI6tJgrDA6Snn9r1RmP/zzUm6FOvLEUTFpB8a/Ex?= =?iso-8859-1?q?CPtRGkGXUnT9camJL/8rHEhkg9sGeeT9RH9/7xgzlNpkCkW0kE4gI8V8v0Ow?= =?iso-8859-1?q?LoKeJuS6ThhQcVwYFRPTxYMqO0Px3dHKLJPvqYs7OkfCLub1TsC517cXVVON?= =?iso-8859-1?q?NUQElZYDjTi4SrWUYw5yuxhWwdOxOpvjBhtZwj9y++PoYYNVF5J8LAhA1iMX?= =?iso-8859-1?q?xbrbOz8ju6dQXR3AbvuKjO0Card4oBA71eZIFhpMxjjQQXOnCeU0+0bW1b1v?= =?iso-8859-1?q?edl3NRkm2RpjIMTmp04YsD1Owb/mUamGjXLyUMt+cqw9DvewU1jMEjwSef+J?= =?iso-8859-1?q?qbP2dwgJ8L6MR4suM/R7I6AvoLyZhg+E5S79EuAWCDk57THjRHUArRq28HFn?= =?iso-8859-1?q?Z39TbW2Cz/pjUBT14mMYvRNMd7XZuTk6zWUDJacR5xY9v/Kj7S+y1mFoWGdv?= =?iso-8859-1?q?A7xxyBZOIOmtjQ4btU+o0Wts9x9SuPV+l/H20k/CWfXwltRdmHA1PoC1CdGG?= =?iso-8859-1?q?J4iIzw97qPQQ01brRHnD5pURXOq2O9VCeWdtfBwwl24gSv9MsmQU06Y99aTf?= =?iso-8859-1?q?36hZNY08ZXmOsgRIhLHyg+Mof//W15ej1p5cgleWqRUeEWEoc4cuIEW/c+Y6?= =?iso-8859-1?q?tN2EBhd+aU/ecwfZ/bq+iiZsTUkxlZzKZVqFNkV5sQJUU/lLvJgNJGNvsNBU?= =?iso-8859-1?q?Uc5lSdZd8U2CA+FIPMJUjllLB1Sy8duAPybQKN3JlfhJHiYaWzhHMENpbHJF?= =?iso-8859-1?q?7SZtHPvSZ9IkmS2xxhUmYuup8Z3LpCYCRDv0O6uU34JsW+OPN0kPqv8cJhe+?= =?iso-8859-1?q?JG4Ez2Y+tWDDUt1gy47etFnVZ4z31ApQXh5C+gqQ+kELS/eJYM4SvwLyB1J8?= =?iso-8859-1?q?ErvV8HOGbfRFDmLPgP9zSmoaJ1PnBdh/EE4bDSA=3D=3D?= MIME-Version: 1.0 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: 2CbPCIj3miy2uu4mk3Y5v/shfmrRxjqRD+j5SEaN4rDij260Zyd/xd0TBitiQcLoyQJ0hj3kA/8X5AkAq55/fent/zunTjzz2lQlv68P9jdkddwdX9DgowKlAlzHa7e5NH5f2pPTye0ze0okW03AdLXO/zwASS5Sr1I+MAZcxaRbkZ3XSjfpJs1JYnX9h/E2fao5lkSvzOlLkmQhDeU7WvlBF8XEqI3q9JbF2+PUhU15Hwh0HAYiLYjvfe4/EoKdzeggjlzoLlX6OzjwTOAw09C2u6mdpDPHtXKhDb29+WNLm0Ur5J6Tk2muiSb8/JoDIbQAyUo9Wvnu1r5YlYFF2QoLmRMRsenmbLf1ZY40BMogmUtfLKDZbEfJI0q1qqn1G6lykTJAHETUKcIk1NlzYlvcg5tR68W6WHC0kHA7HLxP7nNOJWPXNa3AMFFE6uAlA+C/lY1ZUEGIcCdsnHl9cZl6Gbcu/cPQXkLWQ2iPEtJpkjWDP/L1tWqTm95fa7tucJTx8GBN2Gs5tdaYQVdjI22cE06WWbUBOHGRYEs15OcSMiINiHgdT+KYdwJiUCuCFMYWKmaL0rto8v/Z2QctqQ7/SUqjYOk4c0q1Z6f/3kzpI3twaVIVF8qbOe9Bh4UBeGzLRKXKZyeHMhwxtJAAI/I4E24ClxXkQZi+Eh6ZIJ3DMIPkzMgs/20/oafRwxr/7I/HuiyF6+HXQ5x2mTENoEU3ZenscecovubILj4/uSrA8NDKr0Fb4aeCp6Gld3irKvJMqjdkUXkmaMGuwTbywSCAHGUmWp6l3QHinjSZsRS3ROGbsTJR8+c1Qcdc/vgBlCaqYZ+gYHyfsGSzG/ATyTAhsDeTPhic8EE+ssRtxqycVczNFV2TF/Cl9Lh00fg7dGcNKN2FE410wTaO1hE0jw== 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: 26245deb-91fa-48ee-afb0-08daf8335381 X-MS-Exchange-CrossTenant-originalarrivaltime: 17 Jan 2023 02:34:14.3282 (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: ZXggObqOW2WzO+4Iz5JxkHCEh4UOySDsM0w0WZLU60zAtaLpiCOGR9qdbym3szdWp0J9oHoj7Tj2eYO/VHBxUQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH0PR10MB5356 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.219,Aquarius:18.0.923,Hydra:6.0.562,FMLib:17.11.122.1 definitions=2023-01-16_18,2023-01-13_02,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 phishscore=0 bulkscore=0 malwarescore=0 spamscore=0 mlxlogscore=999 adultscore=0 suspectscore=0 mlxscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2212070000 definitions=main-2301170017 X-Proofpoint-GUID: uoo32O3_Gbb0gbPpn2AuIwo7HWOcE107 X-Proofpoint-ORIG-GUID: uoo32O3_Gbb0gbPpn2AuIwo7HWOcE107 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?1755235507991388931?= X-GMAIL-MSGID: =?utf-8?q?1755235507991388931?= 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 364b1abd8ddf..02083b2cacfa 100644 --- a/mm/mmap.c +++ b/mm/mmap.c @@ -527,7 +527,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) { @@ -556,7 +556,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); @@ -581,8 +581,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); @@ -2596,7 +2595,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 Tue Jan 17 02:34:14 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: 44425 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:eb09:0:0:0:0:0 with SMTP id s9csp1519318wrn; Mon, 16 Jan 2023 18:37:14 -0800 (PST) X-Google-Smtp-Source: AMrXdXvM3q0diqFZb38PHI2mW3cwy02Bdiumt1hXEkRkv+YcrgU3TlKm/pW4xLu+4t05aM8cfy36 X-Received: by 2002:a17:906:4acc:b0:870:b53e:86b9 with SMTP id u12-20020a1709064acc00b00870b53e86b9mr5378557ejt.39.1673923034018; Mon, 16 Jan 2023 18:37:14 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1673923034; cv=pass; d=google.com; s=arc-20160816; b=h3Or7FhB/HFURPnu/wT/HJQiqeiV7W3//VXVBq/9jsTGjpy7dX6xO4ur8KfwIDtgWm WjRAB//t61lxLZHZMJqtMXa7AmLAXCN4kyiGiEyPqJ60JQ1ZYQB9Ev/Oq9USWOho2B31 4L1i0bds5//E38g0ZhNMQTNjN3gpldpqFh4umEHe5k9F3rZt47M3WYoBr7pOziObdS1+ sNcKduq+pWgN0JglRopqyWat7Vi82jT52O8W3+MaztxeZ9RltsNrldepSwYp8GzrIljS uwXzjKuSRGXVW2iRCaZVQ2tGuK66525T+iEwU4Xjh53SLQUgwWeeM9iy/xRFpnH3K/Rv HoMA== 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=kcVR8wcRzd7rqAneXAQMl2ph2Vw50Ksh3FmZ1KTj5NA=; b=XR3oEidOaYticygqPCDFNRUZGGxXJn7AQP8FjqKejY+GePA9ebktc40i4MfpQt57BO My83temK6M/NW+QsT1LcjG+zDo5EhtYMOTyanxnzKcbey0XWNcCOTJGbQfIPB5a9LyHo KQYsPZ/KWluiSGVA9F98KiASfhMYAmpjoLExzA+Id8kPg2uttDz3pLEojljJkHRsDE4K rVCmxENPTaZ1BEbP3H4xP+05EkanLOLj3oZVC5dZBLTUouZY95MEZ5Cgpm/wdxutF/kE yQMdG1BvODdxG9mwvtCvSkwImOu03kOGvsWov3BDdRc9UDUtW+rMoEdBoZKw6rjOAolF BVcA== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@oracle.com header.s=corp-2022-7-12 header.b=aku2XUUU; dkim=pass header.i=@oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=uHgMn3M9; 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 i9-20020a05640242c900b00485fa68b06csi45030528edc.354.2023.01.16.18.36.49; Mon, 16 Jan 2023 18:37: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=aku2XUUU; dkim=pass header.i=@oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=uHgMn3M9; 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 S235063AbjAQCfh (ORCPT + 99 others); Mon, 16 Jan 2023 21:35:37 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:35696 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235406AbjAQCex (ORCPT ); Mon, 16 Jan 2023 21:34:53 -0500 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 6A8E22A169 for ; Mon, 16 Jan 2023 18:34:28 -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 30H090kU000925; Tue, 17 Jan 2023 02:34:20 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=kcVR8wcRzd7rqAneXAQMl2ph2Vw50Ksh3FmZ1KTj5NA=; b=aku2XUUUD6fhwcMPP6BIC0asx7PnvnssdKwHmMt9jIR2Gb23n1od4csYoZEfhi+58Goa mtoXtbFZuq2xSE58cCiG+TfHzuESdRR+ju3vTEu+xTupEFhkxEmF+iUA2wZQ1ZbRMsTa Pd5PzDIcaRcZhdjqL23VN8OYwxNy6by8gzob6e0I8OgclHpFmetKkRO6W1B/K463PJoc 08yKc8cUVpytOu6Gwtv+Lqu6/7QRaxXNDXf6Sns/zPic8tDkJZuDZv0zjOTKYNhHXccN uS634JE5oMFD62RX/kKnOUwB7AuCL8WagYKVErLVxfBg3hJpaKpUk0g52cBCGqwLoS23 +g== Received: from phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta01.appoci.oracle.com [138.1.114.2]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3n3medbqbd-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 17 Jan 2023 02:34:20 +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 30GNXAUR020577; Tue, 17 Jan 2023 02:34:19 GMT Received: from nam11-co1-obe.outbound.protection.outlook.com (mail-co1nam11lp2176.outbound.protection.outlook.com [104.47.56.176]) by phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 3n4rq37hat-2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 17 Jan 2023 02:34:19 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ilDY53721N0oAJ+8kRM+rQ8daJJOkKtKvtxtkCIILzDVKm3fpP1+hC+D/bJr6ADRI5c37VOx14OHMSStsYoLCdYMecCM88K9UgaSADQ8t7LCqf1qouf5HdplCCs1E7kB7bSM1RmwxjaovcJLDEgfpOghbe6yGPrBaq9FaaudV0SdxyRsT2pRXjOL1+dY7+ceA2fe/postVb74BbEWF7RUpv3+EyODGzKKfPBqSQfV2Oz3k9wFlbhw3HhYWEXvdvGva4WE2ZeCGk4Ahv7fpNMjcOFZnIb59raSEUEegy98jvtGX4o4joYZtruQAnMwf3A+wvLDPzB9Jk7afH2cC7ccg== 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=kcVR8wcRzd7rqAneXAQMl2ph2Vw50Ksh3FmZ1KTj5NA=; b=TQpEERqjMB4JubTWGiMXmr12XKHLk9+5zxcu5EejopCGyAcRDRNlauxjewKgT1tQjeXK/AOdZdYWEmPrVaciKwujwlHVzJJb/Xe1Pxs7fToMaTIPD2bMsrsT/NH0/I1VdUuJ5I1s/7pw7HdMw7L1qVqdbQo5K+NTVvJYVEThctOcmB8ne5YJrHwDsvKuEJO3566VjNzxx9EId7belFJUd5ZAlbS1uSd9cIbgVR6C3mY3D+FlN63i9OCvz6MMUmPQQW1ZPDCGAkkjgjftaTffS/Hn+4L9x9es86kRQYQLHUCAlLYoSJ5MN8TF/AAn4zQmXLYbpuu51WmqdtE7abJDow== 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=kcVR8wcRzd7rqAneXAQMl2ph2Vw50Ksh3FmZ1KTj5NA=; b=uHgMn3M9t29HyZO59H8KA1dberR7SJWo+UZqgpBh1+029eDgChARuFrfePzXgzCgj3vYTjbaON1AiXol33MoitAT+wxuF5LC7lkYElWATvEA9aEIJ/skbPUlhN1CpSv0WYXfMKuTJXTl3166WBcwVNwVzcLcF+Q8LBDZJrcgXSc= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by CH0PR10MB5356.namprd10.prod.outlook.com (2603:10b6:610:c3::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6002.12; Tue, 17 Jan 2023 02:34:15 +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.6002.012; Tue, 17 Jan 2023 02:34:15 +0000 From: Liam Howlett To: "linux-mm@kvack.org" , "linux-kernel@vger.kernel.org" , Andrew Morton , "maple-tree@lists.infradead.org" CC: Liam Howlett , Liam Howlett Subject: [PATCH v3 14/48] mm: Add temporary vma iterator versions of vma_merge(), split_vma(), and __split_vma() Thread-Topic: [PATCH v3 14/48] mm: Add temporary vma iterator versions of vma_merge(), split_vma(), and __split_vma() Thread-Index: AQHZKhwwxX9ewtOVqUOnMhRjb4uIEA== Date: Tue, 17 Jan 2023 02:34:14 +0000 Message-ID: <20230117023335.1690727-15-Liam.Howlett@oracle.com> References: <20230117023335.1690727-1-Liam.Howlett@oracle.com> In-Reply-To: <20230117023335.1690727-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_|CH0PR10MB5356:EE_ x-ms-office365-filtering-correlation-id: 0a2c0c48-2842-4dc0-abc0-08daf83353bf x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: EBrJCP69SsxX5CJ0YeZJG/Knu+w7fQzJtOtFCB4D2LBmFTYwTGnD7oG8NfJisYbz5ZlZ6EHKaBqlqpPw4Fqeze9CCUq5lJgHthSdaitF31OL4/h/LMbAndCDP7ZztBEL0V28vrntLawFgM0oLiiepsmNMVi1vGkEADiOTdTS1k4tYsOKfYwqmmjgDSEeECsmY7NiynnVzCxrpc/FTzUZkKs3LTIqk1RuVyk/jiJ0IrTkD1TOKpbLGBFFt/XtOFB/z9KMiny5Y2+TTQjl6Tcwh2MQFKtnur/IANhObQE4XPwSiVDx/mICg6KZcIRY4VlW2PTsFZ8SNRb60r+SlCVYet3JmeAbq5rGptRIbyUsiT3Wnw53f5Eke1XNRSHOhfdAgyher3+cDxvOhJxKEgKiN2wnmR/oCI27u/T+fBzNiKCFVIT8eBnxcWrw1OuMO74E5MpN8cEmPC6MnhDNCCUvE3ZGFKzLh2Q33bPWCC1hp34yclBmIAs+aZGCrLHInPTcGdo4uwhN5LmtwPfarOUOk4zpjAnTRfe7b8icOYSwI7ov3fDe0KkTREeq+IGb5Ur8CJsdgHm2pJAFfc/yuHcLLVZua3xUuGBNcYX3sc4CPFMJcvkxl+tre6qMniqxSb6l18Aab7xv7xVTBr3jFQT3EicyHfplhKKSMg9cLGJimrp6R2E8fbrLqk0k5zsLE3sD3j2khLUuNEVwmoikFfqrHQ== 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)(376002)(346002)(39860400002)(136003)(451199015)(36756003)(38070700005)(5660300002)(8676002)(44832011)(8936002)(4326008)(76116006)(66946007)(64756008)(66556008)(66476007)(66446008)(2906002)(83380400001)(38100700002)(122000001)(478600001)(54906003)(71200400001)(316002)(107886003)(110136005)(6486002)(86362001)(1076003)(41300700001)(91956017)(2616005)(6512007)(186003)(26005)(6506007);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?q?Pmo77gmQlUQGomf5q4+Ht3I?= =?iso-8859-1?q?Ebl1nidTcK7x8+L2xBUULbV2VKWEjWjsRxDmFcGKYu93oXIfQe0BbyLV71oK?= =?iso-8859-1?q?Jwj7RD62138Y47BhO7kpZkuq2hRq2mgFhm6+BJtSLrFjZDC3fIUU1cXHrUnX?= =?iso-8859-1?q?vD3M7nH700/SBz7ygtdR5PUe0NgjLDQE5/KEVAk4qz7uGEs3kgyJ4C1NVDf0?= =?iso-8859-1?q?k/1qvGuZccVr4UE2prWMNzjgu+f+fUyDiGJ27eJpvBRTPqFrg5y+vaDptMuR?= =?iso-8859-1?q?vFZWpgHzMzRrrBW4jWIxDWX/cj1qGb8AgKDVz+4UEJEaBFVy0JqL6RDIh0pa?= =?iso-8859-1?q?ZSpVXrdWA+JJeH9hEXyZ8mKVNUa1vW+yOar6Ff18YqVrtQ+hlISbGPkD7i8j?= =?iso-8859-1?q?emIt7KXd6Xe5Ov9oLvKJugpEyymJ1/cEqu5jc7O1jzgGL76DDMDQzNlbsFPj?= =?iso-8859-1?q?FyDuIQa2D/SIFSJm1qI6zWQzVUhK0B0ebvS8Co1OgGpFy6+9VmRDuexKNiXx?= =?iso-8859-1?q?XA7QIWITKK31LnrOzACY8ZPq+68FO1e6KQtdMtlrx7ioJlAq2XYHedI/IkhA?= =?iso-8859-1?q?GBRqeXTePVLNyOh2Nti9Z5UJOc2zj81i+nSa1abFuTel5adQU84of0UtTAm4?= =?iso-8859-1?q?8oLwWyvQKnAu1EWzfbQJkJeEqZNK+kCv6T9y09XULJrZe/PE/y/g9KExclLh?= =?iso-8859-1?q?P/xBYJ7VkTkQ1k7Mh2pPuz6UipVL7wfeFGJQWvhl298IJIzPgDlR32ADyaaJ?= =?iso-8859-1?q?85Uh0x3Vhuxi+LC+iwpV0iH+xfHTM0BPoWHgPZtfhfGDZt1W9puRgIN68/yZ?= =?iso-8859-1?q?5gTZf/Eg6UkmAutVxHs0vPZ3K/MAMk+pB2p3RCggzyO20qanT4E+PXvnfkOw?= =?iso-8859-1?q?LxYctdvJ8UV2qtP7tOX0AGMzNlVw75G/rkOh+CZjEoUJ5qTevzM0GKSRu3eL?= =?iso-8859-1?q?LWoiEOYP1+6Y8DMoSJ5A0+pLJImpC39w0Kz+p6kuZxB+xUihfPHb73ZG/sV6?= =?iso-8859-1?q?UM6zuf/OBXoqx0z5DebSueBArIR0PC6pyQGtDmS86DIovlNsGJalhL04wldh?= =?iso-8859-1?q?Jt9CDY8fFnXxEclClFCZGVBuViRrda/y7IJ3M62GZt03B7j4aEixhdd2Fct1?= =?iso-8859-1?q?ksBkwm4bl+Jpwz13X6cBf+9nmp2zOrorHtZVrOyrPrAi9eF32ZdZhd3/D4Hf?= =?iso-8859-1?q?0xveQ5POvvESF/dkyf4b1nk0k+kaNL9f+nt15PC9csHNahIF6BMGKDZgbuCw?= =?iso-8859-1?q?uFXDlDe2KloEzspNWmWKbT24x0dOP7cGUkS5VU9wjZJYBnfgj9NjKvO7ccHP?= =?iso-8859-1?q?6zlh9TPXsfcaNYgcxFRIHGR27msp1egc5zu6vDvjPFh4UfjHkDOvmeEvrZLn?= =?iso-8859-1?q?CNNLQelshB5RDJmxsQKo5uSJgQDLVhSeAFEjKQpzEzDYLfgzjXV2zZ8nb5rC?= =?iso-8859-1?q?r7G/y/zs6CKJlmGPP1qOOEuCjns6c6FPm2ENS+ae86OwwTA+pno9IgWfx+uu?= =?iso-8859-1?q?Mu5D9f8kZblljxmbRmfji6Oy3nv/lo0aLmoiHWAn80tL/J5r1KYNS838ulwD?= =?iso-8859-1?q?ICgdkzPHLloWXKvaNdB8AU8uplVJL8JFZVdGZY1Q2YA7MrEmg5+48Cp1K177?= =?iso-8859-1?q?bn2pBrHfS8w/m2EZ5QCtA9IGjLLegaRA6KXle+A=3D=3D?= MIME-Version: 1.0 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: fiBQz+JRTKoedRtZ5v/nEpH1X+bUCM+uiBi4bMn1YXxiRL46yvvDOf2Log4MVDlyipFHcmCEIq4qJUom0N/XG2r0fDfxAFlR7bdxOQ1NFIJJ3/SOtKwyXFKfN9E0TnpChAFdL3iVCxkEgtJEB85RrOPTvSt183YpbCRxiRzDTAPHgipP48ODHCMSLJL9MTpIks/h/ekmrtQQngt5RLmVojQf1ze9P0MkhcFJ98yzjLTRsNUGUG3sdvfq7xfjwCnAHuBJrW/ZVHe4rRDSmUrDBJwaMNV2pvIjs6ckXSSVqRXBq3wWtS8v6gSAQ+ikmG0uUd+HSGf654JasLcCfElhCBaHWsS5tmtNG6Jn8v1tIhszHMWuhwW/GLfHVIwvnUSFRLy+UO4j203Ap5MrJIOYVQb9445F9Si5BXMZyNSnSjDJkdGFzYS7dRTpVKoB7yHtxWe50RwyQlEfEsYZPAxyN0AH67z8VwxePyyhrOE9+awYKRN67Dvm4gZoEJTui0v0s3071sJ77e7UFdiO2QH72otHQ/T1DTjfNatt6GTaBW8aGTEPkO50mhekvpWzJ94FPnWXzMwmTawaUd4+UuPHI7XGvia3yqD6QSszZAKVMAXn0BdOML/bKxnfvUumFLju30wTA8IC7m6i5a37deKpi4NjyAIcXb6FlFLu2pWzbFUgBI0aF0LOQux4lRve5C7OJwvetywiZie+j5eB1q/pIBJ9Fd5jrWbjTBZUlfbtCY2T/fOM6kaK5IAHYdmtsjJzAhFVbCQ2pMU/1udEz1kmlhANK4wiAkGvXIbqye0EvfLy46PW0NgAbs8UCRfjsJhcPdUpLQyfAM6wc1D2FbdZgtuLpQfJTSkE9mLa5wgpVBhUG1vGAWKvc3/PiLQftg6eVo8+dBr0+f8eUQi6whXRpA== 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: 0a2c0c48-2842-4dc0-abc0-08daf83353bf X-MS-Exchange-CrossTenant-originalarrivaltime: 17 Jan 2023 02:34:14.6250 (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: GQmoyQKrsrnMoBbB2odNQUOr37IaHb5z14UTF4R5HzNfUFcvZx4k7rBfqHb4uPUdQgH9n3z5hFtQh0G7pfqTEg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH0PR10MB5356 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.219,Aquarius:18.0.923,Hydra:6.0.562,FMLib:17.11.122.1 definitions=2023-01-16_18,2023-01-13_02,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 phishscore=0 bulkscore=0 malwarescore=0 spamscore=0 mlxlogscore=999 adultscore=0 suspectscore=0 mlxscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2212070000 definitions=main-2301170017 X-Proofpoint-ORIG-GUID: dabg_I2fGpyz46I0xwjlc9-vZPsr1YET X-Proofpoint-GUID: dabg_I2fGpyz46I0xwjlc9-vZPsr1YET 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?1755235519241128732?= X-GMAIL-MSGID: =?utf-8?q?1755235519241128732?= 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, 54 insertions(+), 1 deletion(-) diff --git a/include/linux/mm.h b/include/linux/mm.h index 126f94b6f434..14e3698fcbe7 100644 --- a/include/linux/mm.h +++ b/include/linux/mm.h @@ -2834,11 +2834,20 @@ 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); + 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 02083b2cacfa..1fd6962f440a 100644 --- a/mm/mmap.c +++ b/mm/mmap.c @@ -1091,6 +1091,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. @@ -2272,6 +2291,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 @@ -2286,6 +2317,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 Tue Jan 17 02:34:14 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: 44428 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:eb09:0:0:0:0:0 with SMTP id s9csp1519391wrn; Mon, 16 Jan 2023 18:37:28 -0800 (PST) X-Google-Smtp-Source: AMrXdXsCeacKavNnsz3NGCqZ/jnnM0jWlUMFCV2e3d/ToWGGwE02xj+kF+BsockVJVagelulmvET X-Received: by 2002:a05:6402:5305:b0:499:8849:5fb6 with SMTP id eo5-20020a056402530500b0049988495fb6mr1431947edb.30.1673923048387; Mon, 16 Jan 2023 18:37:28 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1673923048; cv=pass; d=google.com; s=arc-20160816; b=iY0ptTKvQpWXBMZrYKgMGFn1MhSvmGsc/1Oj2bd02frL+oAdepBMB7Ibg3V7Q2RefL oBpwXvRt3ivkY/AQzTxmfh8vJcq6qKTMHgoM1eh3LDnQv7I0btRMQ4P9shvX7oqSmsbT pv1/5ckn92PvSmQrJ1hDgW83hQBNVfjj8IWOzERaKv5g3Sw2IOTES3HNABbUvahQQExY gdh0eA0akBX4cyOLpZPQBD9a8U/PjoeEDbd6nI6N80KZJpWV+i2Qk/7UYOeGM6qguRra zVw/6AGJvrqOGv9M0tJ0AGHpTgx2iEGahX1lhaVfHTiT2mFvM+ZinHD5iKdSRAGvHZjv a+aw== 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=HLEy9sDgdb714HvGX4yXiv6z+1xt0oBUBxYbpQICDxOrK0qIYQdcgEy9YpsxVAtjRZ PavsAXIfSjSVb/Eq3Nh63UImOwKjDYSHKOAA3/oXgz4Ei/7L9KWjH2JyU76jYSx+5u8V WfNYJvMumJN/NxrhFZNAF+0z9ba71FR8fx2aLjyWySv9pg+QnC1iLrc2bCCBSxb7s9W7 0zbcUZtIQfUxqEnvVixgqL/yeIhAsB7RXZ0n1dyl76sTrGPPjUD6IGkg27olpI9F3Hh7 MnZizb5/boUU9Be94JDXsvHfptxqrSm3UAABFBKQ+QESPdA94TU5h3IrJKMD/+3x8/PV EmIw== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@oracle.com header.s=corp-2022-7-12 header.b=JAcRayxL; dkim=pass header.i=@oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=Hkz42slX; 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 oz33-20020a1709077da100b0085738d10518si21502677ejc.449.2023.01.16.18.37.03; Mon, 16 Jan 2023 18:37: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=JAcRayxL; dkim=pass header.i=@oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=Hkz42slX; 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 S235534AbjAQCfs (ORCPT + 99 others); Mon, 16 Jan 2023 21:35:48 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:34714 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235419AbjAQCfC (ORCPT ); Mon, 16 Jan 2023 21:35:02 -0500 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 112742B091 for ; Mon, 16 Jan 2023 18:34:30 -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 30H093bB023167; Tue, 17 Jan 2023 02:34:21 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : references : in-reply-to : content-type : content-transfer-encoding : mime-version; s=corp-2022-7-12; bh=Cmac1MFdopFe4FQG1oWkYqzoTR0Iob3h5RL8j18i6lM=; b=JAcRayxLxZ/wsWX/QpuqV17sAJ6XNYbxy4PKFy5OhSbiNTfP0EiRH95KFtojmmh0fRjR ZrQOY5RzJK/nG0OjwfSGwoOwklBb9T5B+6hQTjBtnUTyQBDTrsry+BuE63iO9yqONgju SRPUWmY1RYkiy4XTC429g+KAJg/hxaqLFGMg1VkmsZ/tVvwDHd+L/Y2gYPAdJr/pV/YK /O7wXA7USITz74RXt314CCFeRVQltSd+kQ+gPuHEVJQANCbO60Ie4/y9TzOKf7qtCSKm 73Z3wcIbgFfz1pSyX7fsWCy349PE/TjdDiUkQLVhcKIn7gLH/AdxABVWE2NhvpBArGOV 8w== Received: from phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta01.appoci.oracle.com [138.1.114.2]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3n3jtukq25-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 17 Jan 2023 02:34:21 +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 30GNor96020620; Tue, 17 Jan 2023 02:34:20 GMT Received: from nam10-bn7-obe.outbound.protection.outlook.com (mail-bn7nam10lp2108.outbound.protection.outlook.com [104.47.70.108]) by phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 3n4rq37hb5-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 17 Jan 2023 02:34:20 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=X1IOGgbSMeS0ssoILXNFmC4KlwN77M/RjIy2wkKnFk9/UAgieFgvrzQOnAO/FemszX0aIypmMErsOlLE7clzlB+cXWMJGt41TPdeqIorEuM9NcNRJ57s61UviCBBIwJPjBQgUAjI44KzIQqG59In02nlJHWvxIzZwqp54rSx81uL+ZtgZyqmNLNMRfcpTpQiRUfLHvADaRgmZbVUzyt0s2PUbpyiNuscEq3KorTGTPR3hjN448PJERN3qrvbSR8sUK8OjXSrElnl0VkoZqyMZfBnwLRaFkaqd4QpJnnGmjuqoGklhMMEvt6pIR6C9j/rvq0CetB2Fm8SwwVUS4SjWQ== 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=fncDp+LPj7IOLTH0ssZOGwFAF0CEokZac2rospZ/20FkF89u+GPM5yfTADpwZ81FC+pRsKS11KrSYnbIFl8fvUhSH74tXLKlYmlyjIEKZUAE1iU/RIhchBg2ZQtVnIqmKl9CAO/oYwybueof770ZPL8yeFaHC/W/GG7GX1GSwcku+jdUVDqBkjqfkmtBWp/R6XwjGEXfJJoa7+8KXuUa5aGGwMfwO10VfTyAhAnsTgMwvjgNm7eOp6lDcPmdozJ+h4WMxkbXV8apj8aCZ24evOXhSVeOO2/nS/a8Ys4LGb679a2PwG3yjQfdWvs4oLBQ1kHHP/w12WIjegBZBa7xKg== 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=Hkz42slXHDVUdW24a3C+WOhYLARbieU4omFxGYbR7rpNoI22zV2eyMQnswUo2szkIReMYeyRgWJlsckhaZQHXbd0cjdVA0liyjPx7yedlbIvIKpGjQSgoBaDHd48JIMfocTx5hLhDXJVDZ5XXQqSTBna5WHYv47taOPvM5eLH9o= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by CH0PR10MB5356.namprd10.prod.outlook.com (2603:10b6:610:c3::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6002.12; Tue, 17 Jan 2023 02:34:16 +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.6002.012; Tue, 17 Jan 2023 02:34:16 +0000 From: Liam Howlett To: "linux-mm@kvack.org" , "linux-kernel@vger.kernel.org" , Andrew Morton , "maple-tree@lists.infradead.org" CC: Liam Howlett , Liam Howlett Subject: [PATCH v3 15/48] ipc/shm: Use the vma iterator for munmap calls Thread-Topic: [PATCH v3 15/48] ipc/shm: Use the vma iterator for munmap calls Thread-Index: AQHZKhwwDJZwzI/fykO13z9qFmrIRg== Date: Tue, 17 Jan 2023 02:34:14 +0000 Message-ID: <20230117023335.1690727-16-Liam.Howlett@oracle.com> References: <20230117023335.1690727-1-Liam.Howlett@oracle.com> In-Reply-To: <20230117023335.1690727-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_|CH0PR10MB5356:EE_ x-ms-office365-filtering-correlation-id: 1de0690f-3786-4753-3108-08daf8335407 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: mRipqpfRzXYN50faoQg1d8N3BGWWxcPBRyCYTexNzODW2xBrMDIP5iQrIa8PDLY19XPQW1w2hoTHpIK0wdFNuVnMus9+fIQ9MfP8rJVZSXdx2xzgm8QbOn/6QaPstsxbrsdYxQBIFirvNoXozpaiNtPc90KRYqkzp3HTpp1ELv7DxLEWmvnB+u5zGUFo6xe2DOK7HsNy17KEFdq2GYBCvOfiSQwmKpmWJA1hxdOi/glTSA1Y74Xa129S9Yt9pededGvt4C1ElK4FYLLSG617nUDLUb+unZGmZupL2Ta+XzI6IwxTTsKBKOVknKHqTqF1vrIzazSOG++c/JKXZX44QvDGaKcJ22ZzkNv/UGPWxvoZ4eCjITjqjAJ+ZbKq2MSHwpDZzi+dtvoJn60MUUUJejVfidNtsYnbu37eWp8TjdGFjMMYbp46VQSvvA6RUm/woHjhQ3AH6GUA+OhLkj0o1m8a/Y1t/EqnFDXffTMe3DhBmBzeUMJozuBWIs+1UUrRLMh4idWu3aWSZe2dIGXJtzVjxWFww80zeDYFYMS0keHco6Kgdoz+JZwIbhdTJvH1J1UEMUng1WMH3bPfKQJPuXxVcFn9/7bsTBXBtAm3pn2E8DssMrcoP5BzXkjAa29GotAdOWmF3Z9rWqRJr80yvCbxQsZ/bF9wqdKBbiSFDv+GJizTEhs23qD6zPdupOHV1+IcwG3HhiyPD8DmWvrx2A== 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)(376002)(346002)(39860400002)(136003)(451199015)(36756003)(38070700005)(5660300002)(8676002)(44832011)(8936002)(4326008)(76116006)(66946007)(64756008)(66556008)(66476007)(66446008)(2906002)(83380400001)(38100700002)(122000001)(478600001)(54906003)(71200400001)(316002)(107886003)(110136005)(6486002)(86362001)(1076003)(41300700001)(91956017)(2616005)(6512007)(186003)(26005)(6506007);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?q?MgvuotZzmfhdHDUydZUIZvd?= =?iso-8859-1?q?Z9jjwdfhoIWjQGKaRXli5mW9GKQDKwtlsBivz9z2bKfVbwRBalYNRtfW5nMg?= =?iso-8859-1?q?fd3oWqRh7tCPvBm0N6Ne1xCbZ0Ez/TJ4jSKKizccmRuF8zzDqHv6NTifqQ+j?= =?iso-8859-1?q?On75jicS3PU/i+OzosIgHJUCh3kxzXybZcwWdvxGn0zMcScOMwGwm3RadRK2?= =?iso-8859-1?q?Atmd+H3/0QLkDQMoPItvR+O2RYoh5KVC0EzVjPybck7uVcaqEmiFhfUe2wbu?= =?iso-8859-1?q?mQe12olUkB7HMPW1AkHBEjavaVeMIpmbIpdK2dBfcvop0jYUIqsHA+vchvPO?= =?iso-8859-1?q?8i8sRjIZxE8OVwmrZh9VEzUmgk2oGMdP/HOXHDV/XseD3d/jIz80MLwk2PYe?= =?iso-8859-1?q?plJkYBhcKd4DjBTs0XwcBp44/TW0LallEqY/UPq8/IRAmGWSCezUT1oI4VOp?= =?iso-8859-1?q?F+cMdS67+33FlzaJm5ra2uSQgMjC2B5RqdNhrPozICl6kHInBqINdk95G0ad?= =?iso-8859-1?q?WtfcEj6gsn5FvVyMMhuywIPI6xhUTF0NHcsk8B5AbrMZQ66zVW9YOlNF+0BF?= =?iso-8859-1?q?RLE+JyWTCNfDde2h7FaoWLtAr8j81oVKeoqpgy/iUR6FqYmlVW10KLfJQzZc?= =?iso-8859-1?q?YppYBjgTzxzi1f+d+GvzTCh5zcxdUjMeFvvJ0x3GpvoXZ2DJpuSGV7JoSeKj?= =?iso-8859-1?q?YA5QwwKfSWLSKznF/IX1KuxHUBIzOJfF3Q/671i0rxAHoTlfZgzFLcX/ekUZ?= =?iso-8859-1?q?pUQ8cuvmfiz6J9wFZ0LsaoimttevnVuj53YJWgx0IuIHNBgFwcBkfNGRBfr8?= =?iso-8859-1?q?fN/rBlGtpUkUjPkRdvdc2qEtX4/q2ABKYgTnOmCjTcraMcNUeoUzGhQTvPHZ?= =?iso-8859-1?q?in/w3PeNyWoa619+2bJMq0WGVdq2pOYoHLYQE2MXDQnpV3tQzxqWOlLokJvg?= =?iso-8859-1?q?uaRVbZj2/cpHMCIoz7Kx300tVv7a87h4Jbh9xlok6SscNXJSVWqrNeBb3nnU?= =?iso-8859-1?q?u1AfOUDXXoNEOANH+DIk7z+9kg//7oAd7rd3fro4ecFwDDGxWOAcTkerkMbk?= =?iso-8859-1?q?isUWedAPYJ/UV1gfsJ8F6P1MGE9p4N5KG7bYmGkiY60k8l/znt0LgA0a1quF?= =?iso-8859-1?q?1l1JnLNU0spg+QXnVHrJUKXXSL5OpCtXM9me+vUNrvCH09VqkVnVZWpqNOEZ?= =?iso-8859-1?q?B65yHJXydQi6sqDgWJVrox3/nG1SyJh/j/Kv4d280EcIr5JFP/TPoBKd2oPh?= =?iso-8859-1?q?+FLRw5Opjx8Df2ndCmngmxF2p425r5NMk/hQQaOKZ8MrwlZn342dMeuccsC5?= =?iso-8859-1?q?Xyr/H6njgOryr4bRlv5Di1BmI4WyBR+CWdpndW6udUq15OwbnnJLPYwv/RVR?= =?iso-8859-1?q?nk3HMyYAu6d1cMlkRb4GDu4bJIfU0IYe5HSKrh686SQum/l9wSUqvx6Fz2y4?= =?iso-8859-1?q?dapQ96lEulNuXUKeWHw4LVgudujzYcNMoeN/d1lIm04uwPyt1IttMCmzXsE/?= =?iso-8859-1?q?EudPd7wcjYsi/YiOircz14Cs4W/9dUyX2LvZc8n8WQUv4gMIBO4MFZLazy+l?= =?iso-8859-1?q?g0kmJzgkQN0eLjO8kz5bUCmr9RLjBLhPJzjhcvA2icuvOzMWYn0Bl/0raX0a?= =?iso-8859-1?q?HqSele2yO4leU5y5UzHJzbr0BpgAAZMyAzm7jfw=3D=3D?= MIME-Version: 1.0 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: PfUDXBhXXZcDMmhjgd1bmOfGEJ51jg3qfSOdkXn0E3WH9mpJI/FgYA/3uzJmwr+w3UweAAJyF+XNjbYmwRr1KHN+cxOGvfv5A3CkE2J6K5BwujkBN20BqqzxjN+CicbIhPHpsjNOH+dBVf17wbJregyTp07gDfi76M/sYjq0c7mWHDQCJQn+Lm6WTFcZXTlfw3jaS5KQZutYM5tajVGunUCLgQZwhP/bw7NeoigkED8YzWWyLbouesZE8mpEyi2AEVAuRHhnFsJl22kfXZtU4pZ7v6VVeMBaV4yGUTD/yrwEsQzZ4NBMtyE4Cg2JzhCuVLOfLp0w6iaR9T8EcQife+Ibhn1rSnEy+3nx4wusBiHdQHqI0VVskiA3od6TfNbKv9xDE735wNkT3OAEcvLpLsblhBBPdYMXrFYfVahXLFbLqSlYnX/mgwekCGM1GzFTzRbVeNDGJjzIlH1tTReJm50cCAgtbhDG2BHANRftH0+6jDKmhG91fFUBzW4qrqxIXNDIy/+a3+HjojshCb4HParoymdlWRtjXWj1rDEqn6JnC8JS0FXiR4QyKIizDpzFJb4wxEyeOz92y0V2xtNX5LQfezJiJsFOAASB8XF55GbyO0Sz0eMJdLPR7Pxh/3ax2ZbCmetf6UNPCAjM+NQIuwtLUkD0tDy/ADcn0ksG2j7gicaEtg6OEYNes93jN0DWoI28X/ycRISVwU3njXlsbrw+GR26kWqUd7rfE8u5n1LakwqS1eLg9IRiimdddoPB+LFf5ffj3Gi3vy00LUre7O5/b4UGGRYin6YpGAtpwU5YUAOR9BW4Ioxt5pYCTrXeYKyn2pt+vFklmqm2pPylOOvAssKvDRnZaZ1VSwNLXszPPruBf55v05XIVL1Dx70XOeTweSk6dS0km1wkoJj/zQ== 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: 1de0690f-3786-4753-3108-08daf8335407 X-MS-Exchange-CrossTenant-originalarrivaltime: 17 Jan 2023 02:34:14.9062 (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: Erv3XpLtV65737wcmpUnkUmxIf1gKRI14D2y247TdzpqGyACmy0jd+ueGxux4a1slw6Y1OHPyolqAHo0zKbMbA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH0PR10MB5356 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.219,Aquarius:18.0.923,Hydra:6.0.562,FMLib:17.11.122.1 definitions=2023-01-16_18,2023-01-13_02,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 phishscore=0 bulkscore=0 malwarescore=0 spamscore=0 mlxlogscore=999 adultscore=0 suspectscore=0 mlxscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2212070000 definitions=main-2301170017 X-Proofpoint-GUID: tYjrD7L_DhGEphl8Brb-RImUZXj-Ubwp X-Proofpoint-ORIG-GUID: tYjrD7L_DhGEphl8Brb-RImUZXj-Ubwp 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?1755235534170703624?= X-GMAIL-MSGID: =?utf-8?q?1755235534170703624?= 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 Tue Jan 17 02:34:15 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: 44431 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:eb09:0:0:0:0:0 with SMTP id s9csp1519460wrn; Mon, 16 Jan 2023 18:37:41 -0800 (PST) X-Google-Smtp-Source: AMrXdXvZz9qSxm5a98jnRSxdLDHZWzOZuQBuNQObMQTXhPXPSC7SvAUoJb+wmyilQgXKGAItNtxZ X-Received: by 2002:a17:906:231a:b0:7fd:eb9e:6fd5 with SMTP id l26-20020a170906231a00b007fdeb9e6fd5mr1085465eja.45.1673923061186; Mon, 16 Jan 2023 18:37:41 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1673923061; cv=pass; d=google.com; s=arc-20160816; b=LWczLGPQtWJWxjh35pRLgujB9/T4Gvg+MMRW5eFT32HGF5extgFVWVkYtzRNJNvJKM 9ZDTit2cgt3r/QRlfiYwhPgraUjVcSQkGF2aEYuzY1cJIutFYpoWZGgqMLQqjWpTIT87 mOyw9VcULHvObCswzYrHGUMA5+04WZVYReGw+JRjfv59nT0/szLERoNOo7Y77LZYkbKd BXhkVaMxy4p7nnODO07OVJaIMY7k853yk3vd7ADMPTRlH31EkWcekpQK0GazXIWmeWoR hUfGZle2k2YP82NZU48jOXNMcAHK/z4CxxPWUuLzS4sX1Xu/GYqg/cTs1a0jh7nZTOMa G6/Q== 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=zQ5XjtvJO+1YkocW/18NhwSq/RqvPYsN72u+sviozfE=; b=Gh3Q/dznmSPc47LUcR1UIqRuI09GOTB6typE9nZUx5xsib4eubM0vn7MzI9zWwIYkh yhh+hHAI2ACn5DEJFFZ13DS72hNwXK2oXtrrG7ZqSPM4LGgDnjPgn06afsjOVs68YP0G OO031U5XscdiJPIDeUC6GZp36UFxJtkLdr+GaiD667IdWNYtmklzCETixQ+ntcoD/QIx 9SH3HYKgbWS0gDCuuD6GtznFhPWkkipRRj3h+EJvGklK/OuDC7x1shsi1Xcr6ESq03D+ p5P9KBwwjbmks5dE0evHtsl/ABCnWn4YDUKpZV+hnG6JWu1ChRpJ04xnFCjuhX+f02zF qsrA== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@oracle.com header.s=corp-2022-7-12 header.b=obSmo+Wo; dkim=pass header.i=@oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=Nu005uKL; 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 wy10-20020a170906fe0a00b0084d34979425si8790601ejb.324.2023.01.16.18.37.18; Mon, 16 Jan 2023 18:37: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=obSmo+Wo; dkim=pass header.i=@oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=Nu005uKL; 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 S235548AbjAQCgA (ORCPT + 99 others); Mon, 16 Jan 2023 21:36:00 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:35856 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235425AbjAQCfD (ORCPT ); Mon, 16 Jan 2023 21:35:03 -0500 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 92C422B0A3 for ; Mon, 16 Jan 2023 18:34:30 -0800 (PST) Received: from pps.filterd (m0246617.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 30H09hYd031093; Tue, 17 Jan 2023 02:34:21 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : references : in-reply-to : content-type : content-transfer-encoding : mime-version; s=corp-2022-7-12; bh=zQ5XjtvJO+1YkocW/18NhwSq/RqvPYsN72u+sviozfE=; b=obSmo+WoIQH/4vz9anruROYJoSu3xRr3FeLVhyJlBztORMV5yivW3ohn4JwPyO52uUrM RNbpEAbzWp/QHPNOvJrUCQuVuTtXpzetSV4J+97fRH2ChhBTQMYrmbhu7M/a7kSepo5f 57PQSBSF/So9Bu7bdHkAVsiDIVt+IGFKUvve14uZukd/XNbCbnWbfcsxzaIcm83VbPkR t3J9PP7BSq3PCIPcRgdI1jMvHRaYO99YHtqeuRb9K8YCLjzekOC2dfpO2cuSpJ0LpoBE VmY0qG0nW/T3FZ+BGCtn641bjKR8eqtk1zBBYtWS35pei9vHmcasLfqKaI07O0zEGI5z pg== Received: from phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta01.appoci.oracle.com [138.1.114.2]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3n3mxt3phv-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 17 Jan 2023 02:34:20 +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 30GNXAUT020577; Tue, 17 Jan 2023 02:34:20 GMT Received: from nam11-co1-obe.outbound.protection.outlook.com (mail-co1nam11lp2176.outbound.protection.outlook.com [104.47.56.176]) by phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 3n4rq37hat-4 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 17 Jan 2023 02:34:20 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=oRvzHC6aBpsPE7pVCYQQ7NWHTldIrJheynxF0TY6KO1NY4KVXDqEdDj7U+05cZc/16nyb1D7CEeaiYcR5gnTZIFN8BQB+f6f/BO+7kxP3ZPGUZvGcSvfN7BYTRrFG0SOebUO+YjC9JhrzNMfoNJL0zHP9C8fIWt57tSlZb1NmXx9II9QIB5xyq5eUK12UQUVgO+isLu2IlUQYbmzd5gC8suW4Yw1GTXmJ3B82E2g8m+QLCDWOiGhW9ELvg/yaGSmhdXnF4dC9M4pXuy73y0VPcGljnxcw83OLkseTKbV77JO6OltxTaXQAt327hQ3L9SRGdO6ZuG5SRnaTz2Tu+MoQ== 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=zQ5XjtvJO+1YkocW/18NhwSq/RqvPYsN72u+sviozfE=; b=LZP7DgKLOxPP6g859x5ciLiaPVeiwSk23hiQk6Px6GGcwAjsy/4uOMbzyzukTyUMvo1rVziA4hZqzBpKKds8fuXrutvvEAr/No2sPFRPqDZY3esR9GubFmgFO5kcaT9WRVyG70lL4UW6LllDKaQDskb4u7dG7TI7C62CVpWMfNFgvtypL8QeKg83yfQGME0lc8q4b+ci4v9DYSq+eB/bLXD4Yt7oZrDX4utDPSVPUjFbC0vfqPCjMfVR17E1ZUlggjYaKDYAc5mPfYHi26iRupSBvO1wzt9cXKSby7GThuBJs8BUfyvBrd4BDrRQOUm5ICV6bg7JKdCcnInaizpauA== 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=zQ5XjtvJO+1YkocW/18NhwSq/RqvPYsN72u+sviozfE=; b=Nu005uKLLkGwEl7/6FowStMMCkWF7X3g0R4IutQierWd9af1yYTszKkGJXZsJALVfyfAT9AwPa5QAcpNxgjoIMGDMFnnefdTM3T7JBP8LrJe+6OqKSzTef0glVNKLV4oBVijb5KVDln17WJlqkzZkTXPAOPRN+ClOzQGp5BEnVk= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by CH0PR10MB5356.namprd10.prod.outlook.com (2603:10b6:610:c3::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6002.12; Tue, 17 Jan 2023 02:34:16 +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.6002.012; Tue, 17 Jan 2023 02:34:16 +0000 From: Liam Howlett To: "linux-mm@kvack.org" , "linux-kernel@vger.kernel.org" , Andrew Morton , "maple-tree@lists.infradead.org" CC: Liam Howlett , Liam Howlett Subject: [PATCH v3 16/48] userfaultfd: Use vma iterator Thread-Topic: [PATCH v3 16/48] userfaultfd: Use vma iterator Thread-Index: AQHZKhwwvi5mGHoUYECUpp0A5/lQTQ== Date: Tue, 17 Jan 2023 02:34:15 +0000 Message-ID: <20230117023335.1690727-17-Liam.Howlett@oracle.com> References: <20230117023335.1690727-1-Liam.Howlett@oracle.com> In-Reply-To: <20230117023335.1690727-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_|CH0PR10MB5356:EE_ x-ms-office365-filtering-correlation-id: 5f15e3de-5e4c-4743-f1c8-08daf8335449 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: aQN8OG1J/FOX28ArGgCNE3YYR6iODrcKP4xtQx2knuPLQwFFYadNWZcn7QOW8X9fn8r7TF215z9iuGNQacatEjzRW/Ihz8mu+MwjIipyXiGUmR8av3ds6ZgFHQDQ02ileBVH9IfqXliaMVTmJ0fxO6ZLf5a5Hhxpgnts6wq34S/PXxeccjaXJBa5TQvGVi9cxjsafIWkXCZTSxm+uzBr36YExahoaw3fDQj+D3hH0vQ+0EFecv1Bq/syBwMebhxzBiR9a//cLHKuISQYEXyYpYNDlb2q0nJzJJGPMFpZpnQ7ZpfifJE/GMDcPeUghrXJjaSemadZbg0RltdC2Vt9hWLtFW5iQosE3lvBUj95kjSlEQN7dl4vX82qEcd4iJiTdllxV2/0EZS8joq4eVibu5dPz22zRKzwxPbnw2RANhX46RxBKwlgonakCm2OtqGqOX1QoCC+pwzwByl9B/QDyHjCvm+0lemSlL4tWANUQYtU513M93frhy30WRiU8h0CSzJvE2jCLNn5z6OXx8P9XX0+sf1j87wLov2a4T6Hi6WBBT2E9IRE173Bi/DJIsCB5CPqe8utF6seLz7jj6cuy+34RLPxh6EAEUqaVDGLYkS52rb5xAtHl/940+JsB6P99j1zIWK4X9MSe4b/EvCW8T5BftMLZ/eqtyQPeDLNotKGiHOupKnRiBsuzE6KYjwzs18MvhWL7D4aUFAwIVSwsQ== 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)(376002)(346002)(39860400002)(136003)(451199015)(36756003)(38070700005)(5660300002)(8676002)(44832011)(8936002)(4326008)(76116006)(66946007)(64756008)(66556008)(66476007)(66446008)(2906002)(83380400001)(38100700002)(122000001)(478600001)(54906003)(71200400001)(316002)(107886003)(110136005)(6486002)(86362001)(1076003)(41300700001)(91956017)(2616005)(6512007)(186003)(26005)(6506007);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?q?V62sMVALv4FYNTOKv2gw1W3?= =?iso-8859-1?q?3eYQF68KRlYZQH/86u1fkrdUIFYYurM9mT4GkOvC6kvKKQR4WcHJ065kYUcq?= =?iso-8859-1?q?YBHcsJA1Ep5YYKvLf2jHqX1xtPSPyV56RuDWxPmJ5DrZoQo732ZveCYNbmKA?= =?iso-8859-1?q?sLL2afYhgQ9IL8D4TUscaBdEuERHuqzMCSyrxNjx19nadaeQnCCYZKAuhvgR?= =?iso-8859-1?q?CkCb5hddJsEms3aYW+dRHXct5E2QW9UTMHM9moPjSAyZslET7ayGaiQSZlCz?= =?iso-8859-1?q?rE18csyK1du6+BfN9oPU8e4fgDyPa7FFqNYORFTCxjTZs4Snl7knzQAWxv4z?= =?iso-8859-1?q?e4HOQrATb6Bl6y2XYm75o1ixmUPPib9iz3QNtoKqlTJzC5cJ6Zif8xtbu36Y?= =?iso-8859-1?q?4pVacDxJ8yeTkjJ0TtJvNEs5AIW/WAdFGACN4HLoJK+URHGd/LfhD0b/+ZiW?= =?iso-8859-1?q?BBnT0b5oCqyly+vGoFG22SKEqTyutZXpCpuT+xYbMGPiigE8nuWBfD0E5SQF?= =?iso-8859-1?q?DKnTwDPCWQoPoV9ACCNnZIAr6N8UegUOH6NoB7zXtbw4WufcuIQUngKJLaFo?= =?iso-8859-1?q?pmwM5TTWrMwDjd+994JMqg2ssi5NnKceuPZrBexDYhIYZG7dGjF3GC2DoB3U?= =?iso-8859-1?q?2C89gBz1Y8eu7k+3q9vn4LMXBPDHRu4PyRoJL0VEDY4IwAjzZFeGAct41drG?= =?iso-8859-1?q?Pq0Zc2/oU7IvVfBMhhrF5o6EccYIqXsS6W4kKD2TLdEFgcO2slP4qmAbHqJF?= =?iso-8859-1?q?hBp0OURUd+mruTFdnLjgX4Fw+ayNdTeBXcpdBIIq9/Y/AwkvaUgzYzdtvl6D?= =?iso-8859-1?q?xz1wQKt3KvfCoQmkYBWcuvFA/c5tOnSq+4TsEqA+q96zUdrQ+VIw9gMapM0i?= =?iso-8859-1?q?nN7hG6cNAvpwxiE+B9ZRYPP/l3kZIIPbn9UGxb6KGOCxsJMb8VoNgDZceouL?= =?iso-8859-1?q?bC9iuGC9yUIResX+S57afFHH27wqYTqCGO8u12dueO/O0hKD77akpoloUApZ?= =?iso-8859-1?q?/Lj6byaotFIaAbwd42DLwjiQJhdltlJqu4G1i3xed+frsVjy39ShqYmmBx+n?= =?iso-8859-1?q?9X2S30KDrUIPvfUpMiMUtSCA+NAjxdzubq1O42mWceSKPDvjX+UactFueD29?= =?iso-8859-1?q?qzEBB5cumW/g5UIXiLjrRipLX7anMolOAnJH1aIMgVt5nuZ28DgTm38KG3s4?= =?iso-8859-1?q?VQtuV0CwYaR2UeUFC/cUBMj4NkRWFSdFbHSEl8KXkdF41tIvT7FJmgF10Mjq?= =?iso-8859-1?q?UdiL3gGAa+0AHHIy9kYGPJceRqqZwzBV9GnqMkjp4Zup8HUcAsT9R4eFULmK?= =?iso-8859-1?q?IXsOfDXIOTbHYDtJGxrK/DAQWRK0YrM3zwypV6GeXeEZd7dO6UE2viKfS0UU?= =?iso-8859-1?q?8iTw+rD8YNdEm1arknfNY5XU6kUokk6WmVYA2HccARSY1KtmK1+hzwQezhF5?= =?iso-8859-1?q?eVg+1J3Hd1jczLihKA9zRh+4vCJPmRk2/OpAWSFJnQyg+/Z/CZBL3V3Rp4Nj?= =?iso-8859-1?q?9ZmxINNE616gismriDAjDg1tkKD6hDhooMBBSsAsPRyPvCMPP8H9JOX0BYoO?= =?iso-8859-1?q?b6KOjDqY3Ceg3N3aQ3tiS5qHtTyLmj+FJxa+MKXxubaTtzYtnGVi4HPIpTfH?= =?iso-8859-1?q?F62m4wGUk7oU7NidWHZ1RHLYaB+3m+dRBXfPqNA=3D=3D?= MIME-Version: 1.0 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: VtUS3yNrUqgHiRC3xdS0BKCW6jNSuII7xLJcUX5Gkd4CPB/q6DZncaXXkb2nBoZcHcFd+5Bpr6MqLSOyWN3C7Jt/S20OZ0Lw+GoZNFkkIuoSN7PJxV6HbqEedH2ovort5AsYrJcMjG0BG3LdZLgO/BS7ckuiupu1KPMElIWyvpJkMXI0KadZAQ26Bej4Cb6eJ0CMFLUuwjkLBwuLUNZzrzswMilak+yKvP86cYM+0Y7l2qGejo74O+czNJb16YPBGyzLXW5lWLeaYH0K40ey59k8pzNP4NgzDhOpzxZUlI0HPvzLA53LWiBECPUJomMhe3VwornYFrrAYCPEBJyhEMWlqpR6yuAOgMn11NcmnC+RQBP+nRZuZY0Q0NkLBkItgPyiRBnZ+8V5ehMlyEXQ5coWkvsO9tE9QNKuo1QwGbBlUDTQF6/N6ntpZIrquc23XNlKZJapAGsD/0d10IZDbw/tNEgM+mNLDWeDw3CkgD1Q+meUT81oLEF222ir8L+1HoWzoCdIZssdVv1L2sCMWBVJXl7cdRPg+zQ9c2RTFh7EWY3P3sbvKg334UlW0JsdCTmQqk1eZgpBAp0e2xTwqTLWvN0CE/b+vE48bPNeAOMYpcopUqMignDMSdqWGfnQIIq93aS7Ct+pgc3lfjWvPx196fU8GHnRqA0KyumQwhXB2dl6D98muX10/Wdp3W0/4y28MbGD2R+T+qOKr/2kGMDJ9EXT1HZf1KbVnZLQEEXgmQVSF20GKsIcWVQ9d46D+0IqtpRPfqsLdea9sKlxPJ2quItvG7vL7jsmw+JhzdYXI6sbu4/PH6FDmgzgv1/htAjcD9Rz1FkMzv2Czgh2OCGyxvI/iWsk6tM6unWrqNp288NciitnjpVY3oX6Io5nv1INx8Cd9N7qGZG+yXim7g== 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: 5f15e3de-5e4c-4743-f1c8-08daf8335449 X-MS-Exchange-CrossTenant-originalarrivaltime: 17 Jan 2023 02:34:15.2812 (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: 7Ux6p2EpRmYL33CrVLOlB1MQRE3eQvYCDQEod2KIROzRH03hLXcYCx5bHwM+F6S2QkiHWJKnwfQRCL8i0UgT1Q== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH0PR10MB5356 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.219,Aquarius:18.0.923,Hydra:6.0.562,FMLib:17.11.122.1 definitions=2023-01-16_18,2023-01-13_02,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 phishscore=0 bulkscore=0 malwarescore=0 spamscore=0 mlxlogscore=999 adultscore=0 suspectscore=0 mlxscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2212070000 definitions=main-2301170017 X-Proofpoint-GUID: Xj7bO4vVdGnSZaF2hIYBvid-K2imYjTO X-Proofpoint-ORIG-GUID: Xj7bO4vVdGnSZaF2hIYBvid-K2imYjTO 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?1755235547865008981?= X-GMAIL-MSGID: =?utf-8?q?1755235547865008981?= 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 | 87 ++++++++++++++++++------------------------------ 1 file changed, 33 insertions(+), 54 deletions(-) diff --git a/fs/userfaultfd.c b/fs/userfaultfd.c index 98ac37e34e3d..8aba0afb9b43 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,23 @@ 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); + ret = vmi_split_vma(&vmi, mm, vma, end, 0); if (ret) break; - mas_pause(&mas); } next: /* @@ -1657,8 +1636,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 Tue Jan 17 02:34:15 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: 44436 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:eb09:0:0:0:0:0 with SMTP id s9csp1519588wrn; Mon, 16 Jan 2023 18:38:06 -0800 (PST) X-Google-Smtp-Source: AMrXdXtWRVH+RVGHOXOaLx08RnS72qVaPOkylZ8/yVJ5tcANVDJx6Dqbyne4/ShqaaBbHeyTOx1k X-Received: by 2002:aa7:c041:0:b0:491:6ea2:e875 with SMTP id k1-20020aa7c041000000b004916ea2e875mr1228736edo.35.1673923086125; Mon, 16 Jan 2023 18:38:06 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1673923086; cv=pass; d=google.com; s=arc-20160816; b=VoSplfff++rVYB0MOp3RFVlqgDjnpPKWu+IcohMYC85Y+1wcxSTlBV1w8Wethfrz9b /Uq7f4fxa2e+44WVQco1zka1rK4e4a7a4YrRAJFyO2xZa9NnXlsyRpTvvj3Ix3x4zALt FlnXQkrMW39eqe+hBLS1jgwik98bNZGwe9TWn3CBkGHDxDNwo3iiiujUgx8Yw7XVHlpa 9L2nNPbO6s4lNof40HmkvvhDYrINgD74k+JUlzCStcNW9UhM7H52au8rkIad9sslDW25 k9xWQoXCSzNQ3N0rEMXvyfglCmPXhCxthm5AiPnqNc/qgdfoiiTJTyXzkajJPvarcPKI WnAQ== 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=HFAiDGbuUC0QZjsFVDmOOB2qN1wSJCrnynqkWnd9Rk4=; b=YUqNtwnDQCddDxh8/ytzX9HqPzFx9VIPrOURSVwtV0jymjcwPqKofjRC6v3d8cFdix Owtf7sXFO0zpcv7R8QoL3WDmfZGSAqjslcEcoC53fB64YKlGWJMTK9pSqiYd8i5v5VNQ NrF4BTL02toVyG7pXlWXX0MJ/EQJxvjEkWPs1VqiqcuBwZOe+qKM3JD1vwtXz0YNxnC3 JU23pECM4hr661vzoiWg801tK4qkDQz2A4IkzcOuVBWUUVf/YeMfrQ0xDjRUyKXTNxsI c3P2S2xMYwGI/J8r2oUSZ4VWT0czy0u7V0BqDjefgHcXtiSPg3HFuQKulFhNzzyewwm2 e8CQ== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@oracle.com header.s=corp-2022-7-12 header.b=IO4g6mma; dkim=pass header.i=@oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=EB6KDJYQ; 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 s8-20020aa7cb08000000b0049e267de108si949270edt.209.2023.01.16.18.37.41; Mon, 16 Jan 2023 18:38: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=IO4g6mma; dkim=pass header.i=@oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=EB6KDJYQ; 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 S235559AbjAQCgL (ORCPT + 99 others); Mon, 16 Jan 2023 21:36:11 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:36056 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235447AbjAQCfM (ORCPT ); Mon, 16 Jan 2023 21:35:12 -0500 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 9711E2B29A for ; Mon, 16 Jan 2023 18:34:31 -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 30H09ZsC005646; Tue, 17 Jan 2023 02:34:21 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : references : in-reply-to : content-type : content-transfer-encoding : mime-version; s=corp-2022-7-12; bh=HFAiDGbuUC0QZjsFVDmOOB2qN1wSJCrnynqkWnd9Rk4=; b=IO4g6mmaEe4907LDEmE/u0EkWMfK6gIUZseyk9Rvud3nzMSBNroVQjy6eqWPyANCj/Rx MmLcx7VEaL1Z427NkVsdWoZPpGFD+G2NCs/KEsicYcaayK19JWoqlQYwoa71EoiDJJZX L4HYXXXez61uMIck2qCa5a10oOmuJh8SJ6oDOYua1gPM+f0D8LysgsbhRhGc6L03kZFK 21RrI4G/zLxLvkT+DbtM1gnzpzOUIeV/AHfwuTNw7ZuCCx1nH72YbXcuFIa8ZQVNjuoK c2tkA8lW4YJVeVcLmVwOdaikqHg8pmdxVDFv+P9fP3ljK/pWFrIcyr8s/KjCjZXrYEwS xw== Received: from phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta01.appoci.oracle.com [138.1.114.2]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3n40mdb5e8-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 17 Jan 2023 02:34:21 +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 30GNXAUU020577; Tue, 17 Jan 2023 02:34:20 GMT Received: from nam11-co1-obe.outbound.protection.outlook.com (mail-co1nam11lp2176.outbound.protection.outlook.com [104.47.56.176]) by phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 3n4rq37hat-5 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 17 Jan 2023 02:34:20 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=grnsz7MjRY+vflkGiArlhqOE8Nl1MSGFoa/6S8c0wedCzhnr5NuP2dG7w7hAvGRUyprn7P8IJjFS0Ha9wNzlNGjDyLMkg6WQPhxWPT27rAAFhRS+bAODZ1+xjEziBIDw2TySGWGHiB6K3U8L8ZJ/Q9Lf2p92Vm27xRuUF7YhPqMkAt2EdGhHPIiyKdasEV6IrG0iNXgJUA8HDxoIKsqKr43aHpRHGbTRHu0VCtFozBSdxghNEMdGabnpGLmCANQAjCS+uuB+IMar4x8TXQgctMBfWXYlWVznUSI9n19VeUpGbA1UuB9Ri10s7nn46QVM2+mz40CWgKIJhVI1T0WCcQ== 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=HFAiDGbuUC0QZjsFVDmOOB2qN1wSJCrnynqkWnd9Rk4=; b=bBT5sXmoWHWJdPejlUbIfVdmO3V76pKH0MIAEkMQnT9CkqxaVL+MRXhsE+C82SEgqQNIP6WKTUquaiiuKitM8uENtc2TkJOyT+72VdrezEHuCG3jXQJeLKHkqG86UQqHYIQyiho58d45zuwwFWQOfKXcN1XyTWRtNr5zUnvrznXs74W4CTq4mIfBWDjBeB8o3A8us2qMSHwImJxeMJsXKb/dcY0RTk6KW/RL8JB5hbh0Ekq1dYyFZCICZQ4VI+XSlM76ucO0zPusgPeqxqBBHDXXWOgg9L2K6asoKVPw6huO94yHP/+mAf0rZnydz5FlXN+/fJuGxXcZwgyqvTN1Xw== 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=HFAiDGbuUC0QZjsFVDmOOB2qN1wSJCrnynqkWnd9Rk4=; b=EB6KDJYQiIoDxQ+pPYWEXrA3D+xhfrUZY0hpuxiE7HkoYopzA5vWGMl8uRtMhbKNvPhSm037+gtQ+xM38eR0CY7KNBri0v6FlhaNKQaPHKwXpbQveTtnJdd7lLszbzaf/+Lla6ou9gAzjMeBAK57VxfHAgf6JjpYfWXqRcRGtso= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by CH0PR10MB5356.namprd10.prod.outlook.com (2603:10b6:610:c3::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6002.12; Tue, 17 Jan 2023 02:34:17 +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.6002.012; Tue, 17 Jan 2023 02:34:17 +0000 From: Liam Howlett To: "linux-mm@kvack.org" , "linux-kernel@vger.kernel.org" , Andrew Morton , "maple-tree@lists.infradead.org" CC: Liam Howlett , Liam Howlett Subject: [PATCH v3 17/48] mm: Change mprotect_fixup to vma iterator Thread-Topic: [PATCH v3 17/48] mm: Change mprotect_fixup to vma iterator Thread-Index: AQHZKhwxHa6qBb7KIkO37o2hfrZlJA== Date: Tue, 17 Jan 2023 02:34:15 +0000 Message-ID: <20230117023335.1690727-18-Liam.Howlett@oracle.com> References: <20230117023335.1690727-1-Liam.Howlett@oracle.com> In-Reply-To: <20230117023335.1690727-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_|CH0PR10MB5356:EE_ x-ms-office365-filtering-correlation-id: d3de65e2-a99b-49e5-b26a-08daf833548c x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: i2cAPmXByx9kl74O3HG8cvTx2I3AmOfNEYaTsWl67E9y54RuqxG2bLOTGpoRDH1F3PSvO9JPjP80d4BLsiCKsSP8bFk94CanwYbUnEuN4VguBzZwIDTnM5/lPqKMCBboICTA9YVmxGWPzcyCCtOUVDFl8pyRNkK2X3JKDpIPsX8rOe7NJxn/JrHxZJZHf4i+3RU6XJCSI8ktj7XYSKJGEmT4Z57jxvK5BGAsFgIwwfTIorrBYpgh/Zz+ZlWmIHSORwYjRjab15HoG+sVNbzk67+ZiCPhopqYGScWzQJCmoy4TiaaWSXbWnk+2QR0vRW1gMIu29PRBDfSIBiauFuFHtWaL+O/mzEzAvV81wCYsWCBET9+JgHvmRzu79IvxjU7mJnXyox3Fz9TEJ/H3OtACzk7AJO4HZBEQhepZjkUW2gJcyisQsbPamzuidRsUyVmnTK2DUwj4fL+F2xS0FPNW0BTA1cB6Mf+YU0pWMPBUGg1OnMay6xN52TCbWRdsqRUL9uanaPgWuXB95xBNCdEhD47NLWYVA2cvz2KuizAAVlGvAFQaceodwYBsE7EkvtZH82RckBY7NNqMj/z6j+PSIfkB9tC4vR7TrBJa3wJ9dZcez9YO/O8lqgh01GuGYGbgkREFt2m695t/sbGWvc0kEf0iZO9WrKMK3slZuuXThGkJTFVFtKcuJCyL6U3yIA58xBhDei0SMa97akR0ixAFQ== 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)(376002)(346002)(39860400002)(136003)(451199015)(36756003)(38070700005)(5660300002)(8676002)(44832011)(8936002)(4326008)(76116006)(66946007)(64756008)(66556008)(66476007)(66446008)(2906002)(83380400001)(38100700002)(122000001)(478600001)(54906003)(71200400001)(316002)(107886003)(110136005)(6486002)(86362001)(1076003)(41300700001)(91956017)(2616005)(6512007)(186003)(26005)(6506007);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?q?jBun8mM75vMoIZkgeFfOlet?= =?iso-8859-1?q?FdETGEebGTSBiN0HDOlhomgYULsPbVJPku0NIF2CgjVdTP1seIusVbVzzMSF?= =?iso-8859-1?q?jerjf1PTV8yBLtvBTxlgg0WW4B4ye36GTWAqb1G4mnhI1k17a1UA5+RTz3WS?= =?iso-8859-1?q?EsHTOqc7Ge8l3js6Gg/g63CN+eWa3hS/HNdiarZkhmq0dDva2nRTJRckvF4q?= =?iso-8859-1?q?Ay6CP1gAyhd6HWTCNQq9Ow775j4B4J71w6PFQFFQWB1Zyo/VTVxnqSmOA7By?= =?iso-8859-1?q?b5kuvG9orc2T0PZ5na3SXT9hOVutNjURZYm3oOdMiX8tMhHHzdlGLlYMzwUy?= =?iso-8859-1?q?9Wk6hXKxmfy/SIWQCY/5FLSlk804rs2XkLHLScNZlWEl2EHEA7z+/z555WnQ?= =?iso-8859-1?q?yudPgGQ78deClHtL2JYSdkj6NO0AJYv5jCBx8de3YgEzp/mFsXppA/GS8QIp?= =?iso-8859-1?q?DBmI0j6TsA+JDUcLIWCBpEw5glenHHuART515bsngjExBMGhWUiLDytDtH6t?= =?iso-8859-1?q?eStdHqT038ebki/r3oX/gqz3d+Ebd/X/rvmrny0wgBjypb2o0lmfFpad0rSe?= =?iso-8859-1?q?2saN2kUV5E4S1TFWI3PN+J83oun+wnOEJXtqkfZLOQq68UuwE125Xb42gzus?= =?iso-8859-1?q?Gs7xP1bboVM1LWa7hPrlGAKVR7Ox1qqE37+exNSB3XzBE65hn9G+5rqVnpbE?= =?iso-8859-1?q?/NT2jA4rc8PlTy0HUT4auaMTCpQB4mpNWwvA779FwvTQx5PgOcInmlGD2UyC?= =?iso-8859-1?q?j/KLThqr35BE/5m8bGLNYYgmYxDPS2taFhVh7f63FOU4He5voZRi/jHZyfPP?= =?iso-8859-1?q?j3dtsn1P8zR6wZqnGqdOKB5svERk/vJpHN+qHuLv8xypttgYFQFY27yuYc7G?= =?iso-8859-1?q?cH+zge+Nj8CyWD3pQOH2uT/nwMBQepgi6GnP3bZG6e7NHzAjZqCTIeGSUWIF?= =?iso-8859-1?q?mGEs6G8cOt8iIY62cjHnUuqsB2fef3v0A1txP3yir+z5T2ihQlaO4FvnIo8M?= =?iso-8859-1?q?CR4h1zGyZ0Zs/dYW5KbYkyvsHCOZC4TClhMTQNchS87bfy7zn9xe7Wiqzq0p?= =?iso-8859-1?q?Y1GjXVCl3GmfEddxCTllHkElwsR13L1N8c9908vES3/ObzDVV97Sjdha6PiE?= =?iso-8859-1?q?GzdnFAv7TH8kJm5F5r5P9mj60wsNXgp2l5Ybt0z2CQKqUCk2/V2gOa2i2MKZ?= =?iso-8859-1?q?r39+iz0UtOi0dIN1bT0Et1uWQEESCd8FIqM9LuFMI76NDI+TdV8S44rhocYG?= =?iso-8859-1?q?Bdyk10qvwmyeTX5hTQObXrU24WrS7mez5bmiWyJ0qx3bUsB1RDZH9R5rqhIS?= =?iso-8859-1?q?0oXnu+TAl6QBmbIpvHeNouUmqpOndCn5XORR4hvo9WuNwJQzDc2F5tZGNbEB?= =?iso-8859-1?q?yT+VLzdQ4LkF5DeHGcOJ4zHIZIsQ8ORSylMrCxeY48wQiAkG8w8UV7/pA3vM?= =?iso-8859-1?q?6oSSFVlzPfB9YmhBnod3CEukyX1I6U0VWFoBX64356pY2uHCp2anU4Xn9MRR?= =?iso-8859-1?q?/DcEQ2N1UeCKXWdvPXSMAdNkSImL5pTENN7nciA21YRHhTqMQW91a/tIrOWo?= =?iso-8859-1?q?c6SoCLCoFc6c3HZMRodVMXJ0/XD8mhMDQbiPTeBwNg6JpUOD9FpfTaz1YfIp?= =?iso-8859-1?q?Yw7YI8DwnvnnhGcR6Fr1c8DRPlpzxVt5brEqMig=3D=3D?= MIME-Version: 1.0 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: qJ0KQBQgAhfyzdpP9kHk7AS6etirwdSRaLchbxL8ScI334zIjc6bFffdQTpvpEINhGLGwBiOlBgreGbzUCwu3BLpzXgeU4IRGxNvBrloeMYz82OcrRqShRdtKXM9jQHqcqT1oK4QN2HW/T4ty8mSOaiZlXbVe7bbTK/bESOJ9nt1xPILTZgVf/COQwZ5GyjWByd99rubPjodjK6xn0WVf5N+g2LhipUvH/mkzavHE5hYsHDlIvNhkUV0y0pKAlhf1djlSlvccmlhD7p7EjDfssqrm12h0oVeTzIlP72MbYzFvCBV6ZUjZjY25p3wSxsmR1Q/qUFE4wdwuCkNTuwm2fJ1RD+G6sPZy3QQ8GlBjnrIxpFngSbviuHvXDSBm0KvdeAlJ9+wb43W1fnwYELAGxlEH7bMZgCCVudcl8pcoJj5qPNM1GN6tVy8EeczKbabZgWTvWrMAq1EZZ0nuIKbXbocCox3tZUTtQMfoy8xaAPVtXGNb/O7Ei8n+I1lbWMff1+OLbo+DALVkWCtAE/AsTugaJ39rmxmNXKENalqSSZsh0IjR8P3mn7ydjQN/5dgbhVjUdyaLDDrhQbUFqxnCcq5Shn5po80yfp02aoMe02VVnzI8dWVl+ftkUe61kyDZ4dnPPqVNNpcOYY0qRz2pK4ZAcqKWxHpCDI0GFPgXnszDXDhqtlniG3+t8LhoRJ3EPJ9VODcRe3D25usesHqguOhYx6H+ITP7QOo3JTcw46drFs8E+FPiGvuUCAvzmEm1fmMa43h2HKTNGTswq5BX4IOpKFdrOLLxYsJTP6RNj2bV7qeDzN+l+KPUWFWkNUd8RMwUCpfvSqxEMoD+3QpZAPCbjuJjcJcKz/PQt69uWrAtmR/ssNXNWC/z/4OpVBBYVyPmfDtog5QhOPJJk4kRg== 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: d3de65e2-a99b-49e5-b26a-08daf833548c X-MS-Exchange-CrossTenant-originalarrivaltime: 17 Jan 2023 02:34:15.5937 (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: tgEyb1L2g1pVaOXx6kB76/4CKHC6Us3/kyNT4YcXCxTCDwxR4SOir0qZbYbk8HgFkg3WP1PCZU7trKJ4K5pz6w== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH0PR10MB5356 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.219,Aquarius:18.0.923,Hydra:6.0.562,FMLib:17.11.122.1 definitions=2023-01-16_18,2023-01-13_02,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 phishscore=0 bulkscore=0 malwarescore=0 spamscore=0 mlxlogscore=999 adultscore=0 suspectscore=0 mlxscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2212070000 definitions=main-2301170017 X-Proofpoint-ORIG-GUID: MW2wNPeAAHbfp2XOoc4TpSBJWu_leESN X-Proofpoint-GUID: MW2wNPeAAHbfp2XOoc4TpSBJWu_leESN 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?1755235573823634245?= X-GMAIL-MSGID: =?utf-8?q?1755235573823634245?= 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 14e3698fcbe7..bed33b5f285f 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 Tue Jan 17 02:34:15 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: 44445 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:eb09:0:0:0:0:0 with SMTP id s9csp1520144wrn; Mon, 16 Jan 2023 18:39:49 -0800 (PST) X-Google-Smtp-Source: AMrXdXtTTtqXOilRJgRaXPzDYckGLLrs4LkWkJQ9VM2vjqbmzcR5dCYUSx6UJ4R+RkcYSlwibDYu X-Received: by 2002:a05:6402:220e:b0:46c:aec4:606f with SMTP id cq14-20020a056402220e00b0046caec4606fmr671151edb.23.1673923188997; Mon, 16 Jan 2023 18:39:48 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1673923188; cv=pass; d=google.com; s=arc-20160816; b=gDeTN60j50Fvv6SmY653V6gjq1SpQEpM7u4JMing38ICz87r2pnMX0oo1tKvsS1vwo 7I+YJqFrQvcKgJWbfEH9jPyzWQmuud6gr7qQCFhj40IJypqwgcofSvgS25oMEQ167HPf AQVmnzSpMleF07W7OeCJMsRW1vonl9wgYHacCBuXgQPJ8TFyi6Dkk0JdT4cfp1oAlPEK Ixu49FeKwM66koxbB7xzZwVWlRHa5aJFXEmfE5ohP8GukX/X4ycg/ROLJ33k/SsrlVrB EJI7OPLOLgUVlIZJknqEGwNG2Vngr/iASg6JK1bbADDwhMjENyCMURjGGyE7O7yrxTEu AR6w== 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=uGmdrfkYdVpaRyokuVBy46zsbVYlluoZIVaFM/I7OqY=; b=isiVM1dRL6ieZkS2DJiia5vHA0jezH2QYK94hpjL6IwusiULoyoZBIYUAOajLGdTlC UmhInsX325VGNakZuu+yYMBrzrug2QdiO/9flrC5MjefOjIPw6pTRjwmdSDpnUdbVA/3 edSTojZA3zzk95fyxi+q2kDy3itonLAZmx3Ek7yue41uLgWBLpTlwtHXea3f5R9rT7vh VVKa3op4q4gOYyQXPMBAvloJIEH1Qil2zrn+khj9D5fDgD1YYgys/imKJH37xQtx++8I NWHte9K83kNVPqj2UvNkTIwnCdUWhCS1nesOcNQvbo/ahdl8z9ZFlJnobGP3teR3A5sc 245w== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@oracle.com header.s=corp-2022-7-12 header.b=jJnuZOwB; dkim=pass header.i=@oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b="loJZFZ/u"; 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 ez1-20020a056402450100b00499b68299acsi22008088edb.314.2023.01.16.18.39.25; Mon, 16 Jan 2023 18:39:48 -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=jJnuZOwB; dkim=pass header.i=@oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b="loJZFZ/u"; 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 S235506AbjAQChN (ORCPT + 99 others); Mon, 16 Jan 2023 21:37:13 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:35704 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230040AbjAQCfe (ORCPT ); Mon, 16 Jan 2023 21:35:34 -0500 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id D13822CFE8 for ; Mon, 16 Jan 2023 18:34:35 -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 30H09ZtO011746; Tue, 17 Jan 2023 02:34:26 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : references : in-reply-to : content-type : content-transfer-encoding : mime-version; s=corp-2022-7-12; bh=uGmdrfkYdVpaRyokuVBy46zsbVYlluoZIVaFM/I7OqY=; b=jJnuZOwB6MwjMnLzzG1wQbEbtzNu32T6bSeXD2AoAeaJ9b4vnIUyt25UpNfTGPj8fWgB YZO2L2LNARpLEVKasd+IO33KZjDGqD5QCsetxgPYpw1eeqs6G/y1xM5yGHr3SZuCmRCu TC9qc0HW4TyR6YwoiEBz4qdvwAI019pnDh0oKZGOpMnumC6trfc+rRKhEf02lhGW7oT2 y5vrbTbxK2CLyyKHdBQOXa/74oE4KGRQKce1ilf44zQP8X57+XYMJIo24DphI9ezsDMC f7JN2eKhL/Dw/k8ETZrVb+lYeNe04lmvyAc1Da2/X0eeM9pmuagdIkIBUYOoBibgskEF DQ== Received: from phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta01.appoci.oracle.com [138.1.114.2]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3n3k00urch-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 17 Jan 2023 02:34:25 +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 30GNor97020620; Tue, 17 Jan 2023 02:34:21 GMT Received: from nam10-bn7-obe.outbound.protection.outlook.com (mail-bn7nam10lp2108.outbound.protection.outlook.com [104.47.70.108]) by phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 3n4rq37hb5-2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 17 Jan 2023 02:34:20 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=UL+SFJV38lKEeBdFJzOh+o8AoOTZWV4PKohsk8qrNbvtifxnrV5DsaA3J1aNmfgAjTeQoQXXiP11Y1hlSvEwFbfxUysaUA6OgFQqZXkGGF+l4Cm3unsvft2Y2Tjc4EFrUuvGQsqvy84ytg6igsnGFuG9MbxWJzQ2ZvYAqQbdY7AkYnYmSyEwH9vBg64Wov7i8VtPu8Q3oNIrZcosAPZzd5Gh3NZDcDQgoQXQH4Rp+rZ2Vv5BfXI90nhRv/oUYvsbSLEF8GQX0k/WZVw4YTQR8RJyG/FSspJWUKjD1vwSzZnH3qJew8qWFELhwDbVvuUgEyrYGvYlqA55GS9K+QLhhA== 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=uGmdrfkYdVpaRyokuVBy46zsbVYlluoZIVaFM/I7OqY=; b=c4Mm6KpgdsXe+vL12PtACcppc1Uj90j1vlaKt6/W9Roc6bmUNPHtfcYsDmJnU0wb+LlMlii6Nm524x4Mwr7z7CrZCx+jRSLFnNuick582WCjn415P6WqySibZphlKB/hpqE9incqrY8AWGqGojL5ehdCP9RTn/wV8CMMiXRXCk8KPi+yLrciscKyMgC1/hYikP4KNRMSvZU9CaOX5m8uuDizfzzuQJBeaoUtcq38zUUk3xb6GHNRHnhD71U4a3xqZY9MHnM/eEEbvOm1QXoUY9brTFJxAQAqT/LEOKzOWdpGm2MNg9CTkrjtwpi9xQrnp3GupKqMZ8/Hv2iYU3fgDQ== 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=uGmdrfkYdVpaRyokuVBy46zsbVYlluoZIVaFM/I7OqY=; b=loJZFZ/umIW1UXn9sXGInJHPNdROoQ5k4dP9gqi5g4pNfNjCWRA0lI+HegYQJ+qTOAgq3s8rDdlIVMErWO6XuXGwMVSLv+pF3r7b2TzCjd87e+NrW2K4yuwrOqgViSi+GRGq9NBU61XTobWnx5f+sCD4LN5SrwGvoemsXdm56C4= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by CH0PR10MB5356.namprd10.prod.outlook.com (2603:10b6:610:c3::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6002.12; Tue, 17 Jan 2023 02:34:17 +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.6002.012; Tue, 17 Jan 2023 02:34:17 +0000 From: Liam Howlett To: "linux-mm@kvack.org" , "linux-kernel@vger.kernel.org" , Andrew Morton , "maple-tree@lists.infradead.org" CC: Liam Howlett , Liam Howlett Subject: [PATCH v3 18/48] mlock: Convert mlock to vma iterator Thread-Topic: [PATCH v3 18/48] mlock: Convert mlock to vma iterator Thread-Index: AQHZKhwxHE8qLVwDPEuCpPiq5mmYJA== Date: Tue, 17 Jan 2023 02:34:15 +0000 Message-ID: <20230117023335.1690727-19-Liam.Howlett@oracle.com> References: <20230117023335.1690727-1-Liam.Howlett@oracle.com> In-Reply-To: <20230117023335.1690727-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_|CH0PR10MB5356:EE_ x-ms-office365-filtering-correlation-id: 4909ffcb-a04f-49dd-37b8-08daf83354d4 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: HhkfriAzp6BN2frYSJ9gIw0L1pGT71gQUUR8l5irLFfPIolvredYNn8Ghvc3uIItsTox+Ty0DOpCBmpGgnKAo1BcWak1ZEMu/gNL2WxmKWY5hRP6spmCN8bHcmeNNmXgNMFLk/nJIE5VNvqx6kHJucMnZ2qryYJAULRo9FF2Uae4igPSTeFcWIX0ZJVqrOHE2H2xKfV6xH2lsO8ZhHVbirg3Vv9RwVRNZmWxMREEUnlrfX27plGA7bs+pn5ParbRb8wH0Cj+RuTEdfMD/FUA0sh6Z1GGnHK/f7twINk5notgJjsAUt0jshrs6WrihR491+pPTpR5l8AIFf0nAuGPnzPD+bf+/w3fZMzcsW6hRla+5401sN5lSH3YnTrnZG37K90hxWOPN8FFmYdxxl4wQU8qvR7pWiEIOAa2FLnFfF9ZW5VbfaMHTswRYr6LRRZJiA6HArM6J036UOs2yLcQH0dHepf8bPv88XxA9HPQwkzF9VWfkCecOCnJqbqpsuYAM1G2EoyNBsQXRJ+yMgC3b9X/A1S6fmCbriLmsDd9HdeeMpOe2PHuBe+wQ46ViEVN5EZvjVzMXgQtt69RZFUBAa2bHtfMwB7NM4bdo5susxsaA+B4kEH/GrTmE16l6TaHILRvpsjFn5XekpLtL7yhKl4sjZLzZb7KUczHrD/Y2v+0Zy46CJtUWY8xuKHFoKhiONTgoGOybeAbNwIL2WKWtQ== 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)(376002)(346002)(39860400002)(136003)(451199015)(36756003)(38070700005)(5660300002)(8676002)(44832011)(8936002)(4326008)(76116006)(66946007)(64756008)(66556008)(66476007)(66446008)(2906002)(83380400001)(38100700002)(122000001)(478600001)(54906003)(71200400001)(316002)(107886003)(110136005)(6486002)(86362001)(1076003)(41300700001)(91956017)(2616005)(6512007)(186003)(26005)(6506007);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?q?2POpbGB2aBIApAocE6vtxfX?= =?iso-8859-1?q?w2ju7LaOH8PKVtrxcwE7F9c4u9cuYnXhdKHK9VpFsCqE9KLbm/FOs0pdMEJg?= =?iso-8859-1?q?C81OykN7de8ad/wb1+/MaGDs08NesxY/lDFaIjJeil9w/KlmMtCmipeyd/qz?= =?iso-8859-1?q?dOmgLvQ1bFFI49IgQTFkC1zFSVf+Aa4PzfPqPhkis9uqIbSPyiJo0ytzBw1s?= =?iso-8859-1?q?lEsRi9okc/izNrsp3KD/0iXf7LoWgw8vgxMiCvGBKiN8n5Jk2BQMh4LeOMwq?= =?iso-8859-1?q?Rk18/Kn4bZWEpGvOiOKsiou3WTlbC4N9vwXvHIWmlS5ezDjL+o/TzRYsTrA1?= =?iso-8859-1?q?e1BtBxEL6w5XeYZlSkOJVOnYIuAyA4ydEYk9JNatr3d76aqMLeeNmUvsndvh?= =?iso-8859-1?q?lkvEoONVhbSj3khPq7NTIve/HBjzvCOkYHF1jmJgEPa8qLmugD+hTyb7EV9i?= =?iso-8859-1?q?R0jUtNekaY8X5K/9FiGiUV/6jKXu+2/GhcEtl4FC9HfdiWz1PS2nG9NLluQ/?= =?iso-8859-1?q?DAOgVmG7DYvHZDSRg4mgzKbu4lXxrXDox9lQyYW5dIuqU976xFxrBigxsJte?= =?iso-8859-1?q?rRaEKdLLLwxd3j0sCg/kiHKKvLlRANISjy68Y2PcyAzLYqPXKukOmtkGskgT?= =?iso-8859-1?q?ymZmnDl3VR+bP0rS8tmqVD5aRNWBae4nv610Dg5cvkodhjQhgEZD3ji8XfsB?= =?iso-8859-1?q?mO0Pyn8RdYJ3e5Cz3+AULWeHIKZJkf94++5gclPQT6P++lEUnWqG90p0OtRr?= =?iso-8859-1?q?cvZfISRIc3MUhqSgJgEWVO2HONBFFapkwE8JtKRii85N4YAmCdI+NqOxFrKo?= =?iso-8859-1?q?qFYqv/4sAiV+8wRx87ojaKfiuTKD8jmALZexz3uAAHUjcFDJE+stESKohKrx?= =?iso-8859-1?q?BPOCmv/wkDgfcICu6S1G/rdAI9P5tQv/LKPC0XWpCu2O3bfJsBkBKSF9jh0J?= =?iso-8859-1?q?WSn5rU894hgZafJot+ACNvRLeRLQ+ypb5v0+jq0z8NWGQap7d95y9bD4qCLq?= =?iso-8859-1?q?Qos8olS/dXJTGLYzyBeWNxFIymFH+ikGK8qfV7dUhy4YytKRwxGBtE7swibq?= =?iso-8859-1?q?3rNBl3OnSYqZnL0GZtkncrGZHrSJunZwRejf8XMl097Hq36KMH5WKg08ZlMk?= =?iso-8859-1?q?BYm2TbxCyjgZl8oLj3umVaaeDBmgv6Gj6tIw3sIsHQPBAZCUPhy8bdPSZviq?= =?iso-8859-1?q?joLKX2klX+JL99/9zv3FAX6kYwoAH/bO3tCYdhl6Hfe96AB12XJQ/eVn5OA8?= =?iso-8859-1?q?8fSJlguPUpY2BnF424Yar2SkmQmZLw86TkJKzHOaPRgaZGIwxubh/QgjO03j?= =?iso-8859-1?q?rxEEfs5emlo6EiIiQjUoTqyPBWKYNsMgh28xY06jPFAOR3sNsMrzgFQBd+Ac?= =?iso-8859-1?q?OBufhREnjyayTc7DPpXV9sh7xUv2dYUJ8/o32+vuhHjCCV7QWsmxrvFPIG4o?= =?iso-8859-1?q?zDDgal+T4tFo3tzugx/qCyXSviz6bVkEbL0aTTa3svzZBvl9ZYUIbbfNlLde?= =?iso-8859-1?q?d1jDLFciyhX7aswP+sgTjKQVkB03fuwMPzTskQcLwW/nj+wgwqj6MIlrOxb7?= =?iso-8859-1?q?bO5kL66bRpeh42s21txia59mPZakUJ5f7QDsomik/Hs1bIgUQfErN4NZ0n1K?= =?iso-8859-1?q?UEWeS6gyuVGfGo5l3mxUnjQW1f58K/WYm1QjN/A=3D=3D?= MIME-Version: 1.0 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: zDG40/q2FaGldPTgZ2JUnB0zTAZ2NwDumsNVMmi08Wz/+hyGhIY48dbyYoM6UQ7qCh5WOcpqE2PmUmgHUhVUlYYAIYy/QSqxI5baJkiIN62Lt2AW8uQTuv4ezPHZv4Vki2awtwin/LqntiQISxmCpbgl2RX4eH8N9ONeslyKwvYqNGgZJYQv0/zseui1d0WBHqYGs5QIhqcxqYTVbDBJ3sdg9ZVHgdhjP8S4Wem6zrsHNU7eXWlGNZEzi300FJjmcuXqGcfwZKQXWITdx6pJSsAOsH8vIgndxhaB6JOvQhu4hQkM2XE3jTrrVlXFe/7ZnEcOQVbnzL27UlySihjGcfKPt3OoN5J23sGjlTvENnAe0GuVRV7c1eexEQCJ2ApQj0TaErQFiw1Y/ZgRnl72GpDylJjcqFcK3pVEwOpsb+ixKV5o7B1ETWRW2tTE2eontPt9fDzquCnnXdTz8C03Lb2G2tQoLPf0X7E9hk+FkMuZC1Gv0nOenHlue6rvV9+mUoRdHPAf7xhq6DTytX3HN44fzNJvNWanCbE+/P6J/cqC5NuwC4Kqz9SvwneZODXDzGjIFOwtJjFxjtBHNzG/1nAO9fBPpVQhgjlSVE0wAhBY8L37MRgMeYQOXVjMSV1UeTn1ioVsQ6SJvYOohNS34c/fTmuU5oeB9q2dg8QVqKk2FxyUofuN5wNGYLBSXCoXYc4s5mN9c1bgaSYWnNvyDYhaO1Xo3SSpH5nczZf7yAJgM6q5PUxgr0rOJE8hHXaqUZqOYKWVgo5rWKwlDDYeXAvOmXuih19iotrBSF+YIBhAm99gvPlO8ao+0ylbBx49k4AwFxUSqXugXBTMDHlYEUQyzwox4kqdFOfAU68cwa8086lRIdc5F/OuKMDxHsYELkTA5Sd/R6dLbw6L5b/5HQ== 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: 4909ffcb-a04f-49dd-37b8-08daf83354d4 X-MS-Exchange-CrossTenant-originalarrivaltime: 17 Jan 2023 02:34:15.8749 (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: vQwaXcELtAjbP1199V+/rHd9DjZPsrIGBajUTWqIZfFOExLD2dn+gr4RA5G4leYy+qpTIzbZs1MepitjJ9ck4A== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH0PR10MB5356 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.219,Aquarius:18.0.923,Hydra:6.0.562,FMLib:17.11.122.1 definitions=2023-01-16_18,2023-01-13_02,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 phishscore=0 bulkscore=0 malwarescore=0 spamscore=0 mlxlogscore=999 adultscore=0 suspectscore=0 mlxscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2212070000 definitions=main-2301170017 X-Proofpoint-GUID: g-dvshn0TXBAPJmCFYCyTDKRhF_fZDuv X-Proofpoint-ORIG-GUID: g-dvshn0TXBAPJmCFYCyTDKRhF_fZDuv 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?1755235681601613607?= X-GMAIL-MSGID: =?utf-8?q?1755235681601613607?= 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..35764a4f0575 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_iter_load(&vmi); 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 Tue Jan 17 02:34:16 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: 44435 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:eb09:0:0:0:0:0 with SMTP id s9csp1519550wrn; Mon, 16 Jan 2023 18:37:58 -0800 (PST) X-Google-Smtp-Source: AMrXdXtgqy4Eduf1dqFGV0dbu1+9W9cWTH0t09/GrD55sJFjfaUapIBjASaP270uTPFvel1PRM7G X-Received: by 2002:a17:907:c388:b0:86e:65c8:6fe3 with SMTP id tm8-20020a170907c38800b0086e65c86fe3mr1308453ejc.7.1673923078700; Mon, 16 Jan 2023 18:37:58 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1673923078; cv=pass; d=google.com; s=arc-20160816; b=VduGpjd9X0wDOPcWuSjA5d5jM7O/2vpkfOZgpk1sNq6uKPnYmlM/knKHmJcaLIzxAR 8vmxb/0YcG1TL9IFjNnpqiAyLbEI8FbMbVxeP9vq65LpczmZfk37Txr/T9rQeS5k4qmy CwLSMUlxIjjP2XmSylaOOtCC12uu6ncxduzC3SyBePS7nyExOnJY6pqDFmVm0PYrltzT 4gauWH7vjvqZ1dfmza4L5Tr3U2VbrS7NfWIQozPZzfwSWW3u0CRK8dzBang2u0C7IgpI n/pgPxLmYrh6iLerv5Px7jhTbQ1NGbmsF67KkHdtHk/91HEXM4unWPNpfXWJBVx554cB Ourw== 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=olwumcVM5WrSFyLRYqguVJcjIriADw4SygdFoeI0bTT2h+mRbrR2LQgJJhDH2neWrA m9sOTh2BjyZI6n/Yu2wZMkMGZJCf/i8o0+7zCVcIQyHqVZAo5cZj3S2jOPiuciOoEtlR O5VBGdTi2+nZcKPkWwP4wVU+BYQqOVZ0K1m5S5sHp62K0i2MxvBYUtndwKsUsXBWtt8M 1l+DtGTyMl8VaclCSE3PT/ikFKDlByD4kU0svAJJb9viZtQZByJtCh1Mu6D7DJG8QWQm a/lfwg4pvBPuDgOtgC2I6EwYFF1Q/Wr5zh+xjsJKReFEBLFWqN3UlqJ+FSXA+dYniizI tfFw== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@oracle.com header.s=corp-2022-7-12 header.b=EQEq4J+x; dkim=pass header.i=@oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=fhFcvHWL; 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 xc2-20020a170907074200b0078c3197bf86si35457224ejb.533.2023.01.16.18.37.34; Mon, 16 Jan 2023 18:37:58 -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=EQEq4J+x; dkim=pass header.i=@oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=fhFcvHWL; 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 S235539AbjAQCfy (ORCPT + 99 others); Mon, 16 Jan 2023 21:35:54 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:35854 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235422AbjAQCfD (ORCPT ); Mon, 16 Jan 2023 21:35:03 -0500 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 92D852B0A6 for ; Mon, 16 Jan 2023 18:34:30 -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 30H091bm000974; Tue, 17 Jan 2023 02:34:22 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=EQEq4J+xxka1oSunts7Qe47R0g1R89cebZvFbF8UCX+XVl9zi7LPBM8/KIID/OMxJ2dW hqFzWVIeNBEcdADqQM9PDUYWILKAmdufsLPL0UghUnXauW3fgmcuwp4IhNyZKiY+SUoJ fS4dbqV6X1bRxBDAJmOSLpo/pzbzfYaK4qD+iOV9TO7TTWi2pQ3Wuw8No9DTvAFwzKWj yckzqdSx9FFSg6z9DdRRI/bRVKVM1WWC0iOSGilBJXamV7vZtXx39Y75DgB7MjDxA4d1 YPDiaanPwgiJXZw/LH8zVco8ZHYza+1VblPy2TqAHq9MpInNdCRTVGL+w8qjEmh0prXs Cw== Received: from phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta01.appoci.oracle.com [138.1.114.2]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3n3medbqbf-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 17 Jan 2023 02:34:21 +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 30GNXAUV020577; Tue, 17 Jan 2023 02:34:21 GMT Received: from nam11-co1-obe.outbound.protection.outlook.com (mail-co1nam11lp2176.outbound.protection.outlook.com [104.47.56.176]) by phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 3n4rq37hat-6 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 17 Jan 2023 02:34:20 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=f1jEulEsnCuJhBuDTLtTN3qqhfxMbT7pWn9gnd6/rpWw8D7Ylgf9VN3uj0nGaNM2R3b7hHV4Ww7knwr7JWSAvtRwwjmfbyD4Z+7iduAQWwW8B+SlrUsJzQmKVK++iI6OIycu/uttsAKT1+/51lxVeZXXrBj4q4JNczdUs0msODAolcLp/1s25eKj/4Iuaf+ernM8pYK18LTyGUKiWFb050JojyEJQFb8k4LtwpEctJPxCrAj7xCo2p1kwKHOgJgvg4RbeDeoQJ7N6W7JgmRB0JznSGhBoCm4+u5L8+k+vmuL7R0sRxg3xgSlAfTuu1mo1VrlaUht5GUh77dh0Wo75Q== 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=gKs/M1v9Ul1PxIyYBoerGCT8qmmMA9p7SFK1RVPcLr5+rYEsRkWbTyZLr8R/JflvXkPOpCUYI0Ci9nCU7MfenVPJQagvOB+QrR8NJiFwzCaO8G7nPWy3bAdTzr0u1RUiC6MlqjTa/UxyNHniDLfhypmFmVZcXA8QT4/SZRDR0VWl9Zp5gwkCNPfy/tZcZI2ce7xDOQ/bd+eu13/Qmliwjb+2ENgVmOnYtvmUqhwXpdTrPusQsPmXgc7aKlX0FBPPMB9cbxGM0oYKJtot5il3aYE589qeF7PaRjuO7xDD8kz0L+Jt2pRf2uyMvalHBIMWg3nyQAGhph80QBmXlSgTZA== 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=fhFcvHWLLwL/HEHvOJ/O9eV1y/W11nYJdRK9F40/d3z2g7m7OYgZfHzyY/NWl/Sk5ItYJRkaNb8tKqDSH1qomO08Sl1GZwFfFQE8fesvBSVlBdidssnACPgVeFdsRpAIJO4OeuVjr/lW4h+zKnuVqjOwePyfPvQWnxjbhRfqP7s= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by CH0PR10MB5356.namprd10.prod.outlook.com (2603:10b6:610:c3::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6002.12; Tue, 17 Jan 2023 02:34:18 +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.6002.012; Tue, 17 Jan 2023 02:34:18 +0000 From: Liam Howlett To: "linux-mm@kvack.org" , "linux-kernel@vger.kernel.org" , Andrew Morton , "maple-tree@lists.infradead.org" CC: Liam Howlett , Liam Howlett Subject: [PATCH v3 19/48] coredump: Convert to vma iterator Thread-Topic: [PATCH v3 19/48] coredump: Convert to vma iterator Thread-Index: AQHZKhwx5K/ndsuvtUyB85QJDGkLfQ== Date: Tue, 17 Jan 2023 02:34:16 +0000 Message-ID: <20230117023335.1690727-20-Liam.Howlett@oracle.com> References: <20230117023335.1690727-1-Liam.Howlett@oracle.com> In-Reply-To: <20230117023335.1690727-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_|CH0PR10MB5356:EE_ x-ms-office365-filtering-correlation-id: af36f2f3-26cd-46eb-5ac1-08daf8335519 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: +N70+PjlhVDvU/9DWoPtrUSfs7F1BGJZQ4eLMty34Uz5T85eMcrT+SaknM/6Q9qsI9oFfN6bfMBtYYabVp41L6wXIZGMSn5stpMWAiu3Vn4knY6GTy/qgNHAYu5sRUt++4ei1MC7eTa1CDQ7Ax2AARG81ADz9a/4gN/W+mZtoGTTRaMmvsR/kEIn8h9PVams8Uj1HqTGDK2G4n6U0zB0ibPWyH68VVvXJ1EBn3kHmY9zMCcHYyGDbpl7Co50zi17czOIE7SPrp3bHZjFVyrPrcR1d2uJrPeoCR2uX3p/nt/IWyptyCy5/WpAFqrsRT+67yEmio4RjK6jOx3vxoeG4v8z0Texr2+QJafmpF24Cv701FrVYvKn7pCEX8KPx2yfGmDjBY9/kjss6r91fnLhQRQZyEdHbvmkJAe7iRY2MXtjDDcYSurHEVPi7JKfx5oHbqg1Rcra4FKDzc5ol4byccpBEEsurOON5Xqo3f+d+iH95QoBphjH+gL2c1i9lxAy3+XT5W+KpfyUTgAIy1JG7WuDIJQb1YkIdJvoZPZwB57ZKfnzFX62Q94px8jkQIK71e9o3Au8hKX8MyiKtPgxzmPMGPWiIf20RG+2FzcWoXTInHed425R1l7bpnz5VzqtPmlJjQfvdahwRv47CgwRf/TYas5WPRBDNhU/8XtbQa8owXfzC7l+og1KAGmwxV7GtWlBzomo+BxzE4KqNld0Yw== 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)(376002)(346002)(39860400002)(136003)(451199015)(36756003)(38070700005)(5660300002)(8676002)(44832011)(8936002)(4326008)(76116006)(66946007)(64756008)(66556008)(66476007)(66446008)(2906002)(83380400001)(38100700002)(122000001)(478600001)(54906003)(71200400001)(316002)(107886003)(110136005)(6486002)(86362001)(1076003)(41300700001)(91956017)(2616005)(6512007)(186003)(26005)(6506007);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?q?as2fIsZFG7RMuWLqAHg+nVF?= =?iso-8859-1?q?LY1SDtgD9wcIltFtqxRohT90iqn8oo9nINtECHzjg97Bh+OMqPxkvZxlbjh3?= =?iso-8859-1?q?74a7EloLP68sr19gequYaDXPpWbUu6yvYw41xZQm9A4J/T7csk2i7wPWsXZH?= =?iso-8859-1?q?pZiQ/qE8HNK7L2fQEGU0sroPbhEHrnn5C46UYCsK2AhnNbFnA0SifNU9HwxY?= =?iso-8859-1?q?rCPgrjo9bGFYUxGcyQu9k6M9iTUTBKllYvaBbcSP04wc81GmIKyaCbDoW9XI?= =?iso-8859-1?q?9fhGzLcuY+ir/I/R+MR+BZz034r7e3e7EWSghVI7RoCJ0GK4P7O5CmAiJMJQ?= =?iso-8859-1?q?CowyL+lHQ2+FnlFF8KepeShv/ZGKwAUph4BfVCu6QyzwEuuLxKSJBS3iJ5X/?= =?iso-8859-1?q?q5ylA+RiFBxReA5mvOrsuKqU/XzkbjPGyTGHwzEGmFN67cO7I7I3UthnIV/l?= =?iso-8859-1?q?tpAzJLgiLZoLE2tyAiFsPfTDvWAewlUTLlZdudjirZ9rBGtHoeXJ5wTnYYEH?= =?iso-8859-1?q?apS7E4IIh/N4Bdl/GDGq3du+eSzY5cUjotOooYYdgVA3EXLwKnebrMPwwxPE?= =?iso-8859-1?q?MZbHQ9MSv4IFSmJsW6RaxUc99RLam68ywCs2ht8FWvbhNwfbXiBnIAWVG9Ug?= =?iso-8859-1?q?LsjXdoxB8Dhm1YX87Vd1X5b8LNzlpepWVRAtt3NrmpINl0wLYqMYhh6VuElJ?= =?iso-8859-1?q?pqpiuY0eFtQ84U7wyi+4/BJEKygdLEW8CyfSmAaXMD6Pv4OwhfGB//4a1ZHq?= =?iso-8859-1?q?7N/LTSdkueFyE22ywNkhk617bR769GUH+6h3EQXfLQrZTb8wlI3Vo69RaW0k?= =?iso-8859-1?q?/QHOTgmXNYCwAkC1K3rkZdKkut7Mo7YmoroRlJXTesdAtPxBZiKKU4h6CAuC?= =?iso-8859-1?q?CVCg4dZ10u+2ylO2WCA9JOJ1xRmD+bZ977cL8rnQI7SlpXc9gaj0+hq2Crpd?= =?iso-8859-1?q?dDXPHmzxkDXcy3Ibe2/YfuxDJIDs/RffCYRgWhuMQojI5YHnyrsTaDyNNQMe?= =?iso-8859-1?q?tZWY611dyKBKTvYms59VxGAIeQ2vLtO3s0vaIK32w6A+RHYNMwS+h1g4TVh2?= =?iso-8859-1?q?Tl4Kz4N2dEAiGCSxZUiA/omGz8SGwrzVMlVlJuQPYWpnsz9Y8LW6H3DLFSJk?= =?iso-8859-1?q?+jDOiadt84Z+4E5D3fDxI1cXQvNdS56Yp0xwaTP/o4Qc6hQSOie6V/RZQnx+?= =?iso-8859-1?q?M5dzRXS4EIskG4S39SVy5EyhhNMjR1CSmY3r41f1SnEFzzFjPl67cWt4FKI7?= =?iso-8859-1?q?jBnPuhZfyVvHTkX38EdYij8oKOb6rDtdvSN5sqI4WN1DSIe/+gDTfJ/t78vb?= =?iso-8859-1?q?ehxkICeGbNVFGolGYi6E6uszdZixWXRe9ivh1SmXN9O4jnXUP0W+qXrzR688?= =?iso-8859-1?q?MqUinmW188M8EKzHy8pf33JqWxTSy8xAdPFrP7HoEgmpGPNZKEcYDOR3BH+u?= =?iso-8859-1?q?DOQR25C5JT2EK9dumzGK7IMIqQYyQiuT0eROml0ZEe3D0T4vfCL0MVOI9XtX?= =?iso-8859-1?q?1YgcdduFMzf42ycweRqry5Uz2H8B3aUj3v5B6bzWjEUlIhOG78g5XgHcvod6?= =?iso-8859-1?q?9roNG+tsicipCm9UlWohWdWAcNXx7Muqrhx24MxmG6QL5HqzPhqoBTuo7FWN?= =?iso-8859-1?q?S2aLlDxA7mSMyvkWldeviura7TS2owx3f3Ud/dA=3D=3D?= MIME-Version: 1.0 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: ojRBOWblCB4LRdN6r5foGbi7f4ksYLFkouWYuDg/yY+KwxRttdYuuXmrMsVbhvF3uicHwai6OackUJxdg0O9ajoHh9ezdAZgQ+AkGzxOxGQkHKNRISiqjwl6uKOL7bRsL40d0ufBJ1Mnc/WFmrO1xlnIqA70hMnruAaQdRZiVj1rVTJX8V76Yhn7wj6ftZMARbaXetWuE9NDBa3IsKIVYNb5SsIQTSZZfGYS0r+G848h9UlF3bEUwMQPXJOwKrikd93ZfVmFaLLDgfhMuVje6KRCaPY7npDCBoRJp6wtpv7YhasxcOpqqBwCh7Ck9sBKCkfJZKJModBH7oenSrBZyBOicqUIt0slvubKixi0pAyWDCGTujYo8fr67qQnZtuqhOvReVkKUbqcWBSJe+RtI0pueI+TdRwEogEFvYLNERP85Ww7siywjXTlVEP5A11BPnKcgWkfOalerbXTBuhJtQJt2eGbyd8OxXE9NX1qHoszDKHTn5JXW5CoPcThgZkfZbBREbMXc4hTRk42RvmuVp6wq+OjgxD97Lw9MhGjueUWx+hmD0L3daVooDAGP6MG0yJvI5b7JA/FyFbZwPC9tnExK5YPtUV1hDF0c67sLFQIZL8lcUSL/qt+Sbk5+8NHTm03jw1LojQmpHt3k/x0gUnjbNCt+d5xT0ZRM1mWEciLe1wv2/UnGebX7QMs1XgGq3QfcPoVzJeOhFdGu267I0G4bvsKLycqhbNyPzcdb0XZIZqwg4oNNANtlsA0y/6fKzSvVsmi1vkJUAy22RCQuORw8Mc/KjoJhxGpx2bFm0etMizKgtLDrXKwngLSzV3aWxHBEe2dfNKWXyiHtZ7/oW53CDPXE9b/dKhXAvWjVqDVXvhuGK5j4MfwXtYKWk+rbsJdmUzL/CeL1HT3RIWujg== 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: af36f2f3-26cd-46eb-5ac1-08daf8335519 X-MS-Exchange-CrossTenant-originalarrivaltime: 17 Jan 2023 02:34:16.2343 (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: PguJq81f9aRH/0cc7ZSvTnhd0t/Za2udR+6d6voGOuv1YDfFCGru8FOgKi7or2DyTrbJV/Xq1obLay2qjsNWpw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH0PR10MB5356 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.219,Aquarius:18.0.923,Hydra:6.0.562,FMLib:17.11.122.1 definitions=2023-01-16_18,2023-01-13_02,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 phishscore=0 bulkscore=0 malwarescore=0 spamscore=0 mlxlogscore=999 adultscore=0 suspectscore=0 mlxscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2212070000 definitions=main-2301170017 X-Proofpoint-ORIG-GUID: 3o6rVk6iiPtRjsow9y0PYlusLDcxFYEC X-Proofpoint-GUID: 3o6rVk6iiPtRjsow9y0PYlusLDcxFYEC 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?1755235566584217473?= X-GMAIL-MSGID: =?utf-8?q?1755235566584217473?= 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 Tue Jan 17 02:34:16 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: 44437 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:eb09:0:0:0:0:0 with SMTP id s9csp1519739wrn; Mon, 16 Jan 2023 18:38:36 -0800 (PST) X-Google-Smtp-Source: AMrXdXtGgye86nmScRFrQgGYg/1ee252P0cehMqHkTas4cRi/XpbWpZOFC/1e9NmEtOwlFPoQnDB X-Received: by 2002:aa7:dc0a:0:b0:483:d49f:e26c with SMTP id b10-20020aa7dc0a000000b00483d49fe26cmr1385191edu.15.1673923116216; Mon, 16 Jan 2023 18:38:36 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1673923116; cv=pass; d=google.com; s=arc-20160816; b=Z/PUAJIFD89wcWP30KwkZe0C2DIiTAw4nWWi/Csdm7np4hIePWFUiiwbNxDLI9tAxt vCUdqPFNzl13F6/6XknrrPev4s9Bl5M7r/v5gv403xHCzKiSUapAHVEl7mO6jcog/Kxg WOe5aTevtvnaqsN6wx2p5j6tX46Ab5hHjYgEEXLxlVpnBxhNkq8c78m+bI7kJfhHktqE 2w/g8YvecnZbyidqnEaACFVIbTkldmU18yhXwkiH1thfaqXybEWeqqMIgN4ULYWWBIJG l41BcbIDvlBh9l3M08v/NFO7hLz82YKWbVwwE1R7AMyUMdW+eml749EeIws3u6wWARIE wpVw== 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=A541nIoISFuVRmZWDX2slhSwoC7q6oky2U4V12Z7yHPW0muAOpS+e3jnebst1dAST8 +TaBeo9/M+SB+eiB1+5IAGVYyZ4BVreJfGSPJhd6tPSU8pGElDqkz42kAVVGx47IZcA2 vUaE013txuh2l74wUmkUYAY6GylYnBWdv9UYCGZzdgGxVW4bzfXkvXicB3upFOs5thvi 6494mNZhstHb6ExjQDCxe5FRLRbR2Lu3xgJlJeLWJVCbcFvP+uqBLv1vBSFy5+GQa1eD AUHdt/WylAkvd0DWWLVcrgxXW4FTktySkVespRHqUjUwdPNakhSmDOm71o5x73U9GKne c4SA== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@oracle.com header.s=corp-2022-7-12 header.b=L81Z1sss; dkim=pass header.i=@oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=xi7EvM8n; 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 o7-20020a056402038700b0049e2f4c8104si642686edv.501.2023.01.16.18.38.12; Mon, 16 Jan 2023 18:38: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=L81Z1sss; dkim=pass header.i=@oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=xi7EvM8n; 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 S235364AbjAQCf0 (ORCPT + 99 others); Mon, 16 Jan 2023 21:35:26 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:35668 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235399AbjAQCew (ORCPT ); Mon, 16 Jan 2023 21:34:52 -0500 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id AF7BC298DE for ; Mon, 16 Jan 2023 18:34:26 -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 30H09iUV031115; Tue, 17 Jan 2023 02:34:23 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=L81Z1sss+ulkfhIq8Ux8Fl11r1bGyZGWy3eQzpWVevNXX4i4xIF4PBzONZriupFwttEO zzK8cu+TE0dhg+a6Dr3ga5bxZsneXqg4Yfy+zLFZQNlblWRGfoB5CzwyD4uQC3v3SHdl mLI+tgBuryHJ/8OPFybAjGs5AZIYYP8dvc66vym4SOPcHNzfxA9Q1JWMmgbgQ+GUN/T6 pOpV8m2JU/kauB5ZeY0c1CQ0i9Eql5Ss2lS3McDMfWkUf5J+z9GFRX4xbCYVW8B3x0E1 wCnzAVvSS/jPrciA9W/A7W0VFoAaHQ5QTWcsZtq3MRK9WAd+AkMlpGi4bUnKz5dwXDFy 9w== Received: from iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta02.appoci.oracle.com [147.154.18.20]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3n3mxt3phw-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 17 Jan 2023 02:34:22 +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 30GNUM0U004833; Tue, 17 Jan 2023 02:34:21 GMT Received: from nam12-mw2-obe.outbound.protection.outlook.com (mail-mw2nam12lp2047.outbound.protection.outlook.com [104.47.66.47]) by iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 3n4qyy10f0-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 17 Jan 2023 02:34:21 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ewmKbytlWy4eONsj1lALgvf2Wltyi70lkDJH3aJMGLNmFRK9I4UHBtalzYsDcWivsbnwJ88x3PeyOsXsGVvah/xh5or3+5Ctq1VG3A0lJT/c68XNbjafTbwJ3NN1EvTE2phR3lFCc2BORE8/iAT2+OmlR0Ed2PRvc9lZlUJoCrLCpZ+ddce4VR2Xbl0mX2LH6AToxYkTq6zyf7dkzev7IcXHxVLcsRDKLKbkApOfp9S4upPqIUrL7LdSs1HUBH48qX6Ih0HJ8XBfkA6919sQfX3R0BFSxxBHxQkq6OIbNMeqXJc9TE4bIPP7xD6KQJ2cytivm1OW8xs6l3MRbQ3Eew== 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=iBOaY/aRxNwbwMSXnPlB67TURhn6jDX8l9VYPrs3DYl8APKNHCRoD3c31ncEbS/9WhKZ7cPUck8oXJNNDtv3wjFnmixm85pz45jF9bOWW7v879NgMrt2OSVG4MbE2LAENcas1oNJ0DThAVSoFbjEQYyqujYQCgoHh90yadATpgCA5VQoLOk4QGSBrOCakC/6/gohQA98m5AglYYXJs6RJWk7FP1/jloktUhthpGxm4TuXizzFdYH3RSMcVB50j0WGRCifycB5Wl5zfqr/8xPuRzmdv242TeHQUh0rK2OaZDS1hJWfKbuNjgsTT4HGipvayBdHPE6qoVkQ099osmHiw== 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=xi7EvM8nablE83YSNHVfRHT5ADaxNxmwp9gM8y+AHxmnO+lAPn3742eR2nzisoZscPGhNHIQKstqQc3/9/+/zZb6y7q4bjEhdI6R3R5zT1F36CaCCLoPcGSuVGuCel/CiBD5sssvdmiype0qEDYjsVS7k2ia5SnMRbNbxz3rv14= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by CO6PR10MB5538.namprd10.prod.outlook.com (2603:10b6:303:135::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6002.9; Tue, 17 Jan 2023 02:34:19 +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.6002.012; Tue, 17 Jan 2023 02:34:18 +0000 From: Liam Howlett To: "linux-mm@kvack.org" , "linux-kernel@vger.kernel.org" , Andrew Morton , "maple-tree@lists.infradead.org" CC: Liam Howlett , Liam Howlett Subject: [PATCH v3 20/48] mempolicy: Convert to vma iterator Thread-Topic: [PATCH v3 20/48] mempolicy: Convert to vma iterator Thread-Index: AQHZKhwxmv5//sVHREG4W1ontpPDYQ== Date: Tue, 17 Jan 2023 02:34:16 +0000 Message-ID: <20230117023335.1690727-21-Liam.Howlett@oracle.com> References: <20230117023335.1690727-1-Liam.Howlett@oracle.com> In-Reply-To: <20230117023335.1690727-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_|CO6PR10MB5538:EE_ x-ms-office365-filtering-correlation-id: 6bd4196e-94d3-4660-a4a0-08daf8335565 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: SkUe0vKK1q9hQaw4PyaQ01xEl/f/6QkDKL4R7ICTeSUWvWpy4WCdu2/TVu7BYJGMj0VShMv/fCKXBC8AtKoQHfjBUZ9rkyEwO2snEYJGYy/klDm/SLNmb6Ngk3osAXjUOWzlneCwJDl0ccGY9Yip3YBFG/c8gsfsPV1/eVXI5B6o05TtAQ1onBmU3tlt4SCtRgdQo94TvyQEhb5SFrdXwL0DwlOL4U0vcE2mHsoJJNiAia8ZRXM/5AQuKPbHTFS9uBp2t6u9R1nxtiCl3xGlj+hqMWZh5Vf9kD9SMfSrqqKz+5DZyERNly+49Stfa7u0Ce/kyQlUA9gv4SEJ6w7lL+tZ6lVxe6v6QwlpNog003SfbxldR5/K5S5/vy4ChVJUIgMLqssM4E+yTFdBG7gMgIptyRujptz/zs9xJaw8Cl7d0h12gdXH9IyE4mA6dSXn5oQqtTw4DtuknatvrZTYMldSTp853tAK4pVI9L6YnBjEE4PMTnQrNqmcuKodIRgZiw/FinTxYVnJb8I01GjAk182QwawTsjYKgGrzbeJsys4mjs6cAH2pgi66vy8T7JnA/+m/cgUGeux9VTHfIUef6AaO2a+Xg4iDldowsp+ohWanJE5yLL1jWj4/MbsaEFvnmzOtG49GxoZPxw1k0Lh9jxDwel84o0oo5UOTM/NPgXFQWIcGimDYAQyARGKecn6xPu0GwgG6HfR0UeJ3ZhQIQ== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SN6PR10MB3022.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230022)(366004)(346002)(396003)(136003)(376002)(39860400002)(451199015)(36756003)(91956017)(86362001)(8676002)(6512007)(64756008)(4326008)(186003)(76116006)(66946007)(66556008)(41300700001)(2616005)(66446008)(26005)(66476007)(316002)(71200400001)(478600001)(38070700005)(6506007)(54906003)(110136005)(107886003)(6486002)(44832011)(122000001)(38100700002)(2906002)(5660300002)(83380400001)(8936002)(1076003);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?q?Q/dbcQ2DO26m7pAVM0bYfCm?= =?iso-8859-1?q?aNPaH5nUN5/B7GGtikuqZ3q/eseF2M9YL06fxq9MGojAuDEHSo1TGuvvBIdf?= =?iso-8859-1?q?6TH6GfqXJZS7BDuoi94YbtPQNjFdTxic6R+rsV4KKRL+pcoykwFe+JCKavyD?= =?iso-8859-1?q?z3l+v9Nl0AIpEWmReyPS3otr0KSkuZHwIHxoDlxxO/I6ZKcp5cD9Mc7EWUYB?= =?iso-8859-1?q?X82UYkHNVoe2QiWQ9oh6PjrEo7gIf9MFETs+2V2WOJXrmhI/G8d+nZ+vcBQf?= =?iso-8859-1?q?6i3+eLFDxfh7PfJFk9lNayndzEStVExvdQowgotAtL2Ylzz8cWIAiqxZaSw+?= =?iso-8859-1?q?yQ1ydYU/VCpI716yg4V4FoO++iw6p+wjCXwbdHYhN8Xup5m5kZXAq51kiKhv?= =?iso-8859-1?q?9Tg5zZ7F0keiI1VOtJbfVzk/El4eilk3iroi62i/L/ycxqnEZ9noL5MGDzeF?= =?iso-8859-1?q?hD/f6oxG/v2m1JmMz1q47DLvRsmxmUDtTjFUxN5rm2t/0amRcWfMW+gVJzeO?= =?iso-8859-1?q?AM14CYXfmu6A36JzLdru+cVQ/VmTsCP2Nx5jhb3rYiv41DCECIZR6eMQx7Ud?= =?iso-8859-1?q?SbRUdCKUv8wWHKNGPu8QKSRpLdcCc07Cxw6ALnRnPZUFPTvO3Zxl4JTLBU7Z?= =?iso-8859-1?q?TymLegU3DK4mHTjv9mfWX6uUwcqnM2KrSWfw5qYfLMu3vJYl7OfF0MpI73Se?= =?iso-8859-1?q?//B/vDIvXPVUHp9PlZmiL6b2jcQXeWK3Eym2DalC7dCDof1riAzll7+eqR6M?= =?iso-8859-1?q?kHg8ZWneh7VfBEiBN6ITfMHmiLzYKkvxbBeNUa6nDliX+pit9InSozpcJo3/?= =?iso-8859-1?q?XPUF+XGPiE4tkA1IvwJ/oYtUjXUQaBs9XcMzo3TpPSCUCct8Zgt17kag7/x3?= =?iso-8859-1?q?Pn5vr7rHH3L72U+r3e39qn/Ljdy/lVbUxZHgxiSFeNx4UNJhD2EeAo9CP5Pk?= =?iso-8859-1?q?jMLCnMJWGm1uFTPnWxtKKPzU4+ca0AICVCTGo9mxC/tp2XH2hwhNJeZfuQ8P?= =?iso-8859-1?q?/BpsaLMJ68fU/oJV0ioxBfxof/5T9G9gaUWTBmmuvLFsRDct0ZiqvFmOvkIT?= =?iso-8859-1?q?/04Kyk3SDohRX4BrVBf3mkAtbEp8GTA+0bFHmqrPeSeoHpgV2a/NClVSUyyF?= =?iso-8859-1?q?2c3B9WPC54lJgi5flTloAqjC+OhyYdPO+XJvwktBfyUTLqJ5DgdGfdgpdqk8?= =?iso-8859-1?q?7IGn7PVAWWsakBRL2pYjOQSNcRaZronat6ngJL4yk3vcF97kEacJK2cuTKAt?= =?iso-8859-1?q?nySq+Rrf06HWXm5w8W8lY9gFksOkzKzFIH7/EXv1P05eIjBSeaBjfS99eOmJ?= =?iso-8859-1?q?WlLFmFnBhi2XpYFYbEbnaUGDsgCcnkxj2118JtveCzu098M93i7LAovdzz7N?= =?iso-8859-1?q?YgE1PK6j5LCk3M0hLCmHo/vikD18VMhOthfFtbrcEiPh23dcemGpFJX72sVp?= =?iso-8859-1?q?3a1tzueZO1dmmbcETL6ekJ200C+QkA7/Xkecz9ZJQLU4pkYUJJT3cQ/rkD8L?= =?iso-8859-1?q?5olAhSbhYq9Zwp65SPquc9om+/lplldomRJnyizL7UnsyX5Svd6sa+1AUblE?= =?iso-8859-1?q?xKweMMqPbb9sfYFYFFyO9yRE+5ryZ2Om0ls2Xinaj8KHDPOqkjLW4i9XX92H?= =?iso-8859-1?q?x2yRiHttJSu6USniNkQB2jIV2nYJ8NQB7W7Aw/g=3D=3D?= MIME-Version: 1.0 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: XFWIhPx1fTqiwrz89cDyDJuF4MRoxSBehsTDfqtEkkWj4GiW4oJD3jZWmBUToGBt2t2E3I2TkHtBtq6vQPA4ueIBmkkgOGDMaAzrC4nQIRxCQ5OsRfC9EELSkfVJmrjJ5tu42Zz1c4L6+0eTkwItZgjrqlB1LJaF215XAXQ/Ytc/M1kfs00vN8Sw3I8BpisyAJa4m9sv1edC+rmCJTLDtWOHoxgsncbBeesNEnbrLxp5kfrnKyQ2QorxULnbpqwMauT5qOaX5dKtmvXQ65bV8N5IJDedXbk2AuKyneYrDJv6lNNudInZixmEuD+Xj7HtY5/Nlb9tDFi0jeBvJuLjkEN5oofT0Z5sGnZgSHP5aI1cWxJEU+lFVjOa7cKuvYVtqR+qo10b8Y0/a/b3ej/ojFV2tyZ2CrxlXkxrSVTn+Bs0AyXd4zlb2Ys0dnAKpMUYxr1hCCxRkaSBreJK8L0fP9x8o3gZzQMX7ltLh3h2eK+L8LwplYJtPWR7Vy1+7UmBPsMG+bMBJge8E1HnASMeE+6BUTIGLoTGGdYLojZWaF5Yi4K/KCJasQHuGmojLOcesi6mKf3mrhdCdJN6hQoZKQ2k8OozBeZyxnvOTcrzvDcRoxe7qkGR/HH/YdVdkO59522ywHMeiGKOo1gJPDqaYBoTq71GTRaGGJsRpouabx0at7GCNRqDATkMdSO+4pij7iUFRNM4v1e0hcjjJDue1eMEtSviqoQ+31VVhX881sAKRHZ4YmdlTj6rDG6ovhPeuJf6XRtDYxFiwhsrDdXbghJs9OsXFZ9o4/HJcm/5YmY2DA1FQOJO0HNUHTfm6mqBROaRSmdl5V5oIDOLif6OOsUj2f9B6bt9eS14Mq0asQliXDoQQoVMilOvfUn+5u8Nvy+Os8zG1I0xyInZ8hmxaA== 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: 6bd4196e-94d3-4660-a4a0-08daf8335565 X-MS-Exchange-CrossTenant-originalarrivaltime: 17 Jan 2023 02:34:16.6405 (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: IQzMRIyJGAx9hEZN5Tm0zHGCqJSXRH25GQBGvZrxED8P/d2zDO1EVamILywVT6djJv7j5237rmBBtjb4sSIgKw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CO6PR10MB5538 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.219,Aquarius:18.0.923,Hydra:6.0.562,FMLib:17.11.122.1 definitions=2023-01-16_18,2023-01-13_02,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 adultscore=0 malwarescore=0 phishscore=0 suspectscore=0 spamscore=0 bulkscore=0 mlxlogscore=999 mlxscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2212070000 definitions=main-2301170017 X-Proofpoint-GUID: t1iGQOv73cphk7fozzEhNfg_EGTHkaj_ X-Proofpoint-ORIG-GUID: t1iGQOv73cphk7fozzEhNfg_EGTHkaj_ 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?1755235605700786312?= X-GMAIL-MSGID: =?utf-8?q?1755235605700786312?= 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 Tue Jan 17 02:34:16 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: 44438 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:eb09:0:0:0:0:0 with SMTP id s9csp1519804wrn; Mon, 16 Jan 2023 18:38:50 -0800 (PST) X-Google-Smtp-Source: AMrXdXtz6IDksy8mcHBLlAkWsHiunsy+IWnzi3fbART8olRcvun/BcbUQqzVgpIfaLtQaqN0LGCE X-Received: by 2002:a17:907:2c65:b0:86b:d0ec:7898 with SMTP id ib5-20020a1709072c6500b0086bd0ec7898mr1247660ejc.7.1673923130731; Mon, 16 Jan 2023 18:38:50 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1673923130; cv=pass; d=google.com; s=arc-20160816; b=aD32vNkFEs5+TnfBYiHMGpPDBAq7+9tlsAijk38V+bq+eaoYaTkNwYyN6m4wmYSn8a 21ABymltRZaMGz6IJb7YPRkeYMUNujQ0+12qoXlpG9ua4pp/c5m8CXfSbE+6OPXzF6qm fzuh06s7UlBV8cn1vhv5AbEGaYUSNM4lQG7CWv2wOeVwrxJmt6iuYDcELr+bQa43LfFm ufbHxzGKWwYMXzyfvYJkU1/aRbUCs9va7lU+a1GjruoCcWNT3UPudw6BSInZUJtxerIv 2pWJR31591VcOoRCcZsZNn5IaKOVA6L/R5ji4Emsa0FBdfTIBc3FAg+QccXj/PF9jBuw UUQQ== 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=70VD0FV6++Xvp93lhJdXkO/1eLAxSinyU0u4BGcxwpE=; b=Vg4ShTLIYfwd0z3SLeDCKtBoHVpMt7hCUPCTh3yweD/oe7zz/hiMuOutWPXGlj2Z8S dykeQkPs7K6yuqGHC/WkG4P/zBTdm/JvbGVvIlQwa0emyfGh0K7X7ED2opa8O20tCSGl FKdLWV6N3lUD5Hx1Nc1wgJnKpSsRs96lB8X44yhz5zrjE9vamw2Mb4JFdQovN/xNTbgR ts3wYmIdO+zfByoWi3XP/gSzpNRKGvKhk7REB/hKG9f7KX+7pEWjgk++ZVLfYo/F6Ope ROwKOXkkyHDXqRfbuffa04bC2lS5O/JmrLIz1WUKc1h+5HCDBNPSE7QV6gLrDcyIiESJ /OAg== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@oracle.com header.s=corp-2022-7-12 header.b=LLk7v9CO; dkim=pass header.i=@oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=AQCLeMoU; 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 js19-20020a17090797d300b008723f17d781si1662893ejc.769.2023.01.16.18.38.27; Mon, 16 Jan 2023 18:38:50 -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=LLk7v9CO; dkim=pass header.i=@oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=AQCLeMoU; 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 S235536AbjAQCgT (ORCPT + 99 others); Mon, 16 Jan 2023 21:36:19 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:34714 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235467AbjAQCfP (ORCPT ); Mon, 16 Jan 2023 21:35:15 -0500 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 997452B082 for ; Mon, 16 Jan 2023 18:34:32 -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 30H091BY006716; Tue, 17 Jan 2023 02:34:22 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=70VD0FV6++Xvp93lhJdXkO/1eLAxSinyU0u4BGcxwpE=; b=LLk7v9CO81SCconK57H/s+yQrDwi/LHE6T53yJhCSBDm3EbGc6GYcgbMJL87J+9Rwk89 kDTOVY0ec5WZHTrSZeoqSpvNG16JN80QN2+m/LS5Il99x2Y3PN8zLDakj0IkEqEccnjG kTunfkMg1go7jyS1sxtqPJ4Nyk4LJzLxyogOMHKtFt6PXwUEbH6M2RGLIYtNWAzWx+bP Btv84JqDbg5Q8v2EBr2ouONeUMdnrc+8Xm7JIIhQ36SYO01qBEvu0didkc8YhQ/QmO5E jiROYr7wk0gVovSvMf7zAtCplysmoyENvmGYHcm7cxxoDkplxqucZAfpb3tfB1V5MCCS LA== Received: from iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta02.appoci.oracle.com [147.154.18.20]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3n3m0tkp08-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 17 Jan 2023 02:34:22 +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 30GNUM0V004833; Tue, 17 Jan 2023 02:34:22 GMT Received: from nam12-mw2-obe.outbound.protection.outlook.com (mail-mw2nam12lp2047.outbound.protection.outlook.com [104.47.66.47]) by iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 3n4qyy10f0-2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 17 Jan 2023 02:34:21 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ZSRBJbK/rb9zOflgamISTpR2OlP6BkmIR0u0Mr0zsW1RtE8kI4hQJ4YkGVOSYmNuMLEClb5Rh8sfo6zpH1XZ87Kjs952YCWSUMHS8oXpZnGA7y+0QejAM1eKyrTlM9u5fAvLHULjO+O9tyzsb84+UQUgV6wXCVIs1akKX2GQgt8uLv/deU4wkaXtw/FF2FOGqzAoL2wshRoX1NtzcfIPxYNLlpwpAlkpSpfGdKPtErXgFmolUdRnWLWLbeNje0E+I8n292M68+Q6SLkLerU2B73+rtg/s3TX22Q1wVshnjH3ghhNF6lDQVfoBNE15cePcc7dkTn/EcEu79EnaVycww== 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=70VD0FV6++Xvp93lhJdXkO/1eLAxSinyU0u4BGcxwpE=; b=IaJ01SffOOuef56FLUAZ8QmLrh/bJXWUkLkYYTIFhre+QXkjEDIffL3nEOgD1pyc1RaZaXGwDtAbeP1VIz04tK+nG4BFpJp9IQO8LSwU2j0leSlgrY9s0kWxJSnFNGu9hqtRUkJhMCFxD9+lMIeAG74dGMQNa+pCvY/8KKGh5AJKeuAi+3g+/GG8gKgD9XoGO8WcdRMO1cARTTdPw+bpJLeQalucncvO2K9JbzvsG+95YmYmeFxnCe53uSBKA5u61vRrSB+FFWhEB6pYg5yQBiw2GQn0rHXBeWbZGLuYHNpUGYTPzcuv+XifQlv1y9KCCrzvOIuJRVMtcGWPHK8PSA== 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=70VD0FV6++Xvp93lhJdXkO/1eLAxSinyU0u4BGcxwpE=; b=AQCLeMoUtdn4V+ZPr7OQtHiiUlBSGwD4Xsp5aITFSJ78F5Nl1XmkV3uLzO8mqFlZ7vZiLSvFzHjR+JZr9zLUKauN2/DlWTqiZiEO9bvWzWjDIcWkk/4toJwQk/oVBs/xF0mTWkVWlXiZcBJEqXKild3SChXI/XyJLEl7G6EJxLQ= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by CO6PR10MB5538.namprd10.prod.outlook.com (2603:10b6:303:135::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6002.9; Tue, 17 Jan 2023 02:34:19 +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.6002.012; Tue, 17 Jan 2023 02:34:19 +0000 From: Liam Howlett To: "linux-mm@kvack.org" , "linux-kernel@vger.kernel.org" , Andrew Morton , "maple-tree@lists.infradead.org" CC: Liam Howlett , Liam Howlett Subject: [PATCH v3 21/48] task_mmu: Convert to vma iterator Thread-Topic: [PATCH v3 21/48] task_mmu: Convert to vma iterator Thread-Index: AQHZKhwxCx8GvgirI0CZkAgmDYLl0Q== Date: Tue, 17 Jan 2023 02:34:16 +0000 Message-ID: <20230117023335.1690727-22-Liam.Howlett@oracle.com> References: <20230117023335.1690727-1-Liam.Howlett@oracle.com> In-Reply-To: <20230117023335.1690727-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_|CO6PR10MB5538:EE_ x-ms-office365-filtering-correlation-id: e1393d10-a8b4-4e57-2407-08daf833560a x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: pJmZggIOEvFYbZ2u3gTkL48sKQxF3hyxd6T8uikBgPIsfFRsr/uq8/BIP1CBw6vYd4zYkMo+0fySlkk1Z7DEowIf38I2fpjgP1XX/mpN1/WiRet95czagbunjsCogHT7vINQzU984kZmmPTG4AXHzlrTmCbWu0QyOMRWrQJqjRL8EtKHnbJE9A7CJPAVRZChrRPv5j0HbDf/JOP1SykutE58aD7eMhpy70ufWglkw2JiEZGrvmMiQLIvVTdYf+d9/p3a1XT3rKdRIbHedP4cas8SOWhPk/4VZSlr/c3a/vNYZ2IDXm5DW1Ci5XKP9s9wbXevtEW9vGeBLqYlUnC2yKaZyfjxS9ndhcFlodJQuW5dU53LMssOFB85NGvMjSDAjI9QFhvj8al9GvWCudrsdETt4nNKtosubRO+UcMOpPXNv12whQKDH5gsfT5/D/vGpn5JSnEBgjqwVlF6+muPkbK6uDTGa9h/49eT+Uaqwh8RjRNm26QjBLQMCnpTZ+C2Nm1zXz39z82Q7vYIH5xUuSnyzZNegCGg+V6AG0fe/NVh1+UISKK33NqAqjNl14H7G76rKK3Q2t3jIMo2tD6kLt4nhFxV9fTprS+9LZDYVicLNLJ5y5jiDYK99U6aO1doK6edRTRptedKUErM4UnFkK3SyjitvIKPVNlAm2dRfu+5t1HaE2WE7bqUv1nPbl1lBJno86050cyRXZo6vOjoOg== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SN6PR10MB3022.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230022)(366004)(346002)(396003)(136003)(376002)(39860400002)(451199015)(36756003)(91956017)(86362001)(8676002)(6512007)(64756008)(4326008)(186003)(76116006)(66946007)(66556008)(41300700001)(2616005)(66446008)(26005)(66476007)(316002)(71200400001)(478600001)(6666004)(38070700005)(6506007)(54906003)(110136005)(107886003)(6486002)(44832011)(122000001)(38100700002)(2906002)(5660300002)(83380400001)(8936002)(1076003);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?q?Cao/ocZTjIQXf2gEFYy/7Yr?= =?iso-8859-1?q?79FfdCqluclHMHjAh9oQJ4AJcCv0TbSfGEI6OTY3l7LCAjVKjSmV1teoMzBD?= =?iso-8859-1?q?TY0w1q4tzMsTdwGHYY54+LFtLYXXdiljmvS7blYoWQ24fCPasZ5qFrHRx6rq?= =?iso-8859-1?q?pdIUhWbGFL/BScUy80ri0qtz0UVmq3+Tog2YveJCCJ3oCmeYyGCXnzHLpNeT?= =?iso-8859-1?q?kghFQW1eHtA6f1cbGbl0hZ0zS7Tz5mDBRczNOdMyT5sJlbJxeFMg+M64Pdz5?= =?iso-8859-1?q?UH0CSizJnyALrll+gZA/dYKXt3i7xjUDOhjOR5OddoMIE0oPGZsoX6DIIVll?= =?iso-8859-1?q?qY+/wKx1uECQd4/SxOx57g9CE9xYn48falhoTcu3+8+0/k+R97tZtj4+SElY?= =?iso-8859-1?q?m4xBx4XRZgEw3Te+FaCxt4D2RKK7dWUuzm3WmKLRmkf+BqA/J/PUUwBvkdvq?= =?iso-8859-1?q?hRx8j71PGz3mJ8h5xeZZup+e4X9hGcrESlhRLR2CFawkAwMQTOA9WnH6uN9T?= =?iso-8859-1?q?XnQBkU9AUJ4Y0nrQCt/r0QPbFsSYdwbeOrH6VhL0tgOfm++xjx+eIxHtsPC0?= =?iso-8859-1?q?Qhet80Hm+VOxn9NodJslF6Xv7tAPFs6CBzcw90wpZAagzZLD8RLpu8E1cQ/n?= =?iso-8859-1?q?YqLsM9ePeTxXkspgTfxOY9uF6HUfscQgNHPwhxlJRoaeZE/33PYBhKC9lp8E?= =?iso-8859-1?q?U7j/a9zvT5u0phVaUvlThckdrimQ1utXIRPdR+Wte9eGdlHCWfOlZ0ijpuw+?= =?iso-8859-1?q?BfzYQxV5evNqy8QR03aLvBmgcZbhsz3pWorDaY8uJ3udoa035TPi6+86/qD5?= =?iso-8859-1?q?olg75szKRQHo5rc4tHTdY1c/yBagyVEcf2tJ18JGuUHu9L3SVbY9ZH1/NfiK?= =?iso-8859-1?q?LbN/VHYPb205mui1wezMRodR8u1BFDWtV6p3Kc2oIknPpHZmu81qE9Uh1fMU?= =?iso-8859-1?q?TFy0rlaQbrfR12xpFAYDRV3/t4qTg4DkQOpx8hBWaWMn0PxV08bvTLjQV/Ex?= =?iso-8859-1?q?nco0Lu4GNDuaAyIeabpU0DlO84L7Ojebr5/M3UELySHZRJcXoKSWr5rz/Kzi?= =?iso-8859-1?q?7ofHoXMa6Lo0dKssNcCXPbvgUGg9crH5HdIVkt1niRUv7rlaLrXM1i3IA2Uq?= =?iso-8859-1?q?PpPclQDI60G/Y8t9i+go5dV7IDeWLsVdh93KUZceAqG0flt9Mg3fy/x0Z5g2?= =?iso-8859-1?q?LFuoBr0/BhdJ71qBmqCPA9RcIhxdnkYTO3Pd8XIMRiWE3hTV2ceLKJ6sINp2?= =?iso-8859-1?q?kH1xF6fArsCiyaDEMcecG8Ayu8+Ldlb/HUUZ5HZdRDl4Xqzgw4giOclIltgM?= =?iso-8859-1?q?HWHvWPEEwTklk8mar7LAS5p3fVxhLDqjdzBIE0mka8rs1My+uRO4PEn74dzj?= =?iso-8859-1?q?Sb1EOtLBLWNIORahhU4PuM5r0Axc2lHiVSsWL7SzUsnlBOz6KYxGRErnb27U?= =?iso-8859-1?q?YC/rHrXk9Hb34jdXHiPWDExrb2OfVug8kLJyFXcpO2WORJPv0Q7ezdlbadj9?= =?iso-8859-1?q?TGFG8L63CPWLFQyOLocFVSp+iqRKevjdFLYr2KXsxJcBe/T5FJ/e6QqD5ajr?= =?iso-8859-1?q?h1U+u32Fadc9v+qn0LIaXFwNCzXooLLJxzpphh8cQUHqkt5RvQOuJmltIoYg?= =?iso-8859-1?q?YJhB3gKyN7Oc3J1QpdvEa2p81cbTBeXloW84yhw=3D=3D?= MIME-Version: 1.0 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: UwApPphCwYhuGUVOAFRCdSS/tuCXU9G4LwHcQiWu/ImP7jisIKp6JX85gGKHjZeeZWDsBevIsQ7vNSdSNY3wU0YFwhLxqLjJKrQ8B1ptRYah8KFGSKD59AWWrZ4DtTCy1N0r7KFwgGP6KeWp2Hiilusma3/bpD/snov51buqFYprEfo4MEEXoe53mWITcRAbunGSmJvcf9ebLc13BMTmbyHtEjGVLBuaJXvK3I42Cq51xXY3sbW7qJCCk35mj2cJ63Nq9gEVHdXcLt/2LLycz2zPvpWtnRfoUk2u8+Oja5kKvWB1fZboKjA2ieNslMcsmfpRa7int0QfooqRu+wtwIpy2T2NRpb2dVD4j0c6HgwtZLx7Rtg00id7oGCOY+/WPKHhSwE7q4Md652ftrMulM7u/3DQE2RceF/6rjNdcsrw1CIGRHHToHwLL+zy+Hza5LhIgooN7VQ2TF61iE+I1R2NC0Q0jxUTZB5QdQHkyPbFkoxOJ2+gdXKKw/xB6rK3wgzxy6BaYGADdKSOuWxAC42es2YwvxrB7+asOU8jCRh4WK22GwQdd/UfwrQYZrPAb84Qf0ypMl7S9aXKiTqMq0wtbcJ51YI6vGKvZjyk86dSZlJ6xgNtfvoJDKwUYtN0Y6ERLNBiBpPIqaZjIu3PstQdbMPeJ899LG5YEYHEGYmjFyrj0Ul/Qi2t+16hEdUmcirdDKN+FHowghcaoZvW7X1QPsL90M0x4rs7Hd0TNtv+DBADMhwEYHtfLPGAq0BxbksTZNhUemM1+EbKy29fXyGZrpotJTT6M0l8QgM+ZbonDyc/9cMhipP+iJuoDQiNSja3/2+z6SwCpvkuwQJrgz/pI/Qqcr2oMVk2roqT47Jg32SyeKOQYOtW142mmMesfl6hJbWUCT+3mTdiVA7XZg== 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: e1393d10-a8b4-4e57-2407-08daf833560a X-MS-Exchange-CrossTenant-originalarrivaltime: 17 Jan 2023 02:34:16.9530 (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: 8Cxw9Kvc94+V/qTQS5m//+f8XP71qZSpsHwOT4yA8fE6Rl61Uk0xdPq16PCUPhonssmQrBIAUrcoEAyk3flBtg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CO6PR10MB5538 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.219,Aquarius:18.0.923,Hydra:6.0.562,FMLib:17.11.122.1 definitions=2023-01-16_18,2023-01-13_02,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 adultscore=0 malwarescore=0 phishscore=0 suspectscore=0 spamscore=0 bulkscore=0 mlxlogscore=999 mlxscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2212070000 definitions=main-2301170017 X-Proofpoint-GUID: KduFsRjvXVWXfZR25154aESC5iIE5ZWy X-Proofpoint-ORIG-GUID: KduFsRjvXVWXfZR25154aESC5iIE5ZWy 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?1755235620625702088?= X-GMAIL-MSGID: =?utf-8?q?1755235620625702088?= From: "Liam R. Howlett" Use the vma iterator so that the iterator can be invalidated or updated to avoid each caller doing so. Update the comments to how the vma iterator works. The vma iterator will keep track of the last vm_end and start the search from vm_end + 1. Signed-off-by: Liam R. Howlett --- fs/proc/task_mmu.c | 27 +++++++++++++-------------- 1 file changed, 13 insertions(+), 14 deletions(-) diff --git a/fs/proc/task_mmu.c b/fs/proc/task_mmu.c index e35a0398db63..be8d54e45226 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_invalidate(&vmi); mmap_read_unlock(mm); ret = mmap_read_lock_killable(mm); if (ret) { @@ -950,31 +950,31 @@ static int show_smaps_rollup(struct seq_file *m, void *v) * * 1) VMA2 is freed, but VMA3 exists: * - * find_vma(mm, 16k - 1) will return VMA3. + * vma_next(vmi) will return VMA3. * In this case, just continue from VMA3. * * 2) VMA2 still exists: * - * find_vma(mm, 16k - 1) will return VMA2. - * Iterate the loop like the original one. + * vma_next(vmi) will return VMA3. + * In this case, just continue from VMA3. * * 3) No more VMAs can be found: * - * find_vma(mm, 16k - 1) will return NULL. + * vma_next(vmi) will return NULL. * No more things to do, just break. * * 4) (last_vma_end - 1) is the middle of a vma (VMA'): * - * find_vma(mm, 16k - 1) will return VMA' whose range + * vma_next(vmi) will return VMA' whose range * 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; - /* Case 1 above */ + /* Case 1 and 2 above */ if (vma->vm_start >= last_vma_end) continue; @@ -982,8 +982,7 @@ static int show_smaps_rollup(struct seq_file *m, void *v) if (vma->vm_end > last_vma_end) 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 +1278,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 +1298,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 Tue Jan 17 02:34:17 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: 44444 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:eb09:0:0:0:0:0 with SMTP id s9csp1520101wrn; Mon, 16 Jan 2023 18:39:43 -0800 (PST) X-Google-Smtp-Source: AMrXdXs5PuxJn9ITsuoSM9B52OMX65jAGX8jKAyJiwLXX+piASwpxneKHUYVBMZUyWcWN90nknlA X-Received: by 2002:a17:906:80d:b0:870:d15a:c2e0 with SMTP id e13-20020a170906080d00b00870d15ac2e0mr1208836ejd.51.1673923183313; Mon, 16 Jan 2023 18:39:43 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1673923183; cv=pass; d=google.com; s=arc-20160816; b=PrBfxbhk+GQPjg3vy+0hI42u8f4NqXYuiQyOEciuiT9rzN1DCi3IPNGXjzh74nzbxm O2TSZOAlvnteuXxr4ZQy3DhMwWoebaerYKMbpOfZceq/xtQPXBHxTHozwwdSED2/s7ec nwaDI7b+uCZXrTNLsMBpUIOlTJtjdAKcjJFH70R3dqIRGaJ5bEP0+S/t70/jejm1/Zn8 Jhqae2sI/Qsv1kEgRHsabmxLw/dD8EwGuT2utA1+XV0lAHMcRzF+uCooFaV3DLZzEcZZ QWU0VIApIKBU2t0qpLDYiRiDgm0k2kcJuOWLr9Wtoz+BEFB8UkpUj8BP7RhGBRi/RwAj NepA== 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=lIco39qB4z2eOVwhlTp0gNupW6eLB7sCICNq02CD8Pc8F0j6MRDb07F2qpIPk4vhEv Wn5QUML2yYs2aN8wM9Jd1uo42PSpCEIQxSe1Y73Wlp5MBg6fJ/ELn7Gx1j5DU1e0IOpu 2e4zu5iI8Fu2d4CSXP8eNnx9/qbKnt0j/ghQu7djlqwt5Bv6RvDdDuESiQz+pIij3gHR en5aK80+GSmTzVvlnwxLxMHDI+E6ekG31BGEuSOVwrRbdROnP/WC2MVZz5+CQaPut+D4 t1WV6fdH9mJwjdhlJzy9vapzfg63TESatQaXL/kpDnkLICQKRS3XziIWBlgfBtiW3sI/ SmCw== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@oracle.com header.s=corp-2022-7-12 header.b=bTx14I9D; dkim=pass header.i=@oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=hxq46zGA; 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 l16-20020a056402255000b0046197a8b7a1si25011878edb.485.2023.01.16.18.39.20; Mon, 16 Jan 2023 18:39: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=bTx14I9D; dkim=pass header.i=@oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=hxq46zGA; 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 S235485AbjAQChG (ORCPT + 99 others); Mon, 16 Jan 2023 21:37:06 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:36600 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235501AbjAQCfd (ORCPT ); Mon, 16 Jan 2023 21:35:33 -0500 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id B878D2CFE0 for ; Mon, 16 Jan 2023 18:34:35 -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 30H09aKG011754; Tue, 17 Jan 2023 02:34:26 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : references : in-reply-to : content-type : content-transfer-encoding : mime-version; s=corp-2022-7-12; bh=SJEJ71CHLPVQ9y9IwfIDwgRcUFzrXy+O3J54pk2rrrU=; b=bTx14I9Dq4Y4NFauaU90kEz4bNz+JxrAD8oW5TMN5o49K1QiRYLcpVVPAFYtm9uz/6p3 cApl8BX1K6H3/Ze7Sjqs4CNQbYzt5UKvLcTZek7k8M+xUnnk0m297wRyirNDpBwQ8i+6 HUS9Ca6d5/b6MDLp9O8A1wG8X4+t+zUgaFJU/88Uj+6lvB+FOd1WQVaf8HyJZg1sIgVe vV55DZ1qQw8rt1Gzi/HS7jV2MgNqWOJSN4YL/xqJsAh10R+jCU6hFn4wMlNn5QbJUHYE 96YZj/3JTr1V7a3y/Dre9fuuc5JOQ6TsTaDpGVGVtHYO4192Zv+EesPxG0WncPDU5KDz jQ== Received: from iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta02.appoci.oracle.com [147.154.18.20]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3n3k00urcj-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 17 Jan 2023 02:34:26 +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 30GNUM0W004833; Tue, 17 Jan 2023 02:34:22 GMT Received: from nam12-mw2-obe.outbound.protection.outlook.com (mail-mw2nam12lp2047.outbound.protection.outlook.com [104.47.66.47]) by iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 3n4qyy10f0-3 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 17 Jan 2023 02:34:22 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=doMujDCn/i04jUoWHSGCfK/0Wlcj4KrXd19c2ybQhelH87F2ga4zO2OrtjtRbc5mXD+ZMqk54AzKvVaQ3Qcf/7tX00Le+3s2ISmGsCQvro6iRIbgWrx8HF7Cv0gzJVt70JtTfS/7EDEf06jinFUz+D5B6jeazFmUK3GO1lOYNHeNnOgLkocCjwmtvJOdh24c+rURYCqBKYQz34dd26n2Apvd3qT4y6ZdcScC33Bf3Bo2GKrK4YDKSJ7f2E+i0s4zauxdYWgfDIFFPSmNBjHmlRxskkSEyayjpgtVIfnBy72Ec007uc4XsCpzhaRYSYh+AX3S2+//ijb0d9xK90RoTA== 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=HpWTjt4ZoyX5wtc/pRlCotnFhAmBDf3mCPR2obx7dPzGfhLJEo/OD8OV7m0Esu6pRMrJa1qsVOtoPdYecZuIPRlfbAjFo1MAPvUgkDh44RYjGq4ShMHa5QeBqTkYxl1WVwdHxv/5pgTRMnZHBtNgtrxcWblLVkukHpEyP/2fqrjpWyburwfMwbLxsWwSGx9eocxUDQpJI9cEJcQI7qIbxwci2g8aRKP9HCyk7a9X85M4vjX63Vi9GTulxbVe5KLam4VuxIv928clr6tvOMNXVc4GkoZaAPBYLkUQSlwKHNqddACn8djuKiBeJj4xeZAX12gNNOcttGXGA61GtShGUQ== 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=hxq46zGAnh93R5dAr8CChHFzfn+SBLVHmNPTjLhCW4NcAxCag4c86Itdj/OlzZMN2cJ4vOrvnJJkp5aavrKdQ6s3j4b/7VBNxSno05bfGY3OmRU7yw2P1MDuXZAkFN4ExahDGBS8p5tejgOd7XwW3nBCORnJaxDsEHSpygKvMRI= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by CO6PR10MB5538.namprd10.prod.outlook.com (2603:10b6:303:135::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6002.9; Tue, 17 Jan 2023 02:34:20 +0000 Received: from SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::a02:2ac8:ee3e:682]) by SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::a02:2ac8:ee3e:682%4]) with mapi id 15.20.6002.012; Tue, 17 Jan 2023 02:34:20 +0000 From: Liam Howlett To: "linux-mm@kvack.org" , "linux-kernel@vger.kernel.org" , Andrew Morton , "maple-tree@lists.infradead.org" CC: Liam Howlett , Liam Howlett Subject: [PATCH v3 22/48] sched: Convert to vma iterator Thread-Topic: [PATCH v3 22/48] sched: Convert to vma iterator Thread-Index: AQHZKhwygmPlOzt5/0a+OnzyfkssVQ== Date: Tue, 17 Jan 2023 02:34:17 +0000 Message-ID: <20230117023335.1690727-23-Liam.Howlett@oracle.com> References: <20230117023335.1690727-1-Liam.Howlett@oracle.com> In-Reply-To: <20230117023335.1690727-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_|CO6PR10MB5538:EE_ x-ms-office365-filtering-correlation-id: a4c9e32c-e7b0-4a66-470e-08daf833564f x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: +cySUlAwHEBsx8Ekq3J3uD0fzYDNpWnLv8E3rZN93ohyL/cG1VvjTwL51kt89Oc5PvlZCOosk5SADFmMlsTSjpOOqXXxN28qlj0lLQCryagUOspr6DKY/zav0RT6H6x2ve3EDFNbP0yg9mPJIpD6MlqUpE5DF4HaVoWqXUndip/pR7eboHRPaU70uNFLVd5xpW3iA+fPYwSQEYeuUvWcalAXHZtl2RnLXaBAp5Hzr8iILhtuNyX5gYp3amCkg36EXZ1iSGSCM0X4jXOafDJ6gbkMFp3adJF9ZW8fIRc0gz6zEtioUwf1XTyJ2YDIzAvOMROWRNsbfi3idp6r+TOUIjYZha5j6G6Dq89PJnA62lj7ucsZQneIOPORAWRNG6kba7BtHtevUTgti1TrhSeGj4/FcBI9ci3XByjezVA63I0c/Gge84dNvr0xVSKIR+Z1JOp2WyAfQq9aK+S0GcLiJLvpip8tS3MXpu7kJQLLq81D0jHo2Hcy1J0rzw5/TDARto8UwHA2AekrqxRdDhFVULSm0+j/0fwze5rI+q81rrPphQbM+ded9+yTlMV7eEL1l9BhTmj9CBku61UXrnpHDPYzYoEpdTWGRIRFAvJx0/N1eU8G/9WySHIadPWhQqOfbLV26eDqfnz0fVMFLzeZGcfr8rwaZKpHNIRUMRWZ1qT3hPw46/uuSb9fB5OzjdjUpBYqzFvWT3QYp3eY9Z+dXw== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SN6PR10MB3022.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230022)(366004)(346002)(396003)(136003)(376002)(39860400002)(451199015)(36756003)(91956017)(86362001)(8676002)(6512007)(64756008)(4326008)(186003)(76116006)(66946007)(66556008)(41300700001)(2616005)(66446008)(26005)(66476007)(316002)(71200400001)(478600001)(6666004)(38070700005)(6506007)(54906003)(110136005)(107886003)(6486002)(44832011)(122000001)(38100700002)(2906002)(5660300002)(83380400001)(8936002)(1076003);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?q?iq7UCAF5woGURIilwLZHMZ9?= =?iso-8859-1?q?if4wwWDn7+0vdbaP2owIi8ydi+N4SPfKNEY6/sKUzMmH2dKOhWzWxGJO/zkv?= =?iso-8859-1?q?8VENL15ExpYqJ+NOOfuZpyO+ANZBfNmR/agY6i91MGD2Gq9jvVUSsOOha8nv?= =?iso-8859-1?q?I3k9kOD7cH24gt5b9pNlITwt9gk38/jNbOyK0LGsCpdWfosm8kWn90L8k1Mb?= =?iso-8859-1?q?xQBCsosYpoKuboUznRMDmVvJh8AvugthmMo7M29mUB3qETIeN5tGYskeImFo?= =?iso-8859-1?q?xIhz4NUfbJyw/fFnvf9vGpDUR7cAMCyJKs3jx1acmjyGx8Bodxo5zFDxD07k?= =?iso-8859-1?q?qUhwcOzogYrr870VP842k1c9egbPa9F1rDek26PA/skfx4RKNBWpE84CZp2W?= =?iso-8859-1?q?qlmbBoRD7KyKQrzwGm5xTLsU4t/vO5EyavtIR0YQaLyi3dNfLvwZdVW0B7If?= =?iso-8859-1?q?qRuqML72jUNSgzC4UdwfN+ysjjCREkVCS9I6mVNSSvAHF5Yb6n4OIT72ETZs?= =?iso-8859-1?q?Uup91x3kthcNE7wf7r2LPkcym5Ytn36ZCivD2RzSM8gFc+DYBswo+9K0OW4G?= =?iso-8859-1?q?4Lbq8ioO9IF/uR/VwsjzfRnveNI2u2B+SvLr5cxhk3Bbc3JAgfS1bWfyEBs8?= =?iso-8859-1?q?mgcaJt1ZlX04puGfozVrP7BhaIr2pC6jSUmBxF4e2EMtVkiK47y1c+hilX4F?= =?iso-8859-1?q?nEldFM8L7A2GsvmpU36Jvp+zh+6SG2YL30trbTSU0zNqYDBAlBgyDwwYQrmd?= =?iso-8859-1?q?/NTwnmJ6/5+ezyK3Zi+nQdbMm1chvad4ALC6FxDwKcLpXwx0c6pbgJ9uQAZn?= =?iso-8859-1?q?khi+id75IyZR4qSMiVRfS4iRGZpA5fAobxmIvMpHJlqhU+8Y8biG+Xwzv6nb?= =?iso-8859-1?q?rgSGpqau4vb8CEwrmD7rz00Me8ChlGZdnB6bTSWtoFiI+BEVDFgnPfhyA0QM?= =?iso-8859-1?q?XoKgLUsFbQ2h9MuPXiBsm1V6gKd4FeOCGQfM7eZaLc+MrsCAI93AUQR0ae1m?= =?iso-8859-1?q?h+RC9/t7cpniv5t975E02wu0OclUXGo00vD991WsQcdgtHUhVkGy1dRqV6t7?= =?iso-8859-1?q?WMWmYk8yFv6oJ3vFk8ope4U33nsN7X8ruZiUKgtuvTcgL4rTj7CT0hAZGEqz?= =?iso-8859-1?q?iukZ8GOZcRPDToTtUCJr4GMFUoEjR6XgqjQgRi5upkCukkqN1hxLFS2wy1lu?= =?iso-8859-1?q?y/dfwcSJdYdshm/df40FQ9Uqam9HELg3OHqiE0Ruuk3iaDL8nUfZFSmtC+X5?= =?iso-8859-1?q?MIKysdcgqK8UiE9635tpNSK2HHDqbJGCZU1fr3I9jneG00N3XGjOYODcWJls?= =?iso-8859-1?q?qI2otrnWCj9MElugdZK+njcZ7HS0pLwyYprzVxs7cnCguSDSVQmDBiKW6obs?= =?iso-8859-1?q?P3fOWLc4MQYV8v+u+7+cWuLheEjvB1vAd15UWa12m7w3mPOzJBxSLw2qB0wj?= =?iso-8859-1?q?ndvS+Sed3Fg4RXbu/35hTv10nR/RtrNydV47jGqQ7N5sr5aCxyIzdZpauZ1p?= =?iso-8859-1?q?JBUzx8CC/pOjNLZ0eLU9xkdNz3ISoBvWXR3d5zhyX8yzzPHa/XPF0QMtUNvS?= =?iso-8859-1?q?Zf7S+kAVlCL4D+80IUIdS0WN2bV+AEXJPZ0CVkn1XittkPwAvoZFSidLKtRf?= =?iso-8859-1?q?2adBcZqf62uJOuQZCD/93YClkQ7Ez/To+Yi580w=3D=3D?= MIME-Version: 1.0 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: uAevaBtwWJv/7PYpE8VPBegeVyrG+2EOXZYE2XAoFBYexhHzam5SOBr37gNUMCA60BWVP5BbdRQyYwwk+jadIvFsQ0g5Il+5cSfwZ9WGfEKyDxmWXqWYv73272vhpo84rfB7XT+pkGIjTs/YVRAQ8pcA8Z2Nb87HOm4R84qn9f3OamHkOc5bq7iyI4/yc3LQLBctLEfWgxoQAkrMEekKDKN8YaEsHN3BLHqs1JrMVt/jQgkruNb0DcisuS5GKOOVhKZsxcWJXSwZ6lrvOhzaplmUv59bW2H+/6rJgi+JTLE7qJVgotFz4MMafZrU90EyJbjv8bySCL4HjLaKTZdO37w36zjcJ9WaHgPlfmY4qMFh7vyB+KtX0JPleRghrims/oJbxZh1NctiHwBq3Gg5EuiC8wejI5Ko7GcuTosjCRD4ZKFUBuFOGhzDiGRLW12L2pEclfQhTLmOuuhfgUUXrEyBSILcmsyi6Noqb5cBQ8YD//zlra9+gjhPseWdPXO65+O9K8sbSanozBEziHad5x8P68UZsJsH6l00gWB2FJdEN4YgurvcMIMYZYeHuWPTwAwYDA3Zcw3zx/CLDWBLHNBtDiP/Ko5AaYhi2K2CuClTCzYhONpR5Etw8sph8aqHnjpPZvBwV7hM+0Xhy3ahjLpSA9/MBGZqMuyO66IwfA9SFW1zhapWjwDEK4BmtAY+M0pC6Pe4uz5EUob3KTFsyoPKfi5zu54+KxGkOS4Z3C7cIMXblhpdG6zP2ApLvl3WCiK8dAdqL7g2YoeWtujkC52cEHV21WeOf5dgQaQbUo657f82/nd9kq7gDjoBhDz7IqTxlmnfMoehf4WDf9AnoFNlKdqLCa2yVHTqbGUXwqmN9xiJQ4H6zerYWmsYuE20jVGYr4H/Zl8pxPC9ZXi5jw== 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: a4c9e32c-e7b0-4a66-470e-08daf833564f X-MS-Exchange-CrossTenant-originalarrivaltime: 17 Jan 2023 02:34:17.2498 (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: M5sunabb5p+r+Vvs1OfRtpC+W+/pHwP7lEH/np1zszSaYd0/+1hp1hv2tfjoWiiOZa2RSaZcPyV/DUVqK2MdjA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CO6PR10MB5538 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.219,Aquarius:18.0.923,Hydra:6.0.562,FMLib:17.11.122.1 definitions=2023-01-16_18,2023-01-13_02,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 adultscore=0 malwarescore=0 phishscore=0 suspectscore=0 spamscore=0 bulkscore=0 mlxlogscore=999 mlxscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2212070000 definitions=main-2301170017 X-Proofpoint-GUID: e1zw0lfey81-sNf-fIThd4C02F9XeLYc X-Proofpoint-ORIG-GUID: e1zw0lfey81-sNf-fIThd4C02F9XeLYc 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?1755235676150463828?= X-GMAIL-MSGID: =?utf-8?q?1755235676150463828?= 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 Tue Jan 17 02:34:17 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: 44441 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:eb09:0:0:0:0:0 with SMTP id s9csp1519952wrn; Mon, 16 Jan 2023 18:39:15 -0800 (PST) X-Google-Smtp-Source: AMrXdXu7enhG7xE9BzjlCpMqLQxrtlShsD0auxpMG2imVVeJfZWVpumVGP3QEDhcaLu690grQV8X X-Received: by 2002:a05:6402:1f11:b0:496:9d0f:3081 with SMTP id b17-20020a0564021f1100b004969d0f3081mr1491351edb.3.1673923155189; Mon, 16 Jan 2023 18:39:15 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1673923155; cv=pass; d=google.com; s=arc-20160816; b=zlxX+IW7FA4+1YDI8jV2rk+7NOvPtO1BuhP5QvYU5EGIo6mRNKBCVMmrNrerAD0SIT MMkmYNZoVqPQFNKEMlfW8nuQtmtal/qd+h8xDnH9LJH5zOKwOp56b3t2NkHVLF3SDaDG 30FdJFAwfDbD1KfBzIeM/fh8hmDK9teV4Iy6ahtOYIJ9gtViP1WNMTn7LaAk/vwTIrYx phHNpefmHWKHMGM0YDDQgazOF0NAg5yXRGFJW+UmOzqjRZhwA3eY1+kLsIm4JzCto93M fGFiIqWePqqOeEbijI94XNuLm3Q5Km0EXXYypFXuo10CFXcjNakffFesewLVfl62u5+T U9aQ== 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=SMv0BmdegpeUDJkJAsFXJ867YGa2HkQz9jNKExk3ukOKmxCOM16FvIu6sB852LPC/P v6qlhfIrBYEehSPBeLQWCIpithDr29cpFuy8s+Ciyc0AiZE+Oi1oUN92LCxt0zIJCoJh q42Mkz2iXK8tlyfjjNdwTbSpLom74Yd36xchaXKpCU/YUvdfBR8bd4T9dloeUq9Ju0dM Ghx//Sd8W4dk2rZxdtN24kBRVW//j2XccB4flMuDsbaP8DksAnH/LU3H8j5SThQV6jxo dNQhPbQuuTOzR3e9Q+oEcq8w7Zsl3U73Fwm2JLlrfru4VcprLuZ0IlWLmDvpjSgpISRB oTBg== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@oracle.com header.s=corp-2022-7-12 header.b=gGMMVUua; dkim=pass header.i=@oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=QWjLSXr6; 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 i21-20020aa7c715000000b0046bb19bce74si8521388edq.441.2023.01.16.18.38.51; Mon, 16 Jan 2023 18:39:15 -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=gGMMVUua; dkim=pass header.i=@oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=QWjLSXr6; 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 S235300AbjAQCgs (ORCPT + 99 others); Mon, 16 Jan 2023 21:36:48 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:36384 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235480AbjAQCf0 (ORCPT ); Mon, 16 Jan 2023 21:35:26 -0500 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id BE4172B638 for ; Mon, 16 Jan 2023 18:34:33 -0800 (PST) Received: from pps.filterd (m0246629.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 30H09Vpd005559; Tue, 17 Jan 2023 02:34:24 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : references : in-reply-to : content-type : content-transfer-encoding : mime-version; s=corp-2022-7-12; bh=fdS754oOP9KvyPGz3fj9korFEn8Y/p6HOE8wad5P+3g=; b=gGMMVUuaakxTjAGoYdjZO/9yU/g0Hf+aKBRc784AReeqIj6lQLcldb/hNodlNvsaiDhL 15/jvMXgyCPUFcYtdoXUU6gofbXLbsM37888UGDfNv7vm7l14tPf7stXM6kpDPfJURmc ojv8UxqPKQkNN8bkQJM8xMposK5BQmkEwShwUxD1chZO9ZF70diElE6qT4ZVO+yZ4RK+ tEwdshtuWk9Ezc3amb7a9mnVFALhKKTdwVKQKC9sLSXa7iX9FnqLexV9NfBPQ/Pw3MGe zghUf9wqnUXMJyFgqSayk3bYngfDzazhKktyyuDMiqIAOyaFvXnI3yE032IxXxFaq57X vQ== Received: from iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta02.appoci.oracle.com [147.154.18.20]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3n40mdb5eb-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 17 Jan 2023 02:34:24 +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 30GNUM0X004833; Tue, 17 Jan 2023 02:34:22 GMT Received: from nam12-mw2-obe.outbound.protection.outlook.com (mail-mw2nam12lp2047.outbound.protection.outlook.com [104.47.66.47]) by iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 3n4qyy10f0-4 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 17 Jan 2023 02:34:22 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=MAuQh6MS0oDUBUlq/VyW8OlMVMgdm8mmzWSl8D6gOozKX/Wg3AUr/LPCc/kIA3phjrtvGn6Denb7D6MhrlEWmYJ9pdip3boCAXtEAPQsrk4fEZMykqJtY1Z0lozFQcRj7vK+U56aEuZLYTwSDUTE0S+d6Jjz0ShQyU3NQZlSV+VB20YAY7uKnxHg7YuVr9LZBPF2Hg2RDpnbu5CfXYMUahjyKAaq0K66qv8V7ZOgyUvrAJnJJiHeuk27yJbdKuNP5wyQ9tJLGbvTKDjadFkQAVv1MldIdRLsTUAJCPioPgqg8b8MVtzuYMc4Vfd+kepKa9ih/lp/GSso1PK9stzRbA== 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=g//v3O4Hn8BtYwbzzi7X/dUdHCOz/iLbRhfxAlORDRtdWiI91ZkL7u0AdL48fJtJ0MWc5UXXguW5dei4pYb7drWO69+fDFzhwDxi4kDVHQD66J/Mm4S/7Jv+bAHk64ddAvzgo0docZmbWLS5fWJJkPbpBr9BawNIdrvTlBCp1CQtGSqY0aJZruxjfrxlRX9zhm/0cXQ4ChYyXpP/1FicDWNPYLpMfsDaz2kWee6rLYLrVvtb/oYqsxBRhbhQBJuGBnKa/IEB9BXRC3CgJKWto06+6SXNSR2fwKjIeWmbbt55Fbod66K1MzS9jhua8RTJWaBM29uIF+4+jS2P1fPZ9w== 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=QWjLSXr62d6XhqzKPLIC+j2P/v0zX/nhFOcIYWeldD8l+IxXuvD1ITcY4sWFU+zFwpYzpf0buth+t6gFeOHEmLpz98uiFkjWQ/msezbe8+dGua2OBRUgzXUgN50zg3XoFxjOIdZ8/FaO6aMJdfb4zklijBmDCXAXrO4opzsB2v4= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by CO6PR10MB5538.namprd10.prod.outlook.com (2603:10b6:303:135::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6002.9; Tue, 17 Jan 2023 02:34:20 +0000 Received: from SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::a02:2ac8:ee3e:682]) by SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::a02:2ac8:ee3e:682%4]) with mapi id 15.20.6002.012; Tue, 17 Jan 2023 02:34:20 +0000 From: Liam Howlett To: "linux-mm@kvack.org" , "linux-kernel@vger.kernel.org" , Andrew Morton , "maple-tree@lists.infradead.org" CC: Liam Howlett , Liam Howlett Subject: [PATCH v3 23/48] madvise: Use vmi iterator for __split_vma() and vma_merge() Thread-Topic: [PATCH v3 23/48] madvise: Use vmi iterator for __split_vma() and vma_merge() Thread-Index: AQHZKhwyWHT4gXLAZ0mTDAxyGiR4hQ== Date: Tue, 17 Jan 2023 02:34:17 +0000 Message-ID: <20230117023335.1690727-24-Liam.Howlett@oracle.com> References: <20230117023335.1690727-1-Liam.Howlett@oracle.com> In-Reply-To: <20230117023335.1690727-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_|CO6PR10MB5538:EE_ x-ms-office365-filtering-correlation-id: c65e6cac-2275-45df-a37d-08daf83356ae x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: hoNZm6jkvRt7nWWdEHJ6DScaBdVCBKWdSWzAO6K/ynLG2htKh/Z0gvftqvwhGzHsJbpf1854d4tvYH0UZSCte7dLTHRx2A0bVZ34OAOLSLCDMV2bRrgAfwvX8CoAXQUlvpHGAbu1I2LCpZEDmHfOIcJ3bV/Mzq9AsgHPJtkek4J0KrL9Ufuo2vlpK7H3RR1BcAxuIbt9yoqBE2NMsXGXmsnNWyEFL3+FzglytyJPpOW5DLB31Yv9kbx8alNEXqyPVXHehtcuMmMjfRoPVUMHphx5CUQnmeb+c3wSkznSoqvG8wCaeNJ/OjH2/k76FZMsYDXqLONjqqAgzLMRnizjwy/I+sxRChSfgUhnRCMR1K7379lW6eTEjLEgJbWCv6UP9qayqEGzrLmwzsxUYwn8xRU+Ld5yGaec8YX5zuRcOcme0fkbl3lyMSBO5argR4Nv0phSnR/u7XmMHAMzNR2ihL2XLEfWng6gH6bndiOHf+vLROqPh4A/0d8V2QE4W6P74ISlmnber04jswBCEFZbBKJzPr2g8NsVavARcePt80BZZUgrLk4Ndt3oLP7mOwYNlHLJmwLLhtGNO5o6YY4WRR4kbAItTX+Yj1rXIFhMtE9VpZiZl1FEV3gdeOat1tjQHcVd5YM0TtG8O5MBUMpY4IYG7vKs514TUCRCfzSPHSlgP8Adlj4KBeyvvG4um3pEb/oikpgd+NBN9yJbNNH4yA== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SN6PR10MB3022.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230022)(366004)(346002)(396003)(136003)(376002)(39860400002)(451199015)(36756003)(91956017)(86362001)(8676002)(6512007)(64756008)(4326008)(186003)(76116006)(66946007)(66556008)(41300700001)(2616005)(66446008)(26005)(66476007)(316002)(71200400001)(478600001)(6666004)(38070700005)(6506007)(54906003)(110136005)(107886003)(6486002)(44832011)(122000001)(38100700002)(2906002)(5660300002)(83380400001)(8936002)(1076003);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?q?k4F/QDuz7z0l3NCuYuKUyIv?= =?iso-8859-1?q?wYVux2JhxXxA1Ft/e0rSwANTHdzLEs6rf7nSKml1Y/IN0fJt7NE9SShqUTtJ?= =?iso-8859-1?q?rD1Aq7bi15Iis/G5BjssD8gwqDJOow+twD6LbZHge0+NZYlWkhQAWtfcg2jc?= =?iso-8859-1?q?BG5nUFZ6kX+O/SbWUT6v0wPMepzyRgT0UGbHJVQBt7qSX9dQ3eFtn++bqcwm?= =?iso-8859-1?q?GczRHJwm80zfpgXJI6x7FYXGweNdE9TMuhm03Fq4vYPduyzX1jgwb1kNjn6M?= =?iso-8859-1?q?ojywt/49vitZTxuluEmfWJ+7Vg6P0jbXqYcU3LhhQQCiyvUqJnNLlb2CMs+9?= =?iso-8859-1?q?3hdHrG/FI/1NWEVbx3UlLWQ/OREgtMhpc5W70rPjtqDUz16ehzQsXODi6ojE?= =?iso-8859-1?q?b0LF1twEZF26RxW9dK8mlKXUgZiSuSXntKOxSfmTFPOnEz8Rueh+RLhZwEDp?= =?iso-8859-1?q?hp/mmCIDJVfoWb0VSX+6G/7NSrnKN5XE73JK6MOKeEYD2ikbu/x568PCQwo3?= =?iso-8859-1?q?hKwWt2P2TtKwA2frNCnqXSQmRCsMDoTasvZGCxscjMhZRXTeZ5Pj4xLFWseL?= =?iso-8859-1?q?80vzWfySwQGsrAHD2jcAwsgIGWM0cb5XIgQo0AU3U2b8uAw+wUA1T69KwtCS?= =?iso-8859-1?q?JjiZkqK3Oejt10uot92HN56MCl67rojDtpzbh5JoVueWY5Y7tukvnNCWlCK9?= =?iso-8859-1?q?jegbaoIQJ9JTfXxGu52LhglizKTU2EoLHNPZl5quJsYYPny3EMdcS/pgOLvC?= =?iso-8859-1?q?v8yol6TxTovp7UGigSFs/dEflUEuPZHKX0VFvN7I2y6J8samvhHYSP4G1YKX?= =?iso-8859-1?q?ce3aqm3f+et2CvGVEsfVqcs7fCbx5koa4gP3Py0h+RV2O77PPhieRYezCfQN?= =?iso-8859-1?q?gBg6PacrAA8TP3/EBFMl/p9blq0fQg8qQUbGv9Qa2gllxKeum9Gcs8noiVOx?= =?iso-8859-1?q?uecAjO8BOGomiRQCgy9GlksHdm3VFV0Ga3Oj0SI9+abjJMLtrwmm1ew+0klx?= =?iso-8859-1?q?fDf71WHlHD582VDStzLvHZ9eWbQ1BtxP/h62Kv5YJTcgklMXbOZnoHblLBMT?= =?iso-8859-1?q?GqqAvk0bwu2VMAkwm+CiYnokcDjPBsehgkPdrrCKDf35ALVna9Qn/9nQmDeY?= =?iso-8859-1?q?E98ia66nEAi6ZqrfKFglOSCwXC1zHx9BFlNHv+4RY9M4WolEPX0Cmj6EAiaZ?= =?iso-8859-1?q?R2GlrmoMIgy14FFsPqxCpUeluRx5YdeqJ2eyG47aNjM3p4fI/a6kpbZBNu29?= =?iso-8859-1?q?xbTl1+Vzo/g9wLJbfXzYpCoNNIraEn7mB/ZRhsh7NDrvCfgZG9nawr+Ekffz?= =?iso-8859-1?q?Mcn0sNeadPZZ+cO26sfP8BkkbcKcrmZ0Alv4uDYTAp+Dp7lQrpgd8riPK8IL?= =?iso-8859-1?q?hAeoWeP8ytpj2VTRwd8aj7zo6LJTclrqC9FK+RRscI8VcrAw2aksiMkQ9q9g?= =?iso-8859-1?q?Z/3atEXydiCYnkhDHeOTG5GH1waZh4muuDPNhCs6HijqL4c1SCcAH4e2/erN?= =?iso-8859-1?q?/4L7KjwVGoyJxyU4aXcJY6/8Hj86pzYfanvSXbdq65bLDcEPf7xky3tfLW+L?= =?iso-8859-1?q?KioBifeaQ8lHOUww0T3Ur6q9FmakpBwG2WbrrzXQxW9E09XKeOF48pfHbhJg?= =?iso-8859-1?q?TQYVRPr2XJJq9mMSD+0xKFKsSFgR1iAzOP2m75g=3D=3D?= MIME-Version: 1.0 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: lAxhqRmcFIP4A/roJcdKB6QdOJWTW+wRJkboTMA63Dcqeheu/RHklwvh6mCK8jffzoBS6eIJxlgTUons2aXgOA9x695c5XclOGvJZdmXdHcgjWVhQjAHovFO9segmBJWUa0BkRWZJa/uxlBQ6qFCLXF6dVsqlHuSGwfUe/4EBUuEVmBQI3X6e2rl6WTsUo6wSoTU6rrK+KGyHztaSJp0tl4xYc1nMIVW3KZEexbRaF0Tf7yDJWniEZaUR/wxiusWGcJZaen8oHhzCVSAUwDqDWYuvbL4BY07+6YjWA11JutECWnrKwejqcBRrM5FgA8kVIvA7PqL3buXNieXP6vbceG0Eu251ENY7DV3kafjvukp/3CWKoEwZaKpfIiJGy7x1jK8WcBEkV2l7TvMuaFKG/y/eV/ui1dh6hu5rFRrgxK2Hn2DFw2qedqq9P9stgc4q+cAWIG9v2X/dHiCnhbkLC4yGs705mzQPOpBaBKqLgrq4/EhsaFDN3vihjI3yJb0CWKbqTfuSlqywO022Vp091SjWrCaRODNo5/XO5mJzwYvsVr+4DeJJmhdVy7ri3QmxBDHvRL0vBf1Cfx5WCLbFPN0Am0mw+FCcNeFupS1g6clqMOu7SBtopZEoBAjGGeLOMZYuXaqaKPkvLJPjk+xcGVaezyDtW1wGA77HgcmHYvWLMykudTQuX4KU62FlbKFLdcpse1/ed2IjpsPTFkhCaaammE80CIsjHH7cUXgIjz7GLQsHLy/MOvSMIusybdsN4moqWN2lepct6eIMsgD+IQGFQ5+sBGyAig1f0Zz9nJUOt/MAwh61zatIUubhFsr98AmleNNjEJSLZxdxlyznOsCi8CHiDScFWcjX0uetIGuugtO1yqYntP9I4d/I9EYM09F03ixA4YGiHkW19HHNQ== 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: c65e6cac-2275-45df-a37d-08daf83356ae X-MS-Exchange-CrossTenant-originalarrivaltime: 17 Jan 2023 02:34:17.5623 (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: ODsJrJi+pCLXdOhizaEKCSh6EoKTfxPf4RKEgi9TCOlWjO+PKXVDu/237PCKfADCzxG7O4IWv6qN7aW28XgzWQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CO6PR10MB5538 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.219,Aquarius:18.0.923,Hydra:6.0.562,FMLib:17.11.122.1 definitions=2023-01-16_18,2023-01-13_02,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 adultscore=0 malwarescore=0 phishscore=0 suspectscore=0 spamscore=0 bulkscore=0 mlxlogscore=999 mlxscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2212070000 definitions=main-2301170017 X-Proofpoint-ORIG-GUID: 8GiJQBU21AnSYVxcmDHwaJNWbFaEY1x3 X-Proofpoint-GUID: 8GiJQBU21AnSYVxcmDHwaJNWbFaEY1x3 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?1755235646180561553?= X-GMAIL-MSGID: =?utf-8?q?1755235646180561553?= 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 Tue Jan 17 02:34:17 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: 44426 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:eb09:0:0:0:0:0 with SMTP id s9csp1519352wrn; Mon, 16 Jan 2023 18:37:21 -0800 (PST) X-Google-Smtp-Source: AMrXdXsO9pSugnhOxfzc1zw1ECABG0BJ4gqhMLeyXbobtBEiajgvSyqP03O/6YSBASz146AEwr/R X-Received: by 2002:a05:6402:3909:b0:499:bcd7:a968 with SMTP id fe9-20020a056402390900b00499bcd7a968mr1472687edb.22.1673923041551; Mon, 16 Jan 2023 18:37:21 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1673923041; cv=pass; d=google.com; s=arc-20160816; b=qJ4omycfPztPG1NPn3KgsbkoK9TWSbTBLpShxEWUrDnXOR+pgCTvwcEiILGDGayAk5 Nhvuk+00zdc2ciFpNwtze1G44E+HIC3iooIS0axL+4QV0oxFm507XnMUO4+GJc7qYIJt yXjgxLh0BJomnHkcendsYZF9OZCm7BqoW+RMraM0dAs2qWj1I6YHaCdUZuhDzxfJ6Y5Q 9qO0s1YI6utgvA86pAKqDVxgYdGzA310XY4I51m7o2LM5MPD+ZUcs7KzntEV0eEmjtdW 4Vg4bGAGmSSLKOEnq1IYPkllTFEX04KrVANEliV2zRyT02AJzZKeGezVwzw1g6k6iMko rVHA== 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=ESC+ic5zu15oUoyA7Izjug28LKeRWDR398Wz95pKC34=; b=hiwIfuL+jyY02RHvUKNC8jdl13uayL9MTK8yDuxcA00CMwKHF2DOe7f5N9Mun2lyN4 7GdVCmLeA58miu0YgC9SRgBzMfjOU0eDs2Yl3hvsWhPtr84edWGVqBxD08yLmqO5q5kJ fGfMcLRSVDWMjD8x9HV4HbHkZjLF+OwS9M1chQKVExAAejOCG2PakMup0IBohj9Vj6FT K/w+5+Ip4bm+k7wfcRekS9z9In+6sL2kLSH8GVHe22Ct17CLrMnPM8ly7SBhDEtElqP8 BD5zA34VYEqqeHUWP4ACTWKyfLbxZYvBssIMmDqN3O+Lev1Re3yIl5r+tgVU+ZFaHYzG UqAA== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@oracle.com header.s=corp-2022-7-12 header.b=m8hpLXup; dkim=pass header.i=@oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=XMTDf5Pa; 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 gb9-20020a170907960900b0078c4a772ea7si27057213ejc.11.2023.01.16.18.36.56; Mon, 16 Jan 2023 18:37: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=m8hpLXup; dkim=pass header.i=@oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=XMTDf5Pa; 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 S235439AbjAQCfm (ORCPT + 99 others); Mon, 16 Jan 2023 21:35:42 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:35692 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235403AbjAQCex (ORCPT ); Mon, 16 Jan 2023 21:34:53 -0500 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 482522A151 for ; Mon, 16 Jan 2023 18:34:28 -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 30H093RR023164; Tue, 17 Jan 2023 02:34:23 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=ESC+ic5zu15oUoyA7Izjug28LKeRWDR398Wz95pKC34=; b=m8hpLXupYzcWgdWAJNWjijvAPEUJySyoeQGJru94aJK7EjffHXcttZ4HJ3fY7LiDeBd/ coxGt1sYR8x84bmeu8T6aznyJiiQnKvCLF6nzY2zmaoELxePRJMWiPlAAgCrEl4BlbpK iNawBQGvp070291ku3j2B1Alrqa7+mp6Yk2GgPZdmksK8zgOyoEHt4vtzxKrRMHZvjoz CXBpYDIphGgvlNcVamoZtZfndbW/tzmp2OFsKMGq+M56OV6D6lCywrzXQCIGHe5tO/lc IikdYHPfVxK5Y32rN+3QFdRI5AHZnlPwnjOyFeY1IQY+F9+z/Jc0s1V3AXL0RV+FkPy7 eg== Received: from iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta02.appoci.oracle.com [147.154.18.20]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3n3jtukq27-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 17 Jan 2023 02:34:23 +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 30GNUM0Y004833; Tue, 17 Jan 2023 02:34:23 GMT Received: from nam12-mw2-obe.outbound.protection.outlook.com (mail-mw2nam12lp2047.outbound.protection.outlook.com [104.47.66.47]) by iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 3n4qyy10f0-5 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 17 Jan 2023 02:34:23 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=jgWi9NFnNg/FPvH3WzKeHAy2xjSrtjEj59rs2EVHk9jfROrac0eK7IkS4lAXbT/fhPuMFti02nZMiRH0dJbPsZs/dQyvQ3Y+64Qzl16NyjPsjg+eiRYCer88AC45ugOE5SRdVmSAFGhMKs9UyDa+Z0ByCHKuIOcG/XSjKMCxvOdBxV2J4/szXjcjSvDNqp64mzw352ra1QE0sWKT0jYdwCssKAwg6SHeslbZ2qPYetxxlXakbzTJiZ0hbMMNhqFAbIK03IWfn3CufR/tWFVEE+G41TxTZiV8cIzO0q+IH4oC9qyMqEh1XwPJ3VkY9+LX5kL4hYbtW27tLSP3ONveWw== 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=ESC+ic5zu15oUoyA7Izjug28LKeRWDR398Wz95pKC34=; b=VVi1C89igG0kspiwI6090OqvOVpetbz95yJUMNGtGsM3FE2AJJYHu175ofRwB/85fuLlH3ejeVFeJKc1p4efWt43ZHe5i0FjyDQJNtyhER7E0GofpP0UDlHA+e1fFnGueZFozp7J+JMmVj8Dd95u64mokpCNHjS/FY8jE8Lr3QT8407ssg5z4oaxSrgXfrdeNBgrKJVoNtU6ZTJHfD18tiRXU4X5k/IR0/kp2RCbPtfBCwuCwrRnj3r4Y8tC8Pqf6bmkc+qM855LxDnGzOpONoNySBSSkDJ+g9sAc+jb9bX6+INa14V2l3R56cKVUX3xGXBSXDgZ/cFyuNjreEnX1Q== 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=ESC+ic5zu15oUoyA7Izjug28LKeRWDR398Wz95pKC34=; b=XMTDf5PaPpq5BI1DMI+HT/pYExFqCElLub/IdLag8ee0mmGSrubRdyNPhMZ3rtXmZbfb/+RBAxSC+RWKlwhQtGdV8Ykoo8Nj20Ll9RfFBsEx8DlDPEwE2GWNW2RGUpFL1wLn2l1r/VWvR5Ns3AUQTgYjyL6D59RkNsZGHdVy37E= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by CO6PR10MB5538.namprd10.prod.outlook.com (2603:10b6:303:135::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6002.9; Tue, 17 Jan 2023 02:34:21 +0000 Received: from SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::a02:2ac8:ee3e:682]) by SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::a02:2ac8:ee3e:682%4]) with mapi id 15.20.6002.012; Tue, 17 Jan 2023 02:34:21 +0000 From: Liam Howlett To: "linux-mm@kvack.org" , "linux-kernel@vger.kernel.org" , Andrew Morton , "maple-tree@lists.infradead.org" CC: Liam Howlett , Liam Howlett Subject: [PATCH v3 24/48] mmap: Pass through vmi iterator to __split_vma() Thread-Topic: [PATCH v3 24/48] mmap: Pass through vmi iterator to __split_vma() Thread-Index: AQHZKhwybTMHeSzSyUCS1hIePXgbmw== Date: Tue, 17 Jan 2023 02:34:17 +0000 Message-ID: <20230117023335.1690727-25-Liam.Howlett@oracle.com> References: <20230117023335.1690727-1-Liam.Howlett@oracle.com> In-Reply-To: <20230117023335.1690727-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_|CO6PR10MB5538:EE_ x-ms-office365-filtering-correlation-id: 886b1650-7390-4c30-1471-08daf8335702 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 0+aqTbjMDhThziBaqbzY4TnLhdHmtUaMAfqXitNvALtAwGVWYYhKGquNGPzJQ1JoCJbyBDqfLkxzm0JiCT06YxyRe9+j8hz3wGsfaVCT4g18Tvo12e6qekm+CO8eKdJXQi4xMNb39ljs6nDKCXv5UpYwLLbbUYk6dUtb8hr88WSHIvXbHgPhYBZNnBvYL2HpW1j2UdGwTjEuumyl+iQcRdku12z92SrTcwXZrmv0zg4pFXkcP3gJ95Z8a+54QvYSULNr1rDFxugcZ/Hr+a4zuFhZIiFcRtLLB9oNnAAAUuwra9DY3Gu2kER0ZP6/RSZuC6H4hW7K9SC0ZbbiTKwm61bfrHjtvsy538VP0nsdnsnLDCxeDpfqq0Lfk84jfOStEWJYuE/qPex/yA+wlAP1J+0w6BZQv6d0EABZN1momTNIS7wQUgnyHe7P6/Cbhvj2OAmnMq/+fbhlG8t8SrWhNwEHZZnUbaHRQQfEQ2OosD5HP/24ALN+rpHzRBQWMbWGfas9+x4HYfqcjEqQtrZPCjKkfACJbT0toam/EySuWBFFaaPtf2L7o82yS7YWLfSId3NgmFmBxMMx9SiwxerpHVBRuL+DLegV0flFxztv5RFC23hgL8N9kryqbdlAqdkz7zALOxVUi0zJj+urrptQpPQzbgPtehX26LKZX7zOPz1vrFSeHOmmHLvGzpujoYjfGfH2V2obGFB1Zk0DTFNPZA== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SN6PR10MB3022.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230022)(366004)(346002)(396003)(136003)(376002)(39860400002)(451199015)(36756003)(91956017)(86362001)(8676002)(6512007)(64756008)(4326008)(186003)(76116006)(66946007)(66556008)(41300700001)(2616005)(66446008)(26005)(66476007)(316002)(71200400001)(478600001)(6666004)(38070700005)(6506007)(54906003)(110136005)(107886003)(4744005)(6486002)(44832011)(122000001)(38100700002)(2906002)(5660300002)(83380400001)(8936002)(1076003);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?q?NPOlv6x0IazOULdeV5NzRRO?= =?iso-8859-1?q?Lwow67WVY8Uyi48k0oy/0G6UgrwTBlN2Cv6yH9+/G6ItqFTW0iJaliZGyZvt?= =?iso-8859-1?q?UOEV7pHtD2ztge/++NPT1AQ5JEEjgDoecFGsKK2ddknLlg0B6FNwnrkGy2KJ?= =?iso-8859-1?q?mtVp/R9x0zUiX62J8n7xSfs+BMxItTAD87pwbmljSLTumFg4dteKH+jwZL69?= =?iso-8859-1?q?yt0KagkcsRtPEMyweXSkhWsnH39D8rRGD9Ui/JHVvfW2j4GO275BT3iu5nE3?= =?iso-8859-1?q?5FA9bbjcmt8NiFEgZ6sggO6XA1OcmkJozaTZf7+GuuckjuQROsxjbdTmgatS?= =?iso-8859-1?q?KSBtKFiBEHI8/V5W9ovlaKUBaqWIl5cy7FeGXFg/RXVybI6IMGmS1e4BOBwu?= =?iso-8859-1?q?luFPN0D8itG8PMIedQsKXr5lXHK3b2LO5GwpZp4fU3al5uAMlVkqnm8Ds7au?= =?iso-8859-1?q?7K693r9pr3vwP5Qq7CRCRhOVNQ0Z9F0eTQwJ6cwFhHL8SunKSiburwrLF0p+?= =?iso-8859-1?q?/XyN105jotqRU04DeOQQATkgtlXZf3EVSepjRCwhC6ioWmddhtBS30FHnzBf?= =?iso-8859-1?q?vv8995HA4SRfu9ysugK4VTZSt5sUl87M8zT8Zimmj9qoPLmX0YM1nIG/Lqik?= =?iso-8859-1?q?pGD0SQ8/kQ85jXdD+0iMHvu7guK+8LUoS4zQwvBWX5SEq4yoLY5fEUG0lqM6?= =?iso-8859-1?q?EeEh33+OJMnIZOr63c50pZxmOFAvpj5U8zYB7D/fR738OF7EgrtwbtGH0EJR?= =?iso-8859-1?q?st3hLYamTzMKMn6h1p2sAJsmdu5bBZtWNrN7GsZzjqNi3Cbvgi9/PUzx6A5p?= =?iso-8859-1?q?0IYZf1hKb0wn3zHNHpn6Pxv96o3me8u4OiVciIlczvYkpQDrei3K0iEohAWv?= =?iso-8859-1?q?yEqQHaV3c+64LclmRcyA92rQOs8eMM3A0E44NL9ipyrIiNzpxMlhfq0CPkln?= =?iso-8859-1?q?dDOCHGn9DrB5jYIjBn9WRW4j7FCrSQAsUdN9JwXz2AN7rUFS/slRHDDPkRuI?= =?iso-8859-1?q?B/T+UYahYl0wEHfPD7ezdXhKYGTBOPFT/869mUjdWM7bMLEAKH3G7hp02hQv?= =?iso-8859-1?q?Dgma5817ofy56/k6HgMLZPIPb8YbgyKn/6+a0vcQtO/WPgd/ckP5XomH5l8z?= =?iso-8859-1?q?50lTXSBxsOO4XB0zIhZ7+AgEC9SwDmPSPzDwImDcWZ0Z0gP7oyEIh/CVHjLs?= =?iso-8859-1?q?ocvUFnzHMi9UK6oenXN7ZUtiQ1KGgxM00dLnQOoKWGseM0xxf0H2ZgIIvWz/?= =?iso-8859-1?q?b0FfbtufUvF5OH4z6VYVcAXEAtGtUd7t/EcZ6CbgrPNwpVtn6NjIMJIu72Oi?= =?iso-8859-1?q?wHtQ3KXh8Lfe1eDIoT8Zz1x0qQZ+sV6Ncm3kCU3nnZ/MnX/Kz4DMsIiW++kZ?= =?iso-8859-1?q?Zy1x5HoRy0ESDU8BNxeWS6loqhB14fn5Vp24lgxfHJ46VeYdFyKlmcEYJ4oa?= =?iso-8859-1?q?DNXg4JhKNjq/sfuTmoGLwrQVR+JDLgh9olXsQ2mUR3CCelHtjpWijhkV3AlN?= =?iso-8859-1?q?ATEPDcRL7EGibHt3cuEUVY6ok/4d8Y0o52+XLW6Pf1PWe8Uo+qeizsAK7T2x?= =?iso-8859-1?q?BkfZ6JOe1RamAJvrlUkk0tUQq+9UpY2lsVlIg+fNrVQ/n46a5tdIWF+APxGM?= =?iso-8859-1?q?jH12PLV2fC65uLbrP5ay/c78EgpMPzofGx6HcJA=3D=3D?= MIME-Version: 1.0 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: BGDw3AGapHlU6t9lLU68ZdfeHCqtJ9lM7Wrb0w8X83YxEwYOM36ir8nMPEclQODpBvDTJh7IW7BkHOlIxdZyTO/G/jOdCBXsf3L/3qjpAdu3FY6pdm81KRa56C62ix4sJ4lwroXWSjhAj8EJSdsiS+gx5eTm0vIbeSvEHCinMFUDs0F54Wz0OiG4uZPp2poo3AYOfYHuadDfkvHDdFQHhyJCGS4RdU8IdHGn+iUiRFalOKAA9jH+Gm9o0XFOd5E/onlG/eOeO2oroGVT4BFw+eYQHIjIEuCw5/ZgxmsjI1XmacRGYO7LKlfXqYoZmltKlYO6q4LQ/OP70mbBz5k0HgtRWlpxBeeCWuPmcty4HL4oEGg9IY1EjmWoTHd0o+7ZSfpd3QfCZ9VUTaVsVD76atAK+wuDcNwyiSaEfuncp/m9p2e1uZvLxALSe2OJ1EF97BMMx+xP8wl0wxOT5qgO77UFWO4AaKuqsDyPQfSMK/Rd5hI5rOy4hOpMZVOdE31sdXoxZUyyyK30LkeAv4Ro9LTULHVCnhIUZZMDrvJZ2GwyLDAr42lMmKDkbQ6xueulftbzk+WYv4I+twDBVbtLGaC0Yw76ZTdqSDQcRDGoF8n49BRZ9Fb4s920EoGwH3G1fxzeMQwnMei5Umj59DlcAVw7gBYEx+gbj4hZnx2XnSbxQuWSXSs28oymgXgeReyc7txjqzK0URHsnwIykWnJDm+rR49QUAmsYQfbBjdYgHXyPSqCY+2BhS3PuBMdq9YCF53192m7lgzV3AAy7F1D/Ic+lHFkLQ/+ju1DJ2rXll4Jf8DgENzjgT7J/7gahCyfM+JCyDQhuvkE0nyQ/fvgd42sVQQM+rDgLj/tpgRqaNdK3p1Lupt6pYa9JoNolK7Nv5UGvTdJoSoBRZ6YGHhxCQ== 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: 886b1650-7390-4c30-1471-08daf8335702 X-MS-Exchange-CrossTenant-originalarrivaltime: 17 Jan 2023 02:34:17.8123 (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: YOk0GGq+ag+p7N8TMC6a5V0rkWRkfgwz0IRj5l1GhsPnhRV+eisqkVTxIkRSn/f+WmjqpwCTOAqDM/wApiDIjA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CO6PR10MB5538 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.219,Aquarius:18.0.923,Hydra:6.0.562,FMLib:17.11.122.1 definitions=2023-01-16_18,2023-01-13_02,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 adultscore=0 malwarescore=0 phishscore=0 suspectscore=0 spamscore=0 bulkscore=0 mlxlogscore=999 mlxscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2212070000 definitions=main-2301170017 X-Proofpoint-GUID: pFvjUUNJvVFTFzupUwwQwFHvfiTbUp8J X-Proofpoint-ORIG-GUID: pFvjUUNJvVFTFzupUwwQwFHvfiTbUp8J 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?1755235527397324665?= X-GMAIL-MSGID: =?utf-8?q?1755235527397324665?= 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 1fd6962f440a..530a58e88d66 100644 --- a/mm/mmap.c +++ b/mm/mmap.c @@ -2387,7 +2387,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; @@ -2408,7 +2408,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 Tue Jan 17 02:34:18 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: 44443 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:eb09:0:0:0:0:0 with SMTP id s9csp1520054wrn; Mon, 16 Jan 2023 18:39:34 -0800 (PST) X-Google-Smtp-Source: AMrXdXsxzX08ogQpVze0YNtmjFN7EUH5FvLoyJFe5EaeNeF0QvpMv8Hl1ZC6M5cxxkHz8T8R/8xd X-Received: by 2002:a05:6402:3909:b0:499:bcd7:a968 with SMTP id fe9-20020a056402390900b00499bcd7a968mr1476885edb.22.1673923174382; Mon, 16 Jan 2023 18:39:34 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1673923174; cv=pass; d=google.com; s=arc-20160816; b=jIQjZPdn4p2z1nOQXgDs97A9pIg4tF+sR6BpNApuef5XBDcQpcLHeR9qJXfkEZFpSf AJlkClO3Y3E/ULBz0iJ7qAwTt1ExrGTOgG/WIM4mUWVoTiQQTwMHxRxa43k4udhsdwYb vZ+Z2tJhM3/Ue3yzKX8XSstzxPbM0iHPkT89P/gPXUvNtipP4zEZKdPJ6Wz8e1IAFdNY VwI8k8zADC7ZbRu4pCNjErGRDkjtVAeey74XHgG9KJ1Uoqa25IeIJBSJhPX6wXtI7Sqo WJUAbAMdjlNuLIaCVifnaeLNNJQp1+75jicfJS2lSKWwmE90zVbr2Wub973gLytCjCEP BdsQ== 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=jdrqLITjgM6OCw5/BFOTwwt/x4Bda3oztOTO3t+P8ro=; b=A0XM5S9S6LgcMcau2eSPlfcSo+wddI0V7ghl3Bt/B0FsgX9sZC3JGqbLpvU9YxN4Zv R78MONlPUJK7OUS0VR4efLxDJmqVY4RU89gIdFB2alPmD6rcGTbU/S1cAdnwSxg7xlF4 xTm5oCcNO/U3l5itz3mE6gHh1wUnNhAW/Ge2NlpNzws7P4AIv3CleFa1hHqysGlc/UEF UNq2FjC+92bIpAJeG3Ks7DceAgIJvqz/0VYmdkLyTVOyLPYxjjMZ8kwfR/fNvxBTeNQj P6LWNGROvFg4xacYl7qk7B2QG3FIKDsbxvGNVpeYfgB4SrxpaLLK40N0O/K7O3uDUp3B FYyQ== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@oracle.com header.s=corp-2022-7-12 header.b=VUWWe7MK; dkim=pass header.i=@oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=BUdsB3br; 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 g13-20020a056402320d00b0049d861dce55si9486605eda.30.2023.01.16.18.39.11; Mon, 16 Jan 2023 18:39:34 -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=VUWWe7MK; dkim=pass header.i=@oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=BUdsB3br; 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 S235356AbjAQChB (ORCPT + 99 others); Mon, 16 Jan 2023 21:37:01 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:36394 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235477AbjAQCf0 (ORCPT ); Mon, 16 Jan 2023 21:35:26 -0500 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 8FA1D2A9AD for ; Mon, 16 Jan 2023 18:34:34 -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 30H09eKV006596; Tue, 17 Jan 2023 02:34:25 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : references : in-reply-to : content-type : content-transfer-encoding : mime-version; s=corp-2022-7-12; bh=jdrqLITjgM6OCw5/BFOTwwt/x4Bda3oztOTO3t+P8ro=; b=VUWWe7MKuIpMoKMdkPhWOTyD5iPSEPQNnCa2AAkOO4yFQ3WmC/S+U2u1AAmPNSyJliyc 6s2CDcNHyZv53BXHorhmIVsfyhAd8tbmmS87YqkSJ/d/1q3s8KdAOg7rjINazhYHdNRO 0/ZIJnqI7U008S8m7nokcy9K/YypzoHaS11Z/em9DYxY75ywNTDNiSL9+0vN+81uLaz0 AVKoVKqff8IJHzZblsgN/2Z9AMaA73NyVPNGF/t9qQc3mLxBqrjQXtOJ0l6GYREdc5rA p/E9dS1wLYZzWpoBtQhwbTCrNQFWBeJdUWpZ+UJpolmZKlcD51NRtYcoSKIzY8F4di4w rA== Received: from iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta02.appoci.oracle.com [147.154.18.20]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3n3kaabrjf-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 17 Jan 2023 02:34:24 +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 30GNUM0a004833; Tue, 17 Jan 2023 02:34:23 GMT Received: from nam12-mw2-obe.outbound.protection.outlook.com (mail-mw2nam12lp2047.outbound.protection.outlook.com [104.47.66.47]) by iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 3n4qyy10f0-6 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 17 Jan 2023 02:34:23 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=b/2gWuTKzD6eBkLUgaCiDFUqH4CyR7/qrzXQeH6Y8gPVa30W9zpj8u5PUWCMRFenCdWWEkZdjlRfkweT/w7t2oZbNr3j2lckVLJ+3UbeelgM6cZuo8ta8hpNQBdN+ryMEIFznVZQ8DohRyEZutW6ppNDymb0YMbPTJ/O61wmxs+SnsYCtBR/r4EDeyQty/vL08hH+uWm+p+0xIhnFgM6RyTiupEvzfVjBF12JDw+P+zUJqHw60Zs1MOK7Udtboh6qZAtpeZJo+R86pC7vrqJfgp9cZeZ9DZ39z0zZ1tBQ6XMZjnwi5duBxehRqU3MTtCoqJ22SYVOd0tk8uHqI1xAQ== 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=jdrqLITjgM6OCw5/BFOTwwt/x4Bda3oztOTO3t+P8ro=; b=h3J8K+3DdS2FjxlOwdSESzr6WB2LdfcQZ334w4GwHIunvAdPM9sZibCgjOf+A9egtwhVCnbu1LA5YTwTDXWt58fOAOLQy5749AfHAWQXmCzupcQ6kZ/CmVe9n7pyvCpAM+xFzQEM2NQIsx2FWra7fmmKS15ab7zs43xeI64HqMTlBgM3yZZG0cFUcwmYWnlCAP2LhoJrHrCX/A6JYq3X95ETv9FMyu4SL+A135aWK8Daqdzm9fZrmC6+yneiztzjCVJH/WSJn0it6rS6Tc20D5NOh/7TIjMQbzsxRzi5BGEByHFg05yXb+OLC4gR84g+8ZOHZ1koJB6LMpI21wIHtA== 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=jdrqLITjgM6OCw5/BFOTwwt/x4Bda3oztOTO3t+P8ro=; b=BUdsB3brE9TdoUdWlPmDFqM9A7eU5DDnIkidTew7ilz1vdlRE9zIglPsafiatZzXF+xwl48Z+w3jzL8AP2tmfjWLBJYI31X8AI2MMcJWoW3iGGi7f1uuEFQX8J+3gHH8ZIM/mtJf81tn+dqiY2BP8tWn0UZt75nS+IVHUtIEp/8= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by CO6PR10MB5538.namprd10.prod.outlook.com (2603:10b6:303:135::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6002.9; Tue, 17 Jan 2023 02:34:21 +0000 Received: from SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::a02:2ac8:ee3e:682]) by SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::a02:2ac8:ee3e:682%4]) with mapi id 15.20.6002.012; Tue, 17 Jan 2023 02:34:21 +0000 From: Liam Howlett To: "linux-mm@kvack.org" , "linux-kernel@vger.kernel.org" , Andrew Morton , "maple-tree@lists.infradead.org" CC: Liam Howlett , Liam Howlett Subject: [PATCH v3 25/48] mmap: Use vmi version of vma_merge() Thread-Topic: [PATCH v3 25/48] mmap: Use vmi version of vma_merge() Thread-Index: AQHZKhwyJpWl6Xvxs02znexMfpYYWQ== Date: Tue, 17 Jan 2023 02:34:18 +0000 Message-ID: <20230117023335.1690727-26-Liam.Howlett@oracle.com> References: <20230117023335.1690727-1-Liam.Howlett@oracle.com> In-Reply-To: <20230117023335.1690727-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_|CO6PR10MB5538:EE_ x-ms-office365-filtering-correlation-id: dd2ca94f-2a41-472f-fbee-08daf833574b x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 0ueaT/y66em9c5d7dtL7Z4x9QDBoQYQvzDJqpadLqkPAwp17Jc3G72rR5Is8iIG+astjWQ+L+8yXgQYtx2GFcU51IV8Uw5rLn97qj1GO59oYTfX6VDI2kiBfHwGCb5zhAwTndsGdPz1vIusJ/AlCx/+bkbH9sbOvHcUZ3kEUckjumKy/5At361fSqeske7Ewa9KCVENVZz4aq622dvQHZBywuOyNFghc/UbEelLfCuBSOK+R6KZMkKsTDZDufH3ma4I37Ef9TMZJv7C2MdAxEQFM79GL5ksQ6o8B4oOrJmKJ6qHwHS64/y6ZnoX/zEVDqqkJpGJj8sykCpLLur4zPDKF7U1Y6wlTrqibQX94MUeN/Bj8YWIK7x8a/X7oLOa8+pApyzuiR8QvGqlrNwuvkp14y78m3B/cYZ8rxd/9D4WC3+5EuqNjBJi5gKv4P/mkNPrnM62yOwkmnIbI9eLRrdJqVzH3GkMhsg5wgK+elWxAd81zuQJpXXp17Agk7Tw/GZmfRXs2/sovR+ZPkaIHKjg5m0BjyyimUmqECywae+TyTbrTryJP10UKOLTvVUAdSLkK9Hz1R62TPmHafHyjF13WOgs9E8ybh2qoOOh75pvao+fXb0GonGG0MYyVtjNrAJKNCXGrXPpgoi5G6XGlQmpR9maDw/sa0yNla/DGdBsfkK82N+ZBhW0c9BWm+DyyQJ/cc3JhNFLCyr846xFzJQ== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SN6PR10MB3022.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230022)(366004)(346002)(396003)(136003)(376002)(39860400002)(451199015)(36756003)(91956017)(86362001)(8676002)(6512007)(64756008)(4326008)(186003)(76116006)(66946007)(66556008)(41300700001)(2616005)(66446008)(26005)(66476007)(316002)(71200400001)(478600001)(6666004)(38070700005)(6506007)(54906003)(110136005)(107886003)(6486002)(44832011)(122000001)(38100700002)(2906002)(5660300002)(83380400001)(8936002)(1076003);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?q?+IfDJ0BK+CEmSy8q8qoZv4n?= =?iso-8859-1?q?UDUr2mneFKVvYK1kCXUnhKihBkGLmZ9UFY6afiLdGPH6mFfBEIi3HF5XyrUS?= =?iso-8859-1?q?aebyby82Dn1wn1LW/gD0B3Bu8u2JcZWKdrwjE/G2zQFCYpzK82xm86Y+P0Vo?= =?iso-8859-1?q?LYb8FLP6ccnJm67JnoS3krpexs+T0ytCln8ZqgQmCIQ8BIpIKE61D8geXyFf?= =?iso-8859-1?q?qWRTpkIJNQWiUNftd+ISrGztMZM5bzLOvTrk+P6w0SzHQFKWf/+ZwTLCKMe9?= =?iso-8859-1?q?3Szxy5PZlfdg7+QLmxyO4XvcfgTIF/HHmkV1X20nYQ8cND0ozCl6HLHQplzu?= =?iso-8859-1?q?fkrwDfLYhh5b+f21iTRVVHd91yxQMA2BJp3f4SSFbAHtvug9TjS2A7O+4nki?= =?iso-8859-1?q?q8zI6XR+gxq986595vPn1l36YAmTYv1AOPyu7U2E0egWy4CTA2rG/4KXio9J?= =?iso-8859-1?q?o2eiLQUet6O9D5Ib3Hsr5sWnPE2k+hYEjHXovIdqsKJy97xgTF5pncuat7Lq?= =?iso-8859-1?q?MQYKZ9cgJh1/KTEYB2hq9O15e8TFBfwZTY2R1WXng1LG6plagaVWXqiM3/HE?= =?iso-8859-1?q?PgrMNmoIksK4CocnWof7OhdI5uZ+Lk72Bn0X0seYAPQzw+iJjHjsDw36qAre?= =?iso-8859-1?q?dhvoMi0VDGQe63lY5wjZuhnvWWAtJZK+HWSGcGY+o8IFU7HnPc84DC7QUcoC?= =?iso-8859-1?q?+ALphbs5wl6IaCgTyGHWNTNf3aOz+TvZAgdQZUdRurVRXZ8/R7ZX1bl7caUW?= =?iso-8859-1?q?NUE3UPGEDSwgMBhMe3CvpSRZ0U+dM3YcgntVr/Z6uDdkWZb3ZIaD3HU01ikM?= =?iso-8859-1?q?itaTQ+FMpiIP+mL4huS+jIGoQCo7Iws1QVvfRYimNKCX6ENlZJsLq3lkWcA+?= =?iso-8859-1?q?FsXw61RD9nmDHxvHBSGVGX8JUumUImc99PdoqmqctTlrrVVP/8UHcrs0Sz8a?= =?iso-8859-1?q?jmlL3a13qL+ddQk8BptH1zZmimp3qjlGujfUI2YFfkkAdZyJ3UB6f0V8LUJ7?= =?iso-8859-1?q?Tk6289N0XeKduTFNZD8tCBriN6vcd+3h6aByQLKm4Fadxb1VaQAM1KCcQiyU?= =?iso-8859-1?q?YL6UqrIbh6xfJq/4uZhzHdXkeKScGenv4oAH9/Amwqb9Wfjyl6ooah9O06m7?= =?iso-8859-1?q?yVXvEYxan7phOC3qK5ajETNKR5oQmdqwP1DbrZ48b6KTOWZQcLSC8o3+58hV?= =?iso-8859-1?q?LenJaeezD0ISnn4wi/Omv6qE4OMju0+i42CocJUPdYunJhX7Fq2CxInKl/S0?= =?iso-8859-1?q?jomo4XXfxwY90hTIRftJkH8aY8f8W1XhKYdGRSpRlHGutvwEvfaZUi+sRvNS?= =?iso-8859-1?q?qUESwbfh2cc21ptO56whEKqRg1opH1PNfhM41RZiqAtLcddvHgO0Wq1OhZyj?= =?iso-8859-1?q?CNtcyI8JWayaY/s6zJ0XWJWRKFMf5Zjws8Hc7rfNyj4WXTk9rQke3X0NbXAS?= =?iso-8859-1?q?I01/58Y6FzVEtjCBBywRvbWaF95VMskTTuXFslTWj4psks9wwTo4F7DOIqKf?= =?iso-8859-1?q?/t5ZKebRsXR5t3mv9YfSbLI0pKYaMECHw/WCDM3S8LxFm9IVNipD3VXMjCns?= =?iso-8859-1?q?mHwIVLx/t1/qVtL7AuZOecZTRZJH891ImlYXZj3xjlTIcTTMYcWCAfbRs7Fp?= =?iso-8859-1?q?T23gDjDyAdHKwNkIWosDYVhzZoSFSQjsGK4lILw=3D=3D?= MIME-Version: 1.0 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: piM4CbhMo0pozBSVsQFYR1M+qDwaHESBsKmRHsa+KdnP2Q7Tq6uvu7JERbAFK7V24YHGPbI2rsZLcYRyW4sKGh+Mfm5fXy+mYQBzc4QnNvmb43JeIYjhHcO008urrSNs/3bbSUJFBIHzyLC9XvBgveGeASesiH2gz3ncQU443Xb0I+tWYUXfrR2hUHksffS2x6lvt6I3r/s2U1UuDceGhpum3IIrCb477/Vig4CkMVkb5o05MXtkSQfokcRDEC7lQJ7YCkvQkzfRLSPSV8uISL/RQbDFm1PxBP46//Ni61ceQm8GHI8TMgZ6Lrweg8a71P99s/3L41OBwaSfFlJYAK+/iEcV9K+QSC4861u0V0fbTGQlxPTwkynhhF9n/k9J7GAM8NbJ0y+lGUOkGkS/cqn+jKzAs8f0JM/G/OL7L3oIFaHQCQU7iRZWU6THGgMWjzBvrlWhOIavtcyBCQmOWdqLiL/dXO2O3+R0kbmk4UxyyvQWyAXuAR66GBwqc9/9umUz4LChIuONSzocwkDE9q9MvOnURDJWtEqPTEhZFLK5e3yfEJbD7z6DlUCWWfK++zPtHUVw2RIdlvlv2bQEGWfVGmkQbofM55Yfz/UdKrbJCUEAie1KPGokT/3HIpELGuuRTUQgJI8x+sHIN/Bv9O0q7naITW2ufkSpRfMe7qLq2JsxLqZpOfS6OJP1ap6fPCOYhxsHaaiQyqPDRDpo/0oZxrzZd4BxEulE8FzoKg+pYm7W2XF3QIpSk5Eme2HByGKVlmMNXpsnn5XM7vReJ4/1O4TEbdUZ35sEuZIAjb1xzaIr6kHWddw6zB5wk/G+9UV1DGrQ4BOL8+u46lobzPMoZL3HlKF0CWDe1ZDLbUIXjXN1ka4cfNwOFmgb2BriXLBwf1L+SaDxho1bOYg0Rg== 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: dd2ca94f-2a41-472f-fbee-08daf833574b X-MS-Exchange-CrossTenant-originalarrivaltime: 17 Jan 2023 02:34:18.0623 (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: MPQOSgzxRj6rC5/8OthsUg3e2een+Xe47aRv/1BUdWa7P1ukMtP2NbvzgOk4Xxf6mRKsivBWNRZVBk++jSP7rQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CO6PR10MB5538 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.219,Aquarius:18.0.923,Hydra:6.0.562,FMLib:17.11.122.1 definitions=2023-01-16_18,2023-01-13_02,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 adultscore=0 malwarescore=0 phishscore=0 suspectscore=0 spamscore=0 bulkscore=0 mlxlogscore=999 mlxscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2212070000 definitions=main-2301170017 X-Proofpoint-GUID: 7g4ANzWHFrwqsC73_VBOF6jNxyS1QI3X X-Proofpoint-ORIG-GUID: 7g4ANzWHFrwqsC73_VBOF6jNxyS1QI3X 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?1755235665989016477?= X-GMAIL-MSGID: =?utf-8?q?1755235665989016477?= 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 530a58e88d66..8e83e174c1e0 100644 --- a/mm/mmap.c +++ b/mm/mmap.c @@ -2689,8 +2689,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 @@ -3220,6 +3221,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); /* @@ -3235,7 +3237,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 Tue Jan 17 02:34:18 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: 44440 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:eb09:0:0:0:0:0 with SMTP id s9csp1519920wrn; Mon, 16 Jan 2023 18:39:08 -0800 (PST) X-Google-Smtp-Source: AMrXdXtLFbUxQi5cfkt9VyJLedbYHAeWUI6fN4+8v3wUEaLFKP5TZ4M/8TyBrI/RJyvy58dH4vuL X-Received: by 2002:a17:906:a84f:b0:84d:465f:d2f9 with SMTP id dx15-20020a170906a84f00b0084d465fd2f9mr1054516ejb.67.1673923148533; Mon, 16 Jan 2023 18:39:08 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1673923148; cv=pass; d=google.com; s=arc-20160816; b=sW6CNbXbMQGLDtKyK8YB20HkkyDKmWoUH+YSkzf2rULzIl8/VkIgdMvMBl2GmxkKc3 1173eq5vIqxrgJ3z/vujhvXK1eWnhnb6dGy8CSaR5TmRqGgR/Wl2oISk5cMNnhTplldX 5aQzVzwX70FFaqlE3t7wqvrh0+ecwAZhc1Vzp8zX7TZUYfKWmS5G97z+PmIT2njKB9ly 0WEeCu6x2lmNLGnomsBmeMADR9RFs3rUIpCb/BPrk23wCMwEgkELebh4ZyO66YiDMi56 84WamCPyzeYGxFHMIMwuhyJnnvPEXB7sD04L/lZztomGFfBkApLbQi0p+qCzAimUXFzF sSnQ== 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=MwKbY5k02GggOYbeMrbdpYDlHOGjFtDTHMV2eZVcQzoGJgaJqxlQY9lQ/2OHbpic0J oNcSperXKEAoXWCFb8haRn4idBvxPl1Nm0cd3HEz2F4vkh2YaVpeXVXv5dB8IKJsTh01 V3HKPOr003yed/D3IsYda9OYtRix4QO9ikS4fERj7da3Gg/Kufa3BqFx0DVF966QRZYS JcyCOTZG6c0FSNAiFzuUcNobTgN2tPYRem/zo9+jzsIgyE+l15R+yxcQvbXbg+WZO+7a 7kaTcBxy38OfNi/7zOdrUYLdQzBdvkzXiHk2si8Ncu2TblcTeCs1OnHU+jaYgZy6DR// zuow== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@oracle.com header.s=corp-2022-7-12 header.b=ZeBs5WE3; dkim=pass header.i=@oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=rdfqa2yF; 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 wy9-20020a170906fe0900b0084d3497942bsi32884782ejb.337.2023.01.16.18.38.45; Mon, 16 Jan 2023 18:39: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=ZeBs5WE3; dkim=pass header.i=@oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=rdfqa2yF; 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 S235577AbjAQCgg (ORCPT + 99 others); Mon, 16 Jan 2023 21:36:36 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:36358 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235412AbjAQCfZ (ORCPT ); Mon, 16 Jan 2023 21:35:25 -0500 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 284802BEDF for ; Mon, 16 Jan 2023 18:34:34 -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 30H091K1006726; Tue, 17 Jan 2023 02:34:24 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : references : in-reply-to : content-type : content-transfer-encoding : mime-version; s=corp-2022-7-12; bh=22Z6OpYufdBtzxSvf9B3LFJ2NyY1sjKM0+x62TTuiWc=; b=ZeBs5WE3oKePIPk+/trU3lIjTUWvpAVVg/tgQK6EyKFY9GuXDARDnyz8IEaDudcAFVie s6coOXFJxBvUkIINm5F/KCDhfsSZnHopjGZdLtrXQBqkTpQfdLFqAFviOsWhm9OPPUMK STCNJQoNLlEM0/bCrbW6I1HnXLOJDO56hcyWs6zz4xJ9GAtpYk1Mr5JpohdajDTT/Pt/ UcTWY7UMJ7ZSB2DPk3cQTuiAtwN6OACrF5SEu2Ask5RdFgDYjKiPZ6+75z7aHC4VcxlV m2lwwTI/c9nbtjVbdJbzTqIQW4Hiov4pWb2TnG0Ktnht2uc1KuX/L9EhcffKxSuhes0X Ug== Received: from iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta02.appoci.oracle.com [147.154.18.20]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3n3m0tkp09-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 17 Jan 2023 02:34:24 +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 30GNUM0b004833; Tue, 17 Jan 2023 02:34:23 GMT Received: from nam12-mw2-obe.outbound.protection.outlook.com (mail-mw2nam12lp2047.outbound.protection.outlook.com [104.47.66.47]) by iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 3n4qyy10f0-7 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 17 Jan 2023 02:34:23 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Pg0VYQ4n59oQA1i5Z7yYynHaV6itRWtvpKyApOr7v6//KcTES3gTjTM8Vjrt4+Ivb3KpA3IJpLDxNcdE0BHsKUcvpvz/TFHxmxKN2ghzUlKd2CRCDa0VJClQA9fTx1MWXkxZERA4sKkLVn7aXGN5qUbEx0ggZR33ydzxXJE1YiOMOMzZBMvKV+iF1QSG9OC5yr85S5fhhv8mvORB3uvz0teCpmCOokfZVtH0q4kUNFiWSlnlQk1SeIURQkeDax9bR71Y1Khgl1IqkSLvhxF/91Qa7RVY9jdNauA7MZ9SREkabvwRfbIA8J1qOeryATlm9zBupw7bzFDGNFEyvFTo0g== 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=DG26DmxrXFhz/xylmPppM6DYWCjrxzzUnJrrqOpXv0whHhQ2dnD2x6kvaNU3/RqsJ2MaAD2eYnXz3n4jCMAtXC5DmrqEtaKTeLM1mSoIGxtPtsfQbtV2MNq8KHyFdWVBR32T3RLsHmurxdZf3ScxwUQqRZ00B6Ffk+OPhK7bB+IVE9pft6QqTzAVpQVDcXYyJZnKLR/3xEcDEy2bPTk6a1JknLQ0lD2dfvzSlcZUs//635T3BewP1yOYP4b4LIZSanfH0jMBHbiUCY2WVklhalAqwz33zPi9P4HmCTQp+tdxUw3ijBuvOGwJkT02r3/mwn1/f+E2yiNkkd9917WLAQ== 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=rdfqa2yFcxvfHMzqczMMWtMubw/LfSzb5dYWqDKqya2sT7EI1qxvDTp9jXGNO+D2ZQrsG6arRxVwygzl14CuYxvq/AuKx68U9QmVuI8JlwFlYZ9GInPgob3Tira3dWFpF/qqKf8B5G6Vr+kPxomUyy3Kuwx3pvtEswSUTKmq82Y= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by CO6PR10MB5538.namprd10.prod.outlook.com (2603:10b6:303:135::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6002.9; Tue, 17 Jan 2023 02:34:22 +0000 Received: from SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::a02:2ac8:ee3e:682]) by SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::a02:2ac8:ee3e:682%4]) with mapi id 15.20.6002.012; Tue, 17 Jan 2023 02:34:22 +0000 From: Liam Howlett To: "linux-mm@kvack.org" , "linux-kernel@vger.kernel.org" , Andrew Morton , "maple-tree@lists.infradead.org" CC: Liam Howlett , Liam Howlett Subject: [PATCH v3 26/48] mm/mremap: Use vmi version of vma_merge() Thread-Topic: [PATCH v3 26/48] mm/mremap: Use vmi version of vma_merge() Thread-Index: AQHZKhwyqBBqRaD99UKZvitspif9gg== Date: Tue, 17 Jan 2023 02:34:18 +0000 Message-ID: <20230117023335.1690727-27-Liam.Howlett@oracle.com> References: <20230117023335.1690727-1-Liam.Howlett@oracle.com> In-Reply-To: <20230117023335.1690727-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_|CO6PR10MB5538:EE_ x-ms-office365-filtering-correlation-id: d86b8b50-c834-405c-6cd8-08daf833579f x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 0O+3gurT8Miuy0BMji3Cb8uJ+bPlgAPRgDagAlT6eUhq3yxm83F4FRuJIUYUkk9B8Uhv7Y7Eem5FVQxZdn52bf8QJ9YQufdCG+LXiuslDjsT1Jj3fZLTeATCUmM+bxE9F+R6fHOGyaC7oKbuBCHhpDn5TH9mJ98rnxmIDSbiRQJ/7neoHzuo2fuNf4+Bv/KshJeeHkDIcuuf/fOJxbbsVQ0a/kdUiwrOmJJJ0jBN+deE1o4NVWvBywe15ar8ZGiEsurdoBOr8MXKORjLAHqSOnQopU1RS4qjConsR3GGHGNIXrIozIf7c8V8GqYYa35x58+5pMbBfRXm8+Fpw0HFchjOXl3wqpj34HlFrVcJ4hbG1Oo/KzT8yK+SF2AxfSg2qje8xD3nXilwHXAUVXGkpBgRRL7RnNAMKXMeYc0d1RPOtb717WWqMRG0RMMHDnsDb9Ph1GIzNlCGeCZW+O1GRko5AM5BIWlBFvavAVfQ/rqtt7RLVXs1QAxuHQJLd4gwOM3COdfSW0CF/nlWUHZ+sBxKgdc5H8OS0B5IMLSdaQcshhYL3gnaH3wFJbmksuiQ5eLs/LKUNABiHp0fps7djt5x2nHei2bymH5Pr58oOnK1SNZZKADpowgiWE4qSQp1ckPPj7EJtjtIZ1L/dF/1xr0wDpxvX5m2rrH9Kd6ZlSWi3jamlfXrTui0MQ8pttIA1V39na1pVe7HRJW4Xzhx3w== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SN6PR10MB3022.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230022)(366004)(346002)(396003)(136003)(376002)(39860400002)(451199015)(36756003)(91956017)(86362001)(8676002)(6512007)(64756008)(4326008)(186003)(76116006)(66946007)(66556008)(41300700001)(2616005)(66446008)(26005)(66476007)(316002)(71200400001)(478600001)(6666004)(38070700005)(6506007)(54906003)(110136005)(107886003)(6486002)(44832011)(122000001)(38100700002)(2906002)(5660300002)(83380400001)(8936002)(1076003);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?q?KyCX+3WYj1k1HFQc2JGXaGD?= =?iso-8859-1?q?lTfwrQwD+0uDdEJ7TFd9aJB7u/ePoo/JVwJyFQ4JsNuh1/TJAn/e28R0Aua5?= =?iso-8859-1?q?nDr1nFf6ZcJScRP1rHYjc+6pbxNwEK+zmd4v5+fOz7KVFyYlEeYnvXRr8Dx/?= =?iso-8859-1?q?NDmVH6/VIxgifOqc0kHQTZT4EJRky3w8R6ojWpy7/zXU903RnEeUk9V4tX/T?= =?iso-8859-1?q?Yj1Tp3NaGkBTE4fPdAwrIPUqaI9AlNYkq7DWLuhIba5jqJERABLgs4BPi232?= =?iso-8859-1?q?gwUOooPj01+BNuPaIEe5Ugodz+Y49YXZo9B9d97URZZNmfpBOGl4YVhRbceP?= =?iso-8859-1?q?LJK21CCy2zsULuvPxKIsGfdaKFXZtoY6YDrGtrk09KnBceirOqDQzGuKd4no?= =?iso-8859-1?q?Co8O1wslRFhaO9aSQDR4un8P5cFyqOV5Lsukavfpgdyg6sqFcbrsfMdiboxs?= =?iso-8859-1?q?euPYOn00RUfFU73FVJPScPa7ZDpA9XdnhD3+Bj+mb8mB5qN72G/ILxLPSgC5?= =?iso-8859-1?q?2tB/Yk9pfAPbaxOVTSvddXAFHYewCOjpOtr2dd1Kh9e5DXK2vR0g6MlzCNS4?= =?iso-8859-1?q?NGVBDGHJzZIFZ/68DF6wQTbo5+CU6BajobBgh/iorYurY0GEG2o6auCxgK6I?= =?iso-8859-1?q?phmA9yJJw1DMoT0Uvo/5DTDpoA9ChkieKP5dJ+fW2ffHyftSjtUH5atGbr72?= =?iso-8859-1?q?GJbNVx4n1CPYjwkdNA6FUBGPn1sz7w9FpF0NPIiBc1zs3MEnBOQvxIdAjivo?= =?iso-8859-1?q?MTf4Iv3qMw3NTYzops0wRpEkwGh4fwf5kHLAQGofkjl4H0PT3A7blxZ9bnJ3?= =?iso-8859-1?q?eEH50sAHIyefvH3tlJyZtpeXlj4KpCgUfe/oxYAQIDm1udf6yN8TMDp02SCw?= =?iso-8859-1?q?D3Zeas9FpdyAS5a1oMgaOgynb4ZuSQL7BXvCC9BUOM9N1dA54YPykVcgvFVS?= =?iso-8859-1?q?DfMtl2o7EE9YoapCZz3MYAd9pPIsNfYXdmbdzYex0G5Bf6DI68UZl8Bfn3tu?= =?iso-8859-1?q?UW63Orr/dQtw7rQnzr9OaB/vSxJOygL5prF+7xJgfGNdFP+RZ+a3IOV55uMU?= =?iso-8859-1?q?JcAKHOEAuo1MhdUpLH/l7WhGuznRHdB17/NfbqE5o+mhtSGQ94NNqaZR7XDj?= =?iso-8859-1?q?qazznbNTbuubZZ/tpKtsj152SC5SGCa9wbrgZJnEdmU8anoCcqu2ovil2bpR?= =?iso-8859-1?q?/eEXRi/GKaAM4BhGlxFqggwmknvRn9srVFPmOkKEjKIsHoZLzAgTkLrSN+57?= =?iso-8859-1?q?IDYTZ7JJwxZ6TuDO0l8YR7eFztxjU+Im3gRewSPvU12GTNeo6UIGfMm9aqHd?= =?iso-8859-1?q?Ic6BGvLujHV27GNqi2oirKGDaiMr6HdY0FWAvDpZj7Kh4Th0Mv72QVHoo2Rm?= =?iso-8859-1?q?pTA2V4gYOOAtxsXVyLTwqUtauHAuOrWyWDojP1VikoKGtAK8CQhpgHgqusIK?= =?iso-8859-1?q?Eyk7HPoCzIz4FYUeJpZ7tD55pXOYkDuifJNzHOEcctXHUMm9oRPwfJIwKowR?= =?iso-8859-1?q?ySjJkw+kfXfIPp/DyiZX8nNwmyRxuaOuk6mGJiVTJJJmT7fjtmsGqr1AZW2p?= =?iso-8859-1?q?W31RsvHQx6FKy5TgOkSba1IsZvBzyP2PUAdCyo4oy/g+MCfaD0o8Che2lvBJ?= =?iso-8859-1?q?10hwS5YBZrZrvVR9swusnb1D1EzgDkM0X8jwi4w=3D=3D?= MIME-Version: 1.0 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: s3dmyD8bam3LXn6FB4TTNgYBZoF8dqy0A8Chg+cPEr/bvRV/b+YFnrlJptmhgp0oB5/MaiGNHUz8WCm6NWZsHztfD/I8AwMb2yg0T6LSahBAjkibPaj10EC1u2K2uNf0yqIPhJot+9clfNX/Qv3/gDvrMZKmu39kjdKHzokOrcvaRcALyRbi4dniZNjKfD87llAgdSf7oGrA1v2JZj4eVEC2QXHUqcDvN/5KIlZ0fYrBtGT3lRQbEWYsMJq14YElLiRSGDO24MM1WX1ax7DLAJy1exaxFDreIgxZWdCDVf0n5zaBA7oEn0eBZ2Cw6lbUnT9wsKqHzWWdZYRU6n2LG9LrExzeCycmqQHEj4QwJVCfEQb+fOlDdGERUpQlz1Iu5oMESwladgBR9bwmM8bH5FigHixbg4WvAXqrLGtycVAZnbK2h+hHhugO8Obwt1fjG7vIHXPZQCRZXDx5HnfYw0v49VaptTt8i2mNPS6c4ZTUONjwiVK3qi7hMWo8zYQkuIJU4gCcwMCLrzjaW8cZStj3v4QCwltdgxHSptSGhcSGWG+U+fCDOPGseoKxE5ZaMaS4D+QRyZcgl3sneFMxev1+HreTpGZqWgnCn6bsg/6jP7DfKPPGRvkJa54oY/JjgqtNWNoro7327mVXGIYt0OtGAubahBy39XGaHVQ6ujIoeTHy3I9vTw+1xhUrYgCJMsZZTC0xXyJYBo51s/iV17ZgV73uLVJWtifa2J0iM3cLk5PKW4og7sM6n7JsYAJM8MwhQSiXK/OrRmmqS7m5X3Y5YybNuA92F8nvO3tyZPOUxtOdkU/QZxSnuHr8B3Vk5r/o/FJkaJSmCogfjfn0qfv7bF5ftaqr8uQE2ld6J+pkaRLcqMpTOR/fcgO79IGOgmSTm0iI8CxEki3TkJZkKQ== 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: d86b8b50-c834-405c-6cd8-08daf833579f X-MS-Exchange-CrossTenant-originalarrivaltime: 17 Jan 2023 02:34:18.4060 (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: s9Eu2cHp4YheO6UZs9IN8n3kASvVVzhlryRTgz5ZdO6UXNLwkZXnwqd/Dt+TZlMRwq8+Lw69HgKOyGjYBFsbZA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CO6PR10MB5538 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.219,Aquarius:18.0.923,Hydra:6.0.562,FMLib:17.11.122.1 definitions=2023-01-16_18,2023-01-13_02,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 adultscore=0 malwarescore=0 phishscore=0 suspectscore=0 spamscore=0 bulkscore=0 mlxlogscore=999 mlxscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2212070000 definitions=main-2301170017 X-Proofpoint-GUID: BokTgCxyuqBM0xJasse7bo8kNTChXCeU X-Proofpoint-ORIG-GUID: BokTgCxyuqBM0xJasse7bo8kNTChXCeU 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?1755235639149715380?= X-GMAIL-MSGID: =?utf-8?q?1755235639149715380?= 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 Tue Jan 17 02:34:18 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: 44442 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:eb09:0:0:0:0:0 with SMTP id s9csp1520026wrn; Mon, 16 Jan 2023 18:39:28 -0800 (PST) X-Google-Smtp-Source: AMrXdXuFibY/tktfbs4Ke6EUJRNSMMMbYcanFSO66Nv4mySGt2pTPwC7yPgUyeVg6QZBcGRjNxOx X-Received: by 2002:a17:907:d38a:b0:86e:c9e2:6313 with SMTP id vh10-20020a170907d38a00b0086ec9e26313mr1294144ejc.32.1673923168690; Mon, 16 Jan 2023 18:39:28 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1673923168; cv=pass; d=google.com; s=arc-20160816; b=sWeGcRZYmYjs2liknmE93+Cb6obB1Q1oSnXZWTzxNMi2ZEYKyNBUuMXvXfwb7e/Qm6 ahiwC4zPugdRHOGgJldJ648W4G7wUpbz/1hOWP09oFOBW3wGmmDbLZa6VJKLgMf0bbE7 34C+jqJ4bHA1x7Q5WUt5VrTygbq41BvsqphSx/LjyiIa8nE2Czixa+kpchu2ZEwiuKDC aQB9C+Ibmg3u/e/3LOq2YuBeuRfTcVQnL0luRbH5e0jXnBsuLHciRYU/lKYDXyZ53DfW MP73bY6tonfe3cDb0WhgxILE7z+VTM3H8EYLQIBA0GJaOtwvgyWP8NUNHSlTyqEujf/y U6Gg== 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=3MlOLDcSfCp2iYntEXed53C/eSTXs8myN4WtsKmfa44=; b=bKPOAvn8v9fgzpa0310na6L5wv//skA6HVj7qFkeanw421bLb70ABJjMCywhTwfEsS hohiy0smxnEWRVSnjSZ0ObaV1bd8mLgk/toHiyv/3iERJvqJIZs9wHSnIlKuHbOJjuVT ST9pq6o9KfWbPvm0a/m0yRZrysQvKGChQYxkUBkY/6mHhuG5h1yf6KvI2cDNpVEqy/zA 1kklFqMl7LdfY8JJlQhZBQbcI2/NwmD/rJjqDNLWARhyrrHVtJ/ohzurN1F++5vBwYj1 63JT0Bm6uUi/zOulnU0z5/nBmbxt4WUiW6T/vnZHokveR3R5Jn3DoDlyQqzW5j+3kQ3C vbew== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@oracle.com header.s=corp-2022-7-12 header.b=gUBZVJEB; dkim=pass header.i=@oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=DFtr9Lu3; 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 jg40-20020a170907972800b00872733f3b9esi303965ejc.855.2023.01.16.18.39.05; Mon, 16 Jan 2023 18:39: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=gUBZVJEB; dkim=pass header.i=@oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=DFtr9Lu3; 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 S235597AbjAQCgz (ORCPT + 99 others); Mon, 16 Jan 2023 21:36:55 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:35694 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235483AbjAQCf0 (ORCPT ); Mon, 16 Jan 2023 21:35:26 -0500 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id D8D8A2B63B for ; Mon, 16 Jan 2023 18:34:33 -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 30H0924N023158; Tue, 17 Jan 2023 02:34:26 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : references : in-reply-to : content-type : content-transfer-encoding : mime-version; s=corp-2022-7-12; bh=3MlOLDcSfCp2iYntEXed53C/eSTXs8myN4WtsKmfa44=; b=gUBZVJEBjl69IWg3xtlBOxl2fDCQDFoXkuI4CPH9AP93gX8PwOHnVQWehX//2ZTKOHXQ K4YAEU4NgNaFiPspe4zVsg6UXHTeWaCRuRSMFPcUtmZtgDLaBS8FrWFjP/Ap5MCX1PWO NFDkDGF8KRPjM4WMEfCANElyPRbVbG6cJ1o7TUqJ0OedBg3geRuXKpmU+Mzyzq1064Q/ 2kYmmDrUhYtqjWDDA6G5xzPlANB9bUqu2a0GzfkG1ZuUMRuWppFYHQbzCn/3f0+bE5Af RceX9xegdim00nzKN3z+0ohTzmzCc6zY99sdVbLC7w0jrAlYzuUpkfUkBcJQjJvP7Ubb OQ== Received: from iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta03.appoci.oracle.com [130.35.103.27]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3n3jtukq28-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 17 Jan 2023 02:34:26 +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 30H1b4BU028327; Tue, 17 Jan 2023 02:34:25 GMT Received: from nam12-mw2-obe.outbound.protection.outlook.com (mail-mw2nam12lp2040.outbound.protection.outlook.com [104.47.66.40]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 3n4s2rfxqn-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 17 Jan 2023 02:34:25 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=gBgHc0E+ebiHgmV9JJRJAN061r4RdBOgXhBU/Ut098zqEBxFAm9ofAYL37PZI7YBSsbz2fhXDXAplJz/9UafxP6siWrrUTtE9bUFij6Lji0AYq1sp2dRcwzW0+GUsb04ZE3DaVZH4ZDB3PeCamrVCQJmOT4i0sEC8IRMUbGNSVhcERPXVXBRFs/cP7XvCGsdKoisuPJmk1e3fHoU+/vJw4zIgct24+Z/C/2DRbvEHEx194UIA9FtLM9gU+qOJ/LzyizJ5Rq4g7Ak25Y7gfMlDtpKOgn9s5SNHxW/1gELaDAFsSskyIw0qEh+BqNSZQR7NtwQWM0VOjo5Jl6y7iWloA== 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=3MlOLDcSfCp2iYntEXed53C/eSTXs8myN4WtsKmfa44=; b=ByJZ40GE4BvVqYiN9hD9uKIshyMuGT+MayKfZF8SjbzHmjUdwXExW/fY6zal0NbRDEaNrzVDWbOieeEVP+VS793GlRmr+8YieREZgvh1bmkq60vWEI4O693xROKHq7h9UEMdk2Nx/e3YzmnWJ87OxHmj8PiddmRk2KupjNNqG5ZNmQaaWfJ7QqyZHWe2UGvD3L/nOR4qq+MfvhBlRQEOXuY9oO5y6ZPZZv9YD6KAtfqul8L5EfA2/BBo1/i7nAKHQ5vGXScTj4CzUGRtp9WWo010FCZ1QMnLqC0co5LbhlIehSDiR2YvdrsgTgpU4GjeW/AuiHVt0CAuk+DeukkGsA== 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=3MlOLDcSfCp2iYntEXed53C/eSTXs8myN4WtsKmfa44=; b=DFtr9Lu37yfwqYRagIcnPFOe70XHT0ALkO39WhL1zR9JtxTp9bGyEk0rx4NhkxgaRKMOdn4oYoJb+igRQ/pajCGM2DsgXxgN7jdVysvuY787ThlTwznlS/1DWvltkR8g4cJCo+vMvgBYv2PRI6kbvQiPux/REj4+kQH9WHvvvEA= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by CO6PR10MB5538.namprd10.prod.outlook.com (2603:10b6:303:135::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6002.9; Tue, 17 Jan 2023 02:34:22 +0000 Received: from SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::a02:2ac8:ee3e:682]) by SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::a02:2ac8:ee3e:682%4]) with mapi id 15.20.6002.012; Tue, 17 Jan 2023 02:34:22 +0000 From: Liam Howlett To: "linux-mm@kvack.org" , "linux-kernel@vger.kernel.org" , Andrew Morton , "maple-tree@lists.infradead.org" CC: Liam Howlett Subject: [PATCH v3 27/48] nommu: Convert nommu to using the vma iterator Thread-Topic: [PATCH v3 27/48] nommu: Convert nommu to using the vma iterator Thread-Index: AQHZKhwyglsvcvpZOUGGhHQ35TLxkA== Date: Tue, 17 Jan 2023 02:34:18 +0000 Message-ID: <20230117023335.1690727-28-Liam.Howlett@oracle.com> References: <20230117023335.1690727-1-Liam.Howlett@oracle.com> In-Reply-To: <20230117023335.1690727-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_|CO6PR10MB5538:EE_ x-ms-office365-filtering-correlation-id: 9aabef1a-0148-454e-b6b7-08daf83357eb x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: K+ClmxsyUupqwQ4XRuyTeGzcsrBGDKWv52qkCRsoOQ4lm7yrwVXGSAroZnqL230jTKdr27MqEwyG5A066FM3qYiLZfSBTyMaclxFU50gKgjv3ADqveG7a4sjtyCT78HlkylL6/mJRvRFdwHT4qSXsB/NVQhRiexUZyMzuvq1TKxKyiu+4mAT+ypMWORvsj6kaxHFaO06PKJd6x7cdvj8Mnwtk+8JyABhPiHVz/URVSsciu+UllyPU4KC00zWLGKEiY+fMdhs4/xC1HfQRvtUaVlS32mgjT1yP11Np9Z9p0nllcveIV9IfXucHEy1W/SVry5hYGm3llwm61snIBbrMP7Qx8TuLsO7Lve5IQTp5hcayBP/ODs0oVanIHHyD1JKPlYHjqJqbotNHNBbmcUifRnkGWC3bniyQevcaiwER+iJcnOpcAhaEXHzpBBpPFFo3HXK38Dl3j+Kzw9vUOqvOh99/Ou+otkGVLmu27Ljec4E0SvGp4RT+ykz6pGkCRrOXaiPAZfEnWnB5cq6cFGnT2SUISldowKQM0YdU9ArV/dOk0g72QFSC8LouqXt4e5zCCz98UdgIxC+Vm2ROHqlHLHQaIzf3cM/8+f4SzBKFNVwWv+3mx7ofqcVpFOB9DZ6fh2ti1K9w+DKM0YH93RnQSMCI/wxUJdcqsOnnbHM/+3Jb64SJvGmJiso4MCtvvOnsPKclVgse13h6fwdoomATA== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SN6PR10MB3022.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230022)(366004)(346002)(396003)(136003)(376002)(39860400002)(451199015)(36756003)(91956017)(86362001)(8676002)(6512007)(64756008)(4326008)(186003)(76116006)(66946007)(66556008)(41300700001)(2616005)(66446008)(26005)(66476007)(316002)(71200400001)(478600001)(6666004)(38070700005)(6506007)(110136005)(107886003)(6486002)(44832011)(122000001)(38100700002)(2906002)(5660300002)(83380400001)(8936002)(1076003);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?q?TY2MNWaLn+V2+6eLybfXiSP?= =?iso-8859-1?q?Y3pbVRRdwopKyg/V6yY0YGwfBv6dC6zzMgw0x/qw1QKBaZI/j+FqEJGM0za5?= =?iso-8859-1?q?KZzmNYZYeszjrLoAR7oVLzGYFHtIzHIxz7ScU1EU5BOEb1VDIz9THdj4BphT?= =?iso-8859-1?q?b7EOaKvhjbpzIylZ7Zk/EUf1jHnm2rdZ9GjezPi2YlRbdHCy1/W38Mb4kmnm?= =?iso-8859-1?q?W9QUxZzPKstFgk6wGbO3DPz42gYlUqR9bKeTSR6luTVWb6aBfKeQIUb0usYL?= =?iso-8859-1?q?oU+qqawdqhdwl2e9T2yfW8DG2ObA8513k0unLhFgXP+4tj4xDYOGWU9/bEst?= =?iso-8859-1?q?khTL4Ks0E+c3rC6Cc9IZiVFajEJQKtizSDDyIFgxXWDyK69fIYAt6uyI1eQA?= =?iso-8859-1?q?QXMQIH10tTZwnGQJf004yDk3MQHTD5vzJMzW02WZJR5JKyiXlP4dGmHyHTFL?= =?iso-8859-1?q?fjg+NYtRLbMhhlPVYsI9UON+wMNQ+BpIckhD/SVBEWp2Gd4h5SyRWfn3/JmK?= =?iso-8859-1?q?bExRs0DrYvbJLXSUmhVqt1eBY68xgAhVOUmCQESRFJC6sCeA2e+XYZpL9D7R?= =?iso-8859-1?q?LEf9HT7Zfm4pnRMJz86nAb75Daql742aHTAu3ephIJAu+MwE21/FtyQlhLjM?= =?iso-8859-1?q?8ZR1DR57QQnK2owCPNqpLBZwhx54IFtv4SgXOlWYJvB+nNBw4kOIc4CIj3F3?= =?iso-8859-1?q?Ezdl+10iJ0QE9yfQjUxZ9q99tUynaelhK3kjtt+LJ/40sLv61vxap33MzgwP?= =?iso-8859-1?q?M6NM9j313NGxP1QQMyfzTCa1Y4xAbjxoy05bhjwsVkM2ZjhIOIHFWFylsFNZ?= =?iso-8859-1?q?q8E0bFEhZhrDdgZZT0e750io0ce0ouV4v9cZayoOsIu0od87aLma+55mzrEq?= =?iso-8859-1?q?vLaMNH0AEZF3pmd2UY36N3ie02+0NAKYRYL0LssgVkp7h9wxF7RUjyOUaqh6?= =?iso-8859-1?q?lUgu0AWdcmg7ZW4jFg0cHio3yKjmAcP2Qi5DT2JTab+bYhFgwkzTE2TqJ4Ha?= =?iso-8859-1?q?LW9+TsQ6bSqpp3pfQ9T8EGbMYLbY3X7MBKZktfPoQ7hIsmVdthXI43cy4nUL?= =?iso-8859-1?q?Z+aITu8/OkUtxedevahdMbW+UztPfRYwy7DWDML+1KXzmCj4gKRUXjy126Q7?= =?iso-8859-1?q?28+g7w37p3N9gSYJx4a8vlcLfOPTejjlhlMv3vz/no9o06C3MyIjhRBoU4A9?= =?iso-8859-1?q?nNP1DYFRpnDcvs0FSI9qpijgNwEKVugi8qy51TfxvdU55vXnJtoRVHKvr9pJ?= =?iso-8859-1?q?RitRRG7wvpVBGS0eNNUr3zKOosdIOc4oOfa5guqGmwdXNVuWhImAQEP+Dwz0?= =?iso-8859-1?q?AdYb5QjYUp+JV3u3cccFPYQtcT9zuNxp16eP43ulaIBCCT01l6zMBN3pe51J?= =?iso-8859-1?q?ll1r6FajV8wUsFenqM5wHD/6c/I21qmUwCnrbq6nYE9pQF1qW4tKT8aOR7V5?= =?iso-8859-1?q?11F/dCuueuzFBNxGiRToCkz8UWyKOmCBOmUzjlP9/ScRsSTe9OPavYydtLcq?= =?iso-8859-1?q?oZ3QiSjOIQa+SKLc/PFcu8xlfnXzpMKG72FJAVKlxArPDuqEgOuOYTTR4UJP?= =?iso-8859-1?q?nCxpK4+Yf7h2epY5of4N8wIkGalP1xCJVM2BbvA+EMr4DSL1MszJQbGm73Ho?= =?iso-8859-1?q?J3c4ixxsNoUG9pJ5JQZ8kbybel8yC+8ukEhQbQw=3D=3D?= MIME-Version: 1.0 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: p3inVPFjdsAhjsJVv1O5gzTN6qscVCmevKvbey/atKYAgG7Fv3wU1dNXyl21cQi0bqAIofCOa78PAAzhqtfQBgEViyO62hF3deIuE8uo/+1CgGHAh6oi+bUJeamLgYCoc5IpKx566Yx57sNijirSQR1MzrzJLlF+Ssdtzas3wNfVO5Qxfd/UFQaMszHwgD5eEnPmdom5MN3aIOJ00SaBSGkwJKutODjRyHYiF4p7Rc5U4Q/22KcBKXyDJO4X+2Shh/nHJ4KKm63wRPZFCJDD1zOUr3Z1f6z9gHLcCLXowsaihSZqITIkOQvXBXqpzbTDlADYsnT6cIg7g5c5rL44+MptKB82pBLDdyZGf5lO4IcZ0h6nlN3yErKipF2v19RE2cyjvoZzjla6vKmtXm4tVFNhsdC1XzptD4L600O2yGWWjuA11FyzYcAL954+ZOEl1X6nKyOQyCLoSw3D3R3k9SqGiwZuS9BZ/8MJ4wO/Y09RStjGZjhVpjjPwx0fHG3NGqR6A4oFiF63Vo/iA6q4oLBjlwt3hrYEw/QBxrTgdYjdp6VyTUk1Xob72oJi9Z/qDot0b6gWVS0tXg9qVp3pyImgYUisOCjbJJc3lP/PLBZkz3N+iCbJxewi5EQUoYdPLY7UrUe+mC5KkYXW58LgwsqYaDTj+3fBA9lyAeYVDrrI+FXaw0VBlkmeLSgEv8iEyzk09n5cd+jTOwvN4qKWUIX+sul9W0aMs5H4vqFo9HfhuMfg8GNfHfYzudzMj65PI9vw8tlLZyISh4SHzwZrfmoSyWLD9hEIZwORiRuGACbhxMlMGx6hDaYMjAqKuyjFEwihGGbbh7CCb9k6psqujqRO7UuHLpKH22sB4LTURsjaW7sar88CB2gCOHh8LLMajqbyQXH5EXIclHtTsuuUjQ== 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: 9aabef1a-0148-454e-b6b7-08daf83357eb X-MS-Exchange-CrossTenant-originalarrivaltime: 17 Jan 2023 02:34:18.7029 (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: AlyW1qDCEIZrXWX5zgFDEZfXETQbGDpk1L5Q1pxUbV0ZSpPeX1KMQe4hqr0f9hrDi2+fIi3QTKX6fofPEG9vUQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CO6PR10MB5538 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.219,Aquarius:18.0.923,Hydra:6.0.562,FMLib:17.11.122.1 definitions=2023-01-16_18,2023-01-13_02,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxscore=0 adultscore=0 mlxlogscore=999 suspectscore=0 malwarescore=0 bulkscore=0 spamscore=0 phishscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2212070000 definitions=main-2301170017 X-Proofpoint-GUID: TuYrLwftZegv1NMdm8pSXSALdV1JK13x X-Proofpoint-ORIG-GUID: TuYrLwftZegv1NMdm8pSXSALdV1JK13x 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?1755235660377256292?= X-GMAIL-MSGID: =?utf-8?q?1755235660377256292?= From: "Liam R. Howlett" Gain type safety in nommu by using the vma_iterator and not the maple tree directly. Signed-off-by: Liam R. Howlett --- mm/nommu.c | 79 +++++++++++++++++++++--------------------------------- 1 file changed, 31 insertions(+), 48 deletions(-) diff --git a/mm/nommu.c b/mm/nommu.c index 5b83938ecb67..595f942c6101 100644 --- a/mm/nommu.c +++ b/mm/nommu.c @@ -544,19 +544,6 @@ static void put_nommu_region(struct vm_region *region) __put_nommu_region(region); } -void vma_mas_store(struct vm_area_struct *vma, struct ma_state *mas) -{ - mas_set_range(mas, vma->vm_start, vma->vm_end - 1); - mas_store_prealloc(mas, vma); -} - -void vma_mas_remove(struct vm_area_struct *vma, struct ma_state *mas) -{ - mas->index = vma->vm_start; - mas->last = vma->vm_end - 1; - mas_store_prealloc(mas, NULL); -} - static void setup_vma_to_mm(struct vm_area_struct *vma, struct mm_struct *mm) { vma->vm_mm = mm; @@ -574,13 +561,13 @@ static void setup_vma_to_mm(struct vm_area_struct *vma, struct mm_struct *mm) } /* - * mas_add_vma_to_mm() - Maple state variant of add_mas_to_mm(). - * @mas: The maple state with preallocations. + * vmi_add_vma_to_mm() - VMA Iterator variant of add_vmi_to_mm(). + * @vmi: The VMA iterator * @mm: The mm_struct * @vma: The vma to add * */ -static void mas_add_vma_to_mm(struct ma_state *mas, struct mm_struct *mm, +static void vmi_add_vma_to_mm(struct vma_iterator *vmi, struct mm_struct *mm, struct vm_area_struct *vma) { BUG_ON(!vma->vm_region); @@ -589,7 +576,7 @@ static void mas_add_vma_to_mm(struct ma_state *mas, struct mm_struct *mm, mm->map_count++; /* add the VMA to the tree */ - vma_mas_store(vma, mas); + vma_iter_store(vmi, vma); } /* @@ -600,14 +587,14 @@ static void mas_add_vma_to_mm(struct ma_state *mas, struct mm_struct *mm, */ static int add_vma_to_mm(struct mm_struct *mm, struct vm_area_struct *vma) { - MA_STATE(mas, &mm->mm_mt, vma->vm_start, vma->vm_end); + VMA_ITERATOR(vmi, mm, vma->vm_start); - if (mas_preallocate(&mas, vma, GFP_KERNEL)) { + if (vma_iter_prealloc(&vmi, vma)) { pr_warn("Allocation of vma tree for process %d failed\n", current->pid); return -ENOMEM; } - mas_add_vma_to_mm(&mas, mm, vma); + vmi_add_vma_to_mm(&vmi, mm, vma); return 0; } @@ -626,14 +613,15 @@ static void cleanup_vma_from_mm(struct vm_area_struct *vma) i_mmap_unlock_write(mapping); } } + /* * delete a VMA from its owning mm_struct and address space */ static int delete_vma_from_mm(struct vm_area_struct *vma) { - MA_STATE(mas, &vma->vm_mm->mm_mt, 0, 0); + VMA_ITERATOR(vmi, vma->vm_mm, vma->vm_start); - if (mas_preallocate(&mas, vma, GFP_KERNEL)) { + if (vma_iter_prealloc(&vmi, vma)) { pr_warn("Allocation of vma tree for process %d failed\n", current->pid); return -ENOMEM; @@ -641,10 +629,9 @@ static int delete_vma_from_mm(struct vm_area_struct *vma) cleanup_vma_from_mm(vma); /* remove from the MM's tree and list */ - vma_mas_remove(vma, &mas); + vma_iter_clear(&vmi, vma->vm_start, vma->vm_end); return 0; } - /* * destroy a VMA record */ @@ -675,9 +662,9 @@ EXPORT_SYMBOL(find_vma_intersection); */ struct vm_area_struct *find_vma(struct mm_struct *mm, unsigned long addr) { - MA_STATE(mas, &mm->mm_mt, addr, addr); + VMA_ITERATOR(vmi, mm, addr); - return mas_walk(&mas); + return vma_iter_load(&vmi); } EXPORT_SYMBOL(find_vma); @@ -709,9 +696,9 @@ static struct vm_area_struct *find_vma_exact(struct mm_struct *mm, { struct vm_area_struct *vma; unsigned long end = addr + len; - MA_STATE(mas, &mm->mm_mt, addr, addr); + VMA_ITERATOR(vmi, mm, addr); - vma = mas_walk(&mas); + vma = vma_iter_load(&vmi); if (!vma) return NULL; if (vma->vm_start != addr) @@ -1052,7 +1039,7 @@ unsigned long do_mmap(struct file *file, vm_flags_t vm_flags; unsigned long capabilities, result; int ret; - MA_STATE(mas, ¤t->mm->mm_mt, 0, 0); + VMA_ITERATOR(vmi, current->mm, 0); *populate = 0; @@ -1081,8 +1068,8 @@ unsigned long do_mmap(struct file *file, if (!vma) goto error_getting_vma; - if (mas_preallocate(&mas, vma, GFP_KERNEL)) - goto error_maple_preallocate; + if (vma_iter_prealloc(&vmi, vma)) + goto error_vma_iter_prealloc; region->vm_usage = 1; region->vm_flags = vm_flags; @@ -1224,7 +1211,7 @@ unsigned long do_mmap(struct file *file, current->mm->total_vm += len >> PAGE_SHIFT; share: - mas_add_vma_to_mm(&mas, current->mm, vma); + vmi_add_vma_to_mm(&vmi, current->mm, vma); /* we flush the region from the icache only when the first executable * mapping of it is made */ @@ -1240,7 +1227,7 @@ unsigned long do_mmap(struct file *file, error_just_free: up_write(&nommu_region_sem); error: - mas_destroy(&mas); + vma_iter_free(&vmi); if (region->vm_file) fput(region->vm_file); kmem_cache_free(vm_region_jar, region); @@ -1268,7 +1255,7 @@ unsigned long do_mmap(struct file *file, show_free_areas(0, NULL); return -ENOMEM; -error_maple_preallocate: +error_vma_iter_prealloc: kmem_cache_free(vm_region_jar, region); vm_area_free(vma); pr_warn("Allocation of vma tree for process %d failed\n", current->pid); @@ -1334,20 +1321,18 @@ SYSCALL_DEFINE1(old_mmap, struct mmap_arg_struct __user *, arg) * 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, - unsigned long addr, int 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) { struct vm_area_struct *new; struct vm_region *region; unsigned long npages; - MA_STATE(mas, &mm->mm_mt, vma->vm_start, vma->vm_end); /* we're only permitted to split anonymous regions (these should have * only a single usage on the region) */ if (vma->vm_file) return -ENOMEM; - mm = vma->vm_mm; if (mm->map_count >= sysctl_max_map_count) return -ENOMEM; @@ -1359,10 +1344,10 @@ int split_vma(struct mm_struct *mm, struct vm_area_struct *vma, if (!new) goto err_vma_dup; - if (mas_preallocate(&mas, vma, GFP_KERNEL)) { + if (vma_iter_prealloc(vmi, vma)) { pr_warn("Allocation of vma tree for process %d failed\n", current->pid); - goto err_mas_preallocate; + goto err_vmi_preallocate; } /* most fields are the same, copy all, and then fixup */ @@ -1396,13 +1381,11 @@ int split_vma(struct mm_struct *mm, struct vm_area_struct *vma, setup_vma_to_mm(vma, mm); setup_vma_to_mm(new, mm); - mas_set_range(&mas, vma->vm_start, vma->vm_end - 1); - mas_store(&mas, vma); - vma_mas_store(new, &mas); + vma_iter_store(vmi, new); mm->map_count++; return 0; -err_mas_preallocate: +err_vmi_preallocate: vm_area_free(new); err_vma_dup: kmem_cache_free(vm_region_jar, region); @@ -1456,7 +1439,7 @@ static int shrink_vma(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); struct vm_area_struct *vma; unsigned long end; int ret = 0; @@ -1468,7 +1451,7 @@ int do_munmap(struct mm_struct *mm, unsigned long start, size_t len, struct list end = start + len; /* find the first potentially overlapping VMA */ - vma = mas_find(&mas, end - 1); + vma = vma_find(&vmi, end); if (!vma) { static int limit; if (limit < 5) { @@ -1487,7 +1470,7 @@ int do_munmap(struct mm_struct *mm, unsigned long start, size_t len, struct list return -EINVAL; if (end == vma->vm_end) goto erase_whole_vma; - vma = mas_next(&mas, end - 1); + vma = vma_find(&vmi, end); } while (vma); return -EINVAL; } else { @@ -1501,7 +1484,7 @@ int do_munmap(struct mm_struct *mm, unsigned long start, size_t len, struct list if (end != vma->vm_end && offset_in_page(end)) return -EINVAL; if (start != vma->vm_start && end != vma->vm_end) { - ret = split_vma(mm, vma, start, 1); + ret = vmi_split_vma(&vmi, mm, vma, start, 1); if (ret < 0) return ret; } From patchwork Tue Jan 17 02:34:18 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: 44439 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:eb09:0:0:0:0:0 with SMTP id s9csp1519891wrn; Mon, 16 Jan 2023 18:39:04 -0800 (PST) X-Google-Smtp-Source: AMrXdXuc9I+e0vOIKrI2lGJpkCRV85GkNC27tQMzZmcO/HE+FXMMlYc7L+mxP5X25PQLICecJFXU X-Received: by 2002:a17:906:68d6:b0:7ff:7876:9c60 with SMTP id y22-20020a17090668d600b007ff78769c60mr1040561ejr.15.1673923144071; Mon, 16 Jan 2023 18:39:04 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1673923144; cv=pass; d=google.com; s=arc-20160816; b=LTl+KW3r0Paf4nXoq4DKcRViiz77yZsKR0KHc9Y1OhBrmE4s59sX1gXpAMMpp2A/8N xmJm765va1D0q36CuhXTtzkswDu4bBy3cjK2u2AZTs1ccx1q4N5vpPrBgTtKCiKGPI4s PIChXhwZEOUATsu4SMcM9B1btoqdMBaCUyZrZF+Cs+MWiOXQ6+e1lBRI7uFamPlVg2wy BBWprP/KDcQ7BjDilIEV3jaP71v05QER1PQUgEjIhPQPVAe/WA4x7mATVRTkc4tcIQ8a 3WgxcRbbOYxHoVgUOkcL5uD21pjy7pBP9V+wo0S16ZGaUAlSyvz6ep45CgwRUE+elM4X TWfw== 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=FHBfff0pz8udEyTLfQgLPM5yOGpMVDTo1aPpd36UeFU=; b=c+Qybm6kuX6EBFaQiZDfwIG/lHnoFWQEzibgrPnMA1XEOSWMHPDIbo9V1wIx56ZtNI bbSQyqTbccF0lnYWUED3K7zYDYSwHVjUPH+5abrXtAcRJcaZZ/bBzPb9p69QtdQXQXAy 40miVfrGJCOqGuHcHWNoIa4DdIj0KXAvmiGHWGIdfLb6IpokOJIsVU04tiQtDIkigt3S xt34l5RqkwdUpqjPLzzEMeEGMfigugpTWDaXY2rRk691k2ioNR45RDQSGprcgN2yFn5F MyOkhGH1qm4B4GMZ58dATHk2r6oAttGfjmSBTVaBSeGOqjpfX8i9/0KKPnslyd+1WPg+ +0YA== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@oracle.com header.s=corp-2022-7-12 header.b="z7RPACG/"; dkim=pass header.i=@oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=eTcblPzV; 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 xg3-20020a170907320300b007c158707538si7700622ejb.981.2023.01.16.18.38.41; Mon, 16 Jan 2023 18:39: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="z7RPACG/"; dkim=pass header.i=@oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=eTcblPzV; 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 S235570AbjAQCgZ (ORCPT + 99 others); Mon, 16 Jan 2023 21:36:25 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:35856 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235300AbjAQCfZ (ORCPT ); Mon, 16 Jan 2023 21:35:25 -0500 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 74EAD2B60D for ; Mon, 16 Jan 2023 18:34:33 -0800 (PST) Received: from pps.filterd (m0246629.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 30H09URb005537; Tue, 17 Jan 2023 02:34:27 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : references : in-reply-to : content-type : content-transfer-encoding : mime-version; s=corp-2022-7-12; bh=FHBfff0pz8udEyTLfQgLPM5yOGpMVDTo1aPpd36UeFU=; b=z7RPACG/NKXAEza0Mo9wFIIXXrbqa3+Cr66u+ZT8MROOC0i86K6KT/d5R8Du0iG72HLD RbO+Exv42xsvQxToZd6dpWt2pqh2LUwRlackKDmkQ3/jD+8T3C5qI4HZC2iQGC+V+hZ9 WES9TbgNYy/EUq3buEhUQ7uRapvXnszeJYj08vxdfZQWH1NBUbJjcFdw7DYYxcO4G0RN ZLdUHI6Hg9olkeC4f7JxlFaTQm7aGovm3eUhPPLTMtZUjZejT6Z/I120exiuj3NrLiNW C4ohEANjQ4xSJyDW+HpU5fJk+X3biSkjT65Df2ROipwziCh2MO8Ow1fO7oGUA5b3aFTL Zg== Received: from iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta03.appoci.oracle.com [130.35.103.27]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3n40mdb5ed-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 17 Jan 2023 02:34:27 +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 30H1b4BV028327; Tue, 17 Jan 2023 02:34:26 GMT Received: from nam12-mw2-obe.outbound.protection.outlook.com (mail-mw2nam12lp2040.outbound.protection.outlook.com [104.47.66.40]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 3n4s2rfxqn-2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 17 Jan 2023 02:34:25 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=TVtamiMN2+FTSvirk/F3bQ99HZnrgNRRAElL5DbMKnMLag4+26VEvOmzht1J8//0iDTY92aXfmlWCxr2Fr6qssuu2ojMipPm5dYTJ2HdvZ7JiwQph5gecLL3WyEypF/SkBan1JoqSg8IwldEjkxYZ3itkHhirqo7j62isa2/bOe0g+sm8CtKAp9Zq2HyzoWhMCfm30QM1cp9Y3cCmprwdwjQALq2chxh6qmy9iuWtjSI1CcFp1HJaGaSoQCrmXvvAzEjjfL79ob3gYmaNY69oHfUYp26nmshMWGQWSD2fVf/9G/ZUCTqTndSrVcQTNpbIgrZAi2P8S7S/RmEE8LJpg== 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=FHBfff0pz8udEyTLfQgLPM5yOGpMVDTo1aPpd36UeFU=; b=fP0gQF6qriT9tHfQzYqkjC4blhc5x49q5CVfj5TleeQCPyEMfW4wmXUkfkZRMg02AYgjkwlqqUW+5h8Vn+cocmyseGIDm5K8GRlQxSTA7FOk9KoBzoHIPIsL7wWIer3WH48htd0EbKaHJSWP6CJvLsRiHCY+2lqleQ83ifciJBP2HuQcPTTtPYWZQUNjJRMEYJbdn8Ldqae+pNNTna42tIQGYD7UzWv3xiRBLV7ikRJOUhWF5kSO2mwUstRSeFZiwGmc0yCA0UZtf/DcoFwwF2Sg0lymfLTboZs9vaIlW9UxgkvEqWe3RaL9tf0GB6XYvqCxBAw/6rWooJYTKF6kHg== 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=FHBfff0pz8udEyTLfQgLPM5yOGpMVDTo1aPpd36UeFU=; b=eTcblPzVpaku0jKPXxKf4LQLKKyAAqdYankP+9C89J1dRixHb2gKxe8Uc5fM3EzIENpvLge4BMV45Ou8832v3B+lCJPErJ7mjywD+xRNC6St6/gzVHab7N80prX7kEx9K06PwsLdAGvqHtioeFnj0uTcr/BCHcg3ZnTZ2T5XQQQ= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by CO6PR10MB5538.namprd10.prod.outlook.com (2603:10b6:303:135::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6002.9; Tue, 17 Jan 2023 02:34:23 +0000 Received: from SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::a02:2ac8:ee3e:682]) by SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::a02:2ac8:ee3e:682%4]) with mapi id 15.20.6002.012; Tue, 17 Jan 2023 02:34:23 +0000 From: Liam Howlett To: "linux-mm@kvack.org" , "linux-kernel@vger.kernel.org" , Andrew Morton , "maple-tree@lists.infradead.org" CC: Liam Howlett Subject: [PATCH v3 28/48] nommu: Pass through vma iterator to shrink_vma() Thread-Topic: [PATCH v3 28/48] nommu: Pass through vma iterator to shrink_vma() Thread-Index: AQHZKhwzvG/+hOM+tUqNzGWiXmLirQ== Date: Tue, 17 Jan 2023 02:34:18 +0000 Message-ID: <20230117023335.1690727-29-Liam.Howlett@oracle.com> References: <20230117023335.1690727-1-Liam.Howlett@oracle.com> In-Reply-To: <20230117023335.1690727-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_|CO6PR10MB5538:EE_ x-ms-office365-filtering-correlation-id: 9b11ab40-1528-44fe-89e4-08daf8335841 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: Hx9wwg9o60VVu88hU/oFOKTT+H5IPxmVxq0/o4CoDpG3cBn4o3M4JLMoAwx0tBueTldLKEp/wT2nCPKLW2zXH5vTDiWvtnurVMQ/j41j1MJIyBFDt5D4aCLzjyWFrbmIvzIBb04PG9BWWTQyqF9bg0N5F8ExY8qf9b00e2Js2yzKVkOodbEq5vtJcQ95nyXN6ZZkgMjuvCenHge2n094OLbuCl9Bd1LpnaD0Rh/VEBTWe+s89XJukVL9yWfZq5nsLLI7MlNd6DdXXYHcctLVXsC6Bfu3ohnva91p4mHNbwuUfm/Tu0i78LXTxLP1FgiyJpJRhgeDCB26CWebLyFD4zIgaShefrP086HvnALcNVBFlYTl6ubqrWkksReZcG/H/n5qG+jJLgrjtrjoHafAg/VcSd1ogXyJJdhUjNmtYjGiH0S2CcwLdPNk0qBBzK5Ulqr7IK7R6u6WLS7n+PIs4yTOx+427SGxF93pirXOYrvqetPJ+jc9zAXK8zLvW9maGv/ccchrJwSLTlAA3deviH7JE/0s6jG49VNt7YRPBKoZ1ZfeCrKnOeOSi9xRAY8qxSuxckNl5frZ4VG2qhKsLxrxLMGw/UrWB6yoS+ZSs84Jou8H9ozDSaLryU8cf/9tdDY2DidQWkwrJCxdkUO0OFBHX48uaN2IUm4Qfz1xHGxANlmhAWb66TE5eOX2NcOuTmqgqdOdpDSFytHUOq8EBA== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SN6PR10MB3022.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230022)(366004)(346002)(396003)(136003)(376002)(39860400002)(451199015)(36756003)(91956017)(86362001)(8676002)(6512007)(64756008)(4326008)(186003)(76116006)(66946007)(66556008)(41300700001)(2616005)(66446008)(26005)(66476007)(316002)(71200400001)(478600001)(6666004)(38070700005)(6506007)(110136005)(107886003)(6486002)(44832011)(122000001)(38100700002)(2906002)(5660300002)(83380400001)(8936002)(1076003);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?q?ip6SJYeJRrEsBWLuCVSO/oP?= =?iso-8859-1?q?YWlY0fN5XOUMUp1vRFUPdMNISJRzIFfpUhwc2Z6doXLNSaltaIUdtoIWdg54?= =?iso-8859-1?q?aU1TbGt5MsniDOWKqkkPs+ajCwnnlsVlIWNjN6LSuox9cRK6t0mB5weZhDsj?= =?iso-8859-1?q?HwlIX1/yd9nwGwHyTiaFVRmaGYeWQujwxx23W6qA8cwx/Bst+dYf5Si6Cn0C?= =?iso-8859-1?q?cx2d/ACSYntYQlh+a4+TJvhkaYamdRsgm6ccLjnyoQKbyPeX3E0zqNh6g+bQ?= =?iso-8859-1?q?ZNU58b4PDKsbZNKu/fOWHvkUp6V+W9A523dHrOpElnChNMeAIdgDuL8Ab6LM?= =?iso-8859-1?q?ibsfsGKWAkWEJpzWL7qZ1yDnYgpm6p9B5576Ei5bXhQf8koPpCqV6n2fNgqS?= =?iso-8859-1?q?a9vMA1xCzCjwakgVBHAOycwfbVWgOMAVBTStNW2yezAJsgO2lfnbTd/fAqnD?= =?iso-8859-1?q?c9kn9lF98P3OEXrr/suO7sRycit6qSutj3SzBIKNX+I0AgaB4fBpzEBffT1o?= =?iso-8859-1?q?5xUVhewaAgvgab7de9P+ZByER8gAA1plCl0KG2gFsg+AzrcZZEkRZuR7NTmi?= =?iso-8859-1?q?tcQBmHsaIkGR+BMjfjIuBnvYwS8lAJnJCv/mR9wKebzjSH97xGIh142dfz6o?= =?iso-8859-1?q?z7jlnvDyycaaTVpdqb2CJSJqxo9CwEBsoG5zqkmjABWl6yuZhEGHjy01+s8p?= =?iso-8859-1?q?2Hk8zZujlUnVA/rM880K9MYlDp1Xj0/keW9vlBxD3avbOCVNZR3A0nBcrJ19?= =?iso-8859-1?q?k+jwsoAmqe0XdZv4T8a3i05Gj4n2BHpE8HkR8RkliQ/9WB2aQXFiJ1zvGric?= =?iso-8859-1?q?vwtF7hvOjGHO3Fmv49X+Ersa8UlxyihvEbYDi7KxbkdVmcFngvYCHK87aSbL?= =?iso-8859-1?q?Al1yfr1XNit+qU6QMf3VHoU6ErGaLsE4w1mBtPIEUdggEYOakLwPAqjfgQhX?= =?iso-8859-1?q?kXMcJFWarE8U7QFrsgp/1v6Ay3q04j5Jqw2JkB5L0fXvyae47oL5si3QH5Hg?= =?iso-8859-1?q?YkUtjGqHsjZJG5b4zuUuuGBTD4HmuoOpHIFU9gJxhY8m74U4XlhyVFmT0bP7?= =?iso-8859-1?q?NjRDbOMgLkt85hu57dRsqJpblzO22D0t2w8kb3Nn6qw/uEOzFmFAN4QkqvKy?= =?iso-8859-1?q?VfGInBQEjx1Uo2+vywhZieSItFc8ZBThGHNcc4iKhhmB4NIV0sQBpVDpE5YT?= =?iso-8859-1?q?WUJ6C7l51Ga5QyJwwdS+O4sjZ2X9i/H4r1rODEMiUL4cCJsvCHQP5tN5Q1OA?= =?iso-8859-1?q?TrcmNYfE6kDiivMJmxwMpSs+DYRAdJiTvoAbepL74FshU7Fsm/KzdY9GJbi4?= =?iso-8859-1?q?98S0Oh9gooIjQKuiXEig9aWKOmiLK5VXe/bw7WKuqi3KrJmiFZ3Zyw8f084Z?= =?iso-8859-1?q?ZEP7UM39HrylZnIF2qpCdGY5N2OpGjBEknhjEouFQe6HtPjsIuqCe9tgceFL?= =?iso-8859-1?q?33dck/3JgxWklzdIjToJWNVZRP7cVpmSqOPTsTpt25Blxze1cO5QsQGLwCcZ?= =?iso-8859-1?q?DENq3uPBUBN5ocW4y6RVq5H6hyy36zEcr9hIiAVRnmPuZpegEeNpoN5dScXg?= =?iso-8859-1?q?QcFX9HEHvWMR/f5Mi4E4DmbtdF45QHsTeBVZQkDY8yagMxye2UnhGiYOaogm?= =?iso-8859-1?q?KgeFSe3JxPYzS8AnhvSIobe/mzc6n2IkeW/PMTw=3D=3D?= MIME-Version: 1.0 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: MeYfpMhUicwMV8w1PGUpkfPCHuECRpPr8icORh8Rn5Xn3iO80r6FnIzqCeKVeLPXU18/yIndg0XduTnO4Y6/4oc38njuQ74UksK7oPjJmy9OXeAafhClTrxzyU6Gemh0nQbyM1UvQWGJ/oz7qtYwZx5KofNS7a6AkmrRY7VCMPsx6SChakjqBUNWiM7CEuJSQYiykw8D5nUrLdVH92eRjPDJ4D9a5qeTi5/q3Td/yySLsowFeaiSvoBOONjK0FtabRu7wos9aO6K1hPHqevCO1kfxJG/z1A0Pt9IetrSMJY3kRyrJEUWYsDI5xMsI+5W52IznhpTkThPeAWCQCybFfcuDNKC0hyfWoCLFq3hsr/1I8R2qNl8u9GHZDvvC0a8gaHNlH4zbkXaMvCa95xsx+5Q7G4Dokj+hdCYgJIOVh1huOyI0jE2flHe9c2PaoF9DAy+h0Ml69ioEKMcZku98l5DVtNXNFusVHXab+rd+v7L3La5i7hvyYu1Ws9bScYK4SbMMlis9KlQ3f5aQdMneiuJwTdLHsQaywrt8iu96z4l6GK3ywpvji+TRBDfzoaSLqQN/n7YVuzSmBHvKXZJofKPUdEtdH8V/10wHS1N6HDDtZP5kYx+a5opSzQUpJ/1cPeSRHxxpmDPOmwQ8JJuLCLCnzJd7z/2W4+LCmmTPzuUpC15tv+0MXFOi+CPKuOpWdYZUhJXLiHyvwq3F8wgDH3oAoQ6/Twv2iJkvsgY3Ehz5LzrEezkGYqusBhZOl2n9Oo7QI8L+yCHPoFIXuHprCSkSPyX7NfAIBh63JhlaJMEIjUPCnHYq8SxTdFoYuE4bDg+/6Ja28YU9pvPf/S6NO9HvBy+KaKnnsfwHhBl+33GyhuKJ6FdVPFW850dPGOouK8dG5g/psjUcJj7hrtJZg== 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: 9b11ab40-1528-44fe-89e4-08daf8335841 X-MS-Exchange-CrossTenant-originalarrivaltime: 17 Jan 2023 02:34:19.0153 (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: X/w0jq/S4OSSd2jMdauNmhzWeDEBI1dE3JXeB3UF7C1v+plh5BLCTNdgcw3joLd5fOSlCX0xvkxv++Z2lfN/Iw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CO6PR10MB5538 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.219,Aquarius:18.0.923,Hydra:6.0.562,FMLib:17.11.122.1 definitions=2023-01-16_18,2023-01-13_02,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxscore=0 adultscore=0 mlxlogscore=999 suspectscore=0 malwarescore=0 bulkscore=0 spamscore=0 phishscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2212070000 definitions=main-2301170017 X-Proofpoint-ORIG-GUID: ulaiPH1Dy-jWxrrBB1BmXEGu5Hsu8VTP X-Proofpoint-GUID: ulaiPH1Dy-jWxrrBB1BmXEGu5Hsu8VTP 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?1755235634826402742?= X-GMAIL-MSGID: =?utf-8?q?1755235634826402742?= From: "Liam R. Howlett" Rename the function to vmi_shrink_vma() indicate it takes the vma iterator. Use the iterator to preallocate and drop the delete function. The maple tree is able to do the modification easier than the linked list and rbtree, so just clear the necessary area in the tree. add_vma_to_mm() is no longer used, so drop this function. vmi_add_vma_to_mm() is now only used once, so inline this function into do_mmap(). Signed-off-by: Liam R. Howlett --- mm/nommu.c | 63 +++++++++++++++--------------------------------------- 1 file changed, 17 insertions(+), 46 deletions(-) diff --git a/mm/nommu.c b/mm/nommu.c index 595f942c6101..f892af0a6ca3 100644 --- a/mm/nommu.c +++ b/mm/nommu.c @@ -560,44 +560,6 @@ static void setup_vma_to_mm(struct vm_area_struct *vma, struct mm_struct *mm) } } -/* - * vmi_add_vma_to_mm() - VMA Iterator variant of add_vmi_to_mm(). - * @vmi: The VMA iterator - * @mm: The mm_struct - * @vma: The vma to add - * - */ -static void vmi_add_vma_to_mm(struct vma_iterator *vmi, struct mm_struct *mm, - struct vm_area_struct *vma) -{ - BUG_ON(!vma->vm_region); - - setup_vma_to_mm(vma, mm); - mm->map_count++; - - /* add the VMA to the tree */ - vma_iter_store(vmi, vma); -} - -/* - * add a VMA into a process's mm_struct in the appropriate place in the list - * and tree and add to the address space's page tree also if not an anonymous - * page - * - should be called with mm->mmap_lock held writelocked - */ -static int add_vma_to_mm(struct mm_struct *mm, struct vm_area_struct *vma) -{ - VMA_ITERATOR(vmi, mm, vma->vm_start); - - if (vma_iter_prealloc(&vmi, vma)) { - pr_warn("Allocation of vma tree for process %d failed\n", - current->pid); - return -ENOMEM; - } - vmi_add_vma_to_mm(&vmi, mm, vma); - return 0; -} - static void cleanup_vma_from_mm(struct vm_area_struct *vma) { vma->vm_mm->map_count--; @@ -1211,7 +1173,11 @@ unsigned long do_mmap(struct file *file, current->mm->total_vm += len >> PAGE_SHIFT; share: - vmi_add_vma_to_mm(&vmi, current->mm, vma); + BUG_ON(!vma->vm_region); + setup_vma_to_mm(vma, current->mm); + current->mm->map_count++; + /* add the VMA to the tree */ + vma_iter_store(&vmi, vma); /* we flush the region from the icache only when the first executable * mapping of it is made */ @@ -1396,7 +1362,7 @@ int vmi_split_vma(struct vma_iterator *vmi, struct mm_struct *mm, * shrink a VMA by removing the specified chunk from either the beginning or * the end */ -static int shrink_vma(struct mm_struct *mm, +static int vmi_shrink_vma(struct vma_iterator *vmi, struct vm_area_struct *vma, unsigned long from, unsigned long to) { @@ -1404,14 +1370,19 @@ static int shrink_vma(struct mm_struct *mm, /* adjust the VMA's pointers, which may reposition it in the MM's tree * and list */ - if (delete_vma_from_mm(vma)) + if (vma_iter_prealloc(vmi, vma)) { + pr_warn("Allocation of vma tree for process %d failed\n", + current->pid); return -ENOMEM; - if (from > vma->vm_start) + } + + if (from > vma->vm_start) { + vma_iter_clear(vmi, from, vma->vm_end); vma->vm_end = from; - else + } else { + vma_iter_clear(vmi, vma->vm_start, to); vma->vm_start = to; - if (add_vma_to_mm(mm, vma)) - return -ENOMEM; + } /* cut the backing region down to size */ region = vma->vm_region; @@ -1488,7 +1459,7 @@ int do_munmap(struct mm_struct *mm, unsigned long start, size_t len, struct list if (ret < 0) return ret; } - return shrink_vma(mm, vma, start, end); + return vmi_shrink_vma(&vmi, vma, start, end); } erase_whole_vma: From patchwork Tue Jan 17 02:34:19 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: 44446 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:eb09:0:0:0:0:0 with SMTP id s9csp1520176wrn; Mon, 16 Jan 2023 18:39:55 -0800 (PST) X-Google-Smtp-Source: AMrXdXutR0qwdRjgHegezJ9Ob69sARIIdQv5Ffi264UsoKXv/JMukRR5KVv0AC8O7zz6xPCAtvOz X-Received: by 2002:a05:6402:1044:b0:498:8c60:d7d9 with SMTP id e4-20020a056402104400b004988c60d7d9mr1470584edu.12.1673923195415; Mon, 16 Jan 2023 18:39:55 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1673923195; cv=pass; d=google.com; s=arc-20160816; b=OUkGamONQjtZUX49amffdx8ezYB5VHHth5Df1UuCCTeo7XtmvkhBZg8FjUFEgKS3AE YAjgu+cg2nrxkhKWWMZlVYv7FdG3q/J0f6iYgVEuDtME1lwJGqPDQlpYdcGwfc6fTlKN /XLB6Xafr9zWEKYHaQpf9vovqClpofuVKSTyXNTgTFvPgE4P068biK4aOvJeR5NLJU43 tnQiMXPDje80nous5UpnXL2HbEJgwbU3vmLFWNWkKin6hvWkrTeDHrMtaCWJ3nRKPHtx mBTMcWmCPHeb2rl8SshuXBEZ6IIZfQZF5ycO4aPADjHuBX8U3Ym6LvM45NrKQxJThZJ2 /kcQ== 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=H4D8RYTypKrdv93jbY2120D0AsVBIu7vInjpLpjxPZg=; b=XGwLHa8DGnkt8vlRYwHRh3+WunzFiRIF8rG0s15TfTsI8f0VpXVFhqO+NIuDRa6QS/ iGMTUuAPtmxdUbhEF9NuVgF5hB7BDFtNiHtuAT8SPJZR9D8108bOSvTdp9vArEnUQfvN GJbo8rP2aJKhxL/A8yVWbPdNmMzHMQjuqLSvM7zjI3LsAsALU76zMVSZ4Re5HYUOIUuQ OmJInWX2s1XAzDrJMyIHNCEaMMAzPyGyXBTKPBOhQW6eFYnN3P/VV2EJ2oxDGWRn0lRV U06t95XpdnkeDVwVpR2VAj5cn7Daiy412JimTsLKel/giMafWPN8ktkQQwncA54WuTXh SjyQ== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@oracle.com header.s=corp-2022-7-12 header.b=0LIB3o1c; dkim=pass header.i=@oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=o9L+FGLF; 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 x12-20020a056402414c00b00486120b4969si33970230eda.394.2023.01.16.18.39.31; Mon, 16 Jan 2023 18:39:55 -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=0LIB3o1c; dkim=pass header.i=@oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=o9L+FGLF; 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 S235636AbjAQCh0 (ORCPT + 99 others); Mon, 16 Jan 2023 21:37:26 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:36910 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235492AbjAQCfp (ORCPT ); Mon, 16 Jan 2023 21:35:45 -0500 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id D10982CC67 for ; Mon, 16 Jan 2023 18:34:38 -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 30H09XGC006403; Tue, 17 Jan 2023 02:34:28 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=H4D8RYTypKrdv93jbY2120D0AsVBIu7vInjpLpjxPZg=; b=0LIB3o1cNZkiVIyaO+s5APahVOOusf6s1lJfQyLCNTpnsXErso5e0Aqmkx4kZlVedYWE 4yeprgUOglP8qQHtot+m98gHzNJn7YxGb+EXapCzYdV3OSXPcsrh/mTtmvrtuGlJCcGv 5sHapLtz7KPRfL4REqelbRSVbSmS8/0ACRAlGLBMj9JrNSh/pDGOEpGPfESUjfPmcP5g 6UpyjB8Ry33Rc236RHzGJm/YgMSRo3uTx53Oc70dYyZbmtmfwJwmf32giwM3zMd8jsMi wlc+ZmI4UoUjnbzSLVPI0pfzb7VEfMUQrgvg7G3a/C7o+uhgu06nbz0k4lgQFbbkSxgU fg== Received: from iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta03.appoci.oracle.com [130.35.103.27]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3n3kaabrjh-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 17 Jan 2023 02:34:27 +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 30H1b4BW028327; Tue, 17 Jan 2023 02:34:26 GMT Received: from nam12-mw2-obe.outbound.protection.outlook.com (mail-mw2nam12lp2040.outbound.protection.outlook.com [104.47.66.40]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 3n4s2rfxqn-3 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 17 Jan 2023 02:34:26 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=JIGXErrgn+xK39WIz5CVd4b5gFWQFmLZwpIhmx+QedYo1HHXCfnW4KS7o6ZWtsm1vIwkWsMcgveGyu+kClITwNddipO1GetAkO/58wt4gL3bd6eoG9gnIqvrNHBaC66571fUEH9wGyynDQX3kFDujXGkdrvZi3NgBCWWBh/vj+WxG7fkRbAncSVlFlT/c9hFhid6bLG0kP4+4Phy1W+jVJ8QhROpsBqCfsIOqK0Z8qOzDh+tuZsMsOrUDVGfWvvwxkGEuUQnS4tZO0Ga1EJQXKd+2bJaSFcb6xofJJ7aJnSkkA8ld37g8xRUdDKHYVBNCY/gzJUlsX/Ad5raBi/scw== 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=H4D8RYTypKrdv93jbY2120D0AsVBIu7vInjpLpjxPZg=; b=S0zpcGCmfNPiFej3rFnIRnkj1gT4Hf5ujmjjPS8d72n5MAfTOhSZy439/cZkS2XY7+ljedtisZFSHE/5j9TeGM/XEN1+Ov6bgB3rpFD/IE/yR5SQHw8f/PHyx3g64pGKVE3IOaDS1xlJnRut+Hm2TDgCaY7jFAl+XJb3OCwXzPlzyiS+IKMAAZVHpW5zfPqJo5p7RYaXh81V1bBVaHLN0XZvXtjlqSsrVQUU4NniWsEPGxPDs1op3KTJ4hMLS6XD5yNIrR6a5crUVv3+DUXPXmhA1YH4KyNd4hSr/blnrza7oOsavvwPYdxfRDANmQV4TaLlBB8VrQEC07wNDT/H/A== 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=H4D8RYTypKrdv93jbY2120D0AsVBIu7vInjpLpjxPZg=; b=o9L+FGLF+7EUX7rN0TLmUyZsw4Ld53SmwYWYY2TfoXBMfEwBVQVHOuJssoDnM1IqpPt5xydGW34XkfQR861shhBoX4yGISvHx2nOej9ljSd+oX6QpUiKLqCwszvOoLS9vo4ah21OD4N31lR+2X/Fhj9mMXBiDVVZr1o7xcGm+1A= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by CO6PR10MB5538.namprd10.prod.outlook.com (2603:10b6:303:135::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6002.9; Tue, 17 Jan 2023 02:34:24 +0000 Received: from SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::a02:2ac8:ee3e:682]) by SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::a02:2ac8:ee3e:682%4]) with mapi id 15.20.6002.012; Tue, 17 Jan 2023 02:34:23 +0000 From: Liam Howlett To: "linux-mm@kvack.org" , "linux-kernel@vger.kernel.org" , Andrew Morton , "maple-tree@lists.infradead.org" CC: Liam Howlett , Liam Howlett Subject: [PATCH v3 29/48] mm: Switch vma_merge(), split_vma(), and __split_vma to vma iterator Thread-Topic: [PATCH v3 29/48] mm: Switch vma_merge(), split_vma(), and __split_vma to vma iterator Thread-Index: AQHZKhwzZQA5yPY7LE290alK6jq4DQ== Date: Tue, 17 Jan 2023 02:34:19 +0000 Message-ID: <20230117023335.1690727-30-Liam.Howlett@oracle.com> References: <20230117023335.1690727-1-Liam.Howlett@oracle.com> In-Reply-To: <20230117023335.1690727-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_|CO6PR10MB5538:EE_ x-ms-office365-filtering-correlation-id: e1229a5d-3709-4224-d3cd-08daf833588d x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: GL4CghYpdC5kZIU4D+1RDLzr4OloQibvKJi8lMtG1NSc2A/h5wiH8Er7G2VrtNxXjvtB8OUEKAnwfDRONk0WBRXzOI1a6An3qG/MW94XJfBRAM0AQtbiU75mND24XwtYCWzVHnu1fM/CppigB/arW8RjL9x/DmJny7lvOjaxFhBnhu1GmFTzesZL5M9y3DqgctU8pnRw33VOJe4x76aIkT2UCkogV5LOiqqHvpLHk2NTP81L9GT8ifXEs4lnugqXNq7Hjb47zQrgkgNFVyBJkyWE0g04U7xvvpSaNCFv30+Gc+iD5f7NWByK4qMkJUoadNcwv9neEeewKDHahdwemp66wXXfQ7C4BkDFyPBrk8vNm/eLU7r1TMKA1KYGf1suKB5or7w6BssX5zXVFfssCJAI3WnkykoUG8KUXB7c4n5sv7tpTQDO4ja2GxQnlsiOTn8p6NGOZXs11/tim9GgcbrEvXVjYdDKe1Z3tuQLRgaAOKAeJAfFxPIl2zZ9kSQiZ8kGsgH8UZT9apDV6aobhb/k01vCwhv2vgr8c4cNKOZzN0b55LsJq3paC/V4kTWhYa3amnB99v45qkHUQ9IAclHhq9Y/Mo+mDLrVsU65ZThj8kk7+UWm6XTcrKlcc/A74Xi3wAg0SKKHdYed2ii5S4d6/8IgsMY59Yx7QxMUTxuTdyqyE3Sr4qiO2ua3nTcwpwPrERpNd9W6J/9Hqe+4EQ== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SN6PR10MB3022.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230022)(366004)(346002)(396003)(136003)(376002)(39860400002)(451199015)(36756003)(91956017)(86362001)(8676002)(6512007)(64756008)(4326008)(186003)(76116006)(66946007)(66556008)(41300700001)(2616005)(66446008)(26005)(66476007)(316002)(71200400001)(478600001)(6666004)(38070700005)(6506007)(54906003)(110136005)(107886003)(6486002)(44832011)(30864003)(122000001)(38100700002)(2906002)(5660300002)(83380400001)(8936002)(1076003)(579004);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?q?8cbqtFHOCPSw+zdh6BEGFSX?= =?iso-8859-1?q?VnkXV2/cK5+FOi4ipAkYrksZaPtksNriiC9PV2qDF15QO7d3VcUr2F7kabO7?= =?iso-8859-1?q?wRxDxyaH6WPp+LogoWdWqtRiewoDS7cbHBHtFbM0u+NbWBpI6Z15BH82Nm9d?= =?iso-8859-1?q?Nb6qFgCJ1szdI08INyM5WgRK2W4yOWoXxtA1zv5yYcGU/cdhtt7sxrD1bJW9?= =?iso-8859-1?q?XZ3dH08bevkxiZfkxiEW/jAI0SM94bcXXZ23k6N0aow/7+DYEAwWDPsUOn2W?= =?iso-8859-1?q?zn1DQONm89WzrEeZ91Ju3RT3HOPEZh2P+rdQNVSmcq+a7pNKb7hMDTsepdiz?= =?iso-8859-1?q?nivYlZUG8Wn4D9cuy/kKKgy2f53KGnPt2EfgN6UxNfruCFdxjPnDfP50gHPu?= =?iso-8859-1?q?vVyVcEfMZCVVG83IzVKa43U0sC5wuUnSzghwSvHzx82VmmE07zRcGK9zvJ5d?= =?iso-8859-1?q?0IAbpE5SbDImKZEMH6QQq1Rta7mFXzNyO25LJ5i/7X/U5pYwYrhL4mF8nPoZ?= =?iso-8859-1?q?/xjlPJ6IMJIDxw0W3W4h++WY+0BHpP9BWw0w1uvuQ1GhR7tIa0cqfT8+kVnF?= =?iso-8859-1?q?wVzsmuSpK+t1mMGYZEvmEDRA/d4TegjDm1LiUH9Rq96U9mSUilvxNZlKmIJ3?= =?iso-8859-1?q?2Ce69N+/kNDIlD5GwDDw2P1x+EBEsNVm2Lb6EhTAFnpMjCvrscPOygGeD8fc?= =?iso-8859-1?q?nq0R4zDX05R2hyqQpSuZl1NSxbb4dGYQsv5HJZtIZLw6XD0Ptqnjaq4WUuic?= =?iso-8859-1?q?eRe+7CJBB4Zeolnt9P2s2mx0OtFKn5NYEX6tGskyl5FWYDOk+UayiFpzZUZq?= =?iso-8859-1?q?igHkfSkTdnD61R4TGJSyJZv04UFKydg86WqpooGTMhn4661siFUNzvZEXsuS?= =?iso-8859-1?q?WDr7zHM9mOpMzs13I1eOgAgay6yPUwMqwkvp1/W1SGywjXNcBtZk9sVT0NDB?= =?iso-8859-1?q?L1Jqc28x0rVaOdPl/V0KnM9+yg2rwdVpYzQj1CiKFl3X9FWT1BbYmLlge7/S?= =?iso-8859-1?q?rinUyDK1J91fp5g8Q07zwprWFYQsKsN9lTAx4GUDbjrjuCQPRObTBqmauSIs?= =?iso-8859-1?q?ppoiGSJ+xUAmnWqqmHkU3HqCLsZb/0XxN5MPdUkmKxWNsh9J6F5TSzIjjrnc?= =?iso-8859-1?q?fpYeP5fEvm/VY2P/in2B70/R/r3/IWf724QWWzNb0dxa5ycbY5PBtqNArEFB?= =?iso-8859-1?q?3ePRxqAX/zq2uC480HjxqnLP+FoirNOGpyKQXIH5p8pis23AZK1cPiqYl4WJ?= =?iso-8859-1?q?SGZ+8tIwAbdMFDO3uckyK14lpDRRRvOwfLB9ObaiDalX0wX2l0xtTNSynXLF?= =?iso-8859-1?q?QKV0JV3FrygT/x++xOdvIfGKwGlgG/ZSd3093LuZJV16B1kd3EGBP0RQHEsS?= =?iso-8859-1?q?c2CUmOmNu/WUfMgcbCB9QZPZZz8Oc9JKe6M6o5IwWsvw3nm3ybvS9ZNnO+K7?= =?iso-8859-1?q?M8LFVc+/8AF5J2pfyNQlpjxfzzqrbD68eol6DmfkHZcWaD+RALFR3OQjX87T?= =?iso-8859-1?q?YfH/F6kVCPXp73DBa0XLX0UCkf5DVev6g4/GrLBZhKfVTZ0cARHyC7mc8Ztj?= =?iso-8859-1?q?xRSGH6N7EVtj4px8h1Kp367RQeGB/hWQY6z4euSzAXKAew0PNhW3YZ4wf8SR?= =?iso-8859-1?q?RQGWnWzbHS9AmDFxCZgmVhkYmqKf2KNYAE+yPcg=3D=3D?= MIME-Version: 1.0 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: +Zxdob4c9dL7LzZ5WnX/8ji+UyMwqymDqSmgXqo7bqblZ1DlrrqLrkic7lHnDv4fNqZ1MeQuYT/jbWILC92BShqj40r1kT1gA2H/uBMiCM87OKlU04zZSXce9AB58OWNyqPu5kYcpLyxm2MYohIUJ/EsnoXagvBBItMapyuWvXkwv9PaSyuyt1rzaVPXnATL+8Wc2MdXvUREjYXvjzQzNs5iSoakGh5By679PwgXXTD61jXETIwvj4yI8ot8VAY/mwiyut7EKULjWSzvwiOQkfX2ZX5K7rYc0yQvEtPLrAAY2oiTXfUUIStc/yx8azGl2JX5uZzabP75kEg6ZSaayumvNk0NBUY6y+5f/Y3pNvbo4KGxAr1skbDqjgTNrGan9tQ1G7k6tOxNwYy4S4NTEqYbXzbGcgMClnv8BKj3IaM45dlWnZckSTlo5Ju5uVpF341BtlX4x1xvh9+UI4Qi7WduQlabf3id6gO7EzKDQaP7M75AmwxkEP2wxMF9TfZNeCnOAh2L1Wr+11pT1/3r31vtkQ6FKZstutnlCPAsuMo0NXsr1+wu0jfLF3LfmQC4B/IOyzhJyvLi3xG3V2dwMnxw3rBvqPP91adDk0bqf9Dg/8NWcJCnewF8zk9HxkU0cYlW1Mjjb6nGSkWiimwUn6mF8As2DqbBpOs1nobKhsRVGV/ZNZmgsE/CXjCsSiXc/YCoCubnd4/A8+O/7LBhcRHYo0nJ8NOf8uxxQWHI7sfj9X7lzftV3it+eD+4jVJ7effelz2wnloC7uTMmhqNSgijEWHiTX/Jdk6RYnLaAc1SkDNF5bm55i+POxkAhQ8Lvrl6wNmvmSN/K01O8R+B32eYJ19KN9WSYNEy+hyukKj/WnekJmH6LW0+rtB2sEZ7PkghoCYOKwkaLjC8mCvgDQ== 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: e1229a5d-3709-4224-d3cd-08daf833588d X-MS-Exchange-CrossTenant-originalarrivaltime: 17 Jan 2023 02:34:19.3278 (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: mMRtSZdOrHgNx7SI+SoEDrOhm24gaD5g32cQ8s4wAtJ7LADGwMd27mEXXK9wzccYDxxBek/CIIExUsBn9jqlJQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CO6PR10MB5538 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.219,Aquarius:18.0.923,Hydra:6.0.562,FMLib:17.11.122.1 definitions=2023-01-16_18,2023-01-13_02,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxscore=0 adultscore=0 mlxlogscore=999 suspectscore=0 malwarescore=0 bulkscore=0 spamscore=0 phishscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2212070000 definitions=main-2301170017 X-Proofpoint-GUID: rBfFhrlAQcQH4SQnGc8lOeJvBGhOZtFP X-Proofpoint-ORIG-GUID: rBfFhrlAQcQH4SQnGc8lOeJvBGhOZtFP 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?1755235688746435262?= X-GMAIL-MSGID: =?utf-8?q?1755235688746435262?= 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 | 18 +++-------- mm/madvise.c | 6 ++-- mm/mempolicy.c | 6 ++-- mm/mlock.c | 6 ++-- mm/mmap.c | 79 +++++++++++++--------------------------------- mm/mprotect.c | 6 ++-- mm/mremap.c | 2 +- mm/nommu.c | 8 +++-- 9 files changed, 52 insertions(+), 93 deletions(-) diff --git a/fs/userfaultfd.c b/fs/userfaultfd.c index 8aba0afb9b43..55f3af6689b8 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,12 +1615,12 @@ 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) { - 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 bed33b5f285f..71474615b4ab 100644 --- a/include/linux/mm.h +++ b/include/linux/mm.h @@ -2830,24 +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 __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 __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 35764a4f0575..bedad71ee069 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 8e83e174c1e0..61d04930e897 100644 --- a/mm/mmap.c +++ b/mm/mmap.c @@ -1013,7 +1013,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, @@ -1022,7 +1022,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; @@ -1088,26 +1088,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; } /* @@ -2227,12 +2212,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); @@ -2272,8 +2259,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; @@ -2288,46 +2277,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, @@ -2387,7 +2351,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; @@ -2408,7 +2372,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; @@ -2689,9 +2653,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 @@ -3237,7 +3202,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)); diff --git a/mm/nommu.c b/mm/nommu.c index f892af0a6ca3..f04979004a29 100644 --- a/mm/nommu.c +++ b/mm/nommu.c @@ -1287,18 +1287,20 @@ SYSCALL_DEFINE1(old_mmap, struct mmap_arg_struct __user *, arg) * split a vma into two pieces at address 'addr', a new vma is allocated either * for the first part or the tail. */ -int vmi_split_vma(struct vma_iterator *vmi, struct mm_struct *mm, - struct vm_area_struct *vma, unsigned long addr, int new_below) +int split_vma(struct vma_iterator *vmi, struct vm_area_struct *vma, + unsigned long addr, int new_below) { struct vm_area_struct *new; struct vm_region *region; unsigned long npages; + struct mm_struct *mm; /* we're only permitted to split anonymous regions (these should have * only a single usage on the region) */ if (vma->vm_file) return -ENOMEM; + mm = vma->vm_mm; if (mm->map_count >= sysctl_max_map_count) return -ENOMEM; @@ -1455,7 +1457,7 @@ int do_munmap(struct mm_struct *mm, unsigned long start, size_t len, struct list if (end != vma->vm_end && offset_in_page(end)) return -EINVAL; if (start != vma->vm_start && end != vma->vm_end) { - ret = vmi_split_vma(&vmi, mm, vma, start, 1); + ret = split_vma(&vmi, vma, start, 1); if (ret < 0) return ret; } From patchwork Tue Jan 17 02:34:19 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: 44459 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:eb09:0:0:0:0:0 with SMTP id s9csp1524481wrn; Mon, 16 Jan 2023 18:53:30 -0800 (PST) X-Google-Smtp-Source: AMrXdXvGWvcl0AozQCfrDOvCIKw1xi5nvnRCf/AxeCZS0t2lGRhiVh84e30dQQ/+M0M3ZVHp7gq3 X-Received: by 2002:a17:907:1751:b0:869:c5a4:e1a7 with SMTP id lf17-20020a170907175100b00869c5a4e1a7mr1121625ejc.62.1673924010544; Mon, 16 Jan 2023 18:53:30 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1673924010; cv=pass; d=google.com; s=arc-20160816; b=MB4t73o2dJI6o5EewuwLeq7/irADamJSQemJ0nWp2NxWcMhLAUSU523AL7RVNnhvN/ 1Mgt2p3vrQvcPcC8PVjFliYgD4gI3Nm2hwd594zEVBnb2ztfYAzHasCSUjoiipeld43p dwxzJvznrubXcshn9hzqepBq1E1rdo7HRyxG/b3AcYHY3PVu9MN8x/1E4/wY7CcXOtgK 02k1U7uTu1BktmO2vk6kYpZUkRSV9ITqO3cjnyG3AjmKasJ+VVLQf7sOmWUCZ4oNjZMZ O4N2B1RaNB14GhQp72i5fwXkCZPxNm3cz94N4QAe4zwH+KKWPko0TXBx3e7FTskVkAlR QrMg== 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=hmfUNFapTwaKJCFXsaOGLvciuDyj+d+kxYcTE3x5ZNc=; b=vDlShXsNvk5f5JwrE709+lUfMplC67BoqfbPjt0ntFNphU12L6WyPfKIPcRvPoDC3K 7ECz85H4x6KemzcSFrHFOUqA6gpVj2zkJwdst9QTSFpTDRdbEFB5pF7umvEwqBVxNHsi pK6IhqjgA4Kxb2fzwrlvYB/B3VAe10rs4VD44bZvjr2WyVFYWaQzjshxhHA1vPBTkLzO DJefHyv4EqknnFf3n4nBocpsI1YAg3EY7+OnPUBi0mZRmrNK1x7WcyVdjlTH1NFFElIt ej32Lj05wrXGiBXQi2dW+0Lli28SHbyFIyURH8XHbcNsb/YOKa7End9K/QiOI8DcxWmS EVpg== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@oracle.com header.s=corp-2022-7-12 header.b=VmYUOuqj; dkim=pass header.i=@oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=B70u3VGq; 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 hr1-20020a1709073f8100b00866545f69e6si17412667ejc.80.2023.01.16.18.53.06; Mon, 16 Jan 2023 18:53: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=VmYUOuqj; dkim=pass header.i=@oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=B70u3VGq; 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 S235698AbjAQCjy (ORCPT + 99 others); Mon, 16 Jan 2023 21:39:54 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:36358 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235438AbjAQCis (ORCPT ); Mon, 16 Jan 2023 21:38:48 -0500 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id AF29418B28 for ; Mon, 16 Jan 2023 18:35:58 -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 30H09XGD006403; Tue, 17 Jan 2023 02:34: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=hmfUNFapTwaKJCFXsaOGLvciuDyj+d+kxYcTE3x5ZNc=; b=VmYUOuqj/NimP3Kjv1OifnUBPiUJk0zG8lKPt5zzTXOvvuqnt+aNOiOB3IhmkbsBCjQR Zi1K2qbugOvQASt/H70J0KDKPWQCg8w/CBQqBA9d1AHbRLhiKzkUT3cZpQ9h7uXpr9qh kCf8B/369Ov2ofK5KZsFceZ4ocZruaoOX3TH4SRQdkvSsYvoQTXeSAcMAU6CozzwZItB 7sqeGJXWRSvonCqcZ+xn2e7tHCd17vtC9yJvicKiVRIubVqi7y88LLEUogzsgDl2N/Xq Sq8ai4/fXT0yLKXBR7xNXIrJP0oUUc28b9t08+twiNyaJgHZ4z3Qkl4IO11UAC+PrAbg pg== Received: from iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta02.appoci.oracle.com [147.154.18.20]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3n3kaabrjy-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 17 Jan 2023 02:34:58 +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 30GNCpCO004918; Tue, 17 Jan 2023 02:34:57 GMT Received: from nam12-mw2-obe.outbound.protection.outlook.com (mail-mw2nam12lp2041.outbound.protection.outlook.com [104.47.66.41]) by iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 3n4qyy10ss-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 17 Jan 2023 02:34:57 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Qo41cXDCYpk6IwUSSNMVJlLXj6BtopCWbOW3m8miKoXin1iRKgcD82GASSe9zDQ6GIAohrpJ9tUubWgWFLJTBcgxxw430B4n+Eh2H5+88vWUTwJeuI0PzboWoPSCFpOD24FSQ1esLgQo6APIFujCiJswJLCtYmI94In/dXn+cNu4KT8TAVR1D0xmDvialcV5THdtGj+Rx4zV3camkE1iD0WajZWneROdfSIniBtTuMgPQyw1PN9hHkqIkLwmxDBNjiIDPMzx2SINBFOQ6SEs8o7xDUVS7qDodlD8U8Y6xlIko3gdnyMSfKLi20RJgTjbmvpB7cvAgbKbEF99Ulfq2A== 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=hmfUNFapTwaKJCFXsaOGLvciuDyj+d+kxYcTE3x5ZNc=; b=WQ+wg/O0FbTaf2plS+4O7VtbsCsfCbDYgU+lvI3/RQrLw+LZUMvIVtKVZseMC7LaPsZ8SSVLXJcev+ZvOCC3+6986Kv7Fk8ssq6yhURFElVOCTST5YSRxNQr4K3KtSpHwfykrLO58umHJ9EFAwtqhYr9/aMcyTa0YocS8T5IpctscJpp8l+3U/ItgQNRd7EgeXGHNm5KYjw4hTNl1ZB4I1gds6BZcQ2J0C3c5e9UPsaEOchoD5XB+ltOdgjI0yNcMFL1LWRabmYbVLQOwPO+S7eR80Uqk2iR9CKQthq4xXbNjT/c/lwCbw992Ndds/7SUOZd5uXsFv23CS3na1/4yQ== 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=hmfUNFapTwaKJCFXsaOGLvciuDyj+d+kxYcTE3x5ZNc=; b=B70u3VGq7Bxg94JkfQH93Xm+/4eWUyNHL1KC0BTT70Y2jN7rSeLtkvCAqdvwU8kEwjGrCrQSscsE2Ioi1gEv+q0k1tfqS/ouHHdS4HcIHGWRxzdfDZcPcEi9pSrpmQ44qY7ZVjEbMFJdZ7C7oN+IEeDWj3reuQ3ZRwToycLAe44= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by CO6PR10MB5538.namprd10.prod.outlook.com (2603:10b6:303:135::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6002.9; Tue, 17 Jan 2023 02:34: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.6002.012; Tue, 17 Jan 2023 02:34:54 +0000 From: Liam Howlett To: "linux-mm@kvack.org" , "linux-kernel@vger.kernel.org" , Andrew Morton , "maple-tree@lists.infradead.org" CC: Liam Howlett , SeongJae Park , "damon@lists.linux.dev" , kernel test robot Subject: [PATCH v3 30/48] mm/damon: Stop using vma_mas_store() for maple tree store Thread-Topic: [PATCH v3 30/48] mm/damon: Stop using vma_mas_store() for maple tree store Thread-Index: AQHZKhwz3Un6d8d2IEit8wQQlG94yw== Date: Tue, 17 Jan 2023 02:34:19 +0000 Message-ID: <20230117023335.1690727-31-Liam.Howlett@oracle.com> References: <20230117023335.1690727-1-Liam.Howlett@oracle.com> In-Reply-To: <20230117023335.1690727-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_|CO6PR10MB5538:EE_ x-ms-office365-filtering-correlation-id: b0383868-e724-4938-5cf7-08daf8336ac7 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: t/uS9SIxjMVVWv5PwhBQ20jKzyoQabibd/Z0IbO87wEr+QGRwT9EGfY299h/fNHOp3lEBg2OW3eE8JsmnGWpTzPB1AVIvabhferlV7CsmisP8yZ5PP7C1mgmjzMh5s/X7Ik1uy5iQhnWXlv5FJGWkpy48ad3FmpeomPjCcQn1SlAf/4hlAZdcOCfFmr7mwWqpUTDsFP5TbVOp0fnIDLApbjBcszWa2jEjDC4PhhfSo4vpFIXGeqO5YMfAlK8h784GxCUIpVM75AzH8goJmmh2A+4b/Ghuu1LKuuF5dqTnSzuH2+O5QrZICgJ1fBzdvPnEaVY+Q+HtTJPLglBbeVMDBD2i9W3bXFuhS7ImnFtXT62W48DpcmDclmsbYjd59QXubPeYUzutffc1dqzMACMkxaXufABp2Zu5tBjIKBEPb/c1DkdBUKHC08bm4hTqu4N1g5Cah/kKacVPwQZbdkQJTI5tUDMTwQtPgCGhzWmbPGWBLcs+5lLmav5jCAuuWVGbwP2NAlTAJ2al4QHcZeSYTYyovoOdDaOKPeIHPybkgBdaCliFRCGCx2cBKOtjTuCo2H53ntloumQl14nfLFnq2PJoiz1B2ScwK5r9V3HnLOgimzMZGOgXpCjS+kUHOoexHNPw9/ugfePjAgPXfCUlaNgwib+ZmWheOxLPMPRpjlBUW2/Z6CQ8YS9XMENlFAiECJ+hFPUhhCRXuzZn+7QGg== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SN6PR10MB3022.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230022)(366004)(346002)(396003)(136003)(376002)(39860400002)(451199015)(36756003)(91956017)(86362001)(8676002)(6512007)(64756008)(4326008)(186003)(76116006)(66946007)(66556008)(41300700001)(2616005)(66446008)(26005)(66476007)(316002)(71200400001)(478600001)(6666004)(38070700005)(6506007)(54906003)(110136005)(6486002)(44832011)(122000001)(38100700002)(2906002)(5660300002)(83380400001)(8936002)(1076003);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?q?9IVXSVnzgsH0m8ifXaHUabb?= =?iso-8859-1?q?IpwiZi5+0D0w7WJ45qFoBJbIkb+FBttoXI50vmiKgvBlJVjebi5HyYgNxpUS?= =?iso-8859-1?q?GZh14wR3bKzvekUmJV93F6+UIIqcTbxXbeZIp2I/1JeTofC6psVuBbVpPI0B?= =?iso-8859-1?q?13L2onyJRDMfc71JkHQZixZ+Ao8wmjtS8LFj2XGKrsj3SSx+lnvqXWAWhBWt?= =?iso-8859-1?q?0cmcK59wpa+WFutu3PqptgGkojr8lbv3ajY9JJHE1lrF2H8/bGoFBqVVZGrB?= =?iso-8859-1?q?GxGrIdpzkvqygKOih7hFdXN9F6zjol469xGIq+PKBUCGCg2smpYS+RmnRmOl?= =?iso-8859-1?q?rRpOap4KvQZ6Rif51TCPbE6846BvhTY2yGwlvGzOcuz/PRSPy7Bqng4m/KaB?= =?iso-8859-1?q?YrYmQ+4KQwERgtcbhs7vXxf+NzWnaQRVcfoh56qLkPW41gvdzmWxiI9LjlAa?= =?iso-8859-1?q?gVFL9iwebQHX2jeK+3xdJMNQgoPNTRoIwdWUyGqU/x2RXn2xOE88rgr1zvHn?= =?iso-8859-1?q?vFRBrwt+/3lWXUYGX9qq1IB249/VJk/hKi+6LDoDP7rjrtH8RZrJgbyNgOj/?= =?iso-8859-1?q?S9BCrhce/QVj7GMnybI/8XJHbUDveknUGUcE+gHzBz6EqfBiWiwnVoG59Cws?= =?iso-8859-1?q?MpZVzbRjziPLiF6WEn+ystFRw1uaWQiG4NGQF9o/XJ461u1DTBGZH/IaNXoq?= =?iso-8859-1?q?0wlZUot7vHb54OdfNSZQnN/NZex2BGg9+iFPOMUqd0hNUSauttYq2KcJihrj?= =?iso-8859-1?q?G5E49C0TNX/3tIQ4KtN/GvZf4+hrL1wwcxZngswyjqbafi4KoCYYkHW3GlQ2?= =?iso-8859-1?q?T39m61pFMSS559j3qjvtX9mNvZKNLiMFJ27oJaV9gR/Pi0LWxARc/uHYC0Fz?= =?iso-8859-1?q?Knj+MLNJVbjR0QhbijlAyWnLT2onO0nFO9MCEtDgDhcJmRTD8UePTBckhgT4?= =?iso-8859-1?q?o0IGvDNzrdpEa8q7h+0e9msE3qvYOUYuvQx/0LTH0Nsql399/Yetcoiy7tbx?= =?iso-8859-1?q?g1xX916SfaqvchKc66i6DCc9VpekUpEQRvrW9TAzAdrSaESoegJov1FZX9ZB?= =?iso-8859-1?q?k1mwxAqbyPtRXEOyh8XkkhCY1IbtJX7Nxru2CfI9o5QddT24WCXGR8hczaoQ?= =?iso-8859-1?q?wHGG6XCgYbO5UiUQH1uEPE8sXS73GrxRrSyqfcTtizX151nHPl+LGhZWQS1q?= =?iso-8859-1?q?zWkO2Fkc5ulV1DcN7XUdblQgSxdHKvoUfB+5IbObCb8ZzIN5nxZJYE7dY76s?= =?iso-8859-1?q?iB6vcwD+edYoxhW9B/vR1+w2XIzqEHPu6Jtmxckwx0aRAUlZnBrZbamDLVx5?= =?iso-8859-1?q?WPdwYIO/WQKvknsFLh6UT3a5MQ2NxGg4n8bU23ia8dTg8IXVyaQbOazGxFz5?= =?iso-8859-1?q?PRw8xgxeo1TtIROmnBIFgaHrY1GqYPeoL3n93NcNMulInymk+tne6zlHp1ZO?= =?iso-8859-1?q?W3ysBABq5GbgHw++2MgqSZYgqH0Q1mojKMcRL4R+EHmR+o2pyj37/tTHnluE?= =?iso-8859-1?q?p9Kx+vFexUF3odrqAN0jH/Eicr+Xk36FNWSkk9QDFvCLU4o8eRhIyPQpBEo0?= =?iso-8859-1?q?5rG6KowB+NTw1tNKT6HitjTuudesezOrnLMbq2YLylAWkmAtvg3ws086zmrm?= =?iso-8859-1?q?gSK3p60C51KKN96utePuIGZhvgy2Dw7Gz6dhb3g=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?VyLf78F2bja?= =?iso-8859-1?q?Agz4Fk29itOFNOO0cyPBDQsVmuMF9URziQrQs1ZtrEL74mJhA9sxzJr9ftMX?= =?iso-8859-1?q?whOKwMf4fJYBMLOJPbYdtlBC480FBtMNC7OxNdHIxm59yAVee0YTsDxCTEvv?= =?iso-8859-1?q?P/ZhoTQZAFW1CROqiaLExjgAeCa/CGRyQViRAn6BmcmE2ECRJZO5DQCPHauR?= =?iso-8859-1?q?amQNXukG0la+H8/XT2nBqlGkxnH9iRJ3pI10hkdiRsJ4HU+GVlKejrZrnv0I?= =?iso-8859-1?q?fg4YOod4ZeYAe+gAKx1Q4x4pHcuoJbRXQkXqB0CDCr2ja2Jq+kYbHt/UieVB?= =?iso-8859-1?q?JFsO3AqebwllsK8psgXyNj0zDQy7cXGKkWX31b4/4IXcBqgIIjC/kTzN0yfp?= =?iso-8859-1?q?eIdbBcTd/PjPoYPIH3pjXxbxZ2KqpllZ3OJGuPzir1QX6kYOlahj3C8QKXfm?= =?iso-8859-1?q?etUQap7GTyOHnlQpi8s869xdEH4asJpiqAizrEk4UYXvd/Frs3At8DqkExVr?= =?iso-8859-1?q?grEZWXlcXllJUmo0d0XdWGT/0xnvCCIqVDoM55q5m1MtlUUoI5+vZhuVOfh3?= =?iso-8859-1?q?nybwGOZvKYXS+f++tD2Pe0v4NAuEuHHeqOErCXvHbZ2hdK6b8Ni+YSWHzkIS?= =?iso-8859-1?q?23/80hkGsrmLaooZZjqHfNeLFyGv5z4Obni1ky0Qoy+T6elCEOVBBWLcDaUb?= =?iso-8859-1?q?43g83EN0IDIn1xW7OSZiZe5gP5WknQIm57wZQABRm1gUmpWJjEOKF6CaKR7G?= =?iso-8859-1?q?qTJpY3ZwtzwfsX4dQt8RSCoTungG15CnXfeUCdOjVUILNqRujTzApmIH/VLk?= =?iso-8859-1?q?nAupPe4dmqumE2piJVEg0nIuBn95vrdehO+5ottCEHv9OBEn0gZFKzg4qILM?= =?iso-8859-1?q?+px7q4xR9/9K0PdcOuV2R9vHDJajqQx+wvIPzhzOxEaRGaKIHWpbxvaglCUV?= =?iso-8859-1?q?D/CRoTl3Ys8vl5ayG1Iiu+Mb8jnwQ94k7fPDpXerLLMXcNeEh0REjbGJ3QML?= =?iso-8859-1?q?0E8OBRleGh/2ZQSVXFDKQsvhTLegd6JT1Th5SR66cdxeKjNISeYKc?= 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: b0383868-e724-4938-5cf7-08daf8336ac7 X-MS-Exchange-CrossTenant-originalarrivaltime: 17 Jan 2023 02:34:19.6091 (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: ihdsyY913nlrM094iRldbP/q48+mo6j3KFe5M1BvdoZnecyo68XiCSY0UY9Tnj+uPUZb5VwxS+9pjKVUlGEElQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CO6PR10MB5538 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.219,Aquarius:18.0.923,Hydra:6.0.562,FMLib:17.11.122.1 definitions=2023-01-16_18,2023-01-13_02,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 adultscore=0 malwarescore=0 phishscore=0 suspectscore=0 spamscore=0 bulkscore=0 mlxlogscore=999 mlxscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2212070000 definitions=main-2301170017 X-Proofpoint-GUID: CAhge6zkWoe2C1NJMMrL1AtaPlYlnb_y X-Proofpoint-ORIG-GUID: CAhge6zkWoe2C1NJMMrL1AtaPlYlnb_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?1755236543302936506?= X-GMAIL-MSGID: =?utf-8?q?1755236543302936506?= 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 --- mm/damon/vaddr-test.h | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/mm/damon/vaddr-test.h b/mm/damon/vaddr-test.h index bce37c487540..6098933d3272 100644 --- a/mm/damon/vaddr-test.h +++ b/mm/damon/vaddr-test.h @@ -14,19 +14,26 @@ #include -static void __link_vmas(struct maple_tree *mt, struct vm_area_struct *vmas, +static int __link_vmas(struct maple_tree *mt, struct vm_area_struct *vmas, ssize_t nr_vmas) { - int i; + int i, ret = -ENOMEM; MA_STATE(mas, mt, 0, 0); if (!nr_vmas) - return; + return -ENOENT; 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); + if (mas_store_gfp(&mas, &vmas[i], GFP_KERNEL)) + goto failed; + } + ret = 0; + +failed: mas_unlock(&mas); + return ret; } /* @@ -71,7 +78,7 @@ static void damon_test_three_regions_in_vmas(struct kunit *test) }; mt_init_flags(&mm.mm_mt, MM_MT_FLAGS); - __link_vmas(&mm.mm_mt, vmas, ARRAY_SIZE(vmas)); + KUNIT_EXPECT_EQ(test, __link_vmas(&mm.mm_mt, vmas, ARRAY_SIZE(vmas)), 0); __damon_va_three_regions(&mm, regions); From patchwork Tue Jan 17 02:34:19 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: 44448 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:eb09:0:0:0:0:0 with SMTP id s9csp1520295wrn; Mon, 16 Jan 2023 18:40:18 -0800 (PST) X-Google-Smtp-Source: AMrXdXsGQ/3phzxgVKgqaGl6CwtqK8zLZKQuPc1pLi0+zjitMfbiX/odVjMH2e36fTfaAGAeQEAe X-Received: by 2002:a05:6402:4305:b0:49c:7aa2:55de with SMTP id m5-20020a056402430500b0049c7aa255demr2087837edc.1.1673923217914; Mon, 16 Jan 2023 18:40:17 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1673923217; cv=pass; d=google.com; s=arc-20160816; b=SEicFyctJCoy4zVoko8Ii94f1J36XXvnnZ8vSjFWY8rjhtn8be3P8IEOmblkRKNlMi TkxjIHhfQ3WXlF3mqUe69Qb+DFeR9DRS46LOx+hdbIPfl5iawPFc11KqFenOQwT8o9Wj /TaHGp53gkGEwP45jI2S3uMQxyZFRe0MtEkj7zSKgh+CUwCDkr28pQg4i5LK2Xnd06KL Z5B9KivphQb9jjIyM67dqoh7WQMgpvJeG+Zrta1wKNbFtJ/frUvo4U0fxoZ7uRcp+lL5 kjWvMPxnPukxI220OjFGqPPrqGlEWDRpwWNn4yZVIF/pb5vSZqzyIpOJGVihFom7Iteu A64A== 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=F1TlSBVQGd3codLiAiqu8FCJX8OJbRk1LSJn5Nu9CgI=; b=q4Ba6hXdinD2o/+JQVanda7dPeVJAlnWi2b4yVCgbpU4jmgqDmpMZzGLortAA1ma2+ rA161td8nPbsrDlrQKKBaoxQFjfUEEa6IYEaG9ux1BHlKOEsy+hU4TGOZXCwqdgV68Wr +eV/JvGcJjeWa0/N9aQ5ch5Pye9s8dCt39gzEsc6poKok6au8afuLLL+CZ/SBpKdCqfE yxb9Ep2u3kzsuIil+jBqs4lrbKouQ8foLUVcePxXbxYvaf+RYUwMu1Nr2hr568x8qsDD YgATrs7aKsuK9HvjoytiC1qUG/vcfgTZWMzVcsebIIGxmWawaIupxXigGpuVVNze0Pfg yDuQ== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@oracle.com header.s=corp-2022-7-12 header.b=XpX4jMGb; dkim=pass header.i=@oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=vSdUpZbE; 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 c4-20020a0564021f8400b0049907544dd3si8170464edc.92.2023.01.16.18.39.54; Mon, 16 Jan 2023 18:40:17 -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=XpX4jMGb; dkim=pass header.i=@oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=vSdUpZbE; 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 S235479AbjAQCin (ORCPT + 99 others); Mon, 16 Jan 2023 21:38:43 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:39284 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235633AbjAQCiM (ORCPT ); Mon, 16 Jan 2023 21:38:12 -0500 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 09F872F7A1 for ; Mon, 16 Jan 2023 18:35:22 -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 30H090qb000934; Tue, 17 Jan 2023 02:34: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=F1TlSBVQGd3codLiAiqu8FCJX8OJbRk1LSJn5Nu9CgI=; b=XpX4jMGbSZdPj9G4FHi5ixxbUYKjyH2ShySdXA8jggmbLl1s7+t705BvejeczhDjIZMC GD7lQEvmbvkcMC6NGYeLJYAVj7qiqd9l+3Qv8IZWMHqzt4Wc2tx2EFfG6B5PEzai+/h+ JJ+8NU/CBeq/4kXPr5dVqvrbUj8x1L7jHZGs4swTAnqTn5ZV7MlYtIwY5sX+DDlj6GWk XlGlCJPBPoaQeX1yi8p4A2QL9AZIjjdKd/NI0/z3g6Y/ydYs2lT8AX9Ri+CPo+NVLa9s /O4qt414a9u9aCiUlnfWXcY1Aay45rQOe+QVDMTK8ABMaxMh6doB7gQfwoRr4VDI6E4e Hg== Received: from iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta02.appoci.oracle.com [147.154.18.20]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3n3medbqc0-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 17 Jan 2023 02:34:58 +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 30GNCpCP004918; Tue, 17 Jan 2023 02:34:57 GMT Received: from nam12-mw2-obe.outbound.protection.outlook.com (mail-mw2nam12lp2041.outbound.protection.outlook.com [104.47.66.41]) by iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 3n4qyy10ss-2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 17 Jan 2023 02:34:57 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Vt6OCUTuhzgxCKL8KNLGukoJ6mMS0wL4Pe8wBtIkRzlQZKPMELvnjEhNKPJpfooZrEuGZyDNz2EH+c58pUxgis1ihlLMV85x4dEwBYTb3tP0VvGs2sygDp9VFkhiK2pc21wGNTyzWYAhvAJDVhSJZ00iPO5X+CpUBc+9yaDf606MOmdzIQ2AaXyUOE5gKtpJ7vhlliWr9oRiFZypwXKGs4Xy6wgFmAIwcfzxPJuO5uGuZ6asiM+2EDWFyF45kFkWDNaQXbNhlF7zStmOCCRO6fJD5sMyfb2uRqE3LYYoTaPaWTjznhlqBJKdLmQ9jkufb6d/RCD/WRPjPz1KkkCSzw== 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=F1TlSBVQGd3codLiAiqu8FCJX8OJbRk1LSJn5Nu9CgI=; b=jEJEU6mC0Kw0aw5rQpmD9pHF/pqq47dLpJMmjUVXN8Aq8bNuPSGOpnaMrvUf2Fvq2nNmrMPCF7FQ0ZBnnirKU/sB3V7R1Z4RBcYzCokldvlfu3XqpZNJGSzqUJwuDB0cnh8yJbsjwoe6ubLnfI4BaLP3E0i3zao8ytS/87maYvwXa+oAmyDFKYO6NqtuVD3Ha9ZVY/X8X1Mg3nqm6l47iIRPICAQOZ0kVG0R/+6kedznrkSg6kmB0AuobgJlh2L3CN2h3Ga7XG8jLEwyBfF4hXsznUH7DeMffx916L4a2QzEHpscrUfkwYApoHhp/1FVz3yA6Zo7oupTaFf/mqz2Xw== 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=F1TlSBVQGd3codLiAiqu8FCJX8OJbRk1LSJn5Nu9CgI=; b=vSdUpZbEH4GrxmNbXNlqwI3PJadYQrJHDlf2slYYlvIsvrPXGQvnhzgcx0vnSwOERyVK6nGChQR3mznDm1hvIM6auSDYFtcdHX9MTCbPd4AtZ5AKuq3UIlvb+7zWjlXs79A6eXOsOirJJd0recW95MHShjVjpQYOXDJjDV6ELWk= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by CO6PR10MB5538.namprd10.prod.outlook.com (2603:10b6:303:135::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6002.9; Tue, 17 Jan 2023 02:34: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.6002.012; Tue, 17 Jan 2023 02:34:55 +0000 From: Liam Howlett To: "linux-mm@kvack.org" , "linux-kernel@vger.kernel.org" , Andrew Morton , "maple-tree@lists.infradead.org" CC: Liam Howlett , Liam Howlett Subject: [PATCH v3 31/48] mmap: Convert __vma_adjust() to use vma iterator Thread-Topic: [PATCH v3 31/48] mmap: Convert __vma_adjust() to use vma iterator Thread-Index: AQHZKhwzM6l15t2EREOY7m3kATPiFw== Date: Tue, 17 Jan 2023 02:34:19 +0000 Message-ID: <20230117023335.1690727-32-Liam.Howlett@oracle.com> References: <20230117023335.1690727-1-Liam.Howlett@oracle.com> In-Reply-To: <20230117023335.1690727-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_|CO6PR10MB5538:EE_ x-ms-office365-filtering-correlation-id: a3cdffab-c52c-4fbc-301c-08daf8336b1d x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: T5NYnAi2ZdLfyA6rL6tNMJQbE80k1CjZh2lLOIFz0B1GxtWrkc9A+g77angr95FuGYoYmlGWiqFux4ukEPQ2PHncqLzSxf6xhfo66N0o29SDUbRmRblswAohTIAEYV4qhEpwphixCelKh8c+ZaLostMlrz/uxM/uKuEFrpzXD4u7QNsgq1HqyNYzmfJzRL/FQW5MzIaxqB7bEM3roqHKb1mAKckkvggibC3VaXSsnPewZTpxfi2XTACRcip0c1CsGlUWsz+SsxilFAR4q3gTHob15dKDrxiUuVyem9cCV+3d2eYVqrjzuYDHLadoNbt+zLqvbtL/d0RVgYfI5WZYSEp5tKbyMwqY85DL3z15d9yV3VhuUYuLv1zlKn/yvUEsmsw3v1k/xi2GmkAHfjxfKGIJztflKFss8uoHM4X5RFI1kGayUg42NfooKJagCpsJwAeYZr4Lcq4XsiUy+mIALog7OHSxeITDjPmZ7ZmuNJlM42i+F4OWgcE1xbEb80EE1GR1z4yBEIEYuBeemxzYb/5J8ZkfPuwTDHFQCqOFi5Zm83MOzftwCOYB7wcjzlpCd236qiBUFwxbYWOaTHspRfhdLoKvgL1kZXoe0XQKDRJ/oGY0YC9btq1A2d5dhaXyC/Zfp/98KFXB/s/4LD+rjl2y9HhQ0h/2F07mCvF6XnUDZELtbs88NfnfxHEIk1DNV9SJlpI6cHyToDTCJAbVqg== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SN6PR10MB3022.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230022)(366004)(346002)(396003)(136003)(376002)(39860400002)(451199015)(36756003)(91956017)(86362001)(8676002)(6512007)(64756008)(4326008)(186003)(76116006)(66946007)(66556008)(41300700001)(2616005)(66446008)(26005)(66476007)(316002)(71200400001)(478600001)(6666004)(38070700005)(6506007)(54906003)(110136005)(107886003)(6486002)(44832011)(122000001)(38100700002)(2906002)(5660300002)(83380400001)(8936002)(1076003);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?q?BCKGeG7KtcaRDD5CqYAYVew?= =?iso-8859-1?q?3pqwTrUbLJD6uN76mTbixrWQXoWI7WPxqJP5465Sy0souPaWY78tJmCq6gVC?= =?iso-8859-1?q?wLL90ThSgthIHjQDEm4u532HNM66Qr4AEqYpmhWS28GdufP/ouNU0G3CyKhy?= =?iso-8859-1?q?LI4uj7IvRoAZtk1zX0h6VPJf72oSvM/1ZxQPs82F8sd3i6nfoM+PBKrZlpQh?= =?iso-8859-1?q?oQLnLE8RMJ2mieb4kQ5F7V7sIbHs58n7ziNinlAiK00zW4fPII3ORpkR1yAL?= =?iso-8859-1?q?JFbM4uzHEf7QEo7wrtycl5j6FT5KWKZT4d25laU7hwEn9JW+g38/jQuJInLj?= =?iso-8859-1?q?rkIE9PGE45q1Gs6d+tKuGciqGQNFqL+z4MZUZaN7XZA6/YgRSuqDWvu+A053?= =?iso-8859-1?q?W/lh5HXuyLNhle3AvuloHuiNoo7h0brt+udM8iXi/DttQfM+4JFz1s+e+c+c?= =?iso-8859-1?q?a3aJSZHHfzslwTNPuDsR/X8Dy5q8cmW3XLYwvvyxt3STEEoCkosoTVSG77oo?= =?iso-8859-1?q?YB5h+Cm8+OHkTA/JU8pYfaxpdRM4cweZD+f+Yf3abb5woanYkYuU81HQpwEt?= =?iso-8859-1?q?nxPqaaQoSwx2BrCzR532yMz5T5O1l7PxlkFYPU98b/w1DpQlvK88cR9WmDc/?= =?iso-8859-1?q?v8coUbjMMDpqFzKg9cqE7gr2Q2+qvUG7v7/QAudGEtmkEerTFmZOwikOTsqN?= =?iso-8859-1?q?bPaFEGlhwBRquVy+5qZnrd5IbFcZke5uGhA3l/e+CG6AwOQQHwvsJOffS0ma?= =?iso-8859-1?q?NhRej52azB6plaGGhBnb1zzvobNpAFL60yjkikbBkMWSbm0GVSYlWBLjg41J?= =?iso-8859-1?q?J5mLJJOgPwkTA+iMKvtGaYp1Vrmb0QJI2bHD7bKGRs0OCTB6QXsOb2TGsKkl?= =?iso-8859-1?q?9m4hI+gEAX1O0Lh4t1tM41xpUoFDOXVYAa33tUZ5HurIlifgy6xd7jYUjcYl?= =?iso-8859-1?q?WLEVkWr2/w+Ei38W+4jS6Y1PICR3g/RmCwGzj0zeXrAhLUEKsJ1kBsT+xqXF?= =?iso-8859-1?q?5FJnGJ7WO+skuDEfMT1ZFRnCDlnOguxpHa0z94HHN+aRuLhpPfTqLMwv/VkX?= =?iso-8859-1?q?QyIdB/hYzPGqu+uUocEhdu2AHJajw+MMVpG6fizH+qb5Z+IEU54fe+dYdPQT?= =?iso-8859-1?q?7mySpE6PTPfuqHzHCURJC1lhAKyJW4xJ+nJ4oAwZPwGl1qTUT4PAcMeCwPcG?= =?iso-8859-1?q?5vqrU73OkfRSwODmQcBZ4l3iJ1+U4rhkpyOv05lVdz65i8K+xZnX6BBnOSEq?= =?iso-8859-1?q?2tTY90CWQC9WXG0OUd1Dw+rb4Qcz6TKP1DdlFse3vmes/aPgn/WXh8sYV2Y8?= =?iso-8859-1?q?tS4ClB4da93rka2g3b2Ev/zeuuK5+/u3KaZRdEgdj88FpFV/2rBEwSAks4ZE?= =?iso-8859-1?q?1lzkl4/Q/4rykoXB2V69O3Wc0wDoudZ1yQaJc5xynVFm5Rw/zoZ9NdFw0cmx?= =?iso-8859-1?q?lt2gUQZ+t8MIs+B3Rbmu9yt2aQ1uHI7/lb4BaWKvs5Tu2TznZUuaGJrjTTGI?= =?iso-8859-1?q?eMXpOVz+mYU49HNpzvr6p495Pf22LgUW3b2DncHldb+Z8iiO9njrxvcEmma0?= =?iso-8859-1?q?3wlmV05tEcIZqqMRJAt5cJiqucPOVzhnq3g/j7CY00jKNTxU9LMJpMsr6C84?= =?iso-8859-1?q?lMsRenGrRh461I0U0l3P3fIBOB+II+YnMUKcG4g=3D=3D?= MIME-Version: 1.0 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: eFlWLFtc2yA2rjdaXxg2BGvJDfsxMYk1JnsL/0TGsmTRd/iEW1nwYf62PFqmk0XnAr3BN3kGtfTjUktRxji8HF58JgoltOr117U6jtD+Z4pojnz/FIzJDawYLSQ+e+qQfLL6WxbMaCco39tJ/Zx8dWIDu+OYLNrYWLtaCFBUwcu3ZYhu/li+S5GgxFrhwfQ7z/wdmsaVxsd3yXHgGeGZLMIBUurDkQ8i9rdLm80Bts0fjnNOj1GOTITpnwl88g/N9n+UeyDkynjmywhSJ77Rj1xfWsqNrrDKcpzbebNfwXII9qEdZqDzs80oBVts5yk2o/751GFM+HeQa2Scxj+ldyzkkxN/D/LdC5l2vRWgKnRfwX4/Nt8jSIKP9M2YGqV7Ux3Fzj6VA+V11GHxKP5mYcghRw8MjA53A9vo8XS4aOPBSI1rZ9OHJ8pqnaYC+o7336vlouMe+tQhYkJ7nXEMnuT/EfogOM1pf6ZP+vSYUxfb7bbuV4/RPICZySZ5uRuLTqEe50dCtDDT8YLQOiMSpBMngDvQX3eyo9sQT1s0H1Xh6SVnUDbXNqjOpMoBfOCKwQ3h3PgKJ8CGKH2Rvd0aR+SihHW3iNT16jJacwrxTWVs3DIt0RbWX1SeqLNV/Awh6SgcCwd1EUQulXJKLlprMy/2n7JFy0o2yXVthD6t/Rgo8aqJvbq0zqcVFbopkhuos/b0icHW6QKTTu4J2+fEC66CZfUIfxUyob+NjmAr/3z3FZavGNs5tgadf90XKuUEpXNnIhVHl/3VnYNkhtzFNGZyVr8Bvwb6ya7Yr8S4vgnmAv6LnwZe8W+fnmJ3dm0fSyJ0k6ZH6pHHc+UwKD4soBB+AttExRLUKnU7cuBXS02bKjuw55KtQPV2fhIYPnmzfPdbhafDAmYaxgDBBcEXnA== 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: a3cdffab-c52c-4fbc-301c-08daf8336b1d X-MS-Exchange-CrossTenant-originalarrivaltime: 17 Jan 2023 02:34:19.9059 (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: Lug0ci3xKjpzugDI6z86WK4PM6JHKfvquU3CFQlHDoVtsyJEBwjV9tio2b7IQeO8RS59ICVAG1T6ORmD/5OT3A== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CO6PR10MB5538 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.219,Aquarius:18.0.923,Hydra:6.0.562,FMLib:17.11.122.1 definitions=2023-01-16_18,2023-01-13_02,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 adultscore=0 malwarescore=0 phishscore=0 suspectscore=0 spamscore=0 bulkscore=0 mlxlogscore=999 mlxscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2212070000 definitions=main-2301170017 X-Proofpoint-ORIG-GUID: YzxHzfu8ivX5CzzUl5TuasLMgbqmhl9v X-Proofpoint-GUID: YzxHzfu8ivX5CzzUl5TuasLMgbqmhl9v 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?1755235711769299306?= X-GMAIL-MSGID: =?utf-8?q?1755235711769299306?= 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 61d04930e897..b8e8d5edb5ed 100644 --- a/mm/mmap.c +++ b/mm/mmap.c @@ -435,56 +435,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); @@ -644,7 +594,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) { @@ -729,7 +679,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); @@ -775,7 +725,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; @@ -785,8 +735,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); } @@ -797,13 +747,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) { @@ -823,8 +773,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++; } @@ -870,7 +819,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; @@ -1998,7 +1947,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); @@ -2080,7 +2030,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 Tue Jan 17 02:34:20 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: 44450 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:eb09:0:0:0:0:0 with SMTP id s9csp1520365wrn; Mon, 16 Jan 2023 18:40:29 -0800 (PST) X-Google-Smtp-Source: AMrXdXs5phbrqQvMlZ1rta0/iUoT6aiku3klQLEDivmLOsxhabb3P2y2gkPta98MH6Gd+55WNBho X-Received: by 2002:a17:907:7e8c:b0:84d:1366:c74d with SMTP id qb12-20020a1709077e8c00b0084d1366c74dmr18280960ejc.63.1673923229159; Mon, 16 Jan 2023 18:40:29 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1673923229; cv=pass; d=google.com; s=arc-20160816; b=PIIFnm0MlUtxZiMh+jmmKnzhRvWYTbR1yNNvWeG0fLSIDySRjxjZnGXjmEqDqmcbwP 3sJln+u+yP6b3kpyT6fyCysi5bdnBmV8OK/Sun/s8EBgbj1v9Rv/Gmeylpbfz46gfXLh 7Wlclnb2ttAlLyaqtJEEOh5H98LH+ZScVEJcCplX9aOv/Q3Ev514n/lpCT78uQrpBl+k QSJQJD1YUM7muuogYv17sXLsyuO3fOc/ihcumwz4If15oN7VSXp7DH7wxDvbroX4ZGox ItTevifsu0HKWS928fm4fIv0kOyU6rhENbpU2PBHaqdx36aKR6z2ZxuoiyITGiVlmdIg zIhA== 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=J9LyBwxkkqzt4tmaXLntDWKi0l/2cOkfc3bLS+7zKb4=; b=g5HqIp3FUp9/GyZR8hfIGyaSBqOEqIqKEMNKG6F1HRO4inGIfMXIw1GEHSWTO2aMPg Wp+Q1dxHX4mjMV4nBSKebgH0Bgud86YK/RkTtFrPtpBNAyHar8ZzG495W/8UlSZvwiy1 5JLaCuSqIpUPeBi6xyWawWrVr2vG2GhZE5ZcLTTSFGpXbSpkdlwp6Ujah7P8/IGTIG6t tM+CbP7xz7RBvIZKkeb990ZSYGhLadkxBWvBHXaOzccylJKW6+zjlSzVadS37QTiR8oH MN2Pt9iLJ7xo61rHoKecIaSHYda/UPl2kBivrD4sFxoEtgp+Dps/TIPoCWnYCxNBnDqm OW1A== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@oracle.com header.s=corp-2022-7-12 header.b=Im59WIo5; dkim=pass header.i=@oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=q7OsfUPl; 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 ji10-20020a170907980a00b0084c7030c613si8212010ejc.484.2023.01.16.18.40.04; Mon, 16 Jan 2023 18:40:29 -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=Im59WIo5; dkim=pass header.i=@oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=q7OsfUPl; 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 S235610AbjAQCjF (ORCPT + 99 others); Mon, 16 Jan 2023 21:39:05 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:39212 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235514AbjAQCiZ (ORCPT ); Mon, 16 Jan 2023 21:38:25 -0500 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id E3933301A6 for ; Mon, 16 Jan 2023 18:35:41 -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 30H09ZNR011743; Tue, 17 Jan 2023 02:34:59 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=J9LyBwxkkqzt4tmaXLntDWKi0l/2cOkfc3bLS+7zKb4=; b=Im59WIo5gnnasEeM+bu9YpacvUKLYf7h+GgBrSlOadBNUXCZXDWOynnsNlGm+jG9Irpa ow38G2ynrauyVYZhJpcQokaeOGuRMqfNDt6CGn3dPf+R2FIU73mmqC52LiHA/RwK/gZr PqkPkezz6YbSTRPFCTb0dgq+LBTS3cpka1rSXcQZs5MVn9C4SB8dDq1zTuC788CVz1rf Z/LjlQHhFeutNvdxiy6doGboGslvjPYuykn+VWIGxhfDoBwLEW8zKzDAJiQ4YGKgnwTa v6zXpZzOlgki6McmQ40wkY69WlDeRahYKPiILUoWDerTQtykiJ1x8Z5QxoyQmlR1Sswp fg== Received: from iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta02.appoci.oracle.com [147.154.18.20]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3n3k00urd1-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 17 Jan 2023 02:34:59 +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 30GNCpCQ004918; Tue, 17 Jan 2023 02:34:58 GMT Received: from nam12-mw2-obe.outbound.protection.outlook.com (mail-mw2nam12lp2041.outbound.protection.outlook.com [104.47.66.41]) by iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 3n4qyy10ss-3 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 17 Jan 2023 02:34:57 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=dH2WUy6t2wwcJWH1NgCppryc9/hqqhLNgZ2uqAuWR5gNmEt9r3BHx1gox3i6ZJWDG1XVGlgPQS8SI8SLyJfVeTPg8zbtSGlYCbp9kySVN/9rX3Opfqi1Y3DFD3S0w+wgbIk+1TtUXGm2FSRarBluJR6EWAPQx5yVw3ojud+p0+s/HNJBq2eZKQMN/+ZPKlbv7zUKRf+V+5aLD2mQSYwy1dB98tMX08mHxty5wAvc6o1zTJ+oc+AhhdKcYU2A+hl4Lwd+nlUSlWMRUPFsPTA+HSJCPC44NKAGn6NgOmU0SXWvlXujiv6XAn51zZ1npRNOMI468X8eDnpYXrdzStlBvA== 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=J9LyBwxkkqzt4tmaXLntDWKi0l/2cOkfc3bLS+7zKb4=; b=Na+LPML1+fZb8JRCamYy5Phmo13jAS31H+7wbLXFOYDqkb4+phdWTjmAp4skDROhrAQNpQRrrYXidDELrqgMhWZz5/8dGSBOhb/RWH3QuALbDSpyRH7QRkbAbvGXQu/fy4C2x6ErvRUETqON9/75mu/pJGynBTbTxXxlaPdVovDFvILp4awpVIVotMB7z118H4QuKLw/Ck+lgulTJ3JljpBhy9P+v6O5EXbiTGZM5dgfjNLjtB6xa17udhmBP2nnDaAyB3GE47OGFVGiZwfbO5a6n+N3+hpaKx8gL1mivlVGI7NPaQbvw0C2Uv5plKXqRpd7JSry4McVltSxeSyNWw== 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=J9LyBwxkkqzt4tmaXLntDWKi0l/2cOkfc3bLS+7zKb4=; b=q7OsfUPl4HXcNLzs6mmPw13Jpjtag9Z1wbec4FVrE7a3/kdL3jiNV98UgqKPRX15tBeYWg2J37dYHpfriVnvCvl10AG8hQD/i76JpQdnB788Sadp551hbRxgvTI6glV3WEL8enr10nO2izH3OAdwKD4w9hCmRxw15Qk62mvUF9U= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by CO6PR10MB5538.namprd10.prod.outlook.com (2603:10b6:303:135::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6002.9; Tue, 17 Jan 2023 02:34: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.6002.012; Tue, 17 Jan 2023 02:34:55 +0000 From: Liam Howlett To: "linux-mm@kvack.org" , "linux-kernel@vger.kernel.org" , Andrew Morton , "maple-tree@lists.infradead.org" CC: Liam Howlett , Liam Howlett Subject: [PATCH v3 32/48] mm: Pass through vma iterator to __vma_adjust() Thread-Topic: [PATCH v3 32/48] mm: Pass through vma iterator to __vma_adjust() Thread-Index: AQHZKhwzSFQ1dm5OBkatwyWkQUBhcg== Date: Tue, 17 Jan 2023 02:34:20 +0000 Message-ID: <20230117023335.1690727-33-Liam.Howlett@oracle.com> References: <20230117023335.1690727-1-Liam.Howlett@oracle.com> In-Reply-To: <20230117023335.1690727-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_|CO6PR10MB5538:EE_ x-ms-office365-filtering-correlation-id: 226435c1-e196-47e5-7a12-08daf8336b69 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: QVxCgYPNnl9dMpuz88KXuFrFx7tORymp1MxqCLrkcK7rnqF5eRi92xKGOtEhqADaMd0crq2Q+r3RuRykkMfkIe06zd8/DijImIWwXif1SVyIF+hi99DXF9Cc6ykGWgLvEcHuu6QCgPBSKAgpOxq/V0++OQOgMfTnDfLNWxcdpebY2HMbab81xSwFHSTl1cQvuQokQPpXUB92Poj11wvg1Ek+FvcIiJaNxtGjG4rnRfjNI5slhMVL1pGV1i74gtIb+E4r8nNHHVteF7F8nN/o+fJYAqyXEM58QkbDhTcTICr9Bcoxjb0y7qF6ZG6aPaBf7LgexN8JvPu5eYYdkatXWY6Hs45O4HKamALuItNRy6UWUcwe+HO30M5ccZ7AC94f1XH5/z/rINdjQspndXbfDUoqiJOwE49MtXm7dQf76gWe9QUJzAk4wDR7/NESstZje0eJJEVh5xo9/r4UsfJSvbcNtjNkINzAAJlgWrJ7pyJTITiElIvOt6REKkedpJYoUYUfOn4Kc8kQzRg01yxzX2sVXExnEapxekKZsVRvDmXeUnch/QQ9eTvREqHUmoSWRxYLs0IMO5EFiMVyI+Dj/r7o6xgSFt3IFkytPhKRf6knYIUDYfRZZgZaioX5JA4+qvAZQxsKDs7p9bxluJGRDYkw+Fi+bTdDZ44fTgBPVsZqWfSPmn/aK1JtjBdF/mY7xSItFvV+68eBYlp5ZWtMpg== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SN6PR10MB3022.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230022)(366004)(346002)(396003)(136003)(376002)(39860400002)(451199015)(36756003)(91956017)(86362001)(8676002)(6512007)(64756008)(4326008)(186003)(76116006)(66946007)(66556008)(41300700001)(2616005)(66446008)(26005)(66476007)(316002)(71200400001)(478600001)(6666004)(38070700005)(6506007)(54906003)(110136005)(107886003)(6486002)(44832011)(122000001)(38100700002)(2906002)(5660300002)(83380400001)(8936002)(1076003);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?q?/aggLtcVgPZ2DDhE8jQns/T?= =?iso-8859-1?q?h3l2oQgMejy9k68nhC65l0NROna3QEu6hLZF7sPLTedpmestu5o4qPx537gY?= =?iso-8859-1?q?rx8p8I5G7S3mOToUujtrzuqGon2ynPAFcb4LAvI92B+pCME7YT00+OcAMGo7?= =?iso-8859-1?q?BTMpy5/ZCRe+oa+adbr/a2I7iUztVrAL+QXZiRyHEq6Ms0eN1n9FkjsGF5ml?= =?iso-8859-1?q?SsMm0lPZYs7A+gU/ZdjUW5/bAGMKuuyKyb/WnxafCIkeH7nSVS+1Q3jHRwNe?= =?iso-8859-1?q?QFGdzTpiHRgTmp4r7qFL7lC1j+SLSndVmYllzPIoIk1aEuXS2UeTo2hBkpXh?= =?iso-8859-1?q?lRcljBK82qrdPo5k5NcZKnVXLiJVAsYs6yyvuTD468hKMs8zfprMebcStp7c?= =?iso-8859-1?q?4KS4vAGYwT6O6LMwbUdDCLp26RzqJGR1p3p3DJUqQ/iZX1Vvym6M6l/pfJFt?= =?iso-8859-1?q?4Ghkj/Uz7pykgOJv5dKSmki07oICZmWZKIcre/ibwgVlBlJsKm4mdmvNIgQC?= =?iso-8859-1?q?5f66NGESrFVsQtm6RY1jmcH5DzTZZaYXFZ3K35CzsNQRWntJnFO5q9GlQr81?= =?iso-8859-1?q?ibuVrSXHt4FnyzswJuDrlbcIMKMnHgbmM7tt3+KnyVQAkZCTcsZHGUU2a+jt?= =?iso-8859-1?q?41I9MUDTX8uycAFmfaXNC4eygCdS1Z0sJ7+0zLSaB4pSVoDSHh53TLObWgFq?= =?iso-8859-1?q?BS6JOCMl896j7+X93/Tdt0fbYj/ImaaRSgOU7KPni0Eh/f3mtKYVBSwmzHcO?= =?iso-8859-1?q?TCgF/NycnuVtCWdjfGR9wIEkqAlm5N2+y/M8ssHoFkdD60zfA+BA5pyFoD7K?= =?iso-8859-1?q?g9tHhNbM5vWSpeARTJ19/dCh8SBxvu0FgFB2p32nF+SetNTKgjUN3CiOIDwO?= =?iso-8859-1?q?Mqv1LTitSMmpFL9pRfBWTtx2tAPg/6NS7h1tYMW2fD/GAqT/R8yYS1b2DDqS?= =?iso-8859-1?q?Q82yZjY6kWWSsfGxfoJFtj+ZWqAj8qnmkdO18C71g9vfDcRtYQ5xUz77k2I4?= =?iso-8859-1?q?RUqMYxD5ZPGBJ3XCKHVjwnjNyzlJO5698TpaizUpEEnDc7/ppBQeoq+Bj4Wv?= =?iso-8859-1?q?1tmjjWKX5/I9RUr41eIzaHOsHto1IwSjRGn+2V1ex8Bm5kPEXNE/hwOJ+iGo?= =?iso-8859-1?q?VVsDdwOPSDNwpACI9SesU+dFJNl4n1xEOa4BZUiFmdeRQx64X4h6LO+BewQk?= =?iso-8859-1?q?afLc0OA0ukDEU/576eth83cF5fm9LlA9amwhDuBkb8cDOzvgbbZXZ4FW2q6g?= =?iso-8859-1?q?wQBaSr6g2wJV1GdiHskjO7HOvMvQD6t3wMavIsZEI7rt9GaeJ5BDt/5LU5s0?= =?iso-8859-1?q?IA3Cbz07Wk4Py7O2Hx8pNuqtthXwbS59JiV91ZjUdyQdw07sGCaZRjnw/Z0F?= =?iso-8859-1?q?tm6WZsw516XR+6fBTwM/GAqFh79LRiyZW3ZMm/PqhTlFLQevITK5+Gp5bcPt?= =?iso-8859-1?q?ObqVZVlpVjkzzF9AugH7fCmYbtg2slPfbL2/33H8nKBDwWM/4bZ+QAQPiXK3?= =?iso-8859-1?q?agd9F4wpcRQG7tbOUJVRULPTQZJuBmlQLRwARNNhYoe+qq4uguMtCls+C0H9?= =?iso-8859-1?q?785kquNE6LsDgKRc2yQRsiuzOqnMPJIhuZy+nNsaeXaCz9NNKjYkC+fdLqwi?= =?iso-8859-1?q?V7KW6oHZra36/eNy4u3FjlTIS5nDtHCFGKoXEIw=3D=3D?= MIME-Version: 1.0 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: v2C0Ks2eZMlnXyn5UVgFdRSPv66hQbRIQdAnItkuVPYQo4adcEQoPdL9pSbrqqhNm4GctGPOaTD9E1gFjNvnmi/UxG/XWzPWme/BRTcUFIZbeMZZM6FpflNBpsTMWkv8825I3WL8qjeziQ0YFDyex8UytlPBVK/fPVrV4o/te6K7frsfq3aEs2N1MMM4P4K8olx7YARqVHs23WJzASQrOT7VmUTn2heLx3IiGZD0ejYTYgf8wV8OgHiID7hkDIgpqPrY1Tc122b6pOVTHw9JEyI2CA2b1vmtmU0yDnd7dgdUK81C045B/OmBe9jB2iKbakdvAFC0UfbARSr54Z48S0VW0fuByy5493GWXUp60ABDkMSsUwysBh5BBw0JgeYzfHrzl4yTJLVeZcWy/pBlWFVHZlefvaEFjFe2iHTbeUe+2vV3ygc/sa51aKgS9B/ClOMBwmyW+TdO5QCNNNnoqzyrP9HKBo8w5mgNFLgP6ZwH2Tx7Bej/L9PizakvoQFJIRIk9RBom6GUiXpkoJX95OKwErdwm7wNAXW7qkm7OkmY+iCM5BMY/uWtvS3BMR+hVuixPAe5i5S2hfrzfT9t+Ovt2LCQHO4onz9JxOQJHM4kYMZ4Xo0v9LJceCQDSXhYh4VKhXey2bTPxvHpcLxXizrf79W3x3h7CcQZfBgfuaWXRA8QvSxGiZG8BrD8Qwp6D6Vtv2/HvHCaNx21yrYBQw69AVPjbjtxN/Gf/Fll0BIOQRsIRUlDb2Wul8+MsNGoyBCk77GCoUMB2ArWR+SmwYVNbNHVmNn6wl2V97AUSVSjfbbC/JQvsfKiOuxcjg4jPv26ne844XUJSxTtSb6UohOqPdL81LCuNEnDtwJfr0VKNLpW2rNqjjz4l4WMy2H9d8zrnf3ixvX/zX6/vsi2Rg== 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: 226435c1-e196-47e5-7a12-08daf8336b69 X-MS-Exchange-CrossTenant-originalarrivaltime: 17 Jan 2023 02:34:20.2028 (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: u9t3X1bWgSXK8pP5vSqgJgYt1czJejihf3OCGQFx/IchlfLpqA+OLQj+UQ4jPnFg7Py6AxtbRGmSgn17LYhpYQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CO6PR10MB5538 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.219,Aquarius:18.0.923,Hydra:6.0.562,FMLib:17.11.122.1 definitions=2023-01-16_18,2023-01-13_02,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 adultscore=0 malwarescore=0 phishscore=0 suspectscore=0 spamscore=0 bulkscore=0 mlxlogscore=999 mlxscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2212070000 definitions=main-2301170017 X-Proofpoint-GUID: dNJcL46CRIgUqF85QEqjVfvUfCW0nPmL X-Proofpoint-ORIG-GUID: dNJcL46CRIgUqF85QEqjVfvUfCW0nPmL 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?1755235723699503791?= X-GMAIL-MSGID: =?utf-8?q?1755235723699503791?= 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 b8e8d5edb5ed..4b4d7b611c3e 100644 --- a/mm/mmap.c +++ b/mm/mmap.c @@ -579,9 +579,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 */ @@ -594,7 +594,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) { @@ -679,7 +678,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); @@ -725,7 +724,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; @@ -735,8 +734,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); } @@ -747,13 +746,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) { @@ -773,7 +772,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++; } @@ -819,7 +818,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; @@ -1013,20 +1012,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 Tue Jan 17 02:34:20 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: 44453 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:eb09:0:0:0:0:0 with SMTP id s9csp1520489wrn; Mon, 16 Jan 2023 18:40:52 -0800 (PST) X-Google-Smtp-Source: AMrXdXth+LdnDyOXSYlS9ShGahbQzFvA3z+c3eF70zanvjAOLrI/ZkQ/WUv3H65EXahjgG1ebj5S X-Received: by 2002:a17:906:6d99:b0:870:58ae:842e with SMTP id h25-20020a1709066d9900b0087058ae842emr1042937ejt.24.1673923252224; Mon, 16 Jan 2023 18:40:52 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1673923252; cv=pass; d=google.com; s=arc-20160816; b=JejlD8PDm8E91lhP7PnlXEo1PN0Q/kaLfcZ13pwfDKr+9M2T6b+fJBGVAXBru21k5m sOQRCdgQWvE8sQ9gBtBjbNTTM12wplQadqQBea28YSZwd4XFAzfq9UFI/tbeFMng10b8 YsYfW3EPgftB4lBkD69z6Ni2yeJ3G0voXb2+2gj7tIMIvckY0A0xsW5L+6tTAhJ+f7mD xkLHH+7lYrRm4nMVxA6nZVX7V1lm2DAcWShM2QCGx3J3u8S1EQb+V+fSOJVJTpuxdBE5 gYk32djqUSBbJBU6u7BjQKqA1LENTJyzPnogkkdvvqagelbah4W24RGzi0kquO/gsDHZ c/tw== 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=wmAKz4nQdF6/1xAfij5DHraHWeyWRez9295WT9T4gI3VB3jnEe1nmix3gnGm2j7zjv BLX0K4C8JDpZjdF8QGiYEusS6ZASEfb1tVUwXo5QM3lKBbEVPlwCQEgASd5btA59yddy dNtbfJACFUFXQA0EFhmbNqS9M0RHBfM9JFS/rdQJiLa2mvU1wFcfJYrjHgUCZcgEDWS4 aLoAR3/aw4EMi+vmosLpl1Jyl4eQB8xlmMyuHd2VSbWhTLQDlJW5GMG/YFjt9TJ9Bqg1 +ZEKWYgEdmcwK28axbH3pOrRS/Qwo/r0V/Sp07SlZM9sMkQ/3WCEzZL6U9pynxOuLbE5 vq5Q== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@oracle.com header.s=corp-2022-7-12 header.b=VZy3cOwV; dkim=pass header.i=@oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b="eA/xawww"; 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 xi5-20020a170906dac500b0080b2de32a19si34337869ejb.457.2023.01.16.18.40.29; Mon, 16 Jan 2023 18:40:52 -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=VZy3cOwV; dkim=pass header.i=@oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b="eA/xawww"; 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 S235673AbjAQCjZ (ORCPT + 99 others); Mon, 16 Jan 2023 21:39:25 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:39478 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235676AbjAQCie (ORCPT ); Mon, 16 Jan 2023 21:38:34 -0500 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id DFFDF301BD for ; Mon, 16 Jan 2023 18:35:49 -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 30H09j8f031135; Tue, 17 Jan 2023 02:35: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=GDIZnvT3c4nLUKTNTDe4tm/qdLfWeMn6rJBcSK7ia88=; b=VZy3cOwV+fA1ORkyOQf30GaZHfVklekmfPYvcdVdUU7Eho+ZkhxUW98u4Dog36xZKobE SXE4izrTM1QWCMI9mff2KVz8vfW1woTRXE0BFo58TgGpNrONrLzin1dr5z97UU5rBMcV njZ9mziiGBwazJFr+YFTrvQH2HDDOz9W0bgUgYzGGQZrOadjYdgQxH6CBDTQYiVUzuNm S8c9GYIL/12qd1RUd/paAtArLl820anH1HOZPDwSk3KS887ejLKZjqHYdlvphzBQykbo UArAUEpPlmTBOwgPUnG59TkkCz8HLBSdcq03SK4EcRE4wN9pyXqBPmClYhBqC4yYmukA hA== Received: from iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta02.appoci.oracle.com [147.154.18.20]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3n3mxt3pjf-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 17 Jan 2023 02:35:04 +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 30GNCpCR004918; Tue, 17 Jan 2023 02:34:58 GMT Received: from nam12-mw2-obe.outbound.protection.outlook.com (mail-mw2nam12lp2041.outbound.protection.outlook.com [104.47.66.41]) by iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 3n4qyy10ss-4 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 17 Jan 2023 02:34:58 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=XdYivfXfBOqqyhcNyFtf6Dp4Z1EvEA7sGpzyCeqqzKtkbDjiZb/PC+ep3EpTkhMCz+6iQ+5Jx40pfraFFYTyHB/upQl6yWtUbc00iiGwis7cDswJqMWtODJlQ/CebkMMXwk11pDeR52EW+4xBdHNcfyADsYMXbi0daPVH5ITN03fDS8iXGZzqJBuZ2zH8hr7TaIKAvsWfpnfdaBXTgi8CHKZOUAl8twEHDGq57kBA0Ka5cjZP61hBQuqMReUKYJxUJtKS7yH4rFRV1DRDQf227n2U9b5JUlPv0ZdXPKmulerK5+y9A0VVGXz+FiouNlA2e99uVT/4X1B84N+tUvRQg== 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=LDVxroXDLKo8YHtwNw40ZKlARib4G+vg6sUv0EodvWiCiqmSicO00gWEz3wZlcZL/RbeUdF7Z5zjxQpUk3e5J9C76nWcsnTmiNRHSQHnCA41mtEVBEB4+bHeGw4/j8jRE7b8W2uyVUrNyXMkoJqY5VXqn9nW9pXZFcSAXKbCr90horDyu3bw4WEQS/eTu/72sU0i87gszXA1PC1Co2fXIaqx4eD1xuV/ieJNMnr5cPGDDrQNLL1zfE3cpolylgIqjmjKB1nt/+ZkOD5qXSGvt8RCFqMNguKVSm5zE8u4GjePcok5HABLhtwCyQfpvCKJf0Jr36scgemMN+l5PIELSA== 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=eA/xawwwVXQ17yD2RpdqHbotQTUZJNlfz5LiDnwsUDvI1X0lmnYr6fY6J+b8j4ENRvaLtjgrpXYkjZ9xNUQoAEUopy84d5JltVZwi34OjYl34J44Umc6Cg54tn181XDCuAiMU/0mks0F5I3ZHZWjUNwp7XyLqQHs45btEMkcT6g= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by CO6PR10MB5538.namprd10.prod.outlook.com (2603:10b6:303:135::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6002.9; Tue, 17 Jan 2023 02:34: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.6002.012; Tue, 17 Jan 2023 02:34:56 +0000 From: Liam Howlett To: "linux-mm@kvack.org" , "linux-kernel@vger.kernel.org" , Andrew Morton , "maple-tree@lists.infradead.org" CC: Liam Howlett , Liam Howlett Subject: [PATCH v3 33/48] madvise: Use split_vma() instead of __split_vma() Thread-Topic: [PATCH v3 33/48] madvise: Use split_vma() instead of __split_vma() Thread-Index: AQHZKhw0odaop4BFt0iF6PG4SuZOXA== Date: Tue, 17 Jan 2023 02:34:20 +0000 Message-ID: <20230117023335.1690727-34-Liam.Howlett@oracle.com> References: <20230117023335.1690727-1-Liam.Howlett@oracle.com> In-Reply-To: <20230117023335.1690727-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_|CO6PR10MB5538:EE_ x-ms-office365-filtering-correlation-id: 37f02601-e9ef-43e9-c3fd-08daf8336bb5 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: cuKp/1D7rQVz9bdNvFGOxruXYp9WhKwrBNCZQI4ZoMXEXDFCt1htmFwOk8spnaFbEOeMvUqolGYHqinzKiFsBMXflXEY6+tDmoQd920wqzlcj8ZBWbeyckttOZ6RQ5qq7ctd3Fppe49mmAl1xHmASLkQn62gzvXeVqcs+ydw+AtsyVpj+ji/TA+noJ7gbvxKss04EvTWdXAEWkumkuJd7y3T7JYKSRa0RvgvMpx9BsNah4Lx0ssWvp9O7qsw1kLxhFLRIK3HN2VsHBKzRNMmxEMe+gWTjcmif35uQ5pEcSU6JI7dpKl5MFBs/c+8urR99DYoG8iNB4eBa3Uwci33SHSkUQJ/WzfFoWwUwBZGWMtayiwVu7oDpS2PyPQEGUWSPYg4iyLf3hYRssnFbUSOV6TH0wrxrXCLpm6vySuua5ah4wbnGIt4VG/FyNT59jhNmvdSAcONRCoXrCsCCubZV/7xzE/i7/v3m9hTiW/YfXsqJw31Go9+MXoEkQRAxDwrTcUmKYujJU9pdvPtrU7CvOVALB0dWUWxJagdPsoW9u2e/2P3Llu/i7HE42KhGX6AAiJduEjwbDZ0G1kUla8Pkem6z8LkUt34kkSkM9cqQmNjwcqTREo6vxd08Uh/bXOt+m8pkZEJ3H3x3AcWG8effWUVe93ls04sF1LZ9+VJICkE4D5EFasvMO9WYaKVn42rW+7PX5NBDaT26qH4fiBLlQ== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SN6PR10MB3022.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230022)(366004)(346002)(396003)(136003)(376002)(39860400002)(451199015)(36756003)(91956017)(86362001)(8676002)(6512007)(64756008)(4326008)(186003)(76116006)(66946007)(66556008)(41300700001)(2616005)(66446008)(26005)(66476007)(316002)(71200400001)(478600001)(6666004)(38070700005)(6506007)(54906003)(110136005)(107886003)(4744005)(6486002)(44832011)(122000001)(38100700002)(2906002)(5660300002)(83380400001)(8936002)(1076003);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?q?/IO9k9zNkxN7MmnVXhNYBo4?= =?iso-8859-1?q?vMZZhv8mCv3vSAg5Bn10K6QUsf0oemwbSfh86Vd8J+Z6/YmnbUmF2s8jIJFc?= =?iso-8859-1?q?Ny0QXNqEpD+LoMGy6QfT4UJS6/JaYU9r9HRkmqpgBl38BrPt1Tz7zwy8dYUe?= =?iso-8859-1?q?8fhi78U1+7Kh075UcwXY0o5hjVNcZwxpSEWkKJxkJrlqka8m8oZdY+7YT+ev?= =?iso-8859-1?q?CHnd3pApoMAyxUkJXMZ5MwNZsOB3yo7riXR8AthvztJ+ujZxrbGb+Vj0DZ9R?= =?iso-8859-1?q?VGicye9b1lke2D7o7tJkFjaVDdESZWdrnszeu596VKf5Z+KmAM/oXMtPz6Fi?= =?iso-8859-1?q?Ai4kGvuRDovwbKjnKQVd0cwTViCA9aswQNiDFUd0MV5mSD3HGOyMzYd97w7+?= =?iso-8859-1?q?N/Fldr2MIfaRb2aOuKApxzsQfBuOvwEkxvvmiO+jnBasbnyDalkkTt3xOpu3?= =?iso-8859-1?q?fc7h+x6aXG9qJLLobW8cSVV47Dw67Qe0ubJkr8NhMTrpHy1qB16TU4+aGhYd?= =?iso-8859-1?q?1kRngnpqkkJ44A4R/7y66SkcEXTOn89gXWzgKK45Y5aHNGNGGzBsri8RT5dy?= =?iso-8859-1?q?t4vP/YWaXVILA/Uzy/TruJgbrLbi5Mt3vPw8aKyz6B8LmuQQCuewRXJTGIAu?= =?iso-8859-1?q?KurTN7RDXCQEBHQBmy3+DthEY6u6NpzVUZKQYksk+sY32bLm5G64gYofkmQT?= =?iso-8859-1?q?2enihfuMRM6CGWygw256u8JWE56RZDF62QgtTfaQZQdRvY72dfXbH6SpSQIV?= =?iso-8859-1?q?IgqvF0xmaj2kSSgshUNfQmLcwNxDqrmR1XcV6ScQfTuU4VHMJikALhdrGsga?= =?iso-8859-1?q?KM/MV+ULEp7Z4MutJniZfNijxdIlgT4rW1epdgRCvFZfU7fzVHxuIWg4xJWU?= =?iso-8859-1?q?7HXcJf0U/nsO4P/TroMhXAnaBNF4/k7wJV1S+eMTRL4me4BHSo5Aiy22gJ6r?= =?iso-8859-1?q?jXrLZn3Q8OvZebBEQXhunu8CPprZlcZADw+EsWhkB+FwytSOzk24kUTc5/sJ?= =?iso-8859-1?q?RUUxjA6j8sADHGSMFN8DskWBjn0lNlVoFM4MMNgk1DGxgrY/jzIgpSgj2e2Q?= =?iso-8859-1?q?jFzFaCOoe59qPGpTqYop0FVaCOHnMrjQjWrWxMn56FBSo9CYlGQvcNY1OzVk?= =?iso-8859-1?q?3UYmU6ocqu+slocfRiJpnXHwAsulQkfM0Zbx4qi6l5IRvVPvzcnezNAlpD1D?= =?iso-8859-1?q?B2yNCpi+JCyGkUL3zUAPPB2DQ+w+pUtFhUPlOZDq4nm+oCehBOOkYu7gR77T?= =?iso-8859-1?q?iyv+g8Cy5RgMj/HwMSpcXJ3zMgbmjdMKlgulVm2FCwOw3XsRlDN76zfaglsc?= =?iso-8859-1?q?rbHMSfx5qtfqHyvhjI00O+kGMfoyHZU1Ufyu2mYWKnSvIFNdiEH8plByYrg9?= =?iso-8859-1?q?AoRKr6oLAxWNlqkNotxyZa8rpavtQo6onzUGxkEKXSrSyzeGqumIOod4c9a5?= =?iso-8859-1?q?cBpz2ABihK8ZBGylRJtSsZGxdaCgZ2j+jxSDMCDf7lXgBoLal831+mJB6CO+?= =?iso-8859-1?q?7aLSdiJaRANR0f3w9mNJIGC7jVC1+Ka5n/7vz9fenFi1GP7g1+HDYeAmb+md?= =?iso-8859-1?q?H21wWhjWFHoGMTDcf/5SlbHykHwm5Go7swWEzMRJ0bswwnZjHynNwXp2Vvt0?= =?iso-8859-1?q?86l5h9A+iBeNNB5i1r1cAoaDcTUS8VY72elMBUg=3D=3D?= MIME-Version: 1.0 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: QnzlyLzNkAmciqpuwPcDNVALl6WbniwKGoN1RJsV+u6G7JTdpOCNzgF/xpEQPOFOra0ZvmBqgxF0AM0D5GvwAkGd5t+FhmNeBZjwdvKixiN0bVNQm1Dwx0lJ0lGc1PTUP9SPrxWBjfH+DNcYixhx7ifmz2Zcq8UmY/SEOWPrJVB75c53PKgz6Pbqly3KGHjkwYCQJlV+LF2KfF+FgvoYN1BC5908Pya9erJCKckP7ay0B7UK+kii2TKLtarTFdwaZlJ0CNDWyLNxE5BpnmvkSJs6TtqY5FLWpJOj1jfUKyfh21eoqHKCRc/c82ct5xzzfwDeNW6hF3ebvbatG09eHY8jQHFMfmg8nkc3h2iZ9T9sX/k8hG8U7oikjZa268KuDj67cQOMlgrp86XV2E1siiSOC0EqT0Wg+icQecZHI7JR5oM07KhjKHRragHALHr7Lc9GsO0EF9VO/nfVJPGSoAHKbGzOtTBLo9iGpqfPa9ES957g1OoRjaoGdRfXwo3je0YgQNX3pLuBRy8nOKszyILj/J2Ys6mN5+S+AjXYbY9G5ZodN1ASiLvnrnTrLcR+/Yp9a9DT0Q+AMOuOA5IA/OC/1d6f4lmmeUoaEkirbfwh2+ndCA0PFQOx79eguR2ZA3mEz7kiRKbiSYkTfPSXhQJ82/RY6qSaj8ZtVSxsB4yagsI+BhbaPfn9jASqobsOELE0nfAVIeYY61f4mTIv6smXkbswRP//Z/fEYfXU6L7PRqaU+Yb7WzpF303Bh+bJlZkgaIQsx46HFO9ufSV5vSmeE5wuheRtQKlN0u+TlBxD/QzW/U+m0wb5N5zx88j+d+e7F6Ax9mqVo4G2BHiZTwA/10RakoukyAzzJhE3qOCToQwAb9l9dJnpSsY703/1NKhnVi0gnVl7na2gehgeYA== 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: 37f02601-e9ef-43e9-c3fd-08daf8336bb5 X-MS-Exchange-CrossTenant-originalarrivaltime: 17 Jan 2023 02:34:20.4996 (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: GHH3mv5bO2maQBN/qefPtkn9DWwtWYF8294n4EOylbgWTMHIt6ppGDdcrzvvSdmS5BTFVQ+YkNF3fDtBezsPAA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CO6PR10MB5538 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.219,Aquarius:18.0.923,Hydra:6.0.562,FMLib:17.11.122.1 definitions=2023-01-16_18,2023-01-13_02,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 adultscore=0 malwarescore=0 phishscore=0 suspectscore=0 spamscore=0 bulkscore=0 mlxlogscore=999 mlxscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2212070000 definitions=main-2301170017 X-Proofpoint-GUID: x2h5sSsNWN6q8hueSL1ImmIwLKiznXkp X-Proofpoint-ORIG-GUID: x2h5sSsNWN6q8hueSL1ImmIwLKiznXkp 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?1755235747922340966?= X-GMAIL-MSGID: =?utf-8?q?1755235747922340966?= 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 Tue Jan 17 02:34:20 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: 44447 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:eb09:0:0:0:0:0 with SMTP id s9csp1520211wrn; Mon, 16 Jan 2023 18:40:00 -0800 (PST) X-Google-Smtp-Source: AMrXdXsxy/wJT4Haw6PKXKnzIfcS5hPRAvCVuQCADqbiSzRlLNlc/+PlrbpyW40d7mqkUjlreysL X-Received: by 2002:aa7:cac2:0:b0:497:948b:e8 with SMTP id l2-20020aa7cac2000000b00497948b00e8mr1358209edt.6.1673923199928; Mon, 16 Jan 2023 18:39:59 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1673923199; cv=pass; d=google.com; s=arc-20160816; b=uox7vB3d9jRBomTfiHyBDFzLTO6Sfj+MHe2NGsuNs1VQhG79b6uBOBvN+XS+k4/Gy3 MTt90tSMQSsxLCAcr6py8Z3EuI8mNCWkNN8POR4lujINuFgmMSQILt3YqIXvzXW/C7Ap PEpwHlUsAKa4id305nDZgaP5A3T3w15hO8wMcU7ANaglDZvpxF+uRLM2bap0l3g876yx fCM5wHgmASgY5Mt4wLm+yGQUZdX9egeGBq5WpYrvOTiq7SVtSJsenj/5fk8xGqKsEmNq zo2f+/DWDw0P+7ej+JbKrh3FOKflW736MUE3ZxnU7CkMzeoHCfzLKlXmzKe8cT5Wknqc 49wg== 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=dENFccdTr/4pGctHaUhwN03694ws0UM7fWo/ke4rynM=; b=t1qJSPskLyJuzCs6ZKZvPxiVizjk2dvUhurtizaU0BZbztpleNmPBJ0ZOKqlIkOzF1 HTPseTPEljNxBSahBLC0UZYd8/MIGiOuk6kfu0w3eZ0e3EQF0Zi1wKHh+bF6Ftraaf+/ FzfIxq6bFQxfcA3YYh1s+0jStiE7qHGHLinCS9Ll5betUnn7ZVgCul+dtb5jD/8/POIM hKyzuE3ELAEih9hWOEGKNiQZuFqkuHiJ13wytZiWXmWFzB+OgHNP31rqIIdr0UhPjFYP M/pv84TMp5uIN0M4bS9sYNp9JNvNBcnSVhWtgn0UEEWeeXljqUi6WemxqXP1NROm3aP+ wBsw== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@oracle.com header.s=corp-2022-7-12 header.b=PtIVLNOU; dkim=pass header.i=@oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=HfTNzNg9; 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 w18-20020a056402269200b0049cb1b06630si14288417edd.470.2023.01.16.18.39.36; Mon, 16 Jan 2023 18:39:59 -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=PtIVLNOU; dkim=pass header.i=@oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=HfTNzNg9; 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 S235574AbjAQCi0 (ORCPT + 99 others); Mon, 16 Jan 2023 21:38:26 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:39120 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235533AbjAQCiH (ORCPT ); Mon, 16 Jan 2023 21:38:07 -0500 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 7AD9B2B089 for ; Mon, 16 Jan 2023 18:35: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 30H09WlM006385; Tue, 17 Jan 2023 02:35:00 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=dENFccdTr/4pGctHaUhwN03694ws0UM7fWo/ke4rynM=; b=PtIVLNOUSPZrQGrbW4O6NmiqiUSO7L/35jIXl6r9Sbz5abKNFKnJoGFX4KsLyr94XSbx LZK0WszRGn9S1cS+3JhnHxKa7eTAmLLNuWt3QLz5UgVG5DPC8RpOzfGvQmoCh89c7l+X 1R11a2zbx38admNWnuwE9jddbfzuIoEDtcHw8tx5V56owGxldQgi52udln1I0pSLGq6b J8BFJYG2qQqMIuHlwrTDxzWo3YSdk4b8uvAh/+x8vHJsODGBL58Bcgr4SpPxVlorQagR Wb8TSleBVUHgdQQm1UyASvgyGwRTGNZj3SYP/4o8VrgjSEt2ADPmyXHDfVwsKR8gNgOp 3g== Received: from iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta02.appoci.oracle.com [147.154.18.20]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3n3kaabrk0-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 17 Jan 2023 02:35:00 +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 30GNCpCS004918; Tue, 17 Jan 2023 02:34:58 GMT Received: from nam12-mw2-obe.outbound.protection.outlook.com (mail-mw2nam12lp2041.outbound.protection.outlook.com [104.47.66.41]) by iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 3n4qyy10ss-5 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 17 Jan 2023 02:34:58 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=M4plGkalFmaEzUv1V1fN0PI7xgqKHBq7NYlePgvR1deFhunYPuz6ZQhnFDbYi9oQ7U88nwAuINbL2KN6oTEA1rXC+0p+4mnesMm/HtovuoVh+HDolojQN55ic/tCCnGYHSy0DbAoG8PhaSCGIo3a6drzHjGM4NJOr66z6/LooSE570we0ffs0brP18GB2vJgrQy9h/4Z0YkM0jZVFT7ANpm1Iz7yrq4mJ4lJGKU4vzLW51ohsijBdumV7WTWyPwQe4iGHDHZdrcFiokCsZSBlSmXz1LdxBaBXxQ2Zbfyvrlw5Z8wi6Ri4TlDQl3jIhdlNLMnGaZpj8ARpWHY7jLyXA== 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=dENFccdTr/4pGctHaUhwN03694ws0UM7fWo/ke4rynM=; b=I51vRzHrHznwG6x7jW+d/QHvw2mg5o6gZVO1XmI6G9qfDd8Rh1dboPhB0Z8pciM5cnFWEiQdfLDkpO3CiJd7zJ1k8+IbJXlvnfmOvGjphnLDH2uhQuJWdAsgA28+1kTdZtIBxmHvl0i7b8NBI7n0KTf2KbvCcnlrCM2cXqlRcTYR6PYdgVCTG6HM7Swxi+RYxiMgnp9tUsnUO0Rqko+tesf9ZMOnQ6xaxIfGA5I8TVenh4w17cT+7UmloJ80f4qEmMxZ36ZinwhFvZdGFNmMJAnRM2tXW3Xr29xePXcx7go0ueTkShsqW7b40UNcNztPMj8XgR2vhYyB+S+7wteOVg== 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=dENFccdTr/4pGctHaUhwN03694ws0UM7fWo/ke4rynM=; b=HfTNzNg9dtqIn1lJzPgyKz9OITXvY7SGkaNMF1dMwASru09slybQd1wyiQvBeSHK3bKZxyD8YgQQIPRDLKuuUvRgeazmZRy9stESBRsIHgJj8KH/C/sp/DMGG4dXZ8EYQHByFrhgfrEb3QT3DNmG3WA2FqqTCkPGXf8+4BRDjPg= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by CO6PR10MB5538.namprd10.prod.outlook.com (2603:10b6:303:135::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6002.9; Tue, 17 Jan 2023 02:34: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.6002.012; Tue, 17 Jan 2023 02:34:56 +0000 From: Liam Howlett To: "linux-mm@kvack.org" , "linux-kernel@vger.kernel.org" , Andrew Morton , "maple-tree@lists.infradead.org" CC: Liam Howlett , Liam Howlett Subject: [PATCH v3 34/48] mm: Remove unnecessary write to vma iterator in __vma_adjust() Thread-Topic: [PATCH v3 34/48] mm: Remove unnecessary write to vma iterator in __vma_adjust() Thread-Index: AQHZKhw08BMDZK9PB0Oo2g3DfLnFIA== Date: Tue, 17 Jan 2023 02:34:20 +0000 Message-ID: <20230117023335.1690727-35-Liam.Howlett@oracle.com> References: <20230117023335.1690727-1-Liam.Howlett@oracle.com> In-Reply-To: <20230117023335.1690727-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_|CO6PR10MB5538:EE_ x-ms-office365-filtering-correlation-id: 5124ce22-0e05-4092-ab9b-08daf8336bff x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: O2l7uyWuuy3rK44Z5sZzpbmfcI/NTfHGxdsoBMxQDZQ1zs+BKjdkepZyIFCLsy8uDCQEB560J26e5CPJuxNosf0fMm7bvUxUQWg1eluZXP3IFu3quP7go5HRkI76Wt6yTS8c5/1Njv3cFbssHHEckarcu0Zp+ggbBJL0yrLAheicQnHp2LQXM84X+dB/hdTibCjjyVacvdqZ2TH+92BSPrUY3dNKB2xKYgYfvxxMlX7xD83MGb28yFKpiDTfyU7P/aUto7r7X6LWCIolCzsQ7BdSYEGAyH2BPoJZU5cu8bIfbufTbMAht3UqH3StazSR6yXao8dgGFuKqNBotCCJcKHGV+6vd0f0qE5EMt5Q5Cf9KsBAGOkNm2beEXTwpl0kO6Ktdee1EQTgmRAYQM0yjqZqbtn8YeOwuS00EefL4+PVk55hbKlP8wiaoHaIYUNk58mjNdw+KFzYe/q1QKpFYHfK/X2NCax0S7Rg9qWENRUCsjBLdDh1VdpuR/qcY1+E4UAXkAWb+JQipZ4B+KdwyI13U1BkW2QO0Zx0C2IubdEsBkvQfhNdOIH+Di72dbEWbUN3MLF5g2KjM0kZQE9QjHzNl/Gxez+hGYrkOV9u1fnonLTyt3vy3UzP9hjJ3v8WH040wU/uw+BJB5SZ5Qo43yjNhoxALCrfIERn2cVFD7pLNTuLw8eS8xBZ9W2laY+YcgpqWFFqgqJdoz1jtADEFg== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SN6PR10MB3022.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230022)(366004)(346002)(396003)(136003)(376002)(39860400002)(451199015)(36756003)(91956017)(86362001)(8676002)(6512007)(64756008)(4326008)(186003)(76116006)(66946007)(66556008)(41300700001)(2616005)(66446008)(26005)(66476007)(316002)(71200400001)(478600001)(6666004)(38070700005)(6506007)(54906003)(110136005)(107886003)(4744005)(6486002)(44832011)(122000001)(38100700002)(2906002)(5660300002)(83380400001)(8936002)(1076003);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?q?ewdqjXZl0/A1n00WupCWS8d?= =?iso-8859-1?q?Sn+/gtgVWiLm0auQwP8hjVqGrYlid6XsqXZiE/agHnDVtBvp7N6HKdxL1omA?= =?iso-8859-1?q?J1jqHB4Lm1K2wRzchHlCPL+idAAi0rUvYX+3QTIW7ZHHSAfv+awPuEf8436P?= =?iso-8859-1?q?aPbh//9/Yd1bsNbb5tp/rzEGdZf/7CCRrA/9GF+sGsp7veGdfu/6dJ6DDgOj?= =?iso-8859-1?q?2je7L67Ol8tLDOEh54bS5t8+Ajo78IKmPh47iwcqq8hjhxM229q1SgcvZgsN?= =?iso-8859-1?q?Veko0sU3dv6s5pmm0JFuOYe/7wS7Si5WyJ01bsyP22sIKPz0V7xNQWflDvrG?= =?iso-8859-1?q?S4gxvyRDPXLu/2j3zgXQh4E2NwRumQbgRhseI6uqylsyQsPpI/rauNqm9JvC?= =?iso-8859-1?q?f5JDoHgiaRG1Hj6TWnflEGeryxi6TZw6cfgc9GRbICUL3gvUTeH3pHIyMtYl?= =?iso-8859-1?q?71FrUPK7KN4Zar0DMOQGau80g64ApSkA5nIUwpUKc0B2jxMX8RmUwVsSZiBZ?= =?iso-8859-1?q?dLXgSxdJjeMHuB5UetfqpE7OuJc0LoKnjEitiVkTU9q6dtokOlKMOWerMmcF?= =?iso-8859-1?q?0te2W1zqrPntXwduVjNKskcSN2Uyc6/Ej5SFpHcz+OmKT/MMbpp8+I8kKQL7?= =?iso-8859-1?q?pfJ1U1QXQHt+Frykcm+aQs1ogaPSOjsrEb/Hj1/2P0Rd9Vdy+SaaSjI2JTCW?= =?iso-8859-1?q?QpVRJG/pq+N+sVdtOhcrQRUcKxYarjrxVF8dnfjPmTRof7WRBPlmN3FEuzHC?= =?iso-8859-1?q?XyugNZVEiaPwpAVNk5voahYMA2T3gaUi7hEImjVG4QRso74tbyOPRD7dnM2I?= =?iso-8859-1?q?gtrAlDwIeNhzlsJSep8mXXY/Z8cT9iD6thhpFl3RY0/fge0vTZ7loXgDelua?= =?iso-8859-1?q?N1KyT+dWez5g6wqfnQt4oWuqp7C12oDQQIHU+PM0v3AjB7fFFx2taK0NiVT9?= =?iso-8859-1?q?Jp57Ax8mc3EYodbyowi2b7NT6J/b3rcneXHh3sWFUlT/8pFRruOyYKg+RY1u?= =?iso-8859-1?q?eQLeUnKiP2Nj0lKLWHC0d+rWlYiUFpSf+4WKHrSXWb+uL1/GkzoFTpL7JUZw?= =?iso-8859-1?q?cNWi9tCvjCbEKbHO6vWYcaC4IJcZAeSSSwRh8EACjrdh1dfhmaXFETLQKe7n?= =?iso-8859-1?q?0AlrARH9yNNKj9S2liBAeIkvp6UvzmJkTjJj3Bff+VswywNhzt9Au5X6/43y?= =?iso-8859-1?q?hUfxb0u9K52KBvnEFjKLCuBrRsyEZxqEfaydzmpf1XZgy2zRTB01VP0Y846G?= =?iso-8859-1?q?SSoZt1f/8ynr8DZlWzkWgIdIrFmiyQquACLqlLG7r+hshiQGvWeFjirYj3WL?= =?iso-8859-1?q?j0EglTQkh/B2tNhfXDWC7PIGeCXDWAyMOt/kA9dC50qb5jgSXZ6X2fHVdSOf?= =?iso-8859-1?q?pgSkp4VBj0pVp88QjXaflR3f3v/KVS21tIo3OnoE0sq7INeY67MxsZwdYx6X?= =?iso-8859-1?q?wkYsheI2YlzA5kXEKBawBs0WU14rtkzSXLVWRkdPWDaazp2VfykxTqkpKvQN?= =?iso-8859-1?q?BcAwoJFzsSMmHjG+aCeEesnCcAEOsde5onOWKGjyLKamxlzd6c4m0RVrLJDm?= =?iso-8859-1?q?Witm/M3Nyen0X6GMPqvI8ldO2g8DQ/7kDyHHKsBubfVCNmIOpCl3CGr5Piu9?= =?iso-8859-1?q?79M8qirYDMnxs1hVyas+z7tiNsneetEpfTzgCtw=3D=3D?= MIME-Version: 1.0 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: B9W4wkqkEBCSALoWmQIEoBErJkZyiSsKbEEFN0nHoCNvxAabiwBupgDJldm1hopRd9B3f1++t4gtWEBN/TtyO70djhXVP/SneUN1ThZ5Z0NJtyaQW2KODr9X9As7JM9KGnzikqgZhmfqtNkt8WZfmfHjEwfAv0GEQVLTjP4sQl68MN5Gpg+TwtoNAjeM0AwZasp3b9OV344uHGnufj2cIwGs9ll2UoceR3XMVQNjM4hhad/HPkPYxnRYDbHKDHp4GsMvQyVW7ClIHmBWSoHOXwsewzv6UMLsS+DcsZlTdgju7P2lMjdSJ8KqiZMZct5hmwLWbYJ4CIkRJwG+L3N0dh9x4e2vFQmzwlilQb9aJuYCogmSIrtGXkotZmryIVEzoEwGi3lhbJonwQO9K4iuLUYcX7mv2+oaHNIWso7YiC52Qe4dDvKeKeastOxugvsfw4pXGZy58uO+j0NT40UaxMpUEx41MTXlf58DdjsJRAt44Rv1DTQbICo9fHS3eZ1FGMyMmkPZmVT8KPQeaJxf5D0xN9C1A9/sBEnLy9lHi82EUqycrH5ri/1VMJZR2SSUyApG5m77DOkikMKy10QRSsoy+q++gf60FW/tBK/DirCzhHx1/gb80DOHeB8x2TtRXcTlFniqkRGGNtPnQ0sNJHK15QjQrQ3KNMZo6s8iVmO0/2RTQMc7Ufg9gQBUVZB5NF0XmOyp0eSF0mVisLNGchPKkeMmeHR7kxhe8UnsLM4VEDYb+Av40XBAmU2gxWhzRtptYzDpVLh16f25r0MlUjM+i/MtjX9p04i2IW1PQwOhvBLFYuPvXZr7ZgeFLGsxOiH/ptsaT3pVDjKIHvMhsaQ1POQl4o4nA/EmjJLWVP5XoH/9g8OtLRcF839BtjA3b1a96EftQmeg98IBbhPh5A== 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: 5124ce22-0e05-4092-ab9b-08daf8336bff X-MS-Exchange-CrossTenant-originalarrivaltime: 17 Jan 2023 02:34:20.7184 (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: GQRFW1lORXfofQMShJg5v9pRE7Qkx9eOZblARjVBtRipXJzzHYxp9kQ6+44MBmPHo7o8GybCZ2/V9Wyp7jlQZw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CO6PR10MB5538 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.219,Aquarius:18.0.923,Hydra:6.0.562,FMLib:17.11.122.1 definitions=2023-01-16_18,2023-01-13_02,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 adultscore=0 malwarescore=0 phishscore=0 suspectscore=0 spamscore=0 bulkscore=0 mlxlogscore=999 mlxscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2212070000 definitions=main-2301170017 X-Proofpoint-GUID: IhIfajPzNMbh6dSIJF2d2LAko0TrXOvX X-Proofpoint-ORIG-GUID: IhIfajPzNMbh6dSIJF2d2LAko0TrXOvX 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?1755235693269908540?= X-GMAIL-MSGID: =?utf-8?q?1755235693269908540?= 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 4b4d7b611c3e..b37206f89e59 100644 --- a/mm/mmap.c +++ b/mm/mmap.c @@ -722,10 +722,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 Tue Jan 17 02:34:20 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: 44451 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:eb09:0:0:0:0:0 with SMTP id s9csp1520387wrn; Mon, 16 Jan 2023 18:40:33 -0800 (PST) X-Google-Smtp-Source: AMrXdXsv4m9zGjyJBrZ8n3vviwmlJrqt3J/70IS8Swq1z00vWEdrg1XaFakRfmtnrM3lcT61PD9t X-Received: by 2002:a17:907:8b08:b0:860:c12c:14fd with SMTP id sz8-20020a1709078b0800b00860c12c14fdmr1289766ejc.76.1673923233603; Mon, 16 Jan 2023 18:40:33 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1673923233; cv=pass; d=google.com; s=arc-20160816; b=zN+bwndvf+B20lKkrqDhJHuHNl1hguAV3pa+Vux9iSMSnqQ2gGF0RqNG0SIGgj2Hhb 46VnCnQDuSA/P2IH8m6OM3dMbh4cvs8fwWrBC6JwvCfJsOl+FfXRxPjGRp05jWn2OiuL kkHVJi2MUnpbuaxuX8yNu590EQgoXQpeodgB9FkJ7BvFqg6nSRu2HKQ4n9JNZTe1IXH5 piPFSNe7+IPEHAU2Mm42hiVW16pajCgJHNhk68HzIHBvVkm24Wbhn01WkbHI2Dl9PTrf oVmGlf6vKi9NbdC+5LX9xC0ilLbcXBkz4NjfbHcAFFk9tkeLj8mCHHgRjQ/CJGTF5sSj sJoQ== 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=E+9ifWADgkFlLD0yETbDnYCr7mlrp9fHkkCv1OWXPaM=; b=AivbdXtzU+FaU3CZJqphL401qWBdSsr7Y0eJmeJImymrB8SQipYGU1JcSGXg6ynOJd 0ql3Q3qfYG97dd/hNlcseRL23iELobmQVbz4ODB1Ik8SKbdXGsgNo/NkZNgANlWNVwnI Un2ONkv9MQ7Qo6gCb8EVK77u3t9QrtQFFywp+1klzVxu0YVZpgvtE9UFD0NclwsGpYs2 pD89ZHp6HFKYY8B/eii9OFDNE/mhF4zQ3TP2uw9OuC876R7YbbswhSJm+TtC1L95XIR3 L1x9stmsJFvcsIwzU4303CZeuqjnMq59E/kaLhYcOlaUpiGjHtBxKv3aIFru+94mpfNt j1QA== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@oracle.com header.s=corp-2022-7-12 header.b=xz6yGpqC; dkim=pass header.i=@oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b="MzV/od2B"; 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 g3-20020a1709065d0300b0084c3ce2f3e1si35826418ejt.714.2023.01.16.18.40.10; Mon, 16 Jan 2023 18:40: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=xz6yGpqC; dkim=pass header.i=@oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b="MzV/od2B"; 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 S235645AbjAQCjM (ORCPT + 99 others); Mon, 16 Jan 2023 21:39:12 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:36076 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235666AbjAQCia (ORCPT ); Mon, 16 Jan 2023 21:38:30 -0500 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 6FFDA301BF for ; Mon, 16 Jan 2023 18:35:47 -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 30H09ZNS011743; Tue, 17 Jan 2023 02:35:00 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=E+9ifWADgkFlLD0yETbDnYCr7mlrp9fHkkCv1OWXPaM=; b=xz6yGpqCZW4jpx84BnfXfowxiSEHimApoEc0F82hPcKhxIQEgdkB7xtFzQRhymytdrAx Al8sdNiSf+6QGqfGwsnsjn1avih0dpL8HMWjzPwGUob8xv9kHCwGE0V2vo3HX70dk5Xo 6a11/c0IMSTuXSEHDD3mO2EytupfRuyuwavm6z7mL3LMaFCMGQeZEN7+bkthNahlHg+q dU4x9f2dESBdyRcpIfgSZnRawPBAYtNJuMYNTfQLNbVmerMPRUUXofbnYcTGpKycRSW2 6LsLY0JuoyOiEFlqBh0RiH2Hnk+qTM/1i7N3qhYN32cbjCQG1eRuxV4mE1Vg8YZz0la7 Bg== Received: from iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta02.appoci.oracle.com [147.154.18.20]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3n3k00urd2-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 17 Jan 2023 02:35:00 +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 30GNCpCT004918; Tue, 17 Jan 2023 02:34:59 GMT Received: from nam12-mw2-obe.outbound.protection.outlook.com (mail-mw2nam12lp2041.outbound.protection.outlook.com [104.47.66.41]) by iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 3n4qyy10ss-6 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 17 Jan 2023 02:34:59 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=WnIB0ktIbh/uonlFGVhAdWsQckIPS9g2zk8oco1bTMwptKsLWwGJVIAjUDrIr9UBKAKHRdHHK45T/fKd0aKm990ML+VpADCcpLWUaxJtX+iJV6kV3iNaqJcdQjwFSp2jZt628zGvEABD2OuHtPs+ZHmyPVm5JglG542l4rJSSEx5XOWWpwqeWrxlxpXl2FwUurHLcGBAMLP6uFvijv6l5uTxzR+dL5coA+6wAyPvMoyr05ffJcuhiTOyR07mHV/zJFkhcxdriNUBl1mznJEcPnPjgnR4FzW8/zeALStCqzANxco5nPGvTnyk/kEeEy03xO8lgqZAX5po5a1SJJ2FkA== 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=E+9ifWADgkFlLD0yETbDnYCr7mlrp9fHkkCv1OWXPaM=; b=DD95OJD3XeAPmOTaUUf/Pd0xib9BzrxTcN3XBUXKzuL35vcSbe2EV695ajubQ3sDKQ+3QC1Lu18Ar2bALDWtN/za/qiMrRVrkfOJ9tuSKTqRzEd5m1hgqdcQYnrUBwwSEWLSNT3ek0K9Ew+RG7HZ7f6qOltXoJ/fYhkSVrA423JrIjaJ5VFXazurNEOsnGi5W5LIyAnLSEPWE290CAFqxcyD7oTdPw/xAoLm1Rop/Y+HOvzXwkItbGbxus+A98OcxxJO37zSgMkfZnhk5dSo24WL67ZewZekx2/gcGFfgxF/Kv1LHx+cnYDMN1fGs3x2ywom1a4LsRKdsOC27vPoFg== 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=E+9ifWADgkFlLD0yETbDnYCr7mlrp9fHkkCv1OWXPaM=; b=MzV/od2BbWxaSFdEAT5gjVKLYFCyRm3nvdd+9kOSzljZzU4YC8JxMYlhBGuV/8bhWxTZylA4dfTDgUWOiu0UxnC4af/YrHXxXnNLL/AnOPNRGH6W5XracOLjxy06vxnfp/9GVt71DlP5/4H1ZnVtGnDGjIMRBP6OQWq3ZEWZ2Ec= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by CO6PR10MB5538.namprd10.prod.outlook.com (2603:10b6:303:135::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6002.9; Tue, 17 Jan 2023 02:34: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.6002.012; Tue, 17 Jan 2023 02:34:57 +0000 From: Liam Howlett To: "linux-mm@kvack.org" , "linux-kernel@vger.kernel.org" , Andrew Morton , "maple-tree@lists.infradead.org" CC: Liam Howlett , Liam Howlett Subject: [PATCH v3 35/48] mm: Pass vma iterator through to __vma_adjust() Thread-Topic: [PATCH v3 35/48] mm: Pass vma iterator through to __vma_adjust() Thread-Index: AQHZKhw0ZUT/xsZUUU27bhMB6v5Ehw== Date: Tue, 17 Jan 2023 02:34:20 +0000 Message-ID: <20230117023335.1690727-36-Liam.Howlett@oracle.com> References: <20230117023335.1690727-1-Liam.Howlett@oracle.com> In-Reply-To: <20230117023335.1690727-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_|CO6PR10MB5538:EE_ x-ms-office365-filtering-correlation-id: 3253e746-3773-408c-57d5-08daf8336c4e x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: rrTKbo5gPZowe1V0q2vQ7nn04UBM9rbei4SwwyVgmRSyK0Md76CFk0XyCHqYRah7QaA26IQMLheY4C8RXh3yp5rcCBPxZI2tOiux+cpl9BqjoHt7RhKJPsOGw+IsqBD0TlIpsqMncrUXI7tqKzaJBDpLjxiTyl4YF6U8l/XOIk179vZpTikT2USD8fM8jpIQjiOszDtLsV9WaDp80WbtynD5z/3rVug8aLkAt1tzxtIK6kCSKHnyxBw/q5BmpzLddA1vlUF4oLoBl30tf/WMHx04g34NJ+hVyUcENwzM/QY8bY8L/rXldEzXeA9UbM9ULsblnurjoLewX/4R11lskL4hoeL6/Y8X+WWN/BAdVjwM4rS1oxz98UQGRLSCF9fSZB5Vbpi+do7JuD67SewRsUvEuKsAgJatXVbHiLSc1OZDCjeYDITkXlMReAUicx+7EamvL6j7LjAF7PCHhyy2h6FXfTgpjiA0nFzaWhwbf/nnAtloDQrfzHkFptMfZdK7mmAQqlyG1cAVZzbFf4n7PvHLxpSFAgamfZVJVxz7noo+4uvOHXIMfgLiW+Ycm2HGcIS5KL5yQOQokn1gyjc4lYY1CQPEuMUNUj+CR3cP84dxemJeXAyGcVq/COOydgfxq738PDXUhN18EHkQnrQ7DLMNEO7vtSpD01RmCQzOrLmdvE3ZQGwZ+PXFPpHjr4nrbagKGUAXOx0K9T2Hy5FuPw== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SN6PR10MB3022.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230022)(366004)(346002)(396003)(136003)(376002)(39860400002)(451199015)(36756003)(91956017)(86362001)(8676002)(6512007)(64756008)(4326008)(186003)(76116006)(66946007)(66556008)(41300700001)(2616005)(66446008)(26005)(66476007)(316002)(71200400001)(478600001)(6666004)(38070700005)(6506007)(54906003)(110136005)(107886003)(6486002)(44832011)(122000001)(38100700002)(2906002)(5660300002)(83380400001)(8936002)(1076003);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?q?7Yq63kbOHmQWzlmA4GJyp6w?= =?iso-8859-1?q?kLFBx8IxOgsdAPwrM4kXaOhMQ++8w20m/SR0SFHpaTncE/vULKIORha+MYr9?= =?iso-8859-1?q?90E/8bM2hJ5TbFuDjK6dtFbvgJ2gcI7NJZO91T7uvIVrofhqj1SVHK6/k99i?= =?iso-8859-1?q?42/uO8ViZGZeevGzWbptXJA3lKztkZfZuO8FnsdVNxJnvhDw2vzGU2rHC121?= =?iso-8859-1?q?ub9F2AkhiXhY/dC3NfkAzM+4XwNbWWv73JYyiv2kPzlPgHm77SbEAuGdDhTe?= =?iso-8859-1?q?+7NeNayBDndw1aHdWkXQF0zgEjUDjEFm7kGCHdAwXG7wqfRKd0mJUi99kTWc?= =?iso-8859-1?q?vspbYiCLaFjIKRmac6i6OT+xv8adtdp7PfzPrC+ZjwfGFb0Bjb1YZtrvQWAv?= =?iso-8859-1?q?PBU1lYYXvkdNgAK6ZbmUNF+dxQlTDap2T49G3rsAyK9JhFj13g3kFlOk2WRW?= =?iso-8859-1?q?e/vlbMvHzj2tQJyFKMInJMtw+oxPOyrDg9uYhI8UtCLWYzQMu1WNkBNsJWjg?= =?iso-8859-1?q?Lru4Fu1fJ+UbQIEKCZgFG8eJ7F3P8Si7+mus5U6xrvp8GM1zXDWPtK2FpNY6?= =?iso-8859-1?q?HXHenWsJnavkRjxslcu+PZF/uuO4cpDLmwi7Yu2e7ttvVIj8AePAwOk2ULx3?= =?iso-8859-1?q?Bh391EEvvVou/iR5nZDUC/WGU7Sy+DnF/8QOo+ca3l58BKQdblVGVXd9FA17?= =?iso-8859-1?q?5PqQ0Rlpqfiq22V9wWhNPleG3N7nINtghjYuc683iWq2UiEYjZeei9RixVwj?= =?iso-8859-1?q?QQzIzMMSTJiu9uAads7HN5rTcOFFixZd2YgmnoGxKPMuTYYngZ9BMGlgrdlV?= =?iso-8859-1?q?Wbf5rsPSb9131zreHouw+wGnaehgBrOQTA8E6ZQFx6C7OvC4zuc1H0gzFqlT?= =?iso-8859-1?q?pMBMpeJoGWwqjsIJrf3cqh6m2puQU+h2Ptw+uGGr9k0rOnQbeigilMS+16rP?= =?iso-8859-1?q?P8XaYI3C6ir2TvsEQtnHWwsHej7Q925Gat+p64yJ7x5Hhvq7fCrF++5xFYNi?= =?iso-8859-1?q?TuGYxJ3xoUJc35B5jpbNuysXYqoFKEDZwkU8NOHNsx21vQGdXlxn3aV3tHJb?= =?iso-8859-1?q?RHCJ2/CJR7T07hzw2ubWW0OWgHlvL+yaCuERfrRX25jy2t9FP3hwwt2/T40Q?= =?iso-8859-1?q?NmFLDTCgMlOJOk2aTZAmfsKFLhRrvOHS/zC49JC+4FYyThMf6LRGuJVFSFa4?= =?iso-8859-1?q?IHkE1XRRuGfFnV5jLELOg4zDYnz8HuvovXXdYEmW9ZAiCdiKHEWb8uA4MGN4?= =?iso-8859-1?q?sy6zkLKviWYiEZ/EZJz4OPdCsdjjk35t6+p/aa3EOUr8k8gncnATl8jIHSTt?= =?iso-8859-1?q?Q/MSDsth1eDAq5nj26m+OUU9ztw5knGQwdn8X999fzBWn4MdlMOEA+hpGLBt?= =?iso-8859-1?q?MzbpGyn9sgbx5E5Q0eapFKhd+V5n3zXyXh91PoyYL7Z0RhsiZdwGG0inbnfM?= =?iso-8859-1?q?gF5WaT7uDKMdseKUNqbdbpac+vNhkaZxZ5L+pnfYi2lOFTXOhjiZn2VrwJFa?= =?iso-8859-1?q?InlEjSpPFKSm63e96HykQzXpfYgHb340ywo5+VvL59IW1Nib/pobZELkBNWi?= =?iso-8859-1?q?pnyCBrhQwsqHt03Na4RCx9Zztqkg5i23/BFwMR3Np4/TRFW1GF/7duOYMXVT?= =?iso-8859-1?q?I1+MLekaM9PXLn65AcvI2dlPJ5iH3hPbKd3ePyQ=3D=3D?= MIME-Version: 1.0 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: GXWbJejQiAlc+dd6HlPJV/7OkL3QScrJ0bAFX2Z4q0zKLh9lEvp1rvmALDXhE52i5mEshXL0xclwKipWX3ujSF6j930rKBdq9CNBo+Du2RSnFPJJ8NJwFb6KxHw8Ezvv2MgftrsglysM3UcO6uHIuV6h4Esk5oiRqlYIu0bjYdZOxQ9B+klxVKH165/mRQIBomXtc/rqTXd0LZxugQ4N+xW4jcLvGWAWDW9/TN+vXY7LtWU/r8l7KaIXlXCoOTRvyma8CwRoUug9SM2bf1+J+seAJowAz882egB453IikZ1bwUTyhdKY6lhQMdR9BCkULJKbUyJrB7vRuMY5CCCmXY1lduYan7CY4P+9IqZWGk6J6sKoTAd2hddy0qLzWP7KcZyo/vBGegymCd1VfdtZc2qv45EVJaizDb17jHGghIyt/TC3UBAtiYG8tJPu7/va9T0Q8fOWt25rwJKRvNg0P3i3uLzmJbLEfAyr/lA1SrPhOENG3FozMST/ESjFazDwDJ6j1/n0Kp1FcQu1AjtgQ0i7qdlyNEzxjKqcNEmizj6J6LdJO92TJiTrMM3CxclY0pgHdcOuHL+x25AR0/4Nubr6jnnnos0rvF5KpyxDWSLDtZmD+KZzYmjB8ZU5Zbex8Z6v/B9X7/Xe3k95cz8DLVglmcW/Xsb1bFbH2aMHLMQWPDh7tw4uHOnRj1cSA0tcZ8ruFLndCSWERpKzT1AKjMpVAFceCymYduf0j0hBLAJljzBEDgQJQ/RKDiVyW0MR+0KpGTymXeTJZDfWXRwv7z22Wi418bXj1pGmYmU4mUdKBeNNGfifMxQNBgDshSaNmWQeRKt9GHJ5utHYR8YyEy356p0zbGoUkI++Ep/0g4TBoTJwdF7CuxFTtk14BMFZBpheAbx9/RmS/DfvyWsccA== 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: 3253e746-3773-408c-57d5-08daf8336c4e X-MS-Exchange-CrossTenant-originalarrivaltime: 17 Jan 2023 02:34:20.9840 (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: 3pGz3h4/OOB5pwijfJoTIBnsugDvu8aQs88T8uMcMNtb8fbAIMX6g5rJq5OK76w7quXmIoI0OMN8JO9tjvwe6g== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CO6PR10MB5538 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.219,Aquarius:18.0.923,Hydra:6.0.562,FMLib:17.11.122.1 definitions=2023-01-16_18,2023-01-13_02,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 adultscore=0 malwarescore=0 phishscore=0 suspectscore=0 spamscore=0 bulkscore=0 mlxlogscore=999 mlxscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2212070000 definitions=main-2301170017 X-Proofpoint-GUID: 7FTccgzqhtVdvaiAM8EVUKIvdErUjxZ5 X-Proofpoint-ORIG-GUID: 7FTccgzqhtVdvaiAM8EVUKIvdErUjxZ5 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?1755235728585360946?= X-GMAIL-MSGID: =?utf-8?q?1755235728585360946?= 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 b37206f89e59..a8908280671f 100644 --- a/mm/mmap.c +++ b/mm/mmap.c @@ -528,6 +528,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; @@ -2163,13 +2167,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); @@ -2205,14 +2209,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; } @@ -2307,8 +2314,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); @@ -2328,7 +2334,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) @@ -2572,6 +2577,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 Tue Jan 17 02:34:21 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: 44449 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:eb09:0:0:0:0:0 with SMTP id s9csp1520319wrn; Mon, 16 Jan 2023 18:40:21 -0800 (PST) X-Google-Smtp-Source: AMrXdXukwnIwNNdnfOciPmvMnpu4O6YoAVlwtR0pJLgJeK6Zl8zlwgFnCAePeDHzfsG6OKAikEwS X-Received: by 2002:a17:906:2c49:b0:7c0:fd1e:972e with SMTP id f9-20020a1709062c4900b007c0fd1e972emr1254696ejh.46.1673923221176; Mon, 16 Jan 2023 18:40:21 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1673923221; cv=pass; d=google.com; s=arc-20160816; b=RCu0Xp2ZVIVrC1h26aAUAsvWdk9i23GOfSTTHzSr7gijC2oNRwI1Imbz1x/PQsiSlK zM9EYGlAWmxXgH7bLRbEqmoUD5Mdh6WaqBR1tzlA5nzWua+BE9YK/kuMYqMiBx4SouN2 8DB7O0CPpQRIlzfCVBZ/LI4EjCVdFaAaYsMccZuxTL8cUxIgY9bPgqeQhhnP11ZpWbXM DrS4lqSvc4QcoFhaY8FHjAJ4+JPwdqF8PbfbbFdLPlaju6nJonqgZ/Z2IsGTPyuBrQhK JTiU1CHcMPoBvv8YvSL4b5MmsxmMKF1G+ePduP8zgs0+AulmsL5P5Y0l90DLF8HyibmH Sa/g== 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=erlJifL/pM9VZTLkd02b/p7GXfmghHwn4xCuNH74+sA=; b=TxakQNTnHnDf7MopiotF+MRd1IEdrfgr3yCy3VvA93RR0bruCKKB9NXgEcomfVct9q XPRUWpY4zEHk1a/17ugQMf5mHxCV1JGIbKteECRCz5QJcwYRZHQwv1ePOZxCZgmjYMzw 7Auf4mct7Maz38s6KEjtLkhtI0RW6yhFbTQBj2qYD+HSzvPiOa4JCGKFjJjVycgQNJaG JCgSZRP7ZcFaakkoUBxm1YS/6kUCUX9H3QRLUPNZbENXja7/31iCn1wRc8TCapIPA6jH QH+AHwTyLDSRpYAyaxs3eKDZyJZomLV89iYYyewP3TMEJrgkIsplRN/WMiRmcIB5SYmu kx8g== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@oracle.com header.s=corp-2022-7-12 header.b=gXkwSeoD; dkim=pass header.i=@oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b="NqJS/zsy"; 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 ho12-20020a1709070e8c00b00859812aea43si24514973ejc.568.2023.01.16.18.39.58; Mon, 16 Jan 2023 18:40: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=gXkwSeoD; dkim=pass header.i=@oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b="NqJS/zsy"; 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 S235499AbjAQCit (ORCPT + 99 others); Mon, 16 Jan 2023 21:38:49 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:38980 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235634AbjAQCiU (ORCPT ); Mon, 16 Jan 2023 21:38:20 -0500 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id AE00C2FCEF for ; Mon, 16 Jan 2023 18:35:36 -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 30H092Eq001912; Tue, 17 Jan 2023 02:35:00 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=erlJifL/pM9VZTLkd02b/p7GXfmghHwn4xCuNH74+sA=; b=gXkwSeoDOi4uiiGGpkQqFVXHdiEnGt0VECCcV+L4LHEy1wVmSYM6yFxv3xT+/Lt8L4Lc /nlbhqRlcuJA1yhm9OAcA9egUSbERpfjk8Rxaqf6xct1U8OPreIdj3VT3ejVY6e05Jq7 VCDsLC5TxKkfGnGkxdRtIuacIFS4w9fxcwEERtuJKPyoohpWZhunckKRsP8fErt+nnVq Vt9QgME7VAig27WsjbnNnkDe7JAFqplcKJtRrBHO1QVSb6kutSP/0Mtp4oACCUcJST5Z FfNhn+EWejyGD4LtIJBdQ+diojgoaHBF2COKq0j03ouNHnlDO2rC/GRpuJemLBtifvrq KQ== Received: from iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta02.appoci.oracle.com [147.154.18.20]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3n3k6c3pr7-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 17 Jan 2023 02:35:00 +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 30GNCpCU004918; Tue, 17 Jan 2023 02:34:59 GMT Received: from nam12-mw2-obe.outbound.protection.outlook.com (mail-mw2nam12lp2041.outbound.protection.outlook.com [104.47.66.41]) by iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 3n4qyy10ss-7 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 17 Jan 2023 02:34:59 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=hvpfrGHzD1xQOm46PYgEEeZW8Sd0gRpJ3lljuCfqy/jmk0Pn4OVvUpE0Ej7Fw9U25UEcJcVKeMAuzHZsRgBr2A4uZP6PBMlSJcrYQuP2QuGV/Jj8qN9C67gDQYiCaQWxm0hbcb3igfZ33669ntvezLXMI9N4aaaOCMSkQ3X5lU1WSGPe7p+iBzy5RiJt5K1q0EGMAsg7oKv0AfmmdroAPEa7ObE7GtY/Hj+5fcSwBu4LfJi2gsWza/47kIK7L2lYzep9zPENaw+n6HQCqTDgAkndwbnUxtr2bb5JuJRCkzsvRz8d01ysjosuHkO5uFOvdtzBkclT5vjX6oo5zS117Q== 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=erlJifL/pM9VZTLkd02b/p7GXfmghHwn4xCuNH74+sA=; b=gZBUNJe7SIDoZ1Am+SxOH41tgDI4NNHBWDnEPTi10Kt6hGZvW5fSIdXIkIK4cEBEvifVu/HmWOP1MB+cFcJTU6SiBsfaSbp2DUwbUrJ1IS3HEjBCfEzm5/pv66lNGE+eedI16K0UtMAZg9KJ6zFNEoUl+cI1WRK2M17zDyZwEHAR7vzUnpyAOgf8KnRSW0s+MEGjf5dxA7ulUnIne6hgoc9Jw4Sqhphp46BGC6pQ8mJLwcqDSlgvtyhShx5g3T48lRvDr2cOwmo15a0l4Gofkl3XED121wNIIodvxK4jWN+8CgXN8ac3cKBg9qW14KxFWuR6cCgc73FcN7c6fOZEZg== 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=erlJifL/pM9VZTLkd02b/p7GXfmghHwn4xCuNH74+sA=; b=NqJS/zsyhykdxPwWQ46T9Q8f8clPOaUpfRK1VQP1GcOaA42rI//KH93CXFbToIr0ltjL9vaWI2Fqdk3z16V1mFISG9jFfz/0R1k6DW5EL7sFOyY1ZoaSzhnycEzNSF5UUGgFf3NwOJ8rd/9ZfMtVS843Yky/slDZpwiSplrAHWA= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by CO6PR10MB5538.namprd10.prod.outlook.com (2603:10b6:303:135::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6002.9; Tue, 17 Jan 2023 02:34: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.6002.012; Tue, 17 Jan 2023 02:34:57 +0000 From: Liam Howlett To: "linux-mm@kvack.org" , "linux-kernel@vger.kernel.org" , Andrew Morton , "maple-tree@lists.infradead.org" CC: Liam Howlett , Liam Howlett Subject: [PATCH v3 36/48] mm: Add vma iterator to vma_adjust() arguments Thread-Topic: [PATCH v3 36/48] mm: Add vma iterator to vma_adjust() arguments Thread-Index: AQHZKhw0VNTf0xRMOk2uOO/fsdAqCw== Date: Tue, 17 Jan 2023 02:34:21 +0000 Message-ID: <20230117023335.1690727-37-Liam.Howlett@oracle.com> References: <20230117023335.1690727-1-Liam.Howlett@oracle.com> In-Reply-To: <20230117023335.1690727-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_|CO6PR10MB5538:EE_ x-ms-office365-filtering-correlation-id: 732c5e0b-a938-4446-646d-08daf8336cbe x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: zijx/42k8MpgfZNrmVPJHnieHTYa2dS/6PdCYqeKIR2LwUsrJhQl1a2SHIk0JQ7HD2mf5wydsKXM8wTHW3JptbsxU14004K72Za83Zs3nI11RgpFfb8znFWqGqbDJYdnmwD8iJeMa/Ws/zHulZxjlCfPC6RI6IDV8tboNzGqb1VqekByeKtTbGd/1HDf67HbMt4Tr8G8IUvKvULYqzQ06uarnWvTcULPh0LfS9IMYZ+zdDDLVrylOSi9n1srVeULRSjvmnj8wmggZgpTPivmKYdwgpju/AtogCueLdDFIXYXWvXqiI0+P/TmQdmeSj7MVSeBC1UuqJo+q61f0o4LUvESEHRcAkCunmNXZ3wzl4e/QoB1iocnC004IjW/1W3VsEaPOQimEQipeMlxWA02NuvM24bSzfQ1ALyoPHKzJ53XHtLeovE9IIw5sVzjRCCQm6dKEfr79CEjipukscj6Z53COir+S0/MD9CLn9deC77/XuoRE+TXFkxc6chDZ/0HbKmBBx/fuTA7ox/nPF5HMydUZatsCc3c1NO0VRkWDVpmPCO88SQXJSazDhwDifQTh8YYxm7XzU0NY04AEKGy0LCw46dXnrAf5V4hs21CmMxwhisSxXrYIwWg6gIScyD0pH3rm+IMxbGx5k8Uy/V5B4UBdLi+ZDabBBfQfAh6RfWwjcdp11jKcde77BGsFbYEfWVwxJRr/57aRbRd8FELog== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SN6PR10MB3022.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230022)(366004)(346002)(396003)(136003)(376002)(39860400002)(451199015)(36756003)(91956017)(86362001)(8676002)(6512007)(64756008)(4326008)(186003)(76116006)(66946007)(66556008)(41300700001)(2616005)(66446008)(26005)(66476007)(316002)(71200400001)(478600001)(6666004)(38070700005)(6506007)(54906003)(110136005)(107886003)(6486002)(44832011)(122000001)(38100700002)(2906002)(5660300002)(83380400001)(8936002)(1076003);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?q?/lnxc4t5yBFAKS2zD/sf7AS?= =?iso-8859-1?q?snfgM0xzV/xRlyftkyeIMumts9SHbyMfgLVHFO16MJmxZhh9u489N/2UZQgH?= =?iso-8859-1?q?6AGss0AF6DdrVmhn/L5WWn43iGgq4yGcTq7e03/X6Ciz3iZz1m5kmtEwtcrT?= =?iso-8859-1?q?f9NxwDfokZIaL1K54dGvqLEktZJZZ+DpKn8Fd/8Nfen8QKI5Y5vKJtTLFiwD?= =?iso-8859-1?q?4PEBXW2BfXPXWS/so4iS2gm8cC0DfIc2PxvX7obrA7HihlL6a3sMxjQ98T5k?= =?iso-8859-1?q?Dt/d9OWjMB7gvjnNTE+fVlYU8hXxO0HWjwWkOqC4zqJNWJ3PM6G8gyFYtxEE?= =?iso-8859-1?q?TL6rfT8q00WLGev5n9ypHW+V6oyv3IiiJzk7uZPN+S0zP4GRTbM/pCestp/y?= =?iso-8859-1?q?/CaFD29O49u4o7fMpgHJkNj3au8VJc1h2H2PzMa5qVlfNYyi6tO2MMagekdm?= =?iso-8859-1?q?FvGOYi02W8+7a1ADr31aEamDFE3y1/FmH8l2VE9c9yiu69wVAFC36cCcD8iC?= =?iso-8859-1?q?j20tPwo/CZlHqEnVAUv4sqma2A9w9PoOKcFW1B23GIqpGJpy3t8fDNSVllIs?= =?iso-8859-1?q?ZyKCCVkOCwceasypJ5pECHX/e2akNBdFOWXxZkqIqhsPUbqrZzuO9d0jEPgI?= =?iso-8859-1?q?atdwPOILtslC50lRFPT7U+GhFpwYQLgy3K7xFENxyV7M45+bHgBAjrlSh+0y?= =?iso-8859-1?q?IPhPDRCqdLziAYCdtoZrF+bGQ8KnTlMVCoHCtsNKSIx+mzgXRu/WB32zowt8?= =?iso-8859-1?q?QiTMQA9uwlgdJXUdw0kXa46Sv9FEY0sTZg7nGT9dzdEcW5cGgxIevburnidh?= =?iso-8859-1?q?TGybiOphsStbUqdjJtn4HvrJQTZoaXwbZNS/AY/JcSaye2kiTM1YdObW69f0?= =?iso-8859-1?q?jRm3Ln2xrSniMUyLYXPUeyaSKFFJsyhje0/UWZeCJ6S1m9jn8zF1GTjrxvRN?= =?iso-8859-1?q?WAv34EjlEkupJnq8QI3d0hmmjrSKfBJuQPmN+K/NkGr617AMjlJvvXBvkc9F?= =?iso-8859-1?q?SwdL9IY3wG5YmAIjV8EhIYC/vKtOlIpRBEAXbwINtaZ2tCY5lML9ZA+XPiDc?= =?iso-8859-1?q?7LFqIhdJ0eDUXAZOyo4LGYe9StI7WRDiVFt66KZXE8t1202HBoPLo/szIkuu?= =?iso-8859-1?q?9xa5azP6PjNJ6KCVZH0nt9zomh0UxdXiwGga179kFzpe9rlvjP3iDJOh6ySn?= =?iso-8859-1?q?WSOqiUDifGB324lD7j55wk6JCSFUyIUS/fBQgBQSDtg+GEIqvY5wKhJgQQot?= =?iso-8859-1?q?qRs8mQrNRq8mrT5vjDriHT6DkZkGP6EnMNhvEYsYOmmaBG/AgnI2Em4+sgK+?= =?iso-8859-1?q?xGbA9Yq1htMn+6LyOXNae8hTzmze/QFunfwvXancyK7zjuUWXbf4n2ItkS2P?= =?iso-8859-1?q?63i29YA0W6hQ5xohzFV3KOc78XOsxf3cbsTFJQKRReQIp4e/MS50mmxsRMUe?= =?iso-8859-1?q?fCezHK8GoZCctw1zRLz/nvfNu/emL3Lp/MGXd2bRmI6Bi8/n/scLDy3yVTjF?= =?iso-8859-1?q?8yNH82tuvN/Tjzz+PWwakeWSx0JAh/BMlKAPOD4W8NJSv37dXidixl7EGY85?= =?iso-8859-1?q?2lF0FNmHNC4exwDLAeXc0mUS5z0v2tNcA24HzZ6/2tEZnjC79Z3EGBKF5fW5?= =?iso-8859-1?q?a3JccQFelKWQrUdwUNkOz0m8oxYZ8BdGo4JFZlg=3D=3D?= MIME-Version: 1.0 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: aYE3J1cVFrU54+P9cEWQb8OyljE1yTwKMzXE2lWRvFmo+2W+kHkLzTuizIKHImE30k3fUlqc2SwsDLhfaACyF10vs8yXgtEzM43bEvbOpVHvfznU68XGTuQPE5Hc9+MJAPUZ7tDQJ3rFs8V999rUVlX+OaCF/D0zPv+rx5UJjJnSEI5cHIkUCsT01HVSmaZA+Iki/A0TjZK4kjQ3qb/c6bPo65twW0C2dIVFnvRECUZR04pyhS8/wRCB1Zj4lWxWXeXYYRTuKYZI6C1l60gKRpHlV5m5OZP4CRSNCKbSx1Qv0UKwgMkz3QlMZ6xP1nCfs55eFLCi76jr2dSxDKW00s8/OawcH6c9KkvB2jzQPCB0zzMsCKBGBGnehtw9pr/Qy8F+YgitFYJUnte4b+oqUlnbAinJ8tW+bKTm+un/3BVEUOPl1vU4xeaCF2wvcKFfaccEQq6fBHO7fif/e83zOziDVYfXE7DNyKICriLU4bBnuxIbNd+rYDTaVV6e2HMN88IFEAYAD9dqtyJDayN7eaR8liUjJiGWQU/Kbokke1hIkjw60gAmIsyAgwI45nh0vVHs4Fk7b/MWNHcJOEK2hAiskgpMZ6jMO+eMvpmyvLiLfIDIe4uJdZw2G9FyqAZCPW+2RIRF835jthDznBDvSvsrxo0z89mzXz3RTMfuxtU5BxlaXmcnpdGSI8bAQtSILtfg51eQZvT07J6c0KGjdz/DCfm03brRii7HjLwaGGqHP+hoZQccFuQeyV49pX14HFNPEUU11gIW+k8Dri6GNzeE0XCgNnasA++E2DcSs72qpRB1Kofr4xTymBqwkYVRdf+CVHzM3aq7lAi6K0vIx06E+23s6eggc+VQTTorm9rYVmNrhnMKpQk4VaL6e7KTCGCxSpQyDmH/VcQG4Vjsrg== 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: 732c5e0b-a938-4446-646d-08daf8336cbe X-MS-Exchange-CrossTenant-originalarrivaltime: 17 Jan 2023 02:34:21.2808 (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: bRB6uezP7b57Ae9eqg6bNcSBTi0+n0p5g28MmioDTD8u+AEDKYeDD0g4Wsq67ieP7uaOsV6KHxrUtXuU0UoWpA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CO6PR10MB5538 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.219,Aquarius:18.0.923,Hydra:6.0.562,FMLib:17.11.122.1 definitions=2023-01-16_18,2023-01-13_02,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 adultscore=0 malwarescore=0 phishscore=0 suspectscore=0 spamscore=0 bulkscore=0 mlxlogscore=999 mlxscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2212070000 definitions=main-2301170017 X-Proofpoint-GUID: iyFKIIPW9GIUOcbr5LtteDLKgNUCArNd X-Proofpoint-ORIG-GUID: iyFKIIPW9GIUOcbr5LtteDLKgNUCArNd 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?1755235715767420476?= X-GMAIL-MSGID: =?utf-8?q?1755235715767420476?= 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 a8908280671f..cc53f638187b 100644 --- a/mm/mmap.c +++ b/mm/mmap.c @@ -2209,12 +2209,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 Tue Jan 17 02:34:21 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: 44463 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:eb09:0:0:0:0:0 with SMTP id s9csp1525022wrn; Mon, 16 Jan 2023 18:55:20 -0800 (PST) X-Google-Smtp-Source: AMrXdXsHgGnCVB57bp0yU5+cqnJ/iI7KIjV4imXmta1Kpjmd0IZ2SePXLIkRegk2VsGWBB2b/rIX X-Received: by 2002:a05:6402:524f:b0:49d:6503:9743 with SMTP id t15-20020a056402524f00b0049d65039743mr2002387edd.9.1673924120061; Mon, 16 Jan 2023 18:55:20 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1673924120; cv=pass; d=google.com; s=arc-20160816; b=0QAGVB4F2i4gOH9V7wuXF7pEfbQeGlY8ad52s4mSiGoCjsqMc/1j/z5THL/IGzwCdC ZkGr15u78YMJMGUplKift2hdqa1IEoWt7Z40bXdlCHZ5jfNEqWt+OxAtvMWNTitO8qYw EkHnJ/nb8l2W6pizxIw7FuS/KoXcUNaFt/nypLSI1AYiEWsy8WlauYDuPBAjIXJ493IW XZNG2OgiSt5XfXPdT9ifCBvC6xuvxvwULesKA+bpKRPszW/e8Van+bpB5QBBhxt2XEqJ 1dYea6ZKXHK9+umsJI0lei9esBmqhcjfLJ6u2HBKa27EazmUpDuHwVp0w+dvcEgcbO1w Czbg== 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=JE6JJsioIejGfUq6QEH/2FIiMabN2ardWqOGSX5DBiU=; b=Arap2NQF/nkV58ByKEULqOo6UpojfJaEoGwzMrvPvCFl268eoNDfZICC5cQl/bQYij qMx9wtIznOU2iUlvEPvyUriKl1LqsSWBTqDzgUmYq5MRCschoO8UAZUz+Cxp4YDh9/Ok mEhuYKppgY7wSU+MdNuf8dZBANqlnQ9wSpt3Vn6rho6nldWIhanbQBF7iqL1py9DE58B moa4oeNMKOQ37GDtzVwgl3wwpNuVJi8DeCs8XOjlMe4fgqyBn7foQb1plYAU5r+oIaJY 8qNnkPrK9zJ8l+WO7hhLK+dWhue09pK0Bw/VlMcTnTI9vgIX2Bxx8GTRDZOWpkpdJBbg fOdg== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@oracle.com header.s=corp-2022-7-12 header.b=WOYYo9M+; dkim=pass header.i=@oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=UDfGoLB1; 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 d14-20020aa7c1ce000000b0049793b1fa7csi19308138edp.318.2023.01.16.18.54.55; Mon, 16 Jan 2023 18:55:20 -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=WOYYo9M+; dkim=pass header.i=@oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=UDfGoLB1; 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 S235590AbjAQCk3 (ORCPT + 99 others); Mon, 16 Jan 2023 21:40:29 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:36100 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235651AbjAQCjR (ORCPT ); Mon, 16 Jan 2023 21:39:17 -0500 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 9FDAD303C6 for ; Mon, 16 Jan 2023 18:36:09 -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 30H090kW000925; Tue, 17 Jan 2023 02:35:00 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=JE6JJsioIejGfUq6QEH/2FIiMabN2ardWqOGSX5DBiU=; b=WOYYo9M+QI/fsIThVDX0L9I94Wurf1smRc8rBRQwfoU391JNGux/YweA9S4swVVWd2Af dwYXHTRcr5BOdXd1GBOsHDWaNIJbz+nFBV/2VTN1ey3eN1N60s+aglvoxhvqGyQZI+Sr 3Tudp0/Hfb1NfFmzmoTF22zNz3Q0z3sMKU79EUso6oiz6V8fRtkUAGyOycnxDZJGfhVZ QoTd8V1CR/f0jRDVFV2iXZ/ybm2Jr2KeZH4cjgRs0HN/xmk+pkYjYj/cwU1g0KJSW1Hf yzEYygkzl/6fdnRL4B73NH/KykUGv+NnpDT7YeOHJsq50Mb2IiCX+hXlgTwCUeJr5V+m zQ== Received: from iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta02.appoci.oracle.com [147.154.18.20]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3n3medbqc4-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 17 Jan 2023 02:35:00 +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 30GNCpCV004918; Tue, 17 Jan 2023 02:35:00 GMT Received: from nam12-mw2-obe.outbound.protection.outlook.com (mail-mw2nam12lp2041.outbound.protection.outlook.com [104.47.66.41]) by iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 3n4qyy10ss-8 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 17 Jan 2023 02:34:59 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=L/kEzS+PdlZlldDJuBQEgWOuXevcgcrWBWVxjQ3yKAwB5c9xziTkckVNE1O4Nm34HIf6kYs3Gw0dTEOElxp3V2EaDOynCf5vCi6nRYN/8lfVI2kIUZd0abkmA4a3CNzfXIa1rmRjXs4HAt3fhXSCX0gcH0bOtv830yaShUNvInKlZzLJcWlXrgqBuXnXkqbH/EDoHjCeBlr9RZVfYeILqyDHHsN7IIIheRVwE5Gw10VGXZYHq43UbsG22jStshRvftgMdz83ygHsWeIzCyXhc9+GJZkzjj9OJ5LwS3pzfu3VFi5Eol2yTXej6O8YYMDntSLt833kFYcDE0uXvY1QnQ== 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=JE6JJsioIejGfUq6QEH/2FIiMabN2ardWqOGSX5DBiU=; b=isrcAIVGpMqJCz1SKmudD8R7f9Jp/L7zl8mnq4t0qAdO+ErTpA93U+UnjuZloA6A3JZWD7FBFGNqZ2oEZDhzYU7fuUIj3ABjXKeUQZ0m1rinpCnOQ2oHS9pRae/ahZWQzH89qJ58jKcoIhDl93xBZieZ386FLGMm9okLPo0Pg9jCK+XiEKUQ85LiM70m4noiAQYLthaEkmcy6q968zMktRlWK1O441uo2d3xs3lBujWUGZVX1ifd736D8bSdIkmScofnyJKRaS7qWjW15tmGzFxU45osF2tHPpFyxTawSIJiy3ZsULspztlpUj90sb/SPOAc085MQ0nnWxWDYUOwvQ== 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=JE6JJsioIejGfUq6QEH/2FIiMabN2ardWqOGSX5DBiU=; b=UDfGoLB1D7L6U43pIxLtbK9Zt5SzXYVfhFL8p8Kcn6OWKqdgkwoEcosDEi8MiDOd6ajI2vJ8k99bv/5viAzVVfQwzdDjfXOYnNMWiYIXpH1LBQxmK5SF0GZjyS1WAsyfz3rW+9+WRviCvNC3r012Jl6k+V0Ip0JYtGWeXuGXSIs= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by CO6PR10MB5538.namprd10.prod.outlook.com (2603:10b6:303:135::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6002.9; Tue, 17 Jan 2023 02:34: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.6002.012; Tue, 17 Jan 2023 02:34:58 +0000 From: Liam Howlett To: "linux-mm@kvack.org" , "linux-kernel@vger.kernel.org" , Andrew Morton , "maple-tree@lists.infradead.org" CC: Liam Howlett , Li Zetao , Liam Howlett Subject: [PATCH v3 37/48] mmap: Clean up mmap_region() unrolling Thread-Topic: [PATCH v3 37/48] mmap: Clean up mmap_region() unrolling Thread-Index: AQHZKhw0q455l2QlfUe6spyRGlMLCQ== Date: Tue, 17 Jan 2023 02:34:21 +0000 Message-ID: <20230117023335.1690727-38-Liam.Howlett@oracle.com> References: <20230117023335.1690727-1-Liam.Howlett@oracle.com> In-Reply-To: <20230117023335.1690727-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_|CO6PR10MB5538:EE_ x-ms-office365-filtering-correlation-id: 8f17b27a-8181-4d84-8773-08daf8336d03 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: LutSPertEmldCmxJr2/Kx6zpyBff6LdG6Oje38f3R8bWTq1sQjONJzWOwQWm+mPXPBJM+VuOXMwSFOA9Tdsqt82j1/dp8KRUIcXaCY89T3ip3+ddBB6qTQohbvpeQ4AzteIxpjh2TXnPTpqFJs7bMvSPY1027hsHwiClofkQlQCB17W/SKH13F76lXrGTb0SA5Yi8ey7l3SDUxspjguC0qwAnRTil/2Zil+DnhkzOI+P9L3u3gFLzJSE6F2ghpW9MnxAsoVH8/hpxU0wF+MSHvKYNGqfcrxuGurLvYRuyNZulyr1yCBlxPyxS519XW7f2VpHomqaPGaS9045hZhryx/zFGiLIA1yZHuHdD5/l6xZiONg2SlcZpuGirA5CRPajVDNoWuCXAqpFNdWZFApizWFAWfdB45HaIx6CJX6VzMozhso34rZh4nbAmtf1nbbMDWr5HSjRhU/a864vbxrIzhaGYRzDHB+KRHyc1nqJrV7YZjrY4idT1fQKsiKjE1g5YXj9Ig3ZEStgzHy5JqDOVlxqqWdOONGtXZ3rMU3ilxIPJRJiugr08YR5FmRrbR+GUyo/GicBFWIr2MjgbQPdOrFJtSgZvRFwieFuCBfusV5OiiPSgB2Ue6WtjPKJP/h7EOpWg3COvw/1pBaR8qTKBNuffwC+tmSwTNU4qs/S8tUH4kq979dtnwneG14nSH6Sr5d31wKgSJ1UMY2GoCEKA== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SN6PR10MB3022.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230022)(366004)(346002)(396003)(136003)(376002)(39860400002)(451199015)(36756003)(91956017)(86362001)(8676002)(6512007)(64756008)(4326008)(186003)(76116006)(66946007)(66556008)(41300700001)(2616005)(66446008)(26005)(66476007)(316002)(71200400001)(478600001)(6666004)(38070700005)(6506007)(54906003)(110136005)(107886003)(6486002)(44832011)(122000001)(38100700002)(2906002)(5660300002)(83380400001)(8936002)(1076003);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?q?XT4M8h7iOQ9Yjyga3hG3Dsx?= =?iso-8859-1?q?vYjjKpQt5A53CQpktH+WYly2z8mb4B/HnnrgvA3bmOybv1DYdfn1G+UtqLKC?= =?iso-8859-1?q?rnVvpHRKkipRFExXXOU/8SF8i24XOpt9JEKqOXjWYz63A4Yk8vk661EFRSVs?= =?iso-8859-1?q?GwLCVhBOv8kTw+uOaej25j+0Hy3m2ISHRVoYueDGJyTzgVmJlEQePbn/lZD0?= =?iso-8859-1?q?gYIEFKqkFXnxxZHoeh1Qqc36w6SB7eavsnEGEQnrtZR3lFiCMido3gBhuPJy?= =?iso-8859-1?q?nbP0XE738HrqxG4XZVJCB+B7U0V9glDMFsrKl3dm6XqrR373W65InjKYEEBr?= =?iso-8859-1?q?rqYZZ+shXTteEGlX2RP0dRpYH8Uzk1DP52k6HkB/aWGlNC3m8ZPdYWgAfF/2?= =?iso-8859-1?q?40cTZUnpoobDKvqi3ztdKOdQX5HVMyAdBb/YGySKUDm/F0sW3wYszC3G+9Om?= =?iso-8859-1?q?eD20UO4iXk6QLe6qQ98y2ECV5oxJiwxcWZiV9ikVayy2BvmZ8LtX1kPPQjrM?= =?iso-8859-1?q?9ehqNpxc+iaCRUSwruJuNi3970wRgOHsIGB1F6L4JmSg6ibseTMGlBmSZTKF?= =?iso-8859-1?q?fV+knYj3Hvdfft4tbB2klZEgvGsyMrs4gU3qATQ9Y4KqA79CnCMD8rwfQgJM?= =?iso-8859-1?q?UaLt1SJjJli9MraGLczKca/ome3BJDEQUayhmOl1SB3CwMhDvRJv6SygEVUU?= =?iso-8859-1?q?eGEJ0bkakd8NUp3VYDZ75Oz+omE9qfMIzOgNhdvcfccKZMN25iHUwt+EdtWd?= =?iso-8859-1?q?vGavnrhi7NuGZ4ukHUp6u+163XNfoUzQTUgUff0n1vAVnbC8R6hgo+8z0ZeI?= =?iso-8859-1?q?M17jpIJlzzIK6Z/OK2V5aWyT3hamI14xxOtzENTXL2krSWtTjg+2a+7g0hlv?= =?iso-8859-1?q?+ioqqTkMBSf0GwAViRCBXHr/5sAB/2yU/+Jqak2g+GAW7M2vHcmsmNB6Vo+9?= =?iso-8859-1?q?0j1TZQBuYnDsivlAzFpCxYV4Kit7CsCzTJ3oCq+laE5BujfvyDKSHU6tEpZ/?= =?iso-8859-1?q?0SMCVwk/J1Ts48TpEtk2H+LRM19vJCLzvfELcOx1ul6NEIQ/F+hvDUlmd7bw?= =?iso-8859-1?q?kba6AAZ+Z3qZPyAOlb4pRPUHf9IYCjyLsFJ9mvNPDmv/UWvIwcX8DHCSlXV8?= =?iso-8859-1?q?bruphuGqBxa8ZalSEx0zZUF1kNs71MhHzG44EJAW7jdVwhsOnuM7pCpr+99a?= =?iso-8859-1?q?d4BF5gRXLUXBOWO72TQjeFOp9ggrO+1dK8xgNyOiJG5UaE9aiGpILIgpVGUP?= =?iso-8859-1?q?arF0JJDjiHfcElc3rACDex4UWHF9fxUF66+/PBXV+dqUa+0FNKOyI8j6fQ4B?= =?iso-8859-1?q?caJKzc8c4SFpeHbF8bYiL+JU8qpO9BS1qx5tPi4x4hwStSR5dV5dPXwkniIO?= =?iso-8859-1?q?Uo1jfqMcn9zFsn2wOTyhfny5vGHglYm1UyqZffgiX75pAyZM5nOcz4Ri0EYC?= =?iso-8859-1?q?GgjQ+23h56zqomHZZQK+pYDgPzBgkaFpk4QUksFcqyQEuF/CCfFrh8/sFzAk?= =?iso-8859-1?q?W55/9xityEemJWYptwvc9hYmz2jA2IG37UDupRDmY312Me0XysVpZyDQt9dU?= =?iso-8859-1?q?vCbWXA8Iqh/U8U/fDggpqgvwBqnSTX9Q7QXEIPJlYFmMpNGz8dujc+PEJwkQ?= =?iso-8859-1?q?XiMIL55vbB9Gxolr8HTup6HCXVPHN8sOzbGbgdg=3D=3D?= MIME-Version: 1.0 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: QXbsOMK+rT0iaU25xvFwiRI50JLvEiggdBRH7IZQXGusxNQOFHizaWrxOOBppSTGVFVaJWkawAW+KsSG4ys2r06Zmdts5fS3aC9e/qyk8+XaW6GzAlWvqwELv3tg/7uoIZmdgnwHJsb2HIr1VWKFx1w07V0/TQi+snyjjz0fC9TCjKi5N1kjx5MMOdtF9OjPMSUTKJyhqNKtMyenkQuo0aqnCUFSYZ7s7GQGUcwzNTAbk95hycdta0QBs/vw964Bid57Yfe5fHgMGrHuXCYoXj1FD7dASWFKa73ScJqv6yj15oejFtugvAhMvNj4zeqTKM+FxHdqoHSr4vCj+WMUvEe/c1N5LhlYgDFjC4VWKPwqjKT2WgIHD598Sdf66+LEwWdgnWk1nC+fNbwzaVmKksJB29bSt3g6NtJAaSndc/5/xnUbaCm4qFAup9bwciv+ucj6lljzu/jw2RmeT62vuGOlRt+EOP1rtEFX5/GDssT90aDd7GcA1Obs+cW33PsHhFpsR/cYhuStY24BJsM05+77C0/P/JjIrCoOA8T2JMCIEt3DJ+7T5KLq6ulYl5Yak13l6tHnxMtsumteFS61v51EpC+xc8/X28FUZTkEP1+6gaqfHTEUyWGmMCLBkGOdhRA2Ax6bcwnBPiHL/ggA8WaN1hhEXDDjCI0UtB6suOSAt7hVeSMYEhDPnZQVOm+iuq8jXzs6l2/i21eKwXoIYy8DJllY07AERAZ7X96qnd7mQn9CqMAkCpwKTdcKnifjagS7GJJXlV1o9wdrGpuBdKKzblhy4BspiOVgnIk3anBOwC40xTAsKFTChiu4OHmOPINe93rmIG6Otf/WMG3IQspQQbDY2fqsxQB8p0nXUpe0ApCR0v4ajTwo6PCWSTGdsd5c7uwmGtodXcrEQ+wO6IeVv7AiRZcLm8WLWucMqMw= 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: 8f17b27a-8181-4d84-8773-08daf8336d03 X-MS-Exchange-CrossTenant-originalarrivaltime: 17 Jan 2023 02:34:21.5933 (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: n7U1f8uH7sOjQunGKk739sNUFe3b0nQa8dw/YeP9oKAUhvD6iiUx7O3SPq5Oi6Q723SvuUro9yD2yBl6XZx+9A== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CO6PR10MB5538 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.219,Aquarius:18.0.923,Hydra:6.0.562,FMLib:17.11.122.1 definitions=2023-01-16_18,2023-01-13_02,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 adultscore=0 malwarescore=0 phishscore=0 suspectscore=0 spamscore=0 bulkscore=0 mlxlogscore=817 mlxscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2212070000 definitions=main-2301170017 X-Proofpoint-ORIG-GUID: ifZvY2NmfJP81WlNv_RgYcexDVvvLJNF X-Proofpoint-GUID: ifZvY2NmfJP81WlNv_RgYcexDVvvLJNF 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?1755236658072000640?= X-GMAIL-MSGID: =?utf-8?q?1755236658072000640?= 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 cc53f638187b..01988db478e1 100644 --- a/mm/mmap.c +++ b/mm/mmap.c @@ -2600,12 +2600,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. @@ -2642,25 +2641,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); @@ -2719,14 +2706,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 Tue Jan 17 02:34:21 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: 44458 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:eb09:0:0:0:0:0 with SMTP id s9csp1523654wrn; Mon, 16 Jan 2023 18:50:56 -0800 (PST) X-Google-Smtp-Source: AMrXdXtl1AO+SXftQSNhgsJj41Q3dXAHY5SIqCy0X2OyQXph8nKbWevem8P61nGRmoDGG3Ikg+V6 X-Received: by 2002:a17:907:c395:b0:870:34c:97cf with SMTP id tm21-20020a170907c39500b00870034c97cfmr1245127ejc.25.1673923856744; Mon, 16 Jan 2023 18:50:56 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1673923856; cv=pass; d=google.com; s=arc-20160816; b=BKMdb1kqIj4MQIsblama9g7QdrMkIqIJyGlwz2NHSIS2SFt8sM0IElKBQm7HjgCfle AZOSOUuUv4xq94b0uMBx5zl6ib6ZSuUp8qA2FIITVmWIDUdCwN9OhDeHo80MQ+2M6oGz F2mjXhwmbyN4soTz1JbVCRoI2j8PTrsoj3Sz4ZODwYvV1xeH+fHqNElvl98e4JmYehu+ ZZaI0hpH3yw/UN7iGxxap+yHpIVJmfQgwEeqCKIcr64MbFC15WD0dRW9Qu4zvPGcqUga 81ICHSnj2+O4jm+Ofi17n0D8nKV25TNR5bJzsgKk9g7JkmF95lF6Bjr2dD8eS8ZAH5Yd cmkA== 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=pJ/7ZC+ntmfdKF++qbytFnfm14yjKCOCTjz8I9jpD0k=; b=WKND1oS+O60coRwJa4LzAtmMAesx1Z1S2yjvQsA+3OsdGAkk8bi77j8nV/toTSbYqb DK3D3bdO54xcYSOntTylpTRXCvCCzqwiWjzRbI17IKTETW0phiHQ6/3SgPert3ULogTv NA2CM1W3FTGbcvtwLZqneFUP0Em+eUwubiRKkL8SAQyMAU5WTYF9leWs7O22LXBRo5Ur XOoJviYz6On48yAMfAK+mrVEacJdZLeB/Wbxt8a1OrC6ebTIdBS6qDQkdVT4VUW3xBZf lXnjJ4EBKS3bd/YOcNAcoEV9slfSUm+P+GnvNgVvhc6tmvK0xZhUlsWbopzZTSubCM8R 4UNg== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@oracle.com header.s=corp-2022-7-12 header.b=pnatHnwa; dkim=pass header.i=@oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=ZCzTNAIz; 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 k14-20020a170906a38e00b008697a71e4ebsi12213290ejz.853.2023.01.16.18.50.33; Mon, 16 Jan 2023 18:50: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=pnatHnwa; dkim=pass header.i=@oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=ZCzTNAIz; 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 S235601AbjAQCkr (ORCPT + 99 others); Mon, 16 Jan 2023 21:40:47 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:39238 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235589AbjAQCj4 (ORCPT ); Mon, 16 Jan 2023 21:39:56 -0500 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 9478D303F6 for ; Mon, 16 Jan 2023 18:36:13 -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 30H09ZsE005646; Tue, 17 Jan 2023 02:35: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=pJ/7ZC+ntmfdKF++qbytFnfm14yjKCOCTjz8I9jpD0k=; b=pnatHnwak/ocu9rJ8w3MILxfpTH/Io/KHrgzIds0JmnAi12m/O3l7BKqH7Ml3CB15Bhq PGQ2bvb1VatYAJrbqLxnQq5nwCRq0LbHwwMQvOsU1dQWcdGRiAXwvg7c0fqTZnUF4Ifr kW66lDUE0X9Kih09QRv70GQuUChMOAkDeDcA2iF64oJ63MDDitg706ASNsrnu6zmWPBS pHDNwt8kVu4gtIQkezWbt6CZzk7l0THNUqb9+vxNFN94XJreD5otZk0r/zo04yduN6Hh r6k4dd0ZYTesIPg2P4Mk882FhRvT+Bk/i3gT6WBSE3dKyOXUarXwI/pna0Dg4cVc75tp lw== Received: from iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta02.appoci.oracle.com [147.154.18.20]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3n40mdb5ew-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 17 Jan 2023 02:35:06 +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 30GNCpCW004918; Tue, 17 Jan 2023 02:35:00 GMT Received: from nam12-mw2-obe.outbound.protection.outlook.com (mail-mw2nam12lp2041.outbound.protection.outlook.com [104.47.66.41]) by iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 3n4qyy10ss-9 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 17 Jan 2023 02:35:00 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=WrqArGU//fnl/6OH6OPwctsJYNbeYHHi57X2JPp3GoaozKgYtY4q3fVwdH1b/4X6pJPZFBOuWlSN7MwdmfNAvZJ8JT32DibkOtZIOBk9YaeTmG/bOnyBMP+H3sYoH0n8Ns6IMzNXxw3+OYUQsOdVRFC26q7kCCLSbbj2dTosY66btYcbAdX3rqF6LfvOH5G/g91MLB9GmzyLjSvBH7Hiowf6i5xL5vu9G7geRwiBG1xbZEnXdTeafLyWo39xX59hvpQJicG3VhVDLrk95KkcXzD7xCloiIcSdM/I/spsK3XkUQio3FTC9Ggm1aEajrlu5ZzdssYV/GSgiA1lnEvUrw== 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=pJ/7ZC+ntmfdKF++qbytFnfm14yjKCOCTjz8I9jpD0k=; b=bDgageNsmCJtpl69Mc+Qmn00sW8E6phnttop+kE0tGBVZeB2vjLKz7x2XcQgRBQePNRc2dX9jHUAfuh/2qn6tzexg2xseQlFo9177mvna4FcXSK4Z0jGhy2eiCZoY6mx6gV5GKcTLirERMr9Qmdt8mmrSXwVt6pQpi4V15sBYeBX//E30CQ62c2ro98QTkeyxCgmtzlD0ok9OBz09SfJZyQ2KKK2jp37EH8pO15gevo09hMtKJUfo15PMQnoCoKZ+kTeRpaXgLYvySudJiLIN2SHN+ou2toyJMLwxf3A9jtOrGNuxnSpoZt2ncPuSLwi2UJo2vyjpbf59AdQL0wWEA== 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=pJ/7ZC+ntmfdKF++qbytFnfm14yjKCOCTjz8I9jpD0k=; b=ZCzTNAIz1ebl8jiLP1hdEbiCaUwHkRJKcNAMov4JnZTJ7fn9aDHUnjiO0jGkTwB6Jwku1H1zN9EHbaDbQKeTwMre1mv1FlIW85b0k8fALyssPZElXDAlR5JIIiRYrhRYkd+u2b7NCCqOjWN6/JZVhLFdaC2tnH/2R5y0C0AJs4A= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by CO6PR10MB5538.namprd10.prod.outlook.com (2603:10b6:303:135::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6002.9; Tue, 17 Jan 2023 02:34: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.6002.012; Tue, 17 Jan 2023 02:34:58 +0000 From: Liam Howlett To: "linux-mm@kvack.org" , "linux-kernel@vger.kernel.org" , Andrew Morton , "maple-tree@lists.infradead.org" CC: Liam Howlett , Liam Howlett Subject: [PATCH v3 38/48] mm: Change munmap splitting order and move_vma() Thread-Topic: [PATCH v3 38/48] mm: Change munmap splitting order and move_vma() Thread-Index: AQHZKhw010/t6IOVzkK9qaSgGgYYIQ== Date: Tue, 17 Jan 2023 02:34:21 +0000 Message-ID: <20230117023335.1690727-39-Liam.Howlett@oracle.com> References: <20230117023335.1690727-1-Liam.Howlett@oracle.com> In-Reply-To: <20230117023335.1690727-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_|CO6PR10MB5538:EE_ x-ms-office365-filtering-correlation-id: f70e9818-ceec-4ec4-33ad-08daf8336d52 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: pi+42udgjwGAWVGKCESdDqvCZj4R0zxZJzu3nvhE+iCEsN4V0vohB+UAJqAk1WwyaCxPUmUEprGId6AE8uxkUIVCf0zBAOUnZKUMAtemZDHZ9U5BRG8Hok4EsXKKQDE0THHy68yFzTvRxsz7/5FoAQJHWLVnXDJo609HkPbFYX0aIUBlQaUDJitKrbT9q9g8QczfbTzI7DEBFLQMvAVqavRN1GXzGh3xpuGRPa+I/9CMH/k3WCxTwLXbP434WO+LoqNowrod5JTrbsfUvGwotLlmB/W4Ion6/9rYem2PA2MW/X8r4VW+7LWFpfzTHVW6a4tI0Yhz/dn0f4IT+COAmVPOfCBAgZq+zeEVAQE23X5A8mdG7vng2HNhxxaVzWRU9pcQiQZOpTKLcFtyijQBfdneorbr2wBtMix7bW6+J5ATEuixLEnCJnZibdRMl7jNuLIQc7ZxfvSx5KWNx8ktbcqwxgAxRFHr4jXRdkIQKT662aHXKltE/T7BCNTzJ2UfiWTvb0ISwPhiERITys3RO8hIl0fNYVwpgj621NTPVzF1WehMqzLR+eMkJ7AmS57XaDDV0Zn61hb0NeTxChp6udkU40/L072MjWAUKpzuGBMCX7pepam9ci1nDbbWkxWxl5zPu/x7t7iLQMxkUb1i5gsImZuXRHDq2wyJp5r5Q6jvnudgLjDEC4oX9ToLJLQY4XgY6d+RchIKT+4pXhaLWw== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SN6PR10MB3022.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230022)(366004)(346002)(396003)(136003)(376002)(39860400002)(451199015)(36756003)(91956017)(86362001)(8676002)(6512007)(64756008)(4326008)(186003)(76116006)(66946007)(66556008)(41300700001)(2616005)(66446008)(26005)(66476007)(316002)(71200400001)(478600001)(6666004)(38070700005)(6506007)(54906003)(110136005)(107886003)(6486002)(44832011)(122000001)(38100700002)(2906002)(5660300002)(83380400001)(8936002)(1076003);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?q?Vd1gBlzoFWI+Z44eQeT4qqG?= =?iso-8859-1?q?JN7x5Il3A60HRCH01bjK2sdzGcCmYFsuZpwGYvfRGlgRUE/jD6+xMgDazrFJ?= =?iso-8859-1?q?VquO67bDFR1T5acVUtV/DB9NxpGEPWJ+6TlJfAGp4xHT9nMehW2GbLb39SkL?= =?iso-8859-1?q?/s9L6iq5gdklbTSLu8caTUfnJMdfno1ECk55qvTZyA74qKrGEvpidC8Bwwqr?= =?iso-8859-1?q?c3CDXw1AUzuJcsj6k8p/8zlHjucIHGxtLwcNSYxht4xnjw3awjf/Uuz1f1cQ?= =?iso-8859-1?q?HktGLZIA4qMd0kP276QFMSaEGsq3ap35vrpDl68+L9fFd9PkfVAz5dV6vDs7?= =?iso-8859-1?q?ijq9Z54kn2pPtyfRP3CssId0vx9lJIR0Mkx7oogCvKGfbpCO9KUo86+4tiXN?= =?iso-8859-1?q?wWjpoBUCdjUpSccepBTUdCPHsfayKthomoN4tGyzR9aNwNlbw8n2M9QI7IdA?= =?iso-8859-1?q?FhX4KWp5uVEjlqUwEmgdNKTi+WePB9TMZkmH+xUY6WVWeM9IdiDpEB605yXB?= =?iso-8859-1?q?iCf7BtOT4YFNyeX2uCiXEo9MHkNR1Kt5bUhhg84NhnX9D22cru6oa4355uF6?= =?iso-8859-1?q?8vpvGfAbVSDP1rwRtwMrZuBBjFP2Iew2n/dx9o+cI/Vtb1TvFlAz9cPiF47A?= =?iso-8859-1?q?0p2DF/IVkbHP/ccgFUkvpcLglWRBhZgTEw6Xws2uiPOnOL4S7J3WaZ5KJEnD?= =?iso-8859-1?q?lfPr2POQDP24Z6s6DxokW3q5yduF6/6CH7gOeB1Py9YSGk2qmdsRIDzCcq3J?= =?iso-8859-1?q?eN7193LK22rKevPWTA4PUm069mMP6Rw2IfaT1QLeg+11pzKZSLijyXVyVMKz?= =?iso-8859-1?q?RDIdk3LobqbE2kpx3s5y8qbzpB1vUHrdshYZ1yEQP3OA5dj9EypuH2Eu0mkC?= =?iso-8859-1?q?tHqydDcTw3rZyabA9fV3TrmqIT1mXfTU73kxmusmWvH2bJCSjalppoz+gFxc?= =?iso-8859-1?q?l1nAvzLHPa21nYrXbc2chvaRMWWlldaRmTmRGmnDQU9HW6peWfsDzuYHQpsG?= =?iso-8859-1?q?wE4Qje8bLI6fU/zKYhLUY5pYSWA0+I8IvTZe90JrzsXMEy9DMz+JMsEJ8Bau?= =?iso-8859-1?q?Gi0OIIiOePeKsgq9XWmPqizIuc8+gvNvr7HukKKVZryBDk9lUFl9gvOZA+Pk?= =?iso-8859-1?q?3bViRQfDVMBY9p3zTLyIbSnMitvdZppjwTt8ABThIhxGzwz/yhvJfSxwyNly?= =?iso-8859-1?q?JxZ91EEc86VX+lRLyL0J1FJ6Xz84yrh4RyS//JBXV3zoMqRCTgU0F64KvfbI?= =?iso-8859-1?q?iXNnzoc2ixD3zm5sUgmbZXorTp3vj4zJu1hWONwNiVWzl5kGK5cIsw9mVuRz?= =?iso-8859-1?q?Qoyi/wgC0hrAmTba3pMrg7IWuPpyikhdK00z1pI9qwU9am8SWAXbgw3uJ0YD?= =?iso-8859-1?q?M0Al0HOWoq58MURnxQchBfeqTWQJJ36WJ/oCkqx0e0ho/FXel799i3umTMQc?= =?iso-8859-1?q?aq5cOz96ktBh/t6leDDe8wP5ycongD4L9zBWscufY5YEkDy0z8OfAyfbPLTQ?= =?iso-8859-1?q?VKfpIWFNd1X21FCLjcy9kmJfXEPAQc1lzUHadr6n39/l7GBJ7HrCRjKFEXn7?= =?iso-8859-1?q?4TG6kZ8grDFYmXzaLUF9lJOYxIC1U3BxRf18Zt3pFcPhnQyCOHPAdsSjRc1f?= =?iso-8859-1?q?OcGYjJT/ivXxZTbZ7QxcEautg3UcsauhNrupCyQ=3D=3D?= MIME-Version: 1.0 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: 4ANJ+TXjsGFyIqST4q7wUqTlso5HWcDW+lBslELnGjmygLQAp+FfkHiSmxYAZJgolB7WpCz+++Z+p2PisoC9tZEfp0y1M4lZFBAIg4dudazWiGyA8/rxdzfSRAnRDGZ3UZjotFefWMEdBq/s9bNOQBiTypzhoMXponqL5Jh83GgtM4J2s/5KRQI4dZhoVTB6YPcFNLz6jITLAvDVS5vb5ST4cU7r/IMqGbraALhMl+AKJoMXm9e1T8A4Efzg7tKuAqPM8dSWwV8PT2mIhhM/6YBaqqSonX7x7cuaiKT2ZdVuTXQtpVa1CI2r0r3KNRzKai8XvMYR0TI6bp5EelisvIXdsCDf3vUnv3krtLAQExHgkaos4V3MhB1KEhyU+w5Q4tc2OOHrdQ0pctdHoWrcrzSTrAV3Jqh95sIHhPNW+8Z8iCx6vruKINRTEEH13POUKtgGIVQkSmEY5O0LRQyBOqA9Z/03gXEwh7AP0WxxJVAFfYO4gMctmgFdPEzkK/K9EiETQR2X5NsJszwNgVisI4xDhqY2kKpAPMLdeupxtDX2smqwuBiwLJMc7/u4QUnZpP8wn7E+Ete2J/93WHu9fBVVa/dfY27Dy6V21huAKQCZraoGbnd7hMMSDtJQPuxJTdOiwQsSSEAK9fPOif0mI02k+/FIDTxeYihqUtZ44SiuYNVjjoMsZQMGoehKxqhpjQOBU1nFqWGTf8NCVKXrlrNhGXIsrbBDTUluvcbcTIfe60li1tha0TfsCFNjIfHR8oUsyc4indtboHRlx/Zbmbg36nPccL6N9caYrsoEBKyz6BfNt5XZPpR6mcOw7FEPCqocG6CnZE/AvskOX4kmzsLshnmbQQnZ2H1nqO7GqVNO92EqHjy2mLb6gUz1oZJ2zkwuQP0BysxTEIa4WOrXrA== 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: f70e9818-ceec-4ec4-33ad-08daf8336d52 X-MS-Exchange-CrossTenant-originalarrivaltime: 17 Jan 2023 02:34:21.8589 (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: LXgVqPXP3K2TKSljjUJV1I1hecFqkXi9XblDz2gFlEEFv5Ks3MIETG3xiDq2mCneMGU5NxWi8WkELBBNlCNztw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CO6PR10MB5538 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.219,Aquarius:18.0.923,Hydra:6.0.562,FMLib:17.11.122.1 definitions=2023-01-16_18,2023-01-13_02,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 adultscore=0 malwarescore=0 phishscore=0 suspectscore=0 spamscore=0 bulkscore=0 mlxlogscore=999 mlxscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2212070000 definitions=main-2301170017 X-Proofpoint-ORIG-GUID: 8sBs_7mJaU3KoUu7LHY8UI3VelJ1mHmQ X-Proofpoint-GUID: 8sBs_7mJaU3KoUu7LHY8UI3VelJ1mHmQ 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?1755236382128820535?= X-GMAIL-MSGID: =?utf-8?q?1755236382128820535?= 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 01988db478e1..434020155f8a 100644 --- a/mm/mmap.c +++ b/mm/mmap.c @@ -2328,21 +2328,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) @@ -2355,9 +2343,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 Tue Jan 17 02:34:22 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: 44454 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:eb09:0:0:0:0:0 with SMTP id s9csp1520582wrn; Mon, 16 Jan 2023 18:41:11 -0800 (PST) X-Google-Smtp-Source: AMrXdXvR7uL+ZDjd99FhBC6T8+RUk/6LPO0dfjshSY+tMyDHtHSGm8hHzNir5J7elKEmda6YmJKc X-Received: by 2002:a17:907:98b2:b0:871:5a:3ce4 with SMTP id ju18-20020a17090798b200b00871005a3ce4mr1136914ejc.76.1673923270939; Mon, 16 Jan 2023 18:41:10 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1673923270; cv=pass; d=google.com; s=arc-20160816; b=Cy814lJg5EFP3rCVR3gyN8C0ju4rjh7ge1xZcBCXU1A4g5TFEcqPQOQQdz7dSxIHWF 02m7b3ExoHgQeKdulSD73Yzk3G3Xgj6G85PNOgC0/NkbyzXSCUGNTfgksghXDZxFWiMd ggEwLWid+E4eVL2Op+q2tS8ok50VAGYEcvgTjiKehCDvtUDIYsGJ6YjJKboi20ZKudVY MDMAo6+Qf6pM/qHyRvxqt7nKmlxs9f7L+mZA7vG7kusGnrB4+94hHkrY+OhmEV8vMcRW eHoqF0Kk/GzcdpFoDKIgCbdJcDa8eQylUjAh85nmEvdiCWyzFOoTg6qFGs8lNBHOpJz1 7tQw== 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=eF2d5CpfMy96yG1ZQEneYyf5Hkh1kJRWdzsjf4BmQ7o=; b=XMNtkcPMIHVp6GX0t63AH51rMpK6xtmto7qUrtg9e8Usyl7uOj8RNePV8aQWAnOgVp hHaTB0t1/XZ9LYvQ5VeouETe2gkd8JQrVKGzcaygEfmWrEJXYtsXeHXlEB+LkDXj+69g B+mvEUbdmPQwxtGrWKbxPpJ22YUdQhWdzCS+aJEDW9qW8ExOdQcsiIz84KdWYDfJB4rO OSAf1oh4cBumTZ41pxtsfVuimu+fiaNK9kEdyGREwscVqhRCkRq9Lv4/nrSOAECuO3Ni WE243dqr7tAsZYB8IjZFeuBOyaf46XPd47SneGG/csn7mwp311UZSB6HSbKxD+PLgsrX bV1A== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@oracle.com header.s=corp-2022-7-12 header.b=YHZ080cI; dkim=pass header.i=@oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=SymA4Eg8; 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 b14-20020a056402084e00b00458d1c48708si39415953edz.303.2023.01.16.18.40.47; Mon, 16 Jan 2023 18:41: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=YHZ080cI; dkim=pass header.i=@oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=SymA4Eg8; 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 S235665AbjAQCjb (ORCPT + 99 others); Mon, 16 Jan 2023 21:39:31 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:36784 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235682AbjAQCif (ORCPT ); Mon, 16 Jan 2023 21:38:35 -0500 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 0453A3029A for ; Mon, 16 Jan 2023 18:35:52 -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 30H092hS023146; Tue, 17 Jan 2023 02:35: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=eF2d5CpfMy96yG1ZQEneYyf5Hkh1kJRWdzsjf4BmQ7o=; b=YHZ080cIU6Tdx3TyJIDX2UtWU57Gy5hXoCsFOkUDqsyNMJ4Zf0lx5LXobZqFXxK6RY1h WWTINpkE9/wpbfPxPVwMGnlQ/K8fTfPGfeg0AZki3m8eERutxRIn94m6elQ6bLOLEdDS FS7trQWjL7hLOqQf6yURBi4idwQapGKz07rglgEZVIWX0tXIp2drJafX1lwNvh09TDoH fvcCDJ/u1O8HMR/GhDa6v+Yr/8RDTUeUK/4xZA3QMYBEvUD1KT1wG/JOveTFAgoQN5gJ t/z+E8ajyq4OWgAqMXmyD5Om99b4/iSoYSwNiC5WWI+iNiIA7ms8rslKDySFNQmIXOwN 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 3n3jtukq2s-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 17 Jan 2023 02:35:02 +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 30GMXP40028373; Tue, 17 Jan 2023 02:35:01 GMT Received: from nam12-dm6-obe.outbound.protection.outlook.com (mail-dm6nam12lp2173.outbound.protection.outlook.com [104.47.59.173]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 3n4s2rfy4x-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 17 Jan 2023 02:35:01 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=PFd4fwgVF13cyw65JOB6rqbvsRfCz92bSEEJg2pS2dmDh6PnTXoYwA1skN8zopFNycGlLRcfl54sjZZ8bCxoWcdrt6knMUDB9T1Pz6PpxJA0+o3vGIpNXPsSHwOdMlHv8PDHfalRnAeayeI/Zc074cdPZrNw1A4FTo/vXIfnGWLkmwuZ/c+fDAoKXZdhry8NQ5oEx6BamH5ycX26WwGloswQE+66Ebi69PrD+JtbbRm709wJr7+RUb7FAbN/cyF7Jv6EQzT+J2kMtT07bLcFTbkbw7QFTr9oaRj4zK0mpw5nLm/preOl0hSSTQBTmWVDxlpcorP9S7nGkQ5ijaDusw== 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=eF2d5CpfMy96yG1ZQEneYyf5Hkh1kJRWdzsjf4BmQ7o=; b=OnAl0s6Jyu+vYQpe6CQzzB99iYxeEMEERu2AvXdifbU7Io63UaA/iC9QS0X1klQesSD0P/XtIcUbiflbpSeoL75C0UmmuZsPREbhu086HfD3RdCFEq/jClVOrv19hJ9THdkDQooCY5EOziKEN4dD1O4bH2Z2jrqxc2ZQeUv8+rhfwP4j15pm5S+8LJSNFxRVBjqUH+ZK9FRxAXie7jPUHsw6XGy6THUdXjHiX9HFB5lnxsCmJtceDiVixRdTlMj6TQRIP8j4MsfRxHg2d2hKCb2l90Po+4/7xEOIZN07/Fd2ogX/FnVZRZ6HvQzUT3MBWdyzSIUAv6p7OfBdMgnvuw== 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=eF2d5CpfMy96yG1ZQEneYyf5Hkh1kJRWdzsjf4BmQ7o=; b=SymA4Eg8pxKVf5sn5G0g9nSJgX6eaQpEBbVVhDVBfru8tFu8mAYVaHpuTjXZyWQGZCfrtsrFqNErBRPfV+GMRa3j/keSxAwHHfsVQJYJbfpjU2RJcXs9SsablUVYb/tPGBIIka27lkIZIqlWmEaIwJFHcY9vEpg293cNhSsHTMs= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by SJ0PR10MB4814.namprd10.prod.outlook.com (2603:10b6:a03:2d5::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6002.12; Tue, 17 Jan 2023 02:34: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.6002.012; Tue, 17 Jan 2023 02:34:59 +0000 From: Liam Howlett To: "linux-mm@kvack.org" , "linux-kernel@vger.kernel.org" , Andrew Morton , "maple-tree@lists.infradead.org" CC: Liam Howlett , Liam Howlett Subject: [PATCH v3 39/48] mm/mmap: move anon_vma setting in __vma_adjust() Thread-Topic: [PATCH v3 39/48] mm/mmap: move anon_vma setting in __vma_adjust() Thread-Index: AQHZKhw1UVetSQCxhEaEgbid8eLidQ== Date: Tue, 17 Jan 2023 02:34:22 +0000 Message-ID: <20230117023335.1690727-40-Liam.Howlett@oracle.com> References: <20230117023335.1690727-1-Liam.Howlett@oracle.com> In-Reply-To: <20230117023335.1690727-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_|SJ0PR10MB4814:EE_ x-ms-office365-filtering-correlation-id: 85850537-0d3a-402d-dfe9-08daf8336da0 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: cEHNTSN61mYhhjVnTscQ435ijyyTlTMaOYiCJgHZ0zrCcS9ViFrDJgmgL8BZGU/8jkv1xNrO0MYNkuSAJYQ3Yd6DzSsMIfKzA2KhX01HYCUdhvP3I+jJXRCLehk9YldvXQ30VdWdDqQAhw8/GhKph/Z7BoEpW4gdk+U86OlxA8aHi8J5NDi0VVF1S3064aN1VsKRRGzexLjHkR2KTOFxg0bIjHE8TnRjYkf2BK8Ukx5Ec60Fh0YRXlwHyGN+49VaMU4dzeAWYNJ3eeZ3Ric7JJZ5Niq5yH+Y+O3pRACN1TpuOzQ5UuY1Z2wjm0I/TVxnrXeLtrKDdWMjEGhKvB977efDkJlkfOm6qL6mZtCTe/UZenwsP1bBAaLA9+xSN96Ve6hoYXD2PSSxLRgIUiiKrJn3fQWNu1afz6MTTT6rwLcSLyWsMQ2Z/4XUofrm3eJIkWknBcXAoK6uP6Ho9uZ8JuS0edTv/G0v6JF/q/Op6SHduBE5m1has8hfd6P5mGezPKWXcNzQQWoD4DH2VTOZBVMXM8H/BsdD29ssextqgqAMgzzQ9pdSUy+J1+HL5WYCM0OHaM0Mg1J4+YTXfzOlo8PtIdCH5XQou4EI+xsW4FT2hg/y2RagUk/VVBNOhuS41SeblJCXBDDCHdf5EwEX8SDXabByXbWxIWHJB0/uIYic5O1nJgm27zbEdEWekHP+6hLHgu0J9uE4c+ILSyEv+A== 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)(346002)(39860400002)(396003)(376002)(136003)(366004)(451199015)(6486002)(6512007)(478600001)(186003)(26005)(6666004)(107886003)(71200400001)(6506007)(91956017)(66556008)(66946007)(2616005)(76116006)(66476007)(122000001)(110136005)(316002)(64756008)(8676002)(4326008)(54906003)(66446008)(36756003)(83380400001)(8936002)(41300700001)(1076003)(44832011)(2906002)(38070700005)(38100700002)(5660300002)(86362001);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?q?eNE94611SfCPvQjDya4tk7H?= =?iso-8859-1?q?YHXNIE4JpdABhldhSjowQGJHvyScyB6FlkNY4QyFQnZHf5JDN1VuaQOk0jIX?= =?iso-8859-1?q?NIgVgJZUBsZPSNwTade43Uw79sVhimcUbY8kC6eMlMq59Dkymis1BnyaxjXb?= =?iso-8859-1?q?rTElZnkvK9fvOPOXbxXZ5S0qvdMwSNemKT0YufDEhjsrK2BgplibN2xM3jFF?= =?iso-8859-1?q?cjuJdFThIC5pT822ItjKJ9ZaB+lrAFiaY5WykKE/nCS3/E7e21ApqXn7e0Vd?= =?iso-8859-1?q?ABkxYbUlumFCpfY3o/z741t5ojM6N1qCQamGMZIAgLn1rPS7APzniKKQocDs?= =?iso-8859-1?q?nhuniXnAsncD6naa0U2y0L8G2vL2FqWDqDawLBMMGUGta/+VrPLUjDumyM1H?= =?iso-8859-1?q?+Y1QX9oRuHRJzPp//P2kpjcHc+XQRvrdQT3qRBRXukkfEdtlY6ez2sIHvtLa?= =?iso-8859-1?q?l0MkUbWPhgXKtt65LW9LPpBkqfysq5aAuD5wrmgeiHu0sjyG9VOcAXVLNbK7?= =?iso-8859-1?q?Z13psNOPzzkwnG6ct43gI89cVO8YP5HXPxRZrJssCQ1kWe922l2V8ipTXLgE?= =?iso-8859-1?q?1bAh9uNl0AEve8MBbHGDHjSkyxplKSsAsPNHx5DW/b1Cb2FrLEZq9cHkMdZt?= =?iso-8859-1?q?VT9SrxNtJueDrbXnhcU00/6t6y6FxkgP1aC3IWCYIsTEd1SBmUHcOS5KfCEK?= =?iso-8859-1?q?kb3Bivnvbt54zvNpN17x6uj3vvxIUCFKjiewSys0TJQhRi/GjrMQQVQu6flc?= =?iso-8859-1?q?GybtvvgFF0eY4SwN73f0Yutmuu1N/Ud7SRlpGK6Qq0e/Q8vmSq6/GGNSvx/F?= =?iso-8859-1?q?HpLWOSf2oZpwU4SE1SfL7sWkbCVM2VPQCz8Fz9qg+4343inZ7kYqYT0MnoXW?= =?iso-8859-1?q?kfiPrmA9Ju9qyAQkYH0j20lkj5zialiOw1vOiD5pKnK+A5pFW2H295/kbXLY?= =?iso-8859-1?q?dw9fi3c0FQu86a5pL8EON4W4nz+dkt0wn2+QBQU6QfVNEp5xtUPCBBlYoTPR?= =?iso-8859-1?q?HKupMHWaJFitmgmfhwD0SzzuabvGhCNJ82weNB8KKdqLBz1FAde6b/AFdEl4?= =?iso-8859-1?q?O6VoH/orNcfNaIZwQ1d5rzGnxPmcE5vL6p0dmZRA9wkbkPN5lFY61jmEajjj?= =?iso-8859-1?q?AJewcHgxgyPwl3d3Nj4YHBq5GCm08ma5LUYrzM2Cj/bdC/c2UE3ama80YSzW?= =?iso-8859-1?q?VocTG2IafSipSpQ8yg9a60ivLErxCdjyEyZ/GreJ+hTX62hlhx1NSYyzrXWo?= =?iso-8859-1?q?ymI+5u9ciAJ8xHP/MKYwy0fZu/3lGNZ2l9oS1BwEs42dIIcYgKo4ImkDgWxF?= =?iso-8859-1?q?UkRuiNAl6Moj0q0zucfN/vpE40BCsY7yhusR5yJzhibTgd8xboRKpdASH8Fv?= =?iso-8859-1?q?tN5DMTGYl+wwkArLcpcRUpiaffZlB2CbgbJbYrn/0yfzliGWKfdW9lrdrLla?= =?iso-8859-1?q?hXQ1wueKbXNxvGRPtnrOIiMjSLRBAK+ynbuItrjAHS3ndPUhPPnqgrDRBrlo?= =?iso-8859-1?q?qV7rwNZJTI0wMSpmMSkGTj9tIdZ3Dp33ndDxHna6z6eBIk+01qqGK+gqWszm?= =?iso-8859-1?q?UusTdu68g6CaYhdEprb5U7oj1Exyf4RwJKj1lMGlZ0UgMegzsNlfPaXGBQE0?= =?iso-8859-1?q?hMbMMxBwG1mgWshNsXMIgur3CSHTPq2ha/JuNnw=3D=3D?= MIME-Version: 1.0 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: VdpXkpl5v5mHy8uW83Ysj5MVsJclH+P8mFo7cca2Dj8QjzCaAbD8GJdUYN+rWeW8YHv/7buxUv3ebqil3P4ADULown+rHZPmOaR/0qUJJP1JzmgyKWQZlfFk72cEOmTKq8ER6TDCjfa38+d6Z7K7qaV1Xdv5by0htKVNJpRTiE0M6F6myR8j3NNUtIHkt5Ju8ElGs9LNQKbZmCMlRn6onmJKoys7qA9QZBSufET/CBedXiQux2rsPp4lU5d6jmPTNpG7wU0lMNFoTybVH2pctmVVMtfTO13iNCQnOBVYOdwlf7hPZa86hhJcDwKO01suHEyhANQ9Qo8JvDFA61hY6BS7VZ/3AxMg71Fp0f1YEHEOb5XArgVYBrJeQc5Gpsh7lf0t1dPZbBwfCT8GD4RD9Gilwf6D0QYu6DKliUbha5KgSpJOd8+//eRC5wTbhLQIE5kF08Z7JnOptoPGEh/8eWf/cN9nACGc2vIuwCuqos8Wt5b/iMRbOT/fYl+scdHeYxvCDqR8j04TkzpLCwtDxffAeRlZpePyjV+DSOhoAoJBF07rwBO7cJ1vQ8a12RVZ9h1FE830NuUqi0u9R/55muRSghEJn5oX0809F6oWdIMNLVCu9uyLkOYX+rjoGYWUz34ShODfx5usFPT0ftf8N9b/ZVfznlXES7+X+OVkmoEfgCTqA42v/CP5d660WZ6aG1iz2NR6UOGVpSOZidMAd8TySkdZUqSjZ+RTN1mcgSLtJqkib27uYxNGMqvQTfcTlwGvmPCwcOsm4MNfUwki130o1S9c72lO7bd3PJsWHuaTmPkj7RzWTH0TS5u9oqm6+nhZKRyuKMOwJ0QoYxrt5F++dLMX5rD4jUACUWfdpG/dwjAdMEMDYScbWrMem2IzJm76Ext+0Se8lbHxX0vPMA== 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: 85850537-0d3a-402d-dfe9-08daf8336da0 X-MS-Exchange-CrossTenant-originalarrivaltime: 17 Jan 2023 02:34:22.1558 (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: 3wkQ6gzAl9lCcEVVKnkphL1IATAdNvCXEviFNp10Zpb5cncjJk4rXkve3uE9Hpr/J8pCxl0lTSEmdOBoFB22Zg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR10MB4814 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.219,Aquarius:18.0.923,Hydra:6.0.562,FMLib:17.11.122.1 definitions=2023-01-16_18,2023-01-13_02,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxscore=0 adultscore=0 mlxlogscore=999 suspectscore=0 malwarescore=0 bulkscore=0 spamscore=0 phishscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2212070000 definitions=main-2301170017 X-Proofpoint-GUID: M2-LJdTPPydlkPmkcCaiSQyHNluwXEIz X-Proofpoint-ORIG-GUID: M2-LJdTPPydlkPmkcCaiSQyHNluwXEIz 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?1755235767606151386?= X-GMAIL-MSGID: =?utf-8?q?1755235767606151386?= 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 434020155f8a..90638fa48734 100644 --- a/mm/mmap.c +++ b/mm/mmap.c @@ -685,6 +685,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; @@ -706,12 +714,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 Tue Jan 17 02:34:22 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: 44461 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:eb09:0:0:0:0:0 with SMTP id s9csp1524861wrn; Mon, 16 Jan 2023 18:54:48 -0800 (PST) X-Google-Smtp-Source: AMrXdXs9ocYs11z0ynAUaak/uEMQZyB1JHKDXwE2U+iis5TR/zXEfvNHfbOOmJ7heYsq7xqX6i+h X-Received: by 2002:a17:903:41d2:b0:189:361f:89ac with SMTP id u18-20020a17090341d200b00189361f89acmr2664049ple.64.1673924087960; Mon, 16 Jan 2023 18:54:47 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1673924087; cv=pass; d=google.com; s=arc-20160816; b=Ev8su/kjtBMcEy0cuKYTfRHgAfCrgXtCSWs6mHkmtc6AizJOyacBJn9UDA1Qb3mh8p SN+2U8Tr28kVFTUpvoa2xXEJnFHkrLE/7qssGWEjflCo5NEKsNIQsbb+fjGhvABSstII jMxnPJGMkNL9oMlDAbxwq+Vda4Iy/0+Zh+/cSUeJv158OXw4XwG9BgHZckEZreu0Nxym Z5cmr30qlYca/OLa4QXu2Y96C22xNB9/jprz2q7UkdwQAn6iKfZLjjr0CALelZSA39Nr xxtvUYYTxz6i625ZQVFO8EiHST5GjTO2D8HOJTaZhpltx3OfF4eQJTTbng6Ba7hfiwc2 kydw== 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=nKYgxBDUWbuTfPdOcKllo3rtgEDu0zvYwzkAT5I7xWo=; b=K1iD5WloiDG4IhfFofUujMUJa4EXPAzm0DVuaLci496cvCGFJbGLgqnQFdKenfOu/L 1LUkgPzbBg6+KkNVfZ+awe2F7S23hBiNXdMojAC+ehhTGfG03axlOlMFrybFB2GSAWTv 0h/sBENtIa4Lk6Dr5vNF1Ryn0mJItZYnkzbSuzx7DW2DUgp+FgcwUNxezp4/YMBZ6Eyi gRcvo2Ep8XxGdShQD46EBaRHQsSUQPE06fZRvvvn3xLlNwWpuoG3nHIdHcBnrlyTvjxc u+1iPRR806oyxmoLwyUFkjsyOQaYeTOsZDpWM224RQkNId0yaUJ5nfq/Qx9wfO4HDLM2 x3PQ== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@oracle.com header.s=corp-2022-7-12 header.b=dVBlbFsN; dkim=pass header.i=@oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=NKcNlDgH; 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 q17-20020a632a11000000b004ce425ce685si2794878pgq.7.2023.01.16.18.54.35; Mon, 16 Jan 2023 18:54: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=dVBlbFsN; dkim=pass header.i=@oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=NKcNlDgH; 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 S235634AbjAQCkY (ORCPT + 99 others); Mon, 16 Jan 2023 21:40:24 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:35852 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235624AbjAQCjH (ORCPT ); Mon, 16 Jan 2023 21:39:07 -0500 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id F051120052 for ; Mon, 16 Jan 2023 18:36:05 -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 30H09iUX031115; Tue, 17 Jan 2023 02:35: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=nKYgxBDUWbuTfPdOcKllo3rtgEDu0zvYwzkAT5I7xWo=; b=dVBlbFsNrzqZpUO66psPS0ttaKe2PgylRbuRtFkitLfl7e8KtfumKBZM/uj92f9gyolX 7ZHI8yMPLHRfsIGVs756t2MX7PVXP0kBuhURkJYdSMj5i2Rc2Qc0kailGIs+3cqtpALG wqs6JNb1RjD8qgcyjaoxIi6KVkogW+MeIoOepD1NwDuDV+BQccwaVO+xaoz6BI2+imsJ Zr5q5b4e/IDFk4Z1uP3zVhcol1FCt7Ips0McUgkjCGvaS0HigKdgBKcbBcOwE7dE8zTn qkTtOmcJStAPPpsFDZejrGChNR4pGSDj4tM/TsxCYquT+70uhToW9pNRZDFb5XAlD7d+ ew== Received: from iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta03.appoci.oracle.com [130.35.103.27]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3n3mxt3pjh-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 17 Jan 2023 02:35:04 +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 30GMXP41028373; Tue, 17 Jan 2023 02:35:02 GMT Received: from nam12-dm6-obe.outbound.protection.outlook.com (mail-dm6nam12lp2173.outbound.protection.outlook.com [104.47.59.173]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 3n4s2rfy4x-2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 17 Jan 2023 02:35:02 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=K+Ec4dXDYDwsJfubFWakJNVHl6HwS3DOyHFf+Y9ZHES1NJzIXcjUn8Qk352R2tSfhox7QcMKzOplmUeDbZxi/P/2kxNp+tHinJqB3OA908KilU8JFWKPILMdpaPlz++VuZlLtiAEmUST2zMbwsumg+eJpE/uEZlXwUTFG4yztom0hrryuSmwy7+nCR79Ihj23IuAwFg1bhI8KK9W2x69wx73YkdHYNYop3svMaOFq6KuWWM1e61HIrDsOWXBKGYvGHvQzrzVH2a4Q2U8z0dGYDFG7NoZkVr2/nD13H9Be8gLn/hxDdbKVeTxtkqsSgn1O3N++uFfqONRKzzmvnGBig== 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=nKYgxBDUWbuTfPdOcKllo3rtgEDu0zvYwzkAT5I7xWo=; b=bnqQAJPjs9hGyDq6Z3l6YwkojYNmYDeG8QoYC2FKhQoLFckV3XFcNUzBuNI6gWIdK+kvbTHmPbAsy2t+u3FSb0I28tt0evdno3oe5rIAn0kgc51qXbZe4OGF/PXIYGG6e1TAEWhpGlSVKRDFLUsrHP1DdZBViMS5y2ysELJMvAkf4Ub/p0BEQAFY/H7HrvSr4I1jeAFeGNH1U0ktoITopeuSIoLwge62yvjSN4tqg43VRtYaruxFoZmuVp5qgBhMvjBwN17FPKLHMZm030xpt6hTwxSFGdOiZ+E2A+h0di2Woy35rIYJiznuAzQX5h9Af5os/tKXaaoKVx9cX9Rflg== 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=nKYgxBDUWbuTfPdOcKllo3rtgEDu0zvYwzkAT5I7xWo=; b=NKcNlDgHVOrGjkE6WZ/kp+lWrEKZSn8KLh/SnfJb9E3VCQwAU3Yen31f+5rvdOT0TSslvnTWVHgna1TAVc6SWymUqdbavq4ycw6P2aCdAx9NHnSDUQYIvnZZdejuOnETh/GKChi9DBUaPsb6tRDt6YoCR2rGPfLUr45y6EVpJ/g= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by SJ0PR10MB4814.namprd10.prod.outlook.com (2603:10b6:a03:2d5::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6002.12; Tue, 17 Jan 2023 02:35: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.6002.012; Tue, 17 Jan 2023 02:35:00 +0000 From: Liam Howlett To: "linux-mm@kvack.org" , "linux-kernel@vger.kernel.org" , Andrew Morton , "maple-tree@lists.infradead.org" CC: Liam Howlett , Liam Howlett Subject: [PATCH v3 40/48] mm/mmap: Refactor locking out of __vma_adjust() Thread-Topic: [PATCH v3 40/48] mm/mmap: Refactor locking out of __vma_adjust() Thread-Index: AQHZKhw1KXF/6poDekGVArsTbox8bA== Date: Tue, 17 Jan 2023 02:34:22 +0000 Message-ID: <20230117023335.1690727-41-Liam.Howlett@oracle.com> References: <20230117023335.1690727-1-Liam.Howlett@oracle.com> In-Reply-To: <20230117023335.1690727-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_|SJ0PR10MB4814:EE_ x-ms-office365-filtering-correlation-id: 3747c4c1-c849-47f7-c3a2-08daf8336e28 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 4xpX2ex/rGl/Zlp+phsFoumClsE9ppinR+3GYxLcaSU0xrIFAaECyDjCV9G1qpYtL8l1+Yw1LwRzCy5GJ442GN0oAp5Ks39ma5llolLVT7lCOdwisekNqbzwcFprfqmWNafJ58nXxNrtYPEi320k4U/SvySh4HA6fIKO1VY27X+b44HopjRbMR6nnyDHVNVzy/NeT6JfjbzlBBWecerUuTyDbg5eTgwFIMER3NpMUDccJe8bLM+YRDKqUdtiI0//vRkVR5xEOXxSJHYvGBXrO1HkYrCSxvvicUOwN6eTjLKGfNccS+HP0aRJOnDmMauyQs/75b+vGBhHbCtGW1wfQ/IN/Z78Y1928YwfIyzzNkbRi2z7G7yDWrlQJlI45OJfutDlvfayLOFPFktV7LOxzOPoljA7mw2RRzeDBvfCRsinF/eyPr93JdepgO73nf8DbuPp4MO66tNPxckgdq8fFfH3lRVIflFnZfvBaEpaAfmNd0g/xPsW4jZ6VSG1Ecz8jIR+xe7px/X8Mrgna4U1Cy2bQxo31j09N5UM8hoO5XeJIM1ObwRRLAb7riwlnUr6gr6nwWSJ5l8WC0r8B7kXnrgDLAmO/yPTnoxniRkxe1C8nRMAmKn36jSJUpXCD71X1RrA2cYOzCVsFNW99zZJsSjjXq0KlWFQlaYiM6HQmOvDX1v379g14VTH319q0hueO280Tq8UxC8cy5v0Maw2iw== 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)(346002)(39860400002)(396003)(376002)(136003)(366004)(451199015)(6486002)(6512007)(478600001)(186003)(26005)(6666004)(107886003)(71200400001)(6506007)(91956017)(66556008)(66946007)(2616005)(76116006)(66476007)(122000001)(110136005)(316002)(64756008)(8676002)(4326008)(54906003)(66446008)(36756003)(83380400001)(8936002)(41300700001)(1076003)(44832011)(2906002)(38070700005)(38100700002)(5660300002)(86362001);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?q?2HQXNVV49/3mY+FYZf0FPQv?= =?iso-8859-1?q?3IvOWuDF7js5SEhELLfvwOiAdbwdv/fL7Lk/0YBnrkOLT8/a7EzuZowLl6Qi?= =?iso-8859-1?q?AiPp1BukDX90SRwc2HCHw0tzSkujwMKazLr2Yc7bl4osf02TiADGOFYpwg7i?= =?iso-8859-1?q?1DQe6I/YkzvV6iykjdvjv3Kp8X086GpwOCBWAlK0LghBnrKPjvWhvvv/b82F?= =?iso-8859-1?q?spwJqyvY/HJBIA8vQP22uN426pS0+KYsV4N2665vB24fItp0A4UGJKQyBXQW?= =?iso-8859-1?q?kCvB+A8Eo/ek3jDoNq6IlFirlsoGSGOkSId91RKK+uZwIdnHrVGDOQ2x1nKG?= =?iso-8859-1?q?LDT3cNF+GVQUUwyw8xojR/DRn4wKggoA/h1q6G4yKvLy4W96DU9zvmIxzot5?= =?iso-8859-1?q?QmVdPodtnUxI/1QAjohSG5OqrH7Vuk3CV2uxO2kJ7ghTCOgIHv9nZyBSP/ip?= =?iso-8859-1?q?yjpnsmNoxocy87+4kJUM0/TgSI3k0Sgcx+daFLu7Zcm/uu2wgAPuc5pJInLo?= =?iso-8859-1?q?L/xKZ47Euc3cTDpjTbSVQyanfhEz17T/HQJrJgKyCfMw4h6E8xjYoVtAi+h9?= =?iso-8859-1?q?c09KrDSepI0ktq+X1e6hymmpvdTXqbUIr9kVoJ8SoM3gBaCUiIyT4/A3ZCOf?= =?iso-8859-1?q?OF6w63cFR+V+x4rF4J5huzIBw5jhIkvMVXFqgtkciQKCzxqhNp3z8c1xR/gZ?= =?iso-8859-1?q?+aWyZquAI+uZNXVE/yMtwlS+e53Z0PI453jq0bZejtdJF59+Bd6Byz9CMI88?= =?iso-8859-1?q?HPWv9SSaZ6RdCeCFxKdcQmoHbY+Ky32XtkxpZp2JsmmYnSNEGzEgsm9DGuLK?= =?iso-8859-1?q?r+ZU3ygtRHeF5VWb8Wvncy/yMrdYGPdE5Zu1MnlmJFpt8Xjf8jcCUPuQ1Xxx?= =?iso-8859-1?q?vFI2TNx/BUdwSPSqgT1u2W/fy+91x+uXj9LzZmIJHUPehXpsahVjlnXrhhtM?= =?iso-8859-1?q?HLOD0BCDpCjK4xYCLOYTI2fmedL/gj4+ljJnEMcXT074cz0M9w4qoFpGN0bb?= =?iso-8859-1?q?HYmn5Cd/gG/rIzO/71IHAMF9yJ4J2QfMptN+QJeZwj49ezFgDRajKpD0in1m?= =?iso-8859-1?q?ejYz8nrcI+P2bh/qS7Hcn/ee/SgOFfPK21CGW4S3y/Q6AWIjGfoWVrPAD9pc?= =?iso-8859-1?q?pSGC0xBZA+mMbnWw9iIgNANNacuFSwG0+ivk4LDjsjoEBYIs++52nvKRJRG5?= =?iso-8859-1?q?U8tAzvPNC2rTtH5l21vCnUvJx6yE8Bna7zHt8MZQI1mCAryvkBVovlwCPDH5?= =?iso-8859-1?q?2ORLtHLr0439ljvF1vgwF1paE6h+t2PlZdUQ+HXs1YH1IIV+vr+Py5LCwRLz?= =?iso-8859-1?q?7CVL6vUkpsriZngY/lojqeP30baoGOVCm6VHu70s9KCoIEmlxOn2F8rB/Ry+?= =?iso-8859-1?q?IbD2gzCtJeHkY+naio2lVdYMTgeB3+6oFAd2d7dU8aUgWvgkP0SG2tN0+73r?= =?iso-8859-1?q?t8buxXsRzUGy+JrJr0xAT4HoNDKZLOwNQ8sRiel6ntsHhq5HBOLUFGJGfPJG?= =?iso-8859-1?q?NK5b5HPjq4+hxz9Dc+RbtPBvFhOTfsjHdTcBGT1Y0CN6vD9mXdpVDxia3u3A?= =?iso-8859-1?q?20O3jEZb0npFMYMlpQx/G8Pm51YlcHfOxD+8R7Co+VE1Yd6kHjbmZzdEzf5l?= =?iso-8859-1?q?a/P8QW7/HInvOhMUd3171NLXCurjdg6vFZB/SdQ=3D=3D?= MIME-Version: 1.0 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: EJt6s8OQtqs/40Zm/dKn9akNPtw8iam5PAjONinqYiFlvIWaDbd+0IdyTXT+6WW6UnA/OVciF0UMNQ3+iJNjKgP+/9d9eaM8C1iA8NYL67xVf+LDeIClL+SllVfB1Mp5heDA70UK5xjUg4yYUd3RynnKpdVxIPmNqBy6PKcm33bWk5c/msi94QpOmebhixcQoUuL2s9lWgqHTPeF23bYvWJxU4dx2pUBa4FHcbELmlJ6QcJLnrAXNZX1VQWl6CV0bQsU8Xeemug7nMLDU1j1jZWlDwuhFhBpqrOUBTDXYVyJ5Zd/9c0/iF2k098Ip3uTceqwmv5/wPPkP0sZ3s0GP5xVEK893IJu5qMIBNeQ5cmSq5+wPx53cgA0KSmb2cXue1Xe2HOPxlDcGlBsEZhJlSKhwqpTmozjdJ0XXrkajKWSgpezYpNJikoOiotyaDgaOXw7G+ALGT1LhGhlD0DOqXlllDpfes1qNQ2xd5nkfOVPdRzwYjll6LK5plNgfS84HP6IAigIyacA9GyO+VkF5VMVbwlZi1XDs0+LBMLIdq1WmWaXRAgmlrm7n/feodn80P/1H26vLvKwOjeIU9yF8NGVbe1p3RM2tWDidEP4SvWksFpSqSex0jvpjA5Ve45diCDplpLphYI/bgyJQbxitT9q94iUIRPMa4Wv5YpTBsiJ5Q1E+ZSf9lJxNyvva+I52Mff8tuLH2ZzWizT2CvpD+krS5U8GFmxjfciRI4o27cXh6lsto7Eh/rXz4X85BK4K47VcJYgpCUJ7P4np7aJy23sJBVPHBVbnBNrRAHozawTL8u9uC6SGqQWPLtghezsOaK1IHUHZh9utlk4o4NMpaqOE1kKhrInT8m32R5sVnIzazD9iPo/IVwP+0/12MlofQb0lLJJ2J/BBT/siLe6RA== 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: 3747c4c1-c849-47f7-c3a2-08daf8336e28 X-MS-Exchange-CrossTenant-originalarrivaltime: 17 Jan 2023 02:34:22.4214 (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: el5so73Bzkrxb195TAHNC/jl4kM7uwMPZeGasJrw/hkOot3mFP5uxFiJzDTPhAZGefloh0slP/9GuZdnZphN4g== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR10MB4814 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.219,Aquarius:18.0.923,Hydra:6.0.562,FMLib:17.11.122.1 definitions=2023-01-16_18,2023-01-13_02,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxscore=0 adultscore=0 mlxlogscore=989 suspectscore=0 malwarescore=0 bulkscore=0 spamscore=0 phishscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2212070000 definitions=main-2301170017 X-Proofpoint-GUID: cPj1z6nPzfp97NNrCUAQSY-fpeCzDvnh X-Proofpoint-ORIG-GUID: cPj1z6nPzfp97NNrCUAQSY-fpeCzDvnh 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?1755236624592107035?= X-GMAIL-MSGID: =?utf-8?q?1755236624592107035?= 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 | 14 +++ mm/mmap.c | 231 +++++++++++++++++++++++++++++--------------------- 2 files changed, 150 insertions(+), 95 deletions(-) diff --git a/mm/internal.h b/mm/internal.h index 1c3eb70b7a7c..eccfc1ce1f49 100644 --- a/mm/internal.h +++ b/mm/internal.h @@ -913,4 +913,18 @@ static inline int vma_iter_store_gfp(struct vma_iterator *vmi, return 0; } + +/* + * 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 90638fa48734..786d8181089f 100644 --- a/mm/mmap.c +++ b/mm/mmap.c @@ -576,6 +576,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. @@ -591,14 +712,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) { @@ -694,39 +814,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) { @@ -764,69 +867,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 Tue Jan 17 02:34:22 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: 44462 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:eb09:0:0:0:0:0 with SMTP id s9csp1525005wrn; Mon, 16 Jan 2023 18:55:16 -0800 (PST) X-Google-Smtp-Source: AMrXdXssrEo+uQz4qN+iYZXvtzSdtF+W7UeEubOa3jFJOf06IP7H7DqoAsutTM1FAXRxP1kcyqoQ X-Received: by 2002:a62:1507:0:b0:581:6069:5c00 with SMTP id 7-20020a621507000000b0058160695c00mr1898396pfv.28.1673924116361; Mon, 16 Jan 2023 18:55:16 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1673924116; cv=pass; d=google.com; s=arc-20160816; b=jjErLTXFKFGO7PNU+Hch41csyY9KpustFxB5/UoxuoxebHng7B3iooOwGRQBP6FY47 U84WZfnhCxMlGLQ929KDF7dAdDi0rRIRvh9HgVHYIDzwf6jGVOim9o4w8JfiAscQlu8Z 7ddZElMMhYJZ9AdvoQSIAIp+lZHcXAfvQLrKNYmgFxV1YEjDsNbrOXG730SQxRsrWF/y MIm1jdQgIKYIP6DsOkKzoYvl7ZUhPcQdIkvqM8Or8AtSZ9/rXsH5KukjMKC+03LpdevE IA/wTnIAup2XjI77S7XQjTC/f0C97mW9M086TPz0tvdUwcDoVghjz6N83pLWd7lhEFkM YP3A== 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=0tQvpuyTH21QXGvmbLCqLSFaZOw1kys4+zk7z2PMCIY=; b=y5X7ZcaB6CUffzOTXiy2Fv+nH9ZJQu8+55H7wDjM/PCqYNJS20atc6FxBbx+3sCU0K RCm4JShiu4PV/wYgyC1qoAmpaOxQwPmxu2edXhRrfSofDadG1XSrvkG6DZl754DaHAbT jm8ilWZdAi6Rs4YTXwe/LF5wvcnSXur1LLsfD8PNr03BMT5ICSFqG5bxzks6dkBIM9P0 UeUrJfJPe3llt+24jqBKIZe+stl2Lz6TjnxxWOgwdJyns0WEV2q9eEyfgLJ8y+OXZexZ JpILLQNuR76rR6AxVeE7NjRzEfou7jwExcWRqE5IYzZ6OJjkwrbnG809NmAQgXyUyGH6 xxwQ== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@oracle.com header.s=corp-2022-7-12 header.b=igtLD6zv; dkim=pass header.i=@oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=TF2YlMrL; 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 j4-20020a056a00234400b0058d6a27d641si5552044pfj.234.2023.01.16.18.55.04; Mon, 16 Jan 2023 18:55:16 -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=igtLD6zv; dkim=pass header.i=@oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=TF2YlMrL; 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 S235686AbjAQCjg (ORCPT + 99 others); Mon, 16 Jan 2023 21:39:36 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:36104 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235701AbjAQCii (ORCPT ); Mon, 16 Jan 2023 21:38:38 -0500 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id F3F9D301B3 for ; Mon, 16 Jan 2023 18:35:54 -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 30H093AD000988; Tue, 17 Jan 2023 02:35: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=0tQvpuyTH21QXGvmbLCqLSFaZOw1kys4+zk7z2PMCIY=; b=igtLD6zvibfXQCDN6jqUIpq4cNnTcRxWRGGiHc02u+JTwriJBfDvskRxqjnpnw/cUehE 3wjO1hAQgMygUKBvNhN7y5YtcOQjwA96Xk+bph4K2paH9Mr+f64VYpGxvavyn0TFdpcb Kn9wNo1d8lWn33H2QKshHF5cndtP34emwx8yF89SVX33sbLComAlm0dfmKVWOh+zgu2l h8UvH7todRjdwQTZFOn3IcFfFUffH9E3ILYnCEWuBOdgE4gfug8SCiMzy9LisNDXlGc3 lLRw9A4Rn4Kin0QYa7LxD27P6GH6FfjJ/IUN5p8bwH/0MWnEC90Vq7Hnw9UrTlSOtlbe /g== Received: from iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta03.appoci.oracle.com [130.35.103.27]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3n3medbqc6-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 17 Jan 2023 02:35:03 +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 30GMXP42028373; Tue, 17 Jan 2023 02:35:02 GMT Received: from nam12-dm6-obe.outbound.protection.outlook.com (mail-dm6nam12lp2173.outbound.protection.outlook.com [104.47.59.173]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 3n4s2rfy4x-3 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 17 Jan 2023 02:35:02 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=KafmYvEvXixPAZewwpYcZcGcHBvRzxle1za+oU0o0pu7prvfneujqohCkH2KHShsa/mTV/xaPVRC4lALQj3Qgoy0snPFz9LFL4hB/eWfz0Jn3BAf9YGDaFgHLqXzrl2TtNdnd5KoKZnbyev3yFbJq4eN2NuUToLvdMygoErPuvRakG0X5rhhd7SnZf+ENQxttGUvgVCkKdHd5q/r2w9Vm2yuCQt2PF8vDHKcIHMCfM/1zIN+HF0zxARHpaiGix5Bwf3NXW2wZ+oaM5Wo0Su+jJiugnJ4oj3ZTnCA8RoFCTEjoXrZmCbD4EJt+2OK7oLUvnfy2e70kWcFeIFjmMSl8A== 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=0tQvpuyTH21QXGvmbLCqLSFaZOw1kys4+zk7z2PMCIY=; b=oBq8reT8SbLjBu5OnEtS/e5TThyBYfkD3kfRppG+JlpcjIirGVqYmbwiN9vMlQvnuq+H1nOqsKXM0bt4cibfaGnvUH/AdogWG3Arzab7ZTNvgvP1QneJxc59uV1E+DrQQglwZcBeQRB33eZaiDADPDgdUY2B5o4scxY2D0M899RCrRyZ6wL6oIrIRbkRlOrR7WMs7c+Ll1d/wqOn1DWxMdJX/X2H1LNnI0MSQ7DMX82cFeTdkl1Ha3QzQkPKn3DWH0dP6AwxvQhLODRXZmyTiZ62hXAWfNUkpnMhnt0fmyf6Cvdoue4A6DmyhsTCgEbtPdm1lUfGel4nkwjoaE8UzQ== 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=0tQvpuyTH21QXGvmbLCqLSFaZOw1kys4+zk7z2PMCIY=; b=TF2YlMrLvzztda/7d+OaGFCu19AOTUVPeTj4fVu5eywc+24WxBO/IQQWuFQYbwjIZF7BwMcmPCYNhFZyfutTm8MVOTvhOSjXTvtlSNlSex9lo+Z3EinKyJj2YSb3lSO+K9lxqi9Gn/w+qntjyvfwfMFPgvAMNTcsuBSj9h1ItM4= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by SJ0PR10MB4814.namprd10.prod.outlook.com (2603:10b6:a03:2d5::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6002.12; Tue, 17 Jan 2023 02:35: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.6002.012; Tue, 17 Jan 2023 02:35:00 +0000 From: Liam Howlett To: "linux-mm@kvack.org" , "linux-kernel@vger.kernel.org" , Andrew Morton , "maple-tree@lists.infradead.org" CC: Liam Howlett , Liam Howlett Subject: [PATCH v3 41/48] mm/mmap: Use vma_prepare() and vma_complete() in vma_expand() Thread-Topic: [PATCH v3 41/48] mm/mmap: Use vma_prepare() and vma_complete() in vma_expand() Thread-Index: AQHZKhw1leVGNgt58kegh4h50t0Isg== Date: Tue, 17 Jan 2023 02:34:22 +0000 Message-ID: <20230117023335.1690727-42-Liam.Howlett@oracle.com> References: <20230117023335.1690727-1-Liam.Howlett@oracle.com> In-Reply-To: <20230117023335.1690727-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_|SJ0PR10MB4814:EE_ x-ms-office365-filtering-correlation-id: b108acff-4b52-4f85-0d86-08daf8336e75 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: AhCUJB30n/6zj3p1NTdMHsa+a3eBsT3D6kdsN0wbbkEFOS7IjngERztcF/dsAQKjk/Ex3Sh0tFq/UtO/cMiAIGc6FrXCB1XtJeV0421zjw8H56354zv4V6O66qlzcOCg2rGj7RPbBbOFqOltC+h1ztbUrexM0HLA1a9vFQH7T1DntMNF7Vxg8IHwKRBx+zhP/AwyjRfuWnyNR6i+z2ftDfsw2KfY90lYF8ZMkv8QJilfun99BEZkyg3wIZ+pjV32FrHK2fbTKfafDE7Ao7N/ajPxrRbn6ifosUXNP4ngd8owxO2Yk9V8KT6AcbtzcFxQzMn7n6QXdfy0M16j45/qEwARvH//rjVa5tigGg2wxfEJnXXDXE3rhMQT/kUfbVjNdnNsGx/kxtuq0Fqp0v0TLO6uH/ID8xj5Fv5ZQDn3fu3dZMekrFjtWmNJnCM8BBKYT6gCcYKCs7vxKaoDV/EpubIw4nPeGxludZPY/qa0qz49ZxU29GEply/i6YBxPQf8ttQT+pm+gJsmAc9WHbOPhTx784niOUl6i8BF6xwzjasw5qFaAW546rlYYKEZ/AoY8K0yUCc4wjA9/pBfzI1AfC9W7ya/6gV2PjWPRE7sNgydGWdSFZdgEMRJShR5O6gmkZufPMevNX4gJgO8GJ7RI1GeCWFxzcQ3xM+wB+93i1NtNgOHCBagR8g+DfpSbB+b01Xs2U1KgYir27CzIX/YwA== 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)(346002)(39860400002)(396003)(376002)(136003)(366004)(451199015)(6486002)(6512007)(478600001)(186003)(26005)(6666004)(107886003)(71200400001)(6506007)(91956017)(66556008)(66946007)(2616005)(76116006)(66476007)(122000001)(110136005)(316002)(64756008)(8676002)(4326008)(54906003)(66446008)(36756003)(83380400001)(8936002)(41300700001)(1076003)(44832011)(2906002)(38070700005)(38100700002)(5660300002)(86362001);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?q?6Xcy84j2ihjHZKW4aFXoK8A?= =?iso-8859-1?q?rXK7YuKRSfwoEU+kGwnv8LcrXLmlxfSEgcbzO9t4hQ5+e98wwTPcDaQZl/T1?= =?iso-8859-1?q?9Bfa0O/F9WMn/eHK2TwF0l/Wa2WmzHiZs61wd4iXyM384oqoSozsNDclJBOa?= =?iso-8859-1?q?VCbuaYBktogil43H9BASi4VvL5oKrWpixaEvREEzCiS0y/znHtU2IzAAiBZ5?= =?iso-8859-1?q?3Og3yZSVvnqLJiSUhf/dshFTuGdpkmRnnVrRyrlDBSdrWdSZ5lJG4VwZM6VT?= =?iso-8859-1?q?9H2mKgb3chBI2+uiZjsiYWes6UUDr6BYXrvHEGRNwkNKULhb4QaCexUH7Uph?= =?iso-8859-1?q?GLxpwT8PN+ewqU15ltI0zgDB0tlt1RT7Qik2Te6S0DVVfMsXR1krN/VqH4Pz?= =?iso-8859-1?q?h8hQHnWXJ+wWuMTf6TY+7nHPf2ooiogFK+ESyf42ibf91TXf0O7ryzR1xcRE?= =?iso-8859-1?q?4/cR03+MM5W3KOIR5Gaf9F/xwrt6zpm9/yp5BuHdUWx6SDMcLpyMe1oYGGuf?= =?iso-8859-1?q?hsybz1Au4AZIPEJZb/OLIr+S/6DsYfMpEeu3O70igKY7F9HiIME3PrFSBJ51?= =?iso-8859-1?q?hax0fREgh4WNQB4XTqrILa7dbNJUyw9FT9eGzh6MX23RHF6bT5UDnwMRMFfh?= =?iso-8859-1?q?JbXC7rrYQrRp/GUo5S3PFqI420OaV7/HJ4mWHtFn6t81eDEWwKJhmg5dC0wU?= =?iso-8859-1?q?aMGqxoSNg26iGD2RVWdPXhd1lbYEv7kRqcVq3mh0Onfi2zZkv31wl5zGfWjV?= =?iso-8859-1?q?HwfkTknzupNNvVYWXgtqILZCPvBN+VnFtnJgL3SLbwLyNYFekXG/cmjz3Bbw?= =?iso-8859-1?q?KZ6kBl46aTdrr2UqnnM+oKmjg6irNggSqDR61+yI/O9fAeZ+V8+kjxWF4CAi?= =?iso-8859-1?q?dZ6PFyn+K3tDzCr0WYnPjBEsLIej5klq8ACP/VvpHMhf5HeaIyGhdu2pydvm?= =?iso-8859-1?q?/YTvrvwPwlAthyS6rVrC91pxZcTIfZxNqGtDqiEIKK6+GqXSV0jko/K+M98w?= =?iso-8859-1?q?/Fpjicpo3lvb9OFvn/V72uaWGQ4Zu25sSyWg/vsaZFz0LckOS2bfMyib49fZ?= =?iso-8859-1?q?9lx4tf9khnMUxNyf5jw58xGd0w22RQjJ+/LNF6R2sZMdy38EtxFJIratGDBN?= =?iso-8859-1?q?DJ6bAhg8gGtzAqqDcTe7en6EimhoXaY0CSJb5bQGiG7e62ZysyaY1xTby9QD?= =?iso-8859-1?q?bRM6bKr3v1PD6XoNxxaQKEDWjq37Lc5h3P2jxB1I3aYYFza5qBUw4A/el3bs?= =?iso-8859-1?q?pntQ8MtCKecJ94w7N2XxTPyGogwJaFlZT+bmLoc+kpNXbrYg3kzov1tsu3VN?= =?iso-8859-1?q?Bz921m+QG2U0IJFcWd4j+kvonlTgamCacdNrA7svOlpcWDtnuER08BpyBHgc?= =?iso-8859-1?q?/KBAedxdeIiIZHDWuehvBMAgz1DUk8D595QRTPpN6xPmzDd4DUR8IzSLutPR?= =?iso-8859-1?q?k+zFEcXrcXPKxnk+7R7o9Z4Q/aAsO3CqVM6iIU8byIRv93fxW4xEQ33U2hUD?= =?iso-8859-1?q?4DXnglO+ArvG1/tQZqyzWuXQ68fW7ZR5CU5GOvKlFGsfLrCtcYSz9HnjMC7g?= =?iso-8859-1?q?8zHYsK08KO/giS9sqtcmd+wFBPXduU+ZLdDgVi5/dQeGDnP3Psmds1hVMJq4?= =?iso-8859-1?q?uFKxbVC3r573ONmLVOYNnWV6oD2vf/ha2NzDxjA=3D=3D?= MIME-Version: 1.0 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: 2jZ1B0tNWi+1ORpkIwl7ow2I7ZTBGaPeDjgI13mAnoS/8TzMH6gGr1CSXsxW1WBit/LYs40F7ESh05sELOXMwYMgrKRI17c+LQ/2kTcUGhsAHjP+dppGSa1EQ6Uxz7ByEQ6TdeQt4NvjWmdzuBX9tnjlnh/YMTKcxVNAOESHf9e4+lJMdLOoKhyv0+V0qxlR8Y7Wc7GbbJ6jjkDAuZLI38JyzVsFyHf6FImw1Gmd1B1aUsk8vOwcDCfuynQzBuvqSZXRAJWgw8Xxf7HWQFplZ6nl4wJuQ7ECrhwX6YK2lZ56qk+kuDDJSh2PXqazywhm0xSMcC6HhhvSfzwd2fHCaot1wRXFYSbGu/O3wSBP+rsU28469PpFlP0ZKzPOeX4htfwoTjsGKwluoHt68fvAB4gQHZ04Mm5FpLH9lUUYWK+HzhhcRj1qBS0G7FoDyhlO/fcQR5rsShzlAwuw5xKpY7rOC2urAX1/Obn7bFQg1z+0FBpkS7yDXme+7jQwG3bjUD4drd3qTBVH5iXAzVg7RYqhIv8yqsx2XjGw2uH9mu8cXAJHpEGGy9yLrDX3pztTVIrcw3emGthjWia7Pl9g8lb40rmQvgJfPLy8s7seqdEGtRoo1qFmaIJAbRbuwdo2xGQ2iDhhEyzV+g7xfWtOhwsCyI5BDblAJqfRtpJCVBPauxnifo7YTsxl9nb663nIia/oMeG2Di5nOgWRSNYxM2KJ/MejCJSgjYj59d4FDjmk5VlQGsyBG1AZDPidehH17GjMoT/Ge3md7hjqEUa0h3zutc2rIwPXFXZFPBFlm1FuHME+/cncltOV0fwPwJYU1mjfYBlowHWJu7YjCg/RkAQJVhtvco8pd/22pRhidKfp/+aSTm4cFp3BdiFqgWb/IPMgK4Or8KRDwk5zDgHy0w== 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: b108acff-4b52-4f85-0d86-08daf8336e75 X-MS-Exchange-CrossTenant-originalarrivaltime: 17 Jan 2023 02:34:22.6870 (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: YjNDXfIdGguLf91yG8609C02AKoGK0+CcmrF4+1d4NRWE5ikc+crWz+Qzw4oQCpE0HPHhDxkeyMI3ZqjRwgCVA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR10MB4814 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.219,Aquarius:18.0.923,Hydra:6.0.562,FMLib:17.11.122.1 definitions=2023-01-16_18,2023-01-13_02,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxscore=0 adultscore=0 mlxlogscore=999 suspectscore=0 malwarescore=0 bulkscore=0 spamscore=0 phishscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2212070000 definitions=main-2301170017 X-Proofpoint-ORIG-GUID: hg7DFdvAYaKc5mSZ7IR7POgwYknNuKV4 X-Proofpoint-GUID: hg7DFdvAYaKc5mSZ7IR7POgwYknNuKV4 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?1755236653889234578?= X-GMAIL-MSGID: =?utf-8?q?1755236653889234578?= 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 786d8181089f..2ea7bf439f4f 100644 --- a/mm/mmap.c +++ b/mm/mmap.c @@ -460,122 +460,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 @@ -697,6 +581,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 Tue Jan 17 02:34:22 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: 44486 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:eb09:0:0:0:0:0 with SMTP id s9csp1553863wrn; Mon, 16 Jan 2023 20:26:46 -0800 (PST) X-Google-Smtp-Source: AMrXdXsXAetNNadv7XeoRVrQ9YP4Y/SEjifO8D9W7/bjG34bZ62kpFLFN0GG4Jcm1sbaI/0aqwLM X-Received: by 2002:a17:906:2403:b0:84d:3e5b:7c02 with SMTP id z3-20020a170906240300b0084d3e5b7c02mr13810068eja.22.1673929606732; Mon, 16 Jan 2023 20:26:46 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1673929606; cv=pass; d=google.com; s=arc-20160816; b=tYgIInj0hubOutJnXJ5O6wuoXtVlCZOq8b6o+NxdkMEgcpEDCLmRpukSYTOIXsabxQ /3rIHbK4IQlgeGPpD4xsXqHN6Sgb47Tbp3tlpoh7T4wZ878P3Dt0kLJo6uc8M0KiIv3V aFzjG9MZ/ZMcemjtGz/smNGf3bsc8GoS1uXPCab6xaO2/86EvEjsFIAdDfbsA/ByFSZd QZMeKf9RLQwH2ItSYs19CVJgBOh/I3+RssnrC+RdACowNBCOAMxS3E0QkVbW2u6C2nqh P0/7Xinot3dX+PjvTUEyfJMSoEaztCIE/ykyeLrqOz+4BKa21yIgdp20FzjS9fDs+oUW irQA== 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=CVkOl8Q/nodkaO6l1rJs0OnFVAPjOYnF9i1CIp+QF50=; b=a6iXCCQYGCRudu1pcqc27+ELWozG1pVLE6bYF2mktRqbAMuj3OmetDWjMGTlOF/Oc1 P48egAaxZ7ojkCpfM3tqFRPTAm7sUoLeLq/4dUDjkfjNn8AjGer4STJ5s2JCjcWYGGwF e+aQyn/9jfiTceITX2+WRylGbS5nZkpgSk2ZVGgWjg2y7oDsjM5Io1DIXg0c9JxxafJz v0GmiiEMtlG0R7LgAQlxlyEF6d1xHMPtuzgylEbJZxpzstzb9oS+RNwnbWDV8ttKenRu 9qow3s3bMMVFc8TU0bqYvFryk2JDIjFwIWpJws1vURzGASX4DV3ZfW+BO/j5XR+FZPTD E+yg== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@oracle.com header.s=corp-2022-7-12 header.b=cTPUXlkW; dkim=pass header.i=@oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=W+bhmWSR; 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 dd13-20020a1709069b8d00b0085b4d436b57si22727677ejc.1000.2023.01.16.20.26.23; Mon, 16 Jan 2023 20:26: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=cTPUXlkW; dkim=pass header.i=@oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=W+bhmWSR; 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 S235265AbjAQEOR (ORCPT + 99 others); Mon, 16 Jan 2023 23:14:17 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:53482 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235063AbjAQEON (ORCPT ); Mon, 16 Jan 2023 23:14:13 -0500 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id BBCC9234E0 for ; Mon, 16 Jan 2023 20:14:12 -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 30H09ZsD005646; Tue, 17 Jan 2023 02:35: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=CVkOl8Q/nodkaO6l1rJs0OnFVAPjOYnF9i1CIp+QF50=; b=cTPUXlkWuKm2f3bdNeNmVCRHMfYMUb+NFe5uiGsfPGMPZwyXWeYQft+HxMZFYNG8IpSn qUXfo3gmZkZLK9F4nLRKrvah/QLIXZNnX+TpxrhA4p6iyuZg+wDmCSoMeUnAccT1ELV+ pWl6lcb7OrM6ZlLtHZ94kQa9aQj0oezRZ1jbGNob6x0HO1VMWDfILpIqNvY353XpU3DZ kHr+JBb4/0XFXEmcDzc6hqiV2MTnD0dShdktsCOMXjbdVbWOe1E1mMRcZmU5q2SLsksD OV+QiVEOXI0LhPlH0VjYL+qbfV0JaQzQQGWjaAxnmfUKXwYZqOQBrcr/W3bZJRDMIQVk rQ== Received: from iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta03.appoci.oracle.com [130.35.103.27]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3n40mdb5ex-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 17 Jan 2023 02:35:05 +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 30GMXP43028373; Tue, 17 Jan 2023 02:35:03 GMT Received: from nam12-dm6-obe.outbound.protection.outlook.com (mail-dm6nam12lp2173.outbound.protection.outlook.com [104.47.59.173]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 3n4s2rfy4x-4 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 17 Jan 2023 02:35:03 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=l5qIOZ2+nIIGDIyHpfbTQnzEmeSbzdpeAlCFizd78RyE8w4/7h9n6xFNHTUJplWSilKhVspRNyeswJmd5u74l52QH/TxTYJ7YSEqJVV3q436G7zGoXq+rinvyYZppQ/3JZn4dRbqPW9m35j5jvb7PY7Z7oK8OcGKwbfcTW73ZaFztrNWFXtm4QCdbf+lJffIFAUzOgoXSERO5lxkY+fZW7h82WDSl2xIyqAGwTae8EAFimAF5B0HbpDDRmnM07i0umLJQJe/0vkvBaec0NEqcS0zj9P8HVDfFy7NDApnPXC8tMeaV2QvL99R/b4fVKbnrNfpoSztLMlGNNIVE3VBRQ== 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=CVkOl8Q/nodkaO6l1rJs0OnFVAPjOYnF9i1CIp+QF50=; b=j+WhLC6Iy9nSV4r0IBInf37gSxjM0MFbf0qnzRoxG8NEuCPiI//d2lnUt3BtGyNYiCiPdTtuJ8WP+T5gKmqXpwvFs6WpqXTtaQuxxJEzrkNcErvNe2Z9wBmPzDxCW/ocq+zp+b7KfPBjT2XsILpL9840TaTdpRdTOZZrJsEPK7VN9CCDwa1YIZW3umLLV8yJxiNJBvi9gvS2mp50Oqu4HAuRlqXCw5rBEPo0oxqYOyewYSodLCeD/kOJd+9+sCZeMU+7QkkegBG02x5oHDePf6+EtCqrAdbF/Fwt4lAPZryzs5ARfdbSEaTVM/3REcmgkKBbyFsj8Rmw27jJ7rljvA== 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=CVkOl8Q/nodkaO6l1rJs0OnFVAPjOYnF9i1CIp+QF50=; b=W+bhmWSR1L1H6zF1sDXQn1wWfcDY6jOhDV8bYKf2T7IpLTHkfN98HgV2ZKbZz81dOc33OwUAZQ/S3MpOxo3qN/eswXuHkBO9ZRsdmHbhh2fIcXhLFil3PI/nMfMwQbhVQGVn5KyD1jV7FPaENXkfq+YXlWOciIRG5gFdCd7kzeE= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by SJ0PR10MB4814.namprd10.prod.outlook.com (2603:10b6:a03:2d5::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6002.12; Tue, 17 Jan 2023 02:35: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.6002.012; Tue, 17 Jan 2023 02:35:01 +0000 From: Liam Howlett To: "linux-mm@kvack.org" , "linux-kernel@vger.kernel.org" , Andrew Morton , "maple-tree@lists.infradead.org" CC: Liam Howlett , Liam Howlett Subject: [PATCH v3 42/48] mm/mmap: Introduce init_vma_prep() and init_multi_vma_prep() Thread-Topic: [PATCH v3 42/48] mm/mmap: Introduce init_vma_prep() and init_multi_vma_prep() Thread-Index: AQHZKhw1R6A3SxKRmkKlNz+y36H+LQ== Date: Tue, 17 Jan 2023 02:34:22 +0000 Message-ID: <20230117023335.1690727-43-Liam.Howlett@oracle.com> References: <20230117023335.1690727-1-Liam.Howlett@oracle.com> In-Reply-To: <20230117023335.1690727-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_|SJ0PR10MB4814:EE_ x-ms-office365-filtering-correlation-id: 6e40154d-6fe0-4e3f-4509-08daf8336eae x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 9gURo+VjHoQdYiQXh2ZDJ1Kv8CyTxLBVzUXe9PIHlofyNa+mONm9x99cRsI+2/UDSpbVPI9ZJzurS8H507+k5otaTNX+uVIhptiLlv5Y9AxU+lMf+zZ4aSBIoemR7RsuuosERb4iH8twVA6SreSVGVxf7fH63RkXBegRA6e6G7EjEAYtgxeN42pWFrNj8/WYFOx/cgDZ1d7plffrbZK/wszSdDJx5os4AGQQlBiG2SdcIhJlnJUurZ/4EiI3cMkPUwxR1zRNCpxuigWJyrWqCekgj8ahcAhOykiuGRZ0nPtsyrqC1HRKW7FLTnzufb0LXyX0x711jymdgIVt4wARJ+G3VLM0Zs5fuI4UnEVAi3HqBYbMpdtnsQYz67uJbbnmIxcLd6RYP37gBZwVLugPOdRzEJlw3Db+S0X0SBpoD8WPDj8atNUc2QHlqDgrAm8x8mcl82dpiesLRoYvd84bzOVIlJrPRZlwhycz/foOqhJ0AC9X2fneXKWijNBwqXnRIrALIK6HrCrBoCgPRwR25PMQoL6DxArGkx9G7eLE1ijuAEijW43jVhk1YZlw8hNciD5FcvgeEhqzdJBo0l4VJU6EZGG/Err/y3TftumTiqRxwb4166vVvXZtaX6A5ucWRMZ5S2am15/zhVaq6365+IeURfm7sFysL9+ReJHsmg6IQTGrSU42ib7LHbca0kbp7jIm+WMMHUep/W89h4mBuA== 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)(346002)(39860400002)(396003)(376002)(136003)(366004)(451199015)(6486002)(6512007)(478600001)(186003)(26005)(6666004)(107886003)(71200400001)(6506007)(91956017)(66556008)(66946007)(2616005)(76116006)(66476007)(122000001)(110136005)(316002)(64756008)(8676002)(4326008)(54906003)(66446008)(36756003)(83380400001)(8936002)(41300700001)(1076003)(44832011)(2906002)(38070700005)(38100700002)(5660300002)(86362001);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?q?SX2E+y4GdCBlaK9S/di3YSP?= =?iso-8859-1?q?ape+VUwEFP6G/1d/78ySbU0Csz1ipz8Plq1RAiIINLZjHmRj4lMhl+Vlz5If?= =?iso-8859-1?q?b341E6NJM+YCGbeHhzb9XMB62VmEBITNO6sL1C2jYBjxDIFVo37jRv/93Jg6?= =?iso-8859-1?q?Sd3aHwdEt//3wLYb/jLT4nZs+hrgbRHLqYfLpL4mfk34zLicu+f6kY5piNOV?= =?iso-8859-1?q?CP6G4cZ2xPSxAkvJ+E/ilM7wt74FDCmekmvgzG8hbdk/9k6Oyzebvkq1EK2U?= =?iso-8859-1?q?zKQVGDoiPNpCeUD0LGGA2YJuWaiASme8cNZUK6R5upZ3r/Q+Qmgu06ZENLoC?= =?iso-8859-1?q?tu9IoNPSCeET28qKIn0m30qKFIH0OhKzqV9Yl3zbN015o5sEXFdqiWECK0LE?= =?iso-8859-1?q?cDauZxu1OqmnyCJQ7yPkoE7poPLLN8l+zPd0mcaN+PEJJnyoZfLQ0l2QFJMS?= =?iso-8859-1?q?96/b8tSlsedExlbMrlCImQYYuDl6Dt2lZsSrHtOsDhAj7g7bM2CPZ/Uv061b?= =?iso-8859-1?q?BYxB2i3Mtee+1VZ4Rsg/Qoh2lxmeqLIP5BuU2VPrulPnqeVRqYxG/plqTfvP?= =?iso-8859-1?q?uIRdHAFrNDdX1/5TVU01AhHUusvOr83E+bGBJRULZI2gNye9dg7XVPg6rQUB?= =?iso-8859-1?q?Ny7vMosARu+x2XOPC8PFdGTJBo9cz2gpM24ioom1RthAnxEuZMiuDgqaE4f+?= =?iso-8859-1?q?XPVWtMmWiq4iNkyy8Tae2l1il6er5QMRvmSbezMKBOEGr/EOjB7ha3hhDjof?= =?iso-8859-1?q?YLFEQWi26pxihM6OagntHZlwSaC9O7rlkkLDM9w6E9kV+hh/GFQKb7krvOYb?= =?iso-8859-1?q?/46H5tKTf+BNpLxJFNJI8LKSMN/Xm+4odTTtSU2qB+55DF+IL9ckechXaopk?= =?iso-8859-1?q?b8EMbetV8Lb6SX4aCHOaShJiibOjbhplqPKyhRzUyvpxluTIiTScy7o9vRO0?= =?iso-8859-1?q?vzuNOc8GZKEsPtkvkiWtPyQHrYhF9zFdeGJzblJ1VGgw42NUWo0Zh5PMcW5P?= =?iso-8859-1?q?QC/NzN4yf02I8A6ltu0wiPz/8895uuVrtUz1iV8qhnUoYNy4ZvmKniyYXtUr?= =?iso-8859-1?q?ZbXMorz4lEK+dCW1KYzYmEEFhadR++WSsTm49iZiBnndaEa7sDyYjBuuQn6l?= =?iso-8859-1?q?XS91daE/tpxZ1rh/aF2I31z+CMCV0DZiic53urRRDMTcg/NMmxlClT1xGzyv?= =?iso-8859-1?q?ApicLIeVSe6eDSObH+fZ8xGj5EBnppx9zIvBBoN3NDzRKQfI0A+Ii5qMVZg4?= =?iso-8859-1?q?JDJFp6qYIWumavrFQEegbui7ULonRf32ZI2S1BS+NyMsK0RSN3pSoO0nmZmN?= =?iso-8859-1?q?GLwrjsX1j92ZxuYAeiTH1hrveBP89Wjcp895rAl9VJL4ia2sSPtSY8FfnKMX?= =?iso-8859-1?q?o0gJWcseG9akiRmVpFvhEjtwPLVYGhTrDHUvlFnQfbD9qQGgTxQi3BNJGPV3?= =?iso-8859-1?q?pK3RGy5Y5TANn0fSxrWIzD8DaGIhroUC/sFJ0NEb03ncdvtnBrlOCGZG5MQT?= =?iso-8859-1?q?rIgB0x8/k2ov0/DW9ENL/IQ3VM6kkcFi7RZz0mLY/c/bE09jNbqER5kEtwPX?= =?iso-8859-1?q?DttenjmjbV/grgsrHvGbHKp8J1cCI6lHumPgrxpurx8/XemZyXkLvDcjiSlm?= =?iso-8859-1?q?t2VCv9bKfZ6LQHvs5tXCLSCsBvGUZVK7sFbITDQ=3D=3D?= MIME-Version: 1.0 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: DQI+nS9+O4nH0xtncEpsB9gyT5Y/Vngu5ucsg5p1HbewcQqm82AbRhJk0i+hvDFMX8bbjpX0LOSAuZFqwThxuWay0F3rAtoRzlN0wn6UWO6XKZT513C8XmHc3/PJ0JLBztx8VKxpfnjW/tMUbiWUftn9zcP/W8/sm30F7558lZOEg5aqLR77L0Z0qZUQRUhbuubByg607CUncul7u7q9q7RHMMYCF7aiwSx+Qn79oz7WLUYPVGrlsihTxeztMGc8+I+aa8ksewwcS7vfir5OXbuOKZgRAUDgxOl6Xl+2nAH+tIuSVE6O+FrkJVvA1UyG5KDzdkaijeNs8d8exy009gX3FoDjiPHCqql4WTcdNwhTepFMxTm2QSCFpWNKW0Zo9mN6WJJ2/Rmx+3QMukzb4dx+d4/BIrjQpRmGYPllY/CO7D/QHtW4tdRWHoQjRIdb0o8k5wFfAdpuj90GWVzINbNHhw+PHLakfjXjJ3L4mI1IyGmZ52O9qyOlFeU+HQbFrf3xU5aAhpGPTEMEDdKRsjGXszkD80Q/efU3e4boruY+f/e+T/ZR9bvKJ7GlltJiekIhAhy228HVN8NJlTZ368QiL9+0Eps0OqQS0O5yvbr9s1RWy7h4vTpX/uvcVDO8EH6xNQBaLC7yCESM/8whde7ai7dTtF9ioQeTgSzrBZsQaHihIZpgRZHMngHZbj/6lvJirD6RMzvXm3uL8aS2G5+Rk1dtGKRNOqttF0nwMR2gBDVW1AXK5LHF3wy+UHLIdoGxyORYrG1ezcYKe/FwEJiwP7klSJksrjqYvRhT8N227euXAE1RRLOfLZik9m4PfohvTMnPBOgSglwVLDe1/bngR/2L8HNli1VddJ2n8A8GUA0LGWsZdS209nrQKkbBA1dsUMxf099Kb66wdMnCUA== 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: 6e40154d-6fe0-4e3f-4509-08daf8336eae X-MS-Exchange-CrossTenant-originalarrivaltime: 17 Jan 2023 02:34:22.9838 (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: sqmW/1qj+DOtCQaJ0fRTTkUXzHFyH80NN62tlfj3Fm2bvrMlLpIjlEPHl8mbLre45KfQhCf61bdpVS7huMJPZw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR10MB4814 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.219,Aquarius:18.0.923,Hydra:6.0.562,FMLib:17.11.122.1 definitions=2023-01-16_18,2023-01-13_02,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxscore=0 adultscore=0 mlxlogscore=999 suspectscore=0 malwarescore=0 bulkscore=0 spamscore=0 phishscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2212070000 definitions=main-2301170017 X-Proofpoint-ORIG-GUID: sLGLnv1vxCXTBCnFIKDpkr1zQEqSIR3Z X-Proofpoint-GUID: sLGLnv1vxCXTBCnFIKDpkr1zQEqSIR3Z 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?1755242411572221236?= X-GMAIL-MSGID: =?utf-8?q?1755242411572221236?= 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 2ea7bf439f4f..b28f3416b60a 100644 --- a/mm/mmap.c +++ b/mm/mmap.c @@ -460,6 +460,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 @@ -569,7 +608,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; @@ -603,17 +642,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) @@ -621,6 +657,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); @@ -631,11 +668,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); @@ -666,14 +698,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; @@ -692,25 +723,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; @@ -720,8 +750,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) { /* @@ -762,30 +792,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 Tue Jan 17 02:34:23 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: 44480 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:eb09:0:0:0:0:0 with SMTP id s9csp1542086wrn; Mon, 16 Jan 2023 19:48:43 -0800 (PST) X-Google-Smtp-Source: AMrXdXsugN5I5eJMtGswJ7sMq4wUIfnv50swM/UPScNrAH6IiTJuTExi7bBceaM+B95LNvAbfGvK X-Received: by 2002:aa7:c842:0:b0:491:3a5c:6e2 with SMTP id g2-20020aa7c842000000b004913a5c06e2mr1486248edt.5.1673927322943; Mon, 16 Jan 2023 19:48:42 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1673927322; cv=pass; d=google.com; s=arc-20160816; b=MsnPSxccNxCEZlLYgPTx3eNfg6ISCWP8aimXwHWa+owhJ+mUXhZjygrTmvv8/DbUQR QmNd2g4HTygYcqih0cUYXzlVOSfn+h4IfKbKBad1dWweRot8IHZbM7D7fy1i6ov4ia0Z 0YQ6nacUY5jSSNvcdGQxe9gFJKGFl5USnSHkallGZo8DHcZav179eT/uFWUmvV477PWA BTfp1J9svERCJ69gKEQZEE7keGqzdKKaUnJVJJntWabKjSBJd7wV+MWP4qzFRB83fJjA 2PdB6uPGDNA3oMtDasJrSgFHqB0y7jcAuU9Te2KIuXQrWerB2ncGO0hizC1CtQ4/do7P rgjg== 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=L7sr5iVHvKYFk62UwT4div4O+6ZS/l5NbPF7xnne2Zs=; b=BK4KkfnAkr0rE17/vKunTe1+PP9AEHPUkivar0ULmEhB0FRW/V8lsC92IZkkThltJw Yk0wtEu8T3PLf9NZShLiMk1LOwIE14BUc+u8dUQGDbjI7Jq+ib/6pKHKmmA4piyu27a/ Kygqvc3cAFqYGyVN8pNV6jpGZXb3H2k+hcRoakEyZziB/IfGCcSMZzV3JPeNGZTqdgm/ ObVKOsbllEwk7e3qORCQ1AyYz8S1AGc7tYwt7Qy/kq8H7MBKTctcK+9M0ErHwsNKwnYd LmMa5VIsg7vVtl7b9ueU7Vqwc3ucd9oJHGliXz8Dbx7AN36Cwyfk128ROoOit8crbH1i TQ7g== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@oracle.com header.s=corp-2022-7-12 header.b=zUAx6835; dkim=pass header.i=@oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=y5bk7MHa; 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 oz40-20020a1709077da800b007c0b7b5ff5csi32246657ejc.646.2023.01.16.19.48.17; Mon, 16 Jan 2023 19:48: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=zUAx6835; dkim=pass header.i=@oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=y5bk7MHa; 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 S235377AbjAQDpl (ORCPT + 99 others); Mon, 16 Jan 2023 22:45:41 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:45010 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235220AbjAQDpj (ORCPT ); Mon, 16 Jan 2023 22:45:39 -0500 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id B98CB6A47 for ; Mon, 16 Jan 2023 19:45:37 -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 30H09xT5012282; Tue, 17 Jan 2023 02:35: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=L7sr5iVHvKYFk62UwT4div4O+6ZS/l5NbPF7xnne2Zs=; b=zUAx6835+16afZ3+waUuGPMc3NTz5KjbjfeeWGapToBQPpL9j0vdF4hNH6LsWkHhSH9u U9DwLgbN81y/YWUWL3TpGu90pNFZfq+YU3HQ1BXDECEXM+39Ph3aQ9FJmIC26GuPn6qz Qs2Avo/FBB3CO43s/pHXQEmiJ5T5wxMpwxCYgCfltBsM/4IzIhQCm//mIADBiH6+7N5q 5zOzPZdpESeSwf144sgbqSeQWNWTbh6gCE3VN58dufvJZOCYkz5rLqFuNaPtAu9MZcns DkS5i0Elbz3dz86vU1z80Ev8Gnxo/zxH9UREeYTlDtxWBe9CncRz8/ALDI6cPZvRw6Xo 8g== Received: from iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta03.appoci.oracle.com [130.35.103.27]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3n3k00urd5-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 17 Jan 2023 02:35:05 +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 30GMXP44028373; Tue, 17 Jan 2023 02:35:04 GMT Received: from nam12-dm6-obe.outbound.protection.outlook.com (mail-dm6nam12lp2173.outbound.protection.outlook.com [104.47.59.173]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 3n4s2rfy4x-5 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 17 Jan 2023 02:35:03 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=EZKkjrKs7Tb7LymOYgv8LLB6ayKsF/9IlGrO2Z8gNcYWuHdFGrlsbTvnG1GWDzXmMFkEF8CBZOG4KV7shVAD1F3zS+LjXYwA8/AksDwTIebJN3veHW7PEmuh2HTrifoymrdy4PMrjPsHnhPdNy/V4kR/E1McStKlVhlK2oTBztn+FTmQUH1WsXun82gV1vT1yGrFuJy5HTO+yOdy7Y3ecNhVaH5+DDDQ1SoOW0F0gAWH8nPTdBWCqwv7pDAH70v9akFXP0iQkWlYU4v5KGc9czUFcggqSOTpMd/lbAu8TIC/onS1U10SsXo3RkIbpu4HyOx1d3GNBQzZH5vwoih5gw== 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=L7sr5iVHvKYFk62UwT4div4O+6ZS/l5NbPF7xnne2Zs=; b=WX0UYjUNR+xeNucMQxKsB5AT6UNg1mXg/6px7qaq3kWW8ifhCNynFJJOuWya53y4uQVzyEYXfxMZqCU/pvBoWQr43pGvp+5lHUv/a+pnkDzT5e3K3Sh04VoNVB0avMNP+sBScr/rPnyScVS0hVHr834ePDtP9+Woc7EmvmOccgmHr47+9BxierYZ1uBeNnkkQiHBMIxxkpXXxDXmB3H7kmqjg6+g/sjvXOMw7bWQxx9x82+XrTbHTEOfhpaPOtyw0nCxMxWQpHDT3SEQH+ykYN/x1ewAJ37H96CI2ueyzMCURlPhN+apWLVw/UEht8jJUzN4gPMJLzw1j4LWTk/+hw== 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=L7sr5iVHvKYFk62UwT4div4O+6ZS/l5NbPF7xnne2Zs=; b=y5bk7MHaZTCdAFbhBpLC0qtXPL4yeI9u2J6mP2uU4QQeqbF2DjeW0kd1pOfCVEjvCFqmY4zpGunMKLmaCxnHcxj570kxSen7F1mAvoDBJ12GediCPr7zN91e042TpRDtGpVI5h/OLrbPqvkUT5D0L01nZlNojcuii5V2rHc1YMA= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by SJ0PR10MB4814.namprd10.prod.outlook.com (2603:10b6:a03:2d5::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6002.12; Tue, 17 Jan 2023 02:35: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.6002.012; Tue, 17 Jan 2023 02:35:01 +0000 From: Liam Howlett To: "linux-mm@kvack.org" , "linux-kernel@vger.kernel.org" , Andrew Morton , "maple-tree@lists.infradead.org" CC: Liam Howlett , Liam Howlett Subject: [PATCH v3 43/48] mm: Don't use __vma_adjust() in __split_vma() Thread-Topic: [PATCH v3 43/48] mm: Don't use __vma_adjust() in __split_vma() Thread-Index: AQHZKhw1lelKLQnJrE+ABWDHhZ1aww== Date: Tue, 17 Jan 2023 02:34:23 +0000 Message-ID: <20230117023335.1690727-44-Liam.Howlett@oracle.com> References: <20230117023335.1690727-1-Liam.Howlett@oracle.com> In-Reply-To: <20230117023335.1690727-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_|SJ0PR10MB4814:EE_ x-ms-office365-filtering-correlation-id: 6432fd92-de44-4a51-410e-08daf8336eec x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: EQun1kJHLKvVfJrpj0a8X6SN8t4YsmdndkMdyw6s7LSur6/82JbzRHgneYTvejXarHE/73qCrHCEGy92O+bfVcuxZXoOdmGuT7AujSWkZy1uU8J+AZG6pKfY07wJJmknlV0hP+2jRUJnlU1+fHW7jna/wS4ZXdqdNCJPaZZ9ovKrshCU3Um/hkhP/2oBK85+tsI+a7NT6/YaipCpAo3W/qL/YkR1TLMW4LBr2zDq1NE8mKeF0mnFp8/VrsGhocSnFjNLMUJYgFLHURCgY9vYNjvgVDJhVhvg7MSXayiMryQJrC5Uz61euSXsL46FU2cDw022bX1TuVzhRhT9oip32CI1yeR0cClWuNoEWbvltwtVsKZILqUog0AA9gSwfA+D2m4dgzdr66JRcp/WwZNXhGA49RoWyqMG7dhhVaJtM4u2dvkAt6Jy4tK/woLRec+JzskzJZQY7/wYD7muetFhdg9C7BiLlVaOJGp1vZlk6lQn30scM3JCje9bz1puk7raYnuOpQw3TDqjkrgc3WfUc2DUexNGZcQR9rY3f99CuIjPsfYfxOr1uCtMQO35OI+m0efPx6v2EvCYpGn1DU4kDy7GuEz0cXew1VoYNs8ac+OtjRR/80hy1CKWV1i7H1IMxM/Gyba+cPLfxrmrkoFuEVLlqVJufH44pk2/RAbXKZO4AZ/9BFxjXpS2gcff6IPLYjzWl2PpRaL5nsrII3C/ZQ== 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)(346002)(39860400002)(396003)(376002)(136003)(366004)(451199015)(6486002)(6512007)(478600001)(186003)(26005)(6666004)(107886003)(71200400001)(6506007)(91956017)(66556008)(66946007)(2616005)(76116006)(66476007)(122000001)(110136005)(316002)(64756008)(8676002)(4326008)(54906003)(66446008)(36756003)(83380400001)(8936002)(41300700001)(1076003)(44832011)(2906002)(38070700005)(38100700002)(5660300002)(86362001);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?q?tlm4Kcv0r1Lc6SweG9lywdT?= =?iso-8859-1?q?JzQqYLDZi3rvHmSOHXZhbCMeJQj41HMVzPOi9KgrkylVV4n90IPJ1Pdc8/9b?= =?iso-8859-1?q?GgOHp4QIoqRMXhGWGnmK8zb1vVBFhv/dIKVwARmbt/lfmxEwWWR1BHb/aizb?= =?iso-8859-1?q?B+/I0I1nrDCe2r5teb7w0LcPdSp5JAOYkYOEbZXVvklUCH6pYhAT8BBJSYJ+?= =?iso-8859-1?q?wDOCVnjsJ14X0pVZ/xVB9uHaV365YVqCyF2GkDFhqfA5a6SqlX7NoHT92iu3?= =?iso-8859-1?q?3eEqY9afX66wAh3TsjBApsPvYtAEGOAYNrfawahfFSJlOZYGVq22H7ce0wzI?= =?iso-8859-1?q?h6bf1Y/HVfKS03GVWYAcb4Juvu2SLzJzJud9aFIMjEv79x8qhnS1DnfspQ0j?= =?iso-8859-1?q?OM8V379iNi29200EyDd8KUCSpIfg0OfS7aaTztbSiSugk27UHhTyvMDgHQ4C?= =?iso-8859-1?q?NZKMKubqNiqzxV36mLrlD4AunSU9FcZx/q88acS6y3HLUC1W8LKchfQqf7+T?= =?iso-8859-1?q?VgtqpKb60P5s88YmUf29/dnqPkTGDLedbgiFlsqUBNwpe4cbjRlvY8PgAwSE?= =?iso-8859-1?q?Lv8BIYh1C7AHrP3B5xzG/CA9J9ZHmZDqE4nzG7odBb0Bnudk5CBCD3BwL8MJ?= =?iso-8859-1?q?5ZogArZdIf0oz23LNvuWI5RkElRlp1Lj413MtEVbY4PUTRnKX+Es3SsaOL86?= =?iso-8859-1?q?vUf0YBdcCFATe1vdzymiOGC7DYaJEckMoDZ0ohpuI7s9zIsm0amcWKilBsxM?= =?iso-8859-1?q?Ob+s6GsvuwIWwIxt/flTsBRqxT82NneCcWzV5LvbmtzcT7tVyZVl2L/WQnON?= =?iso-8859-1?q?ZPrP7611idcwLYtBY0Qhk2JckN4gqHdHSB62afb090w2FaM4FuuPo+998pwJ?= =?iso-8859-1?q?Wxg94DW3Uav78W1bSWDuCH8dXSREDrW2keMRQBlS1QoxJthex9GYVgc95nU+?= =?iso-8859-1?q?rhRXfLacZTCC1Gps+M2p/aPLB+oDmMHY16oxxoWSUy5LdawydiyTkNE7qYKX?= =?iso-8859-1?q?nByyVQWKBNUTkPljOF8zXD8b7Dt2N31ts1F59XJBfYzZJiVvS99vAkomVEqR?= =?iso-8859-1?q?74CSbPXHFm3MroYvRhPVVyoF6eSQBorx3mMrco+Rr2G/R9QlpCxs4ya6MOef?= =?iso-8859-1?q?PO7ggpwyfJwUGHxVbQANV0TxFwCPobOs5DHPceOKfGtMs64F6KUP9aH3obdM?= =?iso-8859-1?q?UcLrp1gOcHpmWtp7z33fcOLF07xrb6Yeq46hZHZdBelZEv63Q+00t+09i5U7?= =?iso-8859-1?q?uNaZ8i3GwPlKNecbFe4w5eSmIUuSo8547lxa0MxhtoQYA4Q4wjbRKeD/CnjC?= =?iso-8859-1?q?Ny4Ujj4qGUWv5JssVf8YjZlF3ghP+Qt7bhsaNHDpdzWzBVBKu4mTn6k3/bhU?= =?iso-8859-1?q?D87GvBhIHDAQLt9CDSS0/dJ6SOHxvVfICXHJ/hRijJXhcL2yhKYM5B4v7Sni?= =?iso-8859-1?q?snE7Y9vM36NXDM+jSJU5tOa+Aje6NF7GVKt6xQA9GY8cIKqSbj9I6jAtpWla?= =?iso-8859-1?q?+re97Ew3G3326FcusLig2c1KBHihV5ajO+eeeXEziUA3lezn947cUp0uIqhL?= =?iso-8859-1?q?X1IzXL+3J8vCtoyZKyoTzEFZMZOj96x7Qg+9vBqCSwnfPYRk95x2D7KCfQvx?= =?iso-8859-1?q?74jCpK3I2fTpJRxPusl987yyFSHE/4MSbxn07XQ=3D=3D?= MIME-Version: 1.0 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: NzSkDZQ0JH44qL4vhsSJytwMRPIZI3UQ/Zah7mmutvoN0b+QYe18yOazic3CDYDz4jFfR2fXiNuJCmmqbnArehyNpwIsqoOsBYAMt7bNN0zbsXGvKQkO0iTI6NgtwdwawGsHz0IUex7GD26PhhWnuPFD6XyxlT8akx7gBHT8VcKaMgIoM0QSu0yiqLoG+JQ5YQMD0V97qGPAwPpLPoyW9t6aIzJ7FatU09WslxRV+fL6Ihy7SvoO1e3rhAkUtbJYpeqiSxbjHWbSn1iaNoUs0Biqli6A3ypwXANhmYo1j3JdEI5kzFLcKlTj0HTRCfqjjMC9laE4CSRSsSCV/KmA1rf0JXL7IhMAP5yTFgRSsogRJzW1NGtOlQpQ0lVHzvEdEERfHwy1UICwMyWLwQN1cI+NWq6XbVraypySUutqlS8SWFNrY5NN6GRBMlVyMTvoEHC26nLkHpdO8ebRyZY8P9eiUt2X5+YwiE+te8VUQWkHIme6ar8wrrEQ+T58M/9nJNL4de+tYSQVm/9MMCya9C6aEA3wGJ3nrk6FFX8Z669nECVjMpqrwTwKyy5MZZzRbrFhK24d5zSLr/XLJ7kvlFcAvVraqzKvvJlpygHudaCnth7FkhDFY38ZMd6rBANYp2SZrgGIvXUe1Jv2+Yn/29Sxc6fpGxjS3UDOMaD22qzrKbFP3pTcGkDJo58htPnxx1kY6p2W1HTq+pTpwOklQrdLWOuIWyqtuy6hMrnEWv/2tKb2LcBP8mdPYUy/rhX8Ql79SmMSfMpvaZ+8qjpWTMsxkOGo4jcq6YdEmg3ZfKUTTKlruV5uosskcveFTb08fTUKaLDAZTt1Ic15Frc7m/lkNeQGnjxjRG5dkasDyaXe3/IunUxBM6JGrzNS3B94ZWzxbx6tBw+T5HXLDwe4uQ== 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: 6432fd92-de44-4a51-410e-08daf8336eec X-MS-Exchange-CrossTenant-originalarrivaltime: 17 Jan 2023 02:34:23.2807 (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: 0TLanOlU6LzVhPfsnr6EZ3MLAO3Gyzi1KGhNfptDmw2WijGSpNMwhn4ouMjFzUBsf4MHlGcrogMcjdooy8ok0Q== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR10MB4814 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.219,Aquarius:18.0.923,Hydra:6.0.562,FMLib:17.11.122.1 definitions=2023-01-16_18,2023-01-13_02,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxscore=0 adultscore=0 mlxlogscore=999 suspectscore=0 malwarescore=0 bulkscore=0 spamscore=0 phishscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2212070000 definitions=main-2301170017 X-Proofpoint-GUID: 3XqVJOyntCXhegs5hRvCD31zP9ja2_bF X-Proofpoint-ORIG-GUID: 3XqVJOyntCXhegs5hRvCD31zP9ja2_bF 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?1755240016618434882?= X-GMAIL-MSGID: =?utf-8?q?1755240016618434882?= 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 | 118 +++++++++++++++++++++------------------------ 3 files changed, 60 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 b28f3416b60a..a8c941e3be84 100644 --- a/mm/mmap.c +++ b/mm/mmap.c @@ -695,7 +695,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; @@ -708,7 +708,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 @@ -799,39 +799,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; @@ -850,9 +836,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 @@ -1034,20 +1020,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; } @@ -2187,11 +2172,15 @@ 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; validate_mm_mt(vma->vm_mm); + WARN_ON(vma->vm_start >= addr); + WARN_ON(vma->vm_end <= addr); + if (vma->vm_ops && vma->vm_ops->may_split) { err = vma->vm_ops->may_split(vma, addr); if (err) @@ -2202,16 +2191,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) @@ -2223,33 +2216,32 @@ 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); + validate_mm_mt(vma->vm_mm); + 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 Tue Jan 17 02:34:23 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: 44457 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:eb09:0:0:0:0:0 with SMTP id s9csp1523042wrn; Mon, 16 Jan 2023 18:48:55 -0800 (PST) X-Google-Smtp-Source: AMrXdXvoKHXuy2JWuS0qpLSAIZNaUuvbyYE95e/zpyZ7sX2DWLEaa9m5t9ZD/Wf7N50eioRZjNv6 X-Received: by 2002:a17:906:4096:b0:79e:4880:dd85 with SMTP id u22-20020a170906409600b0079e4880dd85mr1131951ejj.47.1673923735295; Mon, 16 Jan 2023 18:48:55 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1673923735; cv=pass; d=google.com; s=arc-20160816; b=WhA12a5smj8PWpKHkX2LkPBLITBGOWJPHGsBt3yc2cAKWJpSaqyT9fsz5Z8n1usQJ8 y8zxA97ie8Mfd7GQomERl66BEI6ixV9VWfB1WoLk1g/uasG9AQe5Lm08XG5HPNbZ5Idw 5im4i0nQo8/eXn78U8IrgSobfUQ5PgHbNRacr01TGFTTYarOrn2nIcieEE2QpFqwkp5H lZtdLhB+vBo/a7s/srgxfOCSZADANLhHVFKlHnLkeK8XlV28Izr2Oj9P6QEm8U2wMHF+ ocR4dT6EB5bHuswfIeOnLe2jDMetgAlXBQRxE6B6tQimxUTHZ4t9q4D6gH92SUkPp7yi uvJA== 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=1BgCv6KPHQPA9madWtiugJOXRBCoZ3mSdPjJPZaavpU=; b=Qt+q1ut8mT1dn1Nk8fAiRf+trwW2FiZIv9m2ZkUwmJSysgPZJk7oQ5bvkkzvWwgxvw SivnUwjkdY80HRihXkaVfoDRNk241nbxYuiy0twvbNWZdV2Ri4TrtsmvghmM4HsNnGJQ HCNgzh2wAmIAEIgrm6Sdyafqaak/6P61HXWTVDTXy5hClT9sqRJJyQ4a6ZFY21KR3hmh ZlAzcVtzrupDB0JHx1I3YbrpfwKyCq1ftiBqu5MuNuYln85z2/r3Tq3Y2QB4ou7ZpHxx AKvhC+ihygchyOtH0W1ha7W9+3OD3SqACAaRxTTdeCa4Um8d2ej1ljHar7eU1QHEsne2 0inw== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@oracle.com header.s=corp-2022-7-12 header.b=eVK5SD03; dkim=pass header.i=@oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=J0+dqPRH; 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 xj4-20020a170906db0400b0084c3ce2f3dasi33220494ejb.738.2023.01.16.18.48.30; Mon, 16 Jan 2023 18:48:55 -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=eVK5SD03; dkim=pass header.i=@oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=J0+dqPRH; 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 S235248AbjAQCj5 (ORCPT + 99 others); Mon, 16 Jan 2023 21:39:57 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:39122 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235572AbjAQCis (ORCPT ); Mon, 16 Jan 2023 21:38:48 -0500 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 144C61C336 for ; Mon, 16 Jan 2023 18:35:58 -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 30H092Bi023154; Tue, 17 Jan 2023 02:35: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=1BgCv6KPHQPA9madWtiugJOXRBCoZ3mSdPjJPZaavpU=; b=eVK5SD03i7wLzTutUqXuUIWd53kh9BMirZKSypt+58dks5NHXPpjJKYbg22+Q+EMO/u/ XVFggwiHHWmizpwdcL7OYVl/x6bw28rA7Q0GnXzhrCGVJYVC7O8BEe/oAmWAibH0sV0m BXjvf21uxN16may4r9fgjMwxBHvR2+2f9vs2ml/GhlbWo6SgVqcMGArQl4e7oUTSsrwc VqjpumgbhWadIDo2o8m2CRL098VniqWWMUUTbS/y04C+f9EvN+W7u+bMCBnwNMBkxMrV T8TIoDAY5nP+moOwdo0CZUaCy65TjiPZxqotC9XKcbYm4pLr1PQFT7dExW+n468G529d IQ== Received: from iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta03.appoci.oracle.com [130.35.103.27]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3n3jtukq2t-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 17 Jan 2023 02:35:04 +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 30GMXP45028373; Tue, 17 Jan 2023 02:35:04 GMT Received: from nam12-dm6-obe.outbound.protection.outlook.com (mail-dm6nam12lp2173.outbound.protection.outlook.com [104.47.59.173]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 3n4s2rfy4x-6 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 17 Jan 2023 02:35:04 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=GImZAtuUCm4lZXwg8T+5V4LRMoT5bwpiMEcCqIaa9ky9yoQXGY7KSvnNaVhy/bEd2qrHVJj/1N8L/avFjXyNL9tdM/laLj5OLWMp7nFtWuaj9OC4I/dOckaRHda0XArr4b/5CjJe2JLSLE+2Bp8p8Lq04KXK+vDBje1woR34w0a+W8MsF0o5lwrR9WJefHrAuTaT+AxbbYaEJvJk8yByYFmEX94XKxJr20ELU3/xD9m3UJroqyjxXHNnW2+j+BwMuqAmmHtlBiA0i7aJSXWBAt4MkGx+R+/+IngIHo/WwXIZKntdn631v69ZU1jI98h3Ot74ml2Xt24V5llktHaSww== 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=1BgCv6KPHQPA9madWtiugJOXRBCoZ3mSdPjJPZaavpU=; b=bMdBZBQ/7KIQTnLmpWunfH2DzZXlAricFIu5+fhgW+cOdbvY453rooSXkstktGDQDFgsb0moX33W6+MPTH+iVFeVnNU86pZclP37r1+Rln3DoseXIe/hEaPQ8LDD9BXWo+cI3P6o1rc2BmNtGMLoAxZyy6RY1ie5pBu7clsfhvr78Yt8PBCrNZNcmPmLCuTVyZnz6IGnHn7hvyfZILOH5UO8kMiB60GoyNBQzKlHdZ5nwOIsjJwr/91IGN3y8wskOhJ1DsFdJJCifb1x0ivrPPuYMgOiGf0g/MYSIbUeWrhJsQNWGoDEJUYgLGJOAXry154DqZvbKfV85CzZTVjmHw== 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=1BgCv6KPHQPA9madWtiugJOXRBCoZ3mSdPjJPZaavpU=; b=J0+dqPRHqo55z/gzFvA+cBkHOT0r79SEAk8pnby+cXFe5fONHKyQqp2M1/vpzjZIuIS/fY3Ht4Qs+4vgMI/pTqeGUp6+axW6SZaIDwSThc5H7+M35uhYKZYjWiJDqNzAFeF9nyopESbaSYYS5mjZauwkSPkhVMjnrc2b0TqCqqU= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by SJ0PR10MB4814.namprd10.prod.outlook.com (2603:10b6:a03:2d5::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6002.12; Tue, 17 Jan 2023 02:35: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.6002.012; Tue, 17 Jan 2023 02:35:01 +0000 From: Liam Howlett To: "linux-mm@kvack.org" , "linux-kernel@vger.kernel.org" , Andrew Morton , "maple-tree@lists.infradead.org" CC: Liam Howlett , Liam Howlett Subject: [PATCH v3 44/48] mm/mmap: Don't use __vma_adjust() in shift_arg_pages() Thread-Topic: [PATCH v3 44/48] mm/mmap: Don't use __vma_adjust() in shift_arg_pages() Thread-Index: AQHZKhw1tU1Rx5vwfUi9LCp2M7SsaQ== Date: Tue, 17 Jan 2023 02:34:23 +0000 Message-ID: <20230117023335.1690727-45-Liam.Howlett@oracle.com> References: <20230117023335.1690727-1-Liam.Howlett@oracle.com> In-Reply-To: <20230117023335.1690727-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_|SJ0PR10MB4814:EE_ x-ms-office365-filtering-correlation-id: 082412cb-0bbf-4825-9f6a-08daf8336f2c x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: qc72xEoAijJwk7pJ0JJrDYnZB3SJlNDmTJDsrIZB5doUAxMfkFhXNwW6C/Yx3dK9k+aZyo+n0KacKKNqOxPl5Bh73ecNvQS3cLaL9QBOoc0nhSoDtT8NkneeuBw6jDCZUMr9mqp7lGshlIIAkIzQ0F1F3QLh5X/z1/zAyCShE6bgVlYn4k+NzK6NypimkxsplY0PKpdd811SO0StivkwbeX7/QDSD55UCVPNPmiTL9IXxJk2X3kdbkeVPTZZtPuRqyn8yg3FnOm9uhOn2c+0ClAVZ8IfUFmAjx43wgYKjbaD8jVqs8v7eJOddr+1vU41wiyD782LSltT4cF1E7Z/NX/ctpczRW6pmwvmoaL/APhlp5bhYAMY1L+mXRz4MUI4D8eYS+3Ke5h0NmQkvK+YjPdp8IEnI0izw5OVfb11LNfuDt7Wntpu1+Te99LllOxBPlj4nFCP5G/72ChORX6Xp63wG1yAsfZEmfXNTgN8oO8+vVI9AV8G1mOMADtU7MFTJFNVKKQD8JAjQnM9j5zOFPmBWXQ6ccs4iHb55pI+aSH6mwPbFGYvqYr8+d2SkHL0aH68YaEl5bLbFN2rqYqv4T5yKSw0HMGIBdEfGj8aGq0PcT9ANWtbYWmf5dx0cuAPQ6W9GMjWvihmieBo7SC7l0tDCz20h6G2dlanXcsc9xbbighmg7S7q+b4EDAk6i6WiPoyY52Q0Pl3+mAFo6peHg== 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)(346002)(39860400002)(396003)(376002)(136003)(366004)(451199015)(6486002)(6512007)(478600001)(186003)(26005)(6666004)(107886003)(71200400001)(6506007)(91956017)(66556008)(66946007)(2616005)(76116006)(66476007)(122000001)(110136005)(316002)(64756008)(8676002)(4326008)(54906003)(66446008)(36756003)(83380400001)(8936002)(41300700001)(1076003)(44832011)(2906002)(38070700005)(38100700002)(5660300002)(86362001);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?q?gL1mQ/hGofT93C+A3EjEiXb?= =?iso-8859-1?q?X/jfbmevISuJdygTTsAC+u6DXfWp1oTJPE1ahRrkvXmtMSIj1HJh1t0XNCSb?= =?iso-8859-1?q?p7vvpzWyzVf97OFXt+XuE3DTiVnMfRJLjv5LU8moOwoqIqaLng2TncOq8vNJ?= =?iso-8859-1?q?z46RaaOjOB6J4LPVZF2/W9EnSUKE0+PAUKcMoLbk9CfWZK0CLAzY08dEY/yt?= =?iso-8859-1?q?DjL9CoE1WINFn+1y0hSDcfhHuB/zz6FtSDxIcI7NUy0PoLW1uG8rhVVEGxWE?= =?iso-8859-1?q?94oUeyoBBesZ3o3QWgCcf/j2gyoiPYaKAvu+SnMkY/sFLShGuGTT4xgCXlBy?= =?iso-8859-1?q?xpQrnzeB534VLowLotDP9JCfJUuytyIZVGWQC6utHFgkRnJQ35XgQv4BC65+?= =?iso-8859-1?q?wI9cM0sgylS4J0qUv9t6m+2NMIve4numq/2WOm+il9qlbXQgReC6c3klqNRI?= =?iso-8859-1?q?yumLmOS60yiday3wCuhzPK7m6EApNP/0ArPNoOwSvshT3oy7++vtSQPIrWDy?= =?iso-8859-1?q?p/yy0+/cKQTVkk2HdB8K4GIrfsaCzEfLQZf9w6rD+XC5VSGPY1OBGwQTRs8l?= =?iso-8859-1?q?9Qz3WfbrDSGcD8oGITycnllUTa3KvbltX54en4AtnE9oywzSrIDlbZDiigwp?= =?iso-8859-1?q?0sDIVQP+kEzApp5KRolE9zD+gww1AqjK6+d7sQGxAZWYrgV8acWGJYyCfZOE?= =?iso-8859-1?q?yaf7s34n82NpF5uLkNTceXFviH2ejREGEx/+Alo1A9YALKtqdFfQoilGqtI4?= =?iso-8859-1?q?P4Pp/fXyKuG2PQPxUzsvgqYEoP0Ruv+qNYrgUj+Xps165FTAMsaYCfBrvLs4?= =?iso-8859-1?q?vggXbqkd2zx+xXsnn+k4vqf4BFrbbvNyEkIRjBi+P4c+HIOruU4cuKyvkbT8?= =?iso-8859-1?q?eSK1YMsGxHH+EFqwGZKANu+7QhjQ49tQCx3hpkrohbyVZMIMT5fZFgvAoSOB?= =?iso-8859-1?q?ExhvQrah7g6JvD2tBjICZkXbl/p8kS18cZrrD9NTu/ROAxackJI/H/FGowm8?= =?iso-8859-1?q?LuTUZsaIxP6zrIHhkbIFzPfUKON+1+Tdas2FT2fQzA7k/oDZky2ydQfE2L7l?= =?iso-8859-1?q?xAkcLQZXzFqKlT7s7N4OMrAKRwRIf4dXtT4yG0tDBrHKos+rcQjB47274GT7?= =?iso-8859-1?q?EUmKAzNSXv6N6bO2b9IJnFynwHO6oxoxCRVsXYLHcEm4qwv+BMx1xR/x3sAs?= =?iso-8859-1?q?jg7DfV0wfoPB0eBrzGdJSmzeTzgGZ3dOgzBUSGOfBohkPx7FF4vsbVJJ2ymC?= =?iso-8859-1?q?2JI+QEaIqAPX1gwxk5+uvv+42Nu4pd8m6/J5X3J8pBYTaDuHy3LhFHzKt2Ui?= =?iso-8859-1?q?Mq1hTk7ThTBl9tMwD34Nj/PPVw7gwhOEVZHkUMo27mtGbQNaoYLa2z+YdD+L?= =?iso-8859-1?q?Ol2Xak5f+3Z3Mq/YPaqytmQd3MBrcJICIlVnyr1D3W0pIS2KUPgWvuvrhcty?= =?iso-8859-1?q?aoNjxvwCQaUAd8TqPsS159CtLs1S4seDgYHUeMFvP0nBFniTkWjWHnK2b/In?= =?iso-8859-1?q?htw5JmBCqGA31t9iu4T3yWhPgBj2C8i8Hl+97nE9bdrmgsUlYb98ucphJ+PX?= =?iso-8859-1?q?aKpqV3fdbsDwvKkpXh0TDpMHqsraRELTFHQqDN8qCswJKz4vt6snmMwfeetm?= =?iso-8859-1?q?rBD7ufRbl9oc9ibXHYDX003M91A7MxzQZiSB7mQ=3D=3D?= MIME-Version: 1.0 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: ENwXwpWAKVpLRdUeYnNKU7FjhWnb6FQOvnczwFBFsw7ZjKB1AkUUKVB7MFmlVMengC9X93z6EpSJ1MI3ml6Iz/fvwQlm+XdtHEKL8h1WEXhhxjfgbR0oKBm7LH6C5sR1Y43o0Zjg82ASfipOaeZLOwagmNiXZelyeJsee8Z4Z6GheYmbvhnrci7IdckLjTSVEsFsbMeyu8niZvQqR/MDjfZHdGP99tHTr0fKHM8+Vq7o1f++8SdPB8zByu6JNq7MJojFLWRZKvo9sm/UBvkiRfdOT1omaTAwtRiXdGTshh4aAYsFmCIfdJWJ2bBekxVjyphweGNyydexeBcxknwpjxM02bOUTDOS5TbosTpb1X/MoWW+wYmRaXpaKp0O2/7lhNR80KzVIladnCTHsuRjXFphAx+PKvlY5GSVkqFZZogQu03xr0hkoTwACnL+sc9FgHx9uyKoAC8rIJGbyhzMOcQRm7kAUvUgOHylthOBBx9UejZBrRFnxd7U8oWDf+MXyampjm+poUD2oeR/lsfBgFFaA7oOAOjXt1FbXn9phmH5Jve1/vu3+F4R6+SMTJG4LDwXIA2ONE3cohTWkDvqseDFr3SLq+IGwYj3ul6c4APl4XNunnwXSzGmO/URkfgTIT2S9g0e0Ie3k9rspw+Ht72Usra3cnuIWgbq1c5gIh5N2K5PFPcdF76ii75AlLXNlzoeWDvjBr2hw4XZ4rroQdTTkLiwhEtInzVkjuKaq7xQ3tVeXUUFsrj/emGYIbNje03nc1s1MiT40vvf2ObTpoqmq2v4cBGHFZdU3R8X5jy7NgfiVynmL7ZOirNaUQm9b4sBEdh9MKWz1hi6k2FRoPOhDZeOINI+V+IGhGDZR/rm95AKGTYH7DPKq8ncnUUocRotyHTEZZXfORnUn6gx4A== 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: 082412cb-0bbf-4825-9f6a-08daf8336f2c X-MS-Exchange-CrossTenant-originalarrivaltime: 17 Jan 2023 02:34:23.6088 (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: SYXoq9EBK9ube2ivbb195FZer9T7dwhMML1J/R0weSkPg2SY98lHGV4L8/5O1YCsG4HY355LeE6G0DFArphpWw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR10MB4814 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.219,Aquarius:18.0.923,Hydra:6.0.562,FMLib:17.11.122.1 definitions=2023-01-16_18,2023-01-13_02,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxscore=0 adultscore=0 mlxlogscore=999 suspectscore=0 malwarescore=0 bulkscore=0 spamscore=0 phishscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2212070000 definitions=main-2301170017 X-Proofpoint-GUID: HMD8jwVCL3Q15RGzH15oO5Xq5Y3B06yR X-Proofpoint-ORIG-GUID: HMD8jwVCL3Q15RGzH15oO5Xq5Y3B06yR 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?1755236254570580323?= X-GMAIL-MSGID: =?utf-8?q?1755236254570580323?= 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 a8c941e3be84..a6e07edc15e9 100644 --- a/mm/mmap.c +++ b/mm/mmap.c @@ -637,10 +637,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; @@ -686,6 +685,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. @@ -801,14 +838,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; @@ -821,7 +851,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 Tue Jan 17 02:34:23 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: 44456 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:eb09:0:0:0:0:0 with SMTP id s9csp1521775wrn; Mon, 16 Jan 2023 18:45:24 -0800 (PST) X-Google-Smtp-Source: AMrXdXsHwczc2X/5rYelEdt7fx7IJUd8Ts8pLVgKJJ9ZBRoS0Nu/hD/qvT3GzyccgauOcQeMArmZ X-Received: by 2002:a05:6402:18c:b0:48b:c8de:9d1a with SMTP id r12-20020a056402018c00b0048bc8de9d1amr1379309edv.37.1673923524755; Mon, 16 Jan 2023 18:45:24 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1673923524; cv=pass; d=google.com; s=arc-20160816; b=yin37G1w+/LS9QQV+ozoEPTjiHMbgwGs+PVEQJHVkR8ud/uAABYogzJnJ056e+c2mc B9g+xF9F7YXLSms69mXQsgAe50IVrL/8w1BSSx7ZG1zL/PlM/t6Qo0kMGVYtCBqaasSg M3Od3T0M4EdUeAtJe1OsoRpAO9UBJvivhaj4oFsmjIfgT/QzccPwzCNoIQoPy7k6xxRm FdqigIcJ5q/tbQsVGoGpk/EbxzU4Zu1gRGlCOyhlUuWbUbOWTwK6kH5ofuRNjkfej/I4 PWB6r+HqgtMQ3ZuEKmC0G/YFu6dYvfdiUo0bXd1iP+sv7NF7f9+x3g324DOv1SkEpYKr 17IQ== 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=1f6rY9qFttPrOxBZmRkBAKJVju4/6CJ8NXYhpVEaF2M=; b=Td//jCLm/ENVYr8R+cbh9aza/tfnQs4dUMa57uBp2iokxfTEC4wMY6wPR8m4pgK4gm MQlEWDP7xaDfwNhj7QlcsW1hNzj3Rm5qb1UNsVQDREmyRyF0LhQeMGxjeGfHYUU2EX3C MASMiOd6u3o33rPa0OJTF//U8gCmoLI7nw+UnyKsOA3Qrd6k8YDrO+PWf0IRO3PY3u/L AlbeU3P3LTkkEiP13ioG9oKU9jn5Xwl/Hp6WQljwfSpHEguHlKBn01K0jarlRF4KAHq7 yzPbkgAA1RPt7yHj8zfRZEolHWvUTRtt4616Tp1fLiFM7+3bc/5L33uZ8SN3IdLdzLiF LdJA== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@oracle.com header.s=corp-2022-7-12 header.b="fjtMgj/n"; dkim=pass header.i=@oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=QvPZuQMO; 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 r16-20020a05640251d000b004676034f552si13196549edd.45.2023.01.16.18.44.57; Mon, 16 Jan 2023 18:45: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="fjtMgj/n"; dkim=pass header.i=@oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=QvPZuQMO; 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 S235579AbjAQCkJ (ORCPT + 99 others); Mon, 16 Jan 2023 21:40:09 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:39246 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235587AbjAQCjD (ORCPT ); Mon, 16 Jan 2023 21:39:03 -0500 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id D2C0D23115 for ; Mon, 16 Jan 2023 18:36:02 -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 30H090PL000919; Tue, 17 Jan 2023 02:35: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=1f6rY9qFttPrOxBZmRkBAKJVju4/6CJ8NXYhpVEaF2M=; b=fjtMgj/nVOh0UNL61/VD8SKAESl6/fl78R8Bsf50KigLabjJjha2Kske2U6XMzuj/D39 Fl7kp/QKI89EyPcCRF4JDqBRCKEiwhP297rO1xgLaNdo1tiUkx8SzxOB7XQDANgZO92u tGw2rZDrQfSRqoKYMYM9Sduj1EUwL18Ukst6fIYWp/53tpmdENdyeUpk95BZri0/hL+t uY6iwmV306CgOMQuHlVqI+dHPUIX8BzLdt0/ATT1rTKH9gdJrg1eoTXvhooklOIHTO7n QBqK9mHzsLmcXyCa3P2XiiwT0Dh5/XI48yNIt41qlStWgNfeVAvbB/0kONxIM+L8x08F Kg== Received: from iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta03.appoci.oracle.com [130.35.103.27]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3n3medbqc7-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 17 Jan 2023 02:35:05 +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 30GMXP46028373; Tue, 17 Jan 2023 02:35:04 GMT Received: from nam12-dm6-obe.outbound.protection.outlook.com (mail-dm6nam12lp2173.outbound.protection.outlook.com [104.47.59.173]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 3n4s2rfy4x-7 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 17 Jan 2023 02:35:04 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=DquEW4x3b3j35ixQ8gC5F9DxPf5HP5UIEUOVhmU5XzvFv1FIbq9WSphfS5+abF5unoAL1h71ZCQozr2aQNkzksHzMQb/M7dzgsRxCp+4rD8AXs0K5UW2KKifmFJS28VV3nM4vzyfHNymmisCHkk2LYXD6UqarEbOPqbS63b24I41QmV0O5jSB99HjUDhxDK76O5UKrE8A9pUEnNrTlUitGZg5C054rZPWDhum7qlIvEL/eMiTUDXMVoDJbl66/yVt7pSNlL2yWyqbOQrlNQMXYdBiV3NR4b3aBnR25PAPiqHbdSJanJx3LSEstVIlNUNIBLQ3Cwg08qUiAWFs+VLTw== 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=1f6rY9qFttPrOxBZmRkBAKJVju4/6CJ8NXYhpVEaF2M=; b=Ul+mT97XUdFHYh3HtTMXRoATZrKtf8937JhGTBTfYADjbCru58svDLU3Ohoj57Gn/87auxTg1k3RzL+ds3ZE1+gZraYgvMQ1xPQckCUfwdIAcSztN3JslLoJDrOkEOg1mM1aiJWMa9/iqLHZEENTUGHl3HR5D0x1NXzTfixpDqvTZdaR8mDeks+77IdsWOcdAzLCayskteRDNwSQGQAnP8yvI36swauSU5jUwp9MdGnbQ64W5fV2q+7nZ/nbp/6LVBoexKKY9rTxvR0MYtUbMBT9i8rJ4LXRZkfXY9Ikuzy/Jf5XZtMhkYFvbQQEt/0spzyX1Rd7QwV0nWLXqhX2WQ== 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=1f6rY9qFttPrOxBZmRkBAKJVju4/6CJ8NXYhpVEaF2M=; b=QvPZuQMOWS5AgIdgjuMe0hvN7mrgCIBlVJlubSbbJXL+1t6EJF73MZPO8D9wDkh74N7WPkpeLA78aG79AUDHOQwV+8hG1DpAwtN0KBZ614cWj2pEcMmQ/ACIE8Drpr9/NOKr7CqJHtX0pFv8IwbXpaRDReO/Lzcz17HtKcfsRpA= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by SJ0PR10MB4814.namprd10.prod.outlook.com (2603:10b6:a03:2d5::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6002.12; Tue, 17 Jan 2023 02:35: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.6002.012; Tue, 17 Jan 2023 02:35:02 +0000 From: Liam Howlett To: "linux-mm@kvack.org" , "linux-kernel@vger.kernel.org" , Andrew Morton , "maple-tree@lists.infradead.org" CC: Liam Howlett , Liam Howlett Subject: [PATCH v3 45/48] mm/mmap: Introduce dup_vma_anon() helper Thread-Topic: [PATCH v3 45/48] mm/mmap: Introduce dup_vma_anon() helper Thread-Index: AQHZKhw2qsa9amlaRUC8A0zX1St4PQ== Date: Tue, 17 Jan 2023 02:34:23 +0000 Message-ID: <20230117023335.1690727-46-Liam.Howlett@oracle.com> References: <20230117023335.1690727-1-Liam.Howlett@oracle.com> In-Reply-To: <20230117023335.1690727-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_|SJ0PR10MB4814:EE_ x-ms-office365-filtering-correlation-id: 98b4ad58-6046-4fff-391e-08daf8336f68 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: KiujzPp8ZhVpYbT+xnnpDisHPxSDtHdtKHSOSC4xbhLAX506uPPhlk0f63MuD5qTiwRhFffOg5RxFaBH7jHTIewgy5GLr4ebdux+wMTh98eEYXpxl1nvCFqxCvA4AEhhR6xdAZGczsXoDBHUW73d2q4jxNlTd3/2DJsmQRBFiSLThWzj48YsDRK7/DxcAAg8SWOLGcEQzconaPZ1iD1kiY6M8HFdb4keeEev8JfnyxzpYMSmYlhu/NBGZ007EWnOZrz94KS05xM/4tdnNwCFb6u/mfwRekDcEHte38hdRDozRdsbH0TXKnNgl6xpblCZi7Hm2n7eFB/iNGaZrgET4QCjDQXXhwyS0YCd31DoAzQ3KMHOZXRaYgaUAxO9dn92bSEbt3TP0OAYXQ+ICcgz3vj8ExeXksp66EtWMt/he1aUwqxpYH9zQmkWyjBF9GamOWxubTBGE2buaRQNGqYX/aNZoGIyER7xpMkzhDAzJbYSlt6GjQG2orYP259r2L0L18AgnyXUlwL1745iEHOZjxNot33gt/9n5+QAYP3WZXoEPsJNKDMknZVhvtEupXdszKCXSL4ortq/xXarf7/66TWL5tiCS83lk50rl894Ly60cF0aBL82jpQoHbw8xZSJO1ienbybdx6UPF4qqpTHeFTih7DyIfzvj2tz0Z9YQ6tGpV62yFFUCUWWtep7uyRdL4PatRCVJUu/FgpyQrtX4g== 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)(346002)(39860400002)(396003)(376002)(136003)(366004)(451199015)(6486002)(6512007)(478600001)(186003)(26005)(6666004)(107886003)(71200400001)(6506007)(91956017)(66556008)(66946007)(2616005)(76116006)(66476007)(122000001)(110136005)(316002)(64756008)(8676002)(4326008)(54906003)(66446008)(36756003)(83380400001)(8936002)(41300700001)(1076003)(44832011)(2906002)(38070700005)(38100700002)(5660300002)(86362001);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?q?ukHcNgaHNMU7CafEYPWUBa/?= =?iso-8859-1?q?FPiHqF1sa3d39ikk+misuBMNrodM6Gzo4eCQD67vskSjRSN5jzF2bpmnNJLL?= =?iso-8859-1?q?Qd13rYsOvHSpDV09LUK4PWC8WodwynXbf6sCrbThq8C2QlWc33EHuNDvBrTn?= =?iso-8859-1?q?mHrQ+jobLtN/EoO0j/kj1afRXtlrHbPLP/cL7ueR//3Lcw0ccQYJYEWt+0lM?= =?iso-8859-1?q?s7OJcrukAJBVRKx92S48etlw2M22NaT0obESMrAefhWIIJQ6Jcsu4hORpHNi?= =?iso-8859-1?q?eT4H3SIM53siGuGaEIEiUmYQkwRNtQlVEbUTiFMm43tutkiJfn9A0X54PuxT?= =?iso-8859-1?q?2JEj+NFntFNI6WceR/Rd/lNpLev562PCo8RhTrldl+yB+yUS4IkpVQ4+HGNx?= =?iso-8859-1?q?CYA0M2WgoxaaUnqr8OIDzy55mKFQZuiXVpfRdVN99QeKZQNARt8iLUVxMEYM?= =?iso-8859-1?q?8MtzfZczlsPgjmpJFZLY0pT55qbT9LhlzL4bo/G5axq+Z1Loai9BhnJ7niq1?= =?iso-8859-1?q?AthEY5PBJVOy+j/QNuP41IE4P6wJEKCsQPRjbDz/t2B6lRk5FBVunTdQ0hu0?= =?iso-8859-1?q?1PRInKrPWarvx9dWCzjlx+5BGW0PtRIF+cwP2iify7Bt+3vcXHypOgBHl7YP?= =?iso-8859-1?q?AEjdxGyggrXKXvowqJB6Ctbuinnf7QnWpM09St9iS5SpTOEIo5YU0ab5gAab?= =?iso-8859-1?q?2x6MJZnM+okI51F2RqV1UD6R4b8JQ8MqvyuLvFJ7Z22FsrhCoODZhgGqVKPN?= =?iso-8859-1?q?7BlPVsw/TxU8NI5KL2DIQXPxTk1AtFpBSkso84rENJKEu7LAEUWSc/8LAysM?= =?iso-8859-1?q?R7eFltajTgEcCwoCRgfdmWbvLsKJ0vPu/ymTznTjymYjtYYDT69NWdLbtf+i?= =?iso-8859-1?q?t8jYNl9+KD5Q1j4sR3W5ai6QQsflWulooXqMsqZGExpOesN+y7110+FzaYBN?= =?iso-8859-1?q?ZSPSKiJTQzTCR5DkKncH0wwq5xDhcDKwUS19KL/OV+EzQy0pTcjCtWX0oSy/?= =?iso-8859-1?q?cTsfn6JySWobozh3l8FuvNm7H1zIysstpfTjiNslBPHMaIR0terIMJ8ux5md?= =?iso-8859-1?q?Q1I1kx+iWvdAvnmMcJVSMqfXEPKIZnXReCC1Zp95ZemrEQglahzQnNGVkAT+?= =?iso-8859-1?q?TV/1E7Q/v869OHprdAKoibrvAegNa7qMdzXeS937hP4EO/OLWiSjax5vq3YL?= =?iso-8859-1?q?FKhQeG1QEKlTZp5Hn85IERaFTIRQHpmhHguy2eUuVFPX5zNB5pRcV0S/vMEO?= =?iso-8859-1?q?Fotj4WiDzRlg8p/8NWM047i+SLerxYrc9woV7JjWej3XYUOSrGNMgrfrEmP7?= =?iso-8859-1?q?KWf3syc/AIQtUTxEpbKZnNlEx77KoqYGVkACyhmHCmwkz+liwqkjH1K+1zo2?= =?iso-8859-1?q?FDcwLXzxh/2Tw6TViU0v93c2177dFevq7hT3+9bSPOQ1v3uPkKGtlp3Xdmho?= =?iso-8859-1?q?zgTzx8AuXgC1hg9TnJm4aJH49qUp1jtF2fOtgrbpnZMwgLAQaOWiOITkz10N?= =?iso-8859-1?q?TmbBfuhTMRRrP6AWSI1g6o5ypF91J5rWA/ha8PzcTByJHmuJ/9oqBOXa0XFn?= =?iso-8859-1?q?ytKsUgkCkbOq7hTdMqgeOsBnkW2tiOV4PoN6I+NyHG1oSjyNQwnKH2HCdrL8?= =?iso-8859-1?q?6nn4sD+7rPRc3cq9SAnVDBaeITydzfhgwQzQ87A=3D=3D?= MIME-Version: 1.0 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: XsUGcjt3Ymm/E6X3xKN5oZZVfHwfKWUIU+UsyqHNKKLYXaLiWHIYkGG27iRhYi7PkbliR0NlPsrJnQgFhJQQKjpwqisPk5tnNSzIYGhIs+aXaC2yWZVYPTV1qgZxSvGfZf4QudxisjvqH0/PdYq8JI2q5vfkU7K6yTYNz68t0EPu6sH/oJiQ8HCdWvN4A6uNc72OQatGxzKmThPDaTCXSUTjZ2kXMRFo3WK5Ha3RpObaN86bjpnZsPOvq73KnYk7FKuZh/SajOF9s0pGqIKdsL2ArBCgUGUTmDUERmORxzPzOhJ38BZ4bWhbs7HRk0M88X17maplx5c3kI2alxjvPtjeORsNs87tG4iD6rtx+RmTc50jEBlcVDi7xOwUzi7+6AYb9rcGUQkE792f3bT3sACxJogca048MDFBGv9Yrth7nm+9FHcetQ6ZiQtBB8fxt+K0QCA7K2AOm+rJetYqoWb6viXlyHal1yFl8pBxmXFZSHDiEEE9DXcf7h+sPjCL7KoviUje4YNWobaf/yHNs1ckofmg+aB4AW3iNrAz41df2ULOL2fjDi+cFtWO6iKPZwCyyK8vG3AEVHRC0gYo927ucklIuFemaouAkWJEJxif4ejzxH3KC8bAG0GyDRq+xqfDsfrP8QCbOjaos4zTVdI6aw0dIF/gTp8+L29bAZPtLVHvLsxP8wHizBL3KSwWWkQRInrkNNpgMxWVgUHFsc9Jll2Ao49g9XLzIIsaHo+Qi6tVmEwou/wdyXXDC3MJiSnIXREOjrbM3o5PCiusARxfrIuaxworm1rEiuQPLaabYWYnDD8kJYCm9SeokVNj2ElHepj9mAN60eZx8zaBU5JDXBpWSX6lWa7t8xRDfuApT3Qcjn1LT7quXxDnHQQghZWuarjqbFUGSipOrV1Mgg== 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: 98b4ad58-6046-4fff-391e-08daf8336f68 X-MS-Exchange-CrossTenant-originalarrivaltime: 17 Jan 2023 02:34:23.8431 (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: e/mfqeE8dnFjSV8cWENhhE27+q2FB+b3BsO6PCvYcVnOcn0IKuF5umYjf8wF28F9OzTA1K7Ar2g62kW+UUEvsg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR10MB4814 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.219,Aquarius:18.0.923,Hydra:6.0.562,FMLib:17.11.122.1 definitions=2023-01-16_18,2023-01-13_02,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxscore=0 adultscore=0 mlxlogscore=999 suspectscore=0 malwarescore=0 bulkscore=0 spamscore=0 phishscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2212070000 definitions=main-2301170017 X-Proofpoint-ORIG-GUID: z7gl6yZ5DQSo1IVyXlm9vby9TWbnDUNl X-Proofpoint-GUID: z7gl6yZ5DQSo1IVyXlm9vby9TWbnDUNl 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?1755236033771340425?= X-GMAIL-MSGID: =?utf-8?q?1755236033771340425?= 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 a6e07edc15e9..a533e39a669c 100644 --- a/mm/mmap.c +++ b/mm/mmap.c @@ -620,6 +620,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 * @@ -645,15 +668,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); @@ -742,10 +762,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 @@ -780,15 +801,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) { /* @@ -796,9 +816,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 @@ -806,24 +825,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 Tue Jan 17 02:34:24 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: 44452 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:eb09:0:0:0:0:0 with SMTP id s9csp1520475wrn; Mon, 16 Jan 2023 18:40:48 -0800 (PST) X-Google-Smtp-Source: AMrXdXvIJF+zjj1E/54V03NuiU7UOq+Vp21U8M0bxcYybiKUceCMQQS5IRiA6S8SklzNQa6GuzVG X-Received: by 2002:a17:907:9705:b0:870:8e22:1433 with SMTP id jg5-20020a170907970500b008708e221433mr7538636ejc.16.1673923248227; Mon, 16 Jan 2023 18:40:48 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1673923248; cv=pass; d=google.com; s=arc-20160816; b=BwnMk6kbF1K7xnsxLO+lEuxZO4QxK2yJqv3dgUgthLARpmeh0DmbP41o5HD2jIy/ru ii+4/CSWuQSKvRDv/TpPzA4b/HSh+hc7VMTpxw4E5M+oIg2waCEreU3NpVlAWpddXUNE 1GPqPqG90DWRNhkE6uSG8yLXkL9YWZe/OG36sR6F8QVFX35zkMrB3ZrVaqMSK3X6EiSP dj7yhDatjEM2W0ulnzUaj41qUpCxIiLv8mV0OtKanhdphwj4UmTdtLlJwK/CTY5O/hIp ZizzXjoO0YrH0bQazfH04QBiuRtSSbTabchfbf0omSNB5ab7Wmek/Ti8mZrfHhaB1chK ER/Q== 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=3JAK9iYw7tH2glMJ5AJNpC1IiMEfCgLbB/+CHB2Dxdo=; b=DDe0JKdGwkZIABwN4vTcAVNRwsdvfL42S5BpAwBvD8AFisnWhsO7wjmpXZcdY3WV76 IPTquccwVTYBVW7kvJXCcR2PFy4qeL34nGhIa5/BmBiWf0asceSJv89vSD/joIe2y9S8 xIZeQ9fxpanQpjNuj7pXo8hlKHbulI//Gf9/0nn6kq6QyFZICIK78NpTw9xFcZlMruPv ZFuIgivrkX2zuxfmsqNsCK5rIjZDh8dxT4fp7FgXlvbX8VGzaHCFTRG5uGOpehlM6hm+ ozET583MbIPOWP8tYPSv+evJwHBTDt76FXj1EUeI6a5Ql8r0jX92ywj3usv6+1wh3kxc mREw== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@oracle.com header.s=corp-2022-7-12 header.b=mAlD+agP; dkim=pass header.i=@oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=Ksmw9Gpt; 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 hu10-20020a170907a08a00b00871a4e8d7b6si1344574ejc.772.2023.01.16.18.40.25; Mon, 16 Jan 2023 18:40:48 -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=mAlD+agP; dkim=pass header.i=@oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=Ksmw9Gpt; 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 S235654AbjAQCjU (ORCPT + 99 others); Mon, 16 Jan 2023 21:39:20 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:39476 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235674AbjAQCid (ORCPT ); Mon, 16 Jan 2023 21:38:33 -0500 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id AD25630293 for ; Mon, 16 Jan 2023 18:35:52 -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 30H093bL001971; Tue, 17 Jan 2023 02:35: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=3JAK9iYw7tH2glMJ5AJNpC1IiMEfCgLbB/+CHB2Dxdo=; b=mAlD+agP4KWM7AAaiDX6Z0E50lSwQRiwsIAVzb/u+maBSDmnN10bk86Yg36KhKUI+OR0 V/9k/me7AtByPy4vi/cJ7AN3QOl0hQmzfPEuViyc7DAyxYhhcaKgWp9sPYj3vIR9rdPg b0vVwHx88Bl2Q76QhuW1eKmzUSrzVfWbDFPTd/BH2Ud5Ual58kU4q2LNV667fO2E01K+ 7YcpX1aQWr7pAHHtCG65zF88xrZsh4JgKuXdnMWBLBRvPjdL6DVr00dXVuh6QMmIxnAk 1zl2fbr7zKcczRMGXHbyJ4KxtFHnRII9aKVcgOwUH7ibkBLKjNv8SBgV7wDsdxgTwqjO HQ== Received: from iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta03.appoci.oracle.com [130.35.103.27]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3n3k6c3prd-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 17 Jan 2023 02:35:05 +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 30GMXP47028373; Tue, 17 Jan 2023 02:35:05 GMT Received: from nam12-dm6-obe.outbound.protection.outlook.com (mail-dm6nam12lp2173.outbound.protection.outlook.com [104.47.59.173]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 3n4s2rfy4x-8 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 17 Jan 2023 02:35:05 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=kz1uUHmCmCRXmYF0iGMeIe0jrUTTBrHd5UYYyLZZoeBrRkhX5pKjYUth9q2okknW2R/azrpX9Qbzffyb744NypJH88jWXTBu3SJPq11YDrphDvSVpoqz3mzxpwXTmtneAsx2j1Rk6wECLKdw29s9SUE/Gc4GGG7RyImQnuBsTCA/oB+UA80uTAIA7GrAJjYa6e77BP+wTk7McAXcaSx9u2TdjXG0KbiUmVNYfOqosUtoRcBANUIa4HrfCra4EHnatNVf07x1BZ10/6ii2Ot+Rhxo5Tkfe7mLldlIOo4tZ6T6OkUzQWQ8/iJjCQKn+/WWFXOZYyoQfCuYn+OIbMH93g== 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=3JAK9iYw7tH2glMJ5AJNpC1IiMEfCgLbB/+CHB2Dxdo=; b=UI47m7ywREWG5nOYTyWxETtkGrNzfGUUFnDMn48cozuzd080o+/gW4ebOZdTyRExXl2TY1Bw4IXDg+ttx0yVswnIGS7DO24CS7lJOPaPASUBvC1wnrvGGsGftzYDMbi9cPIYAyWEoyvTmspXEBpemvnKW/o0E+3nXa9VMqasUDr1SFEYxEY0vmGqyAqDX/CLNT8t/3Ja15SA1ZDAFL/TFzzXWf8u5YmqVBV/MpOodouAyEwMixmjabeUojig+FFiLDmiPhenuSdszYljoX5ouOEixvH5y9srOIBSCcWB05csKbMIZ6t1i7WyL4P632Wa4prb1IE5QlDRu+Z03enLBA== 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=3JAK9iYw7tH2glMJ5AJNpC1IiMEfCgLbB/+CHB2Dxdo=; b=Ksmw9Gptqw1TTBGUDByEur0fOhjByDsAkilpkXgJ2IGuZmesOyccKOCAPMoWbDF1T1pgIjPilG0ViQOfPGeCR2amcXJZuHXnL4zvv8Egt6kL4iDcvRS05ZQ0oSHXJIe01Tps4t0DvEX+jFt0cP1cL2jORRPDMVeNQC7e3gE/+Qw= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by SJ0PR10MB4814.namprd10.prod.outlook.com (2603:10b6:a03:2d5::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6002.12; Tue, 17 Jan 2023 02:35: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.6002.012; Tue, 17 Jan 2023 02:35:02 +0000 From: Liam Howlett To: "linux-mm@kvack.org" , "linux-kernel@vger.kernel.org" , Andrew Morton , "maple-tree@lists.infradead.org" CC: Liam Howlett , Liam Howlett Subject: [PATCH v3 46/48] mm/mmap: Convert do_brk_flags() to use vma_prepare() and vma_complete() Thread-Topic: [PATCH v3 46/48] mm/mmap: Convert do_brk_flags() to use vma_prepare() and vma_complete() Thread-Index: AQHZKhw2c1pZfxkPkEap+/qyNBLbGg== Date: Tue, 17 Jan 2023 02:34:24 +0000 Message-ID: <20230117023335.1690727-47-Liam.Howlett@oracle.com> References: <20230117023335.1690727-1-Liam.Howlett@oracle.com> In-Reply-To: <20230117023335.1690727-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_|SJ0PR10MB4814:EE_ x-ms-office365-filtering-correlation-id: f54d722d-e6ff-4dc8-9790-08daf8336fa8 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: JkKM3okB0HaRL/5KFTF8Vrh5qELIGcKDqmsJKEstWnUPBoNdist+S0LvmtwRq03c3kw7X9y9THyKjg2WBeI0qv+82NPGjULy7SDUQuHZdg8qFqDG48hy4dWS+nRA/vbzyf8CaD5C1PaVHggx8Mr7H/H7rKaRVAqYKp1mYH7/TEkgN1etIRtpNSOic05ntwLGdOLkENWxDgB8Rm40H6akENFK0KZwb8g3+Yldj/uc/FsXrH0uD1+26urkWmW1OYSfZGfKPltlsp+RlUmdxWFHWD9d2ztaqeWUMxilga1O3ikWEIWa1vfpkLuHAFVzRzsyT84k8iFJt3Xc8zbLqjde9K/eHA+Eqaj35xVoFSUDWcc0dIpIRk4fx9lsQG6mUMQUFR9YWnwT8H88Cw0f3oBOjZ90mcwtN+E3fjaEXa1xGtffkNvzDp8heUvnSfGq3j0mrlzoW+tZNGeYYtj5GCI49K5eGnprJZbsthbmvUE54kvG/9mN3bVMMV1mqg/UImJyh3dS6bLJqCX0jT9HXmI4qkdxdfIR+k1SE++qyg1iOLtEPspN5k5c1tb9axNSGnjZtU2nJxr3AlH/KQ+2Ztb52elHiM3+LE39c2tXh506wmpDsztZx4PipWp16JUGWbeyx9W77jGU2hZDl2eObPdhcUBbdRdApKP6ARYFjdCq3AK2u7Dpc0HoYUVEL2zuC3buDWj8bFCynXw1X2FygfX0kQ== 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)(346002)(39860400002)(396003)(376002)(136003)(366004)(451199015)(6486002)(6512007)(478600001)(186003)(26005)(6666004)(107886003)(71200400001)(6506007)(91956017)(66556008)(66946007)(2616005)(76116006)(66476007)(122000001)(110136005)(316002)(64756008)(8676002)(4326008)(54906003)(66446008)(36756003)(83380400001)(8936002)(41300700001)(1076003)(44832011)(2906002)(38070700005)(38100700002)(5660300002)(86362001);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?q?KsY/9jPgTeSaZExBCbXC/bq?= =?iso-8859-1?q?z9QpVi04P/dWpnkRDRECH8HK0n5NiL7t7RfyWg+ed1M40dK47GGXcHo/MbOf?= =?iso-8859-1?q?8VFesa6ATAjKIgkOrz+9YOlfOKniWmGkGELyzS9fz62TgIEM2ii54d/vyBut?= =?iso-8859-1?q?gZRmHlPIXlUlhZ1DZsEkCHZdUDn/IgTaMf8sGlpSFlNKlaMEyYDD79Aas4IT?= =?iso-8859-1?q?AzaqNLmtZjtq5c1u7GrOJsLNKrPuUq8KANtaPxiG3utmleV5otSHMDaiYBcl?= =?iso-8859-1?q?IXo/wm//lTHc2sPTZsAE6OIj+7nu5ulf5ofbQ1/8PjcSb/hPAhGvYBNEv0Ir?= =?iso-8859-1?q?UmnmFLDrgswYtvKtOs6KA7e1HAheIWGEDCYyCbSY+SJ4LL29pRM4sGqt1+Ip?= =?iso-8859-1?q?iJ1nFUTrjQ9CiH2ShpAw+CWCrCXeDnTcea4CsowwFLJWArLit0icuihnk4Md?= =?iso-8859-1?q?T/AeGDtcddKOc7NO+vy8DG+Z5TvOx7rD1bmnr93q+9v4PLxdZ5yBhud4B5X6?= =?iso-8859-1?q?NU6yU6zzBgj4LRIL6PgrHtNJyfHKa5dWzGuZDiD97flNX1mE/UOQlAAvxkW5?= =?iso-8859-1?q?XOGOZwaWonsOqs9CncSnollte4TDHtsYOzigEGHhaQQ337mTzmvSKnTUDzhm?= =?iso-8859-1?q?V2LudMDIu5pzX+ZmuSi9UPEae+mzFcW6wrfiLO9XIgsvf2nfZ3yvBz1BZ+0W?= =?iso-8859-1?q?k+zC2u6cZJPZKe4KeTaFLNUopSSbAmUtjQqBpglYaq0usejON0V/4Ypcmb24?= =?iso-8859-1?q?s6IV3Bf5U0SWxYllvGhU+VWX1lHAHBR58d7AV02BYeB8Pba7DSEJgIvE2oJ7?= =?iso-8859-1?q?GZAm/xb9KfbL0+WEBcMDPD54/ahND0/QrUv+QT0WYlj33prMNgqDN8nBi5L7?= =?iso-8859-1?q?GwKi+UcY071TzkrSa9Xr9GcF9oxkz0ZpI4/TBzSyKo/ihodrs2sOKaZS7Tib?= =?iso-8859-1?q?OIjXNTD1W3opVidQmTTnS/pdF6OtbkyTQ4C61AqnugXz6g/9IiwhrFQqDvZC?= =?iso-8859-1?q?h4tT6ML2BvjryW2iDYyGdTT2C/Tu76KVk7yiBxLTVD1wIvlm6JCtZwMfmYqQ?= =?iso-8859-1?q?8qWvsTElW7GY/eL758mA37Vma8paloL8lPs7XjAkD0QfJIFIlNG+ljxnCf5c?= =?iso-8859-1?q?4R7Bhw3+7Zp5W+zLllLH5epLXG/6CXwtkCxBX5jXa8sjppijpnTZz30xTP4r?= =?iso-8859-1?q?Fk2l1fQtRIAkJzZ3Cv7t+QZiHgDwB9Sa5hDUrR7D8/yUFFWKDJkMw32DwuRk?= =?iso-8859-1?q?uSQ39EV2Bjlbyi3r5R0VfdhWLyqxj6IkFx0KCNRFqa8xY5aAn4W+FlPdaMN+?= =?iso-8859-1?q?rpslCasTx0RH4fBWC+MJDOUWQEifS3aJ4/zKlzKomAWW2UfFFfOu1MID/4s8?= =?iso-8859-1?q?f+PY8K/4Y+a6495sd+K455VQYQB3Mpa8dzZjwWTrtsB7ET0kpm1Q7w5VTDZ2?= =?iso-8859-1?q?YkpSWsjEjZ/6lXTTChNMtD6zNWqXoQf4+635gX3OraHo776XjymffkdUGklr?= =?iso-8859-1?q?llNbknvUnQ1pcy0UzA50c5+ZzuDOUep7CSJj18YZTioKA4uLnLe2IIF5fIut?= =?iso-8859-1?q?xgOCZnW+CaLuwOMSeXWldV3BISFb0Onvu6b1sVUsD1UBFDjcT8pXQOY/WJ8c?= =?iso-8859-1?q?ks7BNg2pUdIMwEEN5yeyymmA0sjQMFuGPivUMQg=3D=3D?= MIME-Version: 1.0 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: sUJWThCIhqG0hEBSmqnwStnbdz1xL+W6o7w3TaCMc2IKLAWZWV+YsrQl1zw53xy7SpFBE08U2ZEO8sbnLRFT5ReRkmQt88mipPFWiR+KchrQ/KmVD0zU8ZRiSqWyPfVDOIciHJgF5Cdm2zjWEJhWVJWHOX4OssWSdQd/7ZsLGbeMWS/VQMQbmgmWg+hqk4xz8Hb66iQ+9dOK97nYzoGLdqnlmTb8ceFQZXlHAyPrl6IOomb0fUzhNaaxiA+H826TtAshQavzqyB2aqH7LTTv5y4XwaN5OownrrP300PeyJJG4cpv+amoS7TD/TJhcM7u1+smKkXl79q6vlVTmqRzecDBXFIxo+UsqlPn2QLGXsH7CQx90lzZHMMVr9MVTDAQsEgDON/0X54/WrvcxWiQhjZfOM22JjXKnXQS7qTqRxLqNMWPhgt5UL3rnWMpERdmv0S+wCProgCsuH2UUhovVen+JtUXRqMqtxFn03zXwqxN6YA/QzNRBYt7NPeHTUxEDd7zXkcV+8/hRZsJqvet/5wMlNZnItstwHonioVANyhzivNGwe05f4HUig2AKCIcaoUzJRlSzGiQn3F82Tq3cHxw3EVUduMiaQzljFdnKYX0/O/YF3AIKHHkZfbo0XjG3VoFP9g7QpoRMoHVvsPX27gHGLxuazFHOwjZalHW4wjWA9PMcjhH1qxPI9y5is/5ijC2MOQBk7pyhzRQgCRcOt9W94EhTNgn6KWuZvwxbi/F6oopT/344m6pWUr6vMLnsxYxPL22/nkggQNKcK1U96bVAYXaAIoSmhyKqDYluM0tqM2myhVJgLT9TAIL3wseGlLUpcx2RJLxqMjb6iL5kts4akfdXHpijaNelKtOSwP5+Z0jxtdkSt1qvWKH3avafoiA8wOD+eGtHFoKM/12VQ== 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: f54d722d-e6ff-4dc8-9790-08daf8336fa8 X-MS-Exchange-CrossTenant-originalarrivaltime: 17 Jan 2023 02:34:24.0931 (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: 0hYvJewqQ3yZBK7kkrkuGHz0RlRuExVD6HJc+j16p8lmAYZnYYlNlDo9oa2UBiMeIwnqHy/fm7pHoICAQ8WiPA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR10MB4814 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.219,Aquarius:18.0.923,Hydra:6.0.562,FMLib:17.11.122.1 definitions=2023-01-16_18,2023-01-13_02,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxscore=0 adultscore=0 mlxlogscore=980 suspectscore=0 malwarescore=0 bulkscore=0 spamscore=0 phishscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2212070000 definitions=main-2301170017 X-Proofpoint-GUID: B7sa1WdqTPlysbb50NXntx1b0n8YSVYg X-Proofpoint-ORIG-GUID: B7sa1WdqTPlysbb50NXntx1b0n8YSVYg 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?1755235744215276533?= X-GMAIL-MSGID: =?utf-8?q?1755235744215276533?= 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 a533e39a669c..4728b6d1db23 100644 --- a/mm/mmap.c +++ b/mm/mmap.c @@ -2924,6 +2924,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); /* @@ -2951,18 +2952,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 Tue Jan 17 02:34:24 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: 44455 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:eb09:0:0:0:0:0 with SMTP id s9csp1520840wrn; Mon, 16 Jan 2023 18:42:07 -0800 (PST) X-Google-Smtp-Source: AMrXdXtzEsqKilIOVyJltbXWKDb7kaDQ3Yp1eubpCNmDxlETvZBnkpe2hn11TA/EjGUqC7ZXNAin X-Received: by 2002:a50:ff12:0:b0:492:8c77:7da9 with SMTP id a18-20020a50ff12000000b004928c777da9mr1345724edu.9.1673923327395; Mon, 16 Jan 2023 18:42:07 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1673923327; cv=pass; d=google.com; s=arc-20160816; b=fqd/opjQASfvvk6o9oDu6ZVruQKsDMM4qZ8rwmIp41FwSg7/q4rIhjqRNrcCU9ewao KEAzrNAeLGnkWzdXSGW/bPzvRhO5gad1rB1eY1Y9m1RSHzVJh9PCEW6biJOpALzPuc8a lkzRp1cMRFVQK0871G5N7o59BRT6e/KmR4ITdbNL4Hb4g/B6g2BQGFGcfYmBEQapoujW Alhtw0INaDxXF8mfT7m7aCf0jAnoDNvX7dnEpU+5L9eFcgRPRzzb+ZleLLMEmZki+80b SQkZhj+1jqx+xLN4kZRq2YLkCM4CnlvpJb3Bp5phticoUG64zSAmuHI/koiLZhURb6cA tvnQ== 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=AAw+iDzEV/2NHEkM2iEuJcHfi3pWzGbIGQH4oV+cz28=; b=d5xr3TtarqmEvdyOgK4daDu92fE3titxNrFVLN8ScLaKlwYw3KwZsJ/ryOTEOWyy+S MXobQVF0BTeusVbB1L/vrhl3vPwxoK53yqGoynb/lhaLcrSJq0bHzobWkyEB2hebeNpF QHogc70pz5bbL7v4IrIY3oyqc+SnlcaVYYtm6MtPiWZcriW55WIWHDrZ6cLZ+tizzTtv koKJ5vE9nXC/mnFE7kxTDMDx+vd9oW6haySwNdZSqxhJeGFN2wgZZiPHSo8HcDD/hs8w pgVDY6meXye5bM25NIlmP/MWovB6wXYgPHz4Q0gD+0AAVgJIePi4zv9AEOh59wXR7CVm PvLA== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@oracle.com header.s=corp-2022-7-12 header.b=FkInLR47; dkim=pass header.i=@oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=tsPk7LYA; 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 w8-20020a056402268800b0049e34ecef4asi537158edd.5.2023.01.16.18.41.44; Mon, 16 Jan 2023 18:42:07 -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=FkInLR47; dkim=pass header.i=@oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=tsPk7LYA; 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 S235600AbjAQCkE (ORCPT + 99 others); Mon, 16 Jan 2023 21:40:04 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:39216 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235596AbjAQCjB (ORCPT ); Mon, 16 Jan 2023 21:39:01 -0500 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id D3F744C3D for ; Mon, 16 Jan 2023 18:36:00 -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 30H09eKY006596; Tue, 17 Jan 2023 02:35: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=AAw+iDzEV/2NHEkM2iEuJcHfi3pWzGbIGQH4oV+cz28=; b=FkInLR47FSMr3ksxsD0fdik9siut2OYLVgdtXzoA12vBPAGz75XIvhxKmA0UwajrZENJ 7v7lciJ3mE/XgHwU0Whq4A/prK1dUGLIJnN2F/sSiXmw7KQCxOVeTq8t+JFd1A0hGDXV vOfaCm8+m7wN7EfkpJXmA+jOIcBFttJqcyV41mt65ysNwt5lDFf4kC/hlNbzrXLoHdHJ t5RM0ADmEw9O32Ny/cIiQpWtoWt22AiSBkSiEd4dfxDRxsp24UiFNjraiJyx47EZ9BF/ M1DlF9qFycF58dNilqMC20gPevWSKc+ZplDQH2hY4ke70/fyQIH21J8GE4JvUYn8un/v Mg== Received: from iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta03.appoci.oracle.com [130.35.103.27]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3n3kaabrk6-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 17 Jan 2023 02:35:07 +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 30GMXP48028373; Tue, 17 Jan 2023 02:35:05 GMT Received: from nam12-dm6-obe.outbound.protection.outlook.com (mail-dm6nam12lp2173.outbound.protection.outlook.com [104.47.59.173]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 3n4s2rfy4x-9 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 17 Jan 2023 02:35:05 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=EjC/Fx5Y5grGmtX1v4ceGkNoMhEO4Ef2vZazfLuF3xUi1viPPrup4Hkow2aXFZCOHZEiJlbHthDit0QqZeoYxl9HrBhV2Z5/9zH6ujKWm3MuP5Qiw3nq3XCP6oG96AnScweFJugwL5GSv2tgwoZV4a4K6+XBbVm5Z6jS2OwyMmuc7oo5wKCFPxiC0xmEtWBWxfML6Uhvluz4KcTR/0O+XW3TVg9XL46W1L+RzG+vgvI461VWt6nzK1MldWCfGcAfL76r4jy0aCMTiT2cPVHhZv+l8nQg8+gevBYlWbcxzljl3B62PkMTh+PekLqb+PbXqwcsDwbd6vVp+TNHg1SwBg== 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=AAw+iDzEV/2NHEkM2iEuJcHfi3pWzGbIGQH4oV+cz28=; b=lj2lDTFjRjZrJxyBA+68MEZr6Fisee/JXnHY4/c5mEVm679fOz3jEmIF4/rZ/jBMkeoGLcqepTr4kgbH0+8kVV6jIbrgVPr6x9VBpt+bjZ2mzR7AOk1/TDh4g7QwBzFBTMlUgv26eUJYoaSYvJton3SeampKd/r0l30K6EpK7oFe0yi+NK2ntR24Bs+tU7sEaccgVlCx9PrJthZzdFhomgdKxDyd5dlJR4Tw2T84YVsbYPf3Tuspu3FaiBYImnVG7p2fZrmbWpshDpYvlX5PqkLAi8VUfoFy2O4baiuiYu1KRARwNAVMDJttIkcYIXjK2rS6JMJf6r+daBWK2Qz8yw== 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=AAw+iDzEV/2NHEkM2iEuJcHfi3pWzGbIGQH4oV+cz28=; b=tsPk7LYA265+lFtAOPfXTcQcE6GDsZos/mgd5h9jOpGJLUN5bxB3uIXkW3TPjWyhwMwXvgVayF0ZNJBye9CXVQ+3X5c/AkXuyFIfzyBc3h9iBYLilu1CEgpVEaazLaFqa9bv4kEGvtp17/ZS7q7ZvVy6qiJiXVekY3wzJzqRaw8= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by SJ0PR10MB4814.namprd10.prod.outlook.com (2603:10b6:a03:2d5::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6002.12; Tue, 17 Jan 2023 02:35: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.6002.012; Tue, 17 Jan 2023 02:35:03 +0000 From: Liam Howlett To: "linux-mm@kvack.org" , "linux-kernel@vger.kernel.org" , Andrew Morton , "maple-tree@lists.infradead.org" CC: Liam Howlett , Liam Howlett Subject: [PATCH v3 47/48] mm/mmap: Remove __vma_adjust() Thread-Topic: [PATCH v3 47/48] mm/mmap: Remove __vma_adjust() Thread-Index: AQHZKhw2acE32W1gPEKtpIW/U0s8KA== Date: Tue, 17 Jan 2023 02:34:24 +0000 Message-ID: <20230117023335.1690727-48-Liam.Howlett@oracle.com> References: <20230117023335.1690727-1-Liam.Howlett@oracle.com> In-Reply-To: <20230117023335.1690727-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_|SJ0PR10MB4814:EE_ x-ms-office365-filtering-correlation-id: 0de78323-a107-45d8-e176-08daf8336ff4 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: xBucwQQCJCWrw1Ccs8NbDn6xTTzYkeRhgRAZZAk99AlOSrt3WlWYlb+4EZv4je9i3KwLRRXiAwm5rrFG12778XKnXwU33uu/DEMYmi7IttRvrnmkFEZy4Mb1lklnOExWP/QBwIsV43ZXcPMMYHDPC61gL7dOowVpo+nJ75rcjNZuVREP9ppVHEVjaFWHES1BKszT3wS3ScX0XtT1ezmWCtOeVMg62mbEwlPUgAKnabc+1fmbKom/ec5cggruGkXdc1yuNG8YVOaTFnLIK9bsieKRvTlmiJ8m+M7+uejjO/1pT5mCeNt2ZSzwOSPFKTUOuCHswrGBULtyYS+fMIT3DMrNo01RXGPEuBmpFMdnr7c6AkUjL6+T72Bi3qYfX0irodpcceFXOLpPun/ftloIvWe00xIWE+SBiyoYl1pCHC1MUh/SprGUkbUT2c1G2yT18zjwgih/zhBb0ofVz/mtXR4wrqAHPBPadY+ozKe4IaSMb/YOiUkWP639Q5cF2M/0moKeGUPUPejCQCmZ+/d6AUXWm8xhiq42jTZAUGYyBVwbjpJArghRgu5lQRd8hwWdHw7+I4EijXcTV7ylGpPiVhg0Ka2lMnsN7PH1QhfsRmvUPGk4Zb97E2jSvHi1swf91Jl+mmdjoD8pqTQgX1S3K3GzVQ775arrDZ2nvgKazCMaF/ysYPcZ7yvSRC1Ciw/Ei+Lin1urxLtnszjzlfRIzw== 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)(346002)(39860400002)(396003)(376002)(136003)(366004)(451199015)(6486002)(6512007)(478600001)(186003)(26005)(6666004)(107886003)(71200400001)(6506007)(91956017)(66556008)(66946007)(2616005)(76116006)(66476007)(122000001)(110136005)(316002)(64756008)(8676002)(4326008)(54906003)(66446008)(36756003)(83380400001)(8936002)(41300700001)(1076003)(44832011)(2906002)(30864003)(38070700005)(38100700002)(5660300002)(86362001);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?q?yIwMKyohIKWiKOFV5eAWQtu?= =?iso-8859-1?q?J1NQas8ZigIAj19vk+SZmRKKgIkgyPct1YsfNGabhCD8bRIY2I+nmR6BGnAM?= =?iso-8859-1?q?4UU9yCNV3+JCThQZqsr6mgPR3mQjaYaZKOANXvj1uHzI+xysGqkL2eCLkuY6?= =?iso-8859-1?q?U5eKlC6xSOiX13zZgNUjhhkboK572/Q5BWLWjjusonE8ssjYgY0S/1KP8NXj?= =?iso-8859-1?q?DkCKGyuyS54irnEYQmWIot/XMs+OSCSOn1PAZXvoNts8RWbdoqwxWQ0KPQQ0?= =?iso-8859-1?q?EadOMY7xKfE5yxFlxOPwZfVTOQ0z9l2IG2ZzpBkRsHsV9BCBlhF+NDY4ix9D?= =?iso-8859-1?q?oW4+ayCBqDGXelPxPCvFPQA37W1ym2qvpgiIQyBPpuirwXET9cefWj7FHD6T?= =?iso-8859-1?q?AQgGZFTO8JTGqIunzhWE0xJa6IGQjB74OggAK1kjkVGy8Qm92Je1ghJe5x0g?= =?iso-8859-1?q?RnSEwoohFqnhDZpyl82+o/0WXQ7HYl6GQ+jZoKneW3D9aqJnFZdUJotDDMn5?= =?iso-8859-1?q?B1coNPuVUZe9SP2Qa8bzlUe+inlW0b3NpXVQFIj0a0h8mHq0JopJBXsCUXDx?= =?iso-8859-1?q?iDrZO1prAWC1JV5/e1Cw1HBOd3xoJsl6gxxbhRAs0wJmMtAXPrszX7xxQzmy?= =?iso-8859-1?q?+hnTQyrAoogYHhsfe4Dcr5M4kI2OfQfFhTX7og7Fh3ZXeklHkJslLRtQ3/TJ?= =?iso-8859-1?q?gyX36Bl2bOS1QQ30DpGqyjcsSU3oT/eNaLN6ODapASbBtNeH94bLyHYkpW8Y?= =?iso-8859-1?q?VRpCxr44E1SUwIC3iKHbmiq518R/bw2zwrhzc1S1/7LVIQWFEWlbp8aRALiQ?= =?iso-8859-1?q?z08JVunfe9EAxFNFXqzeFiVCqxg7gXUSQfYoaXagODOSOWrBESSDyqi10E47?= =?iso-8859-1?q?3ahY0rjgs0ldbCqbQDM5IwE0uFKPdoaJap1TYzNk18TzQ81fmjOWCdQc9fRV?= =?iso-8859-1?q?ih9VAfut15oClJpYGYBbTdQfgnTVbUlRUgp8qS1uv93L+VpFFSwqXwaT16GL?= =?iso-8859-1?q?++BUOmuAx1g3YCLkqtjZgXqkjij34lyYM4cGrHMGPgHMlQNDxY/K9oevuklm?= =?iso-8859-1?q?ylQfB+mPRI4gJjdCzC9eeFucS+LwZausVbx2T+80WBhrIeeG5i1hN6B9zD8+?= =?iso-8859-1?q?klKmmaSySyyOavwq6qD/HoAqGbKSl+zWnKvlr4Ft8HZRjz83L+r2bhfTJ+jS?= =?iso-8859-1?q?Gi9JkymiGkyLxJ9UQAlxdkGo2izDdEFTxsrVCT5SxCXLJgby9OeOzfXyEhZ+?= =?iso-8859-1?q?aI5f+GNJaqRV0iz8bVh0fkVlHbvJJtqU/iU2gsoa+CCjGameFgeVBRFKUOTl?= =?iso-8859-1?q?CvJvwDwoVC3N5WADACyqJIR1qfxWhEkawcNjDXOFMx5oTV3wLv6ODkyhERdC?= =?iso-8859-1?q?/XrNE3PTxo+d+KlUeaykjFsu3anOsWHJJK9Ola8abtF9ebyu0ax2Q0oHGuRH?= =?iso-8859-1?q?Mdh+7eJCr8DxQvUMGnLGCq5Zok9HgoZtXieb/p8dI7/tCFuUXGhaHkTXHZrx?= =?iso-8859-1?q?BCqcEFIGdphOZiVXe3ijuaEJPla/nNMwh/BcctH1n64e9LlLJUNRXTRHosyN?= =?iso-8859-1?q?G+GCmxKk6Ql6yRbAH7oLBseOU5QTkUdd1HeZLEEr3ccYsDv/xPTanX9hqyww?= =?iso-8859-1?q?0CLI3Y/CnATSp0XCFxXcZqQQhvQnYzT+KkBnByA=3D=3D?= MIME-Version: 1.0 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: BhR+F7F+8h/7GEJiLe7NAdTibYNuyOet/ZGf91RyV+bgyN4ABQd6ZE1H3Nwqf5Obge3h4zmPLaoP7H4Zb+Fng16TCJYlh1pbHBksScY1nnTDvUCLZR+pKcUgttEfr5H21HGzlQFiLhmw7aNPim1t16aD3LDPYnA77oUofVHY35cTvDLtqvIgI3W+VLvCs94iEpuGUNrUPb65A/Ch3XNLI695c5UBbYSqkiPLwH/hOAeSRuGlMTVchitNvEEUtcNAOhphuHsngntrT3b8tyl6yFSVkXBLUj6wcAxObxfHfEmEGPh3oWcAkAd/7ZCRrZlpxHspuPFHNAi8xp0mtf9el4fIgNaRZ+n59/g9T8VFOvZDPxPjWI+xzI+qudmffBtylE6lrd+gJ2yaeGNl8F2ivO5k1F3asSNc735SB5zNu4wUxoSAZs8VzDmYL/RUDTv57f74MfO7zk+rNZuQhRO18UUTk4I2QQxUrbIfSM7ukAGJhPFaHK8l+W66oaU1A1uVGlfzOKJ9UtZPFCYFmLT1taZe8vc4Pf1i0di4e3sJ85lbEIf6nDz2hKQ+7qgFzMLz+rHrUBnWsb6Qu5LoxuLvLxKRFwogTHy8Pg+mb5JkYuTtyhGQOIXS/FUPHhyWIUGN+hfkRSc1SCkKEY448z8pGafDApclEm7D/1+BBvzaFRP5ZsrCEXG/T8qvtiumoz2j9hW7nXPX600JPsdBuVZepYedGDqNQEbk98zoSv6L+CvdVHnG54EtZYBiW/3zW7zyShmlT/dj9HWmV55PtyGL23QuK6KBSP+VumPtPkuf93ceESEyDcl/7iXlp/DG5w/TADqJdhWVqdsZ1B9mG/5E0MqHPQ4l5HIC5a71nrBfVcs8epN7QY2iJ+JWq3ZxytcK/Ljqfu3su5X8Hvpg2Zm1Nw== 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: 0de78323-a107-45d8-e176-08daf8336ff4 X-MS-Exchange-CrossTenant-originalarrivaltime: 17 Jan 2023 02:34:24.4681 (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: bV3kIOGMulkcXEVj9ovXe7wWDtQoiOdmTWXIqKRVc84ht8HGuxhSERSlP528Fu0PNOUF5WVwvYbUm1tJXyeiTA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR10MB4814 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.219,Aquarius:18.0.923,Hydra:6.0.562,FMLib:17.11.122.1 definitions=2023-01-16_18,2023-01-13_02,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxscore=0 adultscore=0 mlxlogscore=999 suspectscore=0 malwarescore=0 bulkscore=0 spamscore=0 phishscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2212070000 definitions=main-2301170017 X-Proofpoint-GUID: CzFJInBFSnq-2eProsbue_9RXqnHkRtO X-Proofpoint-ORIG-GUID: CzFJInBFSnq-2eProsbue_9RXqnHkRtO 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?1755235826936817578?= X-GMAIL-MSGID: =?utf-8?q?1755235826936817578?= 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 4728b6d1db23..bf24c46c3c3f 100644 --- a/mm/mmap.c +++ b/mm/mmap.c @@ -743,133 +743,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. @@ -996,7 +869,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 @@ -1006,6 +879,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, @@ -1016,11 +895,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. @@ -1038,13 +925,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 && @@ -1054,32 +945,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 Tue Jan 17 02:34:24 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: 44460 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:eb09:0:0:0:0:0 with SMTP id s9csp1524533wrn; Mon, 16 Jan 2023 18:53:40 -0800 (PST) X-Google-Smtp-Source: AMrXdXvm1z/Fvst0+k72kGhkKwO0YOT08BDQZ+rrqzfFECn4J7IG3jWkwfMVijBuvjtksnT9DT// X-Received: by 2002:a05:6402:2b92:b0:461:d042:80db with SMTP id fj18-20020a0564022b9200b00461d04280dbmr1555359edb.0.1673924019904; Mon, 16 Jan 2023 18:53:39 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1673924019; cv=pass; d=google.com; s=arc-20160816; b=L/3cKf9GIUiuCMWHBX5KcXlzZnvxM9uZvlk7sYduv0ttyZBUurT/wqcZhz1X/MlKkv HD1xLOpvedxGOAR6iONl4QHamozvA2d1gCC2sZCCDaaZU2rtzHJrvQxULtAy/Dh3vR8H qC+yDMBrFnYE3/eqB9PK4/F34rO1vt0gnT6KBDjczI3T99znazsawKUgv++idRU2Ibg4 +H0o7UKRKu/IyXPdbwZrU9mXDVixuDkh28FXM6GTMrCAzORSA5MhiDS1PEVbVm37fRYl cJm0I4KtasR7CVnIE0ZP/3gVBl0vBqgMLoQEF7P/KtV5smZ0xS5ARgOuVVBXC0VC6o/J yU2A== 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=W8WYftfghkyy9i+wCjEEsXwxkO+1L7ReQdE94cpveKU=; b=zdPyF6CrBNgnSMWjUuWCv/DeRw07wzVVsTV31MkOxc3Z9bCkDKk3z0BT31gPcFL9zX l76wOKxU8zmYV+7XTWyJxltcbm9dI3dQ1a7WqEKepEiNc0gi0o/bo0vE9eALX+TABnMw wpq1OQHMNATMcGwTmw25HPa5euBMIyW0rW/Jwr/Wa0uUnQ8cf0aTq0WzR4miWFGGQfyK sNoxossEfiPZSAA65ZRU2slUtO96IOWKFkv/J4ffBkCy50K2qHhfj+A+M5zskEwGJCd3 BgZyBAeuqSmt5BFNs61yy4WF2/9+Dq94HbhGPNWEDIL1I53kOUmWo0v+sxJ5p2OIq+zU 1edA== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@oracle.com header.s=corp-2022-7-12 header.b=IDODokaQ; dkim=pass header.i=@oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=dbWsUCwY; 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 n6-20020a50cc46000000b0048ef66a7728si26047868edi.370.2023.01.16.18.53.16; Mon, 16 Jan 2023 18:53:39 -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=IDODokaQ; dkim=pass header.i=@oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=dbWsUCwY; 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 S235589AbjAQClm (ORCPT + 99 others); Mon, 16 Jan 2023 21:41:42 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:39450 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235736AbjAQCkt (ORCPT ); Mon, 16 Jan 2023 21:40:49 -0500 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 11AC030EB6 for ; Mon, 16 Jan 2023 18:36:40 -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 30H092Bj023154; Tue, 17 Jan 2023 02:35: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=W8WYftfghkyy9i+wCjEEsXwxkO+1L7ReQdE94cpveKU=; b=IDODokaQps9LvzWMauJpcQprYsO7mXoP15JVL2rRgtycI+1G4tKrHNWOT/Y+6CB1CfpR 6nYSmra3GyiFkj3IUzV6ghg5SHiN/9dOdOXewdGMNuBRtCYxGOnlwHu113lzuzBWyPju Ol6kvB/Tmbgpz9n+K8Zg5YtV1RUqUid89DNL3ww+5Un78UUkqeYTWIQhfV8/lnw7CD3v bu3rG+R/TP96m62qh2jZsmyncwlpyEZZDU/Z0a2IlvyOobmLGQ1NJu7YZ2piwRdoA8tv b3LevG6oxDasrOPQ6cJLxJiJO1SGJVS4RlrIGgNQpLVlNMBVG1wgPvQ+C5rtuD3FGWxt 8g== Received: from iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta03.appoci.oracle.com [130.35.103.27]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3n3jtukq2u-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 17 Jan 2023 02:35:06 +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 30GMXP49028373; Tue, 17 Jan 2023 02:35:06 GMT Received: from nam12-dm6-obe.outbound.protection.outlook.com (mail-dm6nam12lp2173.outbound.protection.outlook.com [104.47.59.173]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 3n4s2rfy4x-10 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 17 Jan 2023 02:35:06 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=bBmWL7FoTNfPsyYOSw+HgDFnsWjMj6J4GXpWFfcq42kws1bnF0xJTGU9/r3Ff8LpK7j02lM7DWUETHnvtsrlkM8GfCr8+fF0gz0gG62Ee7EACXG4Sv0nxRyFm4D1XMJFfexqOZZDrY05wRGj/hd4nAYvPYPVd99Y2YJp4O45GBpe40PwknZKJDaCsgDxC5tJgg/AL74i8LObX6jlItOWqFXOrOEPG/P82P9u9emHvT3k7D7xbMDKoIGdNOwawHYxMcKMPqx3t9/xt8Yuq/y2+Xl9sfuD60u5AyDlOC6QjwLRfiy9x196U1KJTUsE9PJZ6EGEQjHBmZ1z+r9d7V+bTg== 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=W8WYftfghkyy9i+wCjEEsXwxkO+1L7ReQdE94cpveKU=; b=Og+qZVAOlKpDG+QXBwAlHQ8A538w9RQYXxzVKIafDgAZmL3fd/jDDissYY17br5jKLIrs8or6+tPz1K1wmPCztRG8s77fQdVCEKFwDs/D5Q/b+l4p0KXsJDlb2U9e7BZDBzH6i1z/8310jJaNrwqlNckqB+IeND3FBT6GeOs3ecOvnI9To7w9BfcVnyeRVlT8+LuIOoEx+njBV7RC3WdnVqgCl63l9n9sV6ZuqjiprQdMWG1rniH6tXtzOG071vRVG/hHB8q5uHTlxLifcZH10kGFHDe+23kR2DBA2CLwHPBLNNpgRyDyLNCF+Z9ZvTgz68kRfE8GzJuDxJPGOtdPw== 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=W8WYftfghkyy9i+wCjEEsXwxkO+1L7ReQdE94cpveKU=; b=dbWsUCwYLPMfMcoiG75Bslb5iCrNwCBxy9nMQYQOFiJis5pJDM+DKbSHGc2s2ZGjOEfAJhoccKnzXRQsUbKyFv12pacajPhxJhT50ql1Jr546070vW8dclFXnZRsbeoXVWrVmflGiissKSEOo+j5zNud35hCpajMCE9Lf2oKcgI= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by SJ0PR10MB4814.namprd10.prod.outlook.com (2603:10b6:a03:2d5::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6002.12; Tue, 17 Jan 2023 02:35: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.6002.012; Tue, 17 Jan 2023 02:35:03 +0000 From: Liam Howlett To: "linux-mm@kvack.org" , "linux-kernel@vger.kernel.org" , Andrew Morton , "maple-tree@lists.infradead.org" CC: Liam Howlett , Liam Howlett Subject: [PATCH v3 48/48] vma_merge: Set vma iterator to correct position. Thread-Topic: [PATCH v3 48/48] vma_merge: Set vma iterator to correct position. Thread-Index: AQHZKhw2HKF3fJU6YEaIPad0cYeJFA== Date: Tue, 17 Jan 2023 02:34:24 +0000 Message-ID: <20230117023335.1690727-49-Liam.Howlett@oracle.com> References: <20230117023335.1690727-1-Liam.Howlett@oracle.com> In-Reply-To: <20230117023335.1690727-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_|SJ0PR10MB4814:EE_ x-ms-office365-filtering-correlation-id: 6d001483-ccf3-4af1-dd8b-08daf8337032 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 8xUSL8n5YPf/Rl/mVVKiokZvGTszmluOZHnYf0UGwGrsjE7HBPdDwlYOFOcKszYTWr7frLDffaXpznwg83ufccJ7/I6eq17S9iA0eixzKa90wXVXDZ+sK7CWYv4ibq26wYjevi60BZ7C/uaFWhm5HKUDn3twIAvu9aKDnZ54X1LDHWNsek6FlcIdDDM0bQ0We1pbh/BTUMXcs/jopbM2QTM6Z3MoHuQrN7j/dqDXVc+1oPlFtkpVwfsM8r0H6HE9u2ehOKxv/FZaGKL+iWvym2KiSi9+PqFUFg+t+whxAUnvfnOZvMcd8dfAL+MpbFhZ+Xs+/2945kPjWUVqcOgBqlKx3ui3eGnG1pLSgtLmbDBLJcJW/scwqQGdSLtqhNhzf9+ZxsrenecSOPvkY5q/Zss6wcayGTIkLVxx8xSMm3GD5Way9LDxtUDGN7p6GCniTz1yAKiL5zQYOxXSyNciCg0sRcXuF7aRd4uWlJSKFaNpC871xvb3DjqpcFRnNBHCoIT5W54nPGXJgU244c26bOWc/+I4YCbXloc5mRIQB1WRuntkzyVgNu3Ugna7PTwFpCMRz3pB4eA8HvFSfUIkNvZ6qS2eyNxJBOinbJJrNyYFFGo8cZeVNtO3JZo26K5CnQemBmIhX0Sayl/eAo/OwU5/WCND77D1uPORtHT5thmoQsGFvzx3HU/XD925MoqMqlhIPOxEPjW/hMT5ooNDzQ== 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)(346002)(39860400002)(396003)(376002)(136003)(366004)(451199015)(6486002)(6512007)(478600001)(186003)(26005)(6666004)(107886003)(71200400001)(6506007)(91956017)(66556008)(66946007)(2616005)(76116006)(66476007)(122000001)(110136005)(316002)(64756008)(8676002)(4326008)(54906003)(66446008)(36756003)(83380400001)(8936002)(41300700001)(1076003)(44832011)(2906002)(4744005)(38070700005)(38100700002)(5660300002)(86362001);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?q?pOrO/Glwke+5dHMNlS2HTuj?= =?iso-8859-1?q?ubOGnzke9DZP5AX2/OJ67eIxQvPkTT+/r73SkV5SwCPTgGporsAkb1iQlneW?= =?iso-8859-1?q?VO0ED7OCA+KpmrrIABW4hu2bicYLczilSie1weCyDKWKU3XG+VHKf/y4Mb/j?= =?iso-8859-1?q?GuHnqVMUiryQMJ1ytRF7UhI2Y/lrl7If/aH+qLshpmpBnX/9WZgAaYIKRRXw?= =?iso-8859-1?q?F+YNKk9nCD/d4xeK7a9s1BX2FP1ksiSXGajKJac2Cb7/9c9gdXcCpgZJMBUm?= =?iso-8859-1?q?pS1LFm0rmJrvbD+LCWxTNbmLaYCot+3kltISJXvmRYmedInp1EQcIHt0bjqA?= =?iso-8859-1?q?n1VoJwNQT5xOJ9JfMyQnZgAZHf00YAQOduns7uTJFQdxQX8q2fvuGFMGpGSE?= =?iso-8859-1?q?d9ULV10H0IUfkIZqfuuz8Mn2iaTG0vS2Uqe7pz0XWGY+/SU8SDLTQK2IyaRU?= =?iso-8859-1?q?lQt6H0D57SGr+izLHzIdbEba/oNmPc4SBUtTcmEeGagrGxYcEp8uEioyOVSL?= =?iso-8859-1?q?Xmq7YxKApoYKPAN3YKag3D3XwdkY8tLim6wH+I35kiBMujIUcFqdZqvKjVhA?= =?iso-8859-1?q?YRFDIGtKjHRwU8IBQgZFq0NDl8Wu+dDMJDHW5GJrwzzxTLNy6jUv/acO16qW?= =?iso-8859-1?q?x1CeRHeDD9m2t4fb7hLUxv/6KFoEPNxL4P8Wu+cDYdAOhBejx7h+bPXwqG7J?= =?iso-8859-1?q?IIRNC5d7oxmzliGqhbt+eRUKzwb3M16JptvZ1Ze2l4jhkhiumQqli9oTw4Yg?= =?iso-8859-1?q?rX+9cVRpe5AtYbov1BvPijeol4/cqtWSYAFVZeAwLWPQZgdLWBKMD9k0ImHq?= =?iso-8859-1?q?dvpKUina0rqr2/yn2zIxJkax7jEfe/rKuMCwb4/CeQWpykeg7l02UfCAIhp2?= =?iso-8859-1?q?K0SCVLs9ygvJfiY+crfak79LqJzqoI7RvCpQFJSZpANg4uIKY9PBviqR0LvD?= =?iso-8859-1?q?lRWr8Y7bXLb4KpOB9HLalysWKA2leYrcbNHV9iT60QJam3yBylJs4GEFOFLO?= =?iso-8859-1?q?1huXY/lwGshHzAIJURcbsLaFB1FG+DEq6I9XYq53jgI7s/W2hjizN3aqoeBS?= =?iso-8859-1?q?130fz+nq1Gm4LrivucSSVMtzvqqlUE78IABZSxeD4jsSktUVoqFjpmtcIYjV?= =?iso-8859-1?q?Fmf98XzhHY8EbGoNzRTVSLoPSzicKsO5++tsALNC9JfBR8vbW/HeAi9AxuA+?= =?iso-8859-1?q?97+kyVVXF5UFPOJx3kMnzd/nUYrSxud2L2m449r2zzhBE2H7R6uvj7Cn6wXv?= =?iso-8859-1?q?nF3i1+TyCz9KU2ipzd2bCuiStNY/wuOWxZHNImt45rVqXPe8UTiWmgmNMnjv?= =?iso-8859-1?q?Xa8SC2TXzBsqlqmYph+aFX7blbNQUXztTDa9wzCFoxIp1AfaTScrhimtmj2y?= =?iso-8859-1?q?8diktoPwmqkZ8MUIuXpBwQ+rPJhIuBtIYErWxN9+XAEJBzQXkdwUmB6Ny4hf?= =?iso-8859-1?q?NonsVrq/nUQuWdNYmWxWcZG5FIHNBTaOnx7kpuSxrFzN9quzIhTmedqGyLPl?= =?iso-8859-1?q?dDZcCin7nwYBsS/5Kpv1rR6qdk9mSJ2XgQZfvkGyifxzVAgZFej7mV3obScL?= =?iso-8859-1?q?jpKczQfY6LVccAVftnM3tq3+VVwwGFNPSFnjkWfh8xWqm9ROBmzgzmrM+kug?= =?iso-8859-1?q?YIXwWFhuTycLJT3VYbUFYn8AoHpr+cEs7rxS5mQ=3D=3D?= MIME-Version: 1.0 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: MEWsoDxhQx8Ms8d/C6n8FrdpSdKmVdTs2UeikX5QMGhk8j9+ZhDlp6l/cPKUC2DQ8GrPlJj/0KpsbrrBgjX8XGAP6+2a4OAQABLLgeobtKQA5B7yIWn+HSTAXh8yXIqtBGB4uXt5bDRXHxfB0EFK+58ayCCa1Mj+3Hz6QqgKehHRkz4P5tPcNxJSqk5zpX3EbYRIkIxJuJwSNIkuBzBffuctKi7uD4HW99M7YqkhsF8ow2Thc2X4ui8sRSTt8mA0UwD0RYhEgGVN2rs1KWqFL4tT7ssg70RLUfR3WXTnVV8cP1nqBVCtAup7A/b2hDjLR6JWvjD8+iWIKYL27guvMfnXw5EjZnsqUe4W+yc/jx/VKSjGy18kFkIZC5OFSXdiLSFYMalLZSWMWJkMiQDUNyd1TbDqPgZU4EnmTe79B4mzm3MCXgADH5pF5iryCYHzKCVMTdwFWlXkiDd/iu1RG4pst2ROrBauWsliTh3e60G5JC5VB5O/0syXhehU/FNHBlF4HdOiRUl+JOBb60QweSBi+icZ21JJdJpZhhCKfNWA1yXFGsbA5xvrc/aZlYVsTn7dtCXgbUOcs1r/YbpWubt1jq7+VS28I75PuNleHz4T2/ZJc6Ps1qClgpRyBni6lCzbzBKQ67v0CrXrjgwGJfL2keQM7npoN9Ye7dTU80Ux8cHYal7DNwQn4gBdFfDoB+oHcz8ilpbU1fbD27fahqU7tBRBmHW1LnmbG0UjUb3aomuQGz9VDb7VwBGYmNEWxWeIAIHMQfMS25QVtPlk938+u45qj6/JQ+8fEkrLZIhS9cFNUIbWjZQmeWSkRqnDZdfkBJ60eMt8g+IiCUmqe8QrCYC7AbO3Y73s34WUmV9IHK4pYb2lWzV9I9fVnxlySgigZ1atFYxsyxnov9M52A== 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: 6d001483-ccf3-4af1-dd8b-08daf8337032 X-MS-Exchange-CrossTenant-originalarrivaltime: 17 Jan 2023 02:34:24.7181 (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: 8Jtoh8g4OvL7SovK2lvgc8aBC+2S4htxQGYp22oz0kVl14QdUiIPGS81RN8ucdjKCvOsBoIzahiY4x9gt1ZvRQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR10MB4814 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.219,Aquarius:18.0.923,Hydra:6.0.562,FMLib:17.11.122.1 definitions=2023-01-16_18,2023-01-13_02,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxscore=0 adultscore=0 mlxlogscore=999 suspectscore=0 malwarescore=0 bulkscore=0 spamscore=0 phishscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2212070000 definitions=main-2301170017 X-Proofpoint-GUID: ap6mpDMoLW9sD9AXM-lLBoC8BKQxZ0K8 X-Proofpoint-ORIG-GUID: ap6mpDMoLW9sD9AXM-lLBoC8BKQxZ0K8 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?1755236553373988414?= X-GMAIL-MSGID: =?utf-8?q?1755236553373988414?= 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 bf24c46c3c3f..89109a43f35a 100644 --- a/mm/mmap.c +++ b/mm/mmap.c @@ -935,6 +935,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? */ @@ -1026,9 +1027,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; }