From nobody Fri Feb 13 07:54:20 2026 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 36CB2E82CAE for ; Wed, 27 Sep 2023 16:09:41 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231733AbjI0QJk (ORCPT ); Wed, 27 Sep 2023 12:09:40 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:49432 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231634AbjI0QJe (ORCPT ); Wed, 27 Sep 2023 12:09:34 -0400 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 02C2DE4; Wed, 27 Sep 2023 09:09:30 -0700 (PDT) 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 38RFsmvx006126; Wed, 27 Sep 2023 16:09:18 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : in-reply-to : references : content-transfer-encoding : content-type : mime-version; s=corp-2023-03-30; bh=KtDGpCO23d7lFr+HvsCNeiHEhbnZIYWxCsEz55HGVpk=; b=yKldy1uZWF8RIyH3DtlG298o/UfCCCYrsKA9h6wogUGTYbmtDJUEzT7F1noT9V7O4/de wGBzsnTpY+U7/O7AVX6J3Wbh/xtUDTM7PcVTHpf0EV0hEKS+krTwsRoprJD+yjQ9s74i /2MGXzT6Z3tJpLaX9GAMX7f80+q3soOhK8csw/H79K+ywc6gcf+jO19wy66c+i3JW5Sy rFiuEHZaLHFxzkL1t441bhwNTq4gDLoxvXhWLp4sqimv1D6UOAEBppgHTRNATnb8Yn17 499d5Q6o4oU40+SaKHhHkZ6MnXmQG2F7gILRhXDf74AgEoU8zFgDka+gUuoVLu+v8E1k Hg== Received: from phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta03.appoci.oracle.com [138.1.37.129]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3t9pt3t014-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 27 Sep 2023 16:09:18 +0000 Received: from pps.filterd (phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (8.17.1.19/8.17.1.19) with ESMTP id 38REvtav034938; Wed, 27 Sep 2023 16:09:08 GMT Received: from nam10-bn7-obe.outbound.protection.outlook.com (mail-bn7nam10lp2103.outbound.protection.outlook.com [104.47.70.103]) by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 3t9pf8egah-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 27 Sep 2023 16:09:08 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=c11ENeWKMNgiXlwSnOFnSfpMnHFd7IcWo8DMi+QzYL/gHN5V2JsWOvKDFPo1vXx7BazqzIuOIToR67H6KS46oGJ0kcelBs3ziLXq9CH5R9cRkjuk0jQ3uWCaj2I/JozQd/n9742IcNo2nJ6n47SBLnSUTU+6ZIWUVXSlVRRbX4XufUrasdRANYNHKAYatXlOptFL2oum4LAkdG9vuKqrkswPdPZG9Xc+X861ZCZ5riG4Jx6BDrr+4b62Vrb7tTvY+HgoUo/u3tARbSiSekz29o3QkDblBJskJB7g0ddxoGOGTW9IZa+4qB3IGNsymVFqABUVLwlMvrJLza528JV5Mw== 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=KtDGpCO23d7lFr+HvsCNeiHEhbnZIYWxCsEz55HGVpk=; b=JLVYC66YNMPWxZ2NsZQY+EoA63PHZRsFdbnwprtESckWbVJ9sqtMya4myfHRsC+iacXoctrR2BG7NmaX0gLqR+tS0LxvcKE2fAYBXA9BeMcGaDTYz5OR5JsiJoMp5uS/6rLQU1xpsUOVIz+fkAuCXfxkzYHENliOp2YflwUQUaRzYa3N9gT0DDLLRK7RVrjfPBoPjsPMrtVLAZ8BGNzcGGUsqx1t9+rBQlPwl6BfzSf8QGlDT2TvgYzHo81M2ygXPjQt7McNo2w7kTdfuxQP0wkQagLEHMENAURWo7Z4pasMUCR53yhn6XTt5N9TGa08eSWWtO84xmQEyboZQENpSQ== 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=KtDGpCO23d7lFr+HvsCNeiHEhbnZIYWxCsEz55HGVpk=; b=gYm3V6Vsw8YY2zX+UdwCZwBQSmQCCEEowkrgaO7XfSkRREVtjCCsYN+wqjzzL91obKq0/1VY6jlV1ztvoW7G8wR0UZH1BxsvoFX6cN/6pJuDqXb8CWnsB3g4H+gcWWmRVPLRQ45ffqR2neEcAMWNdE9XtBoGaZlqDoXR+VXOhEs= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by CY8PR10MB6732.namprd10.prod.outlook.com (2603:10b6:930:97::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6813.20; Wed, 27 Sep 2023 16:09:06 +0000 Received: from SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::8979:3e3f:c3e0:8dfa]) by SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::8979:3e3f:c3e0:8dfa%4]) with mapi id 15.20.6813.027; Wed, 27 Sep 2023 16:09:06 +0000 From: "Liam R. Howlett" To: Andrew Morton Cc: maple-tree@lists.infradead.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, Jann Horn , Lorenzo Stoakes , Vlastimil Babka , Suren Baghdasaryan , Matthew Wilcox , "Liam R. Howlett" , stable@vger.kernel.org Subject: [PATCH 1/3] mmap: Fix vma_iterator in error path of vma_merge() Date: Wed, 27 Sep 2023 12:07:44 -0400 Message-Id: <20230927160746.1928098-2-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.40.1 In-Reply-To: <20230927160746.1928098-1-Liam.Howlett@oracle.com> References: <20230927160746.1928098-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YT4PR01CA0479.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:d6::19) To SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SN6PR10MB3022:EE_|CY8PR10MB6732:EE_ X-MS-Office365-Filtering-Correlation-Id: bc9cd043-41e3-46b4-59f6-08dbbf741356 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: QCaZOQtRrody5Ui+mw+F8dC6UQuYpu3KSz/SmY5Jknl7zXvoI+gi0L9VCi4n01EeAZwnxfnTS28FXLe+LMoSERjSGlikaPo+5nou24mMuJGwJbyK2ih33ddd38mAlHb5eOU4AtuRwPqOWOAMZHddDCATDDuf1qaIDSbztcQaMQeSuqV7IdrVqQahmff5NS3Ew7zajnF9F6yEdQqZkYbpc3yOhmU4HAHcQB7b9aBW/GtyiAExONMTmdEHO4xeqYzFBwtx+xNA+I8Wu16K2WlyVx1SKlarKOoc0toWRE1+OlMXfs6E82BkmplQ1Ia+PWha78QjSLtzNGad9I+DfkJfFlti+gr8mVTPa+A1/bjTLWes1fZ7p4txLQhyFZpftwHzf1syycPg1fxl/e1JM6TYdZlaO+7C/f4wUE9DSyd1B8pH3s+OWNPX1+rZGT8FSUImpMqBNnDRXA7Zsu5bg75mz14IMoFEYCLWouaRVDlGqxO6HuS7LMB/g+kJYs2c5+DFEMWmBTGI5ODmunhJDS4+REluJwsvCagzlyUh5J2RDhc= 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:(13230031)(376002)(39860400002)(136003)(346002)(366004)(396003)(230922051799003)(451199024)(186009)(1800799009)(6506007)(6486002)(6666004)(8676002)(478600001)(26005)(8936002)(54906003)(66946007)(7416002)(2906002)(316002)(66476007)(966005)(5660300002)(38100700002)(4326008)(66556008)(41300700001)(36756003)(6512007)(1076003)(6916009)(2616005)(86362001)(83380400001);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?r3cOntXIRE90qXqwLYEi069EThQ83mRIaOS5t6x1VYdTvDlGiMHOh8LLY95x?= =?us-ascii?Q?Y1e3X6AcxvEjm83IR3D1kml711Dc27FwZ+rITLWWVKVSfUA12lNq8eRtEbrt?= =?us-ascii?Q?c7xeOEwG5fuLyvjTrEF5ms+ZTphje9SDVVswjoJXcZkjP//Rfgzr+bFn59tO?= =?us-ascii?Q?M52vqA5PF3Qpxd5MnuD0Vop8jP3QvKjtzMme+d1mJgz1A29odXSbE1gc/h0a?= =?us-ascii?Q?QYLDUsBJbyf4Vqak6z/omFxotGVuXPIBqqOPWqOTgnJTC+ejnRL7a6207Nrb?= =?us-ascii?Q?UlRSKwMJP2M4FbWalMJEGUdCJEDFRnGSoyv+ysa+SV/VdRwyumCgJ3/oOXVl?= =?us-ascii?Q?RBFtyGeSBVhzfR/MvqI7rdoi+NrmZoZLdfepoGIQNFVoej/gXFaY/S1BTvcx?= =?us-ascii?Q?0im5CBvsn1OXmTdi9UuVA0o9a4P0bEokZNB8X1M8FRnwWiVycSNpxxYZ/R1k?= =?us-ascii?Q?cOR6Y6LqJsOkiYI243yPbx0ZltaJzNeWM1VlXHO/o7SQD3y/7qfe9jncKXaE?= =?us-ascii?Q?qL6MShRbsmr+oCfRikk+Iy02w4fimD+5+HP5MvVuYfIBCXpI6p45UPp48RVz?= =?us-ascii?Q?id/Ucq1O/UFnI3xTy4aIAN25uOtuMhWe/WHleUnrTaJoC6mOFcAWgDTicc7U?= =?us-ascii?Q?75+ok0dTIjJPkKeIX+heeV/0qN5eFlObbuxApZ9BbPXupp0MSl4UQTCG0mTi?= =?us-ascii?Q?XMMRtZy9XitDBmlu8iMt94IrRj90F0PDzLLkX+lkq7nt9BrHglnctFzEjDoS?= =?us-ascii?Q?APu/qnf1uLctWX2N98L3Waws2yQiL9J/Qk4bxXBkVXe4Guu8pmpB1nVsiRWK?= =?us-ascii?Q?oanKo0gJgfJv/oDftJYqslUyATmeGs2WSZ9wJUg1gD/GHk5s0eBtxVA9GSQ6?= =?us-ascii?Q?DNt3inrL13iukHNAncVsEE/dYIftSN6sDrQG16GTnP7KkAsI2tn3ySgazOVa?= =?us-ascii?Q?iw+rSRZTHI2Ov4h2OhsrmLvtiyv3aJ/B9EDButLQLxFCAVkJGQUit4XJIpF6?= =?us-ascii?Q?lYH2vx3gUuymW8v2fWAlFtsvUQtBWDmFoYI9YR5UW2HIZ05NCI1qnO/29Lrn?= =?us-ascii?Q?9DPHewkzvmoyQjMOJiVQZ6zxIoCcx63DKw6KWBAHcphmDCUS4cv/Lt2KUJ8l?= =?us-ascii?Q?zdJL2Gy04/U6pyV4oH6S4BYVXVwX5whokVqRZVkWMoYX/+U1Wimeh6KoO2yh?= =?us-ascii?Q?RM9yU2wcYWxghIkvJBLKa1Yn8FbLSJURf335CTJR9C9C6M5yVK7jzk6Aqwaj?= =?us-ascii?Q?Djb3bYKHnK77+arN0PerMdwtRwk061Ssim4cpLvHR8tSuzjOQBsg6mnX76o6?= =?us-ascii?Q?PQXuUKWAc0SmeOOe45xgM7//qBsqsbcFiC48vqF/LObr3MZ0uqgJrAl5EJcT?= =?us-ascii?Q?AM11Raebss+eHYRv4DF3DPY+rjdRawIjVSF0zkWZtTHgA9OVeQqrVTDFZHNB?= =?us-ascii?Q?Icr2uYh43iw/PdDRSoiDQ7BZBdAIxBFNDem8c8xEW9I6phaH2VcTAJsebQJm?= =?us-ascii?Q?IGhHoOioSnwKMhwlJAsYeSR6/Kb15vO/93tYpGzk5qpQrXQEiiHpa7GIBtd7?= =?us-ascii?Q?pAgBmDjd5kkLu/fwGx2JN0p4N9nEI2zlEXocLY7h?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: =?us-ascii?Q?+5lQ9/C3kHw+/+larSMaWyvs1mTwJ8sgj9ZSoz81twPC6PjdgK7mLr/Pyao/?= =?us-ascii?Q?GkzvsxfG3lxRsq2sxxykGzM6F/zoKNE4ilHdFiTAf3Gp7IZhaDFJiLiQ3gId?= =?us-ascii?Q?iZ/aDwUGYZ+FtAaie7/8nLunYZHMLc6lMcYp1kdJtwMYLiwtu2Y2oJOgIAbP?= =?us-ascii?Q?QPLTjhmkKEG9YnxryMNXASyUVa688BP/MtLNb8gLvO51faqYM6TkmRpNFTHk?= =?us-ascii?Q?s6fRD/ER3YtaagbL4GO6o/SyLjtu80mS16wjgS5g/37nj+mBBQHi0Ty9CFea?= =?us-ascii?Q?i4oe4uw0SWgQJrE0taoTAvsgG9Sd2M6J1kHoOvLjofcywa5ZjBIpIhtud8C3?= =?us-ascii?Q?t2Xvu7m4qNVAIYb2VSxNDBuOcmj/veCosEFDcnGcIwnYlrWqP9ngiEFlyV+t?= =?us-ascii?Q?XHwMeaaHGsEUyuux9mADa+Zt7o+RopcsKAcPb12SnxlqMEAW+scDh9ECriyo?= =?us-ascii?Q?ABYVKDyZSwUqezwbevm8fhGVV56B0ZDrZAWvQrgkqxPXetzK/NmP8FVGyKCm?= =?us-ascii?Q?m8mlnBb76MnlVixlSVvjcupD88JxWK0KGbcCKjx+0uOEtv2Yo+AB+Rnw2nsO?= =?us-ascii?Q?DL8Z1DKS2n9iOpJsfkBnElV/EtymvPNJwc83Rkb6neTgRFp29E7FBgrdqzFL?= =?us-ascii?Q?7sRe66lfjreONw28/x+hFUZDTLriq5b5w1JlBujS2aVPp7N3q2Byv8AjvGWD?= =?us-ascii?Q?3rPZeiQBeE7pi98UWvgIPC1lGiwT91K+jFXQr+9y3SJCbaGGJIBbq09YWAV2?= =?us-ascii?Q?bj/uYMkcyzJDd693WUn2A8qGZ6ehYW3+LHbX2K60lHA5D/LOD39qtUaniK/B?= =?us-ascii?Q?jTG87rPvosShlwW6p42BtDpnO12xB6mw3SSLUBuG1Oxnf9FCSUyimvmmbFGU?= =?us-ascii?Q?9i1SlzF4WsW0JGck+qEDc+2AovxQKxBr1XZnzhQ8DdZhMQHOtpc2FoGlcEdg?= =?us-ascii?Q?tm15lEsPWpv5+nh9CWx2D0pP4r/KOFgHgQ28orFAiMkN67VbPllTG/F26cRz?= =?us-ascii?Q?PcKs?= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: bc9cd043-41e3-46b4-59f6-08dbbf741356 X-MS-Exchange-CrossTenant-AuthSource: SN6PR10MB3022.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Sep 2023 16:09:06.5329 (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: gPL8glYBtrnKXB4dAS+4yYrwoTrvjFX7hjXCw0P5hzfsnx2Pxn2NIV2uQI5dU2Wg/VMnvH0pPco8bG3+dzTQXw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY8PR10MB6732 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.267,Aquarius:18.0.980,Hydra:6.0.619,FMLib:17.11.176.26 definitions=2023-09-27_10,2023-09-27_01,2023-05-22_02 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 spamscore=0 bulkscore=0 mlxscore=0 mlxlogscore=963 suspectscore=0 phishscore=0 adultscore=0 malwarescore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2309180000 definitions=main-2309270137 X-Proofpoint-ORIG-GUID: zHjT5izFqsTTEteOhQv2a817RUo0Trcg X-Proofpoint-GUID: zHjT5izFqsTTEteOhQv2a817RUo0Trcg Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" When merging of the previous VMA fails after the vma iterator has been moved to the previous entry, the vma iterator must be advanced to ensure the caller takes the correct action on the next vma iterator event. Fix this by adding a vma_next() call to the error path. Users may experience higher CPU usage, most likely in very low memory situations. Link: https://lore.kernel.org/linux-mm/CAG48ez12VN1JAOtTNMY+Y2YnsU45yL5giS-= Qn=3DejtiHpgJAbdQ@mail.gmail.com/ Closes: https://lore.kernel.org/linux-mm/CAG48ez12VN1JAOtTNMY+Y2YnsU45yL5gi= S-Qn=3DejtiHpgJAbdQ@mail.gmail.com/ Fixes: 18b098af2890 ("vma_merge: set vma iterator to correct position.") Cc: stable@vger.kernel.org Cc: Jann Horn Signed-off-by: Liam R. Howlett --- mm/mmap.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/mm/mmap.c b/mm/mmap.c index b56a7f0c9f85..b5bc4ca9bdc4 100644 --- a/mm/mmap.c +++ b/mm/mmap.c @@ -968,14 +968,14 @@ struct vm_area_struct *vma_merge(struct vma_iterator = *vmi, struct mm_struct *mm, vma_pgoff =3D curr->vm_pgoff; vma_start_write(curr); remove =3D curr; - err =3D dup_anon_vma(next, curr); + err =3D dup_anon_vma(next, curr, &anon_dup); } } } =20 /* Error in anon_vma clone. */ if (err) - return NULL; + goto anon_vma_fail; =20 if (vma_start < vma->vm_start || vma_end > vma->vm_end) vma_expanded =3D true; @@ -988,7 +988,7 @@ struct vm_area_struct *vma_merge(struct vma_iterator *v= mi, struct mm_struct *mm, } =20 if (vma_iter_prealloc(vmi, vma)) - return NULL; + goto prealloc_fail; =20 init_multi_vma_prep(&vp, vma, adjust, remove, remove2); VM_WARN_ON(vp.anon_vma && adjust && adjust->anon_vma && @@ -1016,6 +1016,12 @@ struct vm_area_struct *vma_merge(struct vma_iterator= *vmi, struct mm_struct *mm, vma_complete(&vp, vmi, mm); khugepaged_enter_vma(res, vm_flags); return res; + +prealloc_fail: +anon_vma_fail: + if (merge_prev) + vma_next(vmi); + return NULL; } =20 /* --=20 2.40.1 From nobody Fri Feb 13 07:54:20 2026 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 760C0E82CB1 for ; Wed, 27 Sep 2023 16:09:38 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229705AbjI0QJh (ORCPT ); Wed, 27 Sep 2023 12:09:37 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:49414 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231613AbjI0QJd (ORCPT ); Wed, 27 Sep 2023 12:09:33 -0400 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id D28E4DE; Wed, 27 Sep 2023 09:09:30 -0700 (PDT) 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 38RFsmvw006126; Wed, 27 Sep 2023 16:09:18 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : in-reply-to : references : content-transfer-encoding : content-type : mime-version; s=corp-2023-03-30; bh=wKLO5aowMtFkN1v6flI3U2j8ilZzZwu3h9RuAvaF98Q=; b=BuOaCPE5a0NvoY16Bo3RcThian0yWndqUHHRIjjmzZbZ0mABEi1aQeG82RSXYyxKbBVf pFlISRxFXwKEbmxrhyDzWjg13kft7OcOww4wPuNf0RDdw63sHYkZn/Vy/ECJxpy+l1NI HRpoA0nIaVysbz1HDgNeox60woiIA26bO4VBZavx7FEtJSN7ugR2lGRLyCYzkP+U34Fl wa++FRUXikWobqdK5xirFmHGMDXjCHIN5c3w98uxLk68y2opiUosFS0IgfCKoFaQ2asX uE5d2LUL972zJWLPXVtEFL+W2ZR0vbR/TTbzv+j2LsloxxJ56ncU6jDFu9C9NKWUpAEK 1Q== Received: from phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta02.appoci.oracle.com [147.154.114.232]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3t9pt3t017-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 27 Sep 2023 16:09:17 +0000 Received: from pps.filterd (phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (8.17.1.19/8.17.1.19) with ESMTP id 38RFQw3t021222; Wed, 27 Sep 2023 16:09:11 GMT Received: from nam10-bn7-obe.outbound.protection.outlook.com (mail-bn7nam10lp2103.outbound.protection.outlook.com [104.47.70.103]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 3t9pf8fdpq-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 27 Sep 2023 16:09:11 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=jna6sIBtWOHJlew6LrZorg+N7mxEdRLIGCbab/rwDrTGMIz67FVkR9EoYRJvR4ehGUzyJrMEo1pqQPWvdaobgxcsgm282ZCpKxfFFxgRooMsT/eR7SOpFxhfUNl1XR4gLW6BvQ8Vi7EoSK6OM2P4ybdtHooWw1zziv76dP+87IWLtwfYjIX2yAigz0tlkuTSCtremGNMygewDN42k5289Zd2vyGkpVAUJIEm/nytR4ouz+y+LC/lwwc2jkG0VrokbRo3e7EKj3U/XsRwDCxJZxpv3M9+3oza/JeAsKjyXzx+XnRNKNa68lbFMVtWtwHy+vfcIEhT4bP9X69LYo3Lfg== 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=wKLO5aowMtFkN1v6flI3U2j8ilZzZwu3h9RuAvaF98Q=; b=eadwhyJ058Ct8Sgphu9Odr36RILfnadmEBf6fWajnTmObEzjB5icNnMhKqwcpJzxpB5z718+8pZ9Dha+Y+ZbcTBw/zSJlBIa4sLgDCNNZVbFw3zW3xcZf9ZfhfqvOffJg8p9QWq5h/p1tQjAal2AKz3ybNrKjoLFnyeUPGgvLeaj3ZXJpRQ2yZxi/NvfMiCTqKk1gbqgboZiITsUZ8rkhBHOUc4xF3YlsirNSnE/nTamqkpzejIRiPF5Ur4uzbpmoLgSHLko4phICwigteOwJoKOXFZegXHSRgZ3+VDJS1aVMlFlAj437krDiVPkzxCNHSEt6xS1jfSN/57NY5ZryA== 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=wKLO5aowMtFkN1v6flI3U2j8ilZzZwu3h9RuAvaF98Q=; b=m0hheYBujpxtq566mTbKEuyk6CjFbDHweCj6+nYfodXfJnFTlRskaxXo5xG9xjEAgDWxeGLVrjanfXAI99zRpTDFFUQBhUCrhMnAFU+Y+YdUwujW9wXZKgeblE1oUgsiOx4A1WzQRC5MTUdeCsgJ52vVwMl63ixeR6BG42NRBfs= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by IA1PR10MB6122.namprd10.prod.outlook.com (2603:10b6:208:3aa::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6813.20; Wed, 27 Sep 2023 16:09:08 +0000 Received: from SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::8979:3e3f:c3e0:8dfa]) by SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::8979:3e3f:c3e0:8dfa%4]) with mapi id 15.20.6813.027; Wed, 27 Sep 2023 16:09:08 +0000 From: "Liam R. Howlett" To: Andrew Morton Cc: maple-tree@lists.infradead.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, Jann Horn , Lorenzo Stoakes , Vlastimil Babka , Suren Baghdasaryan , Matthew Wilcox , "Liam R. Howlett" , stable@vger.kernel.org Subject: [PATCH 2/3] mmap: Fix error paths with dup_anon_vma() Date: Wed, 27 Sep 2023 12:07:45 -0400 Message-Id: <20230927160746.1928098-3-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.40.1 In-Reply-To: <20230927160746.1928098-1-Liam.Howlett@oracle.com> References: <20230927160746.1928098-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YT4PR01CA0467.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:d6::23) To SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SN6PR10MB3022:EE_|IA1PR10MB6122:EE_ X-MS-Office365-Filtering-Correlation-Id: 2084138d-d534-42f6-a89c-08dbbf74148e X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: IOgQSX7y6QWs/fnHOiPh43XePlQW2PyBACrt3D/D8H2WeDGGoutXoO11cNz3ONpQ7Ro020dyOLp6jYQ5o4GlDWQsBRb1wJsEpj2p+3iLXS9vjET5MPnZm7o/1Dj7Z2n7mDpXUPXQUZ3MXG/ho4Xk5JE+gyGehk8ILvQjfm0RaQSs0EXBwvXaCscWEJPuJ1QEIIMAbhK913RVfPRG54CIDT8AfDNusEfPJOGR5DFEn8Yrr0xgadcnqyXg3nq7IrjLVh9SKFD03n6pHohHfAxxnghgZWmOVqWgpOTw/0z1wFvgnz8RlgBEW7RHm2iuKXlfzEhSwOaQy5VBRKLNWD7TMaXPcDThjl0NsSTjHli0O+0c9dckqu/ppDzu6AdwWrDZYmoyXh9q6AofRG0xfeath5vxgkuhM8YPjj4kTBFyYwTCCgjlelmfa0w9lWEGhpT9+TIIg7Sbo/OXsyjrKAWcen3/YZ78c+Ro2MXA1/fEzV3hT4MEgpjdrtlthCMLFQWwrxH9X9rNLgituQaw4frUsEx8hRFPrD/BLEBPOtiqOMKqhFDJZ8FyoO/g1Bm8P1xj 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:(13230031)(346002)(136003)(376002)(39860400002)(366004)(396003)(230922051799003)(1800799009)(451199024)(186009)(66946007)(66556008)(66476007)(38100700002)(6916009)(54906003)(478600001)(86362001)(2906002)(7416002)(316002)(6666004)(36756003)(5660300002)(8936002)(4326008)(26005)(83380400001)(2616005)(8676002)(1076003)(41300700001)(6512007)(6506007)(6486002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?BV7LC1OIEumSi1hKnRkz1PhRAibE4SIaUftLhlk0lHmWDEHzHEJct5ki/Yfl?= =?us-ascii?Q?GbM4o1R8FnrZ4Wt04DUzh6axla0MvRwrNeyxT9S4HvYiVBiSXWM7Fom9HTOn?= =?us-ascii?Q?av8Hl1EaF7dwLO1iBVbqL3uC2Jz5NYd87/lE8dgKjEY8M3iOVT2nlerDQsy2?= =?us-ascii?Q?UTP57rSqRUHz+4ua6+VEdInTUZvJNqkFtWcpMcnAGHLodOhankHnpAxfYx0M?= =?us-ascii?Q?+e0bFbNzIsVnSCzyOkLysPxMPgJpRa3+ohaC7q2bbc1nOGvLhJSKGStBg9we?= =?us-ascii?Q?A1QIir7UmbaN6GIXH3vWMXbozIj4fQt+hJuIt5EDk78QFRG4OtjRMkW5X8xe?= =?us-ascii?Q?zyk8035wYAcHNagyOLnB/6LOrEgU2kQ7qUtxB3WCIS6Id88Bbqg9G0aAQprL?= =?us-ascii?Q?Bt49aze2yGSSk0xZNx8EC4halohwBmp51widG/xcqIH3y1tJ4s3cP0c3SE11?= =?us-ascii?Q?phrKoreOrtZEsvOEiDaIlaY38AFOkcFJmQS83q2Vig5QuuUdwQoI0+EEryoo?= =?us-ascii?Q?GSEnRjLiJqxO94o3vnrYInEyEoLgVlDHGw5/4CrSHF1uZOZWOtzYuq+aoWHU?= =?us-ascii?Q?gewTtBeHzl8iSXOBzr0koS0tANWV63gwa3wmtoZvYgnicqFCKCg2+poen41Q?= =?us-ascii?Q?ixiZEBfRYzUQwkoOHGPJohhwcN6A3hPGOOZCc9nWaLA4HNDBYoWIjeCc6pom?= =?us-ascii?Q?BlNoZwWVd290XMhYjvCeECQ7VO9/TJ3lyM5/GqGuXbxSjns/Cz2tTml29Zp+?= =?us-ascii?Q?V5njqwlTxo9+dZB+5g/faBkSUgCBAgG/MMiJMXKwKM30PPTd4pmFanhuYi67?= =?us-ascii?Q?A2yRM7LDhQvdGPRXY7/LWup+hCm4/XHC7z23VcBFsqP7aru6PURPYjVSFYse?= =?us-ascii?Q?dF+e3ndAI9te8ad3U7eH3hXwKyi7cQ1ThFTLy0IxkcKxjdPC+fXrq9pdv5DQ?= =?us-ascii?Q?45mGRab4fAamMhMlSpp2UH6ct4XEjfz20hlzL5p6UuWO67TzYx1HDfVj6ZFP?= =?us-ascii?Q?OV9iCvHYdWSA+vLKrHCuhSgIV+xz5if8S6kXCEBti0v2VcGCsvGajrrWAJIs?= =?us-ascii?Q?zvyFWDIZ3OK3SMh5bM3Gx3nlwouTDhnxR0YpaG7Jy2T4y99Y4oc+tp8jWK6u?= =?us-ascii?Q?ISJtVUKhY8MjGx0GEWzJlxhT3WFQc+niIE1kww8Yla7LIMKew69PkNmJJyk0?= =?us-ascii?Q?ZBRTkQI6Y9xllEysD5cdu6hHlNvVgDzhjuer26rVHaGwJPgCaoUUxGsVmdWs?= =?us-ascii?Q?Oo9XrgMHPC/KDbtD+mgG/s6Ecp7/kBkDLvS//JGBlULhUXuWEbla3tmW7V3g?= =?us-ascii?Q?YKFQN8JjGIUAy0ONLmXVa8voDugTOrzhAHjbcUCsaDN3pSpDrKBZD4vfuW09?= =?us-ascii?Q?kLkP6FCznDVGV0dDB4+eQuO8j/aRQwdVIJgW3VqqtfwDv88CtdF2QQiSd0QZ?= =?us-ascii?Q?w9GiL12PX83sY+MlfXJaHKoZKZKWl8ohD5ifN1k+eM/VqKhlniLnT426rjPt?= =?us-ascii?Q?udhPuCUxL115i8g/IFz6WXoyDmpQb/kUjHs1W2m0GTxDQLEDZSZ5LbuytuU1?= =?us-ascii?Q?xQbritabVmpLXqmgFsVOpD88ZX1fpq/bOdzz+/hw?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: =?us-ascii?Q?/493/iW/yaL+h4zHq5RIUoYfGmGS6JOVUEUlTupYb/uwsRDXe4Oir0gy/maJ?= =?us-ascii?Q?TC3XjOvAz7eOM8q93Z/BuTF0SaGy2wn+DhaijyFZ4MCEVhhjPCG8ftdvHIW9?= =?us-ascii?Q?ruaGv3IEfx8/G3ImiJHEvKpbxn+tVX98whJDGjfzBy2eIKlyljgeeroDLA1i?= =?us-ascii?Q?3Rn0gx5opyYJCMVSCKuI6Mb4KxjJwJarHGOCaFP1yhhgJJ5w7hX7BlJUDmX0?= =?us-ascii?Q?sbbyNxoKw+WmxH+G99QLzutI5GDy4y1Od0FDF/u/E0TFMcl++uY+6iJvHcIC?= =?us-ascii?Q?EqslfRbOwAIMYq5NAUydyuFNTJdgOKnMQ2cuAMMmZo7qyvuDHPO0shsIn3mO?= =?us-ascii?Q?PccLALYCCUjOHh87+13xWJiQLGgk+4qJuROQ2rjVMugrPKrNcqV+6EohxRX3?= =?us-ascii?Q?zTJSRYJV4ndHOSeEEbn+QPoiVvzzfRz6G1RpaVOeWdLriQAqArgPLHtx2/Jv?= =?us-ascii?Q?3UZBF1YQpNJ9hoKmlmoRBbToDTkrwm/QQQJrD2AMXeFdx9Sprca5WyFnQVLC?= =?us-ascii?Q?9biE5XWBt1f6052NWQkZcONscmDL8JGYTCHGBxeHJUNUPOmyrBDURKN8E1T/?= =?us-ascii?Q?2eL7+f9eX2sp00ZcVkjxev/TCaU7ojqUMyT1sqEtqTz+4yyOGJxXXteedcsE?= =?us-ascii?Q?F9XcuPLPqrb79XHkXRWmPJ6ujP76XHLStWJ4l57YcTWB+0jnE0cAhGcp9FxD?= =?us-ascii?Q?ffcDar1huswyfha+6mnDTh/x62s+THGCefBG66FMK65Z/5lK4XUdTb15jEoO?= =?us-ascii?Q?HS8MQT4cB1RbaTvoSBt+Xb34wtFsPdL0bBAdohB6Ym4pSghES89OnPKAeAIg?= =?us-ascii?Q?K2v1tvnMYkNgWulo/UbbnaGOP1YFo27bI8PCq70fv3oE7abaiiVlVQdCdJYL?= =?us-ascii?Q?P9+m4tzWphzil4RI/i/+1oLkrs5tkw5eWu8vtLPxlYDMcuz7clP3LTWMXXa3?= =?us-ascii?Q?BsmHbdqFXQc658c74JjDQoILCwT9ZJGUrXaXdqfszd90bxHvDS6oO0fPqmkl?= =?us-ascii?Q?7hiI?= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 2084138d-d534-42f6-a89c-08dbbf74148e X-MS-Exchange-CrossTenant-AuthSource: SN6PR10MB3022.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Sep 2023 16:09:08.5998 (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: hSK65zzy6aX0ZDPHhnGeXodhWjVC5Q1YVolwB4RN11uSzDXeQwyMY9d4jGlIsBn7C3JY9xnRHfVnYJYHHbWUfA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR10MB6122 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.267,Aquarius:18.0.980,Hydra:6.0.619,FMLib:17.11.176.26 definitions=2023-09-27_10,2023-09-27_01,2023-05-22_02 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 phishscore=0 bulkscore=0 mlxscore=0 adultscore=0 mlxlogscore=999 suspectscore=0 malwarescore=0 spamscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2309180000 definitions=main-2309270137 X-Proofpoint-ORIG-GUID: StTGcNikf1_B-Srv0yNwqwz89SOIiU6d X-Proofpoint-GUID: StTGcNikf1_B-Srv0yNwqwz89SOIiU6d Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" When the calling function fails after the dup_anon_vma(), the duplication of the anon_vma is not being undone. Add the necessary unlink_anon_vma() call to the error paths that are missing them. This issue showed up during inspection of the error path in vma_merge() for an unrelated vma iterator issue. Users may experience increased memory usage, which may be problematic as the failure would likely be caused by a low memory situation. Fixes: d4af56c5c7c6 ("mm: start tracking VMAs with maple tree") Cc: stable@vger.kernel.org Cc: Jann Horn Signed-off-by: Liam R. Howlett --- mm/mmap.c | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/mm/mmap.c b/mm/mmap.c index b5bc4ca9bdc4..2f0ee489db8a 100644 --- a/mm/mmap.c +++ b/mm/mmap.c @@ -587,7 +587,7 @@ static inline void vma_complete(struct vma_prepare *vp, * Returns: 0 on success. */ static inline int dup_anon_vma(struct vm_area_struct *dst, - struct vm_area_struct *src) + struct vm_area_struct *src, struct vm_area_struct **dup) { /* * Easily overlooked: when mprotect shifts the boundary, make sure the @@ -597,6 +597,7 @@ static inline int dup_anon_vma(struct vm_area_struct *d= st, if (src->anon_vma && !dst->anon_vma) { vma_assert_write_locked(dst); dst->anon_vma =3D src->anon_vma; + *dup =3D dst; return anon_vma_clone(dst, src); } =20 @@ -624,6 +625,7 @@ 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 vm_area_struct *anon_dup =3D NULL; bool remove_next =3D false; struct vma_prepare vp; =20 @@ -633,7 +635,7 @@ int vma_expand(struct vma_iterator *vmi, struct vm_area= _struct *vma, =20 remove_next =3D true; vma_start_write(next); - ret =3D dup_anon_vma(vma, next); + ret =3D dup_anon_vma(vma, next, &anon_dup); if (ret) return ret; } @@ -661,6 +663,8 @@ int vma_expand(struct vma_iterator *vmi, struct vm_area= _struct *vma, return 0; =20 nomem: + if (anon_dup) + unlink_anon_vmas(anon_dup); return -ENOMEM; } =20 @@ -860,6 +864,7 @@ struct vm_area_struct *vma_merge(struct vma_iterator *v= mi, struct mm_struct *mm, { struct vm_area_struct *curr, *next, *res; struct vm_area_struct *vma, *adjust, *remove, *remove2; + struct vm_area_struct *anon_dup =3D NULL; struct vma_prepare vp; pgoff_t vma_pgoff; int err =3D 0; @@ -927,18 +932,18 @@ struct vm_area_struct *vma_merge(struct vma_iterator = *vmi, struct mm_struct *mm, vma_start_write(next); remove =3D next; /* case 1 */ vma_end =3D next->vm_end; - err =3D dup_anon_vma(prev, next); + err =3D dup_anon_vma(prev, next, &anon_dup); if (curr) { /* case 6 */ vma_start_write(curr); remove =3D curr; remove2 =3D next; if (!next->anon_vma) - err =3D dup_anon_vma(prev, curr); + err =3D dup_anon_vma(prev, curr, &anon_dup); } } else if (merge_prev) { /* case 2 */ if (curr) { vma_start_write(curr); - err =3D dup_anon_vma(prev, curr); + err =3D dup_anon_vma(prev, curr, &anon_dup); if (end =3D=3D curr->vm_end) { /* case 7 */ remove =3D curr; } else { /* case 5 */ @@ -954,7 +959,7 @@ struct vm_area_struct *vma_merge(struct vma_iterator *v= mi, struct mm_struct *mm, vma_end =3D addr; adjust =3D next; adj_start =3D -(prev->vm_end - addr); - err =3D dup_anon_vma(next, prev); + err =3D dup_anon_vma(next, prev, &anon_dup); } else { /* * Note that cases 3 and 8 are the ONLY ones where prev @@ -1018,6 +1023,9 @@ struct vm_area_struct *vma_merge(struct vma_iterator = *vmi, struct mm_struct *mm, return res; =20 prealloc_fail: + if (anon_dup) + unlink_anon_vmas(anon_dup); + anon_vma_fail: if (merge_prev) vma_next(vmi); --=20 2.40.1 From nobody Fri Feb 13 07:54:20 2026 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id A86B1E82CB0 for ; Wed, 27 Sep 2023 16:09:31 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231576AbjI0QJb (ORCPT ); Wed, 27 Sep 2023 12:09:31 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:49350 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229705AbjI0QJ2 (ORCPT ); Wed, 27 Sep 2023 12:09:28 -0400 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 0A10292 for ; Wed, 27 Sep 2023 09:09:26 -0700 (PDT) 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 38RFtnid011846; Wed, 27 Sep 2023 16:09:14 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : in-reply-to : references : content-transfer-encoding : content-type : mime-version; s=corp-2023-03-30; bh=oqBlX4M5rM78uLOs4RJ0kCjmcY3RQeZAYB9nLkDsL14=; b=LnrCc9QXS6HNkCO0qdfM8Q9/NuHLfGfT8DXxD6rSweX4uX+IjhoeiojDNghNduZTxfqJ hmdUYsj0By6AH7zLW9owcrNA6A5t0HR2uiU3LhqNfBv6OQX4st3wJh8+1sVpvMJ5atqn Uo0ffJAYkyDoUZPg0rJxuWZTm3rJKnPxtlnNDSELQV+wLRiFTPFWj4OGqn1jhaSX2RXG W30c6RlTdPoHHu2a9CdC2TE33N8lk8Ap5rI6K4OOM695v/ahE/wNualLfHEO/UCqMy7O JS85O/cr1LjnAOas2okQPpiD0si84nQql4/Pfv6FlN+kxyTklnhxkksjbintwKwr//vv QQ== Received: from phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta02.appoci.oracle.com [147.154.114.232]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3t9r2dj2xa-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 27 Sep 2023 16:09:14 +0000 Received: from pps.filterd (phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (8.17.1.19/8.17.1.19) with ESMTP id 38RF07mI003188; Wed, 27 Sep 2023 16:09:13 GMT Received: from nam10-bn7-obe.outbound.protection.outlook.com (mail-bn7nam10lp2101.outbound.protection.outlook.com [104.47.70.101]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 3t9pf8fds4-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 27 Sep 2023 16:09:12 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=fFvCqk8bRpYYsWWrgmn6I/bq6idcZcEdWaQHXanjzLY6OsXGi191y0lFLX9z0tOUzxQCpPM0ndhgDxDEmXhS/0pmS25dw0ByAl/lSzW7xcp5H90GqKyMCVSPvbsvUYa0OpU6WZMXbJlsc7ek+VVXyFAm+LKoEMPc+HbXYBKjt5woxDCC2ZUGfTRscIY6uyQTlzrWCxDtCUAYSPtoONgMY7q83UmkMCuBuZ1z8/v3CMP2Yk3x2HaCOShFd7lpsxWmXuJrZSXoe4RRVPUZG8x/KFLLRcVbUT1ZOz2G+XQd9RKW2ysMwRIrD64fJL8T98wDg4a3KupFYJafZ5EZzzF4/Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=oqBlX4M5rM78uLOs4RJ0kCjmcY3RQeZAYB9nLkDsL14=; b=MNE70n33LsJ0hS4/lcFg4HG8kAocjxoAkdMcT3e0A4s4orU6vzftRZTuBYsGzY5PUu+7Vrw7JQVKtgOSwjejwP+li7x7H2ECwfZkDrv3XI4b1/STLVv+Fq/VBfyHavuHyV2+RH9rqDq7zLyrnsqNqrJE2Y+oZMGf6cG2jofJn123TdCszCApK8lG/iPHhQTxZ0cIjGSwDqrlQQua2qFyHI/Cae8hZ70/LWL8wVSJpxP6pQgUN8UPz94T3cyDDw2g0v9ALibe2K2T7Qe0XqHYyGPctFvPjpbe9P2rrovTpAj7HDZ2F7+/GvG//16dZ8Cd4S71Ph2ccgHPuYoOiCXBnw== 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=oqBlX4M5rM78uLOs4RJ0kCjmcY3RQeZAYB9nLkDsL14=; b=RWL3FX6D2GulVbl90FBSxrDxcK4odSlU1hMNTuEMjnhBdzONgUZmaS/7WEFVlFtk0xrNrq8egpaJejBfiAp06K5kNC0UHg/Ar5Xs+wpV6xMsLFPZPW87Wu0rfm5DaCeWdd4nd3W0e69UYEMYfO07AjudSFX71BhJcr3jMZ727RU= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by IA1PR10MB6122.namprd10.prod.outlook.com (2603:10b6:208:3aa::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6813.20; Wed, 27 Sep 2023 16:09:10 +0000 Received: from SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::8979:3e3f:c3e0:8dfa]) by SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::8979:3e3f:c3e0:8dfa%4]) with mapi id 15.20.6813.027; Wed, 27 Sep 2023 16:09:10 +0000 From: "Liam R. Howlett" To: Andrew Morton Cc: maple-tree@lists.infradead.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, Jann Horn , Lorenzo Stoakes , Vlastimil Babka , Suren Baghdasaryan , Matthew Wilcox , "Liam R. Howlett" Subject: [PATCH 3/3] mmap: Add clarifying comment to vma_merge() code Date: Wed, 27 Sep 2023 12:07:46 -0400 Message-Id: <20230927160746.1928098-4-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.40.1 In-Reply-To: <20230927160746.1928098-1-Liam.Howlett@oracle.com> References: <20230927160746.1928098-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YT4PR01CA0467.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:d6::23) To SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SN6PR10MB3022:EE_|IA1PR10MB6122:EE_ X-MS-Office365-Filtering-Correlation-Id: 5907b717-65c9-4527-0bc2-08dbbf7415bb X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: GzqrwfoIxVMHmuax0JIhDby6Udm3jXlVqAHxhoVkaWmxivXx/gN5DsNYlkfg7KHv2O5wS1zWRpSWnliL9Zt0zrcHTJqLUu4SSvyFyFMDgoLz05W8Oq/06Z6JNhXL3olGFVWdDOzHEC2kdvN4fHlUnFVgVfGxuDadflPCN3FR5K3BboPq25GhFpdosHVrfnH1Czbt0rG9eTTO+fMTZKy2B5tx9fdu7G++DSJm0uDTPf5JYNBBN/i/w/pHnh+p5fA04+pTKf4t4CHeYHkM61L6XQtYY4DL71AW+rCodmYh4E7KH0T5OlkgR15za2d4LpCohgcIo0XBKgeYoElmW+ipk2nmxxMUWUBnrYbML2IlVxkD1eAZ/3by/zQ28PsPAzSQq2WaqrJn1zzXOn4dnqYAlunTdKR0DlINUKtorDg0gCRTKzlliGBfFflel+YFQp0tYGCEicjLUAgz1bLEDU4u0ypQRvmSTlJvMelMn+2xUCXA/Q4w8TNypYQPjnbvGd8BoJo8QDjlLkYV3Ce9j5ailAhwvzEAxmyPhEop5nd437o= 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:(13230031)(346002)(136003)(376002)(39860400002)(366004)(396003)(230922051799003)(1800799009)(451199024)(186009)(66946007)(66556008)(66476007)(38100700002)(6916009)(54906003)(478600001)(86362001)(2906002)(316002)(6666004)(36756003)(4744005)(5660300002)(8936002)(4326008)(26005)(966005)(2616005)(8676002)(1076003)(107886003)(41300700001)(6512007)(6506007)(6486002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?5PG5RNV8iCqNUqIpdtldL9RIvXKJGSVxtHrfmAAUdJUhzD4kds0LdHLU9DIZ?= =?us-ascii?Q?hMXyPelwTdfVPM/dqLT/hFM9TZiENkQVCDlwJ1AGrdkPNu2d3eOcts4X1S8N?= =?us-ascii?Q?9wzQ9QhkNmvnEupRKzjRNE5szR+nJshSIcxBPtmlOcQuWWBwfkgVBCdUa3Km?= =?us-ascii?Q?yfaroBdhlTWvh2qkK9U7YBz9aIu1KXqEZ0vKoHa7I4OmCfFjjsGZcJOWtHV1?= =?us-ascii?Q?1Jgygarh/TZ/FPTlVjQP1/Qo8JyHC0FeigbByDbjVgRwXCRWmNs/Jp4y1T1e?= =?us-ascii?Q?BahpuLW8hZXnBmjx2mQQ4qy+I+m/R8mdbgGI0DfNp4BUZGk/uLVaB45JmOpr?= =?us-ascii?Q?yO6UCunqwr8SNrvw+4P2GsUIWd6UeB61LgsRb79KOlea6hnK05czZtD4/EER?= =?us-ascii?Q?1TZwfQt7B2gkyOR3NKIxYhlE1JD4owq2iOBogJSweTEhHOVhPcccrZTPCq3O?= =?us-ascii?Q?YloPeMrkPKpMlGdimUOjqITtQe5eqNgCeZSzWpnGmdKmjTPR+0HUykqNtvET?= =?us-ascii?Q?N/DEaYFPqBnIy5DHQsonrnAFLLSTgu+0AEFt+43dMI6pVCppfw3zV0li4aQo?= =?us-ascii?Q?v5Ti8HS+LC8kpnjDULJeSdHcGXlWRA9ZsHCtMvxZjeYEen4G/hgycqIvgD3c?= =?us-ascii?Q?u/LlT7NuqJDc5fDAUPCAo7FfIl8zmkkmZMwqf1sARjbphGkV+xLjx3uJaMuE?= =?us-ascii?Q?K8iwb9zqzDI3IrZqUbzTupC0DhZTbUsUwMWy5vEOwlN/+rDaqDue2fHENPAH?= =?us-ascii?Q?yNqC7ROU8e5iXa0b06d9USG1Bolw6x/m5x1LBHVeEX3qkhUP+5W1KPuNDf7g?= =?us-ascii?Q?82YxWn2DJO+EQwLyMiU++CQxZVcxYqjsG/1KSGllexrX3DUr7jWibZC1oHvM?= =?us-ascii?Q?v1IOFrs8fYJedxRmHGbQVYDiakjlvIX8pXYMbvflIkjQb+S3xXDGZVElnrlr?= =?us-ascii?Q?qNXU5XFZaRyBEs1NNMu94o2UaaYr5DrzCrD5Hdklr+8z/fgWJ2Bb37PKiKl0?= =?us-ascii?Q?Ekj6I/CStxBt41rrwqmTwQ6oRvutOpVbGmH4e2jc9CR1RGeKPrs4ny/Vf1HD?= =?us-ascii?Q?rV5IX0JfkoRPKc1eKqp73/Tvy0Adr9QRsyV5ANdFdgDE86FcZefDIsqq9kKJ?= =?us-ascii?Q?OWp5ysADEAOe1WCthxdVia2XZVf4E9nQlyYo93HZnFIQTwGEgJvNoI8KoWkB?= =?us-ascii?Q?CuWe+N55IhEkw2KlfdleRTfa2ad33NHYtTwV8/D/HaG179Dp5kyEVwRYE3fL?= =?us-ascii?Q?x12iFh/qALiavqfAlXAEOWd6ycO8Bye2SNWkm2h3lKQZ6VZK9LnKuhP04ar8?= =?us-ascii?Q?r58UQsfCRy15/fPBibNJykEzVPc1qjtQylT/CfZAEHWXeYIq9/L8UiJBG4RV?= =?us-ascii?Q?NqhrfIeEaUMJ6hEFHKUOJYj3N6Bd+mlUfV5PKWysO+3jJMn+T18WFHRQCWuQ?= =?us-ascii?Q?iuYfinlAn+sNViBFZTreCZkoNN1mNZW8MPx5XaqoWtUWgvOyeCUlOsAEBm/7?= =?us-ascii?Q?58H8OGUnoNArjoGUuagrFT7BiLPBwjbmQhWyHcycujBU2Z0n+tjaiWDAwT7H?= =?us-ascii?Q?zUEeSSO3GgRta6+fjdWS3iBwYdXiyiSl7Ot/c5zx?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: =?us-ascii?Q?PLfz7B5OKMWWBRONlFKBSOShyHEeCjeFus2BcT3m0JolHjYok/AASEsvfYvm?= =?us-ascii?Q?G7ZUFTS3gwns+oY1JMLN46tySEwowBMxfX5kdwvq5ogIeAxHhI0zHy2z6L32?= =?us-ascii?Q?ZfRGwUKLYW2iKTCSEY4CepLnoRw4JX4sISS6EZWjWacdAIYu3aaPxIlONVWC?= =?us-ascii?Q?/hinsil3/6c6qkFgIORdCz+/yqRd6dB8HA49FR3Mk/E4t+zw3ApgqOpL7INv?= =?us-ascii?Q?G5sg40TlvvS0e9Xf8Nc3PWFi0ND3zIYtSUH2NP6qhrwSi3WfjmAWmY2lp5ZC?= =?us-ascii?Q?zk7Dd5ik8XwBDigCmC7tgtIyX6cjqBEV0K8jtXbughAvy6aK10Vh4skLAhrv?= =?us-ascii?Q?K3FIlnxNuvRwpduokwHy9zRGsf/4GESs94eN5lCIgKxkS7vAHaHqQtBe5H4X?= =?us-ascii?Q?h2a9ErBug+l3O4M+FzsnsnFhaD1N7iIrIdjo1hQFmYPv9Bu2kWmUQbwRqwak?= =?us-ascii?Q?8mYeQnVHYmbKCsx0i7laLCwmL9N1UHAyUWwordUlVFJMiF9s3yYpdrU2TvPA?= =?us-ascii?Q?UdGJLrFyivLycCdJlIMXTrv6kLoi5CbpVqWCtqhLomNIpsT33kzmX0N+QpD4?= =?us-ascii?Q?QaHn4j3i/AaP8RzyVV630xhfF5noKHwOdqLuBPNm/kf1L2QhFaKM55p4kaIN?= =?us-ascii?Q?MA0yjBnSqDPJgCUkOEijejMORCLu8rshefTA6a/sIRZt9c03cZhaTYtM9hkh?= =?us-ascii?Q?oPfYViokME3a2AThfZPSY0Kp6cUa/uQ+QY9IOvifbIYzyKBkKxOZz7ORx683?= =?us-ascii?Q?c0KVaoiApNxQpl67WhqDa6yFcgakBsGbnJSEKZSawfz0LhXw3NgXh3Ko/kvM?= =?us-ascii?Q?MB8Llvp0GQm9oRpMYkvGympfW/pdWaXKPQ7tphOymNjinq/97F71lSU21a8B?= =?us-ascii?Q?66vlCDtFpIlaJ8Mb0NvfExxRb9OcvW+UZbqc59PFznxQ3v/u6kpCli2ZtB9M?= =?us-ascii?Q?+L93yzM9GYNPOQbRWFfVl3Lr1+DK75vISWB35JwjkggsUIvjKF9wkvJchKnc?= =?us-ascii?Q?0Rtv?= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 5907b717-65c9-4527-0bc2-08dbbf7415bb X-MS-Exchange-CrossTenant-AuthSource: SN6PR10MB3022.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Sep 2023 16:09:10.5455 (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: kHSykIWf3rT2jFGjGW6Gj69G+1FIZAmXDhD6K9lRWil99ZA2nUMrjkCHb1qA27nKVpReAPhB2qs0pN/RVVKhvQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR10MB6122 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.267,Aquarius:18.0.980,Hydra:6.0.619,FMLib:17.11.176.26 definitions=2023-09-27_10,2023-09-27_01,2023-05-22_02 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 phishscore=0 bulkscore=0 mlxscore=0 adultscore=0 mlxlogscore=999 suspectscore=0 malwarescore=0 spamscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2309180000 definitions=main-2309270137 X-Proofpoint-GUID: 0xVaS_hhujfNjjALrxXp5q4OSLjiHGe7 X-Proofpoint-ORIG-GUID: 0xVaS_hhujfNjjALrxXp5q4OSLjiHGe7 Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" When tracing through the code in vma_merge(), it was not completely clear why the error return to a dup_anon_vma() call would not overwrite a previous attempt to the same function. This commit adds a comment specifying why it is safe. Suggested-by: Jann Horn Link: https://lore.kernel.org/linux-mm/CAG48ez3iDwFPR=3DEd1BfrNuyUJPMK_=3DS= tjxhUsCkL6po1s7bONg@mail.gmail.com/ Signed-off-by: Liam R. Howlett --- mm/mmap.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/mm/mmap.c b/mm/mmap.c index 2f0ee489db8a..3c78afb707cf 100644 --- a/mm/mmap.c +++ b/mm/mmap.c @@ -937,6 +937,11 @@ struct vm_area_struct *vma_merge(struct vma_iterator *= vmi, struct mm_struct *mm, vma_start_write(curr); remove =3D curr; remove2 =3D next; + /* + * Note that the dup_anon_vma below cannot overwrite err + * since the first caller would do nothing unless next + * has an anon_vma. + */ if (!next->anon_vma) err =3D dup_anon_vma(prev, curr, &anon_dup); } --=20 2.40.1