From nobody Fri Dec 19 17:37:50 2025 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id D5336CE7AFC for ; Thu, 28 Sep 2023 17:17:05 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231789AbjI1RRF (ORCPT ); Thu, 28 Sep 2023 13:17:05 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:40550 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231701AbjI1RRC (ORCPT ); Thu, 28 Sep 2023 13:17:02 -0400 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 3E6991A7; Thu, 28 Sep 2023 10:17:00 -0700 (PDT) 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 38SGi5CX027549; Thu, 28 Sep 2023 17:16:46 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=ReaEeKMqxObRXDD9d8gCwYRWB+q/MHS998BcLo0Q20I=; b=xZ6QuJf/eOpAeSmg/mxzVkeq4IyUvushF/1POVAoz563JkauPfEFV4HsQTl+K9mTqDIw y7ijCrGCm8rn4oxb2ZkzRqg9/LOh2DQKLiScwYALoN/RXOeepZk1tGR7DbTqh8khSYcd 4u/7GNEbiRDvtCWvYPPX5sICIgwEaUA2MMkvjG2AOTKBDz/H3ONUwDCqpEBgFitbeFEq 0+tg9S4V57nGBAScUXIrWo8blU/yUOyMfcQ6vpjOpRlLNTaLlmeedzcqGnubDlNgQu4j APyn1iY9gOyak4ysiBhWwdnEzkDoEw9LUH4hvsURZzW8cfDuc6wd/dFtQpFyf+ZhBBSz nQ== Received: from phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta03.appoci.oracle.com [138.1.37.129]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3t9qmun283-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 28 Sep 2023 17:16:46 +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 38SH1oEA013823; Thu, 28 Sep 2023 17:16:45 GMT Received: from nam12-mw2-obe.outbound.protection.outlook.com (mail-mw2nam12lp2048.outbound.protection.outlook.com [104.47.66.48]) by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 3t9pfadq5x-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 28 Sep 2023 17:16:45 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=eGmAXNBxBGO0ZNkUW4TIfsIlvHDghJa4x0jUgaGrv7kUobYlzjqOiYpoViFlYXIGsUL57yknHCIMQzjh9JVhWSd7nQcfdarG6O/CxkjdCpsbjpbtRzHi8pRXoNnGLnBAesOx2n1EDf6w4Ttbgut4iOE+BG4RUc+tYx8MPBIMP9zCutN7Qk5XAe7kDlxK7oNLd8IV7IFnnXJ5DCjjE1Pl4dZajLc+4zBzTi9CfouJpvfYNM5EUt35Pcz8h05kGDp6KRFKciy0+YY1BhkIebSXMCt2XpqsMoyMFM9xjpJ/GekZBjIMqS6aTM0VfxEEryyFi0qYom6iz35DXeMYqhc5Ug== 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=ReaEeKMqxObRXDD9d8gCwYRWB+q/MHS998BcLo0Q20I=; b=RC4GWWwWLAGkCtKc8ohgkE3YIIAp6RxkNZutRwy1dLejPCtdBpqKk4EHxUUYm3riMOast5jpeQS5FL6Ism0rcTBZXpveQ7NA7sTEkDKkPdqEwv5PfX9X6zK3AguznfPVWHrz2807jTHMEWDSQOCMwQ0Ild9KiegLIu5WZr9lj1VFc8jFi/aqGYIFtnog3RspWvP7enxulzrjQvrnwbyh6WiYXhIXnevFrFhhC4GdPre2WzJ8gvT3EozvJXHw/H9dntzs5poqKqaXO2QbyETAlArM7rgVW9hlwn/HbrhL4bnei3rdAwhy/Cp00/OWKijQnEsJDvrB7vvDbCyTWTzw5w== 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=ReaEeKMqxObRXDD9d8gCwYRWB+q/MHS998BcLo0Q20I=; b=VwAY40M8i3zKBaFH5YnA3cYxu8oGd0wE5Ajwvpbc7EzrSbHNnHKMARkKJpbWpVzTm/o63d16currkKBE/qMBHjHfdHyLBfrmHZpe0HvAhpXGMu/j9hoEQD7f1XNyt9BdkmYvAhTe0UA6QMxJ0VhtTH3QGa8xlpBn1y2oF6T0fPs= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by CH0PR10MB5273.namprd10.prod.outlook.com (2603:10b6:610:db::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6813.28; Thu, 28 Sep 2023 17:16:43 +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; Thu, 28 Sep 2023 17:16:43 +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 , stable@vger.kernel.org, "Liam R. Howlett" Subject: [PATCH v2 1/3] mmap: Fix vma_iterator in error path of vma_merge() Date: Thu, 28 Sep 2023 13:16:32 -0400 Message-Id: <20230928171634.2245042-2-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.40.1 In-Reply-To: <20230928171634.2245042-1-Liam.Howlett@oracle.com> References: <20230928171634.2245042-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YT3PR01CA0115.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:85::26) To SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SN6PR10MB3022:EE_|CH0PR10MB5273:EE_ X-MS-Office365-Filtering-Correlation-Id: 2a58ee02-0b40-4400-5d04-08dbc046afa1 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 95tFYU9md8I87K93ccqrupxRyLfkJ2bRok0EbJAYQ/fqZhJmL3WJL95AtPaoA0b2wFjcmgO5TUrl+obRR0to1tuNep+acvcOQxEMTGJkuQ2Bp2uvQMrxL1MiQNLcrD0POM8d9W97+tvcE/6DPGcu12hPV2nd5JIEZOtjk8p+3/MmUUPKpy415EL1hBhkSDEiEbYmOcrnGyLvhJUQQ+CT85jERPm7H4juE0Wrei/db/DjO3zxMd/xuXgzMSJneY43qR/xOCm0v1pAIAX7rj8aBtWULLkT37BPaPhYjNYC/f25Nb0z7BSIil4y0RYNGy9n4dtIqlk0Shv7e62SKrgGvw1vcZUEJ2Z0fivEyo7nVmpNjAGLjCAPoYLUIQF0FayqDEGEMsz/Rv6AmI36FF+6I2ibd1uku7mZVuKrzI7O8XKp/q6u3ZXMNev5ZPkc8YurxEqS6cLrMKK6FgBlqbvJyMKlz1YWUcvAMTmQwiImFL2OiYvrbA28oT+EkniyaitHLA7eYbPN8sCR2OBd76AWSH6yHxhj73HmZJ0fYqnxvYo= 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)(396003)(366004)(346002)(39860400002)(136003)(230922051799003)(186009)(64100799003)(451199024)(1800799009)(4326008)(5660300002)(107886003)(66556008)(26005)(83380400001)(1076003)(66476007)(8936002)(54906003)(316002)(478600001)(66946007)(2906002)(2616005)(6916009)(966005)(41300700001)(6486002)(6666004)(8676002)(6512007)(7416002)(6506007)(36756003)(38100700002)(86362001);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?mCR+/hYEbY9gYr27tLfB3+CpQPKTwDCA9PevFZOR7V8NdV/EdXVijYN81il/?= =?us-ascii?Q?DhsKcWxxcHKivvTlDZgK4yILlRBg9+r9LOSm9JhO+BH0W8cBLbOrAsL+RaWr?= =?us-ascii?Q?RMHbIRDb+zPcz0QN+JeiZyOi3FiQSZMi5vUZMuTQQe2y/4Oy7qYgQfWWdrpn?= =?us-ascii?Q?3uy1JtBBuqKGE3/HD0eeMr7ayXSDI/FerosXSqNJs77khYkC/LlmxtUcSyuZ?= =?us-ascii?Q?26eTbzm+d0ugp7OHc5UUWpGLz59LM9SGFpbEFjmqyhGKjKrij1CL5mn/ln5f?= =?us-ascii?Q?Drx4uuuQFFLVoV8ZUJCeE4cAjJyFBhFiaw/oEJ53HbjHrGRPXv/i+hNgi4+9?= =?us-ascii?Q?nB68Yc2M2+fIPmk3KIuAku60nCjDvl7+17M9dHUrzQLY+c7goH8w1K0DjKCn?= =?us-ascii?Q?jPYYQbu9FlOR0Vpgab9UTmrboTOtkANJqGdvu5MYOGVeUkcHQusSOPZDpSyq?= =?us-ascii?Q?ZomsBCCod7ijvnd2AtSJQ/bunJhp6cAz5xDbtTUmnrHKtipOFYDFGyKxHQRz?= =?us-ascii?Q?2w5M6v0lp6VYwcvf2IJYOPffzotOR9i7RX9kSbyFgkgOC3X7ExEyJlSUCZXz?= =?us-ascii?Q?C60ysc6kK+YiTLSudum42HltQZyiN2T6FSSelb7xjGNhGrYgiMh89JCNJdwc?= =?us-ascii?Q?C4lXBWL7PFV+NySel4P08lIBOeyZdTqr60kttrHrUICMurWhhpPQqT4KHYqo?= =?us-ascii?Q?exRKrBqBEpsE0cl4IF+a6EJQRZqgJdYd84VA/fA0fKjWGlm5sBU7oapAHgqu?= =?us-ascii?Q?zWmczaMA91AOWr8iopwo7lR6oLHwVltXJ05tUS9w/+Xt4EXc5H32r6mH3PkO?= =?us-ascii?Q?++OZzfSC8Wf7PIMXm+QC/uWKRGbJweFaLeBKHF/PqltUi6OyOl14BThLQRMh?= =?us-ascii?Q?UZ1SkY7I5v7g6i93zn/oFyHeYiO6E5x9xY/4d/YSPNBDB9PHW6KLybmWJ8NG?= =?us-ascii?Q?a8WTGmxeDkTZFD4I9JAAfTDkcvxT50NQqldYDUZ0ZNlLxSsoiAK4Bv5phHx6?= =?us-ascii?Q?FtmpR69UeSQ6JWsUCuxILZJWsjl6/OevvWedg1H7PjPLp0tiblImGqPKS9Al?= =?us-ascii?Q?b48VhRlAKevxbaSj81czu7GoMKkoQqOdxGhMgq5JdfEnLGAXLjHbOauCsCKo?= =?us-ascii?Q?3UXv7pbwMrirh+ud1nwrp51NWzmFtGfo9Lu4hYb6nDz0XgaaTp6biJhb0W9p?= =?us-ascii?Q?W+C4D7ewQW3abJDfiqYcVl2jxJXZa6Op8H86hthwQEM7NeldIQF8rwr9x+/m?= =?us-ascii?Q?4JH1U6FqQuvfHsETv9uvkOKK1kCF5CW+bbunuFXDkLkQkXtuBWChoMAeoB+g?= =?us-ascii?Q?jIa6b4Emkv80uqwsHWAJbinF9Z3x53NAuJnjWrT7A1KBACco8U7UlLcwIzYA?= =?us-ascii?Q?YKTaF9AwJx4pDiKg3bdFIa04vrtdE9pHqSzSVEA4C7X5/DNKEtGbR0Y7Y1AF?= =?us-ascii?Q?EVtEMe07oGw1HgPnLdF6wsfOiE5YKOWAPFOufv4TrBWFRqP7KbVzp0B2YGvd?= =?us-ascii?Q?RjVBkk31dyrAlHLiXAXZcW5wQkic4cHNCKjfiRY2nnAqtP+SWS4Ul8U6sa69?= =?us-ascii?Q?amFEOlfCEjQGFoJbkZr9QDhX8e6TGUipMNRd5nPp?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: =?us-ascii?Q?nrOP9css4HmjjI38M90+TihWeM1PlfoqM26vi5QvScPH3XOTinThUOSNOQHr?= =?us-ascii?Q?AmjPqRrhfJORX4JJha4JCnPs4IeklqBqQ/hwDe6MPtEuOTNgU2DJy+SGL8ae?= =?us-ascii?Q?HQ46dZZKAOdqiSSaWl7TQpo8YVsPjgeIxm0sqJsNmcbkcaFCrD5q1qWXQYLL?= =?us-ascii?Q?WZm+E+FgGNKj5QZSQ67x3ywEeV2i4ycdx3ME0RylcUFGk48U8RXE1701DHmc?= =?us-ascii?Q?INH+tAlBO129d1RH2IHms4XEuq9bFTfQv565mbjKOJh8qPzXQRK5pnPrImtt?= =?us-ascii?Q?3IG6a54c1u3/45RYbtRmtivLuc6Qcxk6VkZfU657gj597HCayu/Qu1ULuRmx?= =?us-ascii?Q?hovbv/nqH5BCQZLpfQ8pCx0hPqel6W4pCYCJORRkwZdXoweh8aOAganbTrC4?= =?us-ascii?Q?alv/OA9ncibTIcJzinv/HVxIlkoPEW+Ym6M8FJxHKcvIooqp2RbsfOg8D3qT?= =?us-ascii?Q?s0YqBHnl4fxRPIZJTJCBRXXwEjlJARHwYcNogMQNSr6bofegrqfzhd3YBxpS?= =?us-ascii?Q?D9zkXUVVp2xmOtVcL5sU2TZu6e8CcD92YLbN0JpC6gvYV7d3TU14fw1ciFVT?= =?us-ascii?Q?QDvlm4lNt4GPpKtdR99a+m6tT2nCt8Mu6OC8g3HCbJo/MnCj4F/P6XiP35gH?= =?us-ascii?Q?0aWr60lhIJtOTT3kD+0icDIi+P+IgysQ7B1ehiGPSUPvSUuh3qDR19Y5toXe?= =?us-ascii?Q?VLJOhFN092ypIop9vXUL03nHh3Epgn6EgNAgFSuulV1uspy3V+ZT80mmGFf7?= =?us-ascii?Q?UzAmTh5gVW4ZK6hgjkS6GEkONR8AlEfT+YbOd2EzelGBTYx5leN6R9vvSz69?= =?us-ascii?Q?7WhQ+XQBR1EUgGDcRf+6Pkfoi0f8/KHX1LYCZFKCYbyk2mbabScqmRJPFl+d?= =?us-ascii?Q?oZAmiFgmnRnBD19gyQ2/3PaFt9rnZpgYakIja+1ERwqJXlcz04p7q6txzLTR?= =?us-ascii?Q?2Q1PVtcOOFFmZ6zlKFyeuQ+JJUNXZcNMKJxo1vPP5Leb7LE+9qtOV4u+i464?= =?us-ascii?Q?n6+q?= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 2a58ee02-0b40-4400-5d04-08dbc046afa1 X-MS-Exchange-CrossTenant-AuthSource: SN6PR10MB3022.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 Sep 2023 17:16:43.0680 (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: UHX7smEAFyAJXyXrJ2zAkthRapqhD06pMMaHKCHYcwN10TnVROJsKQicJdL8MMuQiXL4VNgXNuYSFfNXLFYCQg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH0PR10MB5273 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-28_16,2023-09-28_03,2023-05-22_02 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 spamscore=0 bulkscore=0 mlxscore=0 mlxlogscore=999 suspectscore=0 phishscore=0 adultscore=0 malwarescore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2309180000 definitions=main-2309280150 X-Proofpoint-GUID: _dFsmhfqiwfKCdybeskL1k6Sx6TMN1k5 X-Proofpoint-ORIG-GUID: _dFsmhfqiwfKCdybeskL1k6Sx6TMN1k5 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 would not notice the effects as it would result in an extra vma_merge() call if the first call ended due to an out-of-memory event. 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 | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/mm/mmap.c b/mm/mmap.c index b56a7f0c9f85..a4eb5a5626bb 100644 --- a/mm/mmap.c +++ b/mm/mmap.c @@ -975,7 +975,7 @@ struct vm_area_struct *vma_merge(struct vma_iterator *v= mi, struct mm_struct *mm, =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 Dec 19 17:37:50 2025 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 58998E732FE for ; Thu, 28 Sep 2023 17:17:24 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231899AbjI1RRY (ORCPT ); Thu, 28 Sep 2023 13:17:24 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:49614 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231167AbjI1RRV (ORCPT ); Thu, 28 Sep 2023 13:17:21 -0400 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 8FBBFC0; Thu, 28 Sep 2023 10:17:16 -0700 (PDT) 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 38SGihMB007048; Thu, 28 Sep 2023 17:16:49 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=KdpvLeiQzpN6qyRq5Qgq0mEAcAwcBRptjh4Tlk+3k54=; b=HfWjbu3XbnMoUsEGdV4ph+FN3RAGIHjZhHk/kA8jl3pyTaHD6dc8XBKL6dBhFZjRO2sX cRZ9fn/uD9QWqA8nhPz9hXvEFJ6QFAgI/YRj7Qa3V4JX1YVzySGqDt2q2BPjfNk23Fx+ ZuILOe+gtFhYMyCbQUfuw5OdDIyDa63PexFkb6OHzAQtLDpOMuLMQfPo9MDCk3QkOaw6 ZyV+035N3nJE3Ygat/eF+qx6YHASPbD4l17yPqrbwlUUOmuDSYTquDpF8Kj5jESRq8F8 kXzXXQzaz1UXc219B4it/YaZXpx36TmwL8WReppM0rC6Qdz5/Hj1KQacQHjy62jEDhYw +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 3t9pxc56d1-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 28 Sep 2023 17:16:48 +0000 Received: from pps.filterd (phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (8.17.1.19/8.17.1.19) with ESMTP id 38SH2Nad008178; Thu, 28 Sep 2023 17:16:48 GMT Received: from nam12-mw2-obe.outbound.protection.outlook.com (mail-mw2nam12lp2041.outbound.protection.outlook.com [104.47.66.41]) by phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 3t9pfa3t23-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 28 Sep 2023 17:16:48 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=DrE96nmG6hPwtisVSOa0GXu2I4nRWCplIEvUSyxhNmIJMzj++ifeS0tho7d91ObaLuVlMckvneW1/KSOYAc+XLG6isJHgQu3tGuxCqA95C7F4kumHO3V6HhmER4RLYh3umK7DThAxPgykLKI6ILNxK+oGoktlr9gWJ3EuOVl+vY2hAWmu6LAezRmmdoNMpCvBMybHLjxMWDQ0spcheFNJPpglu8B5/za0JUlf6ksGHDfaxDl8dyUTzWuuUTA5/UBVQ/pln2qQmbyDBqF/IjMb8CkMCLq52kog+up/Qnfn0+Wki6n2xOd1B5RzuW81EWYfqc5+iuBMQGgLF/Bm2CGOQ== 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=KdpvLeiQzpN6qyRq5Qgq0mEAcAwcBRptjh4Tlk+3k54=; b=MYAHljti3RzC8M5Jf188aBM5Ba/7zx7TwW+kDTRHua01KBOHbgDzForQ4uWHjtkLYwYjQTzdqJF5lew4/wvCuVx5WhEe1WcXt7AUcNXAEX55A6EDxKvo1cZsT6skGPKFNdUGPvBX1dI/Q8YDrNeWmmIAAPkvS5bNSPpk42fQavUlPKfaIueLTPXhjzfxJTyUntPmXdcrZ2Ia21JPVTYYwbTBdpQ9VQXP3m3VaxGj6RoUntxSzYlWichhGINGKMiSDNmmrDw6eEby30r6DChG6JvTKN7RGe+W0YXfNSMp49kdnVtS/pcP431uYP/g/7uH+fmaBHR6wqblJNVCHe6dkg== 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=KdpvLeiQzpN6qyRq5Qgq0mEAcAwcBRptjh4Tlk+3k54=; b=q85CU17NqXaVGmzEiMkqYj+CARUY1xRusRLtItPdT0HprenR3X0bFp4eoWy5U78mqER0gudcMSY/r4SA9UM3GyC4OwqMxuG+7Wzxrw5XgbgGdgGxQB97FYHL5YxHw7sERI40vseTgtlTvPBD7yzG6PcOIKjRTytHfOLaVJcWZpA= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by CH0PR10MB5273.namprd10.prod.outlook.com (2603:10b6:610:db::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6813.28; Thu, 28 Sep 2023 17:16:46 +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; Thu, 28 Sep 2023 17:16:45 +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 , stable@vger.kernel.org, "Liam R. Howlett" Subject: [PATCH v2 2/3] mmap: Fix error paths with dup_anon_vma() Date: Thu, 28 Sep 2023 13:16:33 -0400 Message-Id: <20230928171634.2245042-3-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.40.1 In-Reply-To: <20230928171634.2245042-1-Liam.Howlett@oracle.com> References: <20230928171634.2245042-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YT4PR01CA0229.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:eb::26) To SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SN6PR10MB3022:EE_|CH0PR10MB5273:EE_ X-MS-Office365-Filtering-Correlation-Id: 6181460b-f4aa-4af9-cca8-08dbc046b13d X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: wKgrae15V+HXnMhuP9IjIfLC/dPDwpk3yDU2Q8Ag+py38K7jKKm7Mw2uogNuZtdTxbqtDvPIcdQiv4oV2tN3tXjtQ5WgifNHMF+QqqVOPc/wHYjj3WdyArxnMdfaHQjN+gfcKK4eGm+JWWjVb5GaVJEHltop2Mg5KtW/ei2epabE+WPyJZ3UimpnGboH1Vo3Kkny0+7MQvhHb74G+sTsVZjrfLwxedferVbeUUbyEX01yG9HRTGclHnf/HEmEQKT2wuTLJGWhvUPmdYdNUgCov8Kef1tQciH2Gehjb42Nd1IxBlMEZTteFPTZ6nyK7Flj9OFGikkFYmwV2Lxa7eCJLMdVhutCNzikba/FqPJyFYLydxZXBUuW3SCCf10q+Z1mqxSjPhEgxi3SnsNHxmGUwaCACm0zk1GKQAtEOW0OqcX4aJjVdJKZrU/ijHj7UPm9RsZi+m+8iVqHnXzB4zGxwP9AevN0GIHUFKKklWxO+hgxLH05fVWMJXxvjcv6PdlwX1ussYJMISrHaj/alYwSuxyO9nXd7WwnXAYJSyARQAKTtqMPqrK2LXvAnVonpud 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)(396003)(366004)(346002)(39860400002)(136003)(230922051799003)(186009)(64100799003)(451199024)(1800799009)(4326008)(5660300002)(107886003)(66556008)(26005)(83380400001)(1076003)(66476007)(8936002)(54906003)(316002)(478600001)(66946007)(2906002)(2616005)(6916009)(41300700001)(6486002)(6666004)(8676002)(6512007)(7416002)(6506007)(36756003)(38100700002)(86362001);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?Tlf6bDLdMfdk08czVEB8k3FwJbj4/P11Hgi+6rF8FI0Qe+orfZkUPeIcmnjW?= =?us-ascii?Q?Duu1pHZvvt3ZgKXl05QmUs1n7Ts20chPMrm9GM/GVWScQIJLtNRO0uYP6MnR?= =?us-ascii?Q?vLRfjFbXwaNwZh9R05bvWL1JOG7FnpjQrVVf397wUF9NqdChZ4aMTaIncV85?= =?us-ascii?Q?G9F5rWdepWfLDy7iC/FcZ+oKJtgsn4ll2WgioDCDsXmaF26Oe6MOmre1L0Fk?= =?us-ascii?Q?aJlGNPj7JCF1tTB0Cuxv8szmJGyvDtXMN1a2axG0TD3aQpylVgI/ydiuJ8mm?= =?us-ascii?Q?Za8VC12VqIT0jTygXPSbcpc/8NyCb542Gal+5qVNuhNZpmxBF8rgqP9L4Mnw?= =?us-ascii?Q?klxmEi8ADH8hrWWCR6z9QjfgRzVYNnnJRgCxoHwvItNq0kU6DICFa4DwVIat?= =?us-ascii?Q?/VPVzxYJjpzUbLgWBnQ4Zc12V0RDWooISf00m4q6Fgt6XFRR3ku7QLly8A6U?= =?us-ascii?Q?PHQd2ecQWuqs5f7gPa6jWiwNoxtdh69sqqcHQq4qkkNPzFhHo8ZQcuR9Du2I?= =?us-ascii?Q?EGrrdZwKvDZByHj1hYO/yQuDjpv4Md1r7SPWrBhg1pd+RIfNZ3ClCbfthDEm?= =?us-ascii?Q?TQQQmMdzkpxioiAxtVxebwI+fC8y2ap2dO5JJ6QjKdVVMbfENiYuq/UVjAG0?= =?us-ascii?Q?T1rQ4iS8HgkA7mtcfz1C8iK/mYh6R0Yw83BJADWhsuuRnBToDxHJN14NhlXZ?= =?us-ascii?Q?XyLMektM9mYPSTQFvsqXcijJGge65T2Vootxj8TGZrTmhUUV6ioiq25djnxL?= =?us-ascii?Q?lMbTdmZ6ql2nQzMqO1rniiTYiwPfw1jSf9dhAd4HJAb9F089qcfWMKiMjyav?= =?us-ascii?Q?Nu4uxlRJNE0a9K/l0iuMzmXHNuvAR8P4v7fx4G/7InflDDfa4wlFVQFE6+rJ?= =?us-ascii?Q?JBz3JH36ILL769tDOb4/SOYUS6rgEh3OnmlfRqG5vumW5wi67yj29whXQrao?= =?us-ascii?Q?azpto6yQF7G0Pu0J5T9CvcArJzNCzMaJsKadT3s0KdkLPpkHAbNaamIEFqwh?= =?us-ascii?Q?8gJEFV+G3ZipcU6RwbjLmm76St9aA9HdIuDolGgRzFLTbFD/K/xsRbAfGzFn?= =?us-ascii?Q?P495y5BJUtxR5CY9w6zyB2v5jwd0T/6+p7KXR/QmhDlegNDgq/quxuZ2GG83?= =?us-ascii?Q?e5ZSm5cfAJEKHgmK1Uw8fFRNEa/u8HPz1Xv1XkryLUtNtTk0cMSrW/NRcwu/?= =?us-ascii?Q?NAgBRqAsP5nnvUvjINYl8qaxWOtjuiFl/MZuGDSorG/zFAEdtULNuBBoxjMc?= =?us-ascii?Q?AXUqcVA73wB7rda9zLUwz28vrRP4la09Qx75hy+tJWNpL7Jbw0s1IasjWMCT?= =?us-ascii?Q?7R5qO0a1I+QICx5cysZ3OLlUNE248Y4+tHEQGNHkWKYPBJuCfUuCVRNmIm08?= =?us-ascii?Q?yo/qZ7CsNYU7ZDz/XyS3YhaQMiQ4QQrFaFMTQp2qS11gjLXR/0yhCycQxbA6?= =?us-ascii?Q?5uC9WrqpSUoCaN5YkKFp0mLEekmEcG3ZeGXHj65Q8Wjq0j/vJqWOFAoKh/f5?= =?us-ascii?Q?+bcDs/oP8XsdiTxmrSrjOnzn4rRUmiT6NX6UsQPYzO35GO2fo46xjC7sZ8Xi?= =?us-ascii?Q?0dkv1vyIQ0gZWN6/If2wz8g+h/2FdJzyCBOKOog3?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: =?us-ascii?Q?78S4LYmEP+vvdwbseOVQFYOkq2lFN63TBU54QMOnaxAtsC9EisQv2faQOODO?= =?us-ascii?Q?K6K1UKj21YVcQLC36L/lv/dIThcBtdTNyBVxfybYtqM3Yc2aU34Ru1IWzEdh?= =?us-ascii?Q?OpdehpnsyvyLkByB7vdx+/ZuBMyKLkzfdcpaeVvT8d7TjOxcYWYpAQZuLUaz?= =?us-ascii?Q?i+tATWku2+GQcjZs2WumHNn40U6lELkBRN9X+VBA6DSU+nQ6L9nd3+72VFRr?= =?us-ascii?Q?sFNV3GjIX8uhHzvDb1NNTTRouKfUH6rvG/3gCsuJv9HHQWrhV7HDZ0Nw4KdM?= =?us-ascii?Q?RCau6V6NCiv6wPL081G42h1cn92hVGnao2Jli4JL1QIdw8a8oJRced85HBAy?= =?us-ascii?Q?qkncsWCj98VjuZnouIK17fz4FHF2EDJnPGmnK4i2SG9pes7gbLXgPCtPVDPh?= =?us-ascii?Q?RuaJmWHV1IzKta0TE35MaJ3FQDR7qngkfRV2qEhq6Dn3N5eQe6A+uAC5cPif?= =?us-ascii?Q?18fahVrUiq0M/oV5cKJBuTmxnAgg4d7uO63WlDVL7rf0ANyzHD3nWms1zS/a?= =?us-ascii?Q?UQKBsf8HRG+PoU9rcEz304/8mSFU1pTYPLiWnvS6xVHb4ulLIODIe6xIzghp?= =?us-ascii?Q?IBtqWyIwD4mST69SqOpdXQN2oN7Kt+y1l/E0K+xx7Z9NVYoFRBRjUKibbUba?= =?us-ascii?Q?Gu6db+DILYWApyM1MlN+Jk6fqTe+Bk/e43l/I9NahMoRj75vVAQMz/nGQgzG?= =?us-ascii?Q?jTtk9rvWItwAg9WtrWuLBDNSfaH8nlpKYPZHKxmxctg2e0+SuvC5lME0pLW2?= =?us-ascii?Q?ruRaweTQ7bjI3OQRyE7XZEfTPZ/k4Saq/51J0Bs8ZLd4XgeWf/79nB2znyjP?= =?us-ascii?Q?rrzOErTgbyil4aSYfUEPRpEEjFUxj/m5DsQyI5hKE6qedW3Ku53zMch++mCI?= =?us-ascii?Q?/oliESToAj5d6KZS4c0CsSH4R034pl9U4vEy+RSZmX0b9XeVBtLTwnuOyTB0?= =?us-ascii?Q?9c2UDVQJFQhJ60Z8TjFjjHLKBngKNFUq0gbAvI8BtBaDYbfT+ot1T0Dw36Sb?= =?us-ascii?Q?dszf?= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 6181460b-f4aa-4af9-cca8-08dbc046b13d X-MS-Exchange-CrossTenant-AuthSource: SN6PR10MB3022.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 Sep 2023 17:16:45.8786 (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: YHfX4cqSql+kqm0njoeFp/OVUnHCm8mXJ6Q+PI7HOufyEpAjH1QMVLNElI/cDvdKOuNTWG/4Sj8xtqqhlEUAAQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH0PR10MB5273 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-28_16,2023-09-28_03,2023-05-22_02 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 spamscore=0 suspectscore=0 phishscore=0 mlxscore=0 malwarescore=0 mlxlogscore=999 bulkscore=0 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2309180000 definitions=main-2309280150 X-Proofpoint-GUID: q26wwM2NSbmFX2pRjBnRRVXfSnmfaqSx X-Proofpoint-ORIG-GUID: q26wwM2NSbmFX2pRjBnRRVXfSnmfaqSx 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 | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/mm/mmap.c b/mm/mmap.c index a4eb5a5626bb..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 @@ -968,7 +973,7 @@ struct vm_area_struct *vma_merge(struct vma_iterator *v= mi, 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); } } } @@ -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 Dec 19 17:37:50 2025 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 84303E732FE for ; Thu, 28 Sep 2023 17:17:27 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231915AbjI1RR0 (ORCPT ); Thu, 28 Sep 2023 13:17:26 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:49722 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231897AbjI1RRY (ORCPT ); Thu, 28 Sep 2023 13:17:24 -0400 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 0FC201BC; Thu, 28 Sep 2023 10:17:19 -0700 (PDT) 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 38SGipbR029126; Thu, 28 Sep 2023 17:16:51 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=vDICG589HkEcn0XSBzDG7PcsDH8ZR2w1I9VVo0neLcfPFOV0H86oWcK/he1lEj9P99L1 iHiMTs73VCMMVkAR8JN9hmWK85RO+BfxBIQ72KfEj2OX6oLqEO7XfsGyU6oF+SDJvuft BT1VOrMamtbKpjB6vlff/IDBRBMr4bvHhM8DHbD9I2asxhifihVHuwpenRHDbAz2Z6vR s2Jfhr3W7pWociaUjVGc6H9YTM0k7p6NmssogN2WMHW6N7CX3mCMpsaAw6wJxA4BOvpm /R8RP8tNKSC6kThs3X+N7NCQmEnVKzOTh2NvNkKPGcC/bPLWEwnFIh1SQc/zaYzslVjS Gw== Received: from phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta03.appoci.oracle.com [138.1.37.129]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3t9rjun2as-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 28 Sep 2023 17:16:51 +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 38SH2E0P014372; Thu, 28 Sep 2023 17:16:51 GMT Received: from nam12-mw2-obe.outbound.protection.outlook.com (mail-mw2nam12lp2044.outbound.protection.outlook.com [104.47.66.44]) by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 3t9pfadq9y-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 28 Sep 2023 17:16:50 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=VBeAG2UY/T868/5fP6Y8qyllIA/qi8EBURbaOhE94cTCKQNshAYLBjkXs9kDClhR5wDQzuKBbXdJ8W+1c/2QWNRu1yY/aVACeQUcraSI6gliewaS4sHTPSYcJ+MNZC7+9oWUNx1qS48zS99616cJXBuAZoUz38g+s+K6Z5yLfdN+yV6qJaxK4uzNVUBB9kFaWtEkbxbk9THI0JU1yzrLa4ebBY+En9I8teLBntUjMClQaCG411gKC4UTOuQIr/KWz0J2Fzl28dvOi5TzqRLjIK2WoWwWFYp14EClMiUHrE9iTLjT1kFfQ9mR5yB+81tT00sjg9mkibyP/RvZMIde3A== 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=oSNRBP9iHVYg63hPlmRCVXjJQFaPI3aM9UQmLE4EJKDap4U7SB9uHTa901tMPKVM0vgJYt1sZnx+oxGeOzqYL6RqIFniBW3m7zJMatMPVUNSgw+qN5MSDBepF08Aiw3h+mx3pCZnbk5gF3p6xz8fA0WqeU+/oKRdHD/25fn6XzNyr+Bdl+VQ/pUl0mfx0UPPgpX07+YOrBfYADNWGTqm+6a0tP4NFhcrmOt3W9Mzlt4ljXZZrlnb7eb5IKyWywJ/1up7OauAGCSiB6ldRwUBgZ17PvnM9uyhVu1S6+W4MwELocfCIRR3XXTWWqRpU7ncmD9Qg25Kw5xeli5kTIvw1A== 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=gZNLE8qq/wjbfF12q7SoDzZ9BuFCH5/g/OrlXA8KBPJBhSq7VPR7Hi6KUat4Hotm3vWPuKoNY3NZkb47XbyhHd0UtEgKNx7e05buD8QeZRNY8aT1KoHlTlsSM1g0H5etWLOIJaxdt+XEEi4KGbK/akFLJ3jVXrtrfOrsVgihaxw= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by CH0PR10MB5273.namprd10.prod.outlook.com (2603:10b6:610:db::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6813.28; Thu, 28 Sep 2023 17:16:48 +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; Thu, 28 Sep 2023 17:16:48 +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 , stable@vger.kernel.org, "Liam R. Howlett" Subject: [PATCH v2 3/3] mmap: Add clarifying comment to vma_merge() code Date: Thu, 28 Sep 2023 13:16:34 -0400 Message-Id: <20230928171634.2245042-4-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.40.1 In-Reply-To: <20230928171634.2245042-1-Liam.Howlett@oracle.com> References: <20230928171634.2245042-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YT4P288CA0089.CANP288.PROD.OUTLOOK.COM (2603:10b6:b01:d0::26) To SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SN6PR10MB3022:EE_|CH0PR10MB5273:EE_ X-MS-Office365-Filtering-Correlation-Id: 5e1d04d3-ca19-4e6b-f084-08dbc046b2ac X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: vIIWUNMO00x1onDjHxGtkiH6QcuN6In0GD8CveMN3E1lpTweRXT4styW1X/BxgJvFL8G0OHIjVw+mbIY3NHf0f0rAV654oKXiWnhlyBQuBxj9qloDful4Odu8oFY9fCa2Le3Trkv0XfQ5KA/FTT9Tu3flkU7j7FCuB0INMA+FCGJm+T+Wzq13HjziltigN5iS0wL/Kp5tzBi0rCznLRixxaSPkscThKNogjwkfEYxenNbyvb9y6F7BklHjLwzQe8xQ+JbQlG1kG7CImuKbvQGdiTKRP8HgdboHEWXmVe92UuXihpn8vqfuMyk7208h+3jED4/m18XLF2lxcYrAW8ZhhkuJHtEgrg4v23UoN8kGnP6HlNwUmwMcSGUl7BvaQ4k3JxcQ2JDibNf8scWyRqlig02hfL52zZJU0+7kE7h08EKAcro+gZ4Iu0cP+9xVODuieZj0HDgLzchKemrw09vlYu7tjYNMndpFWqy7sTQj07lVgSmNXZ3o3nEObyQj7dZkX3hRTXMwU/vXtuBDca8oCrA5Dam9+2UF4qaXZY7EM= 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)(396003)(366004)(346002)(39860400002)(136003)(230922051799003)(186009)(64100799003)(451199024)(1800799009)(4326008)(5660300002)(107886003)(66556008)(26005)(1076003)(66476007)(8936002)(54906003)(316002)(478600001)(66946007)(2906002)(2616005)(6916009)(966005)(41300700001)(6486002)(6666004)(8676002)(6512007)(7416002)(6506007)(4744005)(36756003)(38100700002)(86362001);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?ADAsGMURm9w3fG1K3krse0Y0Nf6Q2DvNa1gg2r/q0CYfjBBb8dKqSXDZL+Mn?= =?us-ascii?Q?weG9gMzPl/FhWs/hJRsZLQLLJtr4Pt6XulR7Nzrc4JNhXS6H9oQ8URy1DLFb?= =?us-ascii?Q?1OpPN7hA4vWrw2bPulf2Jfu9ynI1Rr6OVO1gCFAUJ5YAwCd90a+LYLmBp/WX?= =?us-ascii?Q?9ItybcuTKZD50CZIY574kdHoMJX7HYMMworCWHC7QAP2dfQc8VJEFBvbmzBa?= =?us-ascii?Q?dBGhYnAf6kG92SbRNaQg1H+WmWDuvfVDdVmt7xq7oJLLSLYSH3AUX3Igwvwh?= =?us-ascii?Q?y+rGhVrTYwqbolHIsIFPz8bDCRII01z+fNz4xYMIMr4TJ4mOoA88R1fhKZeE?= =?us-ascii?Q?gMfcgGG3QmvjiTXoOumAHHhyGCiTlFPXZ0a5wkRcFTYhTnQPbG4DcdPOjFxN?= =?us-ascii?Q?Z9itjwnLgLbJrPjRxvYPdDsCl+8nOmm0JK3MAE7q2A40DMIbx+x/fEo6pTh5?= =?us-ascii?Q?84i6s2JZ+FHbSOe7z/0AgnvBe1uamMhLp8xo61hzIEfZdTs5PSxLUH5D2FRJ?= =?us-ascii?Q?6xABOKJNIHkDYysk7vlTcdmOgAGb4zBoRS5NGJOWgn/0bkQ9UDrzBrCLTYj8?= =?us-ascii?Q?R1ieejsoQlIyJqvg2LxPjXMTQlCfuKatoXMlZ3kF5g74inqLx/FHPLAORWPO?= =?us-ascii?Q?U9Ctk7l+n3TYssMpknit3UwEw3CsHiRrai9aNeoG/CQ0eFmiVNhZ0oaZ5XZ+?= =?us-ascii?Q?mCGKWKBhs/YKFjL+Y4NR6V9YhVSsQ/Wc4VB3TB6wWbKDspKWVmelHRgIBG6D?= =?us-ascii?Q?Ra7XFAfTeTz/tCFIz4cjQIAEaXzt4KZFrIMYPNTUfIXLVg1pjs48EGtM1uGf?= =?us-ascii?Q?NyenCrqyHG7lEWYimTUx3R+p1N+S6dNFyHWAeg7slvHzgZwUI0cK6zIBS42W?= =?us-ascii?Q?9zv4N7zeQr/rJqJvzIB2iE0S+STn1wUawUmSmcfeCSZWMmyTlbQrTESg/8Pf?= =?us-ascii?Q?tjSCg8qY8uvt0P6MbHe7Pm6Ug8xXFuWGb4egn+XGrAUqGBTQUNp4Y9NdJu+S?= =?us-ascii?Q?zHmpj8JlPtvuw1gA9jVGNYcVxbZesCnSQCnhh+lMjIGiWwUT5+3IIXQBpEiL?= =?us-ascii?Q?OppNDyzoxi65C+uGZCsnswpP9Hs4og+Jvcx4c6rMWWXvDOePifkR5iAi5vGD?= =?us-ascii?Q?2H5X7Uh65ezHWsyqPbSCzW2XnavC4lB0tOv8Yb6hM9Pz73GdT9Kk00c8vd8y?= =?us-ascii?Q?Ot/L4Ry+vcYH/z6PHaDkj4h9VDHWeRDT2L/ms5KBgfSEL2Z+e4y5U1cTj+5Q?= =?us-ascii?Q?ltQQveLE2CZLjZQN+kKHfeD4HRZAxu1uwof6XK9tWpm6L00FH5OtgjWqGth7?= =?us-ascii?Q?bO9iiG53wiDpONDbHHd1ggH4lFqdV9efr6YblPssa31eaha7ixzdVvpA3eTU?= =?us-ascii?Q?Nr67Ea2ofJxXZ3FMUA2X2oujN5KSBrDiyE/gGimTeHn5d86E9olAHoEpT3n0?= =?us-ascii?Q?VJny9taOOs3NrGDmMsTzESfGy30CODBO1X9HmRZiEWuEmPjoYHCkZG2ThOyt?= =?us-ascii?Q?aj8JJndPZy/7YC/G3pfeNhjy7HNY8G1ngxs38dp9y48q+Ls0uM70jUJcm3jr?= =?us-ascii?Q?n05MiNxAs5FVIcPByEUzAkvngKZI3rFtN34MlqJ7?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: =?us-ascii?Q?sTVEtd+Ic79NTFO1qjZpMSVvfILmF+frRaUj5aKNKygfUPM4TE/m3CEvXQ4q?= =?us-ascii?Q?KDSONYwm46CjFNmYkMpKe8+cq/6Ii+4cZIUhqWz7ugUoI4v69epvx5XT+t2o?= =?us-ascii?Q?/HM5yIf0PGXQevxsRCSH8qeBsn/yZAEvtJceaPqVx/bFriJy5pXK0HxUzXo0?= =?us-ascii?Q?G26QDLCQ1mnYxNojSrGJc5ffi3kAvz98/6x5UtK9/7Rw7Wb8NtxsMA7Seggn?= =?us-ascii?Q?drXeOtrJp0sd4o/c2ClP1W4iA0aVZ58RQdh57LlQIW3o+21uGeE4rB3vpcvz?= =?us-ascii?Q?G1aL+iwaend48be999zJAFco8LzJ355ZKWgIKoiIUiUoZH8PyhoaHXXO64Pf?= =?us-ascii?Q?4Riu79djuYBulWU4N4o8tGFy2m9gxW4ZGEJ5HaASxyBC76QgV02w86ieA8o6?= =?us-ascii?Q?p/kwmU5EiLiBePzM5tEsrOEa65dKvatG6Tg0Rl7NRK3HSVVWvkUM9yFBNK4j?= =?us-ascii?Q?GHAjOSzXExkm/doMrpZwKow1Njw2l9lhIbRyNoiF9Qd+D2YxJor/UkO2V8+p?= =?us-ascii?Q?pTdJHaocvhnz/zR+zsK640oVmd0UO/jnE8mRXoK3AiW6TmE3iRwD3Nc73NXj?= =?us-ascii?Q?Iwsl46HWFASCkYLdIN+OzUiDhq6uBNgJ0bI10vrZm4N4BRrVmU7pCtmyKKre?= =?us-ascii?Q?nT29XNWSocJlkLQlDS8sJJdOVo4d0cbm4iBMS4r+vcFyxWZlCepNemQFhSeL?= =?us-ascii?Q?Dg58S9e1z1iMuT4sbRrJqLxylO5YCXDtfCt/irhnZ5bLlXE/O6aG7NUAZqBH?= =?us-ascii?Q?6869111gD4zraX5kM/V48XcPmFY+mb6uwvvNvBVW3x0I7GWShjzfIQKcC2iD?= =?us-ascii?Q?s2oo4lNda8MSJlYi08GC58WM4V5TA7V2eFH6QtVke5TM5U50wsToy/1jF4qc?= =?us-ascii?Q?CJiTrRCXqVRX3LBYnqIIczBuCAQsXGmYtMt6peeOVUlSIuDyIJfcqTvQ7WSO?= =?us-ascii?Q?M/0wNcITs3W0VzmTIhcQ+XRidn6OvQI4/y+qPaZF+AFIM43YCTH8+rgPnCQy?= =?us-ascii?Q?TPED?= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 5e1d04d3-ca19-4e6b-f084-08dbc046b2ac X-MS-Exchange-CrossTenant-AuthSource: SN6PR10MB3022.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 Sep 2023 17:16:48.1849 (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: Fe3dbssdI5rQS9i5BhIfWMX8xFGm3LdGkuDTu3Rn+kXW+/LN6EVKQtxM+DSJKV3iK/TPQCR8iKhkuHBjgtGmQg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH0PR10MB5273 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-28_16,2023-09-28_03,2023-05-22_02 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 spamscore=0 bulkscore=0 mlxscore=0 mlxlogscore=999 suspectscore=0 phishscore=0 adultscore=0 malwarescore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2309180000 definitions=main-2309280150 X-Proofpoint-ORIG-GUID: NxYjELUyBFJZBWbmcnHtjFtkJLtbXpCP X-Proofpoint-GUID: NxYjELUyBFJZBWbmcnHtjFtkJLtbXpCP 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 Acked-by: Vlastimil Babka --- 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