From nobody Sun Sep 14 14:22:07 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 5B7C6C25B4E for ; Fri, 20 Jan 2023 16:27:29 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229831AbjATQ12 (ORCPT ); Fri, 20 Jan 2023 11:27:28 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:60884 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229535AbjATQ10 (ORCPT ); Fri, 20 Jan 2023 11:27:26 -0500 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 66B8A80BA6 for ; Fri, 20 Jan 2023 08:27:25 -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 30KGDi03014958; Fri, 20 Jan 2023 16:27:16 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-2022-7-12; bh=gaRC0UaKncm++u9odhpjI8fRluITG3k0f7+eaHoArxY=; b=KGH8uVVP9vibqQp46kMV5OjEanuIb12b1u95BCUWtaNFIQ+k1ioAjhKfzw5r9hWiRfEk wrG/iBa8bBTjcrCa5u2WBJONIdz9LOtdJk+xp2ffTE2dLHeNGmTww45PEwyHhIMP1gFa /JFbnhqcEwwpWKSDgnpCVSMrHO8Z7g7KNwLfUf4gxeFJdabFLIKcM0kCCfqb2r9EiRFo ZbRCe1Hm3E5M52WE74IDFKuVEaJuSsmbZ2WNVvFt0Bd0A93c+Q8DVQ2JXZc5Fm1VM3Zl 9XB0rOfEbIG5Olzouy2fGXWacmTAQEC9nj9DlcCs5iW41Ra0M0iNwSaNKFlihqjyHosw CA== Received: from phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta02.appoci.oracle.com [147.154.114.232]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3n3mxtd208-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 20 Jan 2023 16:27:16 +0000 Received: from pps.filterd (phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (8.17.1.5/8.17.1.5) with ESMTP id 30KFCKs6000835; Fri, 20 Jan 2023 16:27:15 GMT Received: from nam11-co1-obe.outbound.protection.outlook.com (mail-co1nam11lp2172.outbound.protection.outlook.com [104.47.56.172]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 3n74d2su36-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 20 Jan 2023 16:27:14 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=BcYj0QBJHZeIyeZzqWZEbleLty5UeNisgR1fb7Kfq/GLmuAs3G1BevbnfNk7bi6wNAna6byut79XLvg/nxnPJpqpp4EJiMy8OUGTpOupEsdTdUdzScSF2lEVmb5UIMz13UOTLm5LeICn6ctphtynjQkyZ0LjweTvObjEZBFQS6iiGFLsTO7A+D9dkQaLy6dF6HOy/jaPbxlGSDwM9vdi0sKWFCvcW4g3SaG3IE8LpOf3I98Qq4TvUQEeYz03M/Pr1ci6HAvZsf3Uem0x7LoHQG4rULy+IZH2iKSr7c8mf7SCrjF+ZWVI+Id/+V4jL7Bub2qX9caz0OR4YS52jbY4kA== 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=gaRC0UaKncm++u9odhpjI8fRluITG3k0f7+eaHoArxY=; b=Sispcde9lKt+47Bew+1adYAKU3zOLBFQi0SQSGSXXnbQkzk2xKlHvxpRmuo/RhDt2Qd2teGcnLpVizk1E/iRETqafVM7jwsyViNVD6v0z/6ifq8IU8G2AMGIhTCwuA75StYuhhFcDHPIPZTc8ZW7gc7n94CEMQ0NoG9AWiIzopyJqe1H41yvXT4QdN+T81hfYdXuiVrrQ3EBkAgwZDhUewNnUm3Eadagv/wBX52riOmtu2ozjsKzxFW9S8BqcT/NqpAOZBeI7w80BZYSmsH5EscsjFERxf9hF3gRQSZPvO//CuuimqTnDzhzIY+Ns/TOaCEgJJpOSFTe2DBwY42ifg== 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=gaRC0UaKncm++u9odhpjI8fRluITG3k0f7+eaHoArxY=; b=X6ffASFIckleuAZlgH4aSi2T3ZfY1ipr/h9rIvQ8uhHJXKJcEKtlcX98h5d2e8qd7kXeQKp/6yUNqE/NtPoljrO/eHAGdehNunwnxBZP6cBLX2g1CYKmIz5eUI7kCepTO6mkKwxaDt9Uvjy3/eQkraJw/lhlqSvJTNqewkQK2FA= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by IA1PR10MB6026.namprd10.prod.outlook.com (2603:10b6:208:38a::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6043.7; Fri, 20 Jan 2023 16:27:12 +0000 Received: from SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::7306:828b:8091:9674]) by SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::7306:828b:8091:9674%5]) with mapi id 15.20.6043.005; Fri, 20 Jan 2023 16:27:12 +0000 From: "Liam R. Howlett" To: linux-mm@kvack.org, linux-kernel@vger.kernel.org, Andrew Morton , maple-tree@lists.infradead.org Cc: "Liam R. Howlett" , "Liam R . Howlett" Subject: [PATCH v4 01/49] maple_tree: Add mas_init() function Date: Fri, 20 Jan 2023 11:26:02 -0500 Message-Id: <20230120162650.984577-2-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.35.1 In-Reply-To: <20230120162650.984577-1-Liam.Howlett@oracle.com> References: <20230120162650.984577-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YT4PR01CA0106.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:d7::12) To SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SN6PR10MB3022:EE_|IA1PR10MB6026:EE_ X-MS-Office365-Filtering-Correlation-Id: 98a2a8f2-7daa-4c9d-573e-08dafb032f52 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: zmBQZBcoEFlPLbZoiGaNUOgIISV81nbgPI3lFeXvInxtITOM+sHL131n/MXNEei0c6sN1DYTXgQablA7pvYwKsa26T0dg0zT67GdRUvvFKz0nx/zhOw3Cfhd+2dPoeYKF/tLWopviXmc9gzOoe4cBHdgnl+zqPSNWw3jNWjVC/Aja5vjedrCx5IElk0B21tJ0c0cbsmw/kvtzJ1gxqBtcbQ+IY3h86J9ywCLaVV6O/RMBCATNknM99NTztEwrltAMHCDrdJWct6Oi668FcDA1tiX9WcdT7SYX+KdEGmmtKbblFfQGaLpQypdDm2FaV1sw2tRjxxrOqUGHW9SAN6srDqq0m63I9DjR/XNXaUGFdH0XGWzOH38ETpRN98CN6I2U0vXgMypalw1tYGRNe7ss+zaQBDUtGmXDGdBd4+F3jlRM+w0okff/1h+ebfSOGf6EFMKHtnveZ92cOSniZSo5ja3P081LwoOkGODO8RdCWMAi5OatBwTrc26vZUF/9TmoqKVQspoduaHgv2TEeYFq8Lft43V6IamdbemZfixfQVhdDJAncVsqYCuxyEBn0bVEvqloVQRoDazyzeJcVdXo5tRhunYEnJPGHSQtQAWdknp5tJQy8kWDYZqTzwsyKFT+zisqfw6KnBk8a1ThP0r1A== 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)(376002)(346002)(136003)(396003)(39860400002)(451199015)(5660300002)(8936002)(4326008)(66476007)(66556008)(8676002)(66946007)(36756003)(6666004)(107886003)(38100700002)(6506007)(26005)(6512007)(186003)(2906002)(54906003)(6486002)(478600001)(316002)(2616005)(41300700001)(86362001)(1076003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?8tpy08uxvOZRonWYJh155SJNa3zD/VaVm50JUA3LR/7z/HBBLsfq07WUl6uL?= =?us-ascii?Q?YLw/7haHPTKXC/c4grjtnlCtTZhBdJN85xkILzQknsslohvr1YUiisA3t/uk?= =?us-ascii?Q?sueelhS1buZ/LKyTXr3rBRuKbqpPxRIJoXOstGSpfhR7toquo9/X98+5mOf2?= =?us-ascii?Q?uGCAqzbGln/7uq7UhqcBvBM/MYc3Fkuwy3FHkD/tdQgeMLMAJHFCcVi/zXD1?= =?us-ascii?Q?GLYPQv3t+6r8FE09Kg20zN401MzpYI3lkF4BKF0eTZ4RWcNM5y+YQKS01LJm?= =?us-ascii?Q?EuOOHoiODHMDwViOBQE8ON1uHz2hib99dCQK+65jAOlLxr1uC6VFnJOiuDvO?= =?us-ascii?Q?z941uhjkslfi3XRcJ4kHoUKyR4aAxrshUZEsBismlS2DuSgw2EpPzc2PJzO4?= =?us-ascii?Q?0B4ez57Q/1VXdeRKpdsxsBhPMCh5ytlyg2FI8cOmW1YXOjYwVd3qjMhhiG8c?= =?us-ascii?Q?HZzNB88elraI32ozvm1GCdrRt7Uin83/XPrMOnqZNFYiRA2XQJhHadeKq97G?= =?us-ascii?Q?kXbNh1FA4OP0Roi8H6uU8IABPSZkZTe5tJhO5+k+xLEHjRCowzg2ZBC31fF4?= =?us-ascii?Q?jmarkBEftA82EGMMbQClM5w16WPuPO1LOpjWsQ/Pwc5WnG87Ena5yaKeuCrw?= =?us-ascii?Q?ndIRVkAV+iz1ERnnhkS+hvdQ/DykxkvP84kL7dXPOEJHGh3kZTtYnivYj4gH?= =?us-ascii?Q?HeLZp8IkRiFgTE0EbHhAcQt7b6XntXdK6BganG8ULiv0sXPeXPRUK/tb3ERX?= =?us-ascii?Q?R85nWxBURT54pFkbfVGmSmSn+eIpGnrIHhM7Z0r5NMbOuqtAEARmsqzTnO/n?= =?us-ascii?Q?wNhsvIMvn5zEDfQmtCBqbV3oDvd/0ZF8JG0A6/G74iCYLqYEyCxP8Z3v4WOY?= =?us-ascii?Q?aEpVXAiQkKMVgTX/N8DdTZTV63PuEFH1mghRejHGxqin9gTDiElS/1fmKjR+?= =?us-ascii?Q?1Km6OgspcYywnPvyBHkYpREzLNr4QIpJg61YJPko2oqRTdwSj8ZCgAAB45gr?= =?us-ascii?Q?gPPcncaKXwGf6Zm3/qx2SqYEFRPoEeJLFwgt2gHEdxyeMVMm6oEnIQXfa0vz?= =?us-ascii?Q?DTBF5+YW00rbF2aygNiF9oMUGbysyUG2PGQX+0YYZm6KEKtgXtIkWvOTOQES?= =?us-ascii?Q?A7VHBFO7WbjaCWlMl963Hw4xnEgViSDkxvqDma/Ci+q+ESEXZSmQj2pgZq+E?= =?us-ascii?Q?PvZXi6Ucd3S1SvOa4bOkzhHhJWsVQFYw3VFtnV9r+lyJRdMCNZmfLgG6XMoB?= =?us-ascii?Q?jKuQ4OOvuVHaNDkBi1kxCsDeiHAEV2EFOd5sfWrIAJKpXBhuNReRcSIvzwIG?= =?us-ascii?Q?tqMd5w9QyEYhye2vqusj7RHRISA/Jr8T8zIkv6PnYizCIcXg1tIhzS9MjsLK?= =?us-ascii?Q?xOepNbvIIxJSg/dY1zeck5I6SbvqfHOHHWgy+M9UznUMJRM+s5hLkzu9Z/JM?= =?us-ascii?Q?t7k/6qNuuHcZY+FG69xLG16ciypEroJYlZcBX0WlF7Rbmh1YQQxd5GkNSw7I?= =?us-ascii?Q?ifQw5T2ZgjT2JXf/RpxcWtQJx2Y05RB80FaAXjkVPjH3Ihg8d3jKdZOelBl1?= =?us-ascii?Q?vgFYIGAuZhx7Q6Rgq38fd16D3qQUgZ0d5HqMNWDCubMGOTJPbvGP363vsP/J?= =?us-ascii?Q?SQ=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: LjY3/xPidX/ynofAiH8GEbKSf/r/82EkbPx9sDQawv1VTOr9zRD9rZcw/NXcZgCB4k6UxpfVfZua4VOMp+YzBN5x+QsgWCXYskzar3NkkP8f43++1kGAV7QH2B16OfYGT93bBgEAaotQtVOs+c2hE8RFK/7MEGMpAPA9uRc549rtnBaDgd+OEnHKgSq5p/1IedGchOgXoru+JEIGueKjJEW+IovXyXsgYFd5n1RKMcbFFeQuIujS+6aJc3Jdu283iWdVWw37sHlwFUz23eWRLBz3izw0AFVajtM59ad7Az+hbFMdcefY9z38WdTln9AAQ3YjqZyyMDS1wk/a2QSVjax9Abb4Pdo/kfX2TiLB3IDK/yHnZ/Pt1jk8QmltEJb0HFQuuhpIvgwhy/1uOaIb2iwrFotBrA4WO6WMz9UMVTffX6XiKqROr1pedLLhu0kAiu5Yxdnl6ECDaWmC8nMfOl7CZfgWq2MT2d/Hgga/1voyboMpb9kylcXVLlvwx80GxkBXLKRElm0+irB8IT+U68M+k2T250GVyZlGbBxk3AUWryukB8JfMtYPMEqCjUEEOIHDw7jX5GIJ1yqkzGV8b2MO0kJCmptr0gegEHSPvbyfHF3KfhydNRnqYprj76Cpdk0FDybLi8Ysd/FBMuv955CMDedIOE+vDeZNvqtQcY4RuIAOUXTmY80u++3TswJvCDZaIgKtR3frqYGAjRBBOHdZrW7NReqKO5c+4UUvzRfPQauE5OOaceCI/uaJtY2oIisFHWQWjfwIRcl8HjJ1MEsIYe9n9L07oW01GTt8J0rBX77c5yLppzxswIJOYk8Ox9QddCcaP3lO+DH0yBZUhdN5KhNvQRFS4c06mBHbv5jFeWHEumCOP+JxgF1mS6ZmOhJ0gZWr/5DLAERvBf7Osw== X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 98a2a8f2-7daa-4c9d-573e-08dafb032f52 X-MS-Exchange-CrossTenant-AuthSource: SN6PR10MB3022.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Jan 2023 16:27:12.7651 (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: lGVBsn/6nNNQlJgPnIdDrTl4FWQNBo2UndHLFy4ZCZfj2FenD78VmshlOm4WLQaJnv9OO6sinlvkQOSRekv37Q== X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR10MB6026 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.219,Aquarius:18.0.930,Hydra:6.0.562,FMLib:17.11.122.1 definitions=2023-01-20_09,2023-01-20_01,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxscore=0 phishscore=0 spamscore=0 mlxlogscore=988 bulkscore=0 malwarescore=0 adultscore=0 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2212070000 definitions=main-2301200157 X-Proofpoint-GUID: 9HjLK29bQlSJkLOaqVAeDev-W6X1D2iB X-Proofpoint-ORIG-GUID: 9HjLK29bQlSJkLOaqVAeDev-W6X1D2iB Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" From: "Liam R. Howlett" Add a function that will zero out the maple state struct and set some basic defaults. Signed-off-by: Liam R. Howlett --- include/linux/maple_tree.h | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/include/linux/maple_tree.h b/include/linux/maple_tree.h index a7bf58fd7cc6..1fadb5f5978b 100644 --- a/include/linux/maple_tree.h +++ b/include/linux/maple_tree.h @@ -432,6 +432,7 @@ struct ma_wr_state { .min =3D 0, \ .max =3D ULONG_MAX, \ .alloc =3D NULL, \ + .mas_flags =3D 0, \ } =20 #define MA_WR_STATE(name, ma_state, wr_entry) \ @@ -470,6 +471,16 @@ void *mas_next(struct ma_state *mas, unsigned long max= ); int mas_empty_area(struct ma_state *mas, unsigned long min, unsigned long = max, unsigned long size); =20 +static inline void mas_init(struct ma_state *mas, struct maple_tree *tree, + unsigned long addr) +{ + memset(mas, 0, sizeof(struct ma_state)); + mas->tree =3D tree; + mas->index =3D mas->last =3D addr; + mas->max =3D ULONG_MAX; + mas->node =3D MAS_START; +} + /* Checks if a mas has not found anything */ static inline bool mas_is_none(struct ma_state *mas) { --=20 2.35.1 From nobody Sun Sep 14 14:22:07 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 92072C25B4E for ; Fri, 20 Jan 2023 16:27:34 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229983AbjATQ1c (ORCPT ); Fri, 20 Jan 2023 11:27:32 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:60894 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229773AbjATQ12 (ORCPT ); Fri, 20 Jan 2023 11:27:28 -0500 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 6FD53564A7 for ; Fri, 20 Jan 2023 08:27: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 30KGBpcd001467; Fri, 20 Jan 2023 16:27:19 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-2022-7-12; bh=HOuP1wdPLGXr10HTf9kF8BkTzEesc6os/zC9AAnQSAM=; b=rJ5fOgH4lK8DOCGGb5jkRZA1DwWZfKe6aNhAw5+6QFP6RZ609MaxI2BGK+dKJuPVfIqr dA2zJkdL8k9XSPT1jLa4sQyWtiyfxsHApSnapNuF8y5FLh8iMNNlziA77jE0yPgJuPog JUNw4+PPnows1GgO4Ug9feZYGEzOqFPpMk/nGTSRgBPrjIgMe7Ot+CZ4VanzA3870zwB HGGvVol3Oi9Ly5Nf6nRiCL0vFSJZ3VOUUW7oQgWCzpE4jl1a4PB8aIiGSaT3krmTpLHr XvuBuXNSnhFd6tLZR3E+YxAVtnGk+r0meTiTBgpFeP7tM2AF6SF4I3L+/S1PT2hUtwZs Cw== Received: from iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta01.appoci.oracle.com [130.35.100.223]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3n3kaan2vk-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 20 Jan 2023 16:27:19 +0000 Received: from pps.filterd (iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (8.17.1.5/8.17.1.5) with ESMTP id 30KFYo78004648; Fri, 20 Jan 2023 16:27:17 GMT Received: from nam04-mw2-obe.outbound.protection.outlook.com (mail-mw2nam04lp2169.outbound.protection.outlook.com [104.47.73.169]) by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 3n6r2w1ec2-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 20 Jan 2023 16:27:17 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=buY+MVpj3QHbZCjprQLjqqgnd30aMXHqwmwwGiWWccNiq6mqLxtG1XRB4edCHi9k2s5qFWMJPRMN82A6fuvJXUCEufoKCt1CWcm+JBJgv/VaapSLMU9Az2so4fPbcA4STqLHd6WZ/d38OgnGRVsMK5bZLkKnQAAVs1yJSL6iXDX8bwtByKalnbKN0X/R+mcrtTOSWIl1KI2nQMsCowsPznvmRfIL0S+hDzaciy4zccGWMHsAOLQzEnCt8aO/HZOJbSA+Mc17mjJRu3yTaKObQDKYHBubTWW8+Q4uBs6zW4j/lvA84Jw77rnFJ0PtjZ3cesPpEPz5Hboa/+oY4nZKTg== 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=HOuP1wdPLGXr10HTf9kF8BkTzEesc6os/zC9AAnQSAM=; b=n15EnipXUHiZhg+fFekyT6pGqeBmFgOWWaso+eCgXL18K3dYrlRiE2pc2kEsF7kC2nSUuuyNzkmKTD8sZur312SuzbCrfrvugRbBKnSQdOIyzkkyuqwBmJ2FAANt0/2CKhOY9IZzoNEaskdPD6DidhLYps00DqM2Nquu3ySOW96Vy43HP7cW++6jn98ObgouXEtDe7BJgmfHHiKS72ByhC4IZjtu8OzB5teWYs+MPnhcafbZeI8OX+avhFRlWC0FfEXqYChrXJmH4uy0Qn375Jg2G6ac9+7ZWBrxLJ45qR25jsuDxF8xJcDsOZNkelHkTd0Y0lT9fU9mrjZzdtY/NQ== 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=HOuP1wdPLGXr10HTf9kF8BkTzEesc6os/zC9AAnQSAM=; b=FzjLYM+5rFnIZ/Ela6oxZC3BCKNalKa/UtQJVG47APR3aE5rmWO7fcXdDKNHsjHPBOBNBpsUxz/W3/cZQa+Y/EDpwBE76bDSZ7bnNU7cuUK+uaTEDbISIVzjc+5pd7Mh0JIT2vlHM9Gwtlrc/YOe0FW9hdsHTha90b8eFkLK9TI= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by IA1PR10MB6026.namprd10.prod.outlook.com (2603:10b6:208:38a::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6043.7; Fri, 20 Jan 2023 16:27:15 +0000 Received: from SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::7306:828b:8091:9674]) by SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::7306:828b:8091:9674%5]) with mapi id 15.20.6043.005; Fri, 20 Jan 2023 16:27:15 +0000 From: "Liam R. Howlett" To: linux-mm@kvack.org, linux-kernel@vger.kernel.org, Andrew Morton , maple-tree@lists.infradead.org Cc: "Liam R. Howlett" , "Liam R . Howlett" Subject: [PATCH v4 02/49] maple_tree: Fix potential rcu issue Date: Fri, 20 Jan 2023 11:26:03 -0500 Message-Id: <20230120162650.984577-3-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.35.1 In-Reply-To: <20230120162650.984577-1-Liam.Howlett@oracle.com> References: <20230120162650.984577-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YT3PR01CA0001.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:86::27) To SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SN6PR10MB3022:EE_|IA1PR10MB6026:EE_ X-MS-Office365-Filtering-Correlation-Id: c37b1635-cc0f-410a-a210-08dafb0330c8 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: uQnWbXSWBhV61+mn8FoICi96sfJNnmKu5tVRhpQFTlhyBQ8x5NPlArhxyYGMkq9beWX38ER9q+RRUkAy//KcdslRm6/5jzh4LFnHLACqDLvjCpJwDAmZwK1trnDQm+a/Ao6dHjsUTKy73v9zWEEgtilbo34E4Tbl7HTqk9tiEbNOwIqMVkWSLHtgkgdqDRlEP5F79377t3KKpNl92xU4pnHWlcc+v8GCZPjkTLiNu2bxpnRhoK/yWMLKTvmSslN+paoPPxd2kbjhpye8v4X6sLtdZQP+8YQ6D12FA6RqQTnyu8IVsCPXxgPfkm50QQASxiPDI9O4U11Zx2T45V3hKcCyi2Ti9h6Gn8xTdbnUTHfAYiOy9uKlUA23aNffSJDXWxQnEdO3iS40wcdqXhrcreoIUEX63RsirZGWU9dm0CL22RB0ycI/0nzUUfa49sJmEY74kEBsiTB3glmlkpCmU0geCUrcR/Pfrx9pJZUUXUCKpZOnKODHq+w66oQiHJe7S0lkgeqLn4sMpfB/reWnGfgKcHkhaohHiQJ/D4m7I95f43rjxX5P9m/1Z27IPWuKA44KYg48nyNzYIIwTh34zyRFyi/l4+whBQpRXVjj05Mlft9OFSADkvCdI7yQef6DMcIX+dqmWFgSgEmfBjoafA== 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)(376002)(346002)(136003)(396003)(39860400002)(451199015)(4744005)(5660300002)(8936002)(4326008)(66476007)(66556008)(8676002)(66946007)(36756003)(6666004)(107886003)(38100700002)(6506007)(26005)(6512007)(186003)(2906002)(54906003)(6486002)(478600001)(316002)(2616005)(83380400001)(41300700001)(86362001)(1076003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?lr0akurNueGXr/9gwsdILNXVoskfbc0rPzQkVhZ0xvBMKqN2SeJM9Wa9Z38q?= =?us-ascii?Q?cKedJfupruyTJVshy8WLKtWeNxIjtMgN5HBDyJygKPIt8wLdaTgt4GPa0X7W?= =?us-ascii?Q?yydKPFzZgJHFAO0KASyqUY8DEARgtzQ5NQE9Wy1GwbA9ppp2SViJ+vcbxGAX?= =?us-ascii?Q?GvpSsRI1NbIyGFx0B32dl1fP5ztUPclrFjA3e4w0VJgadx+tWe/TIpH2N7hV?= =?us-ascii?Q?/0xQixUSh4OwpVnfL1L7sGoWS/5BvKHezHD4wsyQTHgv42fHn6mPJ8zt6j5Y?= =?us-ascii?Q?TOD8GshL19vWIkhYZaqjHiPYxMHdriMs2iGDkdXMJSW9uNZuVeFsRnBxD356?= =?us-ascii?Q?Nh69GCL5oBeu2VXdjzb54Lk2qRE9RPHvrtiC7DGtm4cD2lXNuqgkaAqfDFxx?= =?us-ascii?Q?+Y36SkYbZPXEevpX3k9OdqsgVkUFhhZSgVK62Ls3YVSiov+TXUtnd5ssNOMV?= =?us-ascii?Q?AwP9Ts05p1M0EDuTpgThV7UTPUNyRlKjoTpWp8XNopUDxTAAu00joWBijaEH?= =?us-ascii?Q?OIWIgmPw8SZmZCYyC1D+M0lWTfzddBZCU7Jo/nSgkcpNXU26SYHkDOa2VPUh?= =?us-ascii?Q?cgeydwE2AoIwz9DXXfaANFVcjGPtNTDAAZ382Cs9MM7bjXuGsXCrjwINCi3A?= =?us-ascii?Q?QWjqPC/1IWC2SHoPZ7ks18im5PTox/SCn2i/n53PQc1MDa6xkvP7Ww3YeCLu?= =?us-ascii?Q?NC7j9lNcrvkiLDblJKrAZzRuIhkm/CdvucrfO44kny/QYxMfL8o2OZGpTJMh?= =?us-ascii?Q?F0sx/4y0SKclaZp4aUkYJVulNIzrIIRNhbBhOMNY8BgZIyVjdPJY+IFO6T/3?= =?us-ascii?Q?rblSHdzimDybORD69QtnvhXHJCseVmLKdiEksJpaEciYfjFKDs9BYIDKvTYN?= =?us-ascii?Q?KyM6AOvBcxJQAv7F+V3uegZtlf2kYO4SKjwOrTMZn3YTR2z0OszGt2FcIhmj?= =?us-ascii?Q?RQ7zLxiPmBw3aAL5MF0FLYLuSd8JZytvk793wxTTbN7shAFp2oglE3UQmRAE?= =?us-ascii?Q?nJKfQjiVNBkx3UO9TC1setcvUt7vXJpSwLpNTgpKAVBc/dKaE5Tf7jswmLrc?= =?us-ascii?Q?PQBDCGwm6tJDHKd/soPQK4Cvf7DW9c/15DJcrHMPT5D+NCUt+KPsI9Mvcc+q?= =?us-ascii?Q?Tzq2K/WAvIITVqkXInmMzmRlaDgVrb37pSvzo/cZN4NK5zsnzQHRjnWUDR0T?= =?us-ascii?Q?HWnlraHI6wJVyic0cCVZugLGx6WUhf/gyLkITo5yqqELv1/KKM/xwvMjoDnv?= =?us-ascii?Q?y4BJdsJP6Gk0sWJqj7jkIc8cZahr6c8dB41oAA+ouhqZrxzpMXv0s1oHATmy?= =?us-ascii?Q?IbcJf4KncDpC+Wn2qbjb31+Xlz7SFRzk7LxcB1NrMxhcAuzPkyDTlPPqD0FF?= =?us-ascii?Q?NhMRfocfCbdcD403HAFx+WY6cH4qzXWNgYUzUtD3T5bdQYrzvSHnFDKXR1Hv?= =?us-ascii?Q?C4Zzx5235dgg+twCEvEXynP7LNT/7GoAp8pNiPOPhdu9MrxXQ4LMMqBe/cgV?= =?us-ascii?Q?8dschbPqkL1EHPIrAMRzG3kN8/VqaP9cYh2MoMtlVW834z76MHi9PeO63q2A?= =?us-ascii?Q?I9YJGAbtaYZOdZ8e1s9ATa23/PComJ58X22XGbjMQsru3PsG9THJLgHl4pe0?= =?us-ascii?Q?fg=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: /nQVCW+Z3qOMcGnEnW0bmOdi7WPjoApyONnyOxdId0QIY1kPiLrRC82OnVuBhRroqJxgYMpMhIrRIRdjhbqztUd/zNd1QMa0K7Y9I/m7eCDXlh9YtVsMf1D0YZWxog571gPjUcfVgV+Q/x1WY75czV4zW+0pExr0KfviomQRyQqQZcDlrHRvTQhTsQGFS21ve66keMgDhkpL+bl/3YUilo4Fkep8Z7lfKvwXR3Kup3QIi4yoK+Ze2uvDNhTcxpJ+0WRevpNiUsAwuN8DVSa5S9CviA+rln82chIRX12WOgXpQ1sN8ZsSFga+5ktAsYRvIzsWBZGI4Y5FwVyJJq/QTlAwczLlQMVYpKcUm2jxvD1kBubQewUNm9diypI2o7hPELle3eND9FsFwIS6fe34q7gfPIbnJwX9Lk4/ZcOxY8xwOKV+LgI7vEMG/Sjr3rtVpeDE/kPf+UZZua2gAORzuawo60Q6e/8GDISy7SaeHo2Kwn/0qWnX3NW/jsau93hQ71aaZS2kxBpFZSmRZGgA60QFTcqrfclDxNGAq3UlR24Oa4IGZnjkXrADBUeE2PxNCQJ011AZXdd3C7SC4yDw/RM23hpKc4c4LATm1l15JMaPP2AdVYwu7L4xSexs5fHobzQoSyan8/1Nz+llifI7VuY5fp53Uy/o6agvcQSQaTUU1PFiTzRgc7HeR/DSfEmdCEsctDr1pFCy7IurSgTc1ue/4CuWwU+vHx9XvTbJ++kdKxdVB0ciu1UaHSup0Cbt7v3IaSrGv3IykneekmAFT/ukKgWi7PA5VqU+RfolJZspDhu0Ofr3j6YD9dR+okEuKlSreksEw6iu3pHczTU4SvjKyFkMZiG2bromcVhe2tGCmFFTPwJgGD9bvUDCQfaH2dXZqneBMUTA9KYXxwRbpg== X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: c37b1635-cc0f-410a-a210-08dafb0330c8 X-MS-Exchange-CrossTenant-AuthSource: SN6PR10MB3022.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Jan 2023 16:27:15.0306 (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: r+L9sbhixdiCSmpLLH8cb4QHc8gUdyEBGI4ry6lynY2p+r/SLOm3aX0bSZtupnirN6j1gVYwPV0kspMA9S/RNw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR10MB6026 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.219,Aquarius:18.0.930,Hydra:6.0.562,FMLib:17.11.122.1 definitions=2023-01-20_09,2023-01-20_01,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 adultscore=0 mlxlogscore=999 malwarescore=0 mlxscore=0 phishscore=0 suspectscore=0 spamscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2212070000 definitions=main-2301200157 X-Proofpoint-GUID: G57RChurIdEpAF8qOmehsOYComgZyq2S X-Proofpoint-ORIG-GUID: G57RChurIdEpAF8qOmehsOYComgZyq2S Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" From: "Liam R. Howlett" Ensure the node isn't dead after reading the node end. Signed-off-by: Liam R. Howlett --- lib/maple_tree.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/maple_tree.c b/lib/maple_tree.c index cb8c03c4dce7..cbb8bd9b9d25 100644 --- a/lib/maple_tree.c +++ b/lib/maple_tree.c @@ -4654,13 +4654,13 @@ static inline void *mas_next_nentry(struct ma_state= *mas, pivots =3D ma_pivots(node, type); slots =3D ma_slots(node, type); mas->index =3D mas_safe_min(mas, pivots, mas->offset); + count =3D ma_data_end(node, type, pivots, mas->max); if (ma_dead_node(node)) return NULL; =20 if (mas->index > max) return NULL; =20 - count =3D ma_data_end(node, type, pivots, mas->max); if (mas->offset > count) return NULL; =20 --=20 2.35.1 From nobody Sun Sep 14 14:22:07 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 440BAC27C7C for ; Fri, 20 Jan 2023 16:27:37 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230001AbjATQ1f (ORCPT ); Fri, 20 Jan 2023 11:27:35 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:60932 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229875AbjATQ13 (ORCPT ); Fri, 20 Jan 2023 11:27:29 -0500 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 7EC168A701 for ; Fri, 20 Jan 2023 08:27:28 -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 30KGEBVl006200; Fri, 20 Jan 2023 16:27:20 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-2022-7-12; bh=PUb0fe4OtfYx7f48NaavsSNotcSXWvrwwRQeG6HouxU=; b=qQgUwm/0Sijdf1KOg/mgN1EGQfC7lNYHc6LEsK4bQh08SCzMltRSEebt93wIWoScZzQf eMe9H7D4lzXyxQZjzB6sd4pY7ubJo+bLFoMPKOFFcUKYIfYBfPuP2imsdwFuAk/qgxyh yde7F3Zssu83HDISHBjpZEUPjYcQaz+/p1rWZOqm7PGMd189UrmO+Ss7rUV9hXY8uJP1 JzR8CArM14u1aeVpUiht38CGSnppn/0/GajmZMFCgd8ldM0tKnoN5DdxmpvLPCIA9wPq 83/28G5r/QhrMvZUvWTo5mLbgfcU1uMkYhHeBhrMhyQX8RBr+n/Hb35LM0I8ZsO9KgJM og== Received: from phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta01.appoci.oracle.com [138.1.114.2]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3n40mdmfu6-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 20 Jan 2023 16:27: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 30KFU5vq027848; Fri, 20 Jan 2023 16:27:20 GMT Received: from nam04-mw2-obe.outbound.protection.outlook.com (mail-mw2nam04lp2172.outbound.protection.outlook.com [104.47.73.172]) by phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 3n6qud90ap-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 20 Jan 2023 16:27:20 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=DraRlCaRRRtFWdL+nMefSx88Ol+GS8Dzsy0qb6u+KLrU+IRjMy7DWp7xvtvw4lTbzKQF7l1vVVRFLSewiCsugncEsXygRyMQoD9sKWKQmARXsE0zyLF0t64I9vdhnpPkQBao693canrZa/OshhiNZoaffH/5TGQQoV91xX4JkFNFF2/pXUFD0PP/wHrVwn+zxyw8DaNHTFz5540DnNgmvItG7l5shqSwcVyo/AOdoFuQgVCOsvEY87cPTEpoWFiOA682DHT+gjxX46/+uCMHRhSlgArAzP42kSdRIf48RQ3sQKJ2ngSWTlTodPbYcCSQKruOvDlxX6AjMaFRoPNOSQ== 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=PUb0fe4OtfYx7f48NaavsSNotcSXWvrwwRQeG6HouxU=; b=HAMcCYjrAq+HuyqaIdeCG4GUUAi9RWqYkd8EpoumiLUnhbQ3/tf42r+qoF1572QWFzhKY2UCjLvsZZQH9xbf5TrPuSuZv0F1h8CPTjFQtFzwcrAT/Ef3F9EPGPVe2CO+BA9AS4JOZoLrTF+2n/QUVVmuXqYHziB8TS/UJjz0/US14967JXzaK4J4uNpQU6ZwAtjZVI0mOSWbAq/wkRo3mopUfvbKeaqosqKUuVnD5PwWEOlvo/47qUQpG5lejSwzUfmVUw+hslZ7t7z4AeWeMxqu7FPtGFAzXHZyl1vko3hFSB7fl4vbMgENAAjjG09HDrGMcCy1Bx2FJPBqJjWCZA== 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=PUb0fe4OtfYx7f48NaavsSNotcSXWvrwwRQeG6HouxU=; b=A2GbUwe6huZiX3xLfQv4zMl4FyqtCMkF7NFshBVSmpANop6TL/X2VYbZZ5PMwjXg3TZ0WF7SQRFix2/EIadmGha6Vx2XhG4f/ZVLLYZhEbRKP0JmStPHY7zhpylvm/Heu1iagI0xDXr8p43ObuIkgg0yiDn2yKJTt3Dw4/ViZCk= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by IA1PR10MB6026.namprd10.prod.outlook.com (2603:10b6:208:38a::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6043.7; Fri, 20 Jan 2023 16:27:17 +0000 Received: from SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::7306:828b:8091:9674]) by SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::7306:828b:8091:9674%5]) with mapi id 15.20.6043.005; Fri, 20 Jan 2023 16:27:17 +0000 From: "Liam R. Howlett" To: linux-mm@kvack.org, linux-kernel@vger.kernel.org, Andrew Morton , maple-tree@lists.infradead.org Cc: "Liam R. Howlett" , "Liam R . Howlett" Subject: [PATCH v4 03/49] maple_tree: Reduce user error potential Date: Fri, 20 Jan 2023 11:26:04 -0500 Message-Id: <20230120162650.984577-4-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.35.1 In-Reply-To: <20230120162650.984577-1-Liam.Howlett@oracle.com> References: <20230120162650.984577-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YT1P288CA0017.CANP288.PROD.OUTLOOK.COM (2603:10b6:b01::30) To SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SN6PR10MB3022:EE_|IA1PR10MB6026:EE_ X-MS-Office365-Filtering-Correlation-Id: 367e9ee0-f3de-4e9f-eee8-08dafb03321f X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: kpQWZHkSHrWvU9Sd37ZNGRINd6MN0ml/CezoO0fpc7UAse3KmpBvwQNhgenqR9bLDu/GIjALMWGpucaXluZ3m3yK05Uym7QuHOPRg0180g7nslchPoNqwnUZu/UdbfIcWeRFsjbt00r6X7UUnQETcBSXQVhUfHMCfxwXaUoE0DLwf9RmhKjmYnBHuwCAc7F0leLGcJ7j8LnrYkUpEPO+xa27gK5An1L5ZJBLgi8R/f7G7vE2GbNgQ5IYJcn61A2JMzdvTraT+ksYVyA/OqE7/5i68WZvxJs7lu25ooQfEFiwkkpUVRM2sHrrK7LRsIulFBx1SRWno1jceuCDd1nyJlxb6YQtmH3reDVAs9GDXfRFOVtoyJM/XZLRvQy4+YX8idEBw21e2CXJ6gKwiJ+Ef4e3kD0CswLzGctpv0rux1JkumrGMAsdI/02LN/LH0D0+1Cv96FxCmjbNU8SVWpwY7oBWARosYG9YtvZ0RSPuFymLUOy2Aa6QD9NGwHfA+MqqzgUb/rVBrUqVAQOFJc+eaHODy7yli0WqrgWyxTtEtzmyAUI65/Sq7GIezvavKpE0mk4dcBDPbWpS9aM1TDmLbcKOf/mckyU1ZqcD0ydOddXJmRXqFayCXIrbVmvAQSlLuM+l6FjR1lKetRks5gtXA== 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)(376002)(346002)(136003)(396003)(39860400002)(451199015)(5660300002)(8936002)(4326008)(66476007)(66556008)(8676002)(66946007)(36756003)(6666004)(107886003)(38100700002)(6506007)(26005)(6512007)(186003)(2906002)(54906003)(6486002)(478600001)(316002)(2616005)(83380400001)(41300700001)(86362001)(1076003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?B1lyWx5EdiiVS48zTR8j7G9wKpr5QDLnCPybAtOTBMX3wft9/Xm8gbhyVSMD?= =?us-ascii?Q?tz6yPh7konozL5pYUzW89sFNacCfexGAk18VrGm2pkwnDpoICffCd+Auao14?= =?us-ascii?Q?3Yc1QLIKT+YXNq7yeaPwE2gtTNuq7jsoA2CIRn9Auf8KFcZeac5ZpTsK36Jo?= =?us-ascii?Q?LPvhxRGMGFK+7pOqj4vQy9pTXtX2MSa36pXhe2whkE2zrgP6ujAmXfFShECw?= =?us-ascii?Q?ZIfgkHUGdWPr0V+OtSN0tYsVRnRcHZPwTjEurzIBdbRM7L3T/lrWvepkqhMQ?= =?us-ascii?Q?pzB6sTSD/pz7ibhv64iBEGRLJavtAvuhPVSNZ03wls+Jj3gQQoKrbQ9293w6?= =?us-ascii?Q?Sh76m/Bv4m48SSCHC5c89vuSjC/+Mz88Rep1FK79Drgoe+Mk6YFu5JYo/f6R?= =?us-ascii?Q?kCs11qWHdD+MTHiCZl1vv2o1an3SlAc6hBAUkixl5W9nmQ5l9f5QC9bQkoZK?= =?us-ascii?Q?RgS+Oe5UQ9dS6PCV8KnifCe615QWzeUZ4rZfTbCy2n4Z9rwbhLJD49rKVrzH?= =?us-ascii?Q?PMu6mC4PPkWSseyaGo2JtXvem7V3YQEHEjR7YRlyWFypwHzJCYYRubCP2mm6?= =?us-ascii?Q?9B9o+aZc/NC3SFA9ua28Tky4uD2vqbJINDQn4x2Cdu+5QlbfL4qiuoZx88ff?= =?us-ascii?Q?paeyN++XXO0vupAUbSIyMybJ52TqZ3HRPq/PQ5aoZixo9+1w/zxSL+n0AkkZ?= =?us-ascii?Q?x18Jlpt1W364+M+Tfm0EOsqu1eg5oaDaj2SeXAf+g1NZn6g7I9WV7eQbraFa?= =?us-ascii?Q?3t8pL3mZpZzxh3QTTWJHhFIpRBcobArsDS5q6H6IZYR8nAtiLqOAB+dXmkcY?= =?us-ascii?Q?EJLPsTNGQ6JCs/jBspeE97Pq4zoqL3TtaOXlSNt6mCcrIrGyW3O6Q/Xtrrub?= =?us-ascii?Q?GaTSKX5npLPjnMO28yGGRUFhVbg0S7HGow51Uu4aJdq+z+fk2tD/A1nEj79u?= =?us-ascii?Q?xup5cUy/8aMAMVrYBocJnvxy5a+xuk1/PJ8mElwOZOGqHzYFfw26QXTF4/q8?= =?us-ascii?Q?XLSFY8jqRu03vuwoBvizVdnxjfWURxd/odfj5j9IbBDmhJyzjVyu0tDtUmBf?= =?us-ascii?Q?ARRGnotADAwyWPEaOksu1zLgQ5gVElKZYeKExfG0hNclVfiZsideaquGpXLo?= =?us-ascii?Q?DB0dstQvZb5aU2O8J7cxlgtCPCP0FvSu0ENpEnLy07ALTC6Zm5W3xWTQb9O7?= =?us-ascii?Q?Z6zai0zwpf2r6Hx1JZ0ag9TY3Pf5GJFYMUuyVGLQ6aFsyES087RKN8jRrd+m?= =?us-ascii?Q?Yb1FxxPVPgTcxMx6664chhcZkYFWBcL+zxDkAUfozqq++eI9zH0X+5sj8XKB?= =?us-ascii?Q?qZxDFWej2QWFprc6iWroNmap5Doyn4NUtmuquUBxYtDGwLDuTKHTOzCsDPt+?= =?us-ascii?Q?9WRukcn8lGDCiif2thUPlPRu4iZn1BBTxwXgSBJCDCCXvueixDCHVX4L/wx2?= =?us-ascii?Q?vhJQf/qhs3Zq5nWiAcnz/Fmtwktmcr/FXLhD7sgVae04n8CffdUny6tmUkfp?= =?us-ascii?Q?TszGVFVseYSSd7gEpIzJdjmsEA2reyWKJ48IIHgLHWAK6U1G+2cXdFVUg2YV?= =?us-ascii?Q?ICWhLGC32xuKtKj5XOPBHIrPQUUpbpVxBjg8IaG/jCirvJ7u1LmvgRTQAcV9?= =?us-ascii?Q?RA=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: g+3aDc4HnkeXAXV+sGdH5GykLEiQo/3WNuUqlRHYol2YeSE11Tti/ItQtZLHlKS3WOMrHdq7fpEzAWEam5g+sSiqYr2wSzunex8XJOFOkTrV0IH7nl1V9yp0QEKXXJdq1Iy2a4BcAsaJeH1eG3LzncCqOSGmuT9El5nDpva+PB9auDKdyosHUtkArs9CwasOlvsSu9sqZ0qtCWIBOGDv4HT3mlyc3SiUKSCWlzFhBjaOnF6gvaWZleIwOfFhgCND2aGlcfcAp6IOs5mxG96AEcuoosqhhRZ2g8RJypUKXZmuuL4CILO4k70Dtv6+PXJTQnUya3MObzmsjEzqUYMA0lX7lbsnSMrAmwFLA/92g6VM5soyWxY1XXFsAIewAlp/QG1I6hmidXtjY9DP33xHn4T63HGp2CJYUUYiApU5j03mAftOOi9dOWHCNm6mWvEXQf7+enQKlOStQUOfOMxlSHuKseT124k0ZgV1os0QjZd6pzSDnzcuwx6qNboglE5Az25Y0r6meOHsVPFoMw4Y7pjH+Jq92ccgYijQo+VgLvdWTFTh3Nn1t49MzpNg59IEdEpmwyzEAAxDmhNie55u5bYSVaDcGgc1q3s8yLkaAJ0QeozY3BZylwkXJFfnPStilsS/koteOVgK5E6sfhU1AKnzxrYwvLl6O1eQ8JvTCDXno/xZmNbfI0D/brnARC3iERY1HkkkfxSHE3EjaZpgQFDnIymaBTiOGJt7mCDPyw+Hm1KUfd7Ut6PgoaGWAjYc10RaW6ApZ+eda7fp4xxnoimTPbxcl9wxFQ5v26YIvXHizV7c4vQIoCvAUy7QbEcuNg5mg1czjRV6WNr91JLnqlqVqYw8m/YmAXILN6YOBuxsFG8PwCE/rQWjfu9xseesmBFD7dWNBcMFfB2m2M2tjA== X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 367e9ee0-f3de-4e9f-eee8-08dafb03321f X-MS-Exchange-CrossTenant-AuthSource: SN6PR10MB3022.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Jan 2023 16:27:17.3429 (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: vZUlrtI43CBkiejGhs+CYLwFD/6ppM+yZHoJycVn1CwmeWMsbsli1OYqbzilOv/sPq0/E0o6/vu0Meqz4ZXJ3w== X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR10MB6026 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.219,Aquarius:18.0.930,Hydra:6.0.562,FMLib:17.11.122.1 definitions=2023-01-20_09,2023-01-20_01,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 phishscore=0 bulkscore=0 suspectscore=0 spamscore=0 malwarescore=0 mlxscore=0 mlxlogscore=999 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2212070000 definitions=main-2301200157 X-Proofpoint-ORIG-GUID: wB_8tCUZxj368edwKWM0Kqe9tUT300jK X-Proofpoint-GUID: wB_8tCUZxj368edwKWM0Kqe9tUT300jK Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" From: "Liam R. Howlett" When iterating, a user may operate on the tree and cause the maple state to be altered and left in an unintuitive state. Detect this scenario and correct it by setting to the limit and invalidating the state. Signed-off-by: Liam R. Howlett --- lib/maple_tree.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/lib/maple_tree.c b/lib/maple_tree.c index cbb8bd9b9d25..1af09c6f7810 100644 --- a/lib/maple_tree.c +++ b/lib/maple_tree.c @@ -4731,6 +4731,11 @@ static inline void *mas_next_entry(struct ma_state *= mas, unsigned long limit) unsigned long last; enum maple_type mt; =20 + if (mas->index > limit) { + mas->index =3D mas->last =3D limit; + mas_pause(mas); + return NULL; + } last =3D mas->last; retry: offset =3D mas->offset; @@ -4837,6 +4842,11 @@ static inline void *mas_prev_entry(struct ma_state *= mas, unsigned long min) { void *entry; =20 + if (mas->index < min) { + mas->index =3D mas->last =3D min; + mas_pause(mas); + return NULL; + } retry: while (likely(!mas_is_none(mas))) { entry =3D mas_prev_nentry(mas, min, mas->index); --=20 2.35.1 From nobody Sun Sep 14 14:22:07 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 89B01C05027 for ; Fri, 20 Jan 2023 16:27:45 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229875AbjATQ1n (ORCPT ); Fri, 20 Jan 2023 11:27:43 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:33278 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230012AbjATQ1h (ORCPT ); Fri, 20 Jan 2023 11:27:37 -0500 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 27A1BAA7C5 for ; Fri, 20 Jan 2023 08:27:32 -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 30KGBgxv011445; Fri, 20 Jan 2023 16:27:24 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-2022-7-12; bh=gS3KTwVPc6s2WWRLi73sZo8sF/ZbFlbHir4kobMK1ng=; b=T4R8gAKiYEhqiU0wUq5i9pHTFU6E9uY2YjPK5G5ugQMsCxuz9HlirhNKwRR0+D+yxIiT vLZyBdAAXBSLD1VIfmQrcH9XtQLXXHAXm7uHOOqo5YKdU/coztkughbbxHOJJmNDAXbY /KBu/ahZCNUexu7NEnDIgW7ucJGIRQ8w0sc9bHpsh4gAy7NenT2qy28U8YW5uhx+rJzI 1MPKRtSE/fn7//XANVNNoPDP2fDCcAW6vSdIDjmq74rTAUOgXWf0zVviPQOfaIOnQ5sf INHVWOER5LlkMW2Da3xw3m8UwtTBDocSx8ryGrcsVORX1YTzZCkNvZLRPCt+fgrAL5K+ cw== Received: from iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta02.appoci.oracle.com [147.154.18.20]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3n7895aqp3-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 20 Jan 2023 16:27: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 30KGN1Ng018798; Fri, 20 Jan 2023 16:27:23 GMT Received: from nam04-mw2-obe.outbound.protection.outlook.com (mail-mw2nam04lp2172.outbound.protection.outlook.com [104.47.73.172]) by iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 3n6quj9xyg-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 20 Jan 2023 16:27:23 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=BbmBsbCqGwb2bP/UxQsUdlXYVYmkwv5tRe7UrbnytYtyWjt75w42WXAQpcg4RsisUktjM0+lyhCDXPztn+aZ+BDO2c03zcdKy3gmJAQq//Ynt98F6H1s4czBMHzZencqf2ZficPrzbvZhfwt3MBc7SEk9h6DybE3eIH4XoBZk/h6CKPvSONo7JqYtC/RZveyo0cXTbK8whtp6bghwkgmq8z/b2Tt/9bmNL0FBK/bL/CkGyDZAcX64W7cSJ2m9zKgMqpvPo3Z+2FsRH+Fk0N83pmC6bYwLhYxni5ZUAJUIBoA3YDhALeSfZn6R2vRYIoBXY/5mlfstSq5vPnUKzkAXg== 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=gS3KTwVPc6s2WWRLi73sZo8sF/ZbFlbHir4kobMK1ng=; b=BX/ppSx+ke0G65G58FQrJ1+QkeuDypGMJs/piKZPfmu4CY/0LxKUOns7Rg1udmJVTvMEjDp+NBDErOevKFOXeB32xVRlgYmGAeh488Xd6FxNjgTzp7p93MBOop/ChsAVJ2hkpyPRj6oAUdFeHfWA1SEIPOjpavmvByhq5dlg8BbxW/yFhfpehEI9tVGT3rI3DimEICneu5mQOklyrS2IaGya04Uf/+gtI1XS0ZRKjzwMwgMWgtPUYlGi3IkOmsfHzYoscUUDQ1yfzTaulFH11HGsXw1e0MoJllHpMokfpFg8DKgpU72+8N1DJRIsGVP0On1CJxu4Zq7QdfB2B65cUQ== 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=gS3KTwVPc6s2WWRLi73sZo8sF/ZbFlbHir4kobMK1ng=; b=vM/DKI3DoVvae3M8NqcQc1EuR/bt2dMZ65f08Tl8VqSonuLRChontrjB4YPND1AwCPb01z4Z2UX2H3r7Qhsc85S1jXXwGowXpdSqfPKvnzukrf6GrErX5gFlBQE7/GbVIBDJcSjUSgsLkvzFXwQFZ8Gmu+xtnait9HRxrZ5T6NM= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by IA1PR10MB6026.namprd10.prod.outlook.com (2603:10b6:208:38a::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6043.7; Fri, 20 Jan 2023 16:27:20 +0000 Received: from SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::7306:828b:8091:9674]) by SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::7306:828b:8091:9674%5]) with mapi id 15.20.6043.005; Fri, 20 Jan 2023 16:27:20 +0000 From: "Liam R. Howlett" To: linux-mm@kvack.org, linux-kernel@vger.kernel.org, Andrew Morton , maple-tree@lists.infradead.org Cc: "Liam R. Howlett" , "Liam R . Howlett" Subject: [PATCH v4 04/49] test_maple_tree: Test modifications while iterating Date: Fri, 20 Jan 2023 11:26:05 -0500 Message-Id: <20230120162650.984577-5-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.35.1 In-Reply-To: <20230120162650.984577-1-Liam.Howlett@oracle.com> References: <20230120162650.984577-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YT4P288CA0048.CANP288.PROD.OUTLOOK.COM (2603:10b6:b01:d3::25) To SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SN6PR10MB3022:EE_|IA1PR10MB6026:EE_ X-MS-Office365-Filtering-Correlation-Id: d738d6c0-c0d5-4af4-cdac-08dafb03342e X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: mfoBBBzHFzigWelx9R6Tvw5Awac4jnAt9Eo2z2oxmjx9bwRQCj6OmSGX2zl16l1zDj0R+U0nIzO2A2513nOhxCuFC8zVe7zDiprT6LTXEW3JUYBlYCri3CQm3oHHc3i8shXV6OgjUJIXHYSZfdLE90PCEZl8dShluV6afhBjAuNvFqhwOlmltIqxY8GK1MLJweUkekUou5gnQPVYeZ+5I0LO5ci5bgllVyNFBV6Ixt8ntvPXDpORNDr45deEYwD0iGf1jvEbvNpSx4plBN6KNYiVEllyjHm/QepKpPe3m2bQ/7iVzMQlOblD3Wk6a+Pr12tXZls15/0CI45Th9OKTafsrPgz1fFWrrSltOpAfthjftMtqnsB/X+0wUtd09gm/JNEu6HNRLcYXnS26Ldr/8f4vyQx8iysJd4aWkxfnmVSSR/VEp2qjGQTDDmMI7IGeCiz1PUJYOGobQNUsFH+MSIlKLywOakjT01j4S+rovDHp8HKSG5Eh2PqSSM082OPP6sfMhZWAAeyAVghRE90hs7CAXe4Et4FbTauIdRLm5vrgbO+UvFlKtCTxuTjDYoNWzm4XAozW7ptG6DfxFKbn57lwyYuGOGyT0OAhFb+db/2bMgDtRreFw/9uXcoZplYCoEBMsWVIgMOw/FjGr9BHA== 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)(376002)(346002)(136003)(396003)(39860400002)(451199015)(5660300002)(8936002)(4326008)(66476007)(66556008)(8676002)(66946007)(36756003)(6666004)(107886003)(38100700002)(6506007)(26005)(6512007)(186003)(2906002)(54906003)(6486002)(478600001)(316002)(2616005)(83380400001)(41300700001)(86362001)(1076003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?HaIQnwXBcn32wjMviVBEssVPwO2/wYjEVlqRprzWnA6i4YZIUtrAfURRB15H?= =?us-ascii?Q?V9TxEvOmuzHqEHK23txZ2dMafridlbT/yGJaJI6yjOCGmDTxOFw8ggPeZIFD?= =?us-ascii?Q?2kS42ZufuJdPei1eLlT2Td7JgK8pESQueBhbqc1J8ad5q+jbLFl06g043+fz?= =?us-ascii?Q?akmYvvOdIsOJcPRs3jK/6fl8U3YbI4VlwmhEK4/mgDrbcmX8M/MoCxbiV/ed?= =?us-ascii?Q?eyR0TIct6aX8+OEd3fJW3MGfbV5vdzMGNIsufx6J9OoNDWVdgFFEXYUClQcq?= =?us-ascii?Q?rR/KNZR0O6PE5DsJZ8Yq44I1q5s6+is5BDqMSbY2f9mRbAptkWpf8fH7ep6l?= =?us-ascii?Q?AAEnm6FSrO41JuZuicc+T3rmIxI+5MWNVKB+qdcrtlVT+plHIht49Eu07C9S?= =?us-ascii?Q?WqlVFtfbxAuIcVd62xo1le71CegPPPS7jaICrqoQvhpUINcrazJC8uOURz2U?= =?us-ascii?Q?WxCOJQaVlHprHmBWLWTDS9K0FIDNDGn5mRcMj8GMKKI3IOPQ5umLjfZimtVn?= =?us-ascii?Q?JT8mhNQBHFySTAvz5ljjRUXoznBjanIMCJhTpOZnkAJi8o/VKqiCKOBKPagl?= =?us-ascii?Q?wfKAsk36cJXusT13Aeq1waJQ5UQhG4K6WcmzZD6l3kQfrUo2ab6fVcPJPbVl?= =?us-ascii?Q?c4mDBVna7dxDI119dSlAUJhhMWD/vjfMVhRKjS0ePKQlB1Z1SJLyqo7D46F0?= =?us-ascii?Q?ilPOToQTChTI7gDzA9i/FU5MKeKYv8h5uqE9OgGG9OtzkgiY8Ne07ST3BRea?= =?us-ascii?Q?/05qSWesSQAYOq/KcSgqG0kYA/ml2KhszyYMJC9l412Ro7WuVmFUsDVjg5eF?= =?us-ascii?Q?8GTACfcpRcisMalhHF85/UO85v7Mg/m727VkY6X6/GYaUl5ZsuMzQm0edaKJ?= =?us-ascii?Q?oFjR0bCWe+5Vo5iU6uRPZ++ZHLRhDAlEFI590VFhsadFpWH/oUj0MhqISX6B?= =?us-ascii?Q?vMXgtHHOGHJogz7MXPIcsJmWgM/xP+M4GAuassQ/w1CAon1ROEhN+VVKuJoq?= =?us-ascii?Q?aIXqylmvF28/P8FpMu1vB4TI6d2ia9WL3iQcVlq0Tvdv3kKOXQyzsT6A61kj?= =?us-ascii?Q?PR7EA9RTGVxx/bhve1jDz5G4yRMfXzCn5J+mdI5r+/MS9M9RPTRrZaQhx/Dj?= =?us-ascii?Q?m0EKj264YxmQpG5FX+u0HqQYD6JxhFpMJkWEBEPg7KkHXFrFuTpdXHT4doJ7?= =?us-ascii?Q?CeRj5DnOGFWUGWdTE25+3IiH7MBrgDz9Hv6YGgwg80aX8lY3+yNnB+R2t8nZ?= =?us-ascii?Q?gQWuehGmXKn79yWuXhR6aRI1GAW2nAwn6V08Q1BoyE/Cc9+XMn+AvOwEUzvO?= =?us-ascii?Q?p7Nls4cs7s6g8Rlcv2EjRwVeXYBzMMW/THUvntmlm6llid/SDENrSbMIgR2X?= =?us-ascii?Q?q/8ujRGRsh0OpgsP6S5w3gjdebOUtY2zwNyza8nsEZ8+S6VPClbTvM8yz3Yz?= =?us-ascii?Q?0T/MHutUGn284yowRYaz/TmiBAxcrn3VA+hdyO/6y0JM8lkPaRyjJu56P/TG?= =?us-ascii?Q?86AQ7qMvkK2IvVG5HEKkLn8urE23ge6jEJtrZhvl2OVXmJzt+7RKzVtwvAez?= =?us-ascii?Q?kXNUkzZOEuNrlvt54kkwQeZd3oZIH6obKITTPSzcX7v6nftkGuY2PUZRkeyP?= =?us-ascii?Q?Hg=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: H+IDZm11rxetTJc7xbL8vJVjrQ0GroBq+l1QFOqSkWtN8VGRKl+wBnVPeKlFFYDjO+jUeqQBbgRG3/36ask2FMb6MkMbYV45klmAYc+0dP++Q9QckdgkHjj+nP1SnzX9s3TP3PIQd8NDLaTc+5pQZeXK7kknzUqxh8ghVdsiBF4WT9wGy1vAM/EXr3HiXbFlvEr/Q7sbzvCDW2+LE6T5puwncvb3REEDd7B0CR6bqiMHhcOaNDhEylvQMcQwuudSklRXHb0+wZ0bZr9CqGssBU12L4sRMojIzVkQWn50z1y9kb6JENLGkzDKotC4CgZxxbSfMDCEa0Pzfxl3BAUxyoedoVz+cSsG2MMPSSFi53TEF+Feh0cqs1PZugyAc6CWut8hui4rS4zyVhpH0w06D/Y8ycjWhVbzOmCa+zdk9P02y9sNtEXYnL+LFeBZLJ1/NL7SUU58F3VfghmrnTCreB5c6xk403ScOiJxZgSuZFIAO1N8Wlu+aKk/AgrGtWQdK2ooIXOL86HMDhtQS0K3U6iGOR0NvqvPWnqNFi99WS+DRZ0h0MNRA0NR+lRMZQG/KCZ2ce+i44gY6TeJkfFAlQoeZ9AcczALuWm91QiPNfAbvFl6bIucmbjAF4h2MFiyQjx5kPluxZActFZfmALn895K5emyZeJ8fje6BoUSq6krSo9aTUzEGzzSZVyVZG9EpFTdDo8SREY7FDY4OxywvJsetPgxAd98nFBDx34CXtNeX6l23Jt40olMyd6aS3XnZBgy0La3vOyz4y+GmrzhncB/ZosZ92D6APlp7y4tTEMpqtESxFfN1gMS3oJvwVnMjtmbDkXaDNsa4BHaDDmw6Iicb1GmAcdaxCKX1QS6VlYtvemVO29cnJa6+eHF5zOgJVcTpJciJqm8S3abTXmydQ== X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: d738d6c0-c0d5-4af4-cdac-08dafb03342e X-MS-Exchange-CrossTenant-AuthSource: SN6PR10MB3022.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Jan 2023 16:27:20.5927 (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: 8yk0PWXKJ3Xqnw3IgASwUnw4/iy9LjhXOE1qKTceDdc85iqdN+nxvptVsyhNX28wFv2fv7Up2J39sbgItP4DAg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR10MB6026 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.219,Aquarius:18.0.930,Hydra:6.0.562,FMLib:17.11.122.1 definitions=2023-01-20_09,2023-01-20_01,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 suspectscore=0 phishscore=0 malwarescore=0 spamscore=0 mlxlogscore=999 mlxscore=0 adultscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2212070000 definitions=main-2301200157 X-Proofpoint-ORIG-GUID: 3JfszxDPea2d_D0Qe1bDSsUwlTQiJ6mL X-Proofpoint-GUID: 3JfszxDPea2d_D0Qe1bDSsUwlTQiJ6mL Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" From: "Liam R. Howlett" Add a testcase to ensure the iterator detects bad states on modifications and does what the user expects Signed-off-by: Liam R. Howlett --- lib/test_maple_tree.c | 72 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 72 insertions(+) diff --git a/lib/test_maple_tree.c b/lib/test_maple_tree.c index 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); } =20 +static noinline void check_iteration(struct maple_tree *mt) +{ + int i, nr_entries =3D 125; + void *val; + MA_STATE(mas, mt, 0, 0); + + for (i =3D 0; i <=3D nr_entries; i++) + mtree_store_range(mt, i * 10, i * 10 + 9, + xa_mk_value(i), GFP_KERNEL); + + mt_set_non_kernel(99999); + + i =3D 0; + mas_lock(&mas); + mas_for_each(&mas, val, 925) { + MT_BUG_ON(mt, mas.index !=3D i * 10); + MT_BUG_ON(mt, mas.last !=3D i * 10 + 9); + /* Overwrite end of entry 92 */ + if (i =3D=3D 92) { + mas.index =3D 925; + mas.last =3D 929; + mas_store(&mas, val); + } + i++; + } + /* Ensure mas_find() gets the next value */ + val =3D mas_find(&mas, ULONG_MAX); + MT_BUG_ON(mt, val !=3D xa_mk_value(i)); + + mas_set(&mas, 0); + i =3D 0; + mas_for_each(&mas, val, 785) { + MT_BUG_ON(mt, mas.index !=3D i * 10); + MT_BUG_ON(mt, mas.last !=3D i * 10 + 9); + /* Overwrite start of entry 78 */ + if (i =3D=3D 78) { + mas.index =3D 780; + mas.last =3D 785; + mas_store(&mas, val); + } else { + i++; + } + } + val =3D mas_find(&mas, ULONG_MAX); + MT_BUG_ON(mt, val !=3D xa_mk_value(i)); + + mas_set(&mas, 0); + i =3D 0; + mas_for_each(&mas, val, 765) { + MT_BUG_ON(mt, mas.index !=3D i * 10); + MT_BUG_ON(mt, mas.last !=3D i * 10 + 9); + /* Overwrite end of entry 76 and advance to the end */ + if (i =3D=3D 76) { + mas.index =3D 760; + mas.last =3D 765; + mas_store(&mas, val); + mas_next(&mas, ULONG_MAX); + } + i++; + } + /* Make sure the next find returns the one after 765, 766-769 */ + val =3D mas_find(&mas, ULONG_MAX); + MT_BUG_ON(mt, val !=3D xa_mk_value(76)); + mas_unlock(&mas); + mas_destroy(&mas); + mt_set_non_kernel(0); +} + static noinline void check_mas_store_gfp(struct maple_tree *mt) { =20 @@ -2659,6 +2727,10 @@ static int maple_tree_seed(void) goto skip; #endif =20 + mt_init_flags(&tree, MT_FLAGS_ALLOC_RANGE); + check_iteration(&tree); + mtree_destroy(&tree); + mt_init_flags(&tree, MT_FLAGS_ALLOC_RANGE); check_forking(&tree); mtree_destroy(&tree); --=20 2.35.1 From nobody Sun Sep 14 14:22:07 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 E2508C38141 for ; Fri, 20 Jan 2023 16:27:48 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230100AbjATQ1r (ORCPT ); Fri, 20 Jan 2023 11:27:47 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:33614 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230039AbjATQ1l (ORCPT ); Fri, 20 Jan 2023 11:27:41 -0500 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 4E9CBDF940 for ; Fri, 20 Jan 2023 08:27:35 -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 30KGBjO3011480; Fri, 20 Jan 2023 16:27:25 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-2022-7-12; bh=xYHmyeDE45MB7bpsP8TJQMyzpnw7c2mZrwsPVdP+egc=; b=uN8hAoMjEZdUPzqeILm9RF95GtcaokgPcSzrAV3nETbfCQXfKKoI/NmSZdd1QDT1mYQj HBCR+sjbm5yEJ6qFs9VA4OCIIeTx8IdmVm2dvYH9l3ZnBiMiCXgGtSIUyRQ6ckIyBvGy etuhlQxNZAfCLORBYPmoJQe42SwWRgpQWWunAWM/s4cl+6KdSwuic4eVjYNDy+gzp4zN jd6RQ4lXCOESv4GRVAYAi3bLfYT8aLvecfsuHi1Bcv7Rboytsm8I9lUs4DejyV0eVlD5 zmcQZj1kTg8LLQ1ZezmGfTs8bFvJzWpJdEOGcSRvnMvliTVKWxZwaQ84AnTNvlxQorK1 /g== Received: from iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta02.appoci.oracle.com [147.154.18.20]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3n7895aqp6-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 20 Jan 2023 16:27:25 +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 30KGN1Nj018798; Fri, 20 Jan 2023 16:27:24 GMT Received: from nam04-mw2-obe.outbound.protection.outlook.com (mail-mw2nam04lp2172.outbound.protection.outlook.com [104.47.73.172]) by iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 3n6quj9xyg-2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 20 Jan 2023 16:27:24 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=iFwmSj/eJIfLUKZSjOsQuHZokA1md+OFX5Fctcd5+XEOO1Zgxmlmao79l47oNuJ+nbyBFrSna+qn6hrLpS27Z0/gZNGyZHTa4rjkPntvQjEbVgmgg+qLaXG0zJ2pi7Lh/7KiYq5L5nMLwR7z3KhUeNNjSOqkQ18xr5HBjCIsf+b8q0jgI2oVf/rruebqumKBGYoEymdnK1G+loqKca3cc1bQoDgyHYjwVQWYDjSGpoucQP6RgwLRlbfj1qBQbpcdv1BV9GKU1XjOLWCKHj7ZVwoRxoQnr0V7m8sv0DJIKFctNIbasctPCr1efPxi6BLuQCtDtuiWpkKixtKIYkoy4g== 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=xYHmyeDE45MB7bpsP8TJQMyzpnw7c2mZrwsPVdP+egc=; b=KHwoJTKIPvqGnD4zVXRPcHIScHjNhQNLVeVAFDyO+YxzAb25X7iMe2VhrbXRzWMAyBaRJfvpeVv3EmiZERQuIXZO1xWpYM0tSp8W2qxzEq645XBh5K9scvi7yG3iVU0CcZNT7Xrt1gsF+IbfmixJOg+QG2ls2qT6P88LBn/KvavFcw6b+4ViB02fLfJeZWT5+UY3bWSBgRHIKPXZk3n4aEfbO1XxWbmv8tKmH1UWYv1zELcrRAgTQsVbQloKbLc5/exqJIes0091LWVWhqAOK18d/huoRzd0jnN1H1JgyW03/XQQOLvf6FgE7ZRNktEA7OQrt8UmhgRjQvgdn5EMmg== 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=xYHmyeDE45MB7bpsP8TJQMyzpnw7c2mZrwsPVdP+egc=; b=DezlSfkokLoSFIzSzHyiizfVKtsjLz3PdGjPG0QG/IhhhhykTXpVRVcGJQNA6G9dT5jqpg2HJNSdAI5uUtSIbeomenEsb0R4bVN/+Jec0nMLP8h3nnEPcMdWGEVwPhUwuacrEUB8ZMfcq/pSM0dibJsQ/FyF30Kkvl29dTs7owc= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by IA1PR10MB6026.namprd10.prod.outlook.com (2603:10b6:208:38a::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6043.7; Fri, 20 Jan 2023 16:27:22 +0000 Received: from SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::7306:828b:8091:9674]) by SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::7306:828b:8091:9674%5]) with mapi id 15.20.6043.005; Fri, 20 Jan 2023 16:27:22 +0000 From: "Liam R. Howlett" To: linux-mm@kvack.org, linux-kernel@vger.kernel.org, Andrew Morton , maple-tree@lists.infradead.org Cc: "Liam R. Howlett" , SeongJae Park Subject: [PATCH v4 05/49] maple_tree: Fix handle of invalidated state in mas_wr_store_setup() Date: Fri, 20 Jan 2023 11:26:06 -0500 Message-Id: <20230120162650.984577-6-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.35.1 In-Reply-To: <20230120162650.984577-1-Liam.Howlett@oracle.com> References: <20230120162650.984577-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YT1P288CA0019.CANP288.PROD.OUTLOOK.COM (2603:10b6:b01::32) To SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SN6PR10MB3022:EE_|IA1PR10MB6026:EE_ X-MS-Office365-Filtering-Correlation-Id: 678c1af6-d2aa-412c-a7a3-08dafb033551 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: eEudXIMknd8GZve6v9k9WGTneWbjO90CSX3af3SCSY7cr1ILqQbga/CECRYkGYC/hXlvHzJb3ur4D9ZIRE1yJC1P5xFtyPqrnfatWy+JIHMjpUZ49XFgv9MPxQjJx0oLWzi6c+iYX5cdN4+NWxfasvmwNHZrYthzEU/uZdbInHE7FILYQQxkRwUesEjtWrgdjjcJmEFOaa7zQo04JT5ZhCvkfbMLfsrObdCoRFcGtvnzUGeTtTJHTGkwz+1Cqgc4lBU98Vyg6OLYCYHiDePLZ1khnIXcCPOLSCKGEDRmOgiHsWoAOwD1fTGM83vHFCutQEtne3MmzYP3zvfUqCVp5/YflTEIzoaedWCAt6wbQaHDmUnUjhztKFFe+SExvMhm9+mASnuxT8/2zDrGzdY6ikPDruZl5SuUuxqFOJyX6wllH3ZN67zZ0J03gIZqjL6ISHDs87UG5I6SB5doJje/GZq4Hw8GI3UsB67Em3BoALPzG6/9HO2Vr286W0CWxC+5brcuCkDuQYw6y+bRlgtNnuxUc18I9r/tDU8EcBt6cl7fS0GoyelqMbN/Iu/oM0AjblJxUrRTznYLzpY8hBQ9arLdbF8HaXRboPkjsbafD0go7q6bfE5omp/6eZ0Kj5OrQe4uJdVus7p30swIIzb/tSfiTkVBLCFnDQ14C3xcqDo= 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)(376002)(346002)(136003)(396003)(39860400002)(451199015)(4744005)(5660300002)(8936002)(4326008)(66476007)(66556008)(8676002)(66946007)(36756003)(6666004)(38100700002)(6506007)(26005)(6512007)(186003)(2906002)(54906003)(6486002)(966005)(478600001)(316002)(2616005)(83380400001)(41300700001)(86362001)(1076003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?/HT7Po2MBSrrSQmNQoTcGD5uqRBgIa2iNzo+CFcX6O8TSg63DWyWSf6P9cN/?= =?us-ascii?Q?tCvXupyDzr2UpzYpGNbVUc8IF+OtKSm+9j83eQf3UgyaN7n3QkT6GEOEWeNe?= =?us-ascii?Q?+uMNoTiDe+0d4Z6K6K9JzNYSn/lT9AhYTTJdobYPSvZVy9Zsw/lIVPTZPTyC?= =?us-ascii?Q?wMU/7YJB7oYtWASWX3uVMpJ5/sj2u2F8geREiimgyrIX70hxw0dkMGHxVe8s?= =?us-ascii?Q?7PQtnSZhzIqYYx+ZVBpiwwr3woi2SQllLHJvYgZsPsS4xTy5+BoRcR7X0a2G?= =?us-ascii?Q?THvYB/aJP8fh9nQWzli8/IesTOdLOuIFa36zu35udBkmPIniYL9SAoOc+LOz?= =?us-ascii?Q?2H1A4q6c9Zm0GzGT5aOGgah/k/lpiV7SzPisn3O2inJVKP4EkfL7wmrxvq9P?= =?us-ascii?Q?eTEcGbVWl8K5VTHZUunUpraJNo89vhXIa/En4Ytj5FUt6+jLSVveqappvrcB?= =?us-ascii?Q?YGIrwqdDK9S5yvflUKhv7KtX9nxc5gfUm0SIQcBcs8bp3NmkAAVjfgj71Ds7?= =?us-ascii?Q?8RQTnGmcgXqkg7nqhDCRto1FGZLNCrZ973hXoFi6gHIiqr3iLXz4N+9LynBc?= =?us-ascii?Q?ukmM0AIQ3Hu+LmkckXvq+UkDhrxzpvSkWt+U6DANLhnuhUEV9M4Jijc3JnX7?= =?us-ascii?Q?9ChYWb9W+yIdJhHf0Go4RnOSe9FL/69XwDhgCF3Fvd7rFgnboluejOBBPLQ2?= =?us-ascii?Q?K2VDUHzrP6fUoW6KtbrFyh/kP5gRvii2y3gK53wlGlYQtyEetVfgI/SCrpgf?= =?us-ascii?Q?36QVBGmlP32cj3J6TdoaNhSEdRBb8goHmQT3KC675vdFl2L3QM5lEPaaumyr?= =?us-ascii?Q?HtflAlxHXQCvHkW75m4k9R7y/NoIlv6vRC0QDaoenk2VhV67XUNCa5TZ8HI3?= =?us-ascii?Q?RTGmKO2L+pKiuKqlMNwmRcQlA+72A/Oi611AEpdcwUu561ZdTZKBVDMcSFk2?= =?us-ascii?Q?8hincQhzlNKvccHCMpWIiNvJXfQvVaMpOq1eXjCElXamixwoX/nw+aPZ59XS?= =?us-ascii?Q?pH+SLzP9WIQ+TJGLYOBl/pcQLhVkMS2LeIytz3ORVZSRjnPYwwktAj/WBVLe?= =?us-ascii?Q?COVkVifjEJ/3qnFOGi012MIJN9uExezoqjQoIUCTbYl6hPHzON+A6W1/ad0m?= =?us-ascii?Q?gy58b+ALokIyXHsXVhbdvXPU4wx4jCxqEwyjJUIR3ocoQbI7onX12TjLJWKf?= =?us-ascii?Q?6o3CihbDzqzYtqoqhAZ+tqGeUp3csqBSBiqsMG683NDejH/G96IxdnyTBo6h?= =?us-ascii?Q?0OCLTNA+dfhw+BfuZ5psIjGR3KYpOOJVWTRepDpkhMmkcMLxATy7N67u75VH?= =?us-ascii?Q?ygwZeksBMgtZF4TE22NpaTUwy/SIF8NALHi5+PmW6PVrAeVXIIrd2XC6756v?= =?us-ascii?Q?2NDOwaDW5mQWN0nDnLRsLfBkJdrxQy+SAgCrcX0y5cSKCzAJ165ceLGVIHVx?= =?us-ascii?Q?d+R0Ml8PdiZiQiNfbO9mx0GRRj9fVz2RxVkUNbKJvaGR1XuHMd/8IPu8kZzG?= =?us-ascii?Q?WnoluUHr7BIK31R6xwo1jDaDToDcID1Dhrsz9JfpRv9ONxPmSYcRKpvUnQgf?= =?us-ascii?Q?A7cNDVyN1BdMjXjNMcypg8TdYM0sUbeqcwsdQpkdTDet8adr99kdvfNHr5nS?= =?us-ascii?Q?YA=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: KvjHWV0O6W9FsOCOPAD9jXnL3ze6P1YyHJoHlyU4yHxy5xjADTxikR++P1RvNCuXrH0weFDvPGhgrc6Fq/R65eFTnbpBYE2u0N2LIWItwBHP3ejVSDOosbW7RuU0ilQqzbmYhPshKgBgYwYSlKPFlZm49/p/TRzC0SuM9Jv5c3meZ2IzJDOnWubr9wDgloPF6N9PCFrm8u2ar9Hv9q003KSkKs5Rm3aIIZEgEKm9o8J+2B0Qiu1CQTHEkTb2Ny3OXc6wbbdfoggBMrhq5bRvZzm18foOmIoek64jVRtOBAl2m9Ud15PBtf2dPljYrkJeTHPNB/FujvQQOzqG9FcNx+y64YmuR1aul3OosK6cUBGpSbh0jEE3XySQeC4ChL0uJDzNVt4MPSD4LoLnJfBqKbNLKaVS+E2BfQwU4BbBwp25i5qVRk37AFySD1/HJdAHShzkYrxYy8UjN3U64BLZ5EMPB6l4NGzGoQM7i9YKWzR9ATIqtpxfrFToZCP/GlX9bZcHPfVTUBJOMrMdKaQsQqcxBMp4mkPjpVdsXZHk9tTCD8+fqDO1GYhNpA+JT7w1Ce4BpSjrBwFnVnL1QWP8zKuQfYqV0eJrP8TbgRWbjf89V9+uVStu0to6I8VbMSQ08vYQq/+rDhDlhkl93m5v6uCTeswddhAAEVTCBYjHyeJvx/T0s3KHa3IyGdjz3o3PBVbvaqMrK409ydjnRdg6yZrzCHjV24tST07g7mg6xl/KNOSImhz9LfBaVxn9kPdD1ZpaFtiFFQuI/vtmEKpz+XJqzRBVlxNc2oQHzrj/FTS6aRse5AErZEb1FrpuJt7N7sDuB4fK3vvZk7YUNSasnOQKsdqPU/jAAhfT+O0yXbCWyrv+POMGzfH92FQqXKVxKxHaR/trup8XNNDh0o0pHX0VGk3NiDo7bjUkHLB6e08= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 678c1af6-d2aa-412c-a7a3-08dafb033551 X-MS-Exchange-CrossTenant-AuthSource: SN6PR10MB3022.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Jan 2023 16:27:22.6863 (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: gitym+CAuEDnt45XNOcUUN07JCjVtowsljSj8LROJkc+9c7Lm3swXr2wr3V9iyzn57bhjUqZmWOaJDg+ADO8ag== X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR10MB6026 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.219,Aquarius:18.0.930,Hydra:6.0.562,FMLib:17.11.122.1 definitions=2023-01-20_09,2023-01-20_01,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 suspectscore=0 phishscore=0 malwarescore=0 spamscore=0 mlxlogscore=999 mlxscore=0 adultscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2212070000 definitions=main-2301200157 X-Proofpoint-ORIG-GUID: asZ9Aj0fqy-4IOoBn_6bDhu45JIvonVa X-Proofpoint-GUID: asZ9Aj0fqy-4IOoBn_6bDhu45JIvonVa Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" 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 1af09c6f7810..14ce355e4149 100644 --- a/lib/maple_tree.c +++ b/lib/maple_tree.c @@ -5608,6 +5608,9 @@ static inline void mte_destroy_walk(struct maple_enod= e *enode, =20 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); --=20 2.35.1 From nobody Sun Sep 14 14:22:07 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 353B1C25B4E for ; Fri, 20 Jan 2023 16:28:01 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230037AbjATQ17 (ORCPT ); Fri, 20 Jan 2023 11:27:59 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:34072 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229560AbjATQ1v (ORCPT ); Fri, 20 Jan 2023 11:27:51 -0500 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 35451DF96B for ; Fri, 20 Jan 2023 08:27:38 -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 30KGDiEX014953; Fri, 20 Jan 2023 16:27:30 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-2022-7-12; bh=IzMHcWQLwYjfKZ6H7eGpUqZOzos98KPjiKb3gCvpIlU=; b=oWoPqEwIUL5GKj4xAYR5o1jdwCVQyim6DDILC139wyyXVvhTi04XiFkhL06Y9te58src d4C5vB5bFTXEvGMO2QxZ1Mfk/NaXYT/Hdewo33cplgkl5OTOiCCKZNsPpsvF5fDqZat3 U4nbdII90PeqSJDRAB7eFLvxJjaP7Xu7VG5baQxTjufjXmpRsMcbnOi/bNoTAq+e+fZb KfXBWxSDan+zbyjhGbi6qKO5dWekCR6D7mFHQCnu3cecfz9OtwSX51xTIUZJWSdtZ4Ch G2se3TqSK8/pLnl7E2Z770ZmHpaLrgIz5BPktcVx4KnKzH2LZobSd1LK9LtdttvhkLsI 6w== Received: from iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta03.appoci.oracle.com [130.35.103.27]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3n3mxtd20x-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 20 Jan 2023 16:27:29 +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 30KGBRCI013478; Fri, 20 Jan 2023 16:27:28 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 3n6qmfax1v-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 20 Jan 2023 16:27:28 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=EoVDeFOAzAeqnd1ihucP0yWJ4v/+UdSgnXwHbsgIDN5iex5AvYzNzZQwKAfcYnaC3kmZZQJzZLCVOm+x6BAMKVbLJz2Cl/Yk9OmlmJzi+JaqLyCBp/8qARbHU4W2Ys5SEQl3F4F6oRl8i2QYD/ImfijQlElthKgRAk6xBHpjLIE4rVeyDWbLSIdPQNt7WBIvl/hEeJXlQPkpDTB8Vc7Qd5BJnNR62lTdyTt/ySDp3GUyOYj8P8UITxiR3ziXkL0Qk96IPHkWBoc4Z7l2ieqc98cuUf46o0c6f5KvfbJKj/UoQMlOuL1gWKUXOgaHMgsrU1UDl5wuD7OVi9HNwsBwXA== 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=IzMHcWQLwYjfKZ6H7eGpUqZOzos98KPjiKb3gCvpIlU=; b=RkcdGqf/tIkSujX0E91SAylgNeJIvp7t7igyVwR0yQ9JIsD2gy9JyhTO5YXLlbNyqAwy+ur6r1tirQRdIl6NNwVIQxP6U1clyHB3P3XkOl4EQehLnSXPGIW4PD4htNbqxXmAY6wcIJr4XeCIBwvN68Q4gxJ293oZ7VCjjNd9rPZjzHtcWFnyTOPDDUc9E0SOgGI8Sd8jTUBzwtypwl7oX0yk0WNl8F+RncKwrHo1wMf81ffIq4QQuk6/3TpJemI/H79lkw0mLyKGH2lr533bRlnsWZTHBts1SvClSr4bLwstSebqPv2lKHps3f0zkvLLPhrEGaXPDOa5V0eaiYjgNA== 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=IzMHcWQLwYjfKZ6H7eGpUqZOzos98KPjiKb3gCvpIlU=; b=rTxwKahMekKLUW65Ylfpe7dBo0CLY3flIILfoZ2INe0b1A9i4M8gPDKfTndR0AiKNaVnMymTOaWAYOvUOIZu3ZrDslysAO+xLREtNRXwDXkTRIy95FW7QxnXDp1o1Ao4Ab0oEyVNaYCtdt52SKIulOpl6wwj/N2bSRy1uqN9W7U= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by IA1PR10MB6026.namprd10.prod.outlook.com (2603:10b6:208:38a::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6043.7; Fri, 20 Jan 2023 16:27:25 +0000 Received: from SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::7306:828b:8091:9674]) by SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::7306:828b:8091:9674%5]) with mapi id 15.20.6043.005; Fri, 20 Jan 2023 16:27:25 +0000 From: "Liam R. Howlett" To: linux-mm@kvack.org, linux-kernel@vger.kernel.org, Andrew Morton , maple-tree@lists.infradead.org Cc: "Liam R. Howlett" , syzbot+502859d610c661e56545@syzkaller.appspotmail.com Subject: [PATCH v4 06/49] maple_tree: Fix mas_prev() and mas_find() state handling Date: Fri, 20 Jan 2023 11:26:07 -0500 Message-Id: <20230120162650.984577-7-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.35.1 In-Reply-To: <20230120162650.984577-1-Liam.Howlett@oracle.com> References: <20230120162650.984577-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YT4PR01CA0098.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:d7::15) To SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SN6PR10MB3022:EE_|IA1PR10MB6026:EE_ X-MS-Office365-Filtering-Correlation-Id: 2ead38aa-b4f5-4c7e-425f-08dafb0336b7 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 9PFhqMldtaEyKCykFiRXWHP9eKE8r3903eIOvsQI4iJg8Un5ebvBHA1O9zqV3V3aUUnQ5X8Xq4DwwXvr5330CDMBu4qrGb09MkhyPfEiZ4WPnBcTIKnbE8oZ2TrffMUY+m5RKPHXenPcXprqjim96OuvN77Kz1q6aDFEmBlN+/VVlZ9MgY0RJInzv4nPx9hP3N/lNuIt/+axMyqmTULA4vOKsFyOwMHYgz4S/00ZMrRuCdflpcTSpsCg3dGJX8E2TDJZ5FDwCQVxvBbEoIv92ofj44Jhsm1+V6WLvT2z4BOUM1q+1yyaJvE0BKbXoCJ47uqpO5vWMw9J7ncKOjtJ19sjRFdpDFEAOzpI01unNDROvxT3CjXD12TmUSn96nGgFPMFqqzzWrf/Vg4VR06J8Mbo7m+SXNbRiUAQBRDDXRov7YX7nyx/auNEKXcIvG8TDjDJpliKHT81/0LJs4tIvYgamwoxoHLl5eFfx7g3VtIvDb4bpTgxoEWWH99EIhBPvB9IaVbqxv0QkeZV+b8l+N94mLs9wk6DJumrWVr/fAl9T85BwQOf6gBtoZcUAyUndVbElGa6Km1S8MIbNCT77BC3BHzzr6EkZRgXTmeiHsDeckZT2nHimrvuA2sOzyr2gFZRC6kfeCvfqd2Id0fwHA== 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)(376002)(346002)(136003)(396003)(39860400002)(451199015)(5660300002)(8936002)(4326008)(66476007)(66556008)(8676002)(66946007)(36756003)(6666004)(38100700002)(6506007)(26005)(6512007)(186003)(2906002)(6486002)(478600001)(316002)(2616005)(83380400001)(41300700001)(86362001)(1076003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?Z0QF/GQXpobJ+q6JqSR9VVsmQmz3gsk3JdtQ1gK32XkswU2+hLWMf9UHd4ye?= =?us-ascii?Q?PU65DXwafgAlgXT86fIkbFm2hhWBaLvOK/ghbeJ/iy9yZkuL95U8rbxyWdFs?= =?us-ascii?Q?91JhxAlUc13JSuNplpp2+YHWSEjZC0agROtvxtWI4Jg0+aLSZBszD/1zNW4F?= =?us-ascii?Q?t1jt8OivlpECUOgXZ3jXXJirH4kH/gnhhUora7hU1F2HwZm3GtXigYN4em1G?= =?us-ascii?Q?WyGntvg87wK74sYo+5Uhfo8J3fdgVlJ30eziFhMuuzQggaEuY48wYHT2pBBY?= =?us-ascii?Q?Avd+MnuhsBgYRr16e7g1uTdlIVMR55dPndFiHKBHJtg1VvwZYIbsOf0ABvV4?= =?us-ascii?Q?LiWYpZhqEY7GbCmOmNMHy3Rpbes9RdY467Y7kIpF0uz9x0KGn+wxS8V5vpoc?= =?us-ascii?Q?FSwwsF9NUhOMiO2A6mczfVTQOYjxJ49KxYN5hqS6Z9uWtls/KMSPuvjUOnJs?= =?us-ascii?Q?0M+opkbUanXnSSWHpHkti/ES7CARUWaJji+OkmAPINk3j/qn8sSa/aQic3jq?= =?us-ascii?Q?PD8d1f3+g4tSM06uvkD8OtdaQ8gnFSJPizRJqmaqWLTZdSWUljPkH6TQOy4Y?= =?us-ascii?Q?WFIuHOWov0RPcYj1xe2r1xORQPN0HbbEPQ+bOKfy9Lp4ESwM0xAEuCUYhW3j?= =?us-ascii?Q?HMkn0VMcrqucT1OegZBmcGCU9vPB57+tP7vLgsX0CE22NAfPjzQNkNxsninr?= =?us-ascii?Q?uDHFw04LvRcFRVk0HRA0xHR/pgJZq0QUXv4M1nGVjJLwBY2gI7Gxs9lx66/R?= =?us-ascii?Q?Hh1RI+wdL4yx7h+oKcmfqPE6qV3PgVp/KsQSlxASWYK0YNVXyW2PBKarpKQw?= =?us-ascii?Q?ojfQPk8bEgfnAwQxAotWfzxVTcDLqCfwOKXEEGx8lzwfzkM+eunN1swaoNma?= =?us-ascii?Q?25QkJquc+Ig9EZ4qXKlfuXKXYWo0gCM54bgguKgbSgDWDgKSP6/i9GFK6Mp+?= =?us-ascii?Q?TUy3J2OZlYxNSRVG9DVP7GrvwKI2euFLpYHVsbRtiUI3dgpwUzPOSD2QtDv1?= =?us-ascii?Q?MkuxYKfcLuDxBcv0/hJFVigoh3L30RU9dZo2/sX4mDiRjdrGICOwOuP5BOko?= =?us-ascii?Q?JpAHI0HaNgauZN9O43xtNvm8HC/z2A98ctN/5COlJfBcwdqflfZRyVa8Gb3c?= =?us-ascii?Q?bz2vKcVKlpMFSqNiN2x3O5tdMawVBpTnGnOOsHFnPD6k3K8wenC6sROYzkFR?= =?us-ascii?Q?DqMWKJpgvIzduczOSGLGWd6ZmGX8SD7/F3R7rOMkcatXVu8owAaZ8gePkDfu?= =?us-ascii?Q?7kQHP6wX7lFa4adNOiBF5Cf4jDi5G+KV4jr5zxV/50Lkljoag4cfjn6LYha4?= =?us-ascii?Q?sYrr9KmQcSnI++LdJvd5W8403mb9Q83OGAKPV1F7aFLSfjNlBnfw+oOgqUtB?= =?us-ascii?Q?2xj0cQgIB/MNeZCRgvrgw2Df8iFNmABTsExw3RfJWCiR/4FcvP8fftrS4kq4?= =?us-ascii?Q?1Sh9xY4p8TMyEuCurUaURQ2ewvG0WGtpuqmchoA+EIQJ3OPDWLbOZhSuNYSD?= =?us-ascii?Q?ZPo/OEItLtGLv0sFfs0dcpGA11sPLK6RcXWmddp+eHses/Ucbyu6xKvnFcSV?= =?us-ascii?Q?0ooFcHcRVJE3Qm9jkJau3WnCE9zHA7J0I1NXS4F6ammLKw9Nsm+ZGPQmcKlG?= =?us-ascii?Q?UA=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: =?us-ascii?Q?wM8Tol2Y09cVvyxkbpjYgW++Zo7JfZA+rvvwFKIx/D3lTyQ9Z6kfeRn26G1o?= =?us-ascii?Q?5wYeTysys4z4xR6CswhHr0QRLSCmIBwDv4t7Tf5TvcyXMShmFd/dCNUcnLqq?= =?us-ascii?Q?w3RKlvVqThoGcViI51BBzV4gU0OabBzBD5W+pmt9OXJU86gzFfFRU3QMvsoF?= =?us-ascii?Q?T7heJWbtePwqv5VQ41/qZtlMDFjXtSMfvWRmg/C0KMM+V5ocdWq41mNI+OTQ?= =?us-ascii?Q?kEPA8I8ashlT13VVQAqR+3/u4hr1i1pEgI9Y2VyZVe+a0KVeMyNFZ61zt91O?= =?us-ascii?Q?M0xy89ycMcpbiud46NpLJ77UejlLIBFiojx2A5BptqNjhBUvdFNH4xiHhSEk?= =?us-ascii?Q?Ogzj5x5SinIsiPtbEHQl12UVoZIrea9uksHdN19X5dA7sFAYUO0l88JkVgBj?= =?us-ascii?Q?7GcNdpi241qO2Jkir/l6PdQXRxQz+e1lxqYSY1wR49wZwqB6nQBVf519CvMN?= =?us-ascii?Q?ab5eQ3OMtudGlI0T07SUpPR+EsQaojcL0YNSC5NQi3OuVUe6If2petWXHRwb?= =?us-ascii?Q?KKafLOgcN114et24xgYd6Pq5Bi8C8LI2fZNL+IZtMKK1KKMGTUzTPHVhwg0Z?= =?us-ascii?Q?ghMHVgQTfmAqxssgG/y2eNsTyCtI2ym5TA29daUf9YnGybgP0o3OAcPnXkbI?= =?us-ascii?Q?ndUB64SyajGHCysIqKuDIERoD06UqXEG0HnLQZGUhMv/0UmH6CGFTR7kYu+A?= =?us-ascii?Q?yLOg2K9O78GVh2AfQQgaLXVIsxnpHjkc1wfWVTZ9c5A1165FAGi58sQmYLrg?= =?us-ascii?Q?CIoijGFb+q0R+FrJezugiVPoMXpP9zO1mIQGt56Nv4EQWpecHxkssPf8DzXH?= =?us-ascii?Q?pZ1XC1U627HvoBWIz0ZknuMtysikdugIAJZgO6u7GEc9igf9w145SB6QrX22?= =?us-ascii?Q?lnpJ1ryKl7KwJZiyK0S0HfIsB/NugGOzEV4zgy7R7EPifG4TY6kY/zdy4/3Z?= =?us-ascii?Q?ymurAG4lwDlKi0ZQYLqoOQ=3D=3D?= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 2ead38aa-b4f5-4c7e-425f-08dafb0336b7 X-MS-Exchange-CrossTenant-AuthSource: SN6PR10MB3022.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Jan 2023 16:27:25.3893 (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: mHBivq+fUjfw3eZcoXHW+G182ocFZlM48EkMLMikJPkiAx+QHkH/IW6ISb7PhjofPKzaQC+UwgDgWkdAduEB+g== X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR10MB6026 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.219,Aquarius:18.0.930,Hydra:6.0.562,FMLib:17.11.122.1 definitions=2023-01-20_09,2023-01-20_01,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 suspectscore=0 malwarescore=0 phishscore=0 adultscore=0 mlxscore=0 mlxlogscore=999 spamscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2212070000 definitions=main-2301200157 X-Proofpoint-GUID: b4pExbaDn3pZilN105Jl2hc26xDZJwXz X-Proofpoint-ORIG-GUID: b4pExbaDn3pZilN105Jl2hc26xDZJwXz Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" 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 14ce355e4149..43bbf1906571 100644 --- a/lib/maple_tree.c +++ b/lib/maple_tree.c @@ -4844,7 +4844,7 @@ static inline void *mas_prev_entry(struct ma_state *m= as, unsigned long min) =20 if (mas->index < min) { mas->index =3D mas->last =3D min; - mas_pause(mas); + mas->node =3D MAS_NONE; return NULL; } retry: @@ -5918,6 +5918,7 @@ void *mas_prev(struct ma_state *mas, unsigned long mi= n) if (!mas->index) { /* Nothing comes before 0 */ mas->last =3D 0; + mas->node =3D MAS_NONE; return NULL; } =20 @@ -6008,6 +6009,9 @@ void *mas_find(struct ma_state *mas, unsigned long ma= x) mas->index =3D ++mas->last; } =20 + if (unlikely(mas_is_none(mas))) + mas->node =3D MAS_START; + if (unlikely(mas_is_start(mas))) { /* First run or continue */ void *entry; --=20 2.35.1 From nobody Sun Sep 14 14:22:07 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 662C4C25B4E for ; Fri, 20 Jan 2023 16:28:04 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230025AbjATQ2D (ORCPT ); Fri, 20 Jan 2023 11:28:03 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:34028 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229975AbjATQ15 (ORCPT ); Fri, 20 Jan 2023 11:27:57 -0500 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id AAAB46E40F for ; Fri, 20 Jan 2023 08:27:39 -0800 (PST) Received: from pps.filterd (m0246631.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 30KGBZwC029948; Fri, 20 Jan 2023 16:27:32 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-2022-7-12; bh=CIiCBeNDMKcdKFYj9W01eSuSwwcpL5z0QlNg4Wg5P8Y=; b=tOZEjld1qBVjri3Po5cLTvATiwFrLgPwrAEyeJClehZwzKKdUvzGTgt0Rb+lmVKdcVcV O+824KhHwdR8ZM8G74sXO1S/p0qSzn4Rkghzfeclljg/XScwgwdrbsK8nky3WYfAVRKi pzeV3IjAQZnPYj4r1B1tSeerwsT3W0Vv29gfz/Ll1XMimIJ6Ine4T5y3vZU+BLeu5m7o CkhQDCbfAqw4DsiClkBSQM3DaO+lM8V1CTFvZ7TA0r5fY/3MTLxe1bZlrKrFHhDJmceu uEi2V2r84eaquNgGR7yY4zxrUXRs6MYPEfhi33TMuJIWIHkw2EkT8vh+yxDkTKHfXyFs jw== Received: from iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta03.appoci.oracle.com [130.35.103.27]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3n3k6cd3cd-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 20 Jan 2023 16:27:31 +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 30KGRStd013513; Fri, 20 Jan 2023 16:27:31 GMT Received: from nam04-mw2-obe.outbound.protection.outlook.com (mail-mw2nam04lp2175.outbound.protection.outlook.com [104.47.73.175]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 3n6qmfax5t-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 20 Jan 2023 16:27:31 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=hI7FZjrhM6OvgFVRkm9IPmH31W43Oet47HcMUm4J2GxP2kHGWtLnQN7OOv3ZQxJrCJImHwkX8wtGXoSER01Ea2N8OGWSgXCNZGqULIkdvsvjYlTf8eGhN42yF42ZDWfA8djUZGOxx4UqqaPODsIcNAi/b++iW40Vri2RFn3RDpCnSKZmnBCd8syy7++VlGRfTBjy/bsvgrhEfexaJyKqpHkVLZ1Xik+2yUdRJ7peejR50LW7YiVnoNCLlGv/GCNBbZxJLk+ZHiXK6eEiqT73QORF5kU4mnv3GQbWNT+PyAT7PVmmcJrCQQAUEKlDPlfOaBotPAedSdNYsjPg7FvzlQ== 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=CIiCBeNDMKcdKFYj9W01eSuSwwcpL5z0QlNg4Wg5P8Y=; b=Fjbmwa4BY9MA4PNNDP+NugXxoJkB27cCeh6ei9orU8SsdRyYO389AuxitPOhsl7cdCFVfhnQJCS7rVFW8/26r7fQN+VcCCKIGkcRCe4gqyQTB6mkzy6lGeywgfXAVk7b9ez/Dedpskh1v0ljLUReGcUgnqWr61HS37InFtL8rAn0Xe3HZmepD4UjTDJ389fNIhGB4ra0Ylei+uKm8c6bB8DWfABv4uJIxmZmU7Fv6s8TkaxdE/NV+LVexMH0XJiPMK/DTBi+wK5q0o0gLO53cj2hdEL5ZJx7L1aCjt1a8CoKr9AMe5Zwbvm5XPNKXj7LTKtM2wRFdY+U8ysOumdzfA== 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=CIiCBeNDMKcdKFYj9W01eSuSwwcpL5z0QlNg4Wg5P8Y=; b=ZIMcV+3BOHsXmYO+eHn3cQ+WFqj4abiavHMWU3N1m0am9VzTveNpmMQ5eLGtk/0ze5MJLvUEvkEpRiJtAxT8l6mRq3MLgB5sF8lBuV5R/O0RvlSFz3N9v4tnaZL/4uj8xPIPSAkoB/ldm5pTEurwVMQlMp9X3T9i2C6U/1NSvEI= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by IA1PR10MB6026.namprd10.prod.outlook.com (2603:10b6:208:38a::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6043.7; Fri, 20 Jan 2023 16:27:27 +0000 Received: from SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::7306:828b:8091:9674]) by SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::7306:828b:8091:9674%5]) with mapi id 15.20.6043.005; Fri, 20 Jan 2023 16:27:27 +0000 From: "Liam R. Howlett" To: linux-mm@kvack.org, linux-kernel@vger.kernel.org, Andrew Morton , maple-tree@lists.infradead.org Cc: "Liam R. Howlett" , "Liam R . Howlett" Subject: [PATCH v4 07/49] mm: Expand vma iterator interface Date: Fri, 20 Jan 2023 11:26:08 -0500 Message-Id: <20230120162650.984577-8-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.35.1 In-Reply-To: <20230120162650.984577-1-Liam.Howlett@oracle.com> References: <20230120162650.984577-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YT3PR01CA0008.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:86::12) To SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SN6PR10MB3022:EE_|IA1PR10MB6026:EE_ X-MS-Office365-Filtering-Correlation-Id: 799bea2e-8708-4b52-1296-08dafb033875 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: I1cZ/FkjktXDmvpl+OJRU+MY3duVjmWoLbRXEaBEzHjykh7Hoee4FoXrvJQoupPU0BKTznTF9ieQx0xiDa45PS+4YX10yAsB2fCBLOzZjFG43TFQa5F4hP0HLf1PDfLG5S8DzLZvQdE1YxyIieremy1mEDLqkmuudHHlSJvONiLmYu4U7qbtWTTG9L0jmu7xdNl01yD7YbfhqqfEFiUpHcYFwez3/xd65ULEWIIbmLpTM6RDjnCNKbejj9H/68LmPDrKQWxYz1w6V9zRf0DAMjwCpJcqyFI9YybC9rw5wBA6P0AeNl//wNL74pAEgB1CE67Nc2xqqMMsxKR1iq6/bj7yJA3ys2slVRCXyZ2a6YMggZTzqFgKf5zo8yjgnBZ3pv3sgFQenVK76xlKyTjz8d0GVMAqprBeflN1diahtLywneQayDKaVhtJqFV8G3IIqxqh8WlrbxODG0MhP6vn82w/lrTJaIVG+xS9X38QqwObPLZLDjCjlo5kmIyzewFNgXRVmy/MZJqXiwvQvLbV5lJ1+KS+TKXhUlT6NpSgOMUZlIQsINSlTuxy/F5jAImDdcrXkz/9nTOwu8pdFy9kgDtLwGRiy8Y7mG6kJd908zaZ2Qj+15NsxmeOzfN6H4HMdUxpIwZKxbzfDl2HdjKY4Q== 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)(376002)(346002)(136003)(396003)(39860400002)(451199015)(5660300002)(8936002)(4326008)(66476007)(66556008)(8676002)(66946007)(36756003)(6666004)(107886003)(38100700002)(6506007)(26005)(6512007)(186003)(2906002)(54906003)(6486002)(478600001)(316002)(2616005)(83380400001)(41300700001)(86362001)(1076003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?tBcFc638iXUIzaYAC8OwmP/KoVrcPixXbgaz+xT98auj1vUZjDk+NyCE1SP2?= =?us-ascii?Q?2YFQcFMbaOMszMjpa7Z/uztoykROt/YoSOxwmnsghyn78mEvBs1Uw+mM72mj?= =?us-ascii?Q?qxrn/yuKzyLldWQO7i9RxnA9JZPMkbRZIdJpyjrVNNCSUfHa5J1kfBSmFXe7?= =?us-ascii?Q?GEWTW1Pt7MSA5UwCbWY+06vSoreF16c3PizhVBYtVik5QdWObCbe5EY3l+wu?= =?us-ascii?Q?mKu4W4PgptUHc1yqJxIp/VYzFZDBs3ENAdF2dYmgMIuAefOoA/mfjMONN2Yi?= =?us-ascii?Q?R8VygAoOn9fJb8/5fnj/e7BV28FihrQHY0PdkZyXbrK53P2jAhzJU5a+s3KL?= =?us-ascii?Q?iHbK9xUY22YYukkO0dHPD9adbKiEaz2D7VEp1+IgaGlxoIIvkrdYG/rnr2Q1?= =?us-ascii?Q?6gkxkMtZCv1dW3uaTRWE25FHFyQ3u0x4rqKg+rmLbUTcq0BVz4cDtWS9duVA?= =?us-ascii?Q?IlaVLIX50hznTlMxfbhKzcH4zqUGdQ/CQ0Bs4mxKSiVEEHo8KLx15uS28CY3?= =?us-ascii?Q?l7N7w3StxB7tcig4PK9sMmjqz+2+OL1NbHaN0ua1XXyWI4oio6yOXqCA/wk/?= =?us-ascii?Q?xcxR3m9ikbFmki7jGRl66WLHMNtRU53t9bxEJWtqr/3pyneq1f0GtDki8d1M?= =?us-ascii?Q?xdrASi9ItEb+/0kRoarcJ20ZbRr1nOsnmX1w9wdRduua2gIcvyvxk796jKNT?= =?us-ascii?Q?qnfFqLVtbPRnAt7nLHVPT0yf0BGZK1lA7LlpPEhOwbLGCBnPciDDaMcKowSZ?= =?us-ascii?Q?JWRFYLie88YvIx5I/wI5dnydR4PfmaxqP8RNhlCyo1lPQvIaqRNM53L9BAY1?= =?us-ascii?Q?xOS3FrJy+0S0bkEx93AQNFWmJCCKgJ3bnPBmIcVIdhAGb8jjEcuvshqJiOCK?= =?us-ascii?Q?3u9lEqZ1wNDTs9hwMQN32ATsdU/gsqUWd+SV7jWV1XG0DWI7sW8YnwST8AOG?= =?us-ascii?Q?RvpRSdRYCe27dMv8qrUdBtWc7s9ZrhTahu9ywucPi5mHMgpdvhrbVk6VA4YF?= =?us-ascii?Q?vboIbmwIYT9eG4z8KFBifAM3tCwrXmdLro1juSZ+NX88oOlYz7HzrhQk0N8+?= =?us-ascii?Q?SynsdLxRzL9Ph4mMGz4115E9u/rEKx+73OBtQu8cj81yi3WvKa89Jix+NfWx?= =?us-ascii?Q?crq97izk3bwE70Hy3eER0OI3TaAU3rnH4r+9av4+1Uysf6AqbwjWM9mtjP1p?= =?us-ascii?Q?3B/NQN8GfLpAkACArp8FkALeiQjtk5XDatJwe0RpM3PURrSr+QTNh262gp9+?= =?us-ascii?Q?CgPcFCGxK7yrg1CzJBwErHE1Vd3Ba0zWVW1Qjs3dQyZG4lJ5GGDIlMskMWzk?= =?us-ascii?Q?N+6iUmR4Shdq4gKcuRFQ9VJu0QDoV3jDBW6KsAJ3YQwxXa2aj0qdRBRsdQm4?= =?us-ascii?Q?ciQvXecIfC03LQ3MBVjbfCCbhxaLV2nCt21J/Ne/jE6F4lnCvS6GJ6bLadek?= =?us-ascii?Q?X8VhqSL9in2BHoGOmN0d2xH2b4sG8Cefw2PuZ1msymIdBWNhYAX34oGuliDr?= =?us-ascii?Q?YNRxqk1KQoToZnGu3FkJRQIZd+jPzMKoTZaGwLI1ALVkR8x3npfmLOmWLQRp?= =?us-ascii?Q?8eJG03gCZsUFu2yjtfQycmIeGTSypXVdoCXRhKSGuXrjg9nhl7z/ad8I7YeA?= =?us-ascii?Q?6w=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: q6F1unTc2EFnOxdI6CFyI77grsaXW/nO367iyVOyvkuVsDdJcpDgjN2eFFqlnd8laj7KuVP0KnZxpBgGoeJE+AsWTlHCIUxbrw34qXrdHoSGI1i/hD/cg6K6mrGC1N4H3D2ursOY1WfoamAfhNS5BzczcUIqjHEy29i91KEAuIvJfLpgcCJEJShFmfqjB67TcJwQlz9FFEsS/kt7ytt4KlvMdJqMJ0uQiCnfa34ooRIJhv1UrCG2j4cnxMiKb1wmjcd2bh/UOWax3v/7yClqXMuR1zCP3vapR/gVrIZGfELxFJ2ZBl7CKajsFcKBxqDeFxc+iJjcr8vEqp6PTwMS1lqRRU+59xNXytpRmcKeHXGVUX61rN/7fRHBVpkCdcPFvIEci2mj/nvUFmSLWhq4EQQqAxLxQxPis2hu5gfdLbHn2D9WkDuqkUDrUuwwrR6k+LIHNsdQE91+DONr3FqXLuDSsJtQUFvxv2ZhW/wCCfw5MfBk2H14X+ePYGbpV/FW1ZZ7dkpBAqokZJ2lBw8JGxVnkipOK6DJP7Skgsug+LdqK7+mbM0HAiT4NOWee4trhR4ghr8ks2nndBkYAEJdQcKHQkTav2usujZe/HhLfM2TDHHbt0+MSXwcH8HvzqOmzjie07wUnKiEbHqz2CwMknr400qaxXjrQrY8OCfmQBZFpSalfxsgCxa4LoC8ns6WLHpXZeh1POGnGHG9yxchkqPEEA2WqSu1nJGRTadCKENOCIDNY8ZHUddaD/rqSwNTwyq+b/PAwTVV0PtF00LzgFBnJaTlFhPSNHcvQXPz7RJkmxAOYFIFLZ6ER0QUdx5xRv1tMp4bt9N/B2q096RrD7p6CPKyFqDiUv9x0xp/TRRXlJUQJAlWs9Nvorb2Fd1GWee/H7phFy3LLeWRXSqkLA== X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 799bea2e-8708-4b52-1296-08dafb033875 X-MS-Exchange-CrossTenant-AuthSource: SN6PR10MB3022.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Jan 2023 16:27:27.7954 (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: GviPx8ERRn5iXh7R21T74a4VrJw/A5j+L3j5FX08UogMcUdzBN6QwpCM6U+QMnrwdb46uyc5RWzSvbOF9OlcEg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR10MB6026 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.219,Aquarius:18.0.930,Hydra:6.0.562,FMLib:17.11.122.1 definitions=2023-01-20_09,2023-01-20_01,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 suspectscore=0 malwarescore=0 phishscore=0 adultscore=0 mlxscore=0 mlxlogscore=999 spamscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2212070000 definitions=main-2301200157 X-Proofpoint-GUID: WUOXQHQraippjWLIs-tSAnoFr9YuRBvN X-Proofpoint-ORIG-GUID: WUOXQHQraippjWLIs-tSAnoFr9YuRBvN Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" From: "Liam R. Howlett" Add wrappers for the maple tree to the vma iterator. This will provide type safety at compile time. Signed-off-by: Liam R. Howlett --- include/linux/mm.h | 46 ++++++++++++++++++++++++++--- include/linux/mm_types.h | 4 +-- mm/internal.h | 64 ++++++++++++++++++++++++++++++++++++++++ mm/mmap.c | 18 +++++++++++ 4 files changed, 125 insertions(+), 7 deletions(-) diff --git a/include/linux/mm.h b/include/linux/mm.h index c9db257f09b3..b977a90d9829 100644 --- a/include/linux/mm.h +++ b/include/linux/mm.h @@ -670,16 +670,16 @@ static inline bool vma_is_accessible(struct vm_area_s= truct *vma) static inline struct vm_area_struct *vma_find(struct vma_iterator *vmi, unsigned long ma= x) { - return mas_find(&vmi->mas, max); + return mas_find(&vmi->mas, max - 1); } =20 static inline struct vm_area_struct *vma_next(struct vma_iterator *vmi) { /* - * Uses vma_find() to get the first VMA when the iterator starts. + * Uses mas_find() to get the first VMA when the iterator starts. * Calling mas_next() could skip the first entry. */ - return vma_find(vmi, ULONG_MAX); + return mas_find(&vmi->mas, ULONG_MAX); } =20 static inline struct vm_area_struct *vma_prev(struct vma_iterator *vmi) @@ -692,12 +692,50 @@ static inline unsigned long vma_iter_addr(struct vma_= iterator *vmi) return vmi->mas.index; } =20 +static inline unsigned long vma_iter_end(struct vma_iterator *vmi) +{ + return vmi->mas.last + 1; +} +static inline int vma_iter_bulk_alloc(struct vma_iterator *vmi, + unsigned long count) +{ + return mas_expected_entries(&vmi->mas, count); +} + +/* Free any unused preallocations */ +static inline void vma_iter_free(struct vma_iterator *vmi) +{ + mas_destroy(&vmi->mas); +} + +static inline int vma_iter_bulk_store(struct vma_iterator *vmi, + struct vm_area_struct *vma) +{ + vmi->mas.index =3D vma->vm_start; + vmi->mas.last =3D vma->vm_end - 1; + mas_store(&vmi->mas, vma); + if (unlikely(mas_is_err(&vmi->mas))) + return -ENOMEM; + + return 0; +} + +static inline void vma_iter_invalidate(struct vma_iterator *vmi) +{ + mas_pause(&vmi->mas); +} + +static inline void vma_iter_set(struct vma_iterator *vmi, unsigned long ad= dr) +{ + mas_set(&vmi->mas, addr); +} + #define for_each_vma(__vmi, __vma) \ while (((__vma) =3D vma_next(&(__vmi))) !=3D NULL) =20 /* The MM code likes to work with exclusive end addresses */ #define for_each_vma_range(__vmi, __vma, __end) \ - while (((__vma) =3D vma_find(&(__vmi), (__end) - 1)) !=3D NULL) + while (((__vma) =3D vma_find(&(__vmi), (__end))) !=3D NULL) =20 #ifdef CONFIG_SHMEM /* diff --git a/include/linux/mm_types.h b/include/linux/mm_types.h index a689198caf74..2d6d790d9bed 100644 --- a/include/linux/mm_types.h +++ b/include/linux/mm_types.h @@ -854,9 +854,7 @@ struct vma_iterator { static inline void vma_iter_init(struct vma_iterator *vmi, struct mm_struct *mm, unsigned long addr) { - vmi->mas.tree =3D &mm->mm_mt; - vmi->mas.index =3D addr; - vmi->mas.node =3D MAS_START; + mas_init(&vmi->mas, &mm->mm_mt, addr); } =20 struct mmu_gather; diff --git a/mm/internal.h b/mm/internal.h index ce462bf145b4..b4f66efc912d 100644 --- a/mm/internal.h +++ b/mm/internal.h @@ -873,4 +873,68 @@ static inline bool vma_soft_dirty_enabled(struct vm_ar= ea_struct *vma) return !(vma->vm_flags & VM_SOFTDIRTY); } =20 +/* + * VMA Iterator functions shared between nommu and mmap + */ +static inline int vma_iter_prealloc(struct vma_iterator *vmi) +{ + return mas_preallocate(&vmi->mas, 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 *vm= i) +{ + 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 !=3D MAS_START && vmi->mas.index > vma->vm_star= t)) { + printk("%lu > %lu\n", vmi->mas.index, vma->vm_start); + printk("store of vma %lu-%lu", vma->vm_start, vma->vm_end); + printk("into slot %lu-%lu", vmi->mas.index, vmi->mas.last); + mt_dump(vmi->mas.tree); + } + if (WARN_ON(vmi->mas.node !=3D MAS_START && vmi->mas.last < vma->vm_star= t)) { + printk("%lu < %lu\n", vmi->mas.last, vma->vm_start); + printk("store of vma %lu-%lu", vma->vm_start, vma->vm_end); + printk("into slot %lu-%lu", vmi->mas.index, vmi->mas.last); + mt_dump(vmi->mas.tree); + } +#endif + + if (vmi->mas.node !=3D MAS_START && + ((vmi->mas.index > vma->vm_start) || (vmi->mas.last < vma->vm_start))) + vma_iter_invalidate(vmi); + + vmi->mas.index =3D vma->vm_start; + vmi->mas.last =3D vma->vm_end - 1; + mas_store_prealloc(&vmi->mas, vma); +} + +static inline int vma_iter_store_gfp(struct vma_iterator *vmi, + struct vm_area_struct *vma, gfp_t gfp) +{ + if (vmi->mas.node !=3D MAS_START && + ((vmi->mas.index > vma->vm_start) || (vmi->mas.last < vma->vm_start))) + vma_iter_invalidate(vmi); + + vmi->mas.index =3D vma->vm_start; + vmi->mas.last =3D vma->vm_end - 1; + mas_store_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 335ba3df9898..253a7490fae3 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); } =20 +static inline struct vm_area_struct *vma_prev_limit(struct vma_iterator *v= mi, + unsigned long min) +{ + return mas_prev(&vmi->mas, min); +} + +static inline int vma_iter_clear_gfp(struct vma_iterator *vmi, + unsigned long start, unsigned long end, gfp_t gfp) +{ + vmi->mas.index =3D start; + vmi->mas.last =3D end - 1; + mas_store_gfp(&vmi->mas, NULL, gfp); + if (unlikely(mas_is_err(&vmi->mas))) + return -ENOMEM; + + return 0; +} + /* * check_brk_limits() - Use platform specific check of range & verify mlock * limits. --=20 2.35.1 From nobody Sun Sep 14 14:22:07 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 5A131C05027 for ; Fri, 20 Jan 2023 16:28:12 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230039AbjATQ2K (ORCPT ); Fri, 20 Jan 2023 11:28:10 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:34352 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230087AbjATQ2F (ORCPT ); Fri, 20 Jan 2023 11:28:05 -0500 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id D172D518F7 for ; Fri, 20 Jan 2023 08:27:41 -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 30KGBgYG011429; Fri, 20 Jan 2023 16:27:34 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-2022-7-12; bh=GjZeg7DdqxJGEQ3GVwz+oA8eJAbgDE9yxBeOU1FAn9c=; b=Ii0gnx9sIxb0+DR6hYDFqMbH9f1KtjhpdTYfTFVbX8U/g+JTZJkjahyXQaZYan1+jrEk ACCS9dvDtcJ15jnA5J6gHDa7AwYa66asM1rZ78cmM+xwG4y+jZ3bHSIhmynyFk7fJAT+ EcxwfR6OR9d9fHsxzjnmbPN7d2DPqKshTNH8NTbWZIW0BO2LFVzDgokJ9h4CZB/gU35Y NstJjkoi3hjlO8LLiagt2JJLvLfCVdR/UE/PwYG0eanW1PnXKDQwgiieVw1N8Eo8QnzE jWNi3MebHrKs/C3nMu9DAH3eBWJoEdKKKNxVc6lt34nkykOrG3JcT5UzbdUDJ6liaC/O EA== Received: from iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta01.appoci.oracle.com [130.35.100.223]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3n7895aqpf-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 20 Jan 2023 16:27:34 +0000 Received: from pps.filterd (iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (8.17.1.5/8.17.1.5) with ESMTP id 30KFMJew004631; Fri, 20 Jan 2023 16:27:33 GMT Received: from nam11-dm6-obe.outbound.protection.outlook.com (mail-dm6nam11lp2173.outbound.protection.outlook.com [104.47.57.173]) by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 3n6r2w1ey0-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 20 Jan 2023 16:27:33 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ZD3Ak8QbhknrB7Zi2MeBLksw/sMmQypTAad9kBwXmZkcsv1OFYvckoHOh+fU5xM0pD46jdqLmiJUxpNk6pp24tYU3UYbYnF3ZuIEl1b9nabzno9GNAlmYDgNkliQAqdfLqITq2wMcbnN4Ch2fgovezGFYnXqbuPDrrQr63csFkK3iMjCa3GHmndW+Q42/QwSKOGT0Kv6p3DNn3T6iy1eLnMZZ+GmaLK54RlIGrR+8/iWdzuNPCydwXHl3ztlg8Au+QGeABDC3B+3PjOsIbz+2fRp2C6NNy94uKzIxUhM2LFwnOdWTwgs/6TzXl35NvbRLQMNN50KbtVtMXLy1wepYw== 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=GjZeg7DdqxJGEQ3GVwz+oA8eJAbgDE9yxBeOU1FAn9c=; b=Yz3cKWcwpUKuoQVHehkQkFEDCPSOsc0V1m7sL9QgLQeafEcomzIWa7eWSle1dhojhewXFJyxk4Fn0PVey7UrpeAT9iSkJvb7l/alhGISG6r8u2uQlYxiPNxap5d0oEqHkwF2HmLzlOo0ANWV3nBtVRRCsZo4mXnEkk5qkNkVLglh7Oly4QmkJMT9+Eqw3V3qqriPm7FEPH/i36OxcNhsAERGtelpdoM7iKvlweJ6gKovtSM73GmAW3th8/SO1wr78k+m91VmCEsFQvPPT3TkcQ+rkPmNtuJL6Waf7CQkh0wtOG4Mmf1YWx9SxxHY6Lke4Af7e/xXbO0lHNjpNdKMZQ== 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=GjZeg7DdqxJGEQ3GVwz+oA8eJAbgDE9yxBeOU1FAn9c=; b=YvR3XCGFKtIJ9OZMQsST95aa81Cz23Wtu71n6Xt/r6W108+AnSL32uK4DZKYY4FlYhPtdkHJr4SItTokorih2Kj2F6OgdtTZoI/cVfgLF+YSFAWS/1oWlshTsI/Ew4aM+QG5J7rfJCSMKJ1e7btX6RRvnwRvLUBhpqtT7Kl5vH0= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by SN7PR10MB6619.namprd10.prod.outlook.com (2603:10b6:806:2ae::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6043.7; Fri, 20 Jan 2023 16:27:31 +0000 Received: from SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::7306:828b:8091:9674]) by SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::7306:828b:8091:9674%5]) with mapi id 15.20.6043.005; Fri, 20 Jan 2023 16:27:31 +0000 From: "Liam R. Howlett" To: linux-mm@kvack.org, linux-kernel@vger.kernel.org, Andrew Morton , maple-tree@lists.infradead.org Cc: "Liam R. Howlett" , "Liam R . Howlett" Subject: [PATCH v4 08/49] mm/mmap: convert brk to use vma iterator Date: Fri, 20 Jan 2023 11:26:09 -0500 Message-Id: <20230120162650.984577-9-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.35.1 In-Reply-To: <20230120162650.984577-1-Liam.Howlett@oracle.com> References: <20230120162650.984577-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YT3PR01CA0130.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:83::13) To SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SN6PR10MB3022:EE_|SN7PR10MB6619:EE_ X-MS-Office365-Filtering-Correlation-Id: 17ae89fe-bcdd-4fe9-9ac7-08dafb0339c7 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: NEfhQSKKUgvjMc9Xg2pAqfodCKyrO102MdwUSMQi4KE0HH266ieFOdo/4Ok/4T8bOoaonk5vCkL+zEAPP/OxFj8D6aAIt9lz3K6vUCyrxrTqnk21SCBrKbkfAfG+j3MtmgCi+47NQWjB24NZ6lgTsqNQOd1wIc0CnL7ig+vNtVfeehsmSy+zd+kweuOEMndoGG6aZnjd/0ddr9Rat1ZAyAAkmeD+gMWySNbaxSPlhCAX5/c7tDgzdLWCFeV7qk3sAGF1q/jpzO5C4C3gy61+AXfNWSTnPUFBbqZrgtsI8hP4I11ZCynD7TnIGMBOk5dJYwxPJdm4SxMUtbLjgnxguha/y+AUSDK/Ku5QjzxybiYwxap/Ho0YPyRLwL0+YvCHVgSebNhsVC0xtK/YzRE6QbpcvtRxJTsdyncpNe4J5+2av0QHkcVJ/sICWM6PSakTmyHuz8rkcOtNBqBdMpHbqxv1lTRoSUDJdyoSJVY6IAlECeoQIBI3lA0qxRFoV1UHm9XWWgwid6vB6aY5jAGYZNV85sevmfSWrUVyuoN9emPu9/lGpN0cAoQlmC07ZFU9JUsF+9IzyHpu3KwxTHR5y6uQ6q8vjeq6TGQTicQpgu0Q0I3aRlU4NNgkQD+8szaUvjvULLwXkaXaWo94ju1jZQ== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SN6PR10MB3022.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230022)(136003)(39860400002)(396003)(366004)(376002)(346002)(451199015)(83380400001)(54906003)(86362001)(5660300002)(6486002)(2616005)(38100700002)(8936002)(478600001)(6512007)(41300700001)(2906002)(107886003)(6666004)(4326008)(8676002)(66556008)(186003)(26005)(316002)(36756003)(1076003)(66476007)(6506007)(66946007);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?nl0P9UovOLC4amtzHCOIJPJXSZi5YoR7YXnbuJBtxpcQkWPBwiKyU7fTGlVH?= =?us-ascii?Q?OPEd1CE1VmA4YpdfpIYh6z+EQAhdXzYqqzPtV75X394PTVOxnHERd4brG//u?= =?us-ascii?Q?1pjcr3Q4Z3Kv4AcFvxRKN1DOE76oSlj+E1WsEhYIPd13TUKO7gkNc48QCbtm?= =?us-ascii?Q?kBteob9bcVJb5yjgQflVSgoVYsiy8SjVo0zeKhS4IcUBsx3SrvC/FK+FBYSz?= =?us-ascii?Q?RpboXZH6Gplc8xftjNROzbJvHaKc2lrWT9AZuxnB6llEJyDMbGbatbZpbf/I?= =?us-ascii?Q?B0qCnR6ieCWNC7Oho8uo6pac2qCWqop74/B9LvG04+4vQoSWPKc6mhLkY7E1?= =?us-ascii?Q?HEZWs3V5einkX1PYHAv9gFOwQ1jGEL2kdiMrAnlEB2iYwNMgoCOeHgUOwvTY?= =?us-ascii?Q?DkrJc5umRcdMDYdvPFmzRHggRqi8+NE3bTh+QmjyEj1H0NMbirVJClRMv6SV?= =?us-ascii?Q?VigcD1Cn+RTSDeYpT+KVXHje+gphw/aQMsJDVtNLLH1/buVqNuIyHLjexM69?= =?us-ascii?Q?ba52ce+A7U9bAkqDO74/CPbW++pNUqwRa23eVcx9FaMCNP1YUqrt51i4UHYj?= =?us-ascii?Q?Gm0An0wBuQu/Wl8qqkUxQVV6LFpVZ2CiSnEAVlZ720A03XUyTwXrwEjPuZ1u?= =?us-ascii?Q?/yKu/OfJ8SIPndkpHbmUCbKCZ+ZfLckTKDd7rfF/wu1eh4bvKGqPA83zXkcc?= =?us-ascii?Q?TFUALAB51bOGnraCJ8Hstuxg5Z0HRc74Fzj2Kzv6ieCz7Wahk5WPI7wBUJdf?= =?us-ascii?Q?RCkE91GNsCMNiUpTz7TEMYSmZVLzA7aRsYYPp+MOhww/gUKdgP+nRAk/NO9T?= =?us-ascii?Q?z3hWbqumeLbqI+En2rsA52LLGsp6LIzYgkeTy6v5iKU4dbkFgXDzPR3GA/ZQ?= =?us-ascii?Q?zmIyb+/JiUs5vStSP9zj3GbGnEP9UrjZbTkHk4vr5mU2QgEIP9LG7NWNJPPM?= =?us-ascii?Q?VjM8UoCh3l3/iHf/VIHEI5p8Pqn4ql4qPL8OVEf9SmhUXdRH0KfImlS3WDgd?= =?us-ascii?Q?hsmQ6m5SwRkUxfFpK7xNgHMIj/eJukj6Z0nccUEfYhFeZlIQph9b9lw7W/UG?= =?us-ascii?Q?IUt7QDvhTEubYNdK9E96fH54zPKyHyPtXLu2DrvSBXoSEGdPRzsmxc7H+z5b?= =?us-ascii?Q?KJot3AkzK8QWOzhBITxZtl+YL0k+4SRzNI94QsO903fZwchp0V1EvTdo+UTJ?= =?us-ascii?Q?9jxrH+W0VV3h8j0CWXpvtrQ1bgcn16LRcfZVnKkzZqCh/cS9+ifmSBTt0/ty?= =?us-ascii?Q?FFIPcAQqEy/k9ZdvQYYy9+f1P5K1NKyMjUExY/JvPBqWTIZljE6b7TRFOEdj?= =?us-ascii?Q?WASnIMfg+uSab1RkB5LepQxPIbIgYu3RE6T1iMJZnz5JeQbaZ+P845I5jrmn?= =?us-ascii?Q?BZdr+6h+HVd7c5Uq8pgyMviahTsx1BB0cns/AoFCaXrqZdxX0dsSGXOyCJTg?= =?us-ascii?Q?5n2dyb+4vfyW0GgkhqMBWiGteLdnc7aL9AmXKyLo7m2EjR3MkLSnssotlKBc?= =?us-ascii?Q?yukfAw5S58/JCyIIGN7S/6S3ach34bNW/5athvVF3EUNExoYW3/R2YMSIC4t?= =?us-ascii?Q?0i99kpmom7mrdevIV50fleGgpLjq6zSsW5G6HNaf3MJipYIAso5hCBoDhOCH?= =?us-ascii?Q?Vg=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: JBYXemFkIeCKQ85iuD2n6Q8WXn0TdFUlW7ltIMrt1dI72S4AtpYw/OK9ymWBz/MeWq7lecRDkhF8VY/4FhbncxT7w2mUQqgi2sRIoV3c1CJTcEd08d55IOKShlaI+WeTunTokNzf38z53BogevkL5qBlRPogyPUz5CPITZFK53Mk0LsKKXgIVFhp5WZmdfpprFasWD9vpbkeFH34CPCTjsdmNjkYfYUZQBomUx08UoQOGcW1FQ2bZCUz1EPvj5GS6MoywgaK3qErZS1QUc5DdfBAIuTuQphE2DLVHFgFoezNRs1WrHTEV+L/diUR+lsZUGecy6tZogdmD+X4wARRHH8AKd9XDe0YfUl7NwnWTkPpDbVehzIFV7cB5Jc0MTHAtPfQJje/fVRkgrPN0yuiKTdlFZbf0/cr+Op/z1hdGmlbYIvdCTk6QsV2OCaI0GNoj4FfEohNe90ac/ifr82QDwRQE3ricQHUntWgZRyUtK6LZy6fSwJQvdIja7qWs1H82GdIeMxB/7usB9a/JnCC1w5/rPLA2YCoapYzecdzdldos80u3K7uzEdschnE/ESdrNwUtijleomtIfVSkFWkzWT6rW18yxDRTNUBJrleUFrpX6zsBYs9+wTnAHe3Cg4lFgLCdPUzMvsf6p2oS3p/a3lOC66Q0DX2Cx0sQCzPvvNC+9dkmEkR5VhfDIBJSMCDkhmGGUgU+CnzliTdDLvzu4NJ0568ljbk2OH2ckFYt0HRT62jRAorMaW9HzsiPiT2aS8Dcwi+RF3Ket4PZfFB2rE4sfWiT94PkYU20/6hMIdllJX06jrB0tBn1aNfVGRFLls2O7RTQi5dX3VTd8/Y8MiG2vpiiVYlLcgzvCR4w8VG32pAvwytbuq2wl4e98gAkaxNL/hBw273y1pI+o8+vg== X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 17ae89fe-bcdd-4fe9-9ac7-08dafb0339c7 X-MS-Exchange-CrossTenant-AuthSource: SN6PR10MB3022.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Jan 2023 16:27:30.9514 (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: 5/i56ZZPbrM/UKq9ayPA+0t5Hy8umE9NAjJQz7Su/eX3wOS1oTnsnc436yWnfOrPe1jW1c8JTfFy0yTZQNOSWw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN7PR10MB6619 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.219,Aquarius:18.0.930,Hydra:6.0.562,FMLib:17.11.122.1 definitions=2023-01-20_09,2023-01-20_01,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 adultscore=0 mlxlogscore=999 malwarescore=0 mlxscore=0 phishscore=0 suspectscore=0 spamscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2212070000 definitions=main-2301200157 X-Proofpoint-ORIG-GUID: 0CbemzNU7bPB5xvjYMJD8GXu9tM3tYgS X-Proofpoint-GUID: 0CbemzNU7bPB5xvjYMJD8GXu9tM3tYgS Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" From: "Liam R. Howlett" Use the vma iterator API for the brk() system call. This will provide type safety at compile time. Signed-off-by: Liam R. Howlett --- mm/mmap.c | 48 +++++++++++++++++++++++------------------------- 1 file changed, 23 insertions(+), 25 deletions(-) diff --git a/mm/mmap.c b/mm/mmap.c index 253a7490fae3..e2ba9b094cad 100644 --- a/mm/mmap.c +++ b/mm/mmap.c @@ -180,10 +180,10 @@ static int check_brk_limits(unsigned long addr, unsig= ned long len) =20 return mlock_future_check(current->mm, current->mm->def_flags, len); } -static int do_brk_munmap(struct ma_state *mas, struct vm_area_struct *vma, +static int do_brk_munmap(struct vma_iterator *vmi, struct vm_area_struct *= vma, unsigned long newbrk, unsigned long oldbrk, struct list_head *uf); -static int do_brk_flags(struct ma_state *mas, struct vm_area_struct *brkvm= a, +static int do_brk_flags(struct vma_iterator *vmi, struct vm_area_struct *b= rkvma, unsigned long addr, unsigned long request, unsigned long flags); SYSCALL_DEFINE1(brk, unsigned long, brk) { @@ -194,7 +194,7 @@ SYSCALL_DEFINE1(brk, unsigned long, brk) bool populate; bool downgraded =3D false; LIST_HEAD(uf); - MA_STATE(mas, &mm->mm_mt, 0, 0); + struct vma_iterator vmi; =20 if (mmap_write_lock_killable(mm)) return -EINTR; @@ -242,8 +242,8 @@ SYSCALL_DEFINE1(brk, unsigned long, brk) int ret; =20 /* Search one past newbrk */ - mas_set(&mas, newbrk); - brkvma =3D mas_find(&mas, oldbrk); + vma_iter_init(&vmi, mm, newbrk); + brkvma =3D vma_find(&vmi, oldbrk); if (!brkvma || brkvma->vm_start >=3D oldbrk) goto out; /* mapping intersects with an existing non-brk vma. */ /* @@ -252,7 +252,7 @@ SYSCALL_DEFINE1(brk, unsigned long, brk) * before calling do_brk_munmap(). */ mm->brk =3D brk; - ret =3D do_brk_munmap(&mas, brkvma, newbrk, oldbrk, &uf); + ret =3D do_brk_munmap(&vmi, brkvma, newbrk, oldbrk, &uf); if (ret =3D=3D 1) { downgraded =3D true; goto success; @@ -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 =3D mas_find(&mas, newbrk - 1 + PAGE_SIZE + stack_guard_gap); + vma_iter_init(&vmi, mm, oldbrk); + next =3D vma_find(&vmi, newbrk + PAGE_SIZE + stack_guard_gap); if (next && newbrk + PAGE_SIZE > vm_start_gap(next)) goto out; =20 - brkvma =3D mas_prev(&mas, mm->start_brk); + brkvma =3D vma_prev_limit(&vmi, mm->start_brk); /* Ok, looks good - let it rip. */ - if (do_brk_flags(&mas, brkvma, oldbrk, newbrk - oldbrk, 0) < 0) + if (do_brk_flags(&vmi, brkvma, oldbrk, newbrk - oldbrk, 0) < 0) goto out; =20 mm->brk =3D brk; @@ -2907,8 +2907,8 @@ SYSCALL_DEFINE5(remap_file_pages, unsigned long, star= t, unsigned long, size, } =20 /* - * brk_munmap() - Unmap a partial vma. - * @mas: The maple tree state. + * brk_munmap() - Unmap a full or partial vma. + * @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 @@ -2918,7 +2918,7 @@ SYSCALL_DEFINE5(remap_file_pages, unsigned long, star= t, unsigned long, size, * unmaps a partial VMA mapping. Does not handle alignment, downgrades lo= ck if * possible. */ -static int do_brk_munmap(struct ma_state *mas, struct vm_area_struct *vma, +static int do_brk_munmap(struct vma_iterator *vmi, struct vm_area_struct *= vma, unsigned long newbrk, unsigned long oldbrk, struct list_head *uf) { @@ -2926,14 +2926,14 @@ static int do_brk_munmap(struct ma_state *mas, stru= ct vm_area_struct *vma, int ret; =20 arch_unmap(mm, newbrk, oldbrk); - ret =3D do_mas_align_munmap(mas, vma, mm, newbrk, oldbrk, uf, true); + ret =3D do_mas_align_munmap(&vmi->mas, vma, mm, newbrk, oldbrk, uf, true); validate_mm_mt(mm); return ret; } =20 /* * do_brk_flags() - Increase the brk vma if the flags match. - * @mas: The maple tree state. + * @vmi: The vma iterator * @addr: The start address * @len: The length of the increase * @vma: The vma, @@ -2943,7 +2943,7 @@ static int do_brk_munmap(struct ma_state *mas, struct= vm_area_struct *vma, * do not match then create a new anonymous VMA. Eventually we may be abl= e to * do some brk-specific accounting here. */ -static int do_brk_flags(struct ma_state *mas, struct vm_area_struct *vma, +static int do_brk_flags(struct vma_iterator *vmi, struct vm_area_struct *v= ma, unsigned long addr, unsigned long len, unsigned long flags) { struct mm_struct *mm =3D current->mm; @@ -2970,8 +2970,7 @@ static int do_brk_flags(struct ma_state *mas, struct = vm_area_struct *vma, if (vma && vma->vm_end =3D=3D addr && !vma_policy(vma) && can_vma_merge_after(vma, flags, NULL, NULL, addr >> PAGE_SHIFT, NULL_VM_UFFD_CTX, NULL)) { - mas_set_range(mas, vma->vm_start, addr + len - 1); - if (mas_preallocate(mas, GFP_KERNEL)) + if (vma_iter_prealloc(vmi)) goto unacct_fail; =20 vma_adjust_trans_huge(vma, vma->vm_start, addr + len, 0); @@ -2981,7 +2980,7 @@ static int do_brk_flags(struct ma_state *mas, struct = vm_area_struct *vma, } vma->vm_end =3D addr + len; vma->vm_flags |=3D VM_SOFTDIRTY; - mas_store_prealloc(mas, vma); + vma_iter_store(vmi, vma); =20 if (vma->anon_vma) { anon_vma_interval_tree_post_update_vma(vma); @@ -3002,8 +3001,7 @@ static int do_brk_flags(struct ma_state *mas, struct = vm_area_struct *vma, vma->vm_pgoff =3D addr >> PAGE_SHIFT; vma->vm_flags =3D flags; vma->vm_page_prot =3D vm_get_page_prot(flags); - mas_set_range(mas, vma->vm_start, addr + len - 1); - if (mas_store_gfp(mas, vma, GFP_KERNEL)) + if (vma_iter_store_gfp(vmi, vma, GFP_KERNEL)) goto mas_store_fail; =20 mm->map_count++; @@ -3032,7 +3030,7 @@ int vm_brk_flags(unsigned long addr, unsigned long re= quest, unsigned long flags) int ret; bool populate; LIST_HEAD(uf); - MA_STATE(mas, &mm->mm_mt, addr, addr); + VMA_ITERATOR(vmi, mm, addr); =20 len =3D PAGE_ALIGN(request); if (len < request) @@ -3051,12 +3049,12 @@ int vm_brk_flags(unsigned long addr, unsigned long = request, unsigned long flags) if (ret) goto limits_failed; =20 - ret =3D do_mas_munmap(&mas, mm, addr, len, &uf, 0); + ret =3D do_mas_munmap(&vmi.mas, mm, addr, len, &uf, 0); if (ret) goto munmap_failed; =20 - vma =3D mas_prev(&mas, 0); - ret =3D do_brk_flags(&mas, vma, addr, len, flags); + vma =3D vma_prev(&vmi); + ret =3D do_brk_flags(&vmi, vma, addr, len, flags); populate =3D ((mm->def_flags & VM_LOCKED) !=3D 0); mmap_write_unlock(mm); userfaultfd_unmap_complete(mm, &uf); --=20 2.35.1 From nobody Sun Sep 14 14:22:07 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 3314CC05027 for ; Fri, 20 Jan 2023 16:28:23 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230044AbjATQ2W (ORCPT ); Fri, 20 Jan 2023 11:28:22 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:34534 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229915AbjATQ2U (ORCPT ); Fri, 20 Jan 2023 11:28:20 -0500 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 96D1F85348 for ; Fri, 20 Jan 2023 08:27:44 -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 30KGBj3w011477; Fri, 20 Jan 2023 16:27:36 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-2022-7-12; bh=OqPv05vjnes8gnRFHpELhzz7iWgFrPUYrfEVVp1d2bU=; b=X50BlQHFu40ZI1kFLa+85XVGXpcAy56xc0AWGW4P7jX9Mzxx/n/wDLWnWKmbSYXIj8WT Rx5MFDJiAePMixYzbFjzjA/Swjnp29LhIyxl6I44TLdJtZJpubbfpRkgEg+khA9DIJWx J0sw3QtgNl2xEqeUtzrw68MECiRTQWHCqiuhD+mKLJ2kx4ZvPGaKbxO4cSUEDklVfc0o TOSjLzHXMci5JqLuoSJ4awsAPKy02fdTdo4mVHHoHXGzEXTNZFR1aJxD8UUDq+uEsIPc airWZUroFdu7Y3vfTbuHB0HtpIPaQgqRNGpUJ8VZOVINx8zQi2JS42tye+fnw4NU99m6 tQ== Received: from iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta02.appoci.oracle.com [147.154.18.20]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3n7895aqpj-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 20 Jan 2023 16:27:36 +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 30KGNsPc018698; Fri, 20 Jan 2023 16:27:36 GMT Received: from nam11-co1-obe.outbound.protection.outlook.com (mail-co1nam11lp2168.outbound.protection.outlook.com [104.47.56.168]) by iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 3n6quj9ye1-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 20 Jan 2023 16:27:36 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=XWym/S3n9o20a/nvmFOUQp5y7O5x+8wnwGxYg+OZD/QM0UseKMws/DSj1R13t5pnyr+FLU6JVkiGhLAGtWsPTyipJ5JDIg60QOQy3l80Er32LcxoJVezQwpm1E5uMPB2c96Y1EtSRMfrxYy/MxtOOlz1xdrNwFPMVi6nV8YoxAxwCjrqhz8vSSCGwXkeTVmg6GrIwDk34khey6IloAN5zc4KeYAy8t7HqqxkQX3mL/grsN6lmm0n/Q5MfPCh6ThPlgq1yAOU+4n8TIX5LUzl/b9FhAZXB8oaEIq3qYYRieCpeLa7TfgwN0Ci8zGf4p6XBDLh+BAdW88JzvKTMsqu0g== 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=OqPv05vjnes8gnRFHpELhzz7iWgFrPUYrfEVVp1d2bU=; b=gi8OTe0Ym9amUQhVlTG1q5iGTchuym0Ih+9WDuqQb34GRqTBiCausSSgRJmZa4ABjnfHFcialIjBuf1SvxUFGcH3FsyS14jPfC8f7XTy1t5FiKjI2fCHHXLIoqgGePR22MTowoAdX2+aMi0J4QjXXSmTgqIUm1rU1D6GF0eCm5k1aNuToLD+ed872/N3cCiv7K7rO2KR9CF7SA2R3edcuTqMYRja0Q+C4/UVhzFeoOAq8NX1EDWJW65Xt2SgaBMUjjilSPGIDyLe0NI/OgWUZgqvybKL7CEUOeAogjgyJQKZvQZHmPHlmdhPTq4qX6qLfxWdVffeepyeScxa1ni3Gw== 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=OqPv05vjnes8gnRFHpELhzz7iWgFrPUYrfEVVp1d2bU=; b=v6Tw6Fp6oUL96LuxtPhC6QQfq3OCvNQdj1RCZMAJea8TajgTrjP9/0cVvNt0xWYk7HoLuuUPFB6UlgZgA8Gl1R32JmSbftxtNKkI5KAiKh44LAT4zBR2vseHUXO+Kf5Nl6vW6DR3a1zTvdCiy6C6D1/4CU7ha/C/GpUepVQe4zc= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by IA1PR10MB6026.namprd10.prod.outlook.com (2603:10b6:208:38a::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6043.7; Fri, 20 Jan 2023 16:27:33 +0000 Received: from SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::7306:828b:8091:9674]) by SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::7306:828b:8091:9674%5]) with mapi id 15.20.6043.005; Fri, 20 Jan 2023 16:27:33 +0000 From: "Liam R. Howlett" To: linux-mm@kvack.org, linux-kernel@vger.kernel.org, Andrew Morton , maple-tree@lists.infradead.org Cc: "Liam R. Howlett" , "Liam R . Howlett" Subject: [PATCH v4 09/49] kernel/fork: Convert forking to using the vmi iterator Date: Fri, 20 Jan 2023 11:26:10 -0500 Message-Id: <20230120162650.984577-10-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.35.1 In-Reply-To: <20230120162650.984577-1-Liam.Howlett@oracle.com> References: <20230120162650.984577-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YT4P288CA0074.CANP288.PROD.OUTLOOK.COM (2603:10b6:b01:d0::7) To SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SN6PR10MB3022:EE_|IA1PR10MB6026:EE_ X-MS-Office365-Filtering-Correlation-Id: e436d87b-6d82-43dc-c777-08dafb033be4 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: /ONyWbtZ3jVieZJyIOnmZku6kzbf31ozlDn2PlEev14xE9yWOQ0GwZ1MzZQHVGaH6r4gUNJiMV4VJh199qqAAtsgjmiEarYEs46n2zHq+V2tb9ozCewMDUBAWzIt+BgjczpSAxfsAaT/ETCbIwQ0RL9H7YeSaBOu3Emg99HW+5ZckdvAPdFi8cxcAQeDd75wmhQEuf3X6exYWJmaMZxOIAFiNvt1cIHvUXf/cMYLq9QBeBEo5NJxjvmLPnU8eVNgLKkS18whEjze5j6ki63FvTb9U9LBoI7D/pTLYDGpolxgg5lWhObajei0ypOXS/s9eI8cMmmi7NVq8RcknMDjDtVzy9pG4JH2X6GR4aRmA8JG4XBhipzMZ7W+BhJ30XZEhGV0nDqLFInNSg92mB2b9ERSgFaWWblwEBLO7VKgkbe6Naqk+UsMxwQ08V3/6e0qzUdaq1EbZ45k06lsgvfhF8uENA3+Hqk4ivy3Yued/tCeIFlz9kOQoDHbAc5bGxinhqU3TgyDFP+fvbFk+kjaIzcUh5ZuUpm0bxJB1N78lZaiYRidZQpYJiF0SAteV3loK3vxq9i0cs3v7nnJXC+fYIiFqebbAsTijSJ32hTcxbP1bd7cjlEG0bdiLOK9/NAGin/CouPzgQSSEhdIVTRHLA== 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)(376002)(346002)(136003)(396003)(39860400002)(451199015)(5660300002)(8936002)(4326008)(66476007)(66556008)(8676002)(66946007)(36756003)(6666004)(107886003)(38100700002)(6506007)(26005)(6512007)(186003)(2906002)(54906003)(6486002)(478600001)(316002)(2616005)(83380400001)(41300700001)(86362001)(1076003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?KQ42DKInULnwz3bqtvIa4QieCbV10Rj7k3bUTeKWRnUbkUMoPp5fFFc0PbQH?= =?us-ascii?Q?wonL1ytdpCZdKKSeNG2oHwkq9Y/JZvSQV4SbBk+bq9SY4p2a1lcbXpBpoaP9?= =?us-ascii?Q?IWirtbfRrIBbpNm9Ebg6mlXdFGPwu7rFcUF18hNwziamdCU5GbI9UvOuRCzu?= =?us-ascii?Q?ZjC3F7g59i/bRhv1RHXSX0HGcMjbuTBGajzi2G6aVsfqggaK3WiepUx8lbVI?= =?us-ascii?Q?m1yQd4UwtBM6mFX+aFfYo4G/qMmdGs+fUNy8BtQXinJP20ClFJbowISgnId1?= =?us-ascii?Q?uSv5iRuM6VQWFiEiYAaz75Dba0uuKOdCGcqhT/VxtYaZc4IgrpJrleQNn1eS?= =?us-ascii?Q?3Hhl4ang/ZMmVgGtydQz+uMwtfY0uZkKHHXNIP3gLP09WQf1KCwRPro/GRG7?= =?us-ascii?Q?/+xPPmD9bjmOGEZP+DNscLqHCjxKVeeSd4QXs18r8vNzyH1snP0h10zFIJKz?= =?us-ascii?Q?pYV5nCUfbI/Sftry1mQLk5yx0m9+U9cL+XINkMY6uCBeLDLbImQrfqQCYgJc?= =?us-ascii?Q?1eiRBntVHYzeNE6pzI3stNJ5Kp0HTnJFmKYmZYF+0oJ5yzTFYDNlHM9StUja?= =?us-ascii?Q?T0c0sCYzI4UDcmTH5hlCXLqpZTry/n1k4wqADXCv9BWDtdvzMMMvs92ckZzm?= =?us-ascii?Q?gEKZoVH8idfMepHIadvaINXz8jzCQKakipQRfOLEUffSgoyqZ/inKbUqvSd4?= =?us-ascii?Q?EvJ5R8qWO7+ytJdn6odjRLKbOVPQvJwJnGGbbO9wokI1QUQfHGF225+X7zNP?= =?us-ascii?Q?Grad3rJn0cc1QOqebH4M9cwyyWZukT3XoNGw2V8P1jSHyGwe5jZFKGQ3cZA/?= =?us-ascii?Q?3bPmuZo8Ur2NBc8r7iJi6ZKNeDxIgxOfXvD/Wz09ubLJ42EFnqeInxm3YFN+?= =?us-ascii?Q?lKCgjLOin+5tlFYtvhfWlcNuqQ3lJ2joaKkc8Xedog6NpJqG+3mdB61wkttC?= =?us-ascii?Q?V3gC4pNMWzcomTYLDyMBvIQ1q0y8+n0vSduk6LokZqNFwrLxrs8ZyqVD3XtS?= =?us-ascii?Q?Gmcy8/YnDDxVqJ/bfCpj0GCbumUdz9K6QHyOyoQjM1w6rvpC6mrgJ/tCkyMQ?= =?us-ascii?Q?S/yyYLZzPEcoqoy4UF78ByXpyLvWkBcFqL+9lU3Hl/piRSonUATJAxOuliz9?= =?us-ascii?Q?hPCLpZcxUDNkMB5KORwWM7CoTMIU/nOAUNtEpbpPazK5jXtJ8Q8HYcLABKP7?= =?us-ascii?Q?ube24M9kkdYnNZm/7vUt/p9NX30rKY8eRgXDeR4ElibW7rzjZdFUao1WMWsj?= =?us-ascii?Q?duJK2PveKKjrSdqKToZCt1NVofPcmtfNny4yLIJqTRafsAHyWBotclhcTdMv?= =?us-ascii?Q?B26VjIuABdvTqQ6G6opxOXZ4/oVEOMNG6GQZrXRv0z1zzMBTkChsw7fTw1Jn?= =?us-ascii?Q?zG0ducgXRKdvjreWt0jPo1Cm2bWgb6ytJ0GN651WivN1LvBcDvikbepTg6np?= =?us-ascii?Q?D2T12Nel8LHxs2WrQlY3LDv/xZGtxS3mur59X4CvL9I8idnbPyja5gXoUreU?= =?us-ascii?Q?O0yh3NB9k1oireHcgTLEgPD10JVub+t+beocDUMhCNSAXUloFV6X1PkGE+Eb?= =?us-ascii?Q?0yyP7+KYxFoH8B6ZFfWkxieSH4BYHDzYDUwyCzJVE4GuXGXtylemqqJaHgUc?= =?us-ascii?Q?1A=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: ohcierEhc1urTWCtjAc+fr9OFFFaeCr9IUAIBzt/OTNcJ9gVclE/XV1W5H5DUcAE3PbM51Q6r1uvFGuenrRRrdaE+XOHUKvHKMKgrauoWst9N+PqMZ6p2OwsX5Al+XOiGD7OlaqvLfUnbTCMopoGQMP5mzzoppTjiRvBKQCg6jbxdl+V2Ow+4jnWcvZ0Ds7fPRG67pKwJNxeB4H0Sn/EAtQyaov4b9py3JJrte8mJC5Qy1usYRcSiCoI0KBte8rWWUtB2NI0ET5OK83et+vTkPCLfN/vJfq4qtcI82Z6NMpKfjQxhDqtIPi+GmdwOZt3NjCmMBL+l0j1kPM5an+6wqav0CBh1EGixlBN9HEyt/HIyTOHh2xvSr+LdfBdbrMyC/9JBZmG6LnmvJc9Q79njIgrhROUMqemDIRrXoYolpDG67Vz95QaWh+7e5yNo4h06uKAKQ1J8yf/rb1yiBxgnPZUo6VkzYWnfffNszLv4eHWlDwZr9AhdOkmfbGvXHHIXoJu1HejA+spsPL8AWSPDT88GdZnlylEY2NMlQuJCmqtRCS4TKcl9AZsJIweuvalpXLSxyxv354w7+HWbcD33Hz8irevqH9xmxOyChH2rEq35gO05TH+Y5GkGCLl6YvlryUt+vuZ1DhceUlmHknHsNaziQhe5dYviCD2s52agCXxQ88aMfQZGAeBTrHhPBKLICkc7gu+3QfUm4T21Q2zGMaFS3eeZY23E4y4wB2YLLBnIs954mX+mE3xjcyrA7gkq6y7wRsIxmfrWDbcozOuWRorFE1g6jVTZyKdoYOcysSlDxhoMwL4tMjSa54vLjr3cqnYhYgzWfgRP4YFqTkQZ2r80iY8Ljv9Uf2aKgq3fwCxEk/Oy9Eb6CCktS0VNGvQJWpaCvUwOfjLbQmaqwUoBQ== X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: e436d87b-6d82-43dc-c777-08dafb033be4 X-MS-Exchange-CrossTenant-AuthSource: SN6PR10MB3022.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Jan 2023 16:27:33.5294 (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: 9RuDvmoDtGxxsCm64+Psy0+qHHIqi+Z6xtuQMtsL4w4HSaa8MgNTJDvy8//R38JkTFBBhFf4NNhnRDj5tuuxVw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR10MB6026 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.219,Aquarius:18.0.930,Hydra:6.0.562,FMLib:17.11.122.1 definitions=2023-01-20_09,2023-01-20_01,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 suspectscore=0 phishscore=0 malwarescore=0 spamscore=0 mlxlogscore=999 mlxscore=0 adultscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2212070000 definitions=main-2301200157 X-Proofpoint-ORIG-GUID: AUjfzzJDgKrQ7a91hMlcTL4O-FE_sf3_ X-Proofpoint-GUID: AUjfzzJDgKrQ7a91hMlcTL4O-FE_sf3_ Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" From: "Liam R. Howlett" Avoid using the maple tree interface directly. This gains type safety. Signed-off-by: Liam R. Howlett --- kernel/fork.c | 19 ++++++++----------- 1 file changed, 8 insertions(+), 11 deletions(-) diff --git a/kernel/fork.c b/kernel/fork.c index 5c8c103a3597..6683c1b0f460 100644 --- a/kernel/fork.c +++ b/kernel/fork.c @@ -595,8 +595,8 @@ static __latent_entropy int dup_mmap(struct mm_struct *= mm, int retval; unsigned long charge =3D 0; LIST_HEAD(uf); - MA_STATE(old_mas, &oldmm->mm_mt, 0, 0); - MA_STATE(mas, &mm->mm_mt, 0, 0); + VMA_ITERATOR(old_vmi, oldmm, 0); + VMA_ITERATOR(vmi, mm, 0); =20 uprobe_start_dup_mmap(); if (mmap_write_lock_killable(oldmm)) { @@ -623,11 +623,11 @@ static __latent_entropy int dup_mmap(struct mm_struct= *mm, goto out; khugepaged_fork(mm, oldmm); =20 - retval =3D mas_expected_entries(&mas, oldmm->map_count); + retval =3D vma_iter_bulk_alloc(&vmi, oldmm->map_count); if (retval) goto out; =20 - mas_for_each(&old_mas, mpnt, ULONG_MAX) { + for_each_vma(old_vmi, mpnt) { struct file *file; =20 if (mpnt->vm_flags & VM_DONTCOPY) { @@ -693,11 +693,8 @@ static __latent_entropy int dup_mmap(struct mm_struct = *mm, hugetlb_dup_vma_private(tmp); =20 /* Link the vma into the MT */ - mas.index =3D tmp->vm_start; - mas.last =3D tmp->vm_end - 1; - mas_store(&mas, tmp); - if (mas_is_err(&mas)) - goto fail_nomem_mas_store; + if (vma_iter_bulk_store(&vmi, tmp)) + goto fail_nomem_vmi_store; =20 mm->map_count++; if (!(tmp->vm_flags & VM_WIPEONFORK)) @@ -712,7 +709,7 @@ static __latent_entropy int dup_mmap(struct mm_struct *= mm, /* a new mm has just been created */ retval =3D arch_dup_mmap(oldmm, mm); loop_out: - mas_destroy(&mas); + vma_iter_free(&vmi); out: mmap_write_unlock(mm); flush_tlb_mm(oldmm); @@ -722,7 +719,7 @@ static __latent_entropy int dup_mmap(struct mm_struct *= mm, uprobe_end_dup_mmap(); return retval; =20 -fail_nomem_mas_store: +fail_nomem_vmi_store: unlink_anon_vmas(tmp); fail_nomem_anon_vma_fork: mpol_put(vma_policy(tmp)); --=20 2.35.1 From nobody Sun Sep 14 14:22:07 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 AA3FDC27C7C for ; Fri, 20 Jan 2023 16:28:37 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230057AbjATQ2g (ORCPT ); Fri, 20 Jan 2023 11:28:36 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:34804 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229915AbjATQ2e (ORCPT ); Fri, 20 Jan 2023 11:28:34 -0500 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id E3E8640E9 for ; Fri, 20 Jan 2023 08:27:55 -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 30KGBY6n020107; Fri, 20 Jan 2023 16:27:39 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-2022-7-12; bh=fyJnErIbWF7lFTxyPkj7eK0DihuRuq9cDCnhqrWV/aY=; b=pEnmBgY58HfnDhYcxAQpuZ/vf3d9D2Pf9s+GGykFVs1Byzz19G+ekwRJ+9ZT/NLSXSuE VAGJNI1zzxv9byFGroBnKprF4fTuhMV5CsplyRv2PL6WL097T4Da194MAShpeSXjLomy N1fJD3MMQz3mPE3KcKZaWj80YztCVvnPBle4xm0nE5GMRR8nvuF4eILnr6rI8Zfg+XUY L/i37ixOrgFr7eI1rvxyWwQ6imf59+//7Qe3GT5flyGC+RLGvPBlQ021YL2XE5eWM6KL GM8BR7pYcdHoBHgR9i5nb9qdkC6vLKMXGg2Yu7G/3hx3DdBnS6zX7MJtYCDzkyLR4Rvl vQ== Received: from iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta03.appoci.oracle.com [130.35.103.27]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3n3m0tw23a-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 20 Jan 2023 16:27:39 +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 30KFH6qD013438; Fri, 20 Jan 2023 16:27:38 GMT Received: from nam04-mw2-obe.outbound.protection.outlook.com (mail-mw2nam04lp2171.outbound.protection.outlook.com [104.47.73.171]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 3n6qmfaxam-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 20 Jan 2023 16:27:38 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=hpLVDvcHsEgUmkaXCHjOfjeTmZ09Vcqequ5Z/8rObt3nYqKeyQ7tfnQXXQ4EZ206LpamT36nUm4SH95H55LSWcFrY/onI8Xk95ypPiVxndFdAak/D1gE5oSGssWMxR/IxDL0nXNZWiRQIVvmQxp0Ha8J2/xBpp7OKmAlDB2tHaDhN7IDrkD8SfjCSs7cQYFs/e6ILkLbZXh/DVGTig8ckGQSzN64r6jIVP0L2JxZjflAqWjIIqEV1md3iQFqpUWzx3Vbsaa2t4y/ORsd7orcSekAio+1riFke6b+xWbCZc+GedowpT7ZwoBPvcscnBOUGiQj0YAGdYQOLNXYx9dSog== 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=fyJnErIbWF7lFTxyPkj7eK0DihuRuq9cDCnhqrWV/aY=; b=ltgcofyBWctVJG4P/8Xr5iyqMFd4groGa6PEfPUJHx3nXM8chw1GTY1eNNvF8EuQ+U37s5U57VvDivYK4Qa/BYFpbxSpeNRmUsCx5j772AqzmsE+CJvP41cMKZ9BGwW6z2IYA0gKnKTWuHZsO6Xb/xigRhABBgCNQHxzohWbVTJ8Sz02uOqpgckNo4M9iERCrVVmbz8++BiQ03LllaJ+B2XTUErNWveQzOJAEwl80KdoOxO4KPjAPOzkgga2I4bKciCmCZfnecF3hq3Q2NSz8SB+tQpOKZMtmTxzEs/Ohq4VX2qL82KfjOHdjssIKLTNDJc7Ttf43ygaIOR1gn7rsQ== 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=fyJnErIbWF7lFTxyPkj7eK0DihuRuq9cDCnhqrWV/aY=; b=n5IxHrUD7PIhaRDeKOVDXXRAAXFFcPsbPy3VVAfFKBR+cyS2nCWSlxG2498UOYhIaoDxZP30/yxrVTaXuDPYO33AqOe1BibdDJz7X9bzu9PAGMbq1kFCJRC0v6lDRO6ED1jI/Y3L3KTlrc9W2znbsAfPqcBAi832AuUc0hukKZc= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by IA1PR10MB6026.namprd10.prod.outlook.com (2603:10b6:208:38a::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6043.7; Fri, 20 Jan 2023 16:27:36 +0000 Received: from SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::7306:828b:8091:9674]) by SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::7306:828b:8091:9674%5]) with mapi id 15.20.6043.005; Fri, 20 Jan 2023 16:27:36 +0000 From: "Liam R. Howlett" To: linux-mm@kvack.org, linux-kernel@vger.kernel.org, Andrew Morton , maple-tree@lists.infradead.org Cc: "Liam R. Howlett" , "Liam R . Howlett" Subject: [PATCH v4 10/49] mmap: Convert vma_link() vma iterator Date: Fri, 20 Jan 2023 11:26:11 -0500 Message-Id: <20230120162650.984577-11-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.35.1 In-Reply-To: <20230120162650.984577-1-Liam.Howlett@oracle.com> References: <20230120162650.984577-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YT1PR01CA0138.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:2f::17) To SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SN6PR10MB3022:EE_|IA1PR10MB6026:EE_ X-MS-Office365-Filtering-Correlation-Id: 00ea22d9-6809-484f-163c-08dafb033d1d X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: Ny2N0C6ht6adxD3hjkhF3vwMT+usVJHuh8zCAcbgTdqDMd1ZiWm0Ir/N1VblPtehkT1p54Seu/WvL6eovYwqalgvUOLU4UAFpXYMlBOIhswOTcgmcAd6vxnONhpdMaKORfo8DgWBc02u65h75dFqhTkjf2B+hRMZV5zvoUj+L83qSMYt9QMpe0Ik72p1rsPU8MefmoV4F3v6z0OtIv5xitA5qvnxkkyHp3/YgKBUqf0T9jCce84QYMGiCzD8i3jmzJ8AQsZdTyRbKIFVrUofrzxHXVHpUFNpeqpqQNi3a6D4NBsnIgLO83aMUfFqyovGt3YQRM8PFbCO9PJgPNu0Gg+fLJoGqjGXjgCtGkduKE6XyBi4fvQykBI5tjK7mKKZjiBDfOGEDGj7neUmfxRDU/swgF+XKGWcYAd20iMvwRAu/RCA4SqNFnGFy3QYA4ktzmktgOz65PA4cRpNEBlDQaZDacLYNQwW3VPtabIcKx0xHIlleIRRIruq9+RE+XsUZboUNn8Cgjvsg2/AdMTFi2b+R11ZKFih0PnBZgVvIBlXdYHOx389m/zupgSwHq9htaaudpUIw6kdeYvZafUZhFH3Wx8C1/cWFAVgjui5Hv++FAz8dpsA0p4UKgDDYwACA4YKwCVo8Z5Wi8VhmcEIRQ== 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)(376002)(346002)(136003)(396003)(39860400002)(451199015)(4744005)(5660300002)(8936002)(4326008)(66476007)(66556008)(8676002)(66946007)(36756003)(6666004)(107886003)(38100700002)(6506007)(26005)(6512007)(186003)(2906002)(54906003)(6486002)(478600001)(316002)(2616005)(83380400001)(41300700001)(86362001)(1076003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?S2LpEyzJluQNtIscIuTbA8GqVQm1hO0z3AhdoCy9yMObW0lJbr2Nc2u9Lxy9?= =?us-ascii?Q?i7PWh7/z0ib/TsHXCocD4H4kFPGEajyhNtoRQJTPSriKsvYAB/U2YurOGgX4?= =?us-ascii?Q?95PWuxM6h840ND2LIuz7uoNm4d4vxYXOIWF6lNf/l4fj2GKqltpO5Z1FcABV?= =?us-ascii?Q?DhwXfcIPrze8L93r5zQqVQM8Doax0UGFx7KMHjQQVhdp+mZ3RnGRDCXW8UH5?= =?us-ascii?Q?WLZwl4FU3rA+Eoo2QapUrkZiXXxx2vNAZwl9GoXLQdkZFhXg5YfMkeCp1Dkz?= =?us-ascii?Q?G2wnDcpPrQ2pvFMzrg5HyPsHs9XEHyY/aCJld3TgivncnJbu4cHlKzcr/G1x?= =?us-ascii?Q?TWL87d6nHqONI1B8EqZ3louLBia2Yl7KcRn14uSc0uZ+HYC0L0BYUboa4aX+?= =?us-ascii?Q?iKmYHUuIPzMk8+GVIzruU0f6Hu16ZKKol+Khe/EuLSKyY09ypSqo+NEFtG3J?= =?us-ascii?Q?fKQ1JqbBfDW5v6mkV36ANUqSKg0CO9lAh+/30HFKzwMv/TeI7eJ3BmzawGj7?= =?us-ascii?Q?JQBf+5xKIYXa/VdpOz8qK2f+sauaumCvTBOFynR/sxlZLU+PElkj2eiuRXIL?= =?us-ascii?Q?AB2oIoOxxVWvTJHSaao342B8kzij43JsSilGSQJ2knvNKWltt1xsXUVls/kk?= =?us-ascii?Q?26vDjyLc9gnYYxIyO7fm6w244GiaFEvXqWJcXnpawEPOFw0SmU2iOWjAD5Y9?= =?us-ascii?Q?x6MzFJ6LwKk1UEUaMISWwitnLKbIQ6wqfBPIBCtvOAnzNad1F8TLlA1MDfZm?= =?us-ascii?Q?P0GvmF02U3AcixMjH9tH6Oq5qbzcDXEbbpInS0OHhUe4yWY3W9FM5d6X4ieg?= =?us-ascii?Q?BQw+WjWB0l8z7dJkpKs9BI16ybE163BAhA08cmtBp80Te8InoUCrgB3PadSZ?= =?us-ascii?Q?QkZPG9J0z0xyzGTWI1WpDh6cPl0muhRedAcn+mO1/PFPBnOcR8jbaXiH9+Ap?= =?us-ascii?Q?hMUBENKjfdpUXk7tzQFaWfNLytl8q6wP1ZvAsbC3gIIz/AwkeztLEeuReZvR?= =?us-ascii?Q?iUEZaRubGueA9e7dxI/6tLpfb0nix4rGAvXw4WHJ8WN3XeSn8wC2LgWagKb/?= =?us-ascii?Q?bDFldmbhwLMIY1c1z5OTeHwFpX+FkxkkPl5cuKW3ZxFGdg18iIhDOKs17W5E?= =?us-ascii?Q?CF3J6KTCAWSRMpRIwXI89I5GkJ5gIaBTDL52rlYbvkqyM+13EdGsfxuoS4ol?= =?us-ascii?Q?pgnB5O1fikpn/PjdIy6SfB2ovelPTwBUmqTQPkkTfV3zb4kA6nzgESsaorSV?= =?us-ascii?Q?VYfQsX3pVP3U0GtTUrMnWk1FR6fS7oJGooypanxSlj3tlFzezmh5C3wmDYqg?= =?us-ascii?Q?ifLYJnCpUhUiTGlG1JZzWfQE09g4Nuf4Se0or9/jayLAB5TaMlMOP8H/Yh86?= =?us-ascii?Q?mt8CXxg4fHc3czKcML3yqKpWPiovFH2r1BptcbwJ3L92FVple53wYcH+Qrs1?= =?us-ascii?Q?sVomUxWd8POPkEVqoL1MpEdOvomBFTdUVo9UByNXORpmdnqjfwhm1J5rhmgu?= =?us-ascii?Q?WeTLt5618DvnYOeaKcKzrurIZudNsH4spO/whf3tL0dQ1yys/MY8AB2Mh5O5?= =?us-ascii?Q?vFLgeat5IgvU8HBBXUPKSK8Bwkt/XIQD51cQlRkmIpyTZ6MTuhPplxJ9DmLU?= =?us-ascii?Q?2Q=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: cQV103FOyH/JRbyk4SV2JBpBlg1m+R+IDrLOlBVA2vXAgzLTwVGPF3UOYT2h0oy3l+Q2n9FqIS34Uq4Tuh6wtOw7xNJQo+9c52pR2uiJhX5co7x0fd8CiPOfiyOQCK/w8pRqzcFhBKVqla56ioXIZP+ZYXDeDP02wkTP/XrJAI+nsq7tg8q9tAHQ9CkyUFqZRXDCQ0slWq5cFBc/NHf9qDtMAP5zd6+AbbG+TE9eTOR1cWJoHU7bI+cQlF+54ogokHFGt+aj+1CxGAlK9mbiYvMKCf1C55Ei5gc0RQWX06r/BzCrTg6a9O54PWmyd8vGcCNZbtmkDE8dr647OSuoeVU/z9xFclsQvsLP+Nl/q494cZKNXotqlrtUiN695/SuOiyzQSJFm6lOWfOsv1+HrFealkMoVypc2C8qAYpeuOMxbQh7wIVAUgKckXO2bGYODGrJyUc1QHBGxl0ATpLg7PjDOak6M8fYTBDPmZNVBgjngzi3i07NMXV2j5wm1kuHjJMr0hRAna8PYK4/O2oWMjutbpXKxEkRbaGTLdmCAXWvJYz79VJuuRDXJ24zE6gBNrXRzgXx01NESg4cJDCwSykhNgyR15cl0mDYnLNx/D/mIbIrQJp0iiptHyueByvdwDrtkpkiVbclDVxV7fsTO6fdPCHNheAwY2y/6pwE46wVlNq6uC+t9LzF0hDszsmqVJM3gCNm4BGv4zqc5rlOoks/T9tSnSqF7SLmp3s/o2Y1hD3GfqMGrbyrRw3zXjZnguYxpbPt+ORUwQmdylE8Fg+rZ40aUN35xPDAjVeq+acVjfHZG6BgP2TqN4I5Tw9xnCARDV1EAUG95+AdjiLKqwP62mhTOb83Bn3oIRMhpVq6XNeYFcrDZnYbQgsl9/W/nT+eANqv4MgXo6s/kfFsCQ== X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 00ea22d9-6809-484f-163c-08dafb033d1d X-MS-Exchange-CrossTenant-AuthSource: SN6PR10MB3022.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Jan 2023 16:27:35.7480 (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: H9+D0hPRv/ARuxnJLyX3/jtOQtu25bHUxlpycpu5AuiJlUW7aBuSZO3HdWzDKA/52RGQ3MgBg5S+R9u3wIv8Gg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR10MB6026 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.219,Aquarius:18.0.930,Hydra:6.0.562,FMLib:17.11.122.1 definitions=2023-01-20_09,2023-01-20_01,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 suspectscore=0 malwarescore=0 phishscore=0 adultscore=0 mlxscore=0 mlxlogscore=999 spamscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2212070000 definitions=main-2301200157 X-Proofpoint-GUID: WrjtzaxudaA5bNyxTiKFETuYwSKAgkSj X-Proofpoint-ORIG-GUID: WrjtzaxudaA5bNyxTiKFETuYwSKAgkSj Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" From: "Liam R. Howlett" Avoid using the maple tree interface directly. Signed-off-by: Liam R. Howlett --- mm/mmap.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/mm/mmap.c b/mm/mmap.c index e2ba9b094cad..09a5b6e00374 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, =20 static int vma_link(struct mm_struct *mm, struct vm_area_struct *vma) { - MA_STATE(mas, &mm->mm_mt, 0, 0); + VMA_ITERATOR(vmi, mm, 0); struct address_space *mapping =3D NULL; =20 - if (mas_preallocate(&mas, GFP_KERNEL)) + if (vma_iter_prealloc(&vmi)) return -ENOMEM; =20 if (vma->vm_file) { @@ -498,7 +498,7 @@ static int vma_link(struct mm_struct *mm, struct vm_are= a_struct *vma) i_mmap_lock_write(mapping); } =20 - vma_mas_store(vma, &mas); + vma_iter_store(&vmi, vma); =20 if (mapping) { __vma_link_file(vma, mapping); --=20 2.35.1 From nobody Sun Sep 14 14:22:07 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 08AFAC27C7C for ; Fri, 20 Jan 2023 16:28:46 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229761AbjATQ2p (ORCPT ); Fri, 20 Jan 2023 11:28:45 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:34904 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230107AbjATQ2m (ORCPT ); Fri, 20 Jan 2023 11:28:42 -0500 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 0837F4E511 for ; Fri, 20 Jan 2023 08:28:03 -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 30KGBaTK003300; Fri, 20 Jan 2023 16:27:42 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-2022-7-12; bh=n9DvzzfSR+clZR1ROFy22L1D8uVN6xWoemiZenh5y/8=; b=ag+fwhmE/Q5+uyTnlL1ebxa9taWPUoOXw07KMXJVoUZ173D/lRamLM2vprMIC+O844in a6RPhtGKjj6/c9p+p3hHTHeAJJHAwffZEDjqmwjV/t/ucYeO7Q2mXTMSj1bcFH7MMvhD fU962EFK9ZGvtXVQOA6go8S5sMjxav9VjGjd+durQbbJHpnbIJHyxzBsq1KOaFa4txl3 XVYdRA4+LUGxmpyaoC3ildtB1UUqfTv2LTUr9Prv4lYX9sZrGdc5NBNwyZmCVkxUOiiI eFMVtzBg3NNFpPqAm8ERYkqxUh4BdBQD9xBs4B6FSbCmPrHT/HRqLPqZeKaf2TYOWrzD ng== Received: from iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta01.appoci.oracle.com [130.35.100.223]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3n3medn7ew-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 20 Jan 2023 16:27:42 +0000 Received: from pps.filterd (iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (8.17.1.5/8.17.1.5) with ESMTP id 30KFRFt5004673; Fri, 20 Jan 2023 16:27:41 GMT Received: from nam11-dm6-obe.outbound.protection.outlook.com (mail-dm6nam11lp2168.outbound.protection.outlook.com [104.47.57.168]) by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 3n6r2w1f5n-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 20 Jan 2023 16:27:41 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=RjIWTqYe5FX6HhN73NuJptWTFn10fdGacomMRIuqWaIAzTu4yFTcBt5IOhrsjmDMLErl2ZWxNsKFhSwsPWHg+36UC66uaOlmZj0ZxM9ADVoaKR0vdAl77OR6kP8dYm0tc8bpR5j17t6ufieVSFKxBTY9w+8r8ioC24jOo3cWSh7FqeDsM+NZltFTc/+ag7gNmfvGX2ejJAgxUYfwgvUm56jAaKiKm6mrTDV8xZLApH4Ck+4tzg4OoQUkqgHBRGQwAGIk0g5wWt1U5mbuGsFJ/r+yOZ8M/6VTbCh2cqzhpcxFAFC0wmHtoAhqsRrTHEXh65r8nrCkz6NicbhFjx8t2A== 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=n9DvzzfSR+clZR1ROFy22L1D8uVN6xWoemiZenh5y/8=; b=F1hA9gUt7rUXhsLMBTI9S4CkuKfDbD4XijsT8T+BCpTWKsYk45cqB/+ZDUgtyZlGqQmdQ6fX7tpM4LOiTNrgPpfc+Ztsm2gpjhmM0TYmgLDIayAyiDv3nNAMyEPcf28P4vTYHMrmjUDWPptqajT6B4aIWz38gQguFHzL1M52sFC7W4dVXGaF6AVM/YswF7UJtc72mWdqWyQv70aMfNIgJBg70nHOL0U3+fekiVHwIPPQjP2l+9vOcJ1B9N////np0O/hZRlsl1WUYHyAB2J5paGswHjmmXREUZv6rD27/pSkC9SZ7fEOTeZedrsmDtB2Y0eFWJt3lNcUEnMd1iX8Kg== 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=n9DvzzfSR+clZR1ROFy22L1D8uVN6xWoemiZenh5y/8=; b=YfuNSgSF8nZ2FeexrVF/ahSWn4gsCyhIu+aiprQZeNOll/3j9sxqJFsb4NDq4g5qnBkmp7zyai/nWJ8X14jAHXXmtl/XsVVGuN9d/+gj22bpds3po0NG8NGw+ytUSXtdSJxSYoKIJujxQGbOO8hTYRSP7nuz9tf2frJvIc2qNEY= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by SN7PR10MB6619.namprd10.prod.outlook.com (2603:10b6:806:2ae::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6043.7; Fri, 20 Jan 2023 16:27:39 +0000 Received: from SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::7306:828b:8091:9674]) by SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::7306:828b:8091:9674%5]) with mapi id 15.20.6043.005; Fri, 20 Jan 2023 16:27:38 +0000 From: "Liam R. Howlett" To: linux-mm@kvack.org, linux-kernel@vger.kernel.org, Andrew Morton , maple-tree@lists.infradead.org Cc: "Liam R. Howlett" , "Liam R . Howlett" Subject: [PATCH v4 11/49] mm/mmap: Remove preallocation from do_mas_align_munmap() Date: Fri, 20 Jan 2023 11:26:12 -0500 Message-Id: <20230120162650.984577-12-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.35.1 In-Reply-To: <20230120162650.984577-1-Liam.Howlett@oracle.com> References: <20230120162650.984577-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YT4P288CA0091.CANP288.PROD.OUTLOOK.COM (2603:10b6:b01:d0::28) To SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SN6PR10MB3022:EE_|SN7PR10MB6619:EE_ X-MS-Office365-Filtering-Correlation-Id: 4c40f27c-e882-43b5-dbc7-08dafb033e4b X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 0bDhXkP9XtavSXDb12rK4t0E7KbWJercLzxQQlFPsuzrVDpkMTd/NdExWcce6/zUrQEER6UgjjD/uB68SoVqWj1SSdqrPOU0pC8vyt5TaTEkx7N1rQFjWAmGSh3Os+Ylk644n8MohkeI6Q4wJ7lwpGs1Qwlt2jBaWGJA4PI5rTBQF0GL/M+y2DJhisBvAaWvCWhMr8YZQIC3opPyUjIZP+zfRwcKJ0c/285VslU+kU4y2UFzezwgWXDvEHGe28tzyAG4norar5VgC5v5/+oTFJc2APMs/45WYHl1+jojaOoLoROSSuqcH2QT5nxtsj+ByIf2dRa7TwucX/uxbBjQjspvEhJ+Wla79wF/GVdkvTti5dLky1Wm48gNXz1vZ8rxwHK7asZGxEUJ/fRpCEQX7tuShe0WFHaHbXwYI6ccbeMHiN7StEhb6wbfH/HQTnFGtxR+JUtM1MNz6W6wjLf5h1krcfFW9rwKHOxo5TQ+d5lGmlw8YvB3WLtoKjVxHngbfZDrUx1n6J7vHzureVTasE1puWuTZ6gSu+WWI0F6qyleiobtMBm5x9Ty1nfd0qadAdRmm7zTyhD2NeDIjkwKG5rP8SCkSAO1zBu2F4zOjsQajen7lNKJ3PlE7bJJJ89ZlvEuAhZjaqoC3N0SSR5KLA== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SN6PR10MB3022.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230022)(136003)(39860400002)(396003)(366004)(376002)(346002)(451199015)(83380400001)(54906003)(86362001)(5660300002)(6486002)(2616005)(38100700002)(8936002)(478600001)(6512007)(41300700001)(2906002)(107886003)(6666004)(4326008)(8676002)(66556008)(186003)(26005)(316002)(36756003)(1076003)(66476007)(6506007)(66946007);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?IShh/5K9kQbl6bguGLtkPri0moAoR5xH++woNoOvVf5mqZo/7v8yscpj7LcQ?= =?us-ascii?Q?4OooeLptg+SNfnDooOEgLJdPUxuZDW0DHFEUSduivAyR5tBHO4X7wO/IgFIY?= =?us-ascii?Q?+Y5mk94QI0lReWtBI6b7+qgQX0pS7EwiOq00bg0sj5gARK1LJUF8z+O9LiS2?= =?us-ascii?Q?wzqfxF1K8Jx+g0q6lI8wlhfXH2Cluece6D2x9DX57KmBrbtulYVxx0hZlup7?= =?us-ascii?Q?BjuSqFKuXkJ59+T1Z5qTrtY07v91Qt6W3pTWZV/Sgw5eVhc586/iyMd3gKgL?= =?us-ascii?Q?+PNLJ3KbqAuisasONT9h7w1TPHoTAjoj2bbnswBb3ZXF9JJP5/ub4b5bR9nO?= =?us-ascii?Q?KHBEzfTYHUaWQNcUmrzUWtwnr3eYqeRc3divolcYZTt0ojv+0cnzx2Cz2TNT?= =?us-ascii?Q?o0NZvEMVGO0jo6oEV7gTswTGl1kWP995lrEyhHvyDM50l080iqqnnLi8AhIh?= =?us-ascii?Q?H1BWsQKEtGhUvLkRXOgbFkRT5TwjV4R0KFgvSJr8W2tmQQfuLAJ3f8DTZtWg?= =?us-ascii?Q?L6+08tgFV8YdU6QldX4WvunEenMhAVTiBJSP4hrPVqf6x/oNVt3X8IM18eiH?= =?us-ascii?Q?IfQ6OABi4V9h3GwO/BgmWPt8xtZuMhwpMUBGCuiI0c4QOnOEzjMRjicot0g2?= =?us-ascii?Q?076kMZAPkCRJZFFhdGx6VIGmoQicQSY5bRVudQrLmgST+uINqnOAg9FMtW0E?= =?us-ascii?Q?udCWcSRUVkuq86SSzfiBhlxpbcg+Qiihvl+Ue3i2C2xW5w3So9vyqJDNFRNW?= =?us-ascii?Q?YZd6Puu42w8MlfYQIKDcBdxRy7JCkzA+vH7Dufcq8kaiSIaqlcM93fqSSAtA?= =?us-ascii?Q?tBGWOcFT7txogJE3IqVSChoRCGIxDK9IZCIBG+RojYRVffwTRCT1riNvCT5l?= =?us-ascii?Q?0iAzY/2kiAbGenODipP+wWUiW0W15crORemVn7a8GxsE6Bz6nMeXU8AO1naA?= =?us-ascii?Q?w8Rhcl0kfG1MCuZtng6Tw9SPL147UArs3xkwZNjMIP3Oxn/UDd1pgEXOOCRO?= =?us-ascii?Q?UGGZB8WoOwz6Qnxpoud1PdxB8Ib0I4bgSN/AF7T/tc43WBoOWIXlKp14sHAy?= =?us-ascii?Q?8/s1NK54C1D5MI1oXaKksGwDdq+7q6OlFoBHhvpwJmrjMJoQ3i0xRXjk03/I?= =?us-ascii?Q?rnlkpIA8flsxaYVFxy2N2+Pl5c+ScXvcWQH59mAu5gnG1KpsVM6uB6ZcBbFo?= =?us-ascii?Q?LPfSiVoKIn6HsAob8rqdyRYrBUB8kv8rcaCAy9v+7ySfJR8mtE96090H5BnO?= =?us-ascii?Q?TMsP4uUcJ9WX42aAUh1AAxdWq4Up3LOFBMN3ZEQaR+d6DiuuU2yYBjtLO5Be?= =?us-ascii?Q?SqBcXFXFAiV2GLgQ/w6ACNGKWw1b1yzob1PAlHj3TRt6XYW/oE5YGhpCdyEQ?= =?us-ascii?Q?2KfouHvqc7E79xuIisyeGgLDW44UQB+Z331rFl4xCQHjh9eDgy9tgrHreAhH?= =?us-ascii?Q?TBIjqrDmfoR7Oepc2wmSYM1K6Abq1jv0CjHKx6GHncoUO+oGFR8I+aG3SCCA?= =?us-ascii?Q?4LXW0A+kagxEgbhWE1JqtCQ7xmi1ZUGnbFByNl8m3JHayE3lPU3SiaTmH9ND?= =?us-ascii?Q?e6/Ed5tHXmfAr/9D0cButSZ0Qq/7LQvDvpyQPHE4xonssvys8HAiLiV6A7vz?= =?us-ascii?Q?/Q=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: Qf6yofR9oG6qAsNyrrEWTfFH2XU3jdMhDmWz7g0gRRRVWiwnvthMSxue1dDqjSe7r+utBVNA13xohu61cBRARJgKmuqdM+HMdvoyr5qbP52hdvjw+S4R/FoUo0D46HJ40hkLYVvp0Tls6iJueop7yp9yhLa2E3o1b/VXxcqhp0nHD2GnbQ2+BmdOifn6jOlxERALwGjtvuDAGsU/g8DFDF2OZ02QL0P9MItTJp4zSyV8ghhG7hUCysxrxmxTy30FzEcDp59K/v71Fb7EYwJaRCEFJs3ET/jkUtXbs/Yp88Ns0lYRa3Dxh/wgm+B6nsremhfJMIUZIg2f/xfsvD4t1wQYvKx2mjm/RiRnJTnoLD7LyF5XEIRHCeCPbmy1GMOtBPFq3dDX9s1VaA4HZbJVNQ1vUyn6vhX7ZWEedadqapswIXZSS2g+TCYswwbQqlVx+7WKjcLmuj4RNPQL3a10nWv/QBCl57Kw8KRkz4GVUS7sKnuq0qmu6BeJdeLtQ6es6NA+V0rslwtogPDwZLVgXSkg40wO8Tngw5BZ5SC5PvOQT9I5Jx/SzW+zWY86marbwPohpKHMXZXK8MLQHDiGEHkYpmORUWg1OxH3IpXaVgRm5uAy5i6vMiGWEkJ1YdnDprVIkb1EXUPWJEpr/tVjMuIny2q7+/tHerdxF8J1xhT83wBCQZEHp0Yj+WAh4bOakbAFWNFjVTP9/9g+bW7sHND9jGSC3HQMjRTk5tcriKp+uBp5VwnQ//2a1Rjlurh5PW0ZBYIRLQe7Q0/kiU702DUkBFLrUqxXvch4zjNqhzkUGgF2lp5NaHg/RY2CPa5HWtPVfXzUbhjhZxUzUM4axvt74enhJ/BDHeZndOIEriN3U/SFs/4Bub9QB9JurzaTNw3rxauQJz5XHkTwY8Hd1A== X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 4c40f27c-e882-43b5-dbc7-08dafb033e4b X-MS-Exchange-CrossTenant-AuthSource: SN6PR10MB3022.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Jan 2023 16:27:37.6853 (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: RbD+40VVAKtVCxQAOsv/N6dHSI9j6Qlo7VhWk2R8TvizvJhOpx7yl/KlVF08wrhf3CLMF+m8YJjGilTuldbK8w== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN7PR10MB6619 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.219,Aquarius:18.0.930,Hydra:6.0.562,FMLib:17.11.122.1 definitions=2023-01-20_09,2023-01-20_01,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 adultscore=0 mlxlogscore=999 malwarescore=0 mlxscore=0 phishscore=0 suspectscore=0 spamscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2212070000 definitions=main-2301200157 X-Proofpoint-ORIG-GUID: hW5qTn9xQYiDDlI9WelrxEfP5UvM2x3L X-Proofpoint-GUID: hW5qTn9xQYiDDlI9WelrxEfP5UvM2x3L Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" From: "Liam R. Howlett" In preparation of passing the vma state through split, the pre-allocation that occurs before the split has to be moved to after. Since the preallocation would then live right next to the store, just call store instead of preallocating. This effectively restores the potential error path of splitting and not munmap'ing which pre-dates the maple tree. Signed-off-by: Liam R. Howlett --- mm/mmap.c | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/mm/mmap.c b/mm/mmap.c index 09a5b6e00374..83d25fcc2f6d 100644 --- a/mm/mmap.c +++ b/mm/mmap.c @@ -2329,9 +2329,6 @@ do_mas_align_munmap(struct ma_state *mas, struct vm_a= rea_struct *vma, mt_init_flags(&mt_detach, MT_FLAGS_LOCK_EXTERN); mt_set_external_lock(&mt_detach, &mm->mmap_lock); =20 - if (mas_preallocate(mas, GFP_KERNEL)) - return -ENOMEM; - mas->last =3D end - 1; /* * If we need to split any vma, do it now to save pain later. @@ -2422,8 +2419,6 @@ do_mas_align_munmap(struct ma_state *mas, struct vm_a= rea_struct *vma, goto userfaultfd_error; } =20 - /* Point of no return */ - mas_set_range(mas, start, end - 1); #if defined(CONFIG_DEBUG_VM_MAPLE_TREE) /* Make sure no VMAs are about to be lost. */ { @@ -2431,6 +2426,7 @@ do_mas_align_munmap(struct ma_state *mas, struct vm_a= rea_struct *vma, struct vm_area_struct *vma_mas, *vma_test; int test_count =3D 0; =20 + mas_set_range(mas, start, end - 1); rcu_read_lock(); vma_test =3D mas_find(&test, end - 1); mas_for_each(mas, vma_mas, end - 1) { @@ -2440,10 +2436,13 @@ do_mas_align_munmap(struct ma_state *mas, struct vm= _area_struct *vma, } rcu_read_unlock(); BUG_ON(count !=3D test_count); - mas_set_range(mas, start, end - 1); } #endif - mas_store_prealloc(mas, NULL); + /* Point of no return */ + mas_set_range(mas, start, end - 1); + if (mas_store_gfp(mas, NULL, GFP_KERNEL)) + return -ENOMEM; + mm->map_count -=3D count; /* * Do not downgrade mmap_lock if we are next to VM_GROWSDOWN or @@ -2475,7 +2474,6 @@ do_mas_align_munmap(struct ma_state *mas, struct vm_a= rea_struct *vma, __mt_destroy(&mt_detach); start_split_failed: map_count_exceeded: - mas_destroy(mas); return error; } =20 --=20 2.35.1 From nobody Sun Sep 14 14:22:07 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 C3DB4C25B4E for ; Fri, 20 Jan 2023 16:28:51 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229808AbjATQ2u (ORCPT ); Fri, 20 Jan 2023 11:28:50 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:35054 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230090AbjATQ2q (ORCPT ); Fri, 20 Jan 2023 11:28:46 -0500 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 47B4551C49 for ; Fri, 20 Jan 2023 08:28:06 -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 30KGBY6o020107; Fri, 20 Jan 2023 16:27:42 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-2022-7-12; bh=B5Z5xAaQgDVV9z0byqWdmhL/iAXJ2kbicI+Hv5SYR9w=; b=P80KpIu7qQAqwCO5RQwC6MU8aL7WEOGG690WbZYA3wdYD2kATAjdZ0UQ0CYNZtEg5ixz wA5pYePAQJH8seUOn4mfGQPcPnpseFDC6Cu2y8tMYyv+bQDZI0ymR9PkDDI8L/Q+hjv4 wwjeWPv+LmuSdKTs2X6Ws5oughfavcp41Gahgpz7/5acB9qjfZEGSRFMGD+tas3pO5Vx TwjE8jNXqLj66RLeKl9IPqBTZKRev1VWym8os21utRSrYtmI+vO1uw8LpbXTzOKooEdh KJqWu8AM8p4G6yYrbkhFPsyMU1nnbu6ZQ9TPYYfVLtP0L8VZ+JdG73URN0K2zaKK9JHn XA== Received: from iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta01.appoci.oracle.com [130.35.100.223]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3n3m0tw23d-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 20 Jan 2023 16:27:42 +0000 Received: from pps.filterd (iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (8.17.1.5/8.17.1.5) with ESMTP id 30KFRFt7004673; Fri, 20 Jan 2023 16:27:41 GMT Received: from nam11-dm6-obe.outbound.protection.outlook.com (mail-dm6nam11lp2168.outbound.protection.outlook.com [104.47.57.168]) by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 3n6r2w1f5n-2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 20 Jan 2023 16:27:41 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=XthdC7JqIy4z54BXO1ljcAB+Wnata9Pqp4RoydpQz5aXhVxOiB1kPA2HTlLoUSImuROaPz+B8zHuazrDzqp7J4jVoW37xxAXyTjukpQQxQoxTgzY/OhL0fUFPi27VxF80ZkluclPpnEaO3LC5KLlqUR7ldqIC4T3x0PJowZw0nNdDqvN4IXYuaKEymZYoooNNyEZuu2MRWe/kBFQLZxnea3bCP+C+1UPqJTJ+dFXu/30GbSP2kyf3KGk1AFaSwt63+A3+i0YkIoXQeYQhFluKo39kMqQ/sdn4zaMJGdCKHAjrzIFbQEVDBuxL09kVNsJ2ofTKBRg0JyvZYlN9nywZw== 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=B5Z5xAaQgDVV9z0byqWdmhL/iAXJ2kbicI+Hv5SYR9w=; b=Jo0RV3YBDzIzaSHDbkusvS+71hFlVs+/gzIO23oQUcBUYc1RCORulRm2z/qaEzh99Xq5BAiU9VcC5Hu3NOqKqibzMWrbDCSHUTYjhSlzLF9xttv5IFsVQqirfZdYDGHzLKsoJe0ICnjs6OFwd6HQ+6RNBpD0JLcLLa0rMu+ouWl5ZCWVZSMdxnQckU0QLceMMA+2I8Yv1xmLBPrbJBYhluOOs5o640kDkBMAVVUWqULGoT7Ff5HrfOm9ee8LN25/uimOVucDt7MhIkydH8NDFCrodYE7PhYx9nKiSY/7Yy2+xTXTbOYyMzLj3BBvgNxfASGZ1JgQidUZzQ5iYWBO/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=B5Z5xAaQgDVV9z0byqWdmhL/iAXJ2kbicI+Hv5SYR9w=; b=cf8rKDbSW0sAZFXrOmIheI/eYmKXvy4T8Cep5/964MTzB1Sl5eFh67j3LFdjyMYYJdXIKtFKRfRWxg9X+e5CYydV6sbHixZ3nfyccHBGk14lu9N9+6dGRWhGyozjTxD8Uquw6o2TsMRuNpIDgGW4NAeVIcTIjrV8jGNGs2Z38hs= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by SN7PR10MB6619.namprd10.prod.outlook.com (2603:10b6:806:2ae::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6043.7; Fri, 20 Jan 2023 16:27:40 +0000 Received: from SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::7306:828b:8091:9674]) by SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::7306:828b:8091:9674%5]) with mapi id 15.20.6043.005; Fri, 20 Jan 2023 16:27:40 +0000 From: "Liam R. Howlett" To: linux-mm@kvack.org, linux-kernel@vger.kernel.org, Andrew Morton , maple-tree@lists.infradead.org Cc: "Liam R. Howlett" , "Liam R . Howlett" Subject: [PATCH v4 12/49] mmap: Change do_mas_munmap and do_mas_aligned_munmap() to use vma iterator Date: Fri, 20 Jan 2023 11:26:13 -0500 Message-Id: <20230120162650.984577-13-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.35.1 In-Reply-To: <20230120162650.984577-1-Liam.Howlett@oracle.com> References: <20230120162650.984577-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YT4PR01CA0114.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:d7::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_|SN7PR10MB6619:EE_ X-MS-Office365-Filtering-Correlation-Id: ef5d099a-db31-4587-289a-08dafb033fa3 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: MZOdZuBN/cwXfCZ3bHcxG2oBlsuax8wzlKFrio5cVulUlw+oG/TYtLlooPppKlTOArhrspCAsPBY7p6SWfOHabxZu2oXyi3NDefiyHqyR2GwU65E/nJ1vdD+RupE6rBbj125nvPHfAlrmBL1zaR9lMXFzGhn5uXEiE/yiPGhSl+/voUZBKJGbtocxWOTxolEONpxwBeUUNK6VC0jsE84DxXzFbk2XSV8CHiOoWL19Fu+TCzL30eJ+Q8Ki6VVpTIah2gR0SL8XRgqOtLENbhIcx0TN1eeG/NQDEy5t1iM4+RSkOJbVASw1l1pbBG5pPO6yy2SKMP6feWQiCRQAUep9lU+oHYCEOoTL4vSw4oEG1a3Y+ynNawRxi8vx5khov6NKwfPnSYqO7WCLga0e+/7C9+MYjPR5Ad2l0wI7D3xvdBjuTUEkCOWj5NTRmtmEhUb5pq3Xj34f/6l68eCloGM357cgxlwXm+pmVFlhb4Sl9bnQBTOdVffNsqofVU/atLM0+uFQbKxA5fk4PQIQCVspqiEYqKX7higGu3H4INDqdvelXUq4tKmhWh03ytCyIpUX5jk6QrMCEddbNN5MU1oB0nzYRcWy4fpnvSY7ueujtP3kRylNBss3pMqLHST/VG1fZ33N+Yjs4yXSCBu1ShX8w== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SN6PR10MB3022.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230022)(136003)(39860400002)(396003)(366004)(376002)(346002)(451199015)(83380400001)(30864003)(54906003)(86362001)(5660300002)(6486002)(2616005)(38100700002)(8936002)(478600001)(6512007)(41300700001)(2906002)(66899015)(107886003)(6666004)(4326008)(8676002)(66556008)(186003)(26005)(316002)(36756003)(1076003)(66476007)(6506007)(66946007);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?9Q9GdXWS5EaWpi21tzlMKVBsmoHtEDfVQKQmjhZ+JJLOgcsxowx2TRVsArZ9?= =?us-ascii?Q?0xUmMkY+/InrchUpwtQ4S94d++bugx4nmsLvdlH9wspNPSE4vPV+h5dih6Vh?= =?us-ascii?Q?qRQv6TaZxf/XpXYqKlQuzxvT+aPMMFmUsRm4HlHBCxzScva28xj9NKpfh2bG?= =?us-ascii?Q?BVIhJmCyFLuWzVdS+HngC/VM+YvaoGHaYpl/qUBe95WPtPtP1NODj08fyYW3?= =?us-ascii?Q?vXZtcR2Hi3j6PfHnPfwnqe5zwPHkcpgcxin/OXhqO4owRtkv/uPSirNWeQHc?= =?us-ascii?Q?EGNiNyy5mDqZISsFEjktaIqAAqz2zUe8HV6oP52u1Q1ao4YmkItfXFFl9cl7?= =?us-ascii?Q?5G4nvEInF+1m3mjnzyMYOmBLjdq2SeFe5jeQyEoPD0L+d8ecOBUkiiGrMHAH?= =?us-ascii?Q?LbafMS7F2UszlHRoidloe6iBXBMh2c2Amt1izw/9C+td6Npewwpa1pTXI36b?= =?us-ascii?Q?cST3pFZkoKdp4T8l7oKwBqDYnRE6OEMFgdluGIDVJAgnj6uSX/OvDdUuLdgP?= =?us-ascii?Q?aJJD4DHmtu3I9KiNDPOUsCKbmJdKUDkzkcxa6slyCJiMpwSzjJTV/DtgkBVz?= =?us-ascii?Q?2MswGJj24QEKquRb+QZYnNYslJkf5YIeB6ilnaj+8fALygNZIMOzmIazzeQR?= =?us-ascii?Q?CSA4NKj39eICPCR2VQmz94WyhZjnfbKJMJmvwqM7cwk1uS9lAvKoGaQ+DjpA?= =?us-ascii?Q?kAxdw6ZJ9ToQ/RyyOAlb2p5XGmPE3E3JD34RbitMc10sw5vNvLKPb1o3ACgt?= =?us-ascii?Q?Zo/sQSlxp/Swj3gTNdOTo65L/jIkYXuyfT1WoYYluzUN/TVjs5kFPpQZ/DwD?= =?us-ascii?Q?nGlwRTIcqIMkkxHIuvHBoJRtKGISykgFCSyLabVFPaPQfyhCVtgup0+vqsqV?= =?us-ascii?Q?O6kkURf6AOP4i9OVrTcUIdxzVuo98Clv39Z92eSijAu8BRNqQmoUkT1t1v7p?= =?us-ascii?Q?nQbdZa0DYF1UkssDTtSEOmpmJGWhvuWfkkfqJZCBnUgbFHP8OJPDVhM5KUi0?= =?us-ascii?Q?iBFywK5j6ttGxOoWpSx8dkGfLdaLgZr0kDIYyhfC/dMjyLoSBd7yVny+9WdS?= =?us-ascii?Q?olq91o/04/1p+P3LhSQJDsBZAu2cjbXFlXWiPAKpuOjFoJMteqmxF3WZw9i8?= =?us-ascii?Q?N2aW6NNyY81ciTlo6sABasm5Y5XY4ZyKFdnfpr48sEwyFua/4u8LuGIMHmWJ?= =?us-ascii?Q?SLcGjxfSS/Xr5g/sIQmL4VPRovPV+Wy/h/v741fUtulJoYUGsacGqMJHtx+G?= =?us-ascii?Q?ZmMFwq4LnPvm/e5SkskYi9c53aJEbboNqNwLp1sDf3ATmkm3wRa5svKE6GPD?= =?us-ascii?Q?FbHaIxleqJI9gLs6cOyPL+NYzwbQb1o2xDdxxE3T2YQ2PJICsU4u+EOusZOc?= =?us-ascii?Q?nCdeE7TwY30YZWXikUBDmWYTr4lWqZ8WJ5Cu+TZyYHq6LX5nxUKJrz5eCPap?= =?us-ascii?Q?C/uMc8AKG0B5htyPGZo7/k6S7J71s+TrdcODfn/5dYnrun9II+SbN0xt0Xkl?= =?us-ascii?Q?aw0j319KsbR+OpmdgMbNUWOQOBx/b7wElkA4i4x7jX4pcNwx7K79hgoe0eV4?= =?us-ascii?Q?l1pSfidkda/20lYeyBXmJ9zuoWjFPYgiptuSxvB7OXdxee1BnNEd9VP91XMQ?= =?us-ascii?Q?iA=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: 7G/Ac6jo3dgnMBb/AYMxDanDg8Kovy7txhcz4LtBHGvIwz0aM2X4r8hWksKhtB2hnp4CErdbyb3GiNOh1bkr8XVZZYbuJ7ghionBBXC3kLrhxPSCkEqPIYE7JY5oaJPdLNUPlrMDz5Ex2cWz7Dlw+Zuixo9E7EarHPikG3y+46+KxleiPMVmjYrV5MRaWfHux8ytNXKSq1KqNcmZQj63j2K5/S84qkUnZIBtfdPSH7IgZY58LMdJZhsgu0mUr72xbW3Bvc/fE6z0pAUsKsHFq4eGO0HMdxZoOZtMpZAgTwxpWDi/CSqGquswRJlMmV5sDEe8jZ2NG3M+b102aKBQuXTH/thAm5443aj3WZ/YhRekyj3LcSMMBejTOYD1u2HauDlxRR8HTaC1GLGn3+UWYcelfnf37d8djuGZRSyfBl3nxH+WS1l8tcHgDZejHTFfrvqm2gy/lgYPqaD0YbPWlrpSQDzVuTidNZI4tIUwdpYsZFdVkZOze0ifi/Q2Lauhp+7GCaPS+LDMzGfM8prALN1tp3/DRV+R6TTOu/A45JempqL63whV2wo2R0Ssq7+TvC2oLzVjov+d0RgVgwAu1W8w6Vsj1VgjreIKd/byEm2IVz4marpBGd09thut9Ud4h9YVp4HzcTO1z2TPk030Rx9FZfTSS3R4TcDDmBteDFqWG+BW9tJurslAhx9/KoBAqdbIhyOySLn7yWs3hXfrYwpYcxTe8xgGXrMQRg5KqeMYma+7evvR8dfJ2J+fwaARgxMz508QZgtEC3flJom27xPiNMyE3aGLYe9GFP05DPosQiPKnwQVVWT2Xdlx24OeepL6OGPVAws+f9ySX9neSwwfLPMZ9Gsn/Zj9AKkZaMc+nv8ejpG5iLwdoMP18OuZBGzjxdyxg1kLJhqZo9gYSg== X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: ef5d099a-db31-4587-289a-08dafb033fa3 X-MS-Exchange-CrossTenant-AuthSource: SN6PR10MB3022.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Jan 2023 16:27:40.4352 (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: xDuTPwROr5slTpbKbbc+TAhpLMM+uX1wbgH9eT0PcJZw/rDj7wYp8uwFfiZN+HS5r6NYGs2sg7fTfh2Fy3Ua7A== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN7PR10MB6619 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.219,Aquarius:18.0.930,Hydra:6.0.562,FMLib:17.11.122.1 definitions=2023-01-20_09,2023-01-20_01,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 adultscore=0 mlxlogscore=999 malwarescore=0 mlxscore=0 phishscore=0 suspectscore=0 spamscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2212070000 definitions=main-2301200157 X-Proofpoint-GUID: QXcwfQ5UygSGc6xtdKXAjO8VJWIewBQV X-Proofpoint-ORIG-GUID: QXcwfQ5UygSGc6xtdKXAjO8VJWIewBQV Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" From: "Liam R. Howlett" Start passing the vma iterator through the mm code. This will allow for reuse of the state and cleaner invalidation if necessary. Signed-off-by: Liam R. Howlett --- include/linux/mm.h | 2 +- mm/mmap.c | 77 +++++++++++++++++++++------------------------- mm/mremap.c | 6 ++-- 3 files changed, 39 insertions(+), 46 deletions(-) diff --git a/include/linux/mm.h b/include/linux/mm.h index b977a90d9829..152a1362b800 100644 --- a/include/linux/mm.h +++ b/include/linux/mm.h @@ -2905,7 +2905,7 @@ extern unsigned long mmap_region(struct file *file, u= nsigned long addr, extern unsigned long do_mmap(struct file *file, unsigned long addr, unsigned long len, unsigned long prot, unsigned long flags, unsigned long pgoff, unsigned long *populate, struct list_head *uf); -extern int do_mas_munmap(struct ma_state *mas, struct mm_struct *mm, +extern int do_vmi_munmap(struct vma_iterator *vmi, struct mm_struct *mm, unsigned long start, size_t len, struct list_head *uf, bool downgrade); extern int do_munmap(struct mm_struct *, unsigned long, size_t, diff --git a/mm/mmap.c b/mm/mmap.c index 83d25fcc2f6d..18f5f71a9202 100644 --- a/mm/mmap.c +++ b/mm/mmap.c @@ -2305,8 +2305,8 @@ static inline int munmap_sidetree(struct vm_area_stru= ct *vma, } =20 /* - * do_mas_align_munmap() - munmap the aligned region from @start to @end. - * @mas: The maple_state, ideally set up to alter the correct tree locatio= n. + * do_vmi_align_munmap() - munmap the aligned region from @start to @end. + * @vmi: The vma iterator * @vma: The starting vm_area_struct * @mm: The mm_struct * @start: The aligned start address to munmap. @@ -2317,7 +2317,7 @@ static inline int munmap_sidetree(struct vm_area_stru= ct *vma, * If @downgrade is true, check return code for potential release of the l= ock. */ static int -do_mas_align_munmap(struct ma_state *mas, struct vm_area_struct *vma, +do_vmi_align_munmap(struct vma_iterator *vmi, struct vm_area_struct *vma, struct mm_struct *mm, unsigned long start, unsigned long end, struct list_head *uf, bool downgrade) { @@ -2329,7 +2329,6 @@ do_mas_align_munmap(struct ma_state *mas, struct vm_a= rea_struct *vma, mt_init_flags(&mt_detach, MT_FLAGS_LOCK_EXTERN); mt_set_external_lock(&mt_detach, &mm->mmap_lock); =20 - mas->last =3D end - 1; /* * If we need to split any vma, do it now to save pain later. * @@ -2349,27 +2348,23 @@ do_mas_align_munmap(struct ma_state *mas, struct vm= _area_struct *vma, if (end < vma->vm_end && mm->map_count >=3D sysctl_max_map_count) goto map_count_exceeded; =20 - /* - * mas_pause() is not needed since mas->index needs to be set - * differently than vma->vm_end anyways. - */ error =3D __split_vma(mm, vma, start, 0); if (error) goto start_split_failed; =20 - mas_set(mas, start); - vma =3D mas_walk(mas); + vma_iter_set(vmi, start); + vma =3D vma_find(vmi, end); } =20 - prev =3D mas_prev(mas, 0); + prev =3D vma_prev(vmi); if (unlikely((!prev))) - mas_set(mas, start); + vma_iter_set(vmi, start); =20 /* * Detach a range of VMAs from the mm. Using next as a temp variable as * it is always overwritten. */ - mas_for_each(mas, next, end - 1) { + for_each_vma_range(*vmi, next, end) { /* Does it split the end? */ if (next->vm_end > end) { struct vm_area_struct *split; @@ -2378,8 +2373,8 @@ do_mas_align_munmap(struct ma_state *mas, struct vm_a= rea_struct *vma, if (error) goto end_split_failed; =20 - mas_set(mas, end); - split =3D mas_prev(mas, 0); + vma_iter_set(vmi, end); + split =3D vma_prev(vmi); error =3D munmap_sidetree(split, &mas_detach); if (error) goto munmap_sidetree_failed; @@ -2401,7 +2396,7 @@ do_mas_align_munmap(struct ma_state *mas, struct vm_a= rea_struct *vma, } =20 if (!next) - next =3D mas_next(mas, ULONG_MAX); + next =3D vma_next(vmi); =20 if (unlikely(uf)) { /* @@ -2426,10 +2421,10 @@ do_mas_align_munmap(struct ma_state *mas, struct vm= _area_struct *vma, struct vm_area_struct *vma_mas, *vma_test; int test_count =3D 0; =20 - mas_set_range(mas, start, end - 1); + vma_iter_set(vmi, start); rcu_read_lock(); vma_test =3D mas_find(&test, end - 1); - mas_for_each(mas, vma_mas, end - 1) { + for_each_vma_range(*vmi, vma_mas, end) { BUG_ON(vma_mas !=3D vma_test); test_count++; vma_test =3D mas_next(&test, end - 1); @@ -2439,8 +2434,8 @@ do_mas_align_munmap(struct ma_state *mas, struct vm_a= rea_struct *vma, } #endif /* Point of no return */ - mas_set_range(mas, start, end - 1); - if (mas_store_gfp(mas, NULL, GFP_KERNEL)) + vma_iter_set(vmi, start); + if (vma_iter_clear_gfp(vmi, start, end, GFP_KERNEL)) return -ENOMEM; =20 mm->map_count -=3D count; @@ -2478,8 +2473,8 @@ do_mas_align_munmap(struct ma_state *mas, struct vm_a= rea_struct *vma, } =20 /* - * do_mas_munmap() - munmap a given range. - * @mas: The maple state + * do_vmi_munmap() - munmap a given range. + * @vmi: The vma iterator * @mm: The mm_struct * @start: The start address to munmap * @len: The length of the range to munmap @@ -2493,7 +2488,7 @@ do_mas_align_munmap(struct ma_state *mas, struct vm_a= rea_struct *vma, * * Returns: -EINVAL on failure, 1 on success and unlock, 0 otherwise. */ -int do_mas_munmap(struct ma_state *mas, struct mm_struct *mm, +int do_vmi_munmap(struct vma_iterator *vmi, struct mm_struct *mm, unsigned long start, size_t len, struct list_head *uf, bool downgrade) { @@ -2511,11 +2506,11 @@ int do_mas_munmap(struct ma_state *mas, struct mm_s= truct *mm, arch_unmap(mm, start, end); =20 /* Find the first overlapping VMA */ - vma =3D mas_find(mas, end - 1); + vma =3D vma_find(vmi, end); if (!vma) return 0; =20 - return do_mas_align_munmap(mas, vma, mm, start, end, uf, downgrade); + return do_vmi_align_munmap(vmi, vma, mm, start, end, uf, downgrade); } =20 /* do_munmap() - Wrapper function for non-maple tree aware do_munmap() cal= ls. @@ -2527,9 +2522,9 @@ int do_mas_munmap(struct ma_state *mas, struct mm_str= uct *mm, int do_munmap(struct mm_struct *mm, unsigned long start, size_t len, struct list_head *uf) { - MA_STATE(mas, &mm->mm_mt, start, start); + VMA_ITERATOR(vmi, mm, start); =20 - return do_mas_munmap(&mas, mm, start, len, uf, false); + return do_vmi_munmap(&vmi, mm, start, len, uf, false); } =20 unsigned long mmap_region(struct file *file, unsigned long addr, @@ -2545,7 +2540,7 @@ unsigned long mmap_region(struct file *file, unsigned= long addr, unsigned long merge_start =3D addr, merge_end =3D end; pgoff_t vm_pgoff; int error; - MA_STATE(mas, &mm->mm_mt, addr, end - 1); + VMA_ITERATOR(vmi, mm, addr); =20 /* Check against address space limit. */ if (!may_expand_vm(mm, vm_flags, len >> PAGE_SHIFT)) { @@ -2563,7 +2558,7 @@ unsigned long mmap_region(struct file *file, unsigned= long addr, } =20 /* Unmap any existing mapping in the area */ - if (do_mas_munmap(&mas, mm, addr, len, uf, false)) + if (do_vmi_munmap(&vmi, mm, addr, len, uf, false)) return -ENOMEM; =20 /* @@ -2576,8 +2571,8 @@ unsigned long mmap_region(struct file *file, unsigned= long addr, vm_flags |=3D VM_ACCOUNT; } =20 - next =3D mas_next(&mas, ULONG_MAX); - prev =3D mas_prev(&mas, 0); + next =3D vma_next(&vmi); + prev =3D vma_prev(&vmi); if (vm_flags & VM_SPECIAL) goto cannot_expand; =20 @@ -2605,13 +2600,11 @@ unsigned long mmap_region(struct file *file, unsign= ed long addr, =20 /* Actually expand, if possible */ if (vma && - !vma_expand(&mas, vma, merge_start, merge_end, vm_pgoff, next)) { + !vma_expand(&vmi.mas, vma, merge_start, merge_end, vm_pgoff, next)) { khugepaged_enter_vma(vma, vm_flags); goto expanded; } =20 - mas.index =3D addr; - mas.last =3D end - 1; cannot_expand: /* * Determine the object being mapped and call the appropriate @@ -2650,7 +2643,7 @@ unsigned long mmap_region(struct file *file, unsigned= long addr, error =3D -EINVAL; goto close_and_free_vma; } - mas_reset(&mas); + vma_iter_set(&vmi, addr); =20 /* * If vm_flags changed after call_mmap(), we should try merge @@ -2696,7 +2689,7 @@ unsigned long mmap_region(struct file *file, unsigned= long addr, goto free_vma; } =20 - if (mas_preallocate(&mas, GFP_KERNEL)) { + if (vma_iter_prealloc(&vmi)) { error =3D -ENOMEM; if (file) goto close_and_free_vma; @@ -2709,7 +2702,7 @@ unsigned long mmap_region(struct file *file, unsigned= long addr, if (vma->vm_file) i_mmap_lock_write(vma->vm_file->f_mapping); =20 - vma_mas_store(vma, &mas); + vma_iter_store(&vmi, vma); mm->map_count++; if (vma->vm_file) { if (vma->vm_flags & VM_SHARED) @@ -2770,7 +2763,7 @@ unsigned long mmap_region(struct file *file, unsigned= long addr, vma->vm_file =3D NULL; =20 /* Undo any partial mapping done by a device driver. */ - unmap_region(mm, mas.tree, vma, prev, next, vma->vm_start, vma->vm_end); + unmap_region(mm, &mm->mm_mt, vma, prev, next, vma->vm_start, vma->vm_end); if (file && (vm_flags & VM_SHARED)) mapping_unmap_writable(file->f_mapping); free_vma: @@ -2787,12 +2780,12 @@ static int __vm_munmap(unsigned long start, size_t = len, bool downgrade) int ret; struct mm_struct *mm =3D current->mm; LIST_HEAD(uf); - MA_STATE(mas, &mm->mm_mt, start, start); + VMA_ITERATOR(vmi, mm, start); =20 if (mmap_write_lock_killable(mm)) return -EINTR; =20 - ret =3D do_mas_munmap(&mas, mm, start, len, &uf, downgrade); + ret =3D do_vmi_munmap(&vmi, mm, start, len, &uf, downgrade); /* * Returning 1 indicates mmap_lock is downgraded. * But 1 is not legal return value of vm_munmap() and munmap(), reset @@ -2924,7 +2917,7 @@ static int do_brk_munmap(struct vma_iterator *vmi, st= ruct vm_area_struct *vma, int ret; =20 arch_unmap(mm, newbrk, oldbrk); - ret =3D do_mas_align_munmap(&vmi->mas, vma, mm, newbrk, oldbrk, uf, true); + ret =3D do_vmi_align_munmap(vmi, vma, mm, newbrk, oldbrk, uf, true); validate_mm_mt(mm); return ret; } @@ -3047,7 +3040,7 @@ int vm_brk_flags(unsigned long addr, unsigned long re= quest, unsigned long flags) if (ret) goto limits_failed; =20 - ret =3D do_mas_munmap(&vmi.mas, mm, addr, len, &uf, 0); + ret =3D do_vmi_munmap(&vmi, mm, addr, len, &uf, 0); if (ret) goto munmap_failed; =20 diff --git a/mm/mremap.c b/mm/mremap.c index 05f90f47e149..3cc64c3f8bdb 100644 --- a/mm/mremap.c +++ b/mm/mremap.c @@ -978,14 +978,14 @@ SYSCALL_DEFINE5(mremap, unsigned long, addr, unsigned= long, old_len, /* * Always allow a shrinking remap: that just unmaps * the unnecessary pages.. - * do_mas_munmap does all the needed commit accounting, and + * do_vmi_munmap does all the needed commit accounting, and * downgrades mmap_lock to read if so directed. */ if (old_len >=3D new_len) { int retval; - MA_STATE(mas, &mm->mm_mt, addr + new_len, addr + new_len); + VMA_ITERATOR(vmi, mm, addr + new_len); =20 - retval =3D do_mas_munmap(&mas, mm, addr + new_len, + retval =3D do_vmi_munmap(&vmi, mm, addr + new_len, old_len - new_len, &uf_unmap, true); /* Returning 1 indicates mmap_lock is downgraded to read. */ if (retval =3D=3D 1) { --=20 2.35.1 From nobody Sun Sep 14 14:22:07 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 79169C05027 for ; Fri, 20 Jan 2023 16:29:11 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229805AbjATQ3K (ORCPT ); Fri, 20 Jan 2023 11:29:10 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:35534 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230120AbjATQ3H (ORCPT ); Fri, 20 Jan 2023 11:29:07 -0500 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id C06A910253 for ; Fri, 20 Jan 2023 08:28:33 -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 30KGBbwf003319; Fri, 20 Jan 2023 16:27: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-2022-7-12; bh=mvMGssGEYPvJ5KU/V0bTBtugeWrNBGbZe4Gk2T9rYno=; b=CqS4l5aocyyCQr2N465NILACzxaTUaSrgjvXtOW5pi6Ly7/X8LvUet/SaeeUp6R5d5oX /LiFFWpgd5mmYEjeSh3SiDRd2ugDeB4KgD+/FU8m4yJnnkpzerJXxwhm7XEyrNgC2r7D 7SP9iNA7lyqim2Xzj61R2qLp03PZJ2KhHU1Y5haNj9t0JgGCTmu9jHSKTBzM3YvUEMuV 8Di4CnE+enr+rLOR4iKIYlsA3VIApag3bkWTfC6WGhV/0O8QCDDVo8xDBu063oWyZpuc oxuuuer/OoUl/zEJvrrr2TTe0UvvTMtRPcQcX4nygQjH7sBVzzn5jMfH3eeb5GG55YfE Kg== Received: from iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta02.appoci.oracle.com [147.154.18.20]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3n3medn7f2-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 20 Jan 2023 16:27:45 +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 30KFNX9u018804; Fri, 20 Jan 2023 16:27:45 GMT Received: from nam11-dm6-obe.outbound.protection.outlook.com (mail-dm6nam11lp2177.outbound.protection.outlook.com [104.47.57.177]) by iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 3n6quj9ynk-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 20 Jan 2023 16:27:45 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=XGmcfHGmNmj74ctpNx+d/8HcYLpun2yzNMVCc6NbzCtQ09czyEJz5XIxn8fjL46m2ItogM/oxl4QWPEmAf08gjvlZXT6KQPUeI1asEklSLF7XB2G+V3n19bohMC94y4EysLvGvDAOiwtCjxC8e7/7xoIb45KED2ssAzYCE7X9Q68zValIGq6GfWY7NOyRbtcVeU1cbBKHBqIwIi6qEessKf0vXWTukk35Kl7E3xtxkHNDX7v7zRPV3I/y3JdXriEce4rSvfRpAT6ukFFixIPWhrPoVTzbfw+8E9kLsmfZpTJ+JHwp0CyRK65uUEIHWdraQax0CK/gi3UQ5FvlHmeKA== 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=mvMGssGEYPvJ5KU/V0bTBtugeWrNBGbZe4Gk2T9rYno=; b=k36Ak5+X/hSi4/wQz/JDPdwOML/ncat451oOVqv34OK35OSpttqtHBULOK8zb844cO7Ml4YFw8PY/UmE/O+6zzNN1wIeUMOhWlTbdbyWh2Ue325tbTX5Bn2qgpuo/v8nJ+InbKi81sz+fmbPjWq8JdVXhIdFTXAug8aeGvyK7P5v3wvxMzi+l1/9wCkBdBusqO1FEdVIE5T9TZB+Na3Zff6SUUKp2fyBpzWoydkGBIZcriixYqPqqwULE/LGq6emNjLlemLeVnL3MGEZtLU+xFJ1MlWXsgv+WmG5OiUWNhCOPBscZsCR1Kc+Ge9yhMulOFRG9KUQzIa+3XbXahFqTg== 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=mvMGssGEYPvJ5KU/V0bTBtugeWrNBGbZe4Gk2T9rYno=; b=R3i9l7evgHKerkBo7n9sL7TJDhksGLKgbJwqp87WUGDpdzZGki87tvFOAFXpGDsAWQrqHHPePygj/foDkUL5lV2jQIWc7+IQnpBEsahHoA0YPfK0EXEic8X4Oei+hLgM+vgOeg701/8JWTInj/Z+b347+NlUZAYlmRUiuKIkIjk= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by SN7PR10MB6619.namprd10.prod.outlook.com (2603:10b6:806:2ae::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6043.7; Fri, 20 Jan 2023 16:27:43 +0000 Received: from SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::7306:828b:8091:9674]) by SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::7306:828b:8091:9674%5]) with mapi id 15.20.6043.005; Fri, 20 Jan 2023 16:27:42 +0000 From: "Liam R. Howlett" To: linux-mm@kvack.org, linux-kernel@vger.kernel.org, Andrew Morton , maple-tree@lists.infradead.org Cc: "Liam R. Howlett" , "Liam R . Howlett" Subject: [PATCH v4 13/49] mmap: Convert vma_expand() to use vma iterator Date: Fri, 20 Jan 2023 11:26:14 -0500 Message-Id: <20230120162650.984577-14-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.35.1 In-Reply-To: <20230120162650.984577-1-Liam.Howlett@oracle.com> References: <20230120162650.984577-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YT1PR01CA0068.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:2d::7) To SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SN6PR10MB3022:EE_|SN7PR10MB6619:EE_ X-MS-Office365-Filtering-Correlation-Id: 39632f80-5f7b-4e60-9870-08dafb03413f X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: q4f7osJblERjIU/YhjawrJffF9Z7sJKCv4k1Ejp+7Wr+7M2/58u2+YCzS/94nVTw44mOfzU3lUN+EydrI5G7pb6SpRzHgL1ZwlFaGJ77gP2eue5sCtO+Ck7v8L86q/O6cUVGCEem9WzAfy6yMLMjsdWoQot9B/UqTCZER1AEDlzQKVfEgzhf0ejP0ObWlk6B/pX1pbPjYYh/wkmqK3405JHFYNdmwNfYTnYkzvfCmmx20ed8kI9ntgjBQiSh4IW8kMI/B7smT/sk3VrQA+wIVhpeNGGxk0Ri2cafiEGCcfgYZA5dvjFVFyoZNU00lXxG3RDsrfJnWcUedSkvYEwbU7mCwJxOX4zm06pnPdsXyXywHxJYPt3GufTaQyb1LwG02100fCrybhchhbaxs0k/9CdS3rh6qaqq4BAYzfjW3FbITWKHqiPUaKhFLL7bybCBdZC+spTO2SiQntnhkzdUKhNl3n5wNvyyd0Ykqojtj9yE2L8J+jVIn2I2YfXGg522NKC5cx6uJHYw7eUZUasv2WcGzTkSgNkbojI1OvbA5UvAMmPM6RJKPwg5DP4H8bKHS9VCKeLUIAyFpyPUNkQEPhc5BpSVE8mqiZaERc0gis7BfKGTcUUR574UHMhOR+lkN2fKInQ+lAzLDH4/qCP7NQ== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SN6PR10MB3022.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230022)(136003)(39860400002)(396003)(366004)(376002)(346002)(451199015)(83380400001)(54906003)(86362001)(5660300002)(6486002)(2616005)(38100700002)(8936002)(478600001)(6512007)(41300700001)(2906002)(107886003)(6666004)(4326008)(8676002)(66556008)(186003)(26005)(316002)(36756003)(1076003)(66476007)(6506007)(66946007);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?f6cDNRwmI0a4Lg+BJvw8pqvoDIIYhAfwlWE7tEYAjx9qdak4Dosx5R4B8RXC?= =?us-ascii?Q?HNZ1effBnwCuGs+wLAgJoG6BlJEkFZriegXrDfRs2NWmJlvvgRYHZ2/Nxdd3?= =?us-ascii?Q?bj4vQqvzepYQAg4Q7hBpjWtn7SSoDLRd1jWkvh/fiIcOgjYYHlcstF5SZK05?= =?us-ascii?Q?I+uoezhYb1keLTPHUVsxLSWejW4dr7highERGwsWVFET4AIWqgmgP7ZHRLgV?= =?us-ascii?Q?hSVOVw4x6ijqJptiQAXn7OdgPeIR523t9ezGLbhW/DgMYegwvnF2eX+pRcjd?= =?us-ascii?Q?m/QljMXSo4q8tJvdbU4BrR5zMnu4PsfZZtAMXLu5WjU03GSI/4q7nTodScIM?= =?us-ascii?Q?AU8SO+/7pJshdrRwbUztjN5z3z8Uy7vIGsovwdAS+xJ39dNs7ATu3JACcwGl?= =?us-ascii?Q?QGaBtop/xqH7s1OJaTE7BhVMv0k8vUMtY3U5MmEwGclfHie36HrlSvuujv2u?= =?us-ascii?Q?RYoLsPSrtm6eyxUdH5YYYChJ2x5NTNcr3NXEmyapF4QHi2LOdEaqunwOFT/e?= =?us-ascii?Q?RNOj2L9gey0t2A/zrkRovwgeQZNLzU9Hc+37tmY/01N8fB06bKKlaTEjfHke?= =?us-ascii?Q?lKHA5NpQY4UrukPV2Hqd5aWWT9iCPIXWIxu0pNMwzYFxQ9Z/i0wA2W6w88QA?= =?us-ascii?Q?e1quNyix8bXoFfow+4/ROWxPVmqgwzA/LZv5aycGQAO3wDycj0ZEwysxqTOM?= =?us-ascii?Q?QuWar+pNRX+l9ogXxuJgmITttnGOoJpVcjoEkNher7pob+TUu74vRv79WM/G?= =?us-ascii?Q?obDCmltltNL6ds1YEjgwSv0afnuhl0aq2s259SMbFn95g4dPYYKxkI4hepRq?= =?us-ascii?Q?cgvHAujhLp0umFsupFokUlWslhyoClmqunHkQq0+C/knihpZHcjKCgZZ4yGS?= =?us-ascii?Q?7Grz+nBDWyYhVrLOV3c2YCiIax9CZ2Jx7272teddTpPkmxJDNjazx7w5kaH8?= =?us-ascii?Q?AHyh8waUO0cT/q7l9zGl4M9Ijox5umSO7LDZsRx5jZXW/B4QvOSHrv18XHwV?= =?us-ascii?Q?WBCH0d7lie7b0JvircFSUu/rEpRW4fkS8Cwjap2RLxgIpN07auOasx70AyAs?= =?us-ascii?Q?xQfJb53bveF0HFEZm5WJsPNvyMtcGxF2egvtkIfbckWae9JMpfOYIN2GD0F9?= =?us-ascii?Q?THe8Baw1y6iX9Gs6SoebZlkrtQiJN7Tyf+UTwuz+YDUifIcsPusKge6JPdJU?= =?us-ascii?Q?GVBMIJ08xk4o+mOaI2L1iGVxKrONjOmoCDWcoGLzS0EZFuk+CIo+xAcKX3XR?= =?us-ascii?Q?Q70f96BwJa3XXuI4iFNgLBa2uXnxfjnwGGblwb55NRe+qp18vD2yxBZ6tj6R?= =?us-ascii?Q?BKUvHFKxNJCyksEEoQKXEuRRGd6RVLnIMSEy5j1RsTH3e9pG9DJ32Bdddbff?= =?us-ascii?Q?amUKgD6WlluFoQNTawU58/vlVgt9hGBYRhfJlGXCJvom2zeUerMl3KKEX74x?= =?us-ascii?Q?4pEhPbKoX12pPlhuosrxhKwY95IcMisPJaefBIjIC3W9UcVg1SKyrryWGFp5?= =?us-ascii?Q?+4X5Q7ZVQCUaAxEv/hewT8nQbVrPchjc15SABB4PnklXcwXCbgT8SmqjdBAI?= =?us-ascii?Q?0oO0mwDNrpbURjwtXG2n6tPrgaxlblUFbbnWK5e0/4+fcY1yfpqk05BiveOA?= =?us-ascii?Q?Ag=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: jRQ++Hxi+Qq1AwEOaeWYN4ImpnLAAb5bSyrwVZszDdJcWvIJvFOrEnUT+DAC1QrdrDzpkpnzRX5E8StqfWehvzYa74X380hYgOR2rM0UE2fZ6ub7K7wsjXOD29LixsGn4/xTAtx9keuJY2RuOi+DUu7ISuvX8L2FgJcjfrE+yTr138NcdQV5Gm9L8Dhmiwg33boX0mZEV2RQEEHBsBpYd7fkZQ9LZ50x8kg0Qc5TLpv5Cw72TXeRkyT2oDqMMWE3pBaNaTwp8F4rIQnR3RwlHJvoVl0zB6moHsaFOMdHKYOC/CQlt2sjDQyA1i2BrboTI92nppf55TV4SnpSkh9E6T+eDYEefR0n5ZM4CRFJdkmwICkzLjjj9A77QPyNI8CyROM588TvwWzMZ42qUtyDt2zkPqSNoMstj+1pEWfuFARMTplANE/3PdIEDJWfXaxaySJXzbnaSmSu3D3ByR7YjVPwQyqbjf/4/amvgZ2jgmt7++rTGYLBt7WI1kzl/SKB91sAbC0iBZZa8urGlJ0PwkofH6YhHeTVZdKk1Jffo1I1BMSS88BTB8ysh3KFci5mhJaT5SwWulgiYrQ1UtjHeOc3vVsRoGUiNgyXLx7Ldr/o4WRhClz+wfqZVKgQ3FV5LNaaFNSRlIlr2B7ycpoQkUp77/8xmEGH9eROUljoduBBTvgayCnsp1TCoKWcgmPFQK/GVJdZk8hiVulCra659j/ahk3NpW9BfmbfkZm21U3RZBjnv7bx2qZ9uaMekUAdAdIvYG2cGOOGo+TwA/z2ixoZEcJrSNzaAec+1ABGGQlQvhvl3+1oMPndo/tIJgDPgIEEgpYhOTaEPXwmu5oB7ZW9yEOu4qTKsdDdFSzzF73hHxH/kD3TWD1rHFQuZexbBPbXDNMwcs8Rq1CW5fQPEQ== X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 39632f80-5f7b-4e60-9870-08dafb03413f X-MS-Exchange-CrossTenant-AuthSource: SN6PR10MB3022.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Jan 2023 16:27:42.6225 (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: 920xUNrellIVqZKpNF+1+tJfc4vidy8xFjuR9eAO/kqa+wPwyTZtKnOvqhwzKlXNJvCUrNF5opcGTR3Nt5960A== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN7PR10MB6619 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.219,Aquarius:18.0.930,Hydra:6.0.562,FMLib:17.11.122.1 definitions=2023-01-20_09,2023-01-20_01,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 suspectscore=0 phishscore=0 malwarescore=0 spamscore=0 mlxlogscore=999 mlxscore=0 adultscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2212070000 definitions=main-2301200157 X-Proofpoint-ORIG-GUID: 8jQncsdDebilWSu8GEFcUWnv_rhC7HP0 X-Proofpoint-GUID: 8jQncsdDebilWSu8GEFcUWnv_rhC7HP0 Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" From: "Liam R. Howlett" Use the vma iterator instead of the maple state for type safety and for consistency through the mm code. Signed-off-by: Liam R. Howlett --- mm/mmap.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/mm/mmap.c b/mm/mmap.c index 18f5f71a9202..2ec671a119c1 100644 --- a/mm/mmap.c +++ b/mm/mmap.c @@ -527,7 +527,7 @@ static int vma_link(struct mm_struct *mm, struct vm_are= a_struct *vma) * * Returns: 0 on success */ -inline int vma_expand(struct ma_state *mas, struct vm_area_struct *vma, +inline int vma_expand(struct vma_iterator *vmi, struct vm_area_struct *vma, unsigned long start, unsigned long end, pgoff_t pgoff, struct vm_area_struct *next) { @@ -556,7 +556,7 @@ inline int vma_expand(struct ma_state *mas, struct vm_a= rea_struct *vma, /* Only handles expanding */ VM_BUG_ON(vma->vm_start < start || vma->vm_end > end); =20 - if (mas_preallocate(mas, GFP_KERNEL)) + if (vma_iter_prealloc(vmi)) goto nomem; =20 vma_adjust_trans_huge(vma, start, end, 0); @@ -581,8 +581,7 @@ inline int vma_expand(struct ma_state *mas, struct vm_a= rea_struct *vma, vma->vm_start =3D start; vma->vm_end =3D end; vma->vm_pgoff =3D pgoff; - /* Note: mas must be pointing to the expanding VMA */ - vma_mas_store(vma, mas); + vma_iter_store(vmi, vma); =20 if (file) { vma_interval_tree_insert(vma, root); @@ -2600,7 +2599,7 @@ unsigned long mmap_region(struct file *file, unsigned= long addr, =20 /* Actually expand, if possible */ if (vma && - !vma_expand(&vmi.mas, vma, merge_start, merge_end, vm_pgoff, next)) { + !vma_expand(&vmi, vma, merge_start, merge_end, vm_pgoff, next)) { khugepaged_enter_vma(vma, vm_flags); goto expanded; } --=20 2.35.1 From nobody Sun Sep 14 14:22:07 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 01738C25B4E for ; Fri, 20 Jan 2023 16:29:26 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230134AbjATQ3Z (ORCPT ); Fri, 20 Jan 2023 11:29:25 -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 S229728AbjATQ3X (ORCPT ); Fri, 20 Jan 2023 11:29:23 -0500 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 74737C153 for ; Fri, 20 Jan 2023 08:28:43 -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 30KGEBFP006188; Fri, 20 Jan 2023 16:27: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-2022-7-12; bh=Q9gXkD7pNY5boTf6/n69cYfv4qPG6fatPSUYpXkTdDQ=; b=FAc7yrN/dbTPy5RJehZjA3pdQxAXlGGCw4VXjQPLHIlY93DFfbYRaFf2ry9wy32yWmw8 PSImKQy9qRCN4quilZdavNBZ0RteutDCSKw6grMeOmc+2N14VATTzZdLs+BBSWMDlVgO nB3ul50stbBYsF3hhw/2hPA6lViTtlPbdj8eUVAdUpL7C44R3nPeUP1H6vEEKI2il2YG R2bIx1pi+e1SIG3S8oGoEm6jOIA3VQiKkgMjR3lkLUUNdMW8WQfxNQrZzQpzJcUo2WZ2 uu+YBSrcSO80UEhLV+LHm1zujGKnMuL4sep2ladngXU1Qw6hvjRt4n0ps8samB2PFLWj Ew== Received: from phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta01.appoci.oracle.com [138.1.114.2]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3n40mdmfv8-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 20 Jan 2023 16:27:49 +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 30KG4G4Y027874; Fri, 20 Jan 2023 16:27:48 GMT Received: from nam11-dm6-obe.outbound.protection.outlook.com (mail-dm6nam11lp2176.outbound.protection.outlook.com [104.47.57.176]) by phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 3n6qud9185-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 20 Jan 2023 16:27:48 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=hfu0Qt3wsUpqfjS+N5cBcQt3N8V+Z1u95LxcHub3o36ZGfsYsab+TS88yEtTz7dg4XfDMHnW+VtiyVW8eKVzOfqTefvcj24cHyJ+MyGYb2HkTyEXC212b8KfGkD+oyyjysnfvRLmtmGchWxoPiZk7iVpmnjbl7MP/HSd4N6gdc71cF6EsxIV2sWTsmtoHx+bszi02Eh8EiarRX9/xIEa5nr/K7BtvARGlC/5lw1gjGyPFWHrBqtsmpUbQyAxNx+AQLAv5RsAst7TsFwV7eXO5ba9sKxQ7IRBJ1UDorsSGGigIsnXpfiBmldI+hWfvZlud7xZ3w0qv7dbym/37RUKEQ== 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=Q9gXkD7pNY5boTf6/n69cYfv4qPG6fatPSUYpXkTdDQ=; b=KobgkiXvyZvuTujVB5CNSLyRemPJRMvP933tuC5w1xuZpjuSSNrM4WQeZEg3CcXm+v5WzRVdRh6JToTRy9J5OJeqOY9OtdDMJ9K/4o1z55hq+x9c4dkBGQGxB2mgqp7F+17HenQfiwafppBLPPYzBY5hJ7Iulmh+fI+71oMY90u+6JAzA78HWG41k0T2AajNW2MyKqrN2qqOJ26RtIpauLCnqRqqCcQXwv/+4VUMhuR5nZ68cuDkno+pk2sb46ygmrQ93XFVff5M36Ne+pMT/kjX5y6sunceqIyFi/IumFLvrWbYgCVRWZJ0kEq+ZrLNYqrGJ2GEP0LeA1lGTig4Zg== 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=Q9gXkD7pNY5boTf6/n69cYfv4qPG6fatPSUYpXkTdDQ=; b=HyZlBs8w9BuuMcoo+nvyy22BpRC2uW8ui5NDB28zo4ZWK+Qcwo5brnC650rigHHYqZYmP/ItWjM1JssxiF556kHvv980H/jBNwu8w8XuL2ITx6YsJy9OUKVb0D706z7hzRyj1XjF6ZkILuHqHIqEfkX0CJcm2522tsmesQJOTkw= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by SN7PR10MB6619.namprd10.prod.outlook.com (2603:10b6:806:2ae::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6043.7; Fri, 20 Jan 2023 16:27:47 +0000 Received: from SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::7306:828b:8091:9674]) by SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::7306:828b:8091:9674%5]) with mapi id 15.20.6043.005; Fri, 20 Jan 2023 16:27:46 +0000 From: "Liam R. Howlett" To: linux-mm@kvack.org, linux-kernel@vger.kernel.org, Andrew Morton , maple-tree@lists.infradead.org Cc: "Liam R. Howlett" , "Liam R . Howlett" Subject: [PATCH v4 14/49] mm: Add temporary vma iterator versions of vma_merge(), split_vma(), and __split_vma() Date: Fri, 20 Jan 2023 11:26:15 -0500 Message-Id: <20230120162650.984577-15-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.35.1 In-Reply-To: <20230120162650.984577-1-Liam.Howlett@oracle.com> References: <20230120162650.984577-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YT3PR01CA0024.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:86::31) To SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SN6PR10MB3022:EE_|SN7PR10MB6619:EE_ X-MS-Office365-Filtering-Correlation-Id: e3f4a4db-5c04-4bdf-6aad-08dafb0342de X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: VwEnEE/N5Ys2t5hgkywDN8WKtXw65ioWuGpkFVHvpBRYueFLz4097g9EGLYQ4lewom1amyS+Vj0PxsgPwaYaGldpluhtuNro0sL1DsQTcmI8C+J+tKldB9FdxCOCutv67J1K/3RmR0LWkgZAHfnzp7gm2Wcnf/i6ijpNW3UBCh5I/oEWyb5Qnom5vXj/mr/IHytWwT0uZsDVQ+agye+97ncNfzto6sTysWZuumh8AzSLpCi+F+4wsROX+2ZJVHuYdjuD5xnQaxTRtHDoQkQZg3RGbjUQXRUXj2Ikt5mvB33FPdInSOh0clMHuWKefdShRXKNoqpRy5u/XH/muDBo1knD9swwQw5xYA7noKvM5XLLaEvIy9WM2RsUw1Roq5Cyu7OKmV4oCb2/1z6QS+jjVw/Vd4mwEL21zJuVAXh9tN9BlUc2QCCbFjlSgIlbLsHLZs+J1/itYwwtE64Tlrmw7auUUywf/ZxZq/ORohD6Ebb96Q8FWoAM8D/Jj/vV9gvbOw5y+r6YOCSUjQE6Bd2vvQEZX9sKVkEXCfwHHNwEefhXfyvgZUQM5VnOEf6DtOClO0qb1tmf4tp7idG1h9O1M7TXFJtjXn1XYOIVVAdY5U4XM0+rT+KTSdZPwIlLQxOGN9IuWZl8BPCQ1X8KCNnx5g== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SN6PR10MB3022.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230022)(136003)(39860400002)(396003)(366004)(376002)(346002)(451199015)(83380400001)(54906003)(86362001)(5660300002)(6486002)(2616005)(38100700002)(8936002)(478600001)(6512007)(41300700001)(2906002)(107886003)(6666004)(4326008)(8676002)(66556008)(186003)(26005)(316002)(36756003)(1076003)(66476007)(6506007)(66946007);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?JgTpiTMV5E3/wkM3wAyJfjSzruksIib0hh1hCAjJ/99o9lBHWqknuIVBR2D3?= =?us-ascii?Q?Xo0wMghUOkSGsWR4AArYmpaJPtSHCP4kS/wBsuLDXgMhuD3YFD8Zhb7ix1Dq?= =?us-ascii?Q?3Xg7Ktvpgf0R6GhGN59n5WnJK2gnq2P3JcXuZ5FPkf5R9nDQ7XMIAwrM8aGa?= =?us-ascii?Q?ju6IQ86Hv5zypmNqCMt9pQzqueodWqAItVB4UbSeA/RlOKFHRQSepBy56Zfp?= =?us-ascii?Q?r2NyTUAr2xbWm4J0feGx5J5JUyBb7GbfhLmWA0dJ4a5srZyXJyi6HOzrhsqz?= =?us-ascii?Q?kWZuCl1j8t48GRzBDan5AyeDrkTr5Ako40HHsfdNALmZe1l3/F2hARTYKvHk?= =?us-ascii?Q?H6j629ThnjVTVM1FHzRrYCPV+MgpiTdOUr6MfGXJmzJZHALkvoDtFnIN9Nw9?= =?us-ascii?Q?E7w8qRMlmUBaD/n5OzvgTkIhyqFPKicBdpqhirG6poMzqBM4RtHMQolJV3DM?= =?us-ascii?Q?/wGwKPt/N1kUKE+4IWGqYSB8pD0GjIzKkyAkgqn7dmYjzjYsTp5wEd6gjtQk?= =?us-ascii?Q?r2KN9KsLGQ51jCwFI9uqyZTMRmmQliNLM8LOQbfV85ylgmu+CFBDfjSm5SVu?= =?us-ascii?Q?8bMdqyNiI7KoDdyuapyT7HY3WYyUJC3xUhcgvc3lshtZ+EFhvU7h+J0ZFBVo?= =?us-ascii?Q?Kqx+ppjcToZeFhEX8IjX5vMPZwBWs4FIBanscOuhZlrmeROvBTHI+sa1TGLp?= =?us-ascii?Q?ROl5FBS5XgSkGaRL0k5Lj1kRh+9yizsCMNY6RstKVi9Cx7JBDwY00DJ3Wdmx?= =?us-ascii?Q?MeSwRnXYl4afki7aarR2QiECPevNl3eM6sDR7+HO0A9T6BLQOh3wZ/HetCVd?= =?us-ascii?Q?3EaIz1cd2L/hhhvUyZ3BzzE9DAQS+h4uT4i2O5CNKOjV4l2SfHp6l0XRD8Jv?= =?us-ascii?Q?H1dZz8UNMnSYzdVtBzvrncCsAJ7j/sgjeNn0vXt8BNU7rNtDeAiwcZAmt3Xx?= =?us-ascii?Q?POxBk5eE0BMbHxI+nBLTN3zdVPQz1HaDe93i8GXKdVNxVagzudSg4Y5v749K?= =?us-ascii?Q?lRDa4OYbOY56n0dBL/KAC3ecbqrQg4h+j+J5lCzqjJ5Rwt+Mtwgq6ajk5+tH?= =?us-ascii?Q?fTDg395Ef0iVCB1opaxLbHvaiF1iHpVNJnHjpJcqH6nUxQ/+UUlwMVyKgeu7?= =?us-ascii?Q?n+Ln0UmPYbBZCbkW75YzUfKuXrpvUYAYKgR5i/d/4BQYed0jW35XYBUXajqS?= =?us-ascii?Q?ezkndkj/ENcLJ6a1bbm7og49Y68GGC0VHD+8vONQiJ1Psl7nT9/Sb29ddJyK?= =?us-ascii?Q?R202jA9hoLl7OAxIGCQBSZU2VbT8Dn10B+lZn1BW/sojAR9EVxUcYQpD4VLB?= =?us-ascii?Q?f9lf345KdggsToXuQF2zFT95XzxHNatZR03JrENoSv6LxQBMCuxc9+wFMLWt?= =?us-ascii?Q?x0zofzPCQmorIVXsM44qZbuK3cwaaHi4C5WwUwy/vhbS1HHGJFke+y9y0XVl?= =?us-ascii?Q?6XZYnCH1xnJju/LQ7lyojbIrHe90UIysiL3j1+Ayhmjr2ImpSlkVh1yYO6zv?= =?us-ascii?Q?Ue93lDDb95onezd21E4ExxBmxnSVpZ9HsEYar5uPJWvFW8twVRl/fKrOevbK?= =?us-ascii?Q?gNk+RUID0q50mzgNLKTDJSGPJQrRURv1na4IxVZmOoW7TMASBCtU+1vF9mMf?= =?us-ascii?Q?Cw=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: LHD2bO3QoYgkob+yf7Qyl9nBK4BI0qAgdteuIw9w1u+O6onSdO1tIDpBCfzirdWFIvUXeb4uX/kDEfq6wufolq5+LM77fNsmxWouYiq2glcbZ6+8lQIN1Dr8/c93NNgvJnEVT0OeIr+B0+o0/6i3YhfIDuVJpLikqZ0KFFZL/QiyshGlQnbADlPFyf3Lu50tx6ZDzvpKk3uD2YAL27ccZNbSAl6yFmLyDdD0HjPz62DMFxLF5ctM49PIFbD5gmsT1/B33sMT4TzLIFmc/Ff/UxxFNsoPY9vSvbPrlZyiff93z8+2XiYQcLm13DRqSOwqx6Coqv1GNFSSUWWmGlrHZq5No03jkYncZl5XlAatI2HsthQv0vCaucTO6n9PW845hBMuar3M65UaujC7cOh0+3mNw/KymG7XFm7GUPZCTq2kc8kax9R4ms1zFDQbYdz2q6F88/KjQQS2dy9f1pQmTKf/K64xpncPRIXbZkJ3YqAblRITyNQ44yAoMSHjNCUY5VGKqoDISKzSUaEGVPX/3MWZVjvMdTnwNRNhYsVm1IctDBAwMztuikFx/K9t0XKYcox9A2+4pIiGj236172teTd1pU4PmAnLBtK5dUrbNnubQBu4rWqAnNznQg20cXFpCdenK19VqsKebWpfbbWFTClkT2M4ouM6iRuspoMT7c++SkWcJi/oaootUh/2ShgO12Q1pK18XD94klzLnRPbWx287aSW1pSwJSyCtHNguowc+uu/Y0pgO7TwMymGnm8LS2nwUWOyAhYXCGfHUP+1QsUHpuPtlIJTS5gqNw+tapdYeGgWbWabdL+ziSMZNrJXQk2RXWlcxPaNjaRT+u4SCZ+gO01FlabyMnatHZwMxHqq6J0AUXZLT7kLKt7PGLyizC/f40IJhSxWiauc7NDxOA== X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: e3f4a4db-5c04-4bdf-6aad-08dafb0342de X-MS-Exchange-CrossTenant-AuthSource: SN6PR10MB3022.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Jan 2023 16:27:45.6536 (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: e3w3eTvOFs8F0o0M/t+At7v5v1PEmyPm3ed0BrlvYFgvzuKltTRrWguVXK6hEWUu4HLOxwZpzDgNObxb4q5dfg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN7PR10MB6619 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.219,Aquarius:18.0.930,Hydra:6.0.562,FMLib:17.11.122.1 definitions=2023-01-20_09,2023-01-20_01,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 phishscore=0 bulkscore=0 suspectscore=0 spamscore=0 malwarescore=0 mlxscore=0 mlxlogscore=999 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2212070000 definitions=main-2301200157 X-Proofpoint-ORIG-GUID: oJiTum2dZVAtP2njHh6P48PelAvSrKnB X-Proofpoint-GUID: oJiTum2dZVAtP2njHh6P48PelAvSrKnB Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" From: "Liam R. Howlett" These wrappers are short-lived in this patch set so that each user can be converted on its own. In the end, these functions are renamed in one commit. Signed-off-by: Liam R. Howlett --- include/linux/mm.h | 11 ++++++++++- mm/mmap.c | 44 ++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 54 insertions(+), 1 deletion(-) diff --git a/include/linux/mm.h b/include/linux/mm.h index 152a1362b800..956025940053 100644 --- a/include/linux/mm.h +++ b/include/linux/mm.h @@ -2843,11 +2843,20 @@ extern struct vm_area_struct *vma_merge(struct mm_s= truct *, struct vm_area_struct *prev, unsigned long addr, unsigned long end, unsigned long vm_flags, struct anon_vma *, struct file *, pgoff_t, struct mempolicy *, struct vm_userfaultfd_ctx, struct anon_vma_name *); +extern struct vm_area_struct *vmi_vma_merge(struct vma_iterator *vmi, + struct mm_struct *, struct vm_area_struct *prev, unsigned long addr, + unsigned long end, unsigned long vm_flags, struct anon_vma *, + struct file *, pgoff_t, struct mempolicy *, struct vm_userfaultfd_ctx, + struct anon_vma_name *); extern struct anon_vma *find_mergeable_anon_vma(struct vm_area_struct *); extern int __split_vma(struct mm_struct *, struct vm_area_struct *, - unsigned long addr, int new_below); + 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 2ec671a119c1..5092d0405883 100644 --- a/mm/mmap.c +++ b/mm/mmap.c @@ -1091,6 +1091,25 @@ struct vm_area_struct *vma_merge(struct mm_struct *m= m, return res; } =20 +struct vm_area_struct *vmi_vma_merge(struct vma_iterator *vmi, + struct mm_struct *mm, + struct vm_area_struct *prev, unsigned long addr, + unsigned long end, unsigned long vm_flags, + struct anon_vma *anon_vma, struct file *file, + pgoff_t pgoff, struct mempolicy *policy, + struct vm_userfaultfd_ctx vm_userfaultfd_ctx, + struct anon_vma_name *anon_name) +{ + struct vm_area_struct *tmp; + + tmp =3D vma_merge(mm, prev, addr, end, vm_flags, anon_vma, file, pgoff, + policy, vm_userfaultfd_ctx, anon_name); + if (tmp) + vma_iter_set(vmi, end); + + return tmp; +} + /* * Rough compatibility check to quickly see if it's even worth looking * at sharing an anon_vma. @@ -2276,6 +2295,18 @@ int __split_vma(struct mm_struct *mm, struct vm_area= _struct *vma, validate_mm_mt(mm); return err; } +int vmi__split_vma(struct vma_iterator *vmi, struct mm_struct *mm, + struct vm_area_struct *vma, unsigned long addr, int new_below) +{ + int ret; + unsigned long end =3D vma->vm_end; + + ret =3D __split_vma(mm, vma, addr, new_below); + if (!ret) + vma_iter_set(vmi, end); + + return ret; +} =20 /* * Split a vma into two pieces at address 'addr', a new vma is allocated @@ -2290,6 +2321,19 @@ int split_vma(struct mm_struct *mm, struct vm_area_s= truct *vma, return __split_vma(mm, vma, addr, new_below); } =20 +int vmi_split_vma(struct vma_iterator *vmi, struct mm_struct *mm, + struct vm_area_struct *vma, unsigned long addr, int new_below) +{ + int ret; + unsigned long end =3D vma->vm_end; + + ret =3D split_vma(mm, vma, addr, new_below); + if (!ret) + vma_iter_set(vmi, end); + + return ret; +} + static inline int munmap_sidetree(struct vm_area_struct *vma, struct ma_state *mas_detach) { --=20 2.35.1 From nobody Sun Sep 14 14:22:07 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 501C3C25B4E for ; Fri, 20 Jan 2023 19:07:53 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230157AbjATTHw (ORCPT ); Fri, 20 Jan 2023 14:07:52 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:45426 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229765AbjATTHu (ORCPT ); Fri, 20 Jan 2023 14:07:50 -0500 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 64A7715CBA for ; Fri, 20 Jan 2023 11:07:48 -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 30KGE8gK024797; Fri, 20 Jan 2023 16:27:50 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-2022-7-12; bh=EDNWgaPr84wzI5zY4rRj3tBHM0uwh4gNSNGy1GLqfSI=; b=uZv2dLGTTJLhicPDZEaiGBuowL89Ose4KMV1xUkKmgt1gJE7DXW26jZwjlbp4+8YiD7F 6XiuQzCMUYsNHF2bcwcFNE5D3Vl6CkBUU9T75TILQYDAi2ZEckaJdUxy+/1CORh+rSvA dbAEx0nnOMKCeUwM8D0+sKeCWJTMpTibSfamfc5L7n6V/PaTdhqILX0D55ObnXe1gNXO I9HGdDxuOpq+pB7svNQEAtRbaE8nk6l0ilM73oUU146HmkMR0kbwubwfEatFnG1WfI/B uVMo/JZCW1HlsGm6NmB5WuMGP6PN+tS5C5qx42lmBMEjFs3g/1sI1JPQReqV9xse9tA0 hA== Received: from phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta01.appoci.oracle.com [138.1.114.2]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3n3k0154b7-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 20 Jan 2023 16:27:49 +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 30KG4G4Z027874; Fri, 20 Jan 2023 16:27:49 GMT Received: from nam11-dm6-obe.outbound.protection.outlook.com (mail-dm6nam11lp2176.outbound.protection.outlook.com [104.47.57.176]) by phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 3n6qud9185-2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 20 Jan 2023 16:27:49 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=UkeZBP4uTuIlcUjsansuw7l5zpcNDIbdA7Z272gKSHV0WEe8UkDkCCZfn+NtjGdxqSkfl6Vl0vYXjXcjDObauGmQjz0HYggGBpZw/Tk6Lpu9oL9BOQLGmGHTG+Wxldhk8uk7myTs8B13sGYGj7RksMTMRlsHRBCHuYTGuHjefgffG6uja0+UzxnX+G0bn13GprVZL6a8m0xTpWK6DhPUmL3AGyU8dvPuxrVwZND8nvELvow/uzLEz+PLhSeoQ0MQ7+Ok9x4qRYbCaSO55zlBWhtY1ZUDg88BaqvUQS9r4xoieEX10KWNSRWLbv57oTGeoi8omp0sgTPCj1nrUbdqcw== 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=EDNWgaPr84wzI5zY4rRj3tBHM0uwh4gNSNGy1GLqfSI=; b=H+8gU6KC3QhtRQCPOC0qQnvpZ+zeZGfchZCIMuHaNuI4ldWUFKYSUF061dC8lkqf+Dmo1rU5ND+A75K6vU1n1wWGE/8PcvbdmsKa46VIXI3sWfsCl4rjz+hWd/AWjcKF7laN8yFibTSa4UEjlQsQveVXwsD78MNm+cLzhHuIxoxYDYlydtLoDtofqBqAenSB5r9wZKkV3WYlGf+jTItVgf/O0Wkcqyz+RDQUORQ87PTfX2JLD909PK9RdMdywKwPOqPSb9CaUzihvWa8r0z5InQcLORm+NF2XrBMuLR6GllyQSSMBEpIhDrZnmc/7NK4+ivhRAmRQuTVej5bKwE76Q== 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=EDNWgaPr84wzI5zY4rRj3tBHM0uwh4gNSNGy1GLqfSI=; b=mopStUYfML9NlbDeC8WpmLsDjTvwVnxwoHuODglEPj70n8kA8H8BFQIV0HPxREhR82rKmZt1tT0IZWk2qDHe1lkMjtVCyiOgoQlRnlEqIN+GoJYkoICSllV8KYVwJBTaGGYqlGktlr5GMZFZUwSgCG+gjVuN3sZxfBxt/If/9fA= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by SN7PR10MB6619.namprd10.prod.outlook.com (2603:10b6:806:2ae::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6043.7; Fri, 20 Jan 2023 16:27:48 +0000 Received: from SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::7306:828b:8091:9674]) by SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::7306:828b:8091:9674%5]) with mapi id 15.20.6043.005; Fri, 20 Jan 2023 16:27:48 +0000 From: "Liam R. Howlett" To: linux-mm@kvack.org, linux-kernel@vger.kernel.org, Andrew Morton , maple-tree@lists.infradead.org Cc: "Liam R. Howlett" , "Liam R . Howlett" Subject: [PATCH v4 15/49] ipc/shm: Use the vma iterator for munmap calls Date: Fri, 20 Jan 2023 11:26:16 -0500 Message-Id: <20230120162650.984577-16-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.35.1 In-Reply-To: <20230120162650.984577-1-Liam.Howlett@oracle.com> References: <20230120162650.984577-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YT1PR01CA0088.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:2d::27) To SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SN6PR10MB3022:EE_|SN7PR10MB6619:EE_ X-MS-Office365-Filtering-Correlation-Id: 06965935-d7a4-463b-7823-08dafb034478 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: ESWQdx05gPHK+7ix/em7+cJCh/owfqthMghRQtfd2HWm7uQIX6FOCZOMT/tb6Zw7QRqgXbJppl6iC5L1f5lsyWC+ec9M3SiSj5EV0FY/fg8cv+cx4GSP7/k7we+ae1dD8xBhcnzCFnLBc8uZTCuFNdwk4o5TclGuvCQBPzd1mp0UCTRyf5mMZxnYP03jtaktE6Fi4UqOQauVMvHXXs7RzvNUd17jwVe+VGH9TSWfJ7H7w/xCTtVWT8NyBNEv4BuunFuFJ+tESdz+OFLehMrg9KLmLY6a7wSDjCYcQRZIJ9enN8AexvoTshzkafDWnikavlJEOxt8SuRPTAt+B9ulcMmSGu1KtY8jP5S9Go9bmuevMv+668QP5RAQ64G8vZP4s1bca8MHoyuaADxavxfuGwiw8Fh7ni6c17t0z+QsG6cqWC/euA24cbIJn+eGeczvolZCWZCVMa+GeoVaWHztaHCBsrxc9aDUNt9X3wO0vIBJB5jFp24xYlIJZPjpZHkBYbfTQQyT7RE4W1h570zwSBp0W5skFDtdW4LrPE1WZx2alpJGpDr36G4wvNCHSRfHnT5Q2WOFPE85CCiaBVJWH6irFYhiI7i/UR/O4+bb+IRd5sH5kWI+LMb3lPW+PAB50chyWI4Wbks5ZupRqKQhYQ== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SN6PR10MB3022.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230022)(136003)(39860400002)(396003)(366004)(376002)(346002)(451199015)(83380400001)(54906003)(86362001)(5660300002)(6486002)(2616005)(38100700002)(8936002)(478600001)(6512007)(41300700001)(2906002)(107886003)(6666004)(4326008)(8676002)(66556008)(186003)(26005)(316002)(36756003)(1076003)(66476007)(6506007)(66946007);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?2CayPXG1M9muknjvu0eCOWmvM8sHetjp19jBWhYYg67ES1f8HkbPQxbktvoa?= =?us-ascii?Q?i1S+Q+yPdfYgqVbuq0jn0f37DAhf9tWcbKRujRJ2KHFzDzxXZz3laAXSuheI?= =?us-ascii?Q?k+ZehaPLO8t5pA2tU9vbDLBiKhlw67Msn2SYYsoMXekfpfN4vLWraLGNt2la?= =?us-ascii?Q?tvWrWMSkzvKJZChZjukGWLHSDzECGhcEUzKEXUqLFhHTo/VG+3oWGZfPm43z?= =?us-ascii?Q?aPjUUn6wFVMNBKRcQ+H3CNVFIeemEzaspNrzG1WI9vMtpDPy23A5FO0tgDNi?= =?us-ascii?Q?En+pzqirW2wivJU2FKJKzeatOjl2Ryd2Y8OweX8CxIlkH+0ohxFOO9hH8w4z?= =?us-ascii?Q?FSR9OGZ5wc4btSBDjduTxcQ79Nofj3ZNGjPaa1m92psucY7AbLFIIGhBbN/F?= =?us-ascii?Q?Pd2PJcpFTRTbo1EPH1w4GVYiDxQdp2jnQDEZoSNkrdp63xaUo/BPfQ3HSitU?= =?us-ascii?Q?PJD+Jk+krUgZVNjC7GYe5qS7/k7YmWqmuPfqk9Qu5w5/1+n5IXKNkTEWWKcD?= =?us-ascii?Q?zsANb56ix5T0N342qD3qkUl3BflpUa+8w2Kka4gqsRgADw3pduZCA+o/U50k?= =?us-ascii?Q?hJR6ZfvcTyy6Y+eWvYesLuLTyU5gZfcE69cihw8piNUggzJDXAZ+7bfGuCGQ?= =?us-ascii?Q?g/BZHd2KctAnOLR24dtGtpSCDWLcQautj7StaNvywVIms+p5L+qGJGC+UMFv?= =?us-ascii?Q?MK/cz7vxxMmCQljdV3dxbfRJRx7HcEvJHWduPGWDzyb2bnwV247vnkghRX/X?= =?us-ascii?Q?zPSWJqxBjM9mrZbulDaidfydFHfLwilFNlQZVuwpO8SLLxbU55/zHYSzSWMz?= =?us-ascii?Q?iGb/fr7y7wsfxnj8cHkFCYz4CXXp/8HK+Ywe8qNgDCyLprYNYJZMXuVq2MJo?= =?us-ascii?Q?5BBPn84j0wGF/icOCFsSEPOgDCjKG1l5wCZUx68gYrhIl0QyBOFJXUn2DSYN?= =?us-ascii?Q?TPj6C1UyPtiDEHBbeeCu8sJF+TV5257u5bqBiHThBy29/iHZCZWZTcV2Wu9f?= =?us-ascii?Q?RE8kECAo2fikAoN3t8B0eBFgNEt4nmah74oXOJzxEzO6ERsDdpMMMLtiB05W?= =?us-ascii?Q?KfgdKhHLmIcVwoXm22y//+j4XitafUdCP97woKixsrdopk7sD5D8lTG4WeZP?= =?us-ascii?Q?q8kGYpUBo48UcEP3cQxwHmCEc5MUT/rjzc/UGsBg5QREFOTYsspC0PPo5DtP?= =?us-ascii?Q?dEZXOL3CqHSbyI97N37dt66hOmBzy8QIMff9l0L9/eQK2WnO1Ds2HUAoBEgy?= =?us-ascii?Q?gg3giXCI+dPuBHGqz62M7vJxQT8rmz3SQubhAIU+MDw7020wytvUNhWqPaut?= =?us-ascii?Q?PsxkhzHJXyvIciuaeg5rZd22JkLt9mSEL/EKIYbb++nO/+nFLQtzZLJ28hM/?= =?us-ascii?Q?3i0P28tepr3iFagiJrTinzDKEla7Sj9MoRz4+9WXgIqWyDCqomCnrGaVSJqz?= =?us-ascii?Q?2t6czGIqimtlnuPZWmfCLU/Y+vP/zo1LOoMDscCDr4Q3fEsNOCMkeuK84fyO?= =?us-ascii?Q?edwlSL2V9kS45Wg1R6K+3PCTZgnNEOnE49YGwiexdENcv60HVEi4IeM+tYn4?= =?us-ascii?Q?IM4b76KcHA9/Ko5xGXJfX9DVdfB4L6HZ2TqK0/ST9iytVEc6RdHTta5Zk4Ar?= =?us-ascii?Q?Gw=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: 0tDw2qGWkA1ZQhzoQ0eJiCGqUopI8sALZu5VfBvzWEXgDaaOuncFYH1/wwaiAV2D4N7QDCeiP6srbpdBo8AscJbzr1D6Om5JDb7F9cwm+bhDCicoNfvJsU7XEtqE4nAOqdl9OCUG4MM7Vteh6TPe91lUPtbZyie+v0e1W0tjzrA/Wg+80UDlY7YoVTz8ZA3g8G8qS1RFXc4QfV5jSdWfRTKH8XBoUtaAuVmnpVQaJhrwpcuQymrofkLJrbxy+NifQfsVNWk3tviynBgmQyHpeFJzrtMpZJwPXQDYFnLwlDsJWtj4M7KdDEjuaHX3q1Gw3o2ZCcPdj8+EUax9CbuSgWXUF7Kag9K4aa4mEms1tdryMB1K+eEj5MaoeLQhYvBj2L1hb4aYy/zJA5DZDPetEUbVrDwQnmHv4ed1iJTjk9g5QHW6xBF8xwt/QK0c365cABhd9u5MSYoZ8hgtkQRv4IsNVEnBOk60jl1yJ/UL/oaFxm3skOrPcLBu9J03Xi9A67FBfDF9+P/SEHAwjzIO+8+EkLcU2eZ4ljzbpBbme4WbPqsFZF2REOg5MiA6s4ZhCiTtF1RskVqgQ/pFz1o+2V6I8Y4hCBXOC02AZEb/W4k+2frYZTckBkSsUyiMcrq9vkBzrVQfZfGQdNGP+Jwc62gmw2Mu6F7in/Ib0NEIiK4qxX+hO2OavJPdu2aqK09VyCoQQG+74JrfTOdlyyXMMgXRmBT7gqNOQ6ulDCN6WBbfamxRPMqIzpBaA6POjDRTKA6WryZWvMl7csylXjjVA9BlhmQnOYga+rU3s4/Xpq8Duz/7hnKMpNapVefX+s517IgEoKzQ/RsqHJXL3xt0UVjcrSZKWvza2nsHKoO0QXASdnfT4qcos59KYLpX+GsQrZhhBcfN9nB6nh+KDD71TA== X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 06965935-d7a4-463b-7823-08dafb034478 X-MS-Exchange-CrossTenant-AuthSource: SN6PR10MB3022.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Jan 2023 16:27:47.9347 (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: jaStrcyrsHFDbGQS+grzDqcuE4jewBiplDYUmWe0YE/CI9DzzxfBjHx7xhR/KxDlDQumDYwsP9M1Ogq9LCaXPg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN7PR10MB6619 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.219,Aquarius:18.0.930,Hydra:6.0.562,FMLib:17.11.122.1 definitions=2023-01-20_09,2023-01-20_01,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 phishscore=0 bulkscore=0 suspectscore=0 spamscore=0 malwarescore=0 mlxscore=0 mlxlogscore=999 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2212070000 definitions=main-2301200157 X-Proofpoint-GUID: rWkD6Vi3PtbenwvBD1LrZMOrBVT807GL X-Proofpoint-ORIG-GUID: rWkD6Vi3PtbenwvBD1LrZMOrBVT807GL Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" From: "Liam R. Howlett" Pass through the vma iterator to do_vmi_munmap() to handle the iterator state internally Signed-off-by: Liam R. Howlett --- ipc/shm.c | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/ipc/shm.c b/ipc/shm.c index bd2fcc4d454e..1c6a6b319a49 100644 --- a/ipc/shm.c +++ b/ipc/shm.c @@ -1786,8 +1786,8 @@ long ksys_shmdt(char __user *shmaddr) */ file =3D vma->vm_file; size =3D i_size_read(file_inode(vma->vm_file)); - do_munmap(mm, vma->vm_start, vma->vm_end - vma->vm_start, NULL); - mas_pause(&vmi.mas); + do_vmi_munmap(&vmi, mm, vma->vm_start, + vma->vm_end - vma->vm_start, NULL, false); /* * We discovered the size of the shm segment, so * break out of here and fall through to the next @@ -1810,10 +1810,9 @@ long ksys_shmdt(char __user *shmaddr) /* finding a matching vma now does not alter retval */ if ((vma->vm_ops =3D=3D &shm_vm_ops) && ((vma->vm_start - addr)/PAGE_SIZE =3D=3D vma->vm_pgoff) && - (vma->vm_file =3D=3D file)) { - do_munmap(mm, vma->vm_start, vma->vm_end - vma->vm_start, NULL); - mas_pause(&vmi.mas); - } + (vma->vm_file =3D=3D file)) + do_vmi_munmap(&vmi, mm, vma->vm_start, + vma->vm_end - vma->vm_start, NULL, false); =20 vma =3D vma_next(&vmi); } --=20 2.35.1 From nobody Sun Sep 14 14:22:07 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 2C044C05027 for ; Fri, 20 Jan 2023 16:53:39 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231135AbjATQxh (ORCPT ); Fri, 20 Jan 2023 11:53:37 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:37318 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230384AbjATQxf (ORCPT ); Fri, 20 Jan 2023 11:53:35 -0500 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id C1ABDC17B for ; Fri, 20 Jan 2023 08:53:29 -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 30KGBaTM003300; Fri, 20 Jan 2023 16:27:53 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-2022-7-12; bh=tAofYiKY/5eWtbKC4qKbyIdy2EeQhljnbYHikZec/us=; b=iHSGxUdckrApKvXsv0GLVtFWlb/npaWm2X78p6KpsqAzkKAQq3+1WxGWmXIBbWzmBGit E4P6hNoNwvtaJZvc13YOCWNf8kq218ICqML5QErC89g0ldIQfUBsN62yntVDNtRk6QzU kaXN6jDO1JcEOO1ZsMLQKn66bYteiySohG5V04awdsyInPV3UPFP4PXfLdeBTgw8aTIf 03KWmhwhZyH2MxmColgdPXJPBfXarxxvAbkZoMe8OZLyI58/WjHMa60/hnGx8opgdoY+ YmBBGShZ3dkThSVdB5iDayXaBkE0IdlEb96KpTUyHBC6c+0/u0fLZxmaDsQGOqJwSZ4y yQ== Received: from phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta02.appoci.oracle.com [147.154.114.232]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3n3medn7fc-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 20 Jan 2023 16:27:52 +0000 Received: from pps.filterd (phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (8.17.1.5/8.17.1.5) with ESMTP id 30KFCTZG000901; Fri, 20 Jan 2023 16:27:51 GMT Received: from nam11-dm6-obe.outbound.protection.outlook.com (mail-dm6nam11lp2169.outbound.protection.outlook.com [104.47.57.169]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 3n74d2sv9q-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 20 Jan 2023 16:27:51 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=IsTdmttMugryjpGn5vmkDC2Ivqqb7IZLVqNn2BZzluLrGCr5ij2xR/XFHXf+QyurfxasN69Cu02mNud0KjP+CApJslxliWM7+hxJlvNvMJE5q+Kq/aNfsp5p36GgE6p8Yi6cReUqDKL2WALrgy7tcwo2Zf7oDM+VzDoYGpt5qEFFiMN7t+8PuI42gCkKpM2z/7lytbSpN7p47HVvVAteYDyMtlvRZsSLUfKQfRWAOezkDe0wsKooOiYJQHAScYTNuFc+hux6mL3p4bs3M25Aq2JIQrjJ5g6UaD+Dm8CVtz944U/qmWYLsAkwYU4aIDrj4uYbksBqgSZuwlK5golDGQ== 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=tAofYiKY/5eWtbKC4qKbyIdy2EeQhljnbYHikZec/us=; b=QJuQrgRZIuuFzCFE8iCENLvaVT92ow8yRqzd84ikqh4gnzDSRww2vMdfFOH6vVXOvi3gBtMHIHRq8VWzLPT7mZiU9FwpQjo5VZEjxVspxEP+HdFV6pjkkghdIH8ReBtrwOR5Z6n0sQ7r1K30BczQdsrd1qFEJdM6sBBLJxYUAaBY+EJfQYZNguWOV3lVub0jLVXkTfzqLyTaauuySEVauamPMijlwdDHaUIkFndvjLKC0loSgogLpTw4Ly0pBSDRTH9+pPZW18CyVUckj2QeTXryWgFYA4cQji/7vWBUl3Rzw6T6hZ+7ymRq59fTuW0h1J4F4JWS8QtCmM3UqeE30w== 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=tAofYiKY/5eWtbKC4qKbyIdy2EeQhljnbYHikZec/us=; b=ySteJgBtO3Mh4ZQvQdDYd8N12fIhLHMX7exG1PpZSwbvqAuHUWPBAk1kgp1zGDBho60bsNiaBSP9gR/5SdIvIEOOxnABh6uQIqaCckhi8rj2xwcg1mPVhkXzR2FiMhlKmehujUJ9hGRf4XriMlwq+9J/d9LOclzsaakDecBxQgc= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by SN7PR10MB6619.namprd10.prod.outlook.com (2603:10b6:806:2ae::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6043.7; Fri, 20 Jan 2023 16:27:50 +0000 Received: from SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::7306:828b:8091:9674]) by SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::7306:828b:8091:9674%5]) with mapi id 15.20.6043.005; Fri, 20 Jan 2023 16:27:50 +0000 From: "Liam R. Howlett" To: linux-mm@kvack.org, linux-kernel@vger.kernel.org, Andrew Morton , maple-tree@lists.infradead.org Cc: "Liam R. Howlett" , "Liam R . Howlett" Subject: [PATCH v4 16/49] userfaultfd: Use vma iterator Date: Fri, 20 Jan 2023 11:26:17 -0500 Message-Id: <20230120162650.984577-17-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.35.1 In-Reply-To: <20230120162650.984577-1-Liam.Howlett@oracle.com> References: <20230120162650.984577-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YT4P288CA0006.CANP288.PROD.OUTLOOK.COM (2603:10b6:b01:d4::12) To SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SN6PR10MB3022:EE_|SN7PR10MB6619:EE_ X-MS-Office365-Filtering-Correlation-Id: 18e487da-3ffe-4860-c6f0-08dafb0345b0 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: sCcsM9bBXxnzZDQTZA724Qv2KM0U0Y9BzFLtsge3cm0HCKn8tlg7rlCA2fznXcusNH97Ba7M6KflnmLgTeqQtlpvyRzCVZjE8QqsAmfL38vI9s/vHVU6LRv6HCQfpciZW5OdEA3UggkfP4+uI/Q9y4kmLJ6SVhZZjPX3YceGOums+Rb8SyblN4w3rp6YwaunySKeVegou8uME45DpXJkKifBnrciV91/8HvTFmntKzd4ByhmXLEsGAiL91MWffuzT41edE9IKefK56qmyPgwJVxh+A1OTPtVyB2gsIiASxRGC5Gxdybe8Nsy+jpZCMngRfgT/I/Cp3FzcE0z1s6DcsLLhL5vJ7JZTD/cF/ceqpfWCK0Lq7JIgrjwtn7FLw78o0jfbQ4p2opH3KkNRDCBm7z1XA6xMX+hMjtDHCcRryVThj6l9w/ZF5MQrTAYF7pFOL0ujjj/VmVx9usUiPNWGgGgAxyU5LB3Mk59++eQlLakkp8b1f4pELvdDTOv6uHOLKyLkrOUqMsKpgnSKoeZZp8qNBgYZxlm0f1spSmCeWm8HiJ6NvV/Cxrx5bp2V9sWi+vZNBHFO98PYhyCTG49qYp3Kjto5wQ6lMLv0y/33NGrrRY0Oww9gUPFDSSjWr3KeU/Y7x6tK6w058d4A1b3DA== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SN6PR10MB3022.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230022)(136003)(39860400002)(396003)(366004)(376002)(346002)(451199015)(83380400001)(54906003)(86362001)(5660300002)(6486002)(2616005)(38100700002)(8936002)(478600001)(6512007)(41300700001)(2906002)(107886003)(6666004)(4326008)(8676002)(66556008)(186003)(26005)(316002)(36756003)(1076003)(66476007)(6506007)(66946007);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?sUS2bpkaUvCavBihyojFf1gp/hWA3b5xQ3ezCaI+vqngc9JxBNyPIIpN5z3T?= =?us-ascii?Q?LcPcan9bQW1RpWc2uHFTfDXpjg41rT5u/StCsTlS+7yx0Qq37oJhL3RXDLZW?= =?us-ascii?Q?R9xVGs8n1HDpktxSgpzfDs7tEfRA098ocP6FMDqvZ7u44f1A1KsXfBkPmYOX?= =?us-ascii?Q?BwtpaUTDL7iqq/6iNbIJ7uLkR4jTLlqjhftjH5voQ3aUztMBqmMdx46BH36a?= =?us-ascii?Q?dayC9YdcIkaCLpl/dMMttkX1C6068+7GOMwpMPz8NKnB+oHtoCQvRBKPOJoV?= =?us-ascii?Q?aK5aWVgRl8B+WIlDFm3UeaK3G1GhyKYroJ4OkJG19LOS7q9u3YjRqmEZ+eLW?= =?us-ascii?Q?JUghaeC2pVX6cdXE7dGUIMHLvJviY7JolRIPjzKyDcNIPL9B27DbyeY8xoda?= =?us-ascii?Q?GLanMk0BfsoINwiu3wZ/nmY94mzmZ08PNz58tTKbSQakotBQQ/dL7HQIm+NJ?= =?us-ascii?Q?LDM/b9PT7zJJ41Is+V/vTcHCO72+gr3yFITLFndnwmdyw39erdCdHFG4JOfX?= =?us-ascii?Q?oXhw+MwZxa+ox0ySnwlDc5S7cPWl7G4Wk/jRpQKKPqIefNq+dSMO0LhhmCjI?= =?us-ascii?Q?GXD2Qvai9/2w8TK5bVFpMc75xPtZ+wGSSiQqRGPm/9iJN/4AzmRSK0oP0Nws?= =?us-ascii?Q?TMpeADFhZoI4abhhi/KFpxOPsoENwIhlYYlNIAtqIC5S1Es24j9GXwCa/0Zd?= =?us-ascii?Q?fZTcdNi+N2M0J7uGSgAxPDsuQA/reVEBos5T+cXBSBllUIQVJabFIy1U4ilB?= =?us-ascii?Q?SwCY0AAAKO2sAFCnGFu816L5i6F0gvu1t+fOqc2XgsE54A0yaW8PS5ULSOrT?= =?us-ascii?Q?Wo4rU0Z8bqPcLIYmSU3YEngdhbRz0rz0p0I5urL/dVrqYfzKc0qHufYXP7Pe?= =?us-ascii?Q?sJP4uYh6oWwERnCZ2FyY3DIUP1G9r5b4V1Ew7L/xCyEFoBSmkvtpxmYKdqyi?= =?us-ascii?Q?+7EsST1PktMpIvxgyrzYL5cc/NzUbtB6uZRKWD+rGzo/9oNw798kd18sPy8r?= =?us-ascii?Q?kvB9OFCCoLZuG/iRji921wMsJgqn5J/Jxcox7zEE8/5Ecvx8THNXtR2qcxW4?= =?us-ascii?Q?w1fpjHpywYs09RHUPc9PBoiLrt+YkwvqxCs/NgZp26TnuGD2vHcISW85g8jj?= =?us-ascii?Q?dTQnEDzEykSmNrjdytenX5VD/rIo/Ats5LjAxqwuAaxtr1bEtuw81pZXfR75?= =?us-ascii?Q?cvNKyaLYNqRAlCdarbstLOi9/FSvbtWkeQWO9PPCLL8FdNVpM0RIsPqW9AB+?= =?us-ascii?Q?E08iPZOMy7ilVnH8aqzbjBt0UqaAl+wJ4MGhPQJP/dXQ0FJjT/NsSCemcm+b?= =?us-ascii?Q?XxGSkBAdkA+SaszEkPQWdLTKMGFBTvdEsOmzNP5bNCMYM0qgss6CD352835w?= =?us-ascii?Q?m1o9jLtReiWQ9mDKZWKjxPM6CWA1+KoVls252G7ehapZftXiKCXoa65b5XQc?= =?us-ascii?Q?NhYHPY/ZslpJUg0FqCr8X/3TjpKAX21L1mao3G3B1GtRMlQtJiRxkSdBT+Ac?= =?us-ascii?Q?zm2HSYENIjdOb33GTBC2itA3MS0fEHxd3iD5lrbYkpMtpXPP+H4gsaIIDrdu?= =?us-ascii?Q?qs1YF5LkJNVMNqfgwglHT4fxBA0/BzKJ1Ab6VS0cnhXkai4VTL+qSQschzUQ?= =?us-ascii?Q?5Q=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: IZnH9MzEPZ0TLvdLGapOr/teJqtaRkYhmBO99PUsj1z5A9Fqu1TN16hHvzPPVrWyEiULr7vU1QTBVIppCDxqeqrjSUO4xsabPZhyjvabN36z7cgTi5W06+1yQgCfyDEOJgoQunK9zAwvYPQr3jCG/7+1UAX65vdbLp0ZXXjobo3z06MgbIvQOi9YgxZ9zx9uTv+wUESoTaH1U/Xp5nlmumhFvTXt9x7jcnOOvEyW58XTtnvDLIyt6vEietAsrO0WSEH6Hg5bJqCC1+Zrq8hulV+BbPVYQO77j10q/hTm9sW+FoPyPT02XGODAHXYXerO0w2EcZDrroTX6ZCR5spT2F6iMoJRKYYvG6U45IywC9a/qLr91iKfUHJmHX8E1oAGWt17V54Iygh1t1ZL047/MAcP47eza7V0qm4V4tvCgKaJHBKWKQvvbtRqtxAok7j6yBhIVR7b4PS8RUHlOF6ugYzBy/dQ9xw3WU65WVoFStoCcHl1SuUkE28Isx+iBZrqF7eApOxYhLfeUcyWb836LxL2XrGKNprgUioTA2XR+41Cc6PACYK0AuzoPnU7UHjLrjxbr5hxzmQBkLjORivwNhHKNe9VabO8tKSbnDappICndcdaTpq3527zxfqt7N5dHwCh7cZV/HKLz/+jIjzYttHdaEQiMPtnEJXcTydTacmiDHxhpJKxA0CcT62aojZgpg2+M51/jGWl1SXflv1YtYML0ukZ2daEM3V+fz0AsEe1P3lG/f4hIfH1Nn4e8WNz46HscFYWpAQ/IgZ8QfXvFiJKEN12+gwLj/1YTiywGJjeGYaGRx1CbKJYI5TeGddms+PxdqRrk9NmAS9MEs03QHZurmg6cxSSFktskTWcliY/Jmf5DVXOyap6rCa/ufIIq+wLDG9pe3BO1CfbuPq1jQ== X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 18e487da-3ffe-4860-c6f0-08dafb0345b0 X-MS-Exchange-CrossTenant-AuthSource: SN6PR10MB3022.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Jan 2023 16:27:49.9814 (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: FaarXdrwG/R2oWxCkJfktbqcNROqpgZS9tKmb4Ztndpqhp4/xW0Ke9+peJUaq6W8nQyzS0qMJUk1WNVYfS+1pw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN7PR10MB6619 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.219,Aquarius:18.0.930,Hydra:6.0.562,FMLib:17.11.122.1 definitions=2023-01-20_09,2023-01-20_01,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxscore=0 phishscore=0 spamscore=0 mlxlogscore=999 bulkscore=0 malwarescore=0 adultscore=0 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2212070000 definitions=main-2301200157 X-Proofpoint-ORIG-GUID: DpK5mQl8fIAI_Q4l_12eSvfuL_La6Udj X-Proofpoint-GUID: DpK5mQl8fIAI_Q4l_12eSvfuL_La6Udj Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" From: "Liam R. Howlett" Use the vma iterator so that the iterator can be invalidated or updated to avoid each caller doing so. Signed-off-by: Liam R. Howlett --- fs/userfaultfd.c | 87 ++++++++++++++++++------------------------------ 1 file changed, 33 insertions(+), 54 deletions(-) diff --git a/fs/userfaultfd.c b/fs/userfaultfd.c index 15a5bf765d43..4334bd35984d 100644 --- a/fs/userfaultfd.c +++ b/fs/userfaultfd.c @@ -883,7 +883,7 @@ static int userfaultfd_release(struct inode *inode, str= uct file *file) /* len =3D=3D 0 means wake all */ struct userfaultfd_wake_range range =3D { .len =3D 0, }; unsigned long new_flags; - MA_STATE(mas, &mm->mm_mt, 0, 0); + VMA_ITERATOR(vmi, mm, 0); =20 WRITE_ONCE(ctx->released, true); =20 @@ -900,7 +900,7 @@ static int userfaultfd_release(struct inode *inode, str= uct file *file) */ mmap_write_lock(mm); prev =3D NULL; - mas_for_each(&mas, vma, ULONG_MAX) { + for_each_vma(vmi, vma) { cond_resched(); BUG_ON(!!vma->vm_userfaultfd_ctx.ctx ^ !!(vma->vm_flags & __VM_UFFD_FLAGS)); @@ -909,13 +909,12 @@ static int userfaultfd_release(struct inode *inode, s= truct file *file) continue; } new_flags =3D vma->vm_flags & ~__VM_UFFD_FLAGS; - prev =3D vma_merge(mm, prev, vma->vm_start, vma->vm_end, + prev =3D vmi_vma_merge(&vmi, mm, prev, vma->vm_start, vma->vm_end, new_flags, vma->anon_vma, vma->vm_file, vma->vm_pgoff, vma_policy(vma), NULL_VM_UFFD_CTX, anon_vma_name(vma)); if (prev) { - mas_pause(&mas); vma =3D prev; } else { prev =3D vma; @@ -1302,7 +1301,7 @@ static int userfaultfd_register(struct userfaultfd_ct= x *ctx, bool found; bool basic_ioctls; unsigned long start, end, vma_end; - MA_STATE(mas, &mm->mm_mt, 0, 0); + struct vma_iterator vmi; =20 user_uffdio_register =3D (struct uffdio_register __user *) arg; =20 @@ -1344,17 +1343,13 @@ static int userfaultfd_register(struct userfaultfd_= ctx *ctx, if (!mmget_not_zero(mm)) goto out; =20 + ret =3D -EINVAL; mmap_write_lock(mm); - mas_set(&mas, start); - vma =3D mas_find(&mas, ULONG_MAX); + vma_iter_init(&vmi, mm, start); + vma =3D vma_find(&vmi, end); if (!vma) goto out_unlock; =20 - /* check that there's at least one vma in the range */ - ret =3D -EINVAL; - if (vma->vm_start >=3D end) - goto out_unlock; - /* * If the first vma contains huge pages, make sure start address * is aligned to huge page size. @@ -1371,7 +1366,8 @@ static int userfaultfd_register(struct userfaultfd_ct= x *ctx, */ found =3D false; basic_ioctls =3D false; - for (cur =3D vma; cur; cur =3D mas_next(&mas, end - 1)) { + cur =3D vma; + do { cond_resched(); =20 BUG_ON(!!cur->vm_userfaultfd_ctx.ctx ^ @@ -1428,16 +1424,14 @@ static int userfaultfd_register(struct userfaultfd_= ctx *ctx, basic_ioctls =3D true; =20 found =3D true; - } + } for_each_vma_range(vmi, cur, end); BUG_ON(!found); =20 - mas_set(&mas, start); - prev =3D mas_prev(&mas, 0); - if (prev !=3D vma) - mas_next(&mas, ULONG_MAX); + vma_iter_set(&vmi, start); + prev =3D vma_prev(&vmi); =20 ret =3D 0; - do { + for_each_vma_range(vmi, vma, end) { cond_resched(); =20 BUG_ON(!vma_can_userfault(vma, vm_flags)); @@ -1458,30 +1452,25 @@ static int userfaultfd_register(struct userfaultfd_= ctx *ctx, vma_end =3D min(end, vma->vm_end); =20 new_flags =3D (vma->vm_flags & ~__VM_UFFD_FLAGS) | vm_flags; - prev =3D vma_merge(mm, prev, start, vma_end, new_flags, + prev =3D vmi_vma_merge(&vmi, mm, prev, start, vma_end, new_flags, vma->anon_vma, vma->vm_file, vma->vm_pgoff, vma_policy(vma), ((struct vm_userfaultfd_ctx){ ctx }), anon_vma_name(vma)); if (prev) { /* vma_merge() invalidated the mas */ - mas_pause(&mas); vma =3D prev; goto next; } if (vma->vm_start < start) { - ret =3D split_vma(mm, vma, start, 1); + ret =3D vmi_split_vma(&vmi, mm, vma, start, 1); if (ret) break; - /* split_vma() invalidated the mas */ - mas_pause(&mas); } if (vma->vm_end > end) { - ret =3D split_vma(mm, vma, end, 0); + ret =3D vmi_split_vma(&vmi, mm, vma, end, 0); if (ret) break; - /* split_vma() invalidated the mas */ - mas_pause(&mas); } next: /* @@ -1498,8 +1487,8 @@ static int userfaultfd_register(struct userfaultfd_ct= x *ctx, skip: prev =3D vma; start =3D vma->vm_end; - vma =3D mas_next(&mas, end - 1); - } while (vma); + } + out_unlock: mmap_write_unlock(mm); mmput(mm); @@ -1543,7 +1532,7 @@ static int userfaultfd_unregister(struct userfaultfd_= ctx *ctx, bool found; unsigned long start, end, vma_end; const void __user *buf =3D (void __user *)arg; - MA_STATE(mas, &mm->mm_mt, 0, 0); + struct vma_iterator vmi; =20 ret =3D -EFAULT; if (copy_from_user(&uffdio_unregister, buf, sizeof(uffdio_unregister))) @@ -1562,14 +1551,10 @@ static int userfaultfd_unregister(struct userfaultf= d_ctx *ctx, goto out; =20 mmap_write_lock(mm); - mas_set(&mas, start); - vma =3D mas_find(&mas, ULONG_MAX); - if (!vma) - goto out_unlock; - - /* check that there's at least one vma in the range */ ret =3D -EINVAL; - if (vma->vm_start >=3D end) + vma_iter_init(&vmi, mm, start); + vma =3D vma_find(&vmi, end); + if (!vma) goto out_unlock; =20 /* @@ -1587,8 +1572,8 @@ static int userfaultfd_unregister(struct userfaultfd_= ctx *ctx, * Search for not compatible vmas. */ found =3D false; - ret =3D -EINVAL; - for (cur =3D vma; cur; cur =3D mas_next(&mas, end - 1)) { + cur =3D vma; + do { cond_resched(); =20 BUG_ON(!!cur->vm_userfaultfd_ctx.ctx ^ @@ -1605,16 +1590,13 @@ static int userfaultfd_unregister(struct userfaultf= d_ctx *ctx, goto out_unlock; =20 found =3D true; - } + } for_each_vma_range(vmi, cur, end); BUG_ON(!found); =20 - mas_set(&mas, start); - prev =3D mas_prev(&mas, 0); - if (prev !=3D vma) - mas_next(&mas, ULONG_MAX); - + vma_iter_set(&vmi, start); + prev =3D vma_prev(&vmi); ret =3D 0; - do { + for_each_vma_range(vmi, vma, end) { cond_resched(); =20 BUG_ON(!vma_can_userfault(vma, vma->vm_flags)); @@ -1650,26 +1632,23 @@ static int userfaultfd_unregister(struct userfaultf= d_ctx *ctx, uffd_wp_range(mm, vma, start, vma_end - start, false); =20 new_flags =3D vma->vm_flags & ~__VM_UFFD_FLAGS; - prev =3D vma_merge(mm, prev, start, vma_end, new_flags, + prev =3D vmi_vma_merge(&vmi, mm, prev, start, vma_end, new_flags, vma->anon_vma, vma->vm_file, vma->vm_pgoff, vma_policy(vma), NULL_VM_UFFD_CTX, anon_vma_name(vma)); if (prev) { vma =3D prev; - mas_pause(&mas); goto next; } if (vma->vm_start < start) { - ret =3D split_vma(mm, vma, start, 1); + ret =3D vmi_split_vma(&vmi, mm, vma, start, 1); if (ret) break; - mas_pause(&mas); } if (vma->vm_end > end) { - ret =3D split_vma(mm, vma, end, 0); + ret =3D vmi_split_vma(&vmi, mm, vma, end, 0); if (ret) break; - mas_pause(&mas); } next: /* @@ -1683,8 +1662,8 @@ static int userfaultfd_unregister(struct userfaultfd_= ctx *ctx, skip: prev =3D vma; start =3D vma->vm_end; - vma =3D mas_next(&mas, end - 1); - } while (vma); + } + out_unlock: mmap_write_unlock(mm); mmput(mm); --=20 2.35.1 From nobody Sun Sep 14 14:22:07 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 E8C5BC25B4E for ; Fri, 20 Jan 2023 16:29:54 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230213AbjATQ3y (ORCPT ); Fri, 20 Jan 2023 11:29:54 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:36426 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230120AbjATQ3w (ORCPT ); Fri, 20 Jan 2023 11:29:52 -0500 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 1DE1E6E42B for ; Fri, 20 Jan 2023 08:29:09 -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 30KGBgNo011451; Fri, 20 Jan 2023 16:27:57 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-2022-7-12; bh=wtPp3eN9iK5NopTe9WlgicVNohmSkC3cxheIrIE/maw=; b=y+0jGYt46jBurJUHEwgqiT2SRKNI87uBcqy7XcZbeH5z1aT2kjZvXoSKmOQMz+eOCeOe voTcqZNBq/LTPekg5bILRQqtM26hS+Zl1OxkRkZSvsahjm57qHflUmZ1ki4A0cAz6sMt MON6TkoXGd7YnrbmenYcFNnukZthGYxwHQ/SulxzCi0Wg5e7kF4zGapojoRF7WpWpUWe As3JDvNU4golU+0zzpPtrBAVaFdC+sLWPYJckmFWH+j6l/H+opNcg/nsS6m1IGUyM/pn TjMtnYlZ8LetEuHhEZeeuQHDMmlATi+2N3+RFevPV+6Kg+XpuQN8i8bn4i5wsouGCRRf rw== Received: from iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta01.appoci.oracle.com [130.35.100.223]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3n7895aqqh-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 20 Jan 2023 16:27:57 +0000 Received: from pps.filterd (iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (8.17.1.5/8.17.1.5) with ESMTP id 30KGNKAa004680; Fri, 20 Jan 2023 16:27:56 GMT Received: from nam11-dm6-obe.outbound.protection.outlook.com (mail-dm6nam11lp2168.outbound.protection.outlook.com [104.47.57.168]) by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 3n6r2w1fg0-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 20 Jan 2023 16:27:56 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=JUBRLak9yXOzp2ayTdvQoBeEeW1oy17Lxg9iKyyaRcgiwGuZHUIz/xyIhjwmTu0aA/zPv+eFqugSI5s+XTCF02UHnZ1MG4oS1DzhaUKjvFoT2Zr5XSRueJOvJKOnMSpStuHn7XxMyP9IFam+fYHdBF6b/ucF813O31q6SdzH10AXJj24i/gLTMdwRRH9uQIowhblYC6jljnn5/qhRIwZRcV8ExXK6YpQPfbCfSd6E3JVV8GR5ciHfZeA6pBTMH8A86pqHG8IBSuXP3KjOqDgoSwLSfIjwksx+yWdE4lNrWNZDmxAfNkJcbgl7TsNbW7uLISJnudlYjPPm/h0NWoi1Q== 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=wtPp3eN9iK5NopTe9WlgicVNohmSkC3cxheIrIE/maw=; b=VFsYBKDxfJLYFob4VUmELIWengWQc8H2/7ifnEastdkg8yDXv2y45dEb3s1bnm7tCS0Cpdh1VcYa+9gHM1U41OHJ300s6B38ypFppV2eC/HLAG96oTGaHWxgwyG7MpU7s1mO6TF7tP3vQtJRPvAG/IlyidnAx5dkkCB9groxn+tI4Dg4pAkRDe/gOQek+Z7cQWKMUKYHg9/1DZXlfbTnAaYIKN6gsB8HZ7AzkPr/32DH+27BfZJ4IWCipNQOJCuUGjCf87BiadEBR3kk1KH7nWK2Rc1xkAxpmRiY/Jfs3zOyHHkosTmKyOj5h57yLvNpvezXofyDRo4QKLT8FbueJw== 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=wtPp3eN9iK5NopTe9WlgicVNohmSkC3cxheIrIE/maw=; b=YYhzqJ+6qalHpNebx/Pvb1x3XNpQ9syPN44O1jDsXr4Kvjo8jtEKHP0xVWTF3Uy+KGTe1bE1K7foI/giD44jiaVWDAh9WgBOjn/1O9b1kZs1lNgTZy1jUmOy0xhqD7YcSdT5uRGBMe8o2CGFCDKtxA8QXyXkezpWXDiAhLzjKCk= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by SN7PR10MB6619.namprd10.prod.outlook.com (2603:10b6:806:2ae::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6043.7; Fri, 20 Jan 2023 16:27:54 +0000 Received: from SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::7306:828b:8091:9674]) by SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::7306:828b:8091:9674%5]) with mapi id 15.20.6043.005; Fri, 20 Jan 2023 16:27:54 +0000 From: "Liam R. Howlett" To: linux-mm@kvack.org, linux-kernel@vger.kernel.org, Andrew Morton , maple-tree@lists.infradead.org Cc: "Liam R. Howlett" , "Liam R . Howlett" Subject: [PATCH v4 17/49] mm: Change mprotect_fixup to vma iterator Date: Fri, 20 Jan 2023 11:26:18 -0500 Message-Id: <20230120162650.984577-18-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.35.1 In-Reply-To: <20230120162650.984577-1-Liam.Howlett@oracle.com> References: <20230120162650.984577-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YT4P288CA0053.CANP288.PROD.OUTLOOK.COM (2603:10b6:b01:d2::10) To SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SN6PR10MB3022:EE_|SN7PR10MB6619:EE_ X-MS-Office365-Filtering-Correlation-Id: f8f828d7-8095-4dab-af8f-08dafb034724 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: MDZmWyhd84Pb7/yixS2jJ3jD4fbugUOXEWyhGzZgqrwEYm4I7IJe+6b/y7327ymTZ5Oipu9lFNJ5Pppjo8CdaRi05lTNHhguOpAcs5znsNFMz+h6eugW2qJnJANLKTWtuePp6JQkfeo37U+zU8BeP3JQo1C47WQ7IiX0WB8wLFUU5vAew/hUGu2b+tiC/4Ct6dFYNcjfYqC87SwyEBByWY4+W5mnP6EtZTvg++F+XR/UuHJq0whgMfHQqeOEdO3ErCbq9tuTf7Ba5POzuhDaaLK0ANeqS3wFeMesoztBDbGZOjf9xKO2bZ6nY1V32Yo0aF5NrSlp3bvaOurScwnMI2yOHRo9bMLUT8g7cwP1xrHArlb9ZKJoBuxfPZhwB5WiH2kndYqvTcM3zCkvmeMk68pTPSJlOe4nFcyPgAQHFSI/PofuXJAwqUQalshkFeB6d6dIR41F3S+ih07dyiMGBajxqB67PgSuKuaPEW4t/ArTykO25VWnn5QDoaGN04wXFNK1g3vb7Js3QA1ZU5bR44sP7f1pl5dC1t2zKPQDR94KXnwaqpIrlfqZetJyvyeJEeCAmkuj8nQKBEnrN56IVsJz6avTGZoHxHxnby9vlXKww4bb4uJHBv0jQdvKLC9VMaHbpZhWSS6BeGyQnE6+HQ== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SN6PR10MB3022.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230022)(136003)(39860400002)(396003)(366004)(376002)(346002)(451199015)(83380400001)(54906003)(86362001)(5660300002)(6486002)(2616005)(38100700002)(8936002)(478600001)(6512007)(41300700001)(2906002)(107886003)(6666004)(4326008)(8676002)(66556008)(186003)(26005)(316002)(36756003)(1076003)(66476007)(6506007)(66946007);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?zUEKC/rWe/a/xKFTvv+3aoPiuxmozMYJNEwvZsKRj0u1IK7zyd18sDkPUsqz?= =?us-ascii?Q?vBBLLsl46My+G+GjgV409rFRouYM46mYtXhVOKsR2dce1DW1TsDkgtAbm2pl?= =?us-ascii?Q?YcPBrTZZu85i6cSCSszrcGMWmsjMlYQWx7LTexv3Il0UoMvbK6/u3H+LX5DC?= =?us-ascii?Q?j5x0ObSNXR6WThnKywshvXDdpsBp1jHrzTHw7x249NqO8uGRXZvE1vKJD/U1?= =?us-ascii?Q?dBWZ/J9CIVcWhN/rzDKNp3krNAYUo1DcT/0bKYvIJkUP+aH5r2XeNKxxKaw8?= =?us-ascii?Q?K3Y/d1Litmw/22vxMTWK+rz5in0pjT64+Ob8iY488p2/FrPnfLIi/uztpK/t?= =?us-ascii?Q?ZK48B/tpqvNSXEkbGj5Ct/uBwSTo7qIBfADmnw4U17pr6lO6x3sGpRnje/0V?= =?us-ascii?Q?Bd/jwT0FlldSc5lEWp89XWzQpJZfXDnU7vZulZrFvr+0XkDfaHAikLbShENQ?= =?us-ascii?Q?lhK8h9hfvEb06vN5hIiPoXt7zcg9AKy+BI7eHVakAiAR/6RPTta4ZxjovEkt?= =?us-ascii?Q?ArKVvG0eT/FSzy7AW/1CohIhbYGiLJCOt4FkvR65v2Z+OumSXvQPY5BqZ9Hc?= =?us-ascii?Q?J6Xf0YDybADIm74YUNDCq9qu2wC7B1FCibQOG0PdHUh6fmAK+QTsTS72P3x8?= =?us-ascii?Q?Qu/dWc0XwoP7vDagl9hcdGWvq0Z+T2d0c5KdoA8RbIOx3nHiXYaxUvxWFXOl?= =?us-ascii?Q?sapDV2QMfC5v8ADG7Wpr/iGWHPDUry8mPrlX4f2j0UHXVVNhSOK4OXih3D5q?= =?us-ascii?Q?bPBxWRLvAjxxClUvnZpunC2QMbY1R/mlGVNZQX2T0YBWzKLxCrjmYJltXeqs?= =?us-ascii?Q?3mRSBtCAg21quFWSMX4tB0+ynVoHIvlBKlA5UZEddu+jyXeGus5rgrvtzzun?= =?us-ascii?Q?dXM4Mbb5wGH2Xtys4J4OF8fyfK4219PJWfIH1VlC+s5zOTpYOOvzczBMBKOE?= =?us-ascii?Q?6rCzIDA9ow2A5Tup92aPtFTu5hhpf/u0ADOyUmQDVyOzQeGUAVLiu6vMB6Q1?= =?us-ascii?Q?mUxUTsNSSioe31740aa/OK9ritcpAdINXsx3xuIsefikYUqv00aLbdSq8dXm?= =?us-ascii?Q?LLtdZwzJcD+Nhk/yIdhM6XJBaOaAs552QJebrEv+axRJpjVdxP7gsGkYMc4L?= =?us-ascii?Q?sZ+csDxpiHyXg1s5xZiJTYDbKAeEIu7e87Gzch9PQkAzJ/+8Uqv0uT1Gfolu?= =?us-ascii?Q?BGsqz9bOFq5dKwP3I926N+/5W/wSiGnSo930kd7uU9jtZfhA7rgjIiuMVCfl?= =?us-ascii?Q?yPrilpvNJKBuT2K61YSt4HkJ5PL4CjIOUAKn9H1pKGM8freHaCQWl/6nIrHU?= =?us-ascii?Q?QzGXr/7Cchloi0MVMynVBh2cqgZTKVgjsZT8cDo6VXKZDATUgz7bgSpN5a4S?= =?us-ascii?Q?4T7fQ533i48A8dHcsEBZ79t00novE6Y3tW68DHbZwhDZh3coBru4KOy0zXAH?= =?us-ascii?Q?rcTlxx/ZojQ6WxIIJylcOzMxQoI0hXBi3Hvc+xdmB1eIDEBw5McfEf+S8WZZ?= =?us-ascii?Q?FfDf8jPCP8DvvWrKIu/muEaFtm9iDhDWXPX2+sitrOKJSjuHV3WHlQC0Z4IO?= =?us-ascii?Q?oRQMIGU0W9FFuv6+vxDzm85OeyyNAXl/5h8+QQzzXhkljzm+lQbXTZUqQlbP?= =?us-ascii?Q?kA=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: 2h6JVaKoibL/zcHIL0WXzMPfHgDAoHh+tyOzS6r0tyZMwunz/ph39su5IhPXj4mZA/iqwLwSnnkFF0ZOP4nz7K5Ulf47rCZh3hi8Ar1eoQZJbeX8yjm5J6Ru9Dj3sZozYPw5YDtDE3KfnrGeWx0xMz734u8bhUkAwdxTeTLX7PBiUS8/S1P/pel+fSMuz8bpxdUOfnP2zfEHAxwOnAVN1KtFHLvf2MLKrL/gU7Dy4AhVkxmUCYZvISF8eGGr3+Wbb5GK+Ut3hosSvtIjgV7V7085LricNu64qF2/SfjMoXj9Qt0zoALFnRXzP/4dGdPrMHNig19qLJ9wEJybPfLXHyoKX/YYTFEy8rU4vz+5CkY8+R8eFr3N48j9uhUg0cN2YlMvcLxSY/NQyXvUUz+s4Q/zZ8L/CnNvV+H3zg8W162NLElMyVakgHKXBy/SBv0GfguuNisl1VBYt1P15+ByE7i2y69RF9YEagUnuL+NnMJW7PUK3TSfKph5fYcNZvj6q12vsipzNxe8/ty0rVSveFznGpEDCxDqhLFAXXzfHbrt+Rv4SGapPyMz9gsajs9t9cmm+r0EIfKhiYqO2KgCljv06H2NYyO7yNSmcj9CB6xm1rhP19bSLfzvRWnTQRwwfsQuGprkBraupttk2GpT18K85N6zebMSOCNWakf3rbekWBzWR19CtTVD5XnWPvUy72OBZpEv7ipd2VC20PGdgm3riLuYTD9x4Ca2vRn4V/q3mNi3MnRgPPP5jThQSs8S18niI2vOwxJ0B5nM5kYgUEJZNKkpJYFZ7gT1KriP8zdd6YV4swYXVSC/2KvpEk/MY1cbP2Lli/pVLchTo1XbH+Fuu+R+4oHDbCNUGqSKYl9jFYESXvSkNOz+wworR6f6G4Xf9PJycsiIwJXlih0oGg== X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: f8f828d7-8095-4dab-af8f-08dafb034724 X-MS-Exchange-CrossTenant-AuthSource: SN6PR10MB3022.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Jan 2023 16:27:53.9343 (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: fngPoPCqB1K0KlLEdnb4KyD8+fhSuzFUnzWYVSAe49NZe+cB4mxpBz9hWgsoOVAQjSI1Y/FrKuThbG1shKszjQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN7PR10MB6619 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.219,Aquarius:18.0.930,Hydra:6.0.562,FMLib:17.11.122.1 definitions=2023-01-20_09,2023-01-20_01,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 adultscore=0 mlxlogscore=999 malwarescore=0 mlxscore=0 phishscore=0 suspectscore=0 spamscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2212070000 definitions=main-2301200157 X-Proofpoint-ORIG-GUID: LX4velZOPk1AdnYDc9MUz36b4KoaiUDT X-Proofpoint-GUID: LX4velZOPk1AdnYDc9MUz36b4KoaiUDT Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" From: "Liam R. Howlett" Use the vma iterator so that the iterator can be invalidated or updated to avoid each caller doing so. Signed-off-by: Liam R. Howlett --- fs/exec.c | 5 ++++- include/linux/mm.h | 6 +++--- mm/mprotect.c | 47 ++++++++++++++++++++++------------------------ 3 files changed, 29 insertions(+), 29 deletions(-) diff --git a/fs/exec.c b/fs/exec.c index ab913243a367..b98647eeae9f 100644 --- a/fs/exec.c +++ b/fs/exec.c @@ -758,6 +758,7 @@ int setup_arg_pages(struct linux_binprm *bprm, unsigned long stack_expand; unsigned long rlim_stack; struct mmu_gather tlb; + struct vma_iterator vmi; =20 #ifdef CONFIG_STACK_GROWSUP /* Limit stack size */ @@ -812,8 +813,10 @@ int setup_arg_pages(struct linux_binprm *bprm, vm_flags |=3D mm->def_flags; vm_flags |=3D VM_STACK_INCOMPLETE_SETUP; =20 + vma_iter_init(&vmi, mm, vma->vm_start); + tlb_gather_mmu(&tlb, mm); - ret =3D mprotect_fixup(&tlb, vma, &prev, vma->vm_start, vma->vm_end, + ret =3D mprotect_fixup(&vmi, &tlb, vma, &prev, vma->vm_start, vma->vm_end, vm_flags); tlb_finish_mmu(&tlb); =20 diff --git a/include/linux/mm.h b/include/linux/mm.h index 956025940053..bd0017ab13f3 100644 --- a/include/linux/mm.h +++ b/include/linux/mm.h @@ -2197,9 +2197,9 @@ bool can_change_pte_writable(struct vm_area_struct *v= ma, unsigned long addr, extern long change_protection(struct mmu_gather *tlb, struct vm_area_struct *vma, unsigned long start, unsigned long end, unsigned long cp_flags); -extern int mprotect_fixup(struct mmu_gather *tlb, struct vm_area_struct *v= ma, - struct vm_area_struct **pprev, unsigned long start, - unsigned long end, unsigned long newflags); +extern int mprotect_fixup(struct vma_iterator *vmi, struct mmu_gather *tlb, + struct vm_area_struct *vma, struct vm_area_struct **pprev, + unsigned long start, unsigned long end, unsigned long newflags); =20 /* * doesn't attempt to fault and will return short. diff --git a/mm/mprotect.c b/mm/mprotect.c index 6ecdf0671b81..42ceb0548754 100644 --- a/mm/mprotect.c +++ b/mm/mprotect.c @@ -585,9 +585,9 @@ static const struct mm_walk_ops prot_none_walk_ops =3D { }; =20 int -mprotect_fixup(struct mmu_gather *tlb, struct vm_area_struct *vma, - struct vm_area_struct **pprev, unsigned long start, - unsigned long end, unsigned long newflags) +mprotect_fixup(struct vma_iterator *vmi, struct mmu_gather *tlb, + struct vm_area_struct *vma, struct vm_area_struct **pprev, + unsigned long start, unsigned long end, unsigned long newflags) { struct mm_struct *mm =3D vma->vm_mm; unsigned long oldflags =3D vma->vm_flags; @@ -642,7 +642,7 @@ mprotect_fixup(struct mmu_gather *tlb, struct vm_area_s= truct *vma, * First try to merge with previous and/or next vma. */ pgoff =3D vma->vm_pgoff + ((start - vma->vm_start) >> PAGE_SHIFT); - *pprev =3D vma_merge(mm, *pprev, start, end, newflags, + *pprev =3D vmi_vma_merge(vmi, mm, *pprev, start, end, newflags, vma->anon_vma, vma->vm_file, pgoff, vma_policy(vma), vma->vm_userfaultfd_ctx, anon_vma_name(vma)); if (*pprev) { @@ -654,13 +654,13 @@ mprotect_fixup(struct mmu_gather *tlb, struct vm_area= _struct *vma, *pprev =3D vma; =20 if (start !=3D vma->vm_start) { - error =3D split_vma(mm, vma, start, 1); + error =3D vmi_split_vma(vmi, mm, vma, start, 1); if (error) goto fail; } =20 if (end !=3D vma->vm_end) { - error =3D split_vma(mm, vma, end, 0); + error =3D vmi_split_vma(vmi, mm, vma, end, 0); if (error) goto fail; } @@ -709,7 +709,7 @@ static int do_mprotect_pkey(unsigned long start, size_t= len, const bool rier =3D (current->personality & READ_IMPLIES_EXEC) && (prot & PROT_READ); struct mmu_gather tlb; - MA_STATE(mas, ¤t->mm->mm_mt, 0, 0); + struct vma_iterator vmi; =20 start =3D untagged_addr(start); =20 @@ -741,8 +741,8 @@ static int do_mprotect_pkey(unsigned long start, size_t= len, if ((pkey !=3D -1) && !mm_pkey_is_allocated(current->mm, pkey)) goto out; =20 - mas_set(&mas, start); - vma =3D mas_find(&mas, ULONG_MAX); + vma_iter_init(&vmi, current->mm, start); + vma =3D vma_find(&vmi, end); error =3D -ENOMEM; if (!vma) goto out; @@ -765,18 +765,22 @@ static int do_mprotect_pkey(unsigned long start, size= _t len, } } =20 + prev =3D vma_prev(&vmi); if (start > vma->vm_start) prev =3D vma; - else - prev =3D mas_prev(&mas, 0); =20 tlb_gather_mmu(&tlb, current->mm); - for (nstart =3D start ; ; ) { + nstart =3D start; + tmp =3D vma->vm_start; + for_each_vma_range(vmi, vma, end) { unsigned long mask_off_old_flags; unsigned long newflags; int new_vma_pkey; =20 - /* Here we know that vma->vm_start <=3D nstart < vma->vm_end. */ + if (vma->vm_start !=3D tmp) { + error =3D -ENOMEM; + break; + } =20 /* Does the application expect PROT_READ to imply PROT_EXEC */ if (rier && (vma->vm_flags & VM_MAYEXEC)) @@ -819,25 +823,18 @@ static int do_mprotect_pkey(unsigned long start, size= _t len, break; } =20 - error =3D mprotect_fixup(&tlb, vma, &prev, nstart, tmp, newflags); + error =3D mprotect_fixup(&vmi, &tlb, vma, &prev, nstart, tmp, newflags); if (error) break; =20 nstart =3D tmp; - - if (nstart < prev->vm_end) - nstart =3D prev->vm_end; - if (nstart >=3D end) - break; - - vma =3D find_vma(current->mm, prev->vm_end); - if (!vma || vma->vm_start !=3D nstart) { - error =3D -ENOMEM; - break; - } prot =3D reqprot; } tlb_finish_mmu(&tlb); + + if (vma_iter_end(&vmi) < end) + error =3D -ENOMEM; + out: mmap_write_unlock(current->mm); return error; --=20 2.35.1 From nobody Sun Sep 14 14:22:07 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 231E1C05027 for ; Fri, 20 Jan 2023 19:27:15 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229504AbjATT1N (ORCPT ); Fri, 20 Jan 2023 14:27:13 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:60114 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229379AbjATT1L (ORCPT ); Fri, 20 Jan 2023 14:27:11 -0500 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 8B3D6D0D9F for ; Fri, 20 Jan 2023 11:26: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 30KGE89v024778; Fri, 20 Jan 2023 16:27:59 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-2022-7-12; bh=xC3mu4AKsppqbyDSCw58mvfzh8IAlVWOVoZ5aweJCiA=; b=zMVvl+6K/rTLeU7dmJtAyWFK+ltz0cAU/sPpg18S0y58UZjSZ3p2iQo17IJ3ABiNPome j0ZwY4jAFSWOdtw8yS/ZaCUyuieFWzGMb0BKGlLBiKhIMKwv2N98/NtPS2qinIfSlKW4 uuKMj/HEfTUdiXWKLOmjEPoeE9R9lVZoo1b9nX0rTr/qLAOhMqKmN7mUG2czIUoILZRm FBX/ON78LfoqAZvsJ6qC99bMV6TKfAf9t2HN20tI1ziNtpDhWs6msC+BBnDVn9fxNr6c RmyWeYYWbslBUzTT1SrWYXWk3VdACHhWupAYndcj0nq2vJLFRZQYP3RxyTsTGZTxKpUB zg== Received: from phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta01.appoci.oracle.com [138.1.114.2]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3n3k0154bs-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 20 Jan 2023 16:27:59 +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 30KGNJar027896; Fri, 20 Jan 2023 16:27:59 GMT Received: from nam10-bn7-obe.outbound.protection.outlook.com (mail-bn7nam10lp2105.outbound.protection.outlook.com [104.47.70.105]) by phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 3n6qud91fg-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 20 Jan 2023 16:27:58 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=M2kCteIhm/+5Y7z72WFN4NaENkG0pxKHdemTWVTpYgWQ0UhpLZ1Riajv1NXYtjebQ7fc2+r2eaeRJqC9IJnFugioWLn29urH6PfiEigei5q0RVUyop6qaG4RImz+w9/lj5nZCPrhwjQO6Yvr9bXsQMuvSESMQr9EncFvfI1c3EuLBHLkTUWjQ55bdARjHR+/3DQGnWDnoecCJFPcsdqqmt5dppjs+3E6oI7ENDIPflHVqWgHfQxMPEizybkAi1tE1B6UUoxpJNPDHBX+DPd0WcWc2J8cSK3WfekChM3C/otSs+w57bysx5TQiu7DjVpV94vkkDdowiZ1frMcPo+eRA== 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=xC3mu4AKsppqbyDSCw58mvfzh8IAlVWOVoZ5aweJCiA=; b=nCee1KXpLIolb4WsqLwCHkBppctLy0o4EqFsQDtQGVPK7BLn5j8Zzbp7eIDR2rrHEIn/vspslGeyKu/73CaGe3a50bLGtCyHMDdoPrM0cXV2e9wUTZh4g8F24zCY0BUe6ObDZkEAcRSb1ve6+0Paot0NZ4WvySoLPfCsSe+uPj5UN9B/vS+bYObUmQxtXK7gHO/sJMBJc0hjXElGbMHu8MS1CGVG6mPlftlMS7bKuOnxMgIDEEKdlDLSSQNbAEsDK9h/E7bSh/5KgWHPTOEBCB+f1lZzL+Wkigc6KOZIa29yy82DqgfWNjKoL6X946WWCf6oYCa+KsdA9KGN1IN1PQ== 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=xC3mu4AKsppqbyDSCw58mvfzh8IAlVWOVoZ5aweJCiA=; b=HhDZiEVDo3b8n5A9nWY4n7EpdK5HmUiOBSCAYdUmDYOsoqvD+JI9QLepugS8bWAoiSgugYFucBSyGx2WL4PJ+T+3s8wm0smIR7CB+OFnmefT8Pv13wP7NJX/chjxMOlZcC5d03JAyBV4mPeonvP6vaFWVQPqDw5BG96YXjXCVYo= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by SN7PR10MB6619.namprd10.prod.outlook.com (2603:10b6:806:2ae::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6043.7; Fri, 20 Jan 2023 16:27:56 +0000 Received: from SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::7306:828b:8091:9674]) by SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::7306:828b:8091:9674%5]) with mapi id 15.20.6043.005; Fri, 20 Jan 2023 16:27:56 +0000 From: "Liam R. Howlett" To: linux-mm@kvack.org, linux-kernel@vger.kernel.org, Andrew Morton , maple-tree@lists.infradead.org Cc: "Liam R. Howlett" , "Liam R . Howlett" Subject: [PATCH v4 18/49] mlock: Convert mlock to vma iterator Date: Fri, 20 Jan 2023 11:26:19 -0500 Message-Id: <20230120162650.984577-19-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.35.1 In-Reply-To: <20230120162650.984577-1-Liam.Howlett@oracle.com> References: <20230120162650.984577-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YT4PR01CA0055.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:111::18) To SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SN6PR10MB3022:EE_|SN7PR10MB6619:EE_ X-MS-Office365-Filtering-Correlation-Id: ceb355af-a16a-4163-4b13-08dafb0349b4 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 6ObCuBKlSkW+zFiCh80A7BZfHeFHIFFzRdOT/qXg+2oAi5CZBmnjQX8SV/jOxbZicyBkOrAGc9trIHvxwrdOJe8zcCjCzJfHN95axqvSj+e8waNRYWnOSUoUFNsAmIEoXMzBzLwcAf6GK0XAbozlFivH1NBE4XEGXtX2aszeVlAc0Qt4EtiBK9dZG+w8HqU3fdytLNulaznK2bmBBm7l0OY6Of6PDjpJnlHBSobdmIQrgL+OrgwnzcklIjpttftXJ8wOPaTr7nIYWPnpLBUtqSojpwX3GLHtBWSYo4wwGzrAWMXhcGbEd4eqv7K0iqdskzzv/OksBtLY/bP9iBCEWqtirzSkCfJl1bvWk8S37DavsknHi3Ik1JolmLg/vnP/s3p/IDc5U2c0iyYxB72wYdM4G6n33MgP2PysW0mm0F1NBQnrFB7OWzgYoLiho0PZSWMH/fxARBMR0UoR1A02F9tXv9OSD+g+sDVAwArvFJ/Ez6xl/yUpoomC5pIbv9BYdSqrdbsuD4HLTy0NA6c3kQbsqqj60gV8xQf8dyUKnAZ5TujaU5rxUYvlorhaKI7WGfRVdpm0/dUFOicOlJVVIBVf8ZsZJ/rIb+hGegFCkRo6wVIrYu7HIVC0hilYDTpTcrc6l9xv4SgVA68PHQ8IJA== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SN6PR10MB3022.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230022)(136003)(39860400002)(396003)(366004)(376002)(346002)(451199015)(83380400001)(54906003)(86362001)(5660300002)(6486002)(2616005)(38100700002)(8936002)(478600001)(6512007)(41300700001)(2906002)(107886003)(6666004)(4326008)(8676002)(66556008)(186003)(26005)(316002)(36756003)(1076003)(66476007)(6506007)(66946007);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?2WpRS1GxRYpeeRkj4PrKU3kehHlF4dUO90U2QLWN+42p9IEZgnK4G0lOam95?= =?us-ascii?Q?fPh4Imcc1o1ldavUer9xA/Oia0r6OYmAQGzR8NGRRDODw8CKuyNvjKCUsRJl?= =?us-ascii?Q?mCLYdDGBNilfnBsZIFOwX7WkRwgo1JwrBgPKHn6diNCsGxYPFWvVnBRNO81T?= =?us-ascii?Q?n4zofBCmMUCDZvrjSf5/f81HO6riWTB0AaPEZao6CMtHJB1NOMROg4jyWM7X?= =?us-ascii?Q?9OWRXpiFM6XEx0qfwQWnyFhKw31ESfJWK/suzBYBupYDHuhjDTn5wT6VMaVC?= =?us-ascii?Q?CailnILko6YrYMWSVUS/l8meN52sLRJbJXDqyXbvAulcy4wjIxvxT0fkBYVi?= =?us-ascii?Q?XTVpPxwDQNzp9jijlaibVMfRNj6/ENm1alLoC2umIV3WeUOGmD/4twu22Vvc?= =?us-ascii?Q?wq8VKLNc90An1DoCPkpAsp+GSD+QeaJSjb7pPuTg2hlZFIokowd2uWsL+Hhl?= =?us-ascii?Q?gM3cQCitGJ68HhSWifSCWzaoVOaz9DJlksq7hL7aNbFUAf965DSGNKTjT2f5?= =?us-ascii?Q?bWMu6XtNQGnjy7/MBgi9UwgW64QKQX/HExgopzDpMb4WYS+Dnu71U1S2sSDC?= =?us-ascii?Q?909fasweq4iHmAFKBWhZPmAUl/NRVORXVtCDgJl1bcJ0ZngXAYFvArwvIzFM?= =?us-ascii?Q?SkS4uvR2ehf9j0bg8CEPcZ2sHEoPc9LWtzM+CI17oeVu+UP333vwk6sW/dN4?= =?us-ascii?Q?60XnDyYLjlN+RpoPk9QxmSbSxEbheE0AMqEOs5Xcj3K64ymGh+0g6l19WSxl?= =?us-ascii?Q?XWTeibM5T0p0YT0u/EoyLqHY3Z/eQVnE8z9lRCfxQrgPDw0z2FbM5+LaRFfD?= =?us-ascii?Q?8ZYJCswVKXBMIR8HwOdAIs0pg1YL+9fhKlnfUHys1erSdzr+pFxkJCn6n/oW?= =?us-ascii?Q?8a/ONjuop8jfQJMcRN170+57VAuwtGj3BInTOtgs9glOhbAZ1ek+Yf8nzg7a?= =?us-ascii?Q?siNng3+C2Jb73APGMtoOHJB0b+xcEChniG5sDPx7iYQM88zSD6d0pJdGsrJB?= =?us-ascii?Q?7fLNJ3pArl5cbfmYuglUcd0gm/pm41Am6VB5TgUYc/RX7OnldUO6O/w1bwzZ?= =?us-ascii?Q?qhDjVVXoLH038GFJpKykdJsHJHi6MhPkzOv5JUUw/w5HtsCAXOPe2LPaL3d0?= =?us-ascii?Q?bJvhjDBegggQjXggy0RGpp8oPOUFxX356UvCOlagEXXYe/KxoInFUKuDg20g?= =?us-ascii?Q?mVxIiQmzanzEc3hj/iyixGvhFOYZW4Cg2P01hzo4ASpFhImTtrQkyJhbxYHu?= =?us-ascii?Q?RA0iRy1xMRYzK6AXGDewrk1qoOgt3ZWSO6tU19dXHdlilkBVxm4beuJyBaGw?= =?us-ascii?Q?HH2TJkqbwbPrrd/Vhm/YI/dZeQ8E4xRK1rrIKbufSucXPh+4D9Sda5nFZU7n?= =?us-ascii?Q?lwjpfnv06hASQVKtN2qEnkaHCOQBXcharguJTAC2ty30Y3rzqO0HXErPLOr9?= =?us-ascii?Q?QZuQM0YciEP8Ejvjs/6sTAY0evGfkb9bmclOPhHYrm8uyPShHiFNFDtUchLk?= =?us-ascii?Q?gOs80q1An6ionLLaiXYhmyxUxZHo2XPOWsQp4DvqOuwiqAonVN3ydmtV1NvL?= =?us-ascii?Q?j7H3CW3LuBGu2KxQLNQ+9IsSNH5DaFKidPLnZUVsRBJuobXtabou9WXlXcX3?= =?us-ascii?Q?1Q=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: VsfJri/J7pigpol6VOkcK8f+hg3HfeCPPI1gkz5byynynS1H+Gnb/tu3zNia/FwROY/HnGR935CeSSx4oeMZh86VAw+U5IzZUd5WESvg2YCULrDMqHMTjQdjVTIoTHh5NfoE7z6Zr/Q0MuwyvWZTMSKJU/icGgXV1/AU7kDR1LR3b660VrU4mzDHUJiJ7D2YpA/eO5969ZBxJSWyJOn1FYW1bhqS4yowp/G5jJfr1MVSD2QVziFFLA7dJCXzlgR5Di4u2kYIIv8tbJq8KBR/K18+DPMmnMqKF6kfJ61b6nKToYV5LBEBJbl4L83TR7mnW6f3f9DROn+wBNw6uUUCHnmTjr7SPFaiyQVKHGq+xgOec1Yp7u18ejU/zLz8J9sqjWS3L2M0ZnHPY3lP0HU2COWchIT4yIQ3wSHMmBqzPLWjSD/5o8oz9QZYAH+XMc/IMVnIAaUJc4AW3C6MAY97sIjo4vLxcrSOW3kk1hcYWT2LEoAsioDnSiJIaP2twdLygFWjBUbdvCXBKUFu6YA3lFprqc/7Fw+Q+Xc9Wg8ljdQltv3KTC1tNacMuEmXDEZUNO8m4Q0s946a70Jw40oA5iwjv0gpMqXIf6l7XFuZeiwzN9237LAKQ/C1tpx+J/Ihy6PmbfVOYD4h70UVXBovxpwYeBHbXcwrpWZT24iy6DAVrnBH1G/Scsqap76N0kPTxZrNZziQiBJh4Or2wlACKkUnrpMeepgF1urEC57sK6iSu61yX9vuLkxEBsMNeAiFmyAwrnBmLyLWxmDScItiZK1NYVgV/C+ENZMZVHtzdRtkCai7M0MMT8nrAj9myE3r0XhodjRutR95lSCIrbK5WG144GY3EOU/8l5mbkMlUJRL2rHVyS28tUiu1hSiq8xUOJVCurMuTafFG7sVzefU4g== X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: ceb355af-a16a-4163-4b13-08dafb0349b4 X-MS-Exchange-CrossTenant-AuthSource: SN6PR10MB3022.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Jan 2023 16:27:56.8091 (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: QxLLRqq4CbgaNF63ZBlnblsKN1iCqZ9fg0RBAZNhKbtTtpVIztv1z35qk0dkqTocMGqEgUAsz178+9SxbFFNmA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN7PR10MB6619 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.219,Aquarius:18.0.930,Hydra:6.0.562,FMLib:17.11.122.1 definitions=2023-01-20_09,2023-01-20_01,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 phishscore=0 bulkscore=0 suspectscore=0 spamscore=0 malwarescore=0 mlxscore=0 mlxlogscore=999 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2212070000 definitions=main-2301200157 X-Proofpoint-GUID: I_K-UACvcYwpXhSPkTb2g6hJmAW659mI X-Proofpoint-ORIG-GUID: I_K-UACvcYwpXhSPkTb2g6hJmAW659mI Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" From: "Liam R. Howlett" Use the vma iterator so that the iterator can be invalidated or updated to avoid each caller doing so. Signed-off-by: Liam R. Howlett --- mm/mlock.c | 57 +++++++++++++++++++++++++++--------------------------- 1 file changed, 28 insertions(+), 29 deletions(-) diff --git a/mm/mlock.c b/mm/mlock.c index b680f11879c3..0d09b9070071 100644 --- a/mm/mlock.c +++ b/mm/mlock.c @@ -401,8 +401,9 @@ static void mlock_vma_pages_range(struct vm_area_struct= *vma, * * For vmas that pass the filters, merge/split as appropriate. */ -static int mlock_fixup(struct vm_area_struct *vma, struct vm_area_struct *= *prev, - unsigned long start, unsigned long end, vm_flags_t newflags) +static int mlock_fixup(struct vma_iterator *vmi, struct vm_area_struct *vm= a, + struct vm_area_struct **prev, unsigned long start, + unsigned long end, vm_flags_t newflags) { struct mm_struct *mm =3D vma->vm_mm; pgoff_t pgoff; @@ -417,22 +418,22 @@ static int mlock_fixup(struct vm_area_struct *vma, st= ruct vm_area_struct **prev, goto out; =20 pgoff =3D vma->vm_pgoff + ((start - vma->vm_start) >> PAGE_SHIFT); - *prev =3D vma_merge(mm, *prev, start, end, newflags, vma->anon_vma, - vma->vm_file, pgoff, vma_policy(vma), - vma->vm_userfaultfd_ctx, anon_vma_name(vma)); + *prev =3D vmi_vma_merge(vmi, mm, *prev, start, end, newflags, + vma->anon_vma, vma->vm_file, pgoff, vma_policy(vma), + vma->vm_userfaultfd_ctx, anon_vma_name(vma)); if (*prev) { vma =3D *prev; goto success; } =20 if (start !=3D vma->vm_start) { - ret =3D split_vma(mm, vma, start, 1); + ret =3D vmi_split_vma(vmi, mm, vma, start, 1); if (ret) goto out; } =20 if (end !=3D vma->vm_end) { - ret =3D split_vma(mm, vma, end, 0); + ret =3D vmi_split_vma(vmi, mm, vma, end, 0); if (ret) goto out; } @@ -471,7 +472,7 @@ static int apply_vma_lock_flags(unsigned long start, si= ze_t len, unsigned long nstart, end, tmp; struct vm_area_struct *vma, *prev; int error; - MA_STATE(mas, ¤t->mm->mm_mt, start, start); + VMA_ITERATOR(vmi, current->mm, start); =20 VM_BUG_ON(offset_in_page(start)); VM_BUG_ON(len !=3D PAGE_ALIGN(len)); @@ -480,39 +481,37 @@ static int apply_vma_lock_flags(unsigned long start, = size_t len, return -EINVAL; if (end =3D=3D start) return 0; - vma =3D mas_walk(&mas); + vma =3D vma_iter_load(&vmi); if (!vma) return -ENOMEM; =20 + prev =3D vma_prev(&vmi); if (start > vma->vm_start) prev =3D vma; - else - prev =3D mas_prev(&mas, 0); =20 - for (nstart =3D start ; ; ) { - vm_flags_t newflags =3D vma->vm_flags & VM_LOCKED_CLEAR_MASK; + nstart =3D start; + tmp =3D vma->vm_start; + for_each_vma_range(vmi, vma, end) { + vm_flags_t newflags; =20 - newflags |=3D flags; + if (vma->vm_start !=3D tmp) + return -ENOMEM; =20 + newflags =3D vma->vm_flags & VM_LOCKED_CLEAR_MASK; + newflags |=3D flags; /* Here we know that vma->vm_start <=3D nstart < vma->vm_end. */ tmp =3D vma->vm_end; if (tmp > end) tmp =3D end; - error =3D mlock_fixup(vma, &prev, nstart, tmp, newflags); + error =3D mlock_fixup(&vmi, vma, &prev, nstart, tmp, newflags); if (error) break; nstart =3D tmp; - if (nstart < prev->vm_end) - nstart =3D prev->vm_end; - if (nstart >=3D end) - break; - - vma =3D find_vma(prev->vm_mm, prev->vm_end); - if (!vma || vma->vm_start !=3D nstart) { - error =3D -ENOMEM; - break; - } } + + if (vma_iter_end(&vmi) < end) + return -ENOMEM; + return error; } =20 @@ -658,7 +657,7 @@ SYSCALL_DEFINE2(munlock, unsigned long, start, size_t, = len) */ static int apply_mlockall_flags(int flags) { - MA_STATE(mas, ¤t->mm->mm_mt, 0, 0); + VMA_ITERATOR(vmi, current->mm, 0); struct vm_area_struct *vma, *prev =3D NULL; vm_flags_t to_add =3D 0; =20 @@ -679,15 +678,15 @@ static int apply_mlockall_flags(int flags) to_add |=3D VM_LOCKONFAULT; } =20 - mas_for_each(&mas, vma, ULONG_MAX) { + for_each_vma(vmi, vma) { vm_flags_t newflags; =20 newflags =3D vma->vm_flags & VM_LOCKED_CLEAR_MASK; newflags |=3D to_add; =20 /* Ignore errors */ - mlock_fixup(vma, &prev, vma->vm_start, vma->vm_end, newflags); - mas_pause(&mas); + mlock_fixup(&vmi, vma, &prev, vma->vm_start, vma->vm_end, + newflags); cond_resched(); } out: --=20 2.35.1 From nobody Sun Sep 14 14:22:07 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 3F847C05027 for ; Fri, 20 Jan 2023 18:03:35 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229637AbjATSDd (ORCPT ); Fri, 20 Jan 2023 13:03:33 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:54152 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229446AbjATSDb (ORCPT ); Fri, 20 Jan 2023 13:03:31 -0500 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 8A5BB28D21 for ; Fri, 20 Jan 2023 10:03:30 -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 30KGEYO8026896; Fri, 20 Jan 2023 16:28:02 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-2022-7-12; bh=5lZYcXgYC2XU7Q7Crq0PpM5xawnxjnt3+he9batxW9A=; b=z5cy3D6NpXlMlCgZIQj7dWFWT9kkjv7Bz08HGQRuGFcBxeiB7xJRxbA6PPvMCTRwEVa2 XW6qHxk9C2XGnnGnnt6BJrld772Pou6kzrakjKlZMtMXM57h6IAsdEB+i/+e36kiHi8O W+pDyK2/WE+o86GX8FZb3G7aa/g4noLaIxiyZ0wDT4Vlkm6Cmo/kX30fZN9VX1n6nQVw NGeH+0Z9Sdn34DyYqaV+y9ydF6py/npkiPuq3OX30JUz+YKEMB2V59TlFpeksfB+QsMr QBRYv75aczqvyDizI/q9vqR/2Z695/JNhdzgAxFPqw1O3O+bklM0ALXw9sqpLK8VWNeo gQ== Received: from iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta02.appoci.oracle.com [147.154.18.20]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3n3k0154bw-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 20 Jan 2023 16:28:02 +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 30KFHH9s018715; Fri, 20 Jan 2023 16:28:00 GMT Received: from nam11-dm6-obe.outbound.protection.outlook.com (mail-dm6nam11lp2172.outbound.protection.outlook.com [104.47.57.172]) by iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 3n6quja01d-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 20 Jan 2023 16:28:00 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=QvwYAEumVFDmNG4fBr0qanWn3V6xQ5nFB7sGIi06+ENYSh4Zau0Dibwgv2ND0eaVMqY+poWOB9gY8+pirh4x1LApe0eYu1HHKZAMICLiFL+MqmQ6FaPImozFXe+NBDa+aFCgdpQoNl5wnlZT5uN0k/OPBGvV9zdNAfWkQIdt5gCcT81oWgRlMNAI6rdFFns13uNNb+suqbd1SjMd0RbHXR9TzKAG6ZCl5wJgeq3VO0E1hMZ3c9SqVUba0KSho95BkKgOpEvBYXJWKZugVE1OO2hka+DgQJOSWU+ceuyK+17FU1OOpi7vUvvT/aqeRffhrN1KLfjxQ50g3r1y+jCA7Q== 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=5lZYcXgYC2XU7Q7Crq0PpM5xawnxjnt3+he9batxW9A=; b=ah2yefM/g9xF/g6wiin/3az+N6eqcwN+RAtTIX78FTNwknUJQoQW6EKMTNGCsYYyOhOm+v49z8m5tHeo0S0vln85uCdlHhthv6o31YUIlIep0g8Or2UpnvgGzfc8QMccceakOgM2CNBmU14DZdJj6vwWoCVT7W23alzEMB+0fRW4GTecLOsZFMCGrBk2EjFKZoAc367MrL21/fL0qVGixvBwKASusF75DqcxbVE/qAAV9blmvBNkmO1VbK1ndcMbfy/fonNUKcAUqJ4l5rhhbgLnTNHnUHKCaECHsRSxuEQQ1wRKk/S7r8KudX77sdGqdUu3rgmaldPyv5PkqxqJfw== 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=5lZYcXgYC2XU7Q7Crq0PpM5xawnxjnt3+he9batxW9A=; b=jEHaOOBwQxAjeFWhZWfagx+wvK4ltGg40Djy3dpw2p5HjqzcvJES5/61KbrCIOqvWVqxvYRkAPbf6YWxmNd3cylh20xaAZnyoLsScriVisZVHzfdqtIPvbxm413cli98fIOyfjgwvwE0UpKo+GDXcWfnbRCHBwdTA1M3VXb9Pc8= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by SN7PR10MB6619.namprd10.prod.outlook.com (2603:10b6:806:2ae::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6043.7; Fri, 20 Jan 2023 16:27:58 +0000 Received: from SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::7306:828b:8091:9674]) by SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::7306:828b:8091:9674%5]) with mapi id 15.20.6043.005; Fri, 20 Jan 2023 16:27:58 +0000 From: "Liam R. Howlett" To: linux-mm@kvack.org, linux-kernel@vger.kernel.org, Andrew Morton , maple-tree@lists.infradead.org Cc: "Liam R. Howlett" , "Liam R . Howlett" Subject: [PATCH v4 19/49] coredump: Convert to vma iterator Date: Fri, 20 Jan 2023 11:26:20 -0500 Message-Id: <20230120162650.984577-20-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.35.1 In-Reply-To: <20230120162650.984577-1-Liam.Howlett@oracle.com> References: <20230120162650.984577-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YT3PR01CA0112.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:85::30) To SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SN6PR10MB3022:EE_|SN7PR10MB6619:EE_ X-MS-Office365-Filtering-Correlation-Id: b6304b48-82cf-46a5-ae38-08dafb034ae0 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 78TXp6kJlid7U/RPa3NO4IimDv5r5s8kRx2RHoEKp1IGW9JUGMRxSCAxK3ZcdeXvvghY2fzrfB4C7ds2b4e0lo/62dh81G5lYQDhvFj1kCIK+E2bcaqX1C3wOACSqtMTJ4BUFMORkmml6Cbqo93GGTuTo7gdYhotRW9swt9wv8NMWapdX1ZpKvaRoB9yaL26vQxCQdntsS3Tw8EGHxllhtraXBBzmx0F26poIpmfYMlaM3lj5T7GuiXmBn+55ROF+EY9f4Q23hGSVcDu3/mXwTm5wLz7tW4O1BFTT/ZgvgNBNKJMApGYFzfFTqqy8UFlR5N3+ew2ybl4/obXwQFfOcOrHh7Um5p+zR7Bi+YPW9bV/+uGU22tVslQmt4vmowxGNlg6ExXDystss5uJW6ZM+jDTjqYBOt9lGmRlTk9rDmLdP7ZLh6i2X1gW67Z3EPTMZvg7VV6JTcPG119Nmn1D9wsnJJ1IV4IQyTpw4ByFSqDA0cvgp0YhdcoFNZUfT7S4yiwdyftWVg8b/rlpz6UNgxQbJOvHUlUFpeR5Doa0jp2tQ7wCr/ps702SJW1YQIDv/E3vg2CVvPRkFdNaxUt1AW+dBjwtTwnpKi/K6k5yQ8I7l1i5p04EODlvhwssfljutRBPNEnsW+3/61RXmtF7w== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SN6PR10MB3022.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230022)(136003)(39860400002)(396003)(366004)(376002)(346002)(451199015)(83380400001)(54906003)(86362001)(5660300002)(6486002)(2616005)(38100700002)(8936002)(478600001)(6512007)(41300700001)(2906002)(107886003)(6666004)(4326008)(8676002)(66556008)(186003)(26005)(316002)(36756003)(1076003)(66476007)(6506007)(66946007);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?k9+yrNsGv6BkwcZgEuPPUn3IE+rKkFnXVIsuDlM3ZeuMirMy0tk4vBbAPpOm?= =?us-ascii?Q?YdDF4yKokLpTZ/WZWzXb/UAng6Djk1DYD3fYqr2SBPKDwi95XnxK4t9TqLIQ?= =?us-ascii?Q?VHQA2kYtYdaEeYSbAeWiGTXoMHxK0/diTpwE4lBRg+MBBQ/18ZXcHiJGc0Sq?= =?us-ascii?Q?mI48SbEKUkC5qUtKbIDBpN+bmqSQRn2kw/rWzKd/FvqS1NPcd9mOCltPXuJV?= =?us-ascii?Q?noeEI/UHzxpzjgLVgOLSuxrPDavsw2P4cfC2RKKLHptgXQscUPheFWG1FWcZ?= =?us-ascii?Q?pblC6nRc8NOY7HGN2rUEoOb2lInV+jmIMkd8dBPv/Qlqdyhg1JhAjVNyq+Km?= =?us-ascii?Q?XrrTCpMdv8+MKeWeiPU8lj5UwItMSgzF4iB9vTRcMaxaHS8RjxTVn4SsuJsI?= =?us-ascii?Q?K1qPrpaqcw6+i3bsanr9BQgABWH+n81sJE/gMc7+D4AxXRHS5bYIIwwyxFfq?= =?us-ascii?Q?0EjEbFz5ZqBa9dPbJW8090Ce2bIbBuN6H8ar7noN6GtsRhu81y47ftlWxqJH?= =?us-ascii?Q?fyMl+X/WqsO4D46361nOUb4tRzoJ9gQJh5komFDvsBnc+vN365x1urGiGFal?= =?us-ascii?Q?vSEBnz/RkmjmfXgKBKCeYAqgHh/v5N3YH84N1H0gjkf3PD0EN1vePh7wGXDy?= =?us-ascii?Q?qU0bl5MJU91Namg8pq9buqqgY1hBz4Lev4vO9xqbEt/S0nl0zZkU7L39MPW/?= =?us-ascii?Q?N/Dt9abLdFMgthrH/fBSvPnk0vF2Qau9k2Xtab5uHgnD+Ho9sSl/IcTrQNxO?= =?us-ascii?Q?GYS7zcw4vEfuP1GzjNvlECp31kaptYtI4KpJB0RnT96d5RYDiR7gKQsEPF/L?= =?us-ascii?Q?XZNGIabJ/EFMHGQ+gYHF0cieIwEEIqzA0U5TaF4X+Rg6BqWfeiI6Z5IaiQ/1?= =?us-ascii?Q?QVOZ/7fJ9HQAej0LzDfFOdckMImRUCPhNvWyxb/sbn/r9YbUbNBw6LoU8lDF?= =?us-ascii?Q?1s7nT+t2aQH5OfQrreBqiy/+XtGhvCgMIEC7M4U6hQhcqENGgmzn9/Xbe7DT?= =?us-ascii?Q?/JVvGHqHhj+hoBUD0U5L7HFLYlyOZImuJf/U6q0SOvrRfK90Ms/XRRg0uy+b?= =?us-ascii?Q?HM9YGKbdUZ/wWeWAwzIhzirEFUu1mFV6iQmZ/Gt16WoyvxJ7IPIjpaAGbIu5?= =?us-ascii?Q?ikPMmT+7W/z+cYHnlMkaKL3Ao+UMCT63ypb9sovvJuUbmCltD4ronhyq5EYu?= =?us-ascii?Q?zvijvrJdixVk8YC9mYL5C5k0p18hPssxr2KjjyGyBVrxkemBvzShLAdafO/q?= =?us-ascii?Q?mkus3ISd5LR4WCrDxCpj1LBZXCOq+dixLbZe4QqIQ4wMeKOu06k+cs5SsfwU?= =?us-ascii?Q?DSt6Yd6S33A803b3Oh9wEWLlw+EOx3iUNeU8J6kxCjFv0+nmbOUtm0gUdcVi?= =?us-ascii?Q?wP+cWU7vm6wHbdD66BxcYXu9jttMjBbTOx7A9n5xvGO1mm/HXvZZTjKjkw7P?= =?us-ascii?Q?SCub+zL0fcgg27tlA6M8YEv+JVuN36bdID4m2c+p3r4MewQnN6xE5uVhgzIm?= =?us-ascii?Q?MwOiaXSJ8mtbrk3Tik/MoY9u4NeewYh5NOmhmLZLVToJTpub2BlpiUVrUWM7?= =?us-ascii?Q?1zVtqNxvRMCFtSvlG35QrdNsdmRSSUbagX4kOaOxQvHST+HjUHBvyj9DAYdr?= =?us-ascii?Q?0A=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: ewb25UxK4SXR8HLzTl/rHxpNgmee1R9JzAjxzU42VTZgl9DQ52SMmsqjhEOKMR8OkB2in+F2eGXPVzSVUWrcX9L8OijMrdXcMiHt0wUPe2bJ/aDhbZJv2iEVBCxi1Fp3V90GVFjxTFoUdDLClOk5K5q9xlsQ9aQUcKRXdstS/CIBgK9sxMgLBu8rM/LgztZlRRmtrB02BrZ9Qx33bcQkiyatAKraQeV/wkud/esT6ea9z7VDjLhEQb2XRuVdtEXW0lMXMFL591YEwFXbbKuDGdNBKBApvyLknv+5OfVhe45DHHLlzuIjfWPxfXYQwvyzLZcV1b4E2k1WcAlv4diY95YvEV5BYq6l6AMr3cuqb7ZaFBObtBza6Ed2RyLoTyQcZDyZwM0Rz3dSEGEvu7EgdOHAJfjKb8DTB6ff7f9ffT+denE7BrHGOZxcJLs1hh3r9XpLJAxjlqO2KiNJTCI/ruYz2W/YDIAClF7RjRDMW+O2gTNJLGMFSr2zCqphzlmK+P1oGdtk1BavHNRr3HPyfQxmYFMTsYoiKU0XqkOMzCbmK6eITBm2SK4QM9vaOeBX+fXZTQ+8ggvK48IFdZTRc2gOLFN3oUEdtVjP8AKNxOOGrJ2JdrQSrhgWpc1eIArTcgdGYP5GJ9zwk9UNaJ/eJb0NT7U8gQ37ti2peBOIvavZ9gFjWxPqmyMEl/vV5cJNTwcdq0dMJ63Pu8UgrA4USB5C6VCNa4MVoagPdE4Y8ouprphyXThGjV68xAW3s7bKMI22p54R9b+3Djjyv965gy8OalP5CygqENzYFhDBKJV2GHGU54JD8dCI5YXmFqq6mx+eM+3UqA+Z7AxBAk9ngWlDIku/ONn0fHv8K/TvNC+Z+aRsZOj0VLwF953F6pdsVQlfMPZ6rGKzCALz+jxpbA== X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: b6304b48-82cf-46a5-ae38-08dafb034ae0 X-MS-Exchange-CrossTenant-AuthSource: SN6PR10MB3022.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Jan 2023 16:27:58.7933 (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: z4TimXEOL3RaIIX2TuhYXy2kuZSSiNEif8lGkZuRys739Wq/bzAPLnryQA5GBEkiHQGTIc2/PCaOF+++rjcKiQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN7PR10MB6619 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.219,Aquarius:18.0.930,Hydra:6.0.562,FMLib:17.11.122.1 definitions=2023-01-20_09,2023-01-20_01,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 suspectscore=0 phishscore=0 malwarescore=0 spamscore=0 mlxlogscore=999 mlxscore=0 adultscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2212070000 definitions=main-2301200157 X-Proofpoint-GUID: jOU0MwfaRsnZi4rKzuj3KyjiDJQfsgZ3 X-Proofpoint-ORIG-GUID: jOU0MwfaRsnZi4rKzuj3KyjiDJQfsgZ3 Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" From: "Liam R. Howlett" Use the vma iterator so that the iterator can be invalidated or updated to avoid each caller doing so. Signed-off-by: Liam R. Howlett --- fs/coredump.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/fs/coredump.c b/fs/coredump.c index de78bde2991b..f27d734f3102 100644 --- a/fs/coredump.c +++ b/fs/coredump.c @@ -1111,14 +1111,14 @@ static unsigned long vma_dump_size(struct vm_area_s= truct *vma, * Helper function for iterating across a vma list. It ensures that the c= aller * will visit `gate_vma' prior to terminating the search. */ -static struct vm_area_struct *coredump_next_vma(struct ma_state *mas, +static struct vm_area_struct *coredump_next_vma(struct vma_iterator *vmi, struct vm_area_struct *vma, struct vm_area_struct *gate_vma) { if (gate_vma && (vma =3D=3D gate_vma)) return NULL; =20 - vma =3D mas_next(mas, ULONG_MAX); + vma =3D vma_next(vmi); if (vma) return vma; return gate_vma; @@ -1146,7 +1146,7 @@ static bool dump_vma_snapshot(struct coredump_params = *cprm) { struct vm_area_struct *gate_vma, *vma =3D NULL; struct mm_struct *mm =3D current->mm; - MA_STATE(mas, &mm->mm_mt, 0, 0); + VMA_ITERATOR(vmi, mm, 0); int i =3D 0; =20 /* @@ -1167,7 +1167,7 @@ static bool dump_vma_snapshot(struct coredump_params = *cprm) return false; } =20 - while ((vma =3D coredump_next_vma(&mas, vma, gate_vma)) !=3D NULL) { + while ((vma =3D coredump_next_vma(&vmi, vma, gate_vma)) !=3D NULL) { struct core_vma_metadata *m =3D cprm->vma_meta + i; =20 m->start =3D vma->vm_start; --=20 2.35.1 From nobody Sun Sep 14 14:22:07 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 116D1C05027 for ; Fri, 20 Jan 2023 18:14:44 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230037AbjATSOn (ORCPT ); Fri, 20 Jan 2023 13:14:43 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:33198 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229591AbjATSOl (ORCPT ); Fri, 20 Jan 2023 13:14:41 -0500 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 229DE6FD04 for ; Fri, 20 Jan 2023 10:14:41 -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 30KGDi0A014958; Fri, 20 Jan 2023 16:28:07 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-2022-7-12; bh=NyI54cfSoAYorfZDyAa3nND4Vl4OMWtoyprfqHnoXEw=; b=TuPLJ7uatRmACkPVoqwPkQOGDH71D7VWuZds1OzdnFmql5XFee928uXUxvaOyRz70bDt t3OMoLF6XgUgCt2vAtc3IBO2HgXt2zaPPJTTDcXUxRZlWf1UOVnaAonodk/QVcXW8EnB uBWmUaXBDQ85m9uV6LaUUvHw58ByPmhXcdsxB7jh3kUqi8sByjusYWv80kp1f0YP8Rt2 Bp4NUc6OTGiFGL7qOBSU/hteWerhfgFWWtCcl2LdTmYjNMLX4p2QEhst9bD1GRl2ZlK8 7fcwzPGWuUZEskVM52ap0+N48zuocwIb2XQ3oeEqMlt4CMrelz+muYDdmC63zv2hDFQj 4w== Received: from iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta03.appoci.oracle.com [130.35.103.27]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3n3mxtd22d-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 20 Jan 2023 16:28: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 30KFA49L013492; Fri, 20 Jan 2023 16:28:05 GMT Received: from nam11-dm6-obe.outbound.protection.outlook.com (mail-dm6nam11lp2175.outbound.protection.outlook.com [104.47.57.175]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 3n6qmfaxyd-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 20 Jan 2023 16:28:05 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=nOabUcfvrscPf2yiKhWr48APgU8SVwa+qe4x4CZyDe6yWF5QzAc2uTrV7aNaiBI/XHgU2gh57TK5Ln9+QYbOrnU2OmcmbuWoonS4YOZYRuHt3Jt0wKP32eKltsl2g4/IXa1uc9A+NgWXkMkW8tlCZvwjLYo4wUWVdkOYr/U6qVXa0V6cD5LswJen92k7e0ftcKwZOHmzz5TCozDIMirapjMT0S2Prm4ytbxCe8Tf10FNfvhfqSp16KEKz0O+py2HBwUstrVGoxVqlccIcyQ9gqCNOPTDlOAuzhPSrr+H29p3M/NaqdIu/MeJaQZbTkADAVURIFQclhUVKldZircdVA== 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=NyI54cfSoAYorfZDyAa3nND4Vl4OMWtoyprfqHnoXEw=; b=a16LZVu91+Y3kpIIkAmeZVd/6loeKbWzkIuuRkrI/AyOcDCrbYA5eDujjcHVs9TCU3/xLKiMFZxa66M5nIygYZy8c3q/rrU55gmd13pClcLyZmbjrjl7MP867I388pq7tiPkvmRhBX86alAlmiQf2Ke8B5aaei2ZtwPjN+W22GOVbklK9D7CKG9oquJoGIIX870Ae7M+qoJOHXtPmHm8N+a0S5D0/Tj9VtDIRvknpUut42qExcf7o8Ttm5KiG6NnBkCL0H5LkYQU2CucknSZK1knUe4UWNJpakZ3/853ElRFaT7Cgzwx/xGuPb2Q27omI2A1+rvLHdcTrDQXxhGFNg== 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=NyI54cfSoAYorfZDyAa3nND4Vl4OMWtoyprfqHnoXEw=; b=tf8twEmWD0adRGygIGwwk/jc1vP+h6WM0WFYXVmk8f2a/RcNEZpH9PEsTXJmqPmEGpnLMMh/+hEOiwJ0LQVu3rSlyysQGShSkLS+rcsR3+IIL1oO6Soxcf/XumAovm5U0AiuqCr4iiUKpqPoOeKPyOceqrmzW84bTjsieATBsxI= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by SN7PR10MB6619.namprd10.prod.outlook.com (2603:10b6:806:2ae::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6043.7; Fri, 20 Jan 2023 16:28:02 +0000 Received: from SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::7306:828b:8091:9674]) by SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::7306:828b:8091:9674%5]) with mapi id 15.20.6043.005; Fri, 20 Jan 2023 16:28:02 +0000 From: "Liam R. Howlett" To: linux-mm@kvack.org, linux-kernel@vger.kernel.org, Andrew Morton , maple-tree@lists.infradead.org Cc: "Liam R. Howlett" , "Liam R . Howlett" Subject: [PATCH v4 20/49] mempolicy: Convert to vma iterator Date: Fri, 20 Jan 2023 11:26:21 -0500 Message-Id: <20230120162650.984577-21-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.35.1 In-Reply-To: <20230120162650.984577-1-Liam.Howlett@oracle.com> References: <20230120162650.984577-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YT2PR01CA0022.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:38::27) To SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SN6PR10MB3022:EE_|SN7PR10MB6619:EE_ X-MS-Office365-Filtering-Correlation-Id: cf7538ea-4cd3-493f-347e-08dafb034c52 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: lWZkZFXjx2rRG2kiS+C88fhksoJ2Mcaydu2v8OV+9z129NCDFVAgkWpZ5Z097qX37jHJWyXIvQJzAlPUG+gNgWn/H9OUjzvzn2dbNyfEkY3Tb5pJ9UV1RIqgRxRRvtSKwwA6fy7W+Hky10sZ2Nnhj3ZyrN+YN2e1WjjueqoxYHNlJa4SalG59cT0Aj+IvCUaWPKk6zl67oAhWRQQfAVCaRwel9snpsljPveYyrpX8b7xA0T2lkbvCov1fRK9VMvzA/tHcSC72ub7XzH1LKupjqi0ykvaYMyyF2de0QtGHQexJTC0MBeTaLlK59J5dOm4la36PUyGTCfp+xHPLfVbg/X3MB2iRusiKZWWyOOMRqis5x+XCaMyFlHvIrlle3x1T5bmwNvZJG9AKggVMVeE7gu0GZWWaN9Jy22MsXO5JfSOBZEVrF0iwjDm4HV5Sv9XwYI2s0ib8wf0QMXvpl1oS+Alue4J30yVR7UEIl+0Zbt8X0wjV0gVjSjlzOwayTPipcUY8tXotIz1eqr/syjOgccqHT0lhnryfSDenc5K9bQRInE5U4c0i9CbJPo/mV8DT/ZILeWVqWJKInACR0sJak1xqrZT/pWxM90+o8gnGUsQanVyv3iijyXeAkkyd2them2grbX1Pn+gn9BJ5mOmYw== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SN6PR10MB3022.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230022)(136003)(39860400002)(396003)(366004)(376002)(346002)(451199015)(83380400001)(54906003)(86362001)(5660300002)(6486002)(2616005)(38100700002)(8936002)(478600001)(6512007)(41300700001)(2906002)(107886003)(6666004)(4326008)(8676002)(66556008)(186003)(26005)(316002)(36756003)(1076003)(66476007)(6506007)(66946007);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?d3LkIb8H040rbUw1l9SoapIEHzInk+mbdFrQACFaA4jWP9wE4eq27Drgy5lU?= =?us-ascii?Q?kZ8K2ym5BiNp0/fOX7MvQLMuEqS7Ub5OK/5fLMQUAyq16vWh+wQNDLfm9Fo2?= =?us-ascii?Q?9xuNbYn2RSdKDpbbiPqdzBRFu+n+Z0LMoPlThVdy1A8wHKo2mjvyQPuI/vKB?= =?us-ascii?Q?nBoXueaUQcTCaprEgNNnDG7/REjrfeS/XdgUCKPDbRctTmZe8TvYs6cizf3L?= =?us-ascii?Q?LS1JoSpqSZXP/N9+X79M9S11hqQYa++yWs35kWdjJ5LW6RjbpaqnOiY6feYE?= =?us-ascii?Q?68xZ0WSWfUj58Dss7DDvSY9DcbJyjW3ua6ZnBJPqqUXhKo5UZhKQNvP7Zwbw?= =?us-ascii?Q?9toaPkKioAXv4Igoi5pYchjWhFF7/3VvtkXsJUtNUDJ7ULc+RrCQH9FON/Xr?= =?us-ascii?Q?BHqYG+rcA810P3OkVFPx4oJdWpUhFXqE0fJTSQKM9htWLrNdlFEEQNESukHX?= =?us-ascii?Q?R0B+H0LecqVFOYcEUTmh7ABv66MB9cz3SUdsg3HlqR6VyEFNnLzLTyjkPvd2?= =?us-ascii?Q?uh9Ar8MvSOPyb1kCM8mkzGKQOyBxN3azswqFLcW0y9VuX/MUgXQ6RWPyCveA?= =?us-ascii?Q?y0ljfTEuo66rkpCB43yTJ26PfnkiCBXB7w918gkXEVmsQZw77KTljdpZs7qL?= =?us-ascii?Q?CKdPyyuje2Fac0kwvknFxqJCALzQDJoLr1yRssO1i/bM4Dm6T/gf2QQiuA/p?= =?us-ascii?Q?5wJ4331wh5lnCC7k3+LSNdLNvb4Za6+JiXGp3YpQF8i2ykiL5w2xtjx4pt20?= =?us-ascii?Q?DSlcdR8hkJenSto9dGG5Xlks+Biov15LJG/c+p1+nsyq2MFCQznQQj7aUwFB?= =?us-ascii?Q?R4gV7yvqgb45JoW/PvKHGUUhQMFfpu6ilqfb2M2gQugTK1HyrTNkVPMyfdJQ?= =?us-ascii?Q?zsT5W/zMIfnWCNyiEWjkDeDycKFXziisE6F29BWaY1tbTArXYDYojGDF2HIM?= =?us-ascii?Q?LpihB14eMDfaMieJ8px+MY2VfX9dAtqpE6Pqn69Alfr5qi0QW0xoQlemkKzo?= =?us-ascii?Q?e2buIy1cLn5DshkwxirgaGNSDid0+BwfpgEy1cbWdiHvt0q3mDVnbSquGYDg?= =?us-ascii?Q?Vaw3tZkDzwWgOhNPzQ/LkiAOFPXc9oMyIKw3skBMvSJ93e6MoseavToXcrTN?= =?us-ascii?Q?reT+zk6MQzIf1OmhbI1HwsUKZ+kSuWQ9LWqjnYs4wyktNcnwCxFKQ2nrXnnI?= =?us-ascii?Q?jwh0//01pUm+/Xka1uNxa62ypSPmmFqM8WD8NES+6BnqOnLABm9gPnKx6yb8?= =?us-ascii?Q?Osn8IyqbK++h/TKyWmvJC7N085n5AIu7XS2/ZKAcNxq79mHROAtd0ojtKVY+?= =?us-ascii?Q?ATgfe//5b9l101MVm/Jw/S/a1OkTBIecz2CZUTbId/lNYjaB6fUkFBTZKv+G?= =?us-ascii?Q?MpcC5PVqZIo9POXChSqFX/CdVpw/rT1r+BfPRGiOg0fTcZq4Y88SZvCOfCYo?= =?us-ascii?Q?24M6HsnLQ0CplFmTl2ESbXRvJssIBfoReu5XaqP0MjFC3XdyqbMN5pxfT+Qi?= =?us-ascii?Q?elE/NEW7Lpqnk/5cuVFYGyuXXuvcdyKOOdD71x1w2S6xirL16a7Pmw0UOcoF?= =?us-ascii?Q?HAIS2HTxvqoTtkShYPHFS6BloShiM+N3Rilpnq9BmffwQv13WXwno1RZ/pzf?= =?us-ascii?Q?lA=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: cquKLitXkdoepoDxPCNEyaEpFFrGnOOXIJUEb8M+a9X5Mwo7sLu59HmGN1vxHyxm6zpFsPa+v5Y5NgRSMR07bNCN5eiF75AX/DgHNqx268LHVHhXlOXUj/OMbJwMQh0+P/6tBb/+3q9P27UhaMFYBcjUygimYG4F9dYLWe1KLq3eS9tl9yGD7/djrDH3MQr20PEX4adDRzu0BdngExVaWt2nEYLt+rqw64UbpZObltrirBeOx7dpllQcmA8anGnlH0UgibcmmLUMxtVzglGdXszYPHc6c8gSQ1aSpIZEFWfHt7M0xXMvB3I6IaY7zqB5FARihc9bNvvM4ba1ySYNs6evHXAaapvPisrVPW3KkwshJ2WeRU6XGRdzKS8qE3/OM6N6UY1l+2462wvxyhBo4z5q/eWhFEDMkNQHyYLN9bdO44wzkoh2V41XHddUY+2qR/JRHE3ta6uxWIfIwqVBNX2ljlZK0MLkk1bm0Dx5qlMx+aGuySdyTm7BLfCiR9qhg7c2qW1gBGp2oRd9PSYB+VOWedI4JcJji5hX9K/Am7ZND5AAFucb9WVGk15lr/h2bi/KNHnwH6Bz2IgRpBczrAg+6pbKMZfbfOWuEpiQPY7WUXEkApoqG18ODEqCa1n2UVpNNjNfrg7IWTnkg+m5We4wPAizNE8wa+GKCXF3xUKclizr8k2DQnYDBWyi/41qUcleWjUZ7T7vzLJsdWZHQOal03/MTbITmOI/XBOBzyo792M5eL+Ivt8XPWQGGATSZFXgw3se25yyrz2Ox7qmR9Z2W7a5FFd04wWYyegEFRwDJTJ1deCXnBHbCwkZcAMFoGnEseFNvn0npX1S+DSHU4ZP8NhA/8Ia/5Vps/X+V7RfbxHOS4ZBYk825YFHx5GUOj955MSxexw2InwFq4jfaw== X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: cf7538ea-4cd3-493f-347e-08dafb034c52 X-MS-Exchange-CrossTenant-AuthSource: SN6PR10MB3022.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Jan 2023 16:28:02.4025 (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: ooo4p9iExumGqHeNr8M36R7YpH9bgK1dUHjS+duEBJ/hRJXvZPFXtBmnJQnPvY2XrJf2PXlMxe9JMlGfLYX1wA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN7PR10MB6619 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.219,Aquarius:18.0.930,Hydra:6.0.562,FMLib:17.11.122.1 definitions=2023-01-20_09,2023-01-20_01,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 suspectscore=0 malwarescore=0 phishscore=0 adultscore=0 mlxscore=0 mlxlogscore=999 spamscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2212070000 definitions=main-2301200157 X-Proofpoint-GUID: Sg_AcXIX_VmotX3jsWaskJdGwpoJruJf X-Proofpoint-ORIG-GUID: Sg_AcXIX_VmotX3jsWaskJdGwpoJruJf Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" From: "Liam R. Howlett" Use the vma iterator so that the iterator can be invalidated or updated to avoid each caller doing so. Signed-off-by: Liam R. Howlett --- mm/mempolicy.c | 25 ++++++++----------------- 1 file changed, 8 insertions(+), 17 deletions(-) diff --git a/mm/mempolicy.c b/mm/mempolicy.c index fd99d303e34f..f5201285c628 100644 --- a/mm/mempolicy.c +++ b/mm/mempolicy.c @@ -786,24 +786,21 @@ static int vma_replace_policy(struct vm_area_struct *= vma, static int mbind_range(struct mm_struct *mm, unsigned long start, unsigned long end, struct mempolicy *new_pol) { - MA_STATE(mas, &mm->mm_mt, start, start); + VMA_ITERATOR(vmi, mm, start); struct vm_area_struct *prev; struct vm_area_struct *vma; int err =3D 0; pgoff_t pgoff; =20 - prev =3D mas_prev(&mas, 0); - if (unlikely(!prev)) - mas_set(&mas, start); - - vma =3D mas_find(&mas, end - 1); + prev =3D vma_prev(&vmi); + vma =3D vma_find(&vmi, end); if (WARN_ON(!vma)) return 0; =20 if (start > vma->vm_start) prev =3D vma; =20 - for (; vma; vma =3D mas_next(&mas, end - 1)) { + do { unsigned long vmstart =3D max(start, vma->vm_start); unsigned long vmend =3D min(end, vma->vm_end); =20 @@ -812,29 +809,23 @@ static int mbind_range(struct mm_struct *mm, unsigned= long start, =20 pgoff =3D vma->vm_pgoff + ((vmstart - vma->vm_start) >> PAGE_SHIFT); - prev =3D vma_merge(mm, prev, vmstart, vmend, vma->vm_flags, + prev =3D vmi_vma_merge(&vmi, mm, prev, vmstart, vmend, vma->vm_flags, vma->anon_vma, vma->vm_file, pgoff, new_pol, vma->vm_userfaultfd_ctx, anon_vma_name(vma)); if (prev) { - /* vma_merge() invalidated the mas */ - mas_pause(&mas); vma =3D prev; goto replace; } if (vma->vm_start !=3D vmstart) { - err =3D split_vma(vma->vm_mm, vma, vmstart, 1); + err =3D vmi_split_vma(&vmi, vma->vm_mm, vma, vmstart, 1); if (err) goto out; - /* split_vma() invalidated the mas */ - mas_pause(&mas); } if (vma->vm_end !=3D vmend) { - err =3D split_vma(vma->vm_mm, vma, vmend, 0); + err =3D vmi_split_vma(&vmi, vma->vm_mm, vma, vmend, 0); if (err) goto out; - /* split_vma() invalidated the mas */ - mas_pause(&mas); } replace: err =3D vma_replace_policy(vma, new_pol); @@ -842,7 +833,7 @@ static int mbind_range(struct mm_struct *mm, unsigned l= ong start, goto out; next: prev =3D vma; - } + } for_each_vma_range(vmi, vma, end); =20 out: return err; --=20 2.35.1 From nobody Sun Sep 14 14:22:07 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 EAF5CC05027 for ; Fri, 20 Jan 2023 18:15:45 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230147AbjATSPo (ORCPT ); Fri, 20 Jan 2023 13:15:44 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:33726 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229454AbjATSPl (ORCPT ); Fri, 20 Jan 2023 13:15:41 -0500 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 9F47D917E4 for ; Fri, 20 Jan 2023 10:15:40 -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 30KGDnl9015013; Fri, 20 Jan 2023 16:28:07 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-2022-7-12; bh=h/GdLfDfbRHJ+RMjKX6CtoKZdT/+X9odMCcSnswrYQ4=; b=qEDLvh9HmLy5dGalB1DJUjzETeaI3i821US6CmaCxtrSOFxJLRw9T4jSOpNweCpN7Bd9 g+aHZfTTrjViyj0KNLlIl90hf4XSzN8ghZx1fb84n25sS9nGvw4i+yi5tR+6eV48q+MD G5RYBwpeOans5r0+EyD36IHONBClJfIbAODc2S76/yyB4Bep+S8v6I2D6vHXOsOCWkRG 91IXdJ181XYhZtVR2oyXOw4qss+CU66oCINq3fe+gKTiVrzYZcvRBR2sD+o5D8sOai9M l70W8V0BIR7io0O0f5PlRXB1joBk8m2gvj8b0fppTnIkBnuQ0lHVGMvG9xUo5TxMmt4l 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 3n3mxtd22e-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 20 Jan 2023 16:28: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 30KFA49M013492; Fri, 20 Jan 2023 16:28:05 GMT Received: from nam11-dm6-obe.outbound.protection.outlook.com (mail-dm6nam11lp2175.outbound.protection.outlook.com [104.47.57.175]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 3n6qmfaxyd-2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 20 Jan 2023 16:28:05 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=e8dO0VYRgSNIF27Cg8+DdAGmG42eMGG/EwnSjSPbPLgEuTNC9AgSd37rWE4ySM6Kb90EZvJ5WvvTcirWbnXOjAc7ZRxQOtu0DbyCciZ9vKbWfaFhXIXtTblBl1oG71mb9/NQl+w/FD5ZRMZwARuo3eQ2KphMtKQvEmfOnXxGcM0pc9OgBUXn70prs0qHDFyAaJlfnJHifT33MR9M2YfcQjYfxEwfzqi+5Kt9CyZMJcKTLZb1/FxJmknbksTXDhFv3J9kJMrXpeaRf/9hTsdKFuC5alMMjPu0YuzTGU3+UT7CWjrtpFEZbttLGr8jvcZQ7p9ouOVnh21VZMunyzqZSA== 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=h/GdLfDfbRHJ+RMjKX6CtoKZdT/+X9odMCcSnswrYQ4=; b=B3tPF5xGfyQBd10b76OAtwoaj/wJXqHmwN61QfmjWRKdZFTI0zd28M9lBlJDwhtwG3lNim3q3hkk3n5Z842i8ApjUEPceM2FBAxarTnx9mLQ78cs//LpI/IkPi+4U3FRO45jeTKXcZVXvvnNco6najV+if1rfw0SpNBDt24uytWsZh3IE8FgpF0P+O2SxPh8VCXfBu9EMVrcHOk2AI3fd7tx7n2MsSxSfVs2RSsPpAtl1oK8cKANNPROwtDVzQ8/+igBz5qrfLhP4ykN3BDUkdSYQmFCMrOuK0MmY+NT0Yy/NZiz1vKZsAqF2UAbvGQfYvYbGkNrdlz46fdqFO8djg== 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=h/GdLfDfbRHJ+RMjKX6CtoKZdT/+X9odMCcSnswrYQ4=; b=Q+NMPNo4D0trlG0u6AKNcM599Co1ZWoVBCw84lvGfqrXaKhAqwzrBBcLU1DZ9miobAsTnF8RPZGuYR4SLKuiPtQouRazlwQ0AZPdyY+iEgg79/ndGG+pwObrbD7SHMvsD1cg9+2KNvulT2dHk4ncN8xhleKPO8x1BseRyTRtHl0= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by SN7PR10MB6619.namprd10.prod.outlook.com (2603:10b6:806:2ae::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6043.7; Fri, 20 Jan 2023 16:28:04 +0000 Received: from SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::7306:828b:8091:9674]) by SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::7306:828b:8091:9674%5]) with mapi id 15.20.6043.005; Fri, 20 Jan 2023 16:28:04 +0000 From: "Liam R. Howlett" To: linux-mm@kvack.org, linux-kernel@vger.kernel.org, Andrew Morton , maple-tree@lists.infradead.org Cc: "Liam R. Howlett" , "Liam R . Howlett" Subject: [PATCH v4 21/49] task_mmu: Convert to vma iterator Date: Fri, 20 Jan 2023 11:26:22 -0500 Message-Id: <20230120162650.984577-22-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.35.1 In-Reply-To: <20230120162650.984577-1-Liam.Howlett@oracle.com> References: <20230120162650.984577-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YT3PR01CA0096.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:85::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_|SN7PR10MB6619:EE_ X-MS-Office365-Filtering-Correlation-Id: 8d56947d-f0ac-4df7-75a3-08dafb034e63 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: TIpPV4l33oFLiGkYuYQiuJ1dK8zQTTzRYvX5ompjsyvD1QP9HqOoAHdAQAvme6zp968EB9NZPRB1WbGrcyxr3aqSsT1KOy6brOfnqMqSWXea0lzalp1oJ4bIca4gaVjQtWRyGT/PiMBHgGqUeuX4CgaAFpytpcG+UNAbSsOzKqMXlktFv9t3w0ZADy6b+Kt2rkn89MTebLsBdWM5V6b9gOwgPfFOGvY+kx9zix/S5mIyKnt07DDZEJxXlDIk88fF/Bnzs70ef3g8/NodpKXFlB8WzJGwlbWHpolxnJmRzQgtBTHD2EG1qANh3NbLSA+2thdk/EOoQAqopXKR4AIC25TnBeCxr/4XFcryuQ2QOw9ZxM4RYqzzoh2h2IpL+AKlWShJucSoataaXDe+ZRRS8vmxSNz4/qm5LAWA3TKQ870pnoJyLsn+O5bSVJr8q69T6ikgAp26HuanuI0veHlEuu647OWDRrJqdQq6rSX0Uru2CtuxY46k0VJjR2elO7snIZ38BdUSrdr35m3bw39G9hWA8nTP5Ey9apJ60KfQHq4F7bauoMM+Fv6+UgElHsvfXum1yiRHJKcmG2raVRrk6wFeQhVZ5JkGLIPgRzxFCWUF5dBOc9XHly+3qfVGvUYcFM1xmLyFQKNWpHKnwe7LvA== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SN6PR10MB3022.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230022)(136003)(39860400002)(396003)(366004)(376002)(346002)(451199015)(83380400001)(54906003)(86362001)(5660300002)(6486002)(2616005)(38100700002)(8936002)(478600001)(6512007)(41300700001)(2906002)(107886003)(6666004)(4326008)(8676002)(66556008)(186003)(26005)(316002)(36756003)(1076003)(66476007)(6506007)(66946007);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?bw5ZrlujN4ci1U6tgD8nGlntDGbwgQD7ElVqrjmwhen2Gdafi8ODHFsDdZuw?= =?us-ascii?Q?6LarajNm2OC8v8KJ9ZkrdenD8hQdIPzTztWfDTR/gRO+7Po3PaiLMvI9QV1Z?= =?us-ascii?Q?zsRQI251KzXd/t63ZoeViOfEsqg2dZ2JH6OpZBWIKTgMeqG+ojBXWH8VUFHz?= =?us-ascii?Q?EyQiV17tHS4C8bnwabM19rnIz56O4SIrGaJWqk9kt7DlJxOClNgYQ6bEGKMj?= =?us-ascii?Q?aOpfcJ+HGfFe8J9TCGG0WKGw8NlXCyQPG7Qb0fSWnAQu/xaR+JNJpLg50lkS?= =?us-ascii?Q?yaxsA7NjBLZBaEtrszqSUJsRp0AbeGK3eIiRdM5OEZpZYQF8pCfFhxiTlW+l?= =?us-ascii?Q?gvfms0OfSwazSuy/zRKYgyoYlROETJUdG/i+MVh3PtTYbTztRiQSmvziwTaP?= =?us-ascii?Q?U1+2BVGU+WYmBUypYNxeMsL50BOsOLOxHW/U6t2SOkcjr9tTpXZGtRGffAci?= =?us-ascii?Q?xkRtqMdQ1JP8oerhVi8+oQvm5WjrniErbbQnyWg9zO3uL/HKT8TMogQ4l4KW?= =?us-ascii?Q?iTa0hQXWVvXoVNZQdTSc0eFiZl4DgKPCPfHK80NQv2RjFc15dQNSfqJIUy4X?= =?us-ascii?Q?UMIircngatnXeeOeA4zIHSumIhsyYybucrWR13w7g1o0OnsRq5/lyTQu17N8?= =?us-ascii?Q?MuhhMblHryydNgzasFWDYdKI7e2lWgPHniWATjha7LjsS7gOqV/2J9+lERWX?= =?us-ascii?Q?1ekN4np3/NrKkIF/Luq0yb/q63b25SM7Y9BWJiefm5raG20KWwPGj2UIB8yQ?= =?us-ascii?Q?TknGQZJS1auuv8aUTXXnkA5KCZ+8Aak/mjjj0/IUGnOcRH114V9MvxLEwn7Z?= =?us-ascii?Q?9ZWxMVEWTyaEq2Kcjvy2iwRRAWExWULgkyuHDq4UmzFPuPkQ51RZmPUr4cz+?= =?us-ascii?Q?tT66tIKANeiEeJJxyIQaNuTvmuk7johqA2MLsqoyudg4xC5PepQqfflWxKgQ?= =?us-ascii?Q?6jpV2LMiOtylU9yzuuoh+6js76/sZejeD2BOO4C0IeCNBF8GAHOwZdzOihEK?= =?us-ascii?Q?49dO8VpX3l64SfO8xcA+qOf6i+h0ZFbBr2T38YzueITlro29Cy17ygQ+xAFU?= =?us-ascii?Q?f6C5tC2y3O1t25wo1akAURxjNqEOCnYBJmlFSB3sol18lMbrGUmtVLu9vGc5?= =?us-ascii?Q?eqQz84CPrLwClMBRWdjrlL266QkIjKuPAVvSgj+Q3SUIsWvpzeix9oXJ36dr?= =?us-ascii?Q?QS06XmJM9yNEbfISiONykiqCjjUvDGTT+3yAzmNkzySKOwNFX4f1dT27yW82?= =?us-ascii?Q?oeQDFHeF++MUFDDZtZJJKeCnOMQqBlFfq9iHV132WKdmEDGxPv8Mek+CcNLp?= =?us-ascii?Q?nBctNd1UqwlSUeuaKRY3oKh7nVZLqO0TTk7Iq8MPycNvMrBgUlona7YoZDLb?= =?us-ascii?Q?7cNbEuljMs6dohJbhSSAH3ZUKZYcPURhgggRgYIG/sltBiUovHyV6sHdrz/c?= =?us-ascii?Q?Q3kxlaGdzj87dWRu0ELB6aLk03O4ACmwnvo7O9yqftOOY51eFj7Yk4dl66It?= =?us-ascii?Q?V7m626uusZGSNX+UArLEV4GLztbRAkVZYNbuGUmCh7ynU799MsXs8tH/YhZQ?= =?us-ascii?Q?n/cpGLA8dxTQ7DwSpO3ynWrj1NKUck0327lJRCmU480OPQNDxmPCLi6CkmhM?= =?us-ascii?Q?2g=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: h04CKSS6QoWXlGMdozjM3JgBg3nZowKUIn4JGJ3AqFth0h/lL/dcsWKnYi5ActMxszrK4KcxF08FXBnGbgCn0zo6+gJ3Xn7S+iOXW/bmJaRxMnYUpuVy0D0AHPP3n6F8yGgchqn3EpTsZ3bb9DZZZ7CLWIXP5NSS/o+TwUBl8uoOsTltpQ5gDJdWIvRByXJeDckkEoPADBFsGaAZ0i8q99N04ySJ/iRy0pTvFpCBsta49CoFaChZbO+oZYKqV3E/vVuHCMOpiDJhYIFz2FxSX2k2MmqH9AHd8VKsb6UCDSQEEidoiuHdzLlGGOtZHvSfdUuk1OM6tDgLRTNpnYq+AXcFf62UUgsm/FiHaeWxwguBSdVIfY7W6ZSVIso5WfeIofrWFqIPkyteNzr/k2nTkd9VvLVUy5JZH0b29pCgsZrmgaxl0HR/YtG/fs01Cys5iwnmHO8RcRtotozB1fbjQldAv/4PE7rJDizomJkD6TXS7l9wWCW8jp1C2mT4E/efvUY9lEygikls4Ss9FUxGG9GARfn93TecJ3WpvPrnIKnMMBxGx5PffF1gSQy5R2Km2poPiYGnrRUAXQd+caPTSkbvunPW8BmFx1NGYMwvKxvqnyrK6kvrNv58DizVaBNqxgzeDILmkAFNMXt5z473oBmSd1Sx541uTBRMceO7L/KlkYCGyAedyi6kleMRd3WaKnlcSatwmSlO4LkRyy+VnL/dGHzL9vFCiUCvMysypZa9pRY6GcmuvLlh7tD993k4jBuXkafv2cPtH2lPbIo7C2LXoHtzIFm/aMPGOaMbpA3Wjd6vez00IR2IcQZvFfG5UZe8kgh77Rrjjiy2m5cX2AeCNImfGjGRrm/t9StLs3jT4hJfGHwbAw0zoTos+X5A8mAqkHtVjrIIEqgS0yPkOQ== X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 8d56947d-f0ac-4df7-75a3-08dafb034e63 X-MS-Exchange-CrossTenant-AuthSource: SN6PR10MB3022.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Jan 2023 16:28:04.6054 (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: W+YKOHZjuf3MkVJcFXO5hr/yBfG4JYWLPGoNsLMWopNP1eeJNAdATfgaUEfcw6wz+VpO1myzTpAmXvLqAyxf/Q== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN7PR10MB6619 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.219,Aquarius:18.0.930,Hydra:6.0.562,FMLib:17.11.122.1 definitions=2023-01-20_09,2023-01-20_01,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 suspectscore=0 malwarescore=0 phishscore=0 adultscore=0 mlxscore=0 mlxlogscore=999 spamscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2212070000 definitions=main-2301200157 X-Proofpoint-GUID: bK4FlI9MpdmeapePPl8F3SBdXstuibOF X-Proofpoint-ORIG-GUID: bK4FlI9MpdmeapePPl8F3SBdXstuibOF Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" From: "Liam R. Howlett" Use the vma iterator so that the iterator can be invalidated or updated to avoid each caller doing so. 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 e56dfa3d6165..f937c4cd0214 100644 --- a/fs/proc/task_mmu.c +++ b/fs/proc/task_mmu.c @@ -892,7 +892,7 @@ static int show_smaps_rollup(struct seq_file *m, void *= v) struct vm_area_struct *vma; unsigned long vma_start =3D 0, last_vma_end =3D 0; int ret =3D 0; - MA_STATE(mas, &mm->mm_mt, 0, 0); + VMA_ITERATOR(vmi, mm, 0); =20 priv->task =3D get_proc_task(priv->inode); if (!priv->task) @@ -910,7 +910,7 @@ static int show_smaps_rollup(struct seq_file *m, void *= v) goto out_put_mm; =20 hold_task_mempolicy(priv); - vma =3D mas_find(&mas, ULONG_MAX); + vma =3D vma_next(&vmi); =20 if (unlikely(!vma)) goto empty_set; @@ -925,7 +925,7 @@ static int show_smaps_rollup(struct seq_file *m, void *= v) * access it for write request. */ if (mmap_lock_is_contended(mm)) { - mas_pause(&mas); + vma_iter_invalidate(&vmi); mmap_read_unlock(mm); ret =3D 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 =3D mas_find(&mas, ULONG_MAX); + vma =3D vma_next(&vmi); /* Case 3 above */ if (!vma) break; =20 - /* Case 1 above */ + /* Case 1 and 2 above */ if (vma->vm_start >=3D last_vma_end) continue; =20 @@ -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 =3D mas_find(&mas, ULONG_MAX)) !=3D NULL); + } for_each_vma(vmi, vma); =20 empty_set: show_vma_header_prefix(m, vma_start, last_vma_end, 0, 0, 0, 0); @@ -1279,7 +1278,7 @@ static ssize_t clear_refs_write(struct file *file, co= nst char __user *buf, return -ESRCH; mm =3D get_task_mm(task); if (mm) { - MA_STATE(mas, &mm->mm_mt, 0, 0); + VMA_ITERATOR(vmi, mm, 0); struct mmu_notifier_range range; struct clear_refs_private cp =3D { .type =3D type, @@ -1299,7 +1298,7 @@ static ssize_t clear_refs_write(struct file *file, co= nst char __user *buf, } =20 if (type =3D=3D CLEAR_REFS_SOFT_DIRTY) { - mas_for_each(&mas, vma, ULONG_MAX) { + for_each_vma(vmi, vma) { if (!(vma->vm_flags & VM_SOFTDIRTY)) continue; vma->vm_flags &=3D ~VM_SOFTDIRTY; --=20 2.35.1 From nobody Sun Sep 14 14:22:07 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 A1ADEC05027 for ; Fri, 20 Jan 2023 18:35:52 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229695AbjATSfv (ORCPT ); Fri, 20 Jan 2023 13:35:51 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:43974 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229656AbjATSfu (ORCPT ); Fri, 20 Jan 2023 13:35:50 -0500 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 9C3E96603A for ; Fri, 20 Jan 2023 10:35:49 -0800 (PST) Received: from pps.filterd (m0333521.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 30KGBrB2001476; Fri, 20 Jan 2023 16:28:10 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-2022-7-12; bh=30UW3K4uY8BKAFFhXpEES3cePI4stCSyAmJYk/U8JDk=; b=yqH5Z1EKnEPVgENY+B9cCm8+/AVADqJ6Z7zzoSAsecHxSVKVdu3N4wGmNffJnoDLyQVE de8tQkvRMl7pUUCbP40DpZjUccxKb7YVhksh6kSGgJYxdX3F/DzfGLET83rI+La0Xy8r b9NpNMxKHjU4MPRNfALpybWP2cL45VHmvKASfmigPlWz4hpt6pCTa02QO2gLHyLntUJo hTwyAHkCE+F5AU7Gs5HAYxCE8ACc+XLOSVLDGA0yzWxcWVdpHuv9WgmZP008PVAB1NQh fIzwSltd7d5H9as6bj1rJxjYlwZzy5rJf4DYRRLveIALXxfA0FnugR4Zak6PBqPlSelw zw== Received: from iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta02.appoci.oracle.com [147.154.18.20]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3n3kaan2xt-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 20 Jan 2023 16:28:10 +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 30KFHZDE018746; Fri, 20 Jan 2023 16:28:09 GMT Received: from nam11-dm6-obe.outbound.protection.outlook.com (mail-dm6nam11lp2170.outbound.protection.outlook.com [104.47.57.170]) by iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 3n6quja07e-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 20 Jan 2023 16:28:09 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ht97rT7zuTgKVLy5kwST6K1yAFXcY8JuQlWOTZrzV0J2gAhDc07CRHju2P7CR38EKCTfUp9dvF6UASMff4tL/dzmnMGVIOj3/y1Ltb+Rf5VWut7gefXal8ehMwfEFUB/G3HIo60TqFprwLMAkdZe1r1AWYTe2AfrPaUYFtEUdGZ6F+FCrpgKOpHhVqhnJeQlyImZIzLMPzcVaRNrBWgP8vYVMGlkk+yiPz6cFdFGw59R3Brq6A3TXSiqhd6ubXMvZTJT5PJkZPvUZyfsu+1Uu/QZgQry0JhVnyDA9uJiKvMtdDMatufPVuWwgpF1MF1un4lnFbm82bubw2xYhgcpiQ== 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=30UW3K4uY8BKAFFhXpEES3cePI4stCSyAmJYk/U8JDk=; b=MAWrNMVRSgwgluFbJoHeitiVZwnHjgKAG3JOFVrI8M3NpFF7FnZ6RjCxwBg/6HY8Xpglt/dnyLPJssmv2Gp2ujX9EmuquG7ZJdnPBuiWz7Xb5eHdEpsHTDFQ4XHoivzONAkQOxhwD+T1hdXYywAr7Yip5p1w2TvDx4+eMBld7tn8BE/lQSjy6cOXKVGGhBbgNE63xPkZQLr2f+u7x87d8QaRuVcWg0OSg3USz/uFFyKxCAltXdWsQPj+0Ca2Di916uIzkh9Pit2IKlxZYEgxDBbC09NfNnL8MhKztDdFNYe9v2QupQ5clcYDqpuVFTvbY8LliE+6s5uoqTLZwx4PoQ== 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=30UW3K4uY8BKAFFhXpEES3cePI4stCSyAmJYk/U8JDk=; b=vR8PoSt2RMnEQ+Uya5Dk+GgI2aFeE8j1TenNq6ZfyWMy0ARe+JDUQjyZi/ii7Rro95K04nArW0N1kC0aBOJh0PCPZN+5NCene/GtDOh+eCkLC5Oppn5T7iBCgLlUODRfLZ4LNjrGKqBMzMS1l00h8+2tQbrN2a019EuFvMJLQUc= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by SN7PR10MB6619.namprd10.prod.outlook.com (2603:10b6:806:2ae::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6043.7; Fri, 20 Jan 2023 16:28:07 +0000 Received: from SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::7306:828b:8091:9674]) by SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::7306:828b:8091:9674%5]) with mapi id 15.20.6043.005; Fri, 20 Jan 2023 16:28:07 +0000 From: "Liam R. Howlett" To: linux-mm@kvack.org, linux-kernel@vger.kernel.org, Andrew Morton , maple-tree@lists.infradead.org Cc: "Liam R. Howlett" , "Liam R . Howlett" Subject: [PATCH v4 22/49] sched: Convert to vma iterator Date: Fri, 20 Jan 2023 11:26:23 -0500 Message-Id: <20230120162650.984577-23-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.35.1 In-Reply-To: <20230120162650.984577-1-Liam.Howlett@oracle.com> References: <20230120162650.984577-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YT1P288CA0028.CANP288.PROD.OUTLOOK.COM (2603:10b6:b01::41) To SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SN6PR10MB3022:EE_|SN7PR10MB6619:EE_ X-MS-Office365-Filtering-Correlation-Id: 29b1eb2c-0179-4172-601f-08dafb034fb8 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: SAW8YAvfm6NfnAsMzVphp4eD6rw/qDjls1QbZ8CMXuFAT3VU728ksmScmSM7rknLfZA5QIu/7vz9xcPYGNsumd/aQTu7J72rCC3IwmbJm45oaGZSrNUrHbQm3EibuNRnI7F286sxWudhcfhqrUMz60Q4ykqBPH32/ALL3FXWrgYMp9BcHQdDxyt/zLPyEdN7pFis/w2nCvNKMLm5uPIRg20na9XoGXOAGxiiPKhBdr2YrIDGm7nhX83Ofvvcy8G6yqMewStT6KaUvc+h8TOumEV646mSxg3Yx8CAXHL9re06fjLnCMUvNSO3Ll/wOqsJOO3+8vv6Tc0eErEjeaMPcfFpqvJg3A6/GuY7ufwvRojAlahi/bL/+N2a83wgVCXWNkkc8FASEGDxFsDJpXrSWeAh3LlBIULUlKOt+RpVqv27s6F1wgYyUBQ9eKdzC+0dfuNzVQHnaWhcHGb4J9zVI/1GZ0gimzaLnWK83iROztnn1znwzHFhizT2DfSZPK3aEEBq0SNvm8MQRNk6z9Jk9pAJEi8JRIALBet52LonBSR4QCqBgjOVnhwse/zEcl1QF6epYqYjn3HJ7WtFBBQUvoWoasjEzHPISbvWH2YsvvGb1BINIOe1/XAvnvsqkK5wCLmD0dus+rfb3HEMkYw3wQ== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SN6PR10MB3022.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230022)(136003)(39860400002)(396003)(366004)(376002)(346002)(451199015)(83380400001)(54906003)(86362001)(5660300002)(6486002)(2616005)(38100700002)(8936002)(478600001)(6512007)(41300700001)(2906002)(107886003)(6666004)(4326008)(8676002)(66556008)(186003)(26005)(316002)(36756003)(1076003)(66476007)(6506007)(66946007);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?IEeGcSnpCIwYmS0g6wl0aOccf0WOGxXpT8DdqsQze3FqcJ+QGeCPeoFMI4qY?= =?us-ascii?Q?MSF/mclX9nooJ+OoJJ+yYd/j+XXVlHhNBlqjag/klkGMVMlqrU3VhFmATQrN?= =?us-ascii?Q?YOxvzq5JDU2xsbBeKFeVsDHXyjXR7XrghGqQMYdTaoIKzaTTOiJDd5uo06KJ?= =?us-ascii?Q?C+xrUpFedHPDmrQ0tFgUz1g0sP8MX5FjhjgeUbTv2vw/LrjNyLkIaw+6M8Yw?= =?us-ascii?Q?xsIWWQKk7UwOgWLStOsSNmfyXKXSM0VdAEMs2bPUxfprJoyoClyM+1DLymfW?= =?us-ascii?Q?4SR7Z90IZj5lZ2iBiKP3UZEHZmOCMIWbOlEVQxHc+dfXrAn8qgTCf3GvRnbN?= =?us-ascii?Q?aapyJZpxL3Vykv5rDXoE/ddHO///yTl6L3Ee/6oFfAcS1k6M3lr0yYIpYHcH?= =?us-ascii?Q?0EoYqcGtfjXRtZzTtoK7UQrqysIb0u065/7FEg268Mao0FoXJ9zwN6RnxfOQ?= =?us-ascii?Q?VUXGoT9Tm4spTgAELbkfUXBYOPRJoEOM1/pml3mAfPmm1vVO+I4gT8r8nf78?= =?us-ascii?Q?sRIEL8O2piPTYZ1AHAyXNPCKnM+UqtYt9uprNFfMKxVYTy8OS8+rox8QLnyW?= =?us-ascii?Q?6Xe/CFtHaBDyrqVTAjU8qVbzwe5SR7kLfqenZdzq4X2NlaWSJuWg3h+Irr3k?= =?us-ascii?Q?8xU9fhZnWmdLQL7cp3A4yHIzeaypN1s+soc9bKg+QHMpQcIeKwR9yu42E5hF?= =?us-ascii?Q?eRD93GYkXtPJvBzR6KncGr+iUQfr2OFuONXYFsmHVVMni+NaeWGV/xVlfSZZ?= =?us-ascii?Q?V+YcIc8/QCcTq3AVZbv/mpOV2uz0WdaxURLLRFnZN4eBfO0RtBsZmsZEEC6c?= =?us-ascii?Q?6hTPL3f0uvm59d6otdw1gGQoDpC6ij36p4jwze4IZpn7mmErQ4MQ/A0AIz2X?= =?us-ascii?Q?XZw+VvCQoWpPnlq1+SIz2Yw4wQ3MJPY3ySmqPS0UF0ueGohCdAZbiaNeLYQb?= =?us-ascii?Q?nni6aycNQ/feXjS15oUUD9qdqeECxoVX5PwUOlpYIJN7YjfVdPUBnddNioEL?= =?us-ascii?Q?c3f1MH2gJ/azdWdWMRAJMCATjOo5Q14a/VtFlA/IKLwbAJwIAXIgf/okyfzE?= =?us-ascii?Q?SE13B+ytJh5yvHZloC1T56Ikt23erpy6DgxZ55HKBpGg3LUySMsrg8q6cVCz?= =?us-ascii?Q?dDZuHG6YxwGZs0y/cuKY/4wwZpFKoL6s1KM3i3wUoWD9gPePZxU11gBVTIO5?= =?us-ascii?Q?Fi83YmsZyUHJ8IiPhsRty/RAV7Oz3gETerfjqJKBlNPKo7TQsou5kUX7Z4WH?= =?us-ascii?Q?EzpUHcPAcmtr0KL8TyBkwdRkleB1PpXKOVCE5r/WHoREOQ7dc/siwe+w+jhP?= =?us-ascii?Q?mGIsg88tkuwCamsyIW48qBDdCdYa+xLmmZgL4x6tac+uXvAzDzH75G7ec+PW?= =?us-ascii?Q?zPLu42uYRTd1xnlslC33UewjVJeWeQflkqZABcZJaqvIDbF3z3cKGFrqtXRp?= =?us-ascii?Q?MNgbbkY4PuhyT8cBPh7/ZpP+27WRIzT+/TUVIt7ZggDm2XkvyOPaTmRaTGrs?= =?us-ascii?Q?tyMx6zGc8Cj9VDYHLsMVEvum+Ag4qyTuRsjUCzpg0mNw8ck0fDi5nN4aaCU/?= =?us-ascii?Q?gzzDSIn1ipwkcgRtJ5xnLpuKvwHRY4Bn8xpe+JklP97bf8vzbEpWBGxYcRaH?= =?us-ascii?Q?eQ=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: zNcRx8mN+pgzvfY2O6iHcUK0m2m2yNPuD6yyTOCRT3VAfVSle7fhzaF9O0LxPhc/ngnbaB/2/1n3CgkHtveJS88M+RAh0hiSNVIzs5hqkBaKYlyBmqIUbTkTk/UZVyGEGnf8czYFPqIWBmML1CstTZJY5iKTZYdygr6pk/OH9+Vj0TD9Iy0RdF/BWgUnDmwDkuFgpm5cWuqcRfomh4UxMF9awxNFzIiZlG7e5tStnRjuBl4UbkF6gGhBnWVEOChMdqR1Mw+0hRy3BhvYW8y/pw9EHUITeOWPHnMojMntOnRbk5JmP7PmTSeUq/cNf9KnLyUtQpIEHHtz0+YNkJHVZb+fRY1I8c5VQ78cUXHpNV0JOTC392ZKgZ76MqmEa/Vpa8mkeQg1IpSBFT//giRmX/Osez4R8RA+VKGLXR+uMD2KiP7x/GWHrLb2t1COvfbswGMHba6ArAbPB4TNUe7U38dorI0L9OXXScNOLWKIDsYdYp5KuQJ5MY8n2Ti+3NsMDlv/GW6TunLRSXOcSQ6Ygibt3bljxU+99PQdsTMkSJiO9CGNsFIzK5d4EkqF9OT5Qv1XQts0L9LZudJTPcygSmbvJURYxrSBU4CkVVbpnqi06Me+ahdCIRAFoLcZN1gdeKzrmnmWmB5sn56DNu1jdBIAhgR9zsmsQTgVGgZtmYUs2anvAyL9ZNUHvdbKMx9dqq/mm3gOIyQdC494eQmmPUJ3vvxKiEqRk8QymRXUqHjzgpGyIf4YksErr6U4HBNL3yU9pN1PnS47UMyfhsMo2j9jfoFHT4uS/QtTE9+JeZlIrdXLurMoT3wSyo1u3AcUS/ptoFqBrn7SMYWUTeBMFn/ndBaQPYSY5Yl96W4z6g4Da0LRLZQILzqw85K4Jvf8TpZLeMo66O37vGfBjK9GJA== X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 29b1eb2c-0179-4172-601f-08dafb034fb8 X-MS-Exchange-CrossTenant-AuthSource: SN6PR10MB3022.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Jan 2023 16:28:07.0272 (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: DQsXwzQJT1ooLVzp4YhW2RwPUDY+QdgZN0gJsslMKva6AWVCA+vnXirZDT5tR1fXVU7R8BjkfTh/acxOacf+ug== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN7PR10MB6619 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.219,Aquarius:18.0.930,Hydra:6.0.562,FMLib:17.11.122.1 definitions=2023-01-20_09,2023-01-20_01,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 suspectscore=0 phishscore=0 malwarescore=0 spamscore=0 mlxlogscore=999 mlxscore=0 adultscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2212070000 definitions=main-2301200157 X-Proofpoint-GUID: LAaaxzGMVOjS_PAlRyu1z8fc3aL_t3xy X-Proofpoint-ORIG-GUID: LAaaxzGMVOjS_PAlRyu1z8fc3aL_t3xy Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" From: "Liam R. Howlett" Use the vma iterator so that the iterator can be invalidated or updated to avoid each caller doing so. Signed-off-by: Liam R. Howlett --- kernel/sched/fair.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c index c36aa54ae071..9c9950249d7b 100644 --- a/kernel/sched/fair.c +++ b/kernel/sched/fair.c @@ -2938,11 +2938,11 @@ static void task_numa_work(struct callback_head *wo= rk) struct task_struct *p =3D current; struct mm_struct *mm =3D p->mm; u64 runtime =3D p->se.sum_exec_runtime; - MA_STATE(mas, &mm->mm_mt, 0, 0); struct vm_area_struct *vma; unsigned long start, end; unsigned long nr_pte_updates =3D 0; long pages, virtpages; + struct vma_iterator vmi; =20 SCHED_WARN_ON(p !=3D container_of(work, struct task_struct, numa_work)); =20 @@ -2995,16 +2995,16 @@ static void task_numa_work(struct callback_head *wo= rk) =20 if (!mmap_read_trylock(mm)) return; - mas_set(&mas, start); - vma =3D mas_find(&mas, ULONG_MAX); + vma_iter_init(&vmi, mm, start); + vma =3D vma_next(&vmi); if (!vma) { reset_ptenuma_scan(p); start =3D 0; - mas_set(&mas, start); - vma =3D mas_find(&mas, ULONG_MAX); + vma_iter_set(&vmi, start); + vma =3D vma_next(&vmi); } =20 - for (; vma; vma =3D mas_find(&mas, ULONG_MAX)) { + do { if (!vma_migratable(vma) || !vma_policy_mof(vma) || is_vm_hugetlb_page(vma) || (vma->vm_flags & VM_MIXEDMAP)) { continue; @@ -3051,7 +3051,7 @@ static void task_numa_work(struct callback_head *work) =20 cond_resched(); } while (end !=3D vma->vm_end); - } + } for_each_vma(vmi, vma); =20 out: /* --=20 2.35.1 From nobody Sun Sep 14 14:22:07 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 C589EC05027 for ; Fri, 20 Jan 2023 16:30:10 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229828AbjATQaJ (ORCPT ); Fri, 20 Jan 2023 11:30:09 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:36776 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229530AbjATQaH (ORCPT ); Fri, 20 Jan 2023 11:30:07 -0500 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 8E16DCE23C for ; Fri, 20 Jan 2023 08:29:29 -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 30KGBbuv003329; Fri, 20 Jan 2023 16:28:13 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-2022-7-12; bh=hA19c2rPtl/N6V5J7vefooGvydfoGhc2+h/slssXe+0=; b=o0xmNjgeQ5/1MKPy7FGZnxPg0yigG2JvNHZl+a41DF0uQ5+aMYBXcSJ7kQCREwWxnbZj C5prrUUJCqH4rCJyrG8u/iRFYCBGF8ZziL9ATLmu0UZawmvxD25lHjgUCevfiKtl4/nE KNgZWNcHfbB4al28mgEjTliSm/BWYePsV/n77DH5fIP5sbqsezi6jfrGppv6nivB7Xba bKEx/JP2Sekz4paa/3Uakz53cxC9oOSKYheUCGVK8mDVz4/MPXCjzihU2ydkfq6BegE3 OhX8+fIv0ldw0fXFIepK5dVDNJxNQ3RvZCCfNfPtSCPrjKNj5x2pd995oCVTT/corgFE oA== Received: from phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta01.appoci.oracle.com [138.1.114.2]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3n3medn7gh-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 20 Jan 2023 16:28:12 +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 30KFPGcn027926; Fri, 20 Jan 2023 16:28:11 GMT Received: from nam11-dm6-obe.outbound.protection.outlook.com (mail-dm6nam11lp2173.outbound.protection.outlook.com [104.47.57.173]) by phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 3n6qud91tw-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 20 Jan 2023 16:28:11 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=eWOJXb6QGwQEuSZb+ei/wGBZh7j0wLtapQmDrxfP5HGWmPMH+IbJ5egHBA+pv/6Xop7zydytoU4XcullJztejzL44DpEsSf1kN0s+ZFEp+z+YVTN5BkYIjt+m/Ur0y2w78XStr8iZ5moHASWdXejbgjcY9+iMQymtBbN12FQ4BsW5PJ0/57zuvP0ocEfOQycdaayihsvTFZGNmZXpKWf+YVxnsSR5WGDzGi05/srW8pFyL5VzEy8+gje9DQ7QHFP85zhHmWCi7HkH9oW82VC3Y23VBsXYkjcAHX8uqzGfrNzUw30pZifyawP012sqJXtmMGd0wuSizb+t7VTlCTcYg== 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=hA19c2rPtl/N6V5J7vefooGvydfoGhc2+h/slssXe+0=; b=FfbXGasX4NrHN7k63yPWz3GhwbX/RMcw6ZnZ72zYa9zQac9xE1bQlSTvdFi0Qb/U8EAa+ZzH0HXLgShZPPPALo2A4izL38VPUAvmwKZ56sk2xRIh7qg58wKPokd61OPZLlipQG3teT9MLwTyBOXpj8pBbeRukc3EcjIHJrI5v1zIHCMDqkr6jA9dQ0pxpNCFxjYXS6yHpfdxgB3x83P3tEDlYQv/ZYDAris6HUHVlQ7tM83MjRIdsrsqbcCJvisE6hG+CtXQrkYxLq0q+Kl0Wf438gqqBYnjaqUWM5RJuyKKy9lSBMgm83eLnHrzQyDSLKWKNrLLUDLmoHN0eAORUg== 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=hA19c2rPtl/N6V5J7vefooGvydfoGhc2+h/slssXe+0=; b=nM3Sa3BSDu345DI9lpyfZqBAlYRYImGlTsb4yhukBKUal8cnLlzStM2h5ECkLrwqB5kUIptuK/vcAkwBKTjEpuhLze1kRBq2+i1xDL/rvxEGXnqi2+Nj8ZWDIsr6Ms0g0cAhz1JHNa/BWia0QG4hOuqJfqUgz6I82IsfM/8F5js= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by SN7PR10MB6619.namprd10.prod.outlook.com (2603:10b6:806:2ae::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6043.7; Fri, 20 Jan 2023 16:28:10 +0000 Received: from SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::7306:828b:8091:9674]) by SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::7306:828b:8091:9674%5]) with mapi id 15.20.6043.005; Fri, 20 Jan 2023 16:28:09 +0000 From: "Liam R. Howlett" To: linux-mm@kvack.org, linux-kernel@vger.kernel.org, Andrew Morton , maple-tree@lists.infradead.org Cc: "Liam R. Howlett" , "Liam R . Howlett" Subject: [PATCH v4 23/49] madvise: Use vmi iterator for __split_vma() and vma_merge() Date: Fri, 20 Jan 2023 11:26:24 -0500 Message-Id: <20230120162650.984577-24-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.35.1 In-Reply-To: <20230120162650.984577-1-Liam.Howlett@oracle.com> References: <20230120162650.984577-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YT1PR01CA0079.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:2d::18) To SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SN6PR10MB3022:EE_|SN7PR10MB6619:EE_ X-MS-Office365-Filtering-Correlation-Id: 06739382-9a2f-4d48-48a5-08dafb03512c X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: SoYsJN0TGcwjxhKq2LzpsUtF7EqIZMWghibuBI2ZtFJMwzmNBCBX2mkMUBZnIdnVwTuN+KOk1zNvUVOd9wwcF52ULVK3c0PCh5ZZSzgjiTX3FDQTpinc91Lr4j09xkOVo/oOSVIFTHs4WF936ioVY8eLj0WER1ynGaTzWgctGkE3KA52sN6/5uI8gwq8Iqm6or06q/4xqO+nC8o6aWQJGN4LAn3rmLl5m5iuDxdkgkzdotW54fW0bUfmQbXZsrrA3ydiwNYEVSkYh9d5rU6bad2XmIHFOoyvB40jsSuOP9pqQtb2tcaWuX8lsaJKYVWrBqX4U5Iw6p6Uwdtv2/Tnnh4yeIBT1zl668/CM1/Wy93LGgrgRCbHy7mpNCzRrwIRSXNqHecgUcf7o4/OBhvFIY6RLzdyijknb+gOZmGuOGnqTD3R5y3RTPEHNCUR//sOv6OIUO4BRKKSmLxaj7ccmzBA0aUbQ70XKmi9p8HSNL5CfTn5zvkYGlTYyiIJn1MD012Q25dTmzv4EOjVGBjnCietZVUYD5vsUvZRwY+RVt2XUZBbs+6432WWrIABt43DGN7kscLK+JH9AW8SM71FriDbmAheBkv0arY4QV64N/2rv/dhxIdnUSx4KWCpkC4CaIRObb6WGNUzz3Lr/uay3w== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SN6PR10MB3022.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230022)(136003)(39860400002)(396003)(366004)(376002)(346002)(451199015)(83380400001)(54906003)(86362001)(5660300002)(6486002)(2616005)(38100700002)(8936002)(478600001)(6512007)(41300700001)(2906002)(107886003)(6666004)(4326008)(8676002)(66556008)(186003)(26005)(316002)(36756003)(1076003)(66476007)(6506007)(66946007);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?iZi6PPSDGUmUaz9a1i5C08i0WhqHLKuzZJ+Rwjj8Zm64zMMOOZGqdTIpqLYM?= =?us-ascii?Q?zLgQHMPLW2sRC3i5zDmijCZNaUgrd8mYF3oIK6DN35mEwUNtqIp0Bu1qN3ry?= =?us-ascii?Q?uaKypaVYCaDbxw/gQqb+pTohnN76/R1KACijG8Er1zbGtzw/a4xvrCrbiAFi?= =?us-ascii?Q?RVhamgA4sVFSDj0kq1tee96pKdZennzK5aDo+rAF0X/3oxwCUlak53udtFg4?= =?us-ascii?Q?cffnUWoLcGh6/d0q+qK+V0DHIyBzXrkMqyRXAl7ypiOmtwklzvG26x2tNdaD?= =?us-ascii?Q?suKqlLurQBqnK2hKgdFom8cuYUYl5hAWsvTytusLYLafzzyuI0jBZNNJIdEp?= =?us-ascii?Q?z8vE1nuDGzywILOWyQgl6Hfx2HzAs4lphFEExjFMJkZqZan33XQ9e8kCZx7F?= =?us-ascii?Q?wpnIlivadr6B4NHbmXUrf9mtRlofUsHTcu1z8YhcUppZpkIpKc8RC8uQtdcS?= =?us-ascii?Q?K0akWr2Bn3rr4cZAa4v1xYOJcDCzxITsv74I/RD9jtvPUHE/8lEjVWwptgKB?= =?us-ascii?Q?0PdG0YGAy65ax30jLgX+w6sjEVf08DeFR01XtbIi9XzFs7nSkODsbXmo/8Vr?= =?us-ascii?Q?XqXYEgmCftW3Hay3pcoXe5zxdW+kZNRVX6Rd10x6yhLEqkntT3Fz4QHiJBg4?= =?us-ascii?Q?XDlxG5XgJ3uEKFe3d9wdNiAOYLhMHxJQOYk4g8+onvIR+cQYUkTN03qE1lNt?= =?us-ascii?Q?WT208OauTrScHUmdc/kMDxFZPnZo4Ctmj7DwtKY2NsHCNmz87HEpKdH5WVpO?= =?us-ascii?Q?8TN0EbbCOQixoyT62ZHxenCXJpFFivdpCxgwF5W7uCCkWWQkMZTJWcS4+ZGv?= =?us-ascii?Q?tzou1sIDCPOIpm8ceLsuw/kr/tQHHSD1AU2X593AiPCDL/1RJoT+3tEO9LhJ?= =?us-ascii?Q?UJcY2JTJcT8h7hznRXH9k9SlBoMpQ9GRqwLd9J9Aljou47rK65Lx7bBSjyc4?= =?us-ascii?Q?ePd5fHCsNP44vL7dxfDtgLCQ4KSM/mKW/MiPK5AMmfilOK61pxxERjRGU7FR?= =?us-ascii?Q?pBO9dJDqkFYpX1E3qmr4/jwEgi7UfZw7xJcPyy9oComK0hqcHwLxMo6y/8if?= =?us-ascii?Q?4LN1l3kmisn7dwj2q6s0dol5at6IR8Ei76BkJP0Crrd7ZHiMYiOyhB3wW5Wa?= =?us-ascii?Q?WjO5Txdc+iLFwy/K7WApDcMAt/jlQ2W2Hed9R8Jv+xBCnz1ffB7ixJyeQo25?= =?us-ascii?Q?NV6fzc82/HXij8HyVVX29ZYAqWy83XkWo4/W2yqoDXsoBmQqwV5U5zjI+O1o?= =?us-ascii?Q?VLEE9qZghHZLki3jBj+Uv/SJccq2PUgZVPpeORPYZOSZNGhxxGQjwHay/ppi?= =?us-ascii?Q?ArSJke9yWIGI4L5BtxvF1pz8uOrlqSXelk1wK9vLBkHvxwj/F0XgqbYAqIn7?= =?us-ascii?Q?lrRkExaWPJMyIZCPkJmuGs/thxrfEzOSkJupfApWowe+TfHLfqOHMzXIXLvl?= =?us-ascii?Q?V5uuGCJjTBGFbPIKsl+qLWcISyPgY1wF3hWjAFa/Vm2hSoDTC78nGVxNJRnz?= =?us-ascii?Q?xeaE3PKZ7C13uoUHpjdKSDLltF4ZsM/Fccsl7nTu/Dtr61bpoDcpF9/i/6ah?= =?us-ascii?Q?WKB73aC8enG70nt/CFqZKzZE0jz/HvHwUgK53526mxtwb9kFKLoLF0xUSaT0?= =?us-ascii?Q?MA=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: xApimMY0x6yKnB/L+Pi0LdUieidn3hxdNRl6DOaqwFPk66zwxgsgZGIaPLcvyUB/7muj4dUW3s3kDS9DVz9g3uOsp39uINWWzsb+xmoEYPpJ/fOh5zN8O1+ec0sCbmbmPIT8A5uqbTvhjFYb+YAMjXCADyTCprkaYIBaWu1ctVA4kUnEigggypLg+JxZ7X0cb/1otnckphAuZoF/0ppYddPMZEHFeyTFoULAWw3NeHMFD9qqxA3C9qZRtldOQLMwcf6atzH8TNmMrvSTLfJjeGbABy4s369h9Ygg68tg0Tyhan2ZUJ+ywMTN2gSA1W7VSTuRmGuDXzws2CuWZxnpe0D5Deg5y7hKjk4rguhsIkMXvR0D11SDE28Cq1hFZezJELbQminZiQaFRHVXbCLxqAhYGldI42AWJO//M6kiJ5OimjVj2aenccoNR2gX6l0Dz7S5yMADpAZGtmntQoa/l/vAAwhjNb8uCVmm/kJBf4+JQ191ijXNcjxxr/NZ+K5I2kKGUYIYsvu0dEaN7MakPkARAfpKsG/whbsh58SW8M3/e/l7Rjfx8/AWGRm6Kf80nRqxdrMW8HqP2QnkOiE8/+wYYawSPer5osZorZO+tT93ISuNpfAzMNIRidMwNLQAfvl8LbeT+j4CY+s2ttJ8M0piL25sJ5HDix4p2sxQDxQKmVb6UJ2wm4xRwH1/rlz0SqsMJ8E3tpy/Zam1fLP3TqeFgDJO2ESIa/sniPg15j3fgffp/UrkXB7sJ4saghCLCAl+voWqPtV9UMpFESu3BHulOjaO50qkcuRDRmyHaIL5Hsfduz+tRmHpzn+nrTsB1RKd7k8LObl8mcxgV8QA6TolZ/4zq5ahiiCHhhmmo8h9GIzXi9ouMvzrKCig7CYGN990fDXJjg1W4+lxS5qfIA== X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 06739382-9a2f-4d48-48a5-08dafb03512c X-MS-Exchange-CrossTenant-AuthSource: SN6PR10MB3022.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Jan 2023 16:28:09.7770 (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: FLaZkxRbKWTkJ07OM2IsWoDjA4ePoW+uBI4QGiuARKjxy1ideGr+9KoWzotlRU/tYQddKtQm1kdt3PLqApF5oQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN7PR10MB6619 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.219,Aquarius:18.0.930,Hydra:6.0.562,FMLib:17.11.122.1 definitions=2023-01-20_09,2023-01-20_01,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 phishscore=0 bulkscore=0 suspectscore=0 spamscore=0 malwarescore=0 mlxscore=0 mlxlogscore=999 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2212070000 definitions=main-2301200157 X-Proofpoint-ORIG-GUID: w69SVcE9lz4gLy-Q84EiJiEWzL-lYKES X-Proofpoint-GUID: w69SVcE9lz4gLy-Q84EiJiEWzL-lYKES Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" From: "Liam R. Howlett" Use the vma iterator so that the iterator can be invalidated or updated to avoid each caller doing so. Signed-off-by: Liam R. Howlett --- mm/madvise.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/mm/madvise.c b/mm/madvise.c index 92a3c6bd84c1..4d4471916465 100644 --- a/mm/madvise.c +++ b/mm/madvise.c @@ -142,6 +142,7 @@ static int madvise_update_vma(struct vm_area_struct *vm= a, struct mm_struct *mm =3D vma->vm_mm; int error; pgoff_t pgoff; + VMA_ITERATOR(vmi, mm, 0); =20 if (new_flags =3D=3D vma->vm_flags && anon_vma_name_eq(anon_vma_name(vma)= , anon_name)) { *prev =3D vma; @@ -149,8 +150,8 @@ static int madvise_update_vma(struct vm_area_struct *vm= a, } =20 pgoff =3D vma->vm_pgoff + ((start - vma->vm_start) >> PAGE_SHIFT); - *prev =3D vma_merge(mm, *prev, start, end, new_flags, vma->anon_vma, - vma->vm_file, pgoff, vma_policy(vma), + *prev =3D vmi_vma_merge(&vmi, mm, *prev, start, end, new_flags, + vma->anon_vma, vma->vm_file, pgoff, vma_policy(vma), vma->vm_userfaultfd_ctx, anon_name); if (*prev) { vma =3D *prev; @@ -162,7 +163,7 @@ static int madvise_update_vma(struct vm_area_struct *vm= a, if (start !=3D vma->vm_start) { if (unlikely(mm->map_count >=3D sysctl_max_map_count)) return -ENOMEM; - error =3D __split_vma(mm, vma, start, 1); + error =3D vmi__split_vma(&vmi, mm, vma, start, 1); if (error) return error; } @@ -170,7 +171,7 @@ static int madvise_update_vma(struct vm_area_struct *vm= a, if (end !=3D vma->vm_end) { if (unlikely(mm->map_count >=3D sysctl_max_map_count)) return -ENOMEM; - error =3D __split_vma(mm, vma, end, 0); + error =3D vmi__split_vma(&vmi, mm, vma, end, 0); if (error) return error; } --=20 2.35.1 From nobody Sun Sep 14 14:22:07 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 E7FE3C05027 for ; Fri, 20 Jan 2023 16:30:23 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229843AbjATQaW (ORCPT ); Fri, 20 Jan 2023 11:30:22 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:37040 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230175AbjATQaS (ORCPT ); Fri, 20 Jan 2023 11:30:18 -0500 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 10E34AD27 for ; Fri, 20 Jan 2023 08:29:38 -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 30KGBXpi020077; Fri, 20 Jan 2023 16:28:16 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-2022-7-12; bh=XZZVOOCjuW4MAwS/kA83MzCLjQvswkT2jbNv3CY+qPY=; b=S61uec+eW08GfZif+Tdd1gShj1/3EmxCKs7LkKA+Opd6gfhINJeuRDDm79r9+gX8T8sx 4/3jijLBoBEQCo+0JFi8zSLZF+5yiboX0fRDlk4QousTvT0Tdp6aBk8s4axryiwMTZFY yBzxULww5RwpzdhY0xzuFz6tJ7w0nOCpHXpNajddAa+Xj3SVUCfC3dA+5EwuiDBCOCHB 9Z3F66GmVtGdXonDV/jo2uLzTEUM3vMFdphTnddG345CEpNmCOrq3QSslBzx09HsKb2j MFmwhq1XAufsrwaKNVPhcVcCsV3hg8PRgnHOlNF1LajhbiCzSdTf4ilGgiNPEVqIydUe Aw== Received: from phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta02.appoci.oracle.com [147.154.114.232]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3n3m0tw257-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 20 Jan 2023 16:28:15 +0000 Received: from pps.filterd (phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (8.17.1.5/8.17.1.5) with ESMTP id 30KFOoWA000777; Fri, 20 Jan 2023 16:28:14 GMT Received: from nam11-dm6-obe.outbound.protection.outlook.com (mail-dm6nam11lp2173.outbound.protection.outlook.com [104.47.57.173]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 3n74d2svt9-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 20 Jan 2023 16:28:14 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=RNSbBWR+gw6V5sm/nArthwl1ZtN0apoWUbNnRZyS3Lz17F2c4O7qFHXgu8oCKJgxtV6HtxIG7NecMxGc7Q7GhhMwC7ziqNx5bAebsKjLajNiH9UEf0LpJHNtVUsIcysQFlj6UViI5IWmRJmOkw/G+rqavbShX8H6UoWwtAHCkzZ7eXuBj4N5p2Pp8HVOLueVVMbBSWL0Dp+5HoZ01XLx5IpTXBG0wOVJZBqMduU0Sb/LvffLIY5l/PGHeNfOkxO+pAdWsaJfkJl7/IJnrvVTFnDedoGMLGoXVLMRWXzXfExaF52NLU7IKelHDQYNB09h7e/W1DBNeMA/1wVC7l+G+w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=XZZVOOCjuW4MAwS/kA83MzCLjQvswkT2jbNv3CY+qPY=; b=cUsfT2/7oxWRy/rAh5Ni87llczkVNDr66Dmv+Mn6cHzdVft8ZCRSRc94Gt9OXWxWP0qZBdsvnd6/rV1Ty3y7jGshIYGqgwy/ipRJGE5Ftwifh3TNNiHXklt+ngU7ED+VR8Mm2J1L3io1Jkf3kl+HhKpKIPOnprkHrMcotMd/f0ys1SsmF3prKYVvQZ9ieGt0uWD6pMoTeQ8WIPAc/y810SJorYMk6UQK7W1h/Ui8J64LFd+iwBAhwVJhb1zrIoVjtCypS0u3C5gHal7MzjeM5ju+ZJGj/Fs8l++Vlf/zGJo5befzAo9X/cOjPfQRGSfVePiQaC2+uAax1P4ScybL9Q== 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=XZZVOOCjuW4MAwS/kA83MzCLjQvswkT2jbNv3CY+qPY=; b=Qjhv1fmxDuHer7Z7vjO7YIyR324FDkMZF5KriXlm3Z+PzjUMrKHKQG4ReXX/yCDI3DR9adRyf+C83Y5fbHDLdYJi1YxrTAAuqWm4bzc4S9i5ufrJQdmEtMgkJ9FJRiGcPSEL82JElW+LfPNVVveN/+Od9+hylKU2Hi27RNdQN0w= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by SN7PR10MB6619.namprd10.prod.outlook.com (2603:10b6:806:2ae::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6043.7; Fri, 20 Jan 2023 16:28:12 +0000 Received: from SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::7306:828b:8091:9674]) by SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::7306:828b:8091:9674%5]) with mapi id 15.20.6043.005; Fri, 20 Jan 2023 16:28:12 +0000 From: "Liam R. Howlett" To: linux-mm@kvack.org, linux-kernel@vger.kernel.org, Andrew Morton , maple-tree@lists.infradead.org Cc: "Liam R. Howlett" , "Liam R . Howlett" Subject: [PATCH v4 24/49] mmap: Pass through vmi iterator to __split_vma() Date: Fri, 20 Jan 2023 11:26:25 -0500 Message-Id: <20230120162650.984577-25-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.35.1 In-Reply-To: <20230120162650.984577-1-Liam.Howlett@oracle.com> References: <20230120162650.984577-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YT1P288CA0018.CANP288.PROD.OUTLOOK.COM (2603:10b6:b01::31) To SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SN6PR10MB3022:EE_|SN7PR10MB6619:EE_ X-MS-Office365-Filtering-Correlation-Id: d5f1cbe0-ac1b-45d4-d7b0-08dafb03534b X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: kMFtSgue+9Trg2jL72/k0nkYlpGtXBQ9IDJucfhTwzzO9KCf1GeP7qUUgFB16C7d/qqQylR/W6G4Ur0vyYSZtVc3zk3p/4YW0gtz6Nr2DVHEgbDYmCecGyPzOjB1uWAPjbepAIjSle/FXFMz0eYytanHEp+6OIoqlplLOTBcsLp5n3GCLVypTvukookZtrUMKSp2BejlldQ58Y0VK4nj1OqhmzjkDJIOkuE961IrTKfPaKdZTS21sQ9CkhUG+TUwRrvrYaJdzv86YOm0uhrsh6FQpaUriDtJp+/fbBaHLlY4JSZtmfzHhvBWoywjSQu/cyQulRgLETiTfdfsfkOcYPH+GIRWpt0X3ZIrcverQgqO6bJPSGJcMSMX51xJwWOtaY6w1r+y32eST8EEIGHSEacHK2UCxvG/WeBfbkjTsst2Jgz4y/pdSy2UOPwMXA0qj/rURAqI0dfxNUuLt+SyROxIg4A0jNrLnxmSUXEeEkbqKTB84Ym8nL1Do4yx/GKBcqDv958f4bGr7rfwwDE6Bf/bAMh3OiNWrl3GlC01q8EVZvxT6zvIq95ZbN/V6mGsVKChOg/+kSCvTVDFZR4BdkfKT0x1EfR5OW7xSu41wAG+eNmSdV4avHkMauMmna7mtOKXZynWiOS+9RzsWAIoWA== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SN6PR10MB3022.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230022)(136003)(39860400002)(396003)(366004)(376002)(346002)(451199015)(83380400001)(54906003)(86362001)(4744005)(5660300002)(6486002)(2616005)(38100700002)(8936002)(478600001)(6512007)(41300700001)(2906002)(107886003)(6666004)(4326008)(8676002)(66556008)(186003)(26005)(316002)(36756003)(1076003)(66476007)(6506007)(66946007);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?ryQhpu5U3t7P32/mOBBnsvI+AxhMdXL4tH8WeKtqJpxjrgvDqv1OdDoL+IWt?= =?us-ascii?Q?tOjwTDZOeQE5SKhEHuOoNWa2q07m1Z3MfrWwcfoF9/ANK6PgomZnRPJpPU0s?= =?us-ascii?Q?PzemRkBVW3RrLCW04QUE/LqpjYvZKKFC2Zx+CRknV6VMOMS62EbAgqoVgORn?= =?us-ascii?Q?6ujTeKckrKdnCj4XvcJRlCPOLO36j9ADgDCrdIuhr9wFRO+Hqn3GH4bSDTRy?= =?us-ascii?Q?u1quIS9Cfb9vL/xB9Kq2mraVI0wwbvHYtE8NK4G75BxyukxdAUA1l4FPk0aQ?= =?us-ascii?Q?vqH0Vl4+Ef0uZdO8ZoLQubeg+H6q+xPQOa1cWULD5tydOLkeJge3pdtSQ7VI?= =?us-ascii?Q?5KMuWsjKwgwj/7TpKLzB2NRoCAS9m3s8eaCW8LvOi07LQ/vm8Eww0guHJ28S?= =?us-ascii?Q?8jw8fqIcqRi7R1XcfH1q8LCRrU4gJbDhIXcY3BuTPtmxnqT3Thq1ZAYwTOay?= =?us-ascii?Q?+deuGtx7bjY1KPbVYsGIBWHYqT1VL0OwfJf71zhrGvsbN++6Ei81DY4aFM64?= =?us-ascii?Q?W17msP5PLy4FOkPLkFhMVmc2rO2H8uWW/LecKoeCmAMaV1iDPAHl8KVfTQSX?= =?us-ascii?Q?BbpCLgEIWbWFv2gyuwqKPHu0LPmUNQn1qjgyoDnr4UxK7OhBGCyAJVbEJtLH?= =?us-ascii?Q?k2UOrQ+ziew8yVFGPVySslQxEjGNE23660iH9c5obwjUhW5qiyBK3QtBDlCT?= =?us-ascii?Q?CrtbftJUUrI3slGfgn2JbN0tZJ3jyd3+SjIg+mwLNXpUPbg8/Ezp3r1oTUT4?= =?us-ascii?Q?B8ryAOgeqscJZIk4x8iJWn9ELVo3ehawefsCGw6akmMks0GcyhYu5Mlz4Q/c?= =?us-ascii?Q?lLURCnkdW4pk+F6K/k1ugjwIpZUo6mT7hzZplKU75TA7JmIjTqd23E4wfFa0?= =?us-ascii?Q?EooZc3HdAdkYFKDEoKrIGBDajymhpG6Lo7dh2DKrcASQLTofypHrTDBmNZHm?= =?us-ascii?Q?f+4kru76SPvJFClGGC3P74hINQUzdBbyn5xVje2L8gxip4rfg1jUlprgPVLc?= =?us-ascii?Q?/djJk2krzBoOiZG5yjUCXwridyHEQbaPjoT3x73kwFO3wSvdpHN3ZR1kUeL3?= =?us-ascii?Q?gSxl2uqeA3OVCr+VQQJ1tTLqvW2FavG1MqqtAo6qBX5o0kTXbo1orXewfteT?= =?us-ascii?Q?DFjhngOG08DmglT27YXv6X5aKl7jO5HvyI+dhM/J+1Pwq3ebc8GcFGnHlf8v?= =?us-ascii?Q?HLjm8l30gOnh2e1E/pf7lFcnO7OEMT8I2C//aFQIKoa7/WlXkvJ8SMpBAT8F?= =?us-ascii?Q?OHadVSsPRQAEXK4DaRz+I/SiSh5SHrS0ov5SgmsLo3isdGNOoq61gx0BIDS9?= =?us-ascii?Q?hktRmHOcMhC2nH0zw363aGRCLWARrJhBPxwD7JJTC1sGskit2kwPu330ADDE?= =?us-ascii?Q?BaOBFdrhS/u9eadDrC0nxAXrVSjl55eDuIlJxyQMtoit61bJgNz/zFpyPhWE?= =?us-ascii?Q?zgV00rkvUiQFxx6IadVmWRz8t0PEiK0RCpdOTgAXAPP4dZ4Ug/sBj0fy+m4O?= =?us-ascii?Q?q9lT5XRy18HI+ncJRzf5lqkAhiltPxUYaAeCxp5CNZTirdqB6x7nu6QlGX4H?= =?us-ascii?Q?T/X7E6ha/jjbToqKA5fCIF8jzOQ+1t3Kd1hIxNdjAh/xRfd6Rb68hXfX/im0?= =?us-ascii?Q?Ew=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: fGjjqvOzI53/qWxQU67pYrcAKU7nxjyWzhJUBXAJdu+ACoH+QXSRWIahEP3F8JXn0ZX2ddaPYMmPOMHIhEFK0BlC+kYKMadaefh5BzRQMWBAq+6iKnQgPzW3lpEsuzfSSTHEp3CEBqAxJS6WQnTW96JKh3QCkn/KShcRVWRR/rZHZBEUZtxyLjUEMFEPJKr4M0g9ALgHahn/0Q6oADG+IQZiq3bRpDnnK3Xb/2avTsAg3mjjeJiQIfuaH7/8Apis69WMNnkA5JPDGcdAZbXUDjgUjdyRtKkUoCMrxlhDSfo0FsQ+/azfE62prpqMdCiGR1q4zrmM5Qbm6E1iZnsrmNsoXMNqPCsxaUuoLVWl2JyEmhB2s0HW3YCrCtCwuk6DA9j5lDIHQIA6eS1DyOq9/XyEChBUbAlRGLFJf/6A+xFWhzBdF0RpCUsKVxBGhHrjTas2kZ/r2b9fQazZKy2KE7Zzeald2+JF+Qqrd9Vj9Fvw3vq5GLyBPhTu28pPin2Rhq6G3Rc8oVYFkFszsCP2gPSYVaPw1wo0GemF2ZuO0j1BWqx/TIqvh2n4tZkDlUiUr6KD3hwMCBub3ghECUNiiAaV1YjIMDmxP+ldBNM80ERh6zftpgUWQ4xDInoIxYD5Mbnl/x9Jnvyhz3ZUHt3G80s2GEI0fEfvv8pKyoDvkizjrz2Yc9eqla/5UlA11gYfZrXXtGRRQ1vK0GnbXKdqkxxckdomOe5IAKfMmTh+S5pcBfnHtMhE5uQUYlnYshTQXXhEsH1PkF9i2yI0YQWKMrZP+wXswfvo5NfJKk2nMBYSGVFIrdFC8v04kLmWzNxh5Mm5cd9/s7fv/E9ZGvUyEJqittDcacaDpwE5TBJsM2ubqOZoYz6zEFj+Tdd+fEPw/7y2fwFDvpKteGY7JHVecA== X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: d5f1cbe0-ac1b-45d4-d7b0-08dafb03534b X-MS-Exchange-CrossTenant-AuthSource: SN6PR10MB3022.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Jan 2023 16:28:12.8861 (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: ldIxr2U7ElivZQxLzv4gLTM0ZOWzknXZtCFpk2vY6ctGhfZiZAe6OWJBSJByHvK2UC1zfoDPYP0hePih1XPRzg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN7PR10MB6619 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.219,Aquarius:18.0.930,Hydra:6.0.562,FMLib:17.11.122.1 definitions=2023-01-20_09,2023-01-20_01,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxscore=0 phishscore=0 spamscore=0 mlxlogscore=999 bulkscore=0 malwarescore=0 adultscore=0 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2212070000 definitions=main-2301200157 X-Proofpoint-GUID: CFYzbznot7Yn5W3QVXrXnKEMTtJVpCqG X-Proofpoint-ORIG-GUID: CFYzbznot7Yn5W3QVXrXnKEMTtJVpCqG Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" From: "Liam R. Howlett" Use the vma iterator so that the iterator can be invalidated or updated to avoid each caller doing so. Signed-off-by: Liam R. Howlett --- mm/mmap.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mm/mmap.c b/mm/mmap.c index 5092d0405883..0de180bb4df0 100644 --- a/mm/mmap.c +++ b/mm/mmap.c @@ -2391,7 +2391,7 @@ do_vmi_align_munmap(struct vma_iterator *vmi, struct = vm_area_struct *vma, if (end < vma->vm_end && mm->map_count >=3D sysctl_max_map_count) goto map_count_exceeded; =20 - error =3D __split_vma(mm, vma, start, 0); + error =3D vmi__split_vma(vmi, mm, vma, start, 0); if (error) goto start_split_failed; =20 @@ -2412,7 +2412,7 @@ do_vmi_align_munmap(struct vma_iterator *vmi, struct = vm_area_struct *vma, if (next->vm_end > end) { struct vm_area_struct *split; =20 - error =3D __split_vma(mm, next, end, 1); + error =3D vmi__split_vma(vmi, mm, next, end, 1); if (error) goto end_split_failed; =20 --=20 2.35.1 From nobody Sun Sep 14 14:22:07 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 57EECC25B4E for ; Fri, 20 Jan 2023 16:30:15 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230150AbjATQaN (ORCPT ); Fri, 20 Jan 2023 11:30:13 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:36832 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229843AbjATQaJ (ORCPT ); Fri, 20 Jan 2023 11:30:09 -0500 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 5D1C94E511 for ; Fri, 20 Jan 2023 08:29:32 -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 30KGEC49006224; Fri, 20 Jan 2023 16:28: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-2022-7-12; bh=k/Q70txJ0reRPGLL6uPSoCov/RdhMDJIe8k8l2lJ2YU=; b=jpXHkS4C8dgi8IOcK5HapN6Rs7PIQziXS4QfnauzN410ARZPON9RbZFd/586rGMXKqec upEajEoWREVldLBqrakr/UeTe5lZwlvDv/GxBbIFkqRh0iE60DRx7Gu57nD3LjnMDZwy lQCdJtjZXBXRMYp+arIxfcdiModn2Y+m2/1BleUxR8c55C9ExrQCr2kGYLTtnh62AnFA tZwUP7cC4LLTjz4B2nrJQFNt1WgZ9DIpC45M/PJySQXpdfix5OrtKlcy2dA/roDDUxlc UhjzPEVkBytboJ89DOdsYO+mhy9z557dgXLzHczI1Xc3HtjFdEKnVd8Bh6Nv4I9x0hO0 Tw== Received: from iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta02.appoci.oracle.com [147.154.18.20]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3n40mdmfwm-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 20 Jan 2023 16:28:18 +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 30KFJX5t018694; Fri, 20 Jan 2023 16:28:16 GMT Received: from nam11-dm6-obe.outbound.protection.outlook.com (mail-dm6nam11lp2168.outbound.protection.outlook.com [104.47.57.168]) by iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 3n6quja0dv-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 20 Jan 2023 16:28:16 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=L2jLnCZN/UKzoJ0L5vA9lqXHrrvG3XLI3q0PdeybB/nIJTtJcev4UK7jOJUqDYhotQuW+sdrE4RvzLppO4nixxHroh9s55PTJOOfYiCb3FBlxZGdJHjidPGawHmaUyZP8mYjGsNPdsU5tAT1JUH9NTH77T9huCgw3HRed9HnQPinIqgPn9KLK5G9vqfkplGwDD56nSFStZOVnONripyvMWwCblhPVICol/1FUcl1BIiZZ0rGkxDRh34lVXGygE3Ru1Gud2XXGnjeUTt9Nf7SXy/mReqNVkcjBgPKQYuRbgTxnz871EWhytzajq+iXAiYOjFN2DR4r+cJYnwtZn4uhA== 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=k/Q70txJ0reRPGLL6uPSoCov/RdhMDJIe8k8l2lJ2YU=; b=SUHb0ko9isEDQb9n84g0YH4z+MPhCfFL24r1PteTvbTZiU01lX69s8po3nanLdPd9BqhbjWNXH/gKF/cyL4U78XhZe9yKPA9Ue96Mni7OmNE3hJYgJrCB1mjPbBLPus2mO4nP9w+3Y4gl4I3V7zEGBFYEfeN2R1QALPen7PGTnZZjGDKUGM+MkLst5xCdGOIdGcp8Y3YbGg/Byik/fbU4I2g7T0NkcSeHIMoBRj4tQ8NlG+eBgPO0eTi37X9AoiqRHSXUqR8Qd4b86qVtpd/9lyz5hJY6HyH52uoFcnLyqXG2OZp624gaiExcjMnz+R+cm/++emY+qvWKhvMKM1IBw== 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=k/Q70txJ0reRPGLL6uPSoCov/RdhMDJIe8k8l2lJ2YU=; b=wcfN4mxUGl9tzgKo3atQr9EoxgzRctlijhw/Bv/qxNdrbX/4wJ/Z6tJTgQ/qX7/SWiR17+0QITOuIkaz6tVPbKnkcxcoTPHK8wusXLI24aH5uFdHA9aVq4JEQTMlZK7ci9GwSqI4AFR//M+ukGFkRTTh35+LAZk2y6nAGoy3WQw= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by SN7PR10MB6619.namprd10.prod.outlook.com (2603:10b6:806:2ae::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6043.7; Fri, 20 Jan 2023 16:28:15 +0000 Received: from SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::7306:828b:8091:9674]) by SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::7306:828b:8091:9674%5]) with mapi id 15.20.6043.005; Fri, 20 Jan 2023 16:28:15 +0000 From: "Liam R. Howlett" To: linux-mm@kvack.org, linux-kernel@vger.kernel.org, Andrew Morton , maple-tree@lists.infradead.org Cc: "Liam R. Howlett" , "Liam R . Howlett" Subject: [PATCH v4 25/49] mmap: Use vmi version of vma_merge() Date: Fri, 20 Jan 2023 11:26:26 -0500 Message-Id: <20230120162650.984577-26-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.35.1 In-Reply-To: <20230120162650.984577-1-Liam.Howlett@oracle.com> References: <20230120162650.984577-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YT1PR01CA0133.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:2f::12) To SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SN6PR10MB3022:EE_|SN7PR10MB6619:EE_ X-MS-Office365-Filtering-Correlation-Id: 9a2f539e-69c8-4f3d-4d44-08dafb03548b X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: +mjd6EED5jLnD5CWZSflImMTnHTKAgNIiTP+QcZpZWv1If5vTiZ1HreYrqB/r+eYkCfIKKxljJ9WOHsoN0pW13QXV0+kYiXggntIr1huVvme4j0C8EyS/wTtEPLc0dk2yTAtusAouSAuwvyyuF/vAtoKXQNzZp06e1qYf1AVLFB5vP9oBS7/zVNtkFPpmbY+yIjwbGWzIr39rxcJgFOSxjagtO2WbHXSsNzjSx7Ouo/Co7ZvoPR59XuPHIEK/d/dgqh7Xkg0m3FJeUjnfINfDd2coUtc/xxWmdpld+JOGPvGyTzHCLyWDbTtH9cvgT2ZqDZkspxRNc8GjrX0ZpnD3QjZagqRUaUHTluqYh2n4fDNsxJ9Md2/peyFaeM2Mi1XYCuxIkOCO9N057Pl13AcgUxkyiSTKTkfR9iQqrDIW7Jn24JgIgc2qzMbqrs23VD9ysIXt5N39U4Yxd1SSkwFTw/ODszo/w/Eqjtwuid4OCqQSsrCpXVJkTlAJ/FP1P1z+qO5wcKXTKn9Qn9IX5gMNH8wZreeMUYg/GlMYfhzYkRIGd8mOxHMQ8OGXnSki/rgJnx/tumW8VDktx2rmNHmDnvwNP3I76xCm0pTFrsaNHgqxjUpOmxIHMHf4DcZQ6Spwyk7gIG/A6dIpmmQ8zU3Gg== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SN6PR10MB3022.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230022)(136003)(39860400002)(396003)(366004)(376002)(346002)(451199015)(83380400001)(54906003)(86362001)(5660300002)(6486002)(2616005)(38100700002)(8936002)(478600001)(6512007)(41300700001)(2906002)(107886003)(6666004)(4326008)(8676002)(66556008)(186003)(26005)(316002)(36756003)(1076003)(66476007)(6506007)(66946007);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?kKk2j0Xquta+w1lC0mBNYzL0BHQVoloe9AHVUvLAmIlCADf9pC2dapsExAwQ?= =?us-ascii?Q?GnVo+wxy17ChHIlZ2HlGgnNiTlpeYImWoBd46u751Uk29A4yqcfdMhhhRKmU?= =?us-ascii?Q?JxtbQU8c3SmDw9byDMfxWi+psnk3oojDTELspAOCTNfn056q4So9nydBjNPq?= =?us-ascii?Q?6u0Z4ihVIWnKo3SJmzXzoU1x24bUMu9L7gCh8NcsBJ7VyMCD9FpnhAV0YxZ3?= =?us-ascii?Q?MU+ln33RW5MqCBGNej6JOOYA7lQ2v1XCOR0ma3p9liwVexG819yJxP1nnpTS?= =?us-ascii?Q?lDOkVtxBcFW7kq/XCUO1i9qiNVc0mgMaQ8A/jr3VxrcYNW/wMi+aVSzNthYF?= =?us-ascii?Q?rwKBne5QDDKg+FEPM7GtoTvbCGuym9/3skn3T3OB+hq5QoYbMoHZeuLwDh7a?= =?us-ascii?Q?qCZkcOAe3pTHHzS3iSrbA42hhLhWnQoGs+yJnE+K/KeACSve0rAuSbG+98on?= =?us-ascii?Q?hmMGQrRQFlH3kt+qz5E427vPGzPJY8uq06j5nYRBkwC1D53nsTonyE7mr/z5?= =?us-ascii?Q?Frpo5U3hOelS1STNNaRL5lwxF5MCOQPvznXGLafBLviMrMWfKIM3TVz1Fx8+?= =?us-ascii?Q?eMNyjZcRGhT+7W4VMH9RmIYbwclNhiCdQmxQyMyyukaGfLigcssb8TFEV/ln?= =?us-ascii?Q?Gbfr7PNvEcmtNFjLFxcBSRWwk0+V/ODR70BHRKMPE1llqQAK5OpCBnAAnqr5?= =?us-ascii?Q?vnfev8GqUB954qTPb1+UjqUtfP6SfYwM6f9CqqVy9+ETbYCrliY3G6Ttsol+?= =?us-ascii?Q?z6nOd5lGxsc0OltT2TKgK7cdJAYAOz1PQFvRvkANEjK4s7Og3vLtkgoYq+6D?= =?us-ascii?Q?/Z/31U9HHmDHIcg0Td1udkIdeJDw9gUsXew0VytkvQi8meiwH/xwWdqFMbAq?= =?us-ascii?Q?6xxCgmzD2Gc794Krw+C4D0DOJBHy7VSgWeW3obha89VAIESPiyOAYi69twdZ?= =?us-ascii?Q?EFEBeNid4Y5KniA9+gjamEbrC7mYLN2GKAX9dRW1P8WY/UnePybf45Wg6k+c?= =?us-ascii?Q?8mU4Oypmju+TqKB80FngJAQjkCfZ1CN2al2XRQHwkgFt559JAaeCXZYdoJ3d?= =?us-ascii?Q?8V3hy5d8S6bW0itsINuFHPzdD57gI4YtOsTd1a55awC310sYPnY3OJy+SfVQ?= =?us-ascii?Q?eyEnd3DB0furXyr94sa0IGeevZJ/TUOjqHbQEixHcfuzLUr3DkLW/HFp/SQj?= =?us-ascii?Q?QhQMHco9xJSLeyjvNhSdGX8luJsWFlxCEmeNWD0ebZvpWTZB0hb7zt9joKnP?= =?us-ascii?Q?Ah5xJXJtYU1rpOF4O2wTFqj4k/S1th9zvs8l1mXOb+3OI/xE3I3w26MswAlI?= =?us-ascii?Q?4UxsHaCmfB3/cxm51Hx/rnowxofRXKHPz1jk+fQ4p9x2a8hb+yMfhRaoj5cq?= =?us-ascii?Q?ZWSQgc829xsKN7QPNe6aZ82piEjwleTHiTLHqn9lRur0xd9ZcKM/881j0kQ0?= =?us-ascii?Q?fTJZ/WA5zCuBh1rIBzMPk7Fw2YnPmIjlkyeW5MMpTea3iqDGH1ZrKWevBlY8?= =?us-ascii?Q?kMJoIPiSBjx0OLUrt81BHyVrG8+xvUL9meI0FGdgpIUCvKDDxMfWarz8wHpj?= =?us-ascii?Q?eVTlDC6QgBXNO1+JCefM54rMhW68iFJoaQqWGoOKzoLCKhUw1DYUka2asm6/?= =?us-ascii?Q?6Q=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: U7z5blOp+oqd07jL8tzzjmeip+Na1tUkuVQoAJVGZWwkQZ3dHH9TiVIQSceOvpLNmB/96VLgOfq+X3aCEe9mSeq0eORMWa5xJjhx/Hh+o4McaG5tbBnw53fRgNXaF19+lBoQThGZh/C9e0FAsagLSlATsV7AXov21hUna3xkxzWQzLzqK4oYIFkNRkhe27X+MDbO401HhHXKskfOor/rXwLpLU0x5c6Pk/4vrAnGCnD2gyUPibdQaY2tO1JHstrpWfNtrFJcn3xY0tQE3j0i9AplZ67GPv2f7eEqmpgTeJTvXNlE/BdIyd5d1L/8BvarR/8DCoY6fwtUm5YQP0mxXNSNPTvvPGPtPQ4e33V5wOnwzFKAnX/CdTI34DwYETQ1NB8MUpsm7akm5nL2nFrRoPN4iycXUbAUoXR0rS2GUlYoSa0Q3NP4qelXXvBGKM712IenvJXkf+G/+oIPxFnYFoD+5nrOzqszcNwphUfVC9sUjBNbxsQUwVsczBFHrd2Ef2KIorBhLkbuQY627uaf7zq9cxz5mxAqZ96aG4fbUkg4LHqJ+baTXgj5Qdjim1r1F0UR9IltjmcDBcc1Rs2p3do2Ft4HvYV17i0t83Hja61Qf18ZWM4Bj126ChO50BVFUPD1YVDtmThuu4kQI1DV4NWqgnjXqyDBSCYSE8iFQX7/+SL7p0VE+SqnHQ4HnRtNVlBXg+CvkFTC4w4SLMibhuCGzkvjSleZYmUma3iQ8DdVosdvG10vE6nRbtGAuVMVc+bm4g1TdmblU65Byz/Z/iYtTUSwaRtAhHa7DTcs9u/TGCnwtNFRl2bgws7KPQC2DseEN928P1pYn6aZVjyB6i01D5l44DFMrVXCu25j1YvkyuhYhJGn44jCjrXgoDUrqbZCmLIrIF7hUqk06zGyKw== X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 9a2f539e-69c8-4f3d-4d44-08dafb03548b X-MS-Exchange-CrossTenant-AuthSource: SN6PR10MB3022.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Jan 2023 16:28:14.9798 (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: uH8Ll97lfv2Cezb39Vd6s3Hnp3qbOzukH3CeYsX9ep9HvzP+LMO/X3rvr/mbbtUuSCkFc0+ph6iped8b/F1Wsw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN7PR10MB6619 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.219,Aquarius:18.0.930,Hydra:6.0.562,FMLib:17.11.122.1 definitions=2023-01-20_09,2023-01-20_01,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 suspectscore=0 phishscore=0 malwarescore=0 spamscore=0 mlxlogscore=999 mlxscore=0 adultscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2212070000 definitions=main-2301200157 X-Proofpoint-ORIG-GUID: lvXrejjw1BixNOZJqcz-2aBnpFC96KNK X-Proofpoint-GUID: lvXrejjw1BixNOZJqcz-2aBnpFC96KNK Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" From: "Liam R. Howlett" Use the vma iterator so that the iterator can be invalidated or updated to avoid each caller doing so. Signed-off-by: Liam R. Howlett --- mm/mmap.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/mm/mmap.c b/mm/mmap.c index 0de180bb4df0..0696bf9e1085 100644 --- a/mm/mmap.c +++ b/mm/mmap.c @@ -2693,8 +2693,9 @@ unsigned long mmap_region(struct file *file, unsigned= long addr, * vma again as we may succeed this time. */ if (unlikely(vm_flags !=3D vma->vm_flags && prev)) { - merge =3D vma_merge(mm, prev, vma->vm_start, vma->vm_end, vma->vm_flags, - NULL, vma->vm_file, vma->vm_pgoff, NULL, NULL_VM_UFFD_CTX, NULL); + merge =3D vmi_vma_merge(&vmi, mm, prev, vma->vm_start, + vma->vm_end, vma->vm_flags, NULL, vma->vm_file, + vma->vm_pgoff, NULL, NULL_VM_UFFD_CTX, NULL); if (merge) { /* * ->mmap() can change vma->vm_file and fput @@ -3224,6 +3225,7 @@ struct vm_area_struct *copy_vma(struct vm_area_struct= **vmap, struct mm_struct *mm =3D vma->vm_mm; struct vm_area_struct *new_vma, *prev; bool faulted_in_anon_vma =3D true; + VMA_ITERATOR(vmi, mm, addr); =20 validate_mm_mt(mm); /* @@ -3239,7 +3241,7 @@ struct vm_area_struct *copy_vma(struct vm_area_struct= **vmap, if (new_vma && new_vma->vm_start < addr + len) return NULL; /* should never get here */ =20 - new_vma =3D vma_merge(mm, prev, addr, addr + len, vma->vm_flags, + new_vma =3D vmi_vma_merge(&vmi, mm, prev, addr, addr + len, vma->vm_flags, vma->anon_vma, vma->vm_file, pgoff, vma_policy(vma), vma->vm_userfaultfd_ctx, anon_vma_name(vma)); if (new_vma) { --=20 2.35.1 From nobody Sun Sep 14 14:22:07 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 1459CC27C7C for ; Fri, 20 Jan 2023 16:30:26 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229674AbjATQaY (ORCPT ); Fri, 20 Jan 2023 11:30:24 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:37052 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230189AbjATQaS (ORCPT ); Fri, 20 Jan 2023 11:30:18 -0500 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 038A926843 for ; Fri, 20 Jan 2023 08:29:40 -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 30KGEBVv006200; Fri, 20 Jan 2023 16:28:22 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-2022-7-12; bh=/9kACN/AP4IQaoyUNzsvycQcefPQy+ywc1CEO7zJRpA=; b=H3yLSvJ/O7KALsbr0P5B3kroZCe4UG37VVxEOqnmxXO8ND5Ixsi3r6HsMaS1raZd174o j6ESsjAI2UA0lW5NHOirkSNVbFs87hTf3Zzi4dfaVqe0PhzETJFbBR+0MagVaNEHe7bB OiLL/hJqa6rqwriHmKbpz+ZsMWDbH6cXCblaRNJNTRI5vYE3EwpadLwflA8fw277Qu8G oZApi7qtuGPK3isilTXmfkc6pEb4G8v0DVtq/K3NT0rOabFHUWkTn3q6uCrBuSr+h7ki jhL/gO8aaMBc0ezsRz0Wyk8KUpOnKSBWUmS4i8rtSTH0gYJqyqS21nb6oZV6bb4sxdQm 2A== Received: from phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta02.appoci.oracle.com [147.154.114.232]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3n40mdmfwv-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 20 Jan 2023 16:28:21 +0000 Received: from pps.filterd (phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (8.17.1.5/8.17.1.5) with ESMTP id 30KFOoWE000777; Fri, 20 Jan 2023 16:28:21 GMT Received: from nam11-co1-obe.outbound.protection.outlook.com (mail-co1nam11lp2171.outbound.protection.outlook.com [104.47.56.171]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 3n74d2svyb-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 20 Jan 2023 16:28:21 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=HDHFQjqETnLVnROjoJ4i4pW0ml+94vNFtuR+kA/Rw4mSS6nTbMXeqh8trWHB/KUUU+3pgUvh4HjEHbXqF2XVJEAi97X2mHG5/WYZXPf/2OhmD5n1netV0/z+2n8oNL36VkwEp3OHy14f7FZQxO0tl0NPzSaL8hbZcggC8Y/5Hn2A5CDBYaGulvXzVp5LWDMa0wenQqxd3L1ZzG07ik+/gKj3FU/0FfmBlYXoRolIb+kTvcawP+aXS/B4fbZZ7/w3f87nzwhh/w/m3kObAmx++LWbHPcTBH/OB0k3fENlGFelm9QUPpghXw1XWky21XU8XjE5Vqa5hKF6dMRGNqiKkw== 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=/9kACN/AP4IQaoyUNzsvycQcefPQy+ywc1CEO7zJRpA=; b=T4MUHU/uESqTHvQVTSzG4UvWLAJ7ONqFbDpBH9XghCgkqurikVagiqOO3/TXRNMOaLihwUZexSYscI8xfHg6PQLR6LGfB2e/q3TyT+66qESAfE9F6Y6QQ3UoKw+/2hU1l8d6Xf2TDONcM5htCTIWUgKWTRjob48/tV5/9zuPDZDdgouadxdPT3YJdd+X6EmILvZADBrXSRme283grff94K10znM0mGtjBbB6h/G68M7/nJiiCz7CwQaNdDIdxlDKfYxFlZKxwdh7kFcgsuLKiXAZ9CmuWGOdaE1O7OUleH4mI+yR4K+gj0SFRIuiANCRNDVhhEzmFgop/3bQTTbI/w== 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=/9kACN/AP4IQaoyUNzsvycQcefPQy+ywc1CEO7zJRpA=; b=z8C/+fTZMWeq/6kW67CttkFtoUOiVld3up0T4iC8VYK5Y04u8DOoYtoYxlAzECVwlKPpRUA5jZHP0BqkKsGGrZdUR/kyn5g3xVpA49n593jiayRWc6sy4SRSt7ZPpzKuIkKhH/NepsTJMvRiuyWLxdE+wJaPCzlpIln4BGWSTnA= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by SN7PR10MB6381.namprd10.prod.outlook.com (2603:10b6:806:26f::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6043.5; Fri, 20 Jan 2023 16:28:19 +0000 Received: from SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::7306:828b:8091:9674]) by SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::7306:828b:8091:9674%5]) with mapi id 15.20.6043.005; Fri, 20 Jan 2023 16:28:18 +0000 From: "Liam R. Howlett" To: linux-mm@kvack.org, linux-kernel@vger.kernel.org, Andrew Morton , maple-tree@lists.infradead.org Cc: "Liam R. Howlett" , "Liam R . Howlett" Subject: [PATCH v4 26/49] mm/mremap: Use vmi version of vma_merge() Date: Fri, 20 Jan 2023 11:26:27 -0500 Message-Id: <20230120162650.984577-27-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.35.1 In-Reply-To: <20230120162650.984577-1-Liam.Howlett@oracle.com> References: <20230120162650.984577-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YT4PR01CA0160.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:ac::24) To SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SN6PR10MB3022:EE_|SN7PR10MB6381:EE_ X-MS-Office365-Filtering-Correlation-Id: b1c679f7-1c31-40b9-c116-08dafb0355e9 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 71qp98AKk5xBLo+cVjUhSGgDJYZDlZxczlfKieYLL6Rk1cSdsSXhHgisV/LJObnZeA075RoIPa63H9cOx+N6xDYcyMLyoq2oL2SXmzwt0hC40NfX9H9r91po9snRC6Z7rdhoCRuje1BrAYxdgexBSYvmLTto960r/iIfBzgCKGsj9gS4h8Ix8yCoTzw22GXVa41ye5lQSfhG0M52Ar///eR6g2hzkK4iuAJbeukWte2ZtL51Ku2AC2fqooqpgZIdi3pyqhBEWLv3axO2mOAKC9gxNrTKvA4k8XvXElxbauP6hrTN3zpZKjGyS/LsezsZPBLXnCFhqFh+OO9/5cdxoPq+ywrK8hQEWtps5OMjc89MjMQUfnaKiW30tBj8O3Wlm2JQrodE2N1m/vwIsP8yZHzbtlgSRwu929DNavi/WCe0rOogY08CVdbgOwkhsbWa+eE1Vl5K+6Cw5qMun87goHdV4zEQGrsAq7Elwg90M2Nrj9DW1shj10c/0ZHa5Y2PTk5cpDMoN1lkcF89oHXr9fwOUETa3AtOmGy9kKe9sE7xZoS5ByIqgZw2ifSUI/V0QDUOkbc5j1xGMq+NSx8dnqej48KKRTryjxQh7eoI5y2BZaFSgLzunX9mmkfeSppr 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)(396003)(376002)(136003)(366004)(39860400002)(451199015)(316002)(26005)(54906003)(41300700001)(2616005)(4326008)(66946007)(66476007)(66556008)(36756003)(83380400001)(86362001)(8676002)(38100700002)(6486002)(6666004)(107886003)(478600001)(6512007)(6506007)(1076003)(186003)(2906002)(5660300002)(8936002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?Uxep9WGjZduhse7C+CrY/mUeMFV2dEdPw3ffygY8SyMcws05HJMH1oVZCp9Z?= =?us-ascii?Q?mR1DAsRd31Oj45yEvyyGwZrBq7eqWsv77ixo/s/mSozNtWtwQSm6HTfPTTLH?= =?us-ascii?Q?BLVZzbeTWq4EscvvOb/zATIE7Ammprqp4v2/Ov7qYE3eMmO2Mr5SnzUf5RW8?= =?us-ascii?Q?WHJYBzseMDpfoY3QPVPGfxsNHJ+9MJgSu3cS1I2v/d5E4cZPawHqZcoX9hZa?= =?us-ascii?Q?34x6sY4Ww2Rf0wlX/QiF8Ou5ShoRrJZPo5eSwqjIZ2BQX7DiffX9kUsHs7Er?= =?us-ascii?Q?xOtknmqG7fC5cfff52/ZLDIzAiY6VM/d26CjLsGenihiSUETXyxk6jf042pM?= =?us-ascii?Q?+xOvIfGi6E/Ol4cgNhgyHL7lNnPk38iEEDsc5Rj4lkiKcy1EHJ928BJos1QL?= =?us-ascii?Q?gZw49hNIDnqKjbHcn6z8vQmFCFbrjVBNf6hELlgq0WkRsOJ0g/1F6F+8iyeK?= =?us-ascii?Q?A1D+1o5OJtKCKtCWN1F6l9gxUhwz7yDiL6sKratnyvZJvgWvcTFEBcfFrwRK?= =?us-ascii?Q?mTcaFWVGdiLu+cseUFLEM0CxVcxYQ3rj6ONrBxYUpQAFd/3a4VKyHCaKpLKC?= =?us-ascii?Q?cHDNCbnJYqAW40R++35GaS+FfDGd01PCeOI0B+knWAQjIpfolaZlZcAFrU5t?= =?us-ascii?Q?RI/5D8tUlCq04o4JFAR2FWRibSAwEEcjV3ovg1ijTYKmnYwSan03S/HWXhYD?= =?us-ascii?Q?gZXubPuQJXRSST1L/LAjZVL3Z9T3hK62L3iGvoCGN1xLho5VNSJSr7j+9ChM?= =?us-ascii?Q?29zW7qe9veqW1EabMFR4PVeRykUTeB6/b/Chks3StzcFgGJed/jKBEjQ2Z1A?= =?us-ascii?Q?JzMvfi0a+6oZeA7KSBPaYp1UiUZzXtZXQu8CgqY1V5FXHeTIQCRM5Kh+A6xO?= =?us-ascii?Q?zZiLoCsPvGOrn1zbeC82dGVVFGYURL07F63uGufFuzq1gwHOzRgYaL9DbfBO?= =?us-ascii?Q?m+4yRy7b63AMjBJT3WASYBk9ShuDF2ZuM9vpd0VNT6lrWHip4v+MnBMwtWpL?= =?us-ascii?Q?GVpD26mXGBdKMK+ERrmVI/M0jNqmexXuynd8seAUUqJs15fzAt637pYl4L8H?= =?us-ascii?Q?BO2Cmbuwe/6Vnv5xcZM344owB8w/eOMAWolHs38rVXpr8vJWSW8wZwShxNlm?= =?us-ascii?Q?pCFBX+OMega1ELNJjSyI0Pb6LoWFJl5ndJWmh6OUCouIBy+SzvxKVxICrBJK?= =?us-ascii?Q?8kMRQN0Q+NthmYC7tnqRo4xTupRiVQIEWFwPynxUiTXUlBwk5LK+sKSJSkPF?= =?us-ascii?Q?/FOeT9LPBr5YSyNxNSX3ygFytoF5TFjRvxUVX/KGujwxEqpF1A55sDorcDEI?= =?us-ascii?Q?Zy6lKjDqAeCpDaars84eCKwH0Ccn5ER4W6yCjt4+7MB913YRuokml7ByoT6B?= =?us-ascii?Q?4qro9P7Y7aMthizZNLFoRPmIUQBCW28+TnICRgBVgZR3hZGTSw/CY64x1xSX?= =?us-ascii?Q?5GeFRQmWx5d32Len1Y8v5a6ztS48YVNBH6iR0FjQJ3peuQsDOlXzO4c7d/41?= =?us-ascii?Q?ggqHmY4spPIKxhfCPV2TU6ERJek/JIXMfRLiEcI+6ZDLc/iE+N1n+LTjuxzC?= =?us-ascii?Q?67X2gLTKIhXZ3d/myMtPPpQZAM9F+RM1fupBtYeSra7rm6NBN2BUWIgDGhPG?= =?us-ascii?Q?Ig=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: f00bskaVOwowAMmBYoD/YZ080t3W4/jIeTrLVHu+THIRZcvwdRDpo1tOYepWZHR8Qf7ko4hK0IwlRI0iDuTvwZj85dJBBu8ZydhuMlsvv/9LiRA6rhQB81sjbju6+TMBWv4ExI1wy0VMRFQI9MeSZybWcLg4Jgg7SzVe3d6jTO9zNceOdUQcqZO+SK64F1OSH99vR7Mq0a/SxugtrS92eVjSVMk8Z19+3V3apL+ulMqdphogl0iVBF19HLKjdwuPGAAsXXPGVQJydvVcJSOfO3VV9s9X9ltNslJz0hPI04q6OMrXETqJbSIMPk0a8EjwhxkV1kB7KaBLrFQr7eBQI2KheBkCOb+4xy7+X4XZPaYSec4W9shBFrStpmrcHBqz4nqpM/kp60qTqSS6lt6E07V8QoBbCZ5aVD9yauw/9KC80eTQTm3u63YwlnzrxRabavykAeVIwvNwcXOmgd2a91feOmGMSHdhfA/+EBoxCCCono8RYO4VbL8LZtDKu8EgNNuYm+6D2DAPTQBNEv7v9p5kykYGB8InhNfRLpah/QZbKAEiRNFhuzd830uZcM+9yt/4y328RrlJFfspe8CgENsnrx4VT/qfULDTsQYqUB3pYosrzFP8kOdWfmiO1LLW/qneTGLy+LmraGQk2f5OCY1wdAVaELaoXxdvH3lMtTLt/nW1a85ivDwTX/B2c0JX18pgW+FB3NbORrj1SGRKOldVqQDphSA3eydPtDgTaNLGUzWHj9RrEhCeKyOqWRT6Z4I/oHhWwgGTQG9B+8Ucr6NoymaCRJVnrS+Gdx6KnhtknITcHN3mPHvH6s1ygggAgwhUSr7DQIC1U1yWT3ABcwt2gzLwKuhODj9bvXn96PpgDzFD/foQEy5CrAcqLuHMYnJ88O1FzwV3TiGKA72WOA== X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: b1c679f7-1c31-40b9-c116-08dafb0355e9 X-MS-Exchange-CrossTenant-AuthSource: SN6PR10MB3022.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Jan 2023 16:28:17.4015 (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: YEVazrXeAT8JrGbkf0npYGGMOKlb/XW+S5OjZJ3zlN7BhEhWx+J613euClZI6nn/o4tldjEtnwJ/2uBa7bvB+Q== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN7PR10MB6381 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.219,Aquarius:18.0.930,Hydra:6.0.562,FMLib:17.11.122.1 definitions=2023-01-20_09,2023-01-20_01,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxscore=0 phishscore=0 spamscore=0 mlxlogscore=832 bulkscore=0 malwarescore=0 adultscore=0 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2212070000 definitions=main-2301200157 X-Proofpoint-ORIG-GUID: 1E97svEgIO2Mi4onTfqViEyhGWP_TSir X-Proofpoint-GUID: 1E97svEgIO2Mi4onTfqViEyhGWP_TSir Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" From: "Liam R. Howlett" Use the vma iterator so that the iterator can be invalidated or updated to avoid each caller doing so. Signed-off-by: Liam R. Howlett --- mm/mremap.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/mm/mremap.c b/mm/mremap.c index 3cc64c3f8bdb..f161516ab3c1 100644 --- a/mm/mremap.c +++ b/mm/mremap.c @@ -1018,6 +1018,7 @@ SYSCALL_DEFINE5(mremap, unsigned long, addr, unsigned= long, old_len, unsigned long extension_end =3D addr + new_len; pgoff_t extension_pgoff =3D vma->vm_pgoff + ((extension_start - vma->vm_start) >> PAGE_SHIFT); + VMA_ITERATOR(vmi, mm, extension_start); =20 if (vma->vm_flags & VM_ACCOUNT) { if (security_vm_enough_memory_mm(mm, pages)) { @@ -1042,10 +1043,12 @@ SYSCALL_DEFINE5(mremap, unsigned long, addr, unsign= ed long, old_len, * when a vma would be actually removed due to a merge. */ if (!vma->vm_ops || !vma->vm_ops->close) { - vma =3D vma_merge(mm, vma, extension_start, extension_end, - vma->vm_flags, vma->anon_vma, vma->vm_file, - extension_pgoff, vma_policy(vma), - vma->vm_userfaultfd_ctx, anon_vma_name(vma)); + vma =3D vmi_vma_merge(&vmi, mm, vma, + extension_start, extension_end, + vma->vm_flags, vma->anon_vma, + vma->vm_file, extension_pgoff, + vma_policy(vma), vma->vm_userfaultfd_ctx, + anon_vma_name(vma)); } else if (vma_adjust(vma, vma->vm_start, addr + new_len, vma->vm_pgoff, NULL)) { vma =3D NULL; --=20 2.35.1 From nobody Sun Sep 14 14:22:07 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 C7D32C05027 for ; Fri, 20 Jan 2023 17:15:25 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229788AbjATRPY (ORCPT ); Fri, 20 Jan 2023 12:15:24 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:56878 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229805AbjATRPW (ORCPT ); Fri, 20 Jan 2023 12:15:22 -0500 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id F23DDBCE09 for ; Fri, 20 Jan 2023 09:15:09 -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 30KGEBVE006199; Fri, 20 Jan 2023 16:28:22 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-2022-7-12; bh=jvGRonmR88FIxOII41yKkB5nFfLvuceSsWnufY5SqV4=; b=lDqybG+ygqCgGZNplUZlHIzlqRSPZy5ET1BEOWSEBXzJrnm+JKDxYFsULDp4lVmzZaie uEIsa9wJaMV7HtLe+9t7bZZCFZZWA0Boh6AJbKjQDZRIzvFSiDsJZcqePoLfHl+crUZO jY6mjMi5TDkf8V6U3mlUYTq7OEzW4BQdL/Aw0CLClU0XPgpjUPmxFGBSuHMNb+mCuKDb dRk2JleD49ODR8UIb5w94tp0Io4nA+bQx7gFdhHWQr8WBNkdSpKBSin+AxD+kxEgtefA 5mx7QP88X9eBoWh7yrKfCpYWugCAkgR9v1Nf8QCi+Ix6tPrjGk1yqU7X7lqb3/dY/06s RA== Received: from phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta02.appoci.oracle.com [147.154.114.232]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3n40mdmfwx-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 20 Jan 2023 16:28:22 +0000 Received: from pps.filterd (phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (8.17.1.5/8.17.1.5) with ESMTP id 30KFOoWF000777; Fri, 20 Jan 2023 16:28:21 GMT Received: from nam11-co1-obe.outbound.protection.outlook.com (mail-co1nam11lp2171.outbound.protection.outlook.com [104.47.56.171]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 3n74d2svyb-2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 20 Jan 2023 16:28:21 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=NpHL4vWnstRpavEh10ICJa7PIJS+NLubl9sBGYLh6NBQOKdpoNf0BE5wayglKl/25riaK/yrBlAapGU/kMhhDDppiRtMH9uWQpSCIUf/AAEnSkyqyIEj0nzWMjj1bX1wqcwCzr1FuAylALwVYC38qNoCIKucFwHj+FbIMuTeIyhKzud5u+8Rk5GeGU2PFyjKLjbucBgjTOEVDfeokaHJnPJGTqkBDvzG8y3e9sMshOVfQ7PwSArTDXKPHX/B922OKSYwwyjM3Cq2HeU0DYHAxxsPRi2YFFU4PtRtDO68w4sjrvNlfcYYXsn0u0cq/M9d2FbhgVALyCaKaF+egCSeRw== 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=jvGRonmR88FIxOII41yKkB5nFfLvuceSsWnufY5SqV4=; b=AZg8VBS6gor3ZsNOzNceAFzh2bw1/Gyo/tcPK2C1iCFRpYbKHZFb//Yn7WgJgUahFJP/dgongXoe+3wWZFRHhyaXVGs4C4ZLTulY/TmVblvh2cfdGJW77VLvhp2yMQmpxBimiNKax3h2C7joIn5Rfwq9T20sYyrlnGm77t8MWg0CCbEG6RxwqlgcwU1oRu+z6ob8E7oSlbG1lERUSO7VXorVA4WeShyIdVNmjGqpGFz6dSS14FI0WEnEJsCeRLXu49zeltvNja3sXmysXhC6RrtfYN8ZaGH/UwwGKi3yuSUuYMQSS+ZRcoPPH8XXpDNK3D3smfZ5UHvnZTJf0hqBQg== 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=jvGRonmR88FIxOII41yKkB5nFfLvuceSsWnufY5SqV4=; b=fhhmYn29+fQNuP014iRl/ooKeQCopIR4cfwzwUMCFwZlLY0q1/ytQT2H1OslPCO49uTfY6BlYI4tdV4ucUHJ+CDVJdFX7XkNkZg07J14YcHSuZoDpbJROjDpykE5lLjEsLRZxe4hogFlbDg+2J4KYcMO29h+NnMMUXmXur6D+Wo= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by SN7PR10MB6381.namprd10.prod.outlook.com (2603:10b6:806:26f::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6043.5; Fri, 20 Jan 2023 16:28:20 +0000 Received: from SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::7306:828b:8091:9674]) by SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::7306:828b:8091:9674%5]) with mapi id 15.20.6043.005; Fri, 20 Jan 2023 16:28:20 +0000 From: "Liam R. Howlett" To: linux-mm@kvack.org, linux-kernel@vger.kernel.org, Andrew Morton , maple-tree@lists.infradead.org Cc: "Liam R. Howlett" Subject: [PATCH v4 27/49] nommu: Convert nommu to using the vma iterator Date: Fri, 20 Jan 2023 11:26:28 -0500 Message-Id: <20230120162650.984577-28-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.35.1 In-Reply-To: <20230120162650.984577-1-Liam.Howlett@oracle.com> References: <20230120162650.984577-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YT2PR01CA0010.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:38::15) To SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SN6PR10MB3022:EE_|SN7PR10MB6381:EE_ X-MS-Office365-Filtering-Correlation-Id: 0f10b2b4-b637-4ddb-53dc-08dafb0357cb X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 4nlTZRVaxCHxoFISU0sXcfQ7SnHrsYk3UL1all/30q73BVgKJ+WK5aZEOF/tf0OZiA6bnTULThdCC9M9VbEMuYBOySGyK1YmvRtNlhpofpkwwdQhfduKUGpT4ZC89iP+p3MCGrUk7EvQMQJULF+U9eY5vCbt3zdBOh5jjFT0aeIwZ1WHu2SriwCzJBnK2KH3OmHqLzOLT+TpzSJUenvN8+NmIqxOTGE8kNgOiPo1jMX2oNXZ5Hsho2aeMjKps/6apt1A3rxg4uGzg1dwmwE/DpwWRaPwC3/XyF6s7Y2POb4F+lep6vmV2cat6Jr0RewS8GNthIPzhLS6eyoMNCC7ObDAqHbW/0kiH1NMGJPfRSqsxRS4Lhkxxf91IzBGt/34NWMwqZRlJ5TEPNo5N02eDD9TnQjRfEQVbXQMcbpGBUELpnkXXaoMeogVJHlHzaLp2R38mQ3b2ktwHhDakRQfs5vuhamt865Pf1xW/TJF6n+MOSS8wKzwflisKOUXtvjjo8VxcpQep3ZS9742L7YT33FmDe3H72mZrfp3S6qUrXS0MTry+nHY+nz+O3SuHqeeClAnyyyBdmsZHukKDNIbaAnwqkwbOOHnIhbxaN2C4Q77lz/ZW/6DpxGmyAY20jS7dlm2KoirdlXpyT4k5/p0TQ== 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)(396003)(376002)(136003)(366004)(39860400002)(451199015)(316002)(26005)(41300700001)(2616005)(4326008)(66946007)(66476007)(66556008)(36756003)(83380400001)(86362001)(8676002)(38100700002)(6486002)(107886003)(478600001)(6512007)(6506007)(1076003)(186003)(2906002)(5660300002)(8936002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?ZgRc3SozPIyr83I1ojbVWku6//SVQSBNJ+LRoyQnCdSRSU3fn51oojjKaBBx?= =?us-ascii?Q?2TCV4jB2GI5ZdEDr287/G/nsa6rRLLdMMV/pi2GCi46AomJ2AslkI5y3Ehk9?= =?us-ascii?Q?vKWEyPDEt65LDQF/J6gY0CIyhxfaapCdP37sVVBVFjpJflLcyYfgnHu2AIni?= =?us-ascii?Q?E6kUqg2X+2H9t8JAnVziq6wd0gGESRCfh1zbdLIxcgR7xf2UnQ7T8Vk4OTWU?= =?us-ascii?Q?5t9p8DhWK+6/9VF5v+EokE/YrZlpJLoHSyEY9gFvq0/VvJQfybOeFTF+h+BG?= =?us-ascii?Q?5txtv/noK1KZpvG33Kd7PCehg6tY0cmCzjaZUisUfPMljyS2YWneJAR7RUWS?= =?us-ascii?Q?tDY2KModnpT0ZvLuKuvQagqg4rgkVzeas9/U9tFO38YHAaPQ21ib0LWb4GWq?= =?us-ascii?Q?S/6FCXgq69axZrj2NjU4rjwEdotFZ+IA5kW6fbwkvC4N/iug38A68l/WYylT?= =?us-ascii?Q?ZsGoXML/eXG4MtHXGMpt+SIICqVBM2CMHYRvfFpZio7Y4CS7DlJDN9Cj321g?= =?us-ascii?Q?nDPEyT/hVrqM+Qr7XPz+FeF2i6weSnHankimjTmxeoGmhaBzQXSuQglOftX1?= =?us-ascii?Q?rnVEuU4TpeasoNmPJTJd+Jzy1vQNQ/aoT0cAKnsr14/rGacZFKHqtkBLYYo2?= =?us-ascii?Q?SI8NQChdNwhuHXYwGcfOKnAXT9ag71WLQrDXZJRTsVTXY4KWgdEg8qu/S51a?= =?us-ascii?Q?IiKzZ1E3EDTLY5dwTKr87cinTG9Yata9xw2iTkU0ZgD/7HOc1rcsrYGEwceg?= =?us-ascii?Q?nUy7zZKbuCEbYw6vmnj3KDfT1t9tfCy4kVuAZQKeDsdbUqXPTkV/8Yyj/q+L?= =?us-ascii?Q?9t137a5CEPNEcytH8fVSrxi38SMFFOhUEw7aLNYTaSL8g5gCx9VOVlNE+ZOT?= =?us-ascii?Q?R+JIj9QwgrAPQpZsPlVaL7osD+7+/YqWHli44PJIdzgMUaWPQOAcDydOKSUG?= =?us-ascii?Q?blgfzFPMLIIM/1raQ2FQLPMp6wDgaeJrl8wazaTvbh0f94v+sv7CDVCVTCoB?= =?us-ascii?Q?Bo/18nqrKuX3MnXv05ertMpmYYAKiXTEYpZoocc/5fNnxFidxPM48MOEYpLF?= =?us-ascii?Q?ANhEiG4bGaBmeQU33VpufO4sbCgpkwVn2c6YA43bS/3azD6OUqy6a23rDshN?= =?us-ascii?Q?Z+zoNsZBXh8ep2fvgK0l2JiWbpdtgua4TPP702A2OJ3PnhgcXO0A4rPIJUFG?= =?us-ascii?Q?Hi3tOBTsBoh6hHM17lz6+y6ed0vuCT0oPu4fwmy1pux3II9ibTvdPHh7Mgec?= =?us-ascii?Q?JBkmNHLTgy0zAdrn83mjRayu5C5iHuKX9x0sjaDmgJ3vWQOVH3CAVlUGf3A7?= =?us-ascii?Q?9ivgIi8SGnqGahRR4zC58HQRl/37LZJenSMCmO7cVSYxVJwIpEHfNty69N+2?= =?us-ascii?Q?PLhI96ysiXuXFDcRFSysYsP0bPJYRQbPbxkRBfMBMRooGLMSG8xQ1Qx652xi?= =?us-ascii?Q?OXmCG63OqR2/HZDfNHNbYJez8i+WI8ygZ+/spsY66TVsqEpXfcnRGx0VBL1s?= =?us-ascii?Q?sBYQUty+EWOavqRKdmxqtw31Vzh34ReVXmgCmV8Gm9NniMAjiGmB1+ZL68a2?= =?us-ascii?Q?dNjflntlRMnijQlksXcrwgrSOtxWd3ui+aIcON0gVuU43qHQPjyHsBzHs9fo?= =?us-ascii?Q?fg=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: V4rL4QTyOXtvLnolSpwVVg+cv55hP4ufyU8WTH7tCS8EoOB7atkx/NmCFwzPS7f38B6/+ADuXA7H3FagMd94EZzYFrAD0x7m0teI5kZaZ3H3feYtAMd7R8x9eaJ2IVQzXs6C0RGpvCDlZWaZMg7tQpMGQnDILbb6wvomzhGjsh80LbFxlHlS94Do9EesTzQy7k+Ziwa/jKjtZr4utZ/8ncRAxv8LJqkQqfWyiwHcNo6q1FsrJE+kuNbQIJs2NudiPOXUXkI0oJeOj846VWRbcll6nktmRq/P1qTeTEsAAXY465vyx8E3Cv8Q6tI1cxoakpLZmQ3ORM7ervomHwJfsOnWaSSnHDM5lxQgc14Z84GtyDmg/2nVFoO4FXKyDl7DO834f/mflawgyakWmz3ghFqytqk8JkJTf8zzA2mAW7pwui4R4SSzzva9O/Cz3bUZ4RYE9LVT6JnjauHDdIUcE+O6cPH3CPbddJSjSCOEq/YyEiuROryZZPVppiMd/ZwTIV2/N8F7HYv0bZ0AwpqjHyrkFHOwQyOuNaGUyM2X2Nw9nIEA5Zw7zsh0pdG03OEWvbnsggOsiNoB60Y+HWhfysUlQaoSBIlcZ3PltDgymSWbKPSfF/63A5hT533fxyFi0TeSjCSO/Z3ELu0MBDqQ14dTroiS1aGkULPgBEKorGhRwCS4bRZU1le8r1JSOjwXdgvVE5EYfD6LVy93qYhprAR0wI6lwoFpDTk4mC2pA8R7UGyHtZikpTUjwoAOcAudB2p9eB1GwUZk+8G6lJfPF7gc1CsWfpP/T+yR92F6TdRIyQbJpNq1KQtxKL+A364CO2MM01wSG+QW70D5Xit4MVSZKK1i/bGNlVKjMoJn6ZcplMgmNEaIKRligN8PTMrTcb7GOBRPqWwfgmG1q/wXRw== X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 0f10b2b4-b637-4ddb-53dc-08dafb0357cb X-MS-Exchange-CrossTenant-AuthSource: SN6PR10MB3022.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Jan 2023 16:28:20.3856 (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: MCMZ7nSEivtOmEXQebSVA51Ldwwlut3UUP/CI/YnFhmcS1OzFdqOAhuAjjejXmhu3QTH9tlqtyvAhGtl5vJ/+A== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN7PR10MB6381 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.219,Aquarius:18.0.930,Hydra:6.0.562,FMLib:17.11.122.1 definitions=2023-01-20_09,2023-01-20_01,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxscore=0 phishscore=0 spamscore=0 mlxlogscore=999 bulkscore=0 malwarescore=0 adultscore=0 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2212070000 definitions=main-2301200157 X-Proofpoint-ORIG-GUID: YXhcoNP4VdbQESVrmvjN5A4EIUQ-089n X-Proofpoint-GUID: YXhcoNP4VdbQESVrmvjN5A4EIUQ-089n Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" 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 0481922fe66e..7a52a7c37009 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); } =20 -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 =3D vma->vm_start; - mas->last =3D 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 =3D mm; @@ -574,13 +561,13 @@ static void setup_vma_to_mm(struct vm_area_struct *vm= a, struct mm_struct *mm) } =20 /* - * 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, str= uct mm_struct *mm, mm->map_count++; =20 /* add the VMA to the tree */ - vma_mas_store(vma, mas); + vma_iter_store(vmi, vma); } =20 /* @@ -600,14 +587,14 @@ static void mas_add_vma_to_mm(struct ma_state *mas, s= truct 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); =20 - if (mas_preallocate(&mas, GFP_KERNEL)) { + if (vma_iter_prealloc(&vmi)) { 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; } =20 @@ -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); =20 - if (mas_preallocate(&mas, GFP_KERNEL)) { + if (vma_iter_prealloc(&vmi)) { 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 *v= ma) cleanup_vma_from_mm(vma); =20 /* 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); =20 - return mas_walk(&mas); + return vma_iter_load(&vmi); } EXPORT_SYMBOL(find_vma); =20 @@ -709,9 +696,9 @@ static struct vm_area_struct *find_vma_exact(struct mm_= struct *mm, { struct vm_area_struct *vma; unsigned long end =3D addr + len; - MA_STATE(mas, &mm->mm_mt, addr, addr); + VMA_ITERATOR(vmi, mm, addr); =20 - vma =3D mas_walk(&mas); + vma =3D vma_iter_load(&vmi); if (!vma) return NULL; if (vma->vm_start !=3D addr) @@ -1062,7 +1049,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); =20 *populate =3D 0; =20 @@ -1091,8 +1078,8 @@ unsigned long do_mmap(struct file *file, if (!vma) goto error_getting_vma; =20 - if (mas_preallocate(&mas, GFP_KERNEL)) - goto error_maple_preallocate; + if (vma_iter_prealloc(&vmi)) + goto error_vma_iter_prealloc; =20 region->vm_usage =3D 1; region->vm_flags =3D vm_flags; @@ -1234,7 +1221,7 @@ unsigned long do_mmap(struct file *file, current->mm->total_vm +=3D len >> PAGE_SHIFT; =20 share: - mas_add_vma_to_mm(&mas, current->mm, vma); + vmi_add_vma_to_mm(&vmi, current->mm, vma); =20 /* we flush the region from the icache only when the first executable * mapping of it is made */ @@ -1250,7 +1237,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); @@ -1278,7 +1265,7 @@ unsigned long do_mmap(struct file *file, show_free_areas(0, NULL); return -ENOMEM; =20 -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); @@ -1344,20 +1331,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 e= ither * 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); =20 /* we're only permitted to split anonymous regions (these should have * only a single usage on the region) */ if (vma->vm_file) return -ENOMEM; =20 - mm =3D vma->vm_mm; if (mm->map_count >=3D sysctl_max_map_count) return -ENOMEM; =20 @@ -1369,10 +1354,10 @@ int split_vma(struct mm_struct *mm, struct vm_area_= struct *vma, if (!new) goto err_vma_dup; =20 - if (mas_preallocate(&mas, GFP_KERNEL)) { + if (vma_iter_prealloc(vmi)) { pr_warn("Allocation of vma tree for process %d failed\n", current->pid); - goto err_mas_preallocate; + goto err_vmi_preallocate; } =20 /* most fields are the same, copy all, and then fixup */ @@ -1406,13 +1391,11 @@ int split_vma(struct mm_struct *mm, struct vm_area_= struct *vma, =20 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; =20 -err_mas_preallocate: +err_vmi_preallocate: vm_area_free(new); err_vma_dup: kmem_cache_free(vm_region_jar, region); @@ -1466,7 +1449,7 @@ static int shrink_vma(struct mm_struct *mm, */ int do_munmap(struct mm_struct *mm, unsigned long start, size_t len, struc= t 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 =3D 0; @@ -1478,7 +1461,7 @@ int do_munmap(struct mm_struct *mm, unsigned long sta= rt, size_t len, struct list end =3D start + len; =20 /* find the first potentially overlapping VMA */ - vma =3D mas_find(&mas, end - 1); + vma =3D vma_find(&vmi, end); if (!vma) { static int limit; if (limit < 5) { @@ -1497,7 +1480,7 @@ int do_munmap(struct mm_struct *mm, unsigned long sta= rt, size_t len, struct list return -EINVAL; if (end =3D=3D vma->vm_end) goto erase_whole_vma; - vma =3D mas_next(&mas, end - 1); + vma =3D vma_find(&vmi, end); } while (vma); return -EINVAL; } else { @@ -1511,7 +1494,7 @@ int do_munmap(struct mm_struct *mm, unsigned long sta= rt, size_t len, struct list if (end !=3D vma->vm_end && offset_in_page(end)) return -EINVAL; if (start !=3D vma->vm_start && end !=3D vma->vm_end) { - ret =3D split_vma(mm, vma, start, 1); + ret =3D vmi_split_vma(&vmi, mm, vma, start, 1); if (ret < 0) return ret; } --=20 2.35.1 From nobody Sun Sep 14 14:22:07 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 6CA94C05027 for ; Fri, 20 Jan 2023 18:36:56 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229881AbjATSgz (ORCPT ); Fri, 20 Jan 2023 13:36:55 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:45358 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229526AbjATSgx (ORCPT ); Fri, 20 Jan 2023 13:36:53 -0500 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 71B04B4E0D for ; Fri, 20 Jan 2023 10:36:47 -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 30KGBi17001419; Fri, 20 Jan 2023 16:28:27 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-2022-7-12; bh=dF+0k54bykce8J17oSg5dT0XvDP4Mdb9eo9FmMMZgLc=; b=Rm3Zjl0rtlY9XqSPUkArrPL4O8SdyitX4nwFxhVYUgJx2MOCirS0IT2BuXLkxeHxMpOm dxRxjV6pdSE7p1Bnh61Ej/E/cGKTO5upWr7f0TWTm8yay39cCE9eW/bQo1Zwh9VH9jnH Wg0Rfzc1QsadO9orQnt8SDOkrPZoXNC6NCKwoERoYp4Lum441Xlk8H34fFvChy9Nx0hM x5DXv61C8/r5jOZ0e+qziK4f+1d0TYCSLURLdyIjgh1FdbpCo7Q/BJIz1zHrm9ugxbO/ lTF7eOwXPQ2WfWB+RVo4Jw5bf6SzWmZ+FFFz9i8l4XDQp5guDZmUlT4SVObCrxKheW/b 0A== Received: from iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta03.appoci.oracle.com [130.35.103.27]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3n3kaan2yt-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 20 Jan 2023 16:28: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 30KFDBAN013578; Fri, 20 Jan 2023 16:28:25 GMT Received: from nam11-co1-obe.outbound.protection.outlook.com (mail-co1nam11lp2174.outbound.protection.outlook.com [104.47.56.174]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 3n6qmfayg8-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 20 Jan 2023 16:28:25 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=MPDNYxwIDA8xTLhyb74qGsR7ykNmUiojAKZZz7lZ9zD4yXnFl9nvuDFRAok8be96ZlqIpAENPgyBW/S5ZmmnZWSzqf+aTV/aLKLrEVSdome2yS3OEeMHezHtwOGpV0cTUVmYGUBnoS7SHHUIFHGjC4BC+g2a4qUSrmNgy/4KpQiToq86HL4sGQBt5EXc7+L8Baa4/sXMRRDElMxLq/hxTlM+W9gAzvgSqOtjeIp6+yV7p+SL0LdT6WjmbzKcHVRj5ajtagkkI/I8mjZKn5azWpu4KxetOeZS3XiUceVwQL8BU9b3lZV16OJiErrX5tRp8qz2wfAQCGG1Rlpq+GiRrQ== 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=dF+0k54bykce8J17oSg5dT0XvDP4Mdb9eo9FmMMZgLc=; b=PNXdFZLGpQ70eEYFM09rAiniDe6ww8c9RY7LSS6252wB5RX4fSYjG+wEaGdfRRrm2dlma+htTWuyNI4R++1pt0ite59dGUtTPoD3mKoXL9t/VMpWzlXnvUsRWWYZayQUAFFEntzjPiQYOEyGGBuOHSRo+KblfErNt8/DFMZq3Luf2fAupkefpp1FhiEcVHInbMCfpp7N7GyRnLsy5FBaCAIk+HaA8Z9ntBKCFauf/y+X2zeDFCLDWmuqxaYT+T9wtqTsM6CWUOvY3JrcFDmLW0Mgm8CjzqTUY7w9ssBC0G4kGZ3SuC33g4mRwb2Vd5ZH57yUpFZq89iDuDMihH6UVw== 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=dF+0k54bykce8J17oSg5dT0XvDP4Mdb9eo9FmMMZgLc=; b=Hu4Px2V4ixkLGLUgvs+0uzsvaoUUe17o+4nODqvbc9PirFjy/XbqMgs2ApAh/kfSFBsnSM/QK/haSd4Kss44iibladQwo4MRMDcLtckZZUktJtWl72YWkXZAPBlc4XjKsWtnhW5i1dGBMy8n1ELK4FV+cHbbpJTf6gDJG56UKZg= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by SN7PR10MB6381.namprd10.prod.outlook.com (2603:10b6:806:26f::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6043.5; Fri, 20 Jan 2023 16:28:22 +0000 Received: from SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::7306:828b:8091:9674]) by SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::7306:828b:8091:9674%5]) with mapi id 15.20.6043.005; Fri, 20 Jan 2023 16:28:22 +0000 From: "Liam R. Howlett" To: linux-mm@kvack.org, linux-kernel@vger.kernel.org, Andrew Morton , maple-tree@lists.infradead.org Cc: "Liam R. Howlett" Subject: [PATCH v4 28/49] nommu: Pass through vma iterator to shrink_vma() Date: Fri, 20 Jan 2023 11:26:29 -0500 Message-Id: <20230120162650.984577-29-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.35.1 In-Reply-To: <20230120162650.984577-1-Liam.Howlett@oracle.com> References: <20230120162650.984577-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YT4PR01CA0151.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:ac::18) To SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SN6PR10MB3022:EE_|SN7PR10MB6381:EE_ X-MS-Office365-Filtering-Correlation-Id: f16451da-c46e-4cd5-29f4-08dafb03592c X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: WAJ0WCUbuDxvHvOfCQcBulE4fJXUlcRGd+k2ata8EVuKSPyJA+ZbtiUYpx/WIxSEEkFnHjgPzlPpoDvteHII78gxGAP0B7FPQPQ4T778PmruOaFKAAlAP4y2cuJ3hbj33QO+dnPYSPeLzU3RJ8wrfJscqf2c8aiI2pvBMbAybs2m2gMeggpThGbQ+/Xisx9APcMRrLt6C1BKzSCaiXaFh/5JG64FNw7r3jiEPlNvOsOSQkO8QeWteh0V/Qs12wmk/iou/GfS1FOT9rnIs4wG2Af+fzFvCZIbr/7Musoh+J0GP98+WQr5v6MHpn2iA3bZWLDR5UhOwWQAo68FZWhjKTe7cq5SxiSGLh4QbDCDpQlSv/7vVBhKRdosZ2RkLjivk5G8qWm1ux/IeKHBvPdUAJdbzM/4svqhlrDnMbdBp5gLZMYz54ZzH255tQ6hVFdkGABqZVRB59VgUGha7kGkkTYGBywpAgPYJvqJmr5zZ7hmxx0RjK4io3gLXSl3MsuVWGImBFMj2WxQvPbRIJyuHziImnSgdly0h/7qiWyWWinoQ9RYFmiTQAi3rZXzqiNzhlNEVSvNq8vINAZpch8EghqCCJyfSGw/0sC/I8BsYKMG+VRf08Ki8F8muHeZ/VfPkz3kWxAnd+QujlnL36j3Hw== 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)(396003)(376002)(136003)(366004)(39860400002)(451199015)(316002)(26005)(41300700001)(2616005)(4326008)(66946007)(66476007)(66556008)(36756003)(83380400001)(86362001)(8676002)(38100700002)(6486002)(107886003)(478600001)(6512007)(6506007)(1076003)(186003)(2906002)(5660300002)(8936002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?ateG7sgVqv2s//9RnF5JI/FXut1fDu4rQt2XZhvEW5zWf1J4ObUyZbULmE7E?= =?us-ascii?Q?IiSlYQVOatCR9/1WEl+ePak/oQLSUwkxhuK9SF6GEXrScXeiCkzvGQENM29o?= =?us-ascii?Q?kSID8TV7p+R5NtXBWR7BulMW5iGe7ux5SRBUXWraqKo04fx1p1OJz18C8Pof?= =?us-ascii?Q?z76876qaVFQe4OL3LpafVxsInUTDiQg1nmEZBe3KBacS77R3aZ4d5gTvtkuX?= =?us-ascii?Q?44UpUmHoxyMrj9PtWcXSQ0n9cuOwvrYAezre6rxbM2+b/pFM10qWoSETP0E5?= =?us-ascii?Q?ZE75NLDDaNrf9sOf5Qu8cLicQdtMNMPs3UvOt9Ne+7Fe61Awcu+AjvWizQ3K?= =?us-ascii?Q?SGeotnVDvWwhqZ0ql6jEVsjLQZZJNWUk1yZXT+p0A0rpAvOZAUqo5nEl1Yjq?= =?us-ascii?Q?PZR7ZqGIwZxaxB+/AEXyQHfbPoXR5Wtqph3lMq+VOOsn6/V01pK32i9DQZyn?= =?us-ascii?Q?RhOIOwGh4eA3RkV/75e01ObKl3vfTFYXXOKx5wSDZsFSY7JiVGXoRgUziyX5?= =?us-ascii?Q?8SQtIzJbMZuAbY8ODz/EEnN2ELNeqcD8AZuw30BopM26ud4xZ0QjBUtsmEVj?= =?us-ascii?Q?Y3962Q6REeOfio/vxbgsKONwMxIzqh1ZmgUIsE7Wl+r70UZiERU8Pm3OyJtp?= =?us-ascii?Q?4Y8hvGEt+y9+BELA56r+VB9tB9StF+P9yqqeWLAge3+vymzILzDw5EXa4HKZ?= =?us-ascii?Q?XO4MBM7qjPP3v54zlEjNi67QSwaQZm4MExg6ojOUqWMpf0Y0kjkjK23BM0ob?= =?us-ascii?Q?MTITeUw8jdNzmWWfPWC65rem1+eHz5O3LtzYp2IbpBtA689DXrSV5qjgjLAI?= =?us-ascii?Q?NN62UAa55bBtfoUawl0Pj5j7bJLNMx6H4eF88IHADbf7dp7En3Kgw3HCEIt3?= =?us-ascii?Q?7ab9GfxCTd9OeIMHBuNLPwMGosIstRz/iOaKeOwvmWpcr7McS6/LAioed5Cm?= =?us-ascii?Q?uJMz4IBuZBNsppPo6shPf+1lc77FySwY1wWJJVUFUQ0w0SGPt1tDYBKD1An2?= =?us-ascii?Q?TVAiKvgOzxn4OoUDLy6407jIZB5yPuRho2HJzJkIkgwMbNUdWUugzzAD8hEy?= =?us-ascii?Q?otGB6pAL04SeVyDtgqkEzpbCf2j937kj2BB8XVOFARSL5JuHEu61+bEOz/TK?= =?us-ascii?Q?rOLRil8P8Ei48LNTucznd5IeW1xSzrvzZTCzCucqgx97eRZ05fBFPvfKbSfO?= =?us-ascii?Q?NMv0DMWKRmzMbGhXlXxJnxnM5qJf11qbjoUDm1gmJ2JnfG6E1vbyq/0J8yDC?= =?us-ascii?Q?iy94w2XtplUG7VBxtPndhboHfjM2q11ynXqnVuN7nnRkjyctfqTPcneX4sdw?= =?us-ascii?Q?w/baQv3d4pnd/qICTx61fHgYi3Ub6vFSbwZIFELTpo1FhchaRKcrxMr/Lxg9?= =?us-ascii?Q?Q6wDbayOXyyPnXsDOGQMyaK/mkMEvp40DosIifUcLWEQp3uBPs/eNK83bTNB?= =?us-ascii?Q?PXoUpcButCGYjVYrFYFvL81Hfm3wDPOWqqB6e3KZdbRgwK6t9DgQqdWpIb+s?= =?us-ascii?Q?JlH3ALviskhBM8e075oLV0tf66kmzLhe8nRoO4AD2K5+M7emmdp+a3LxexY5?= =?us-ascii?Q?gV5jMG8ukLR7BMgOX75ws2llEycX562845AstwW8H+NEx+mUvE/aQDZG0+r/?= =?us-ascii?Q?Fw=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: PQzk1/UJCL5FRYe0mM7Cl66nmE8A4Q5rCnnTULZq3mHDoo8QLFfmxuGBnJiCytZ/J9R5yn5mWJniFB79hdRXedZe5BmFfWnPT9pDvDT3Utt/9MR/YrAR5q0Wuw0TgQV8ytGcFRRXAPUEch6yOq1qKwPZezRkfJ6pOuE8wwSuOfSoRojISKr8VQDV8NMc7ynPfitWiTz99J06ZVnU3NDUbmKvcKmih9Am/qjdPFpt7dHqkvZVfyMCL0wKtWerXGc7tubP1vHOhmi0V0fgnKz7Vj8kezTYUfb2qQycYH4/lHj71IxRE2k8oT2X2dsZrT49BL7gwqJnt2MCGjHPgsYRwvBbc4gwFTcLmkNzY+gCkGK/prGYFRy5GUpoTtIDL82a8IylSNDV2fQddW+O7+nyMiRjljyjBYtLShWZDpzCFcUnl8zemknfcSNs9HqQd2+5hrWD961jeLOaHS3VL9Ribp+M9fOLKMDp71GRJHWf+7xILBaGzk5jl/BkuBrIXubC6TaHAwgetJa4fad4/L2tgg8D8ZfmvVlhVzvHLK+J/Br1jZd0dJBYRyVaiu5+ObNNnpbFRSCabXvJJc+L6LnEj8sduONEenYa+Aqy0wpOLNbRyxjHwcp5gqhETjan+PrSXs3tKF7Q3zPKjXJniTypVNcp9ZvjcRVZ7V5Z+u1gT10uBfNKlukuHXVQ2dMOZjBq7XJ5iKUh8l7eECox/0EEIIJ5RTrjxmdrvOBioQ2/b7xMzf8XdqGHDg6kLNF5pjojkezdPBq3xQ7Bb8GmrdkqzY7DwF2tp13thrZ4kNRbMZcv5k9pBYWTwmDO6XkA6Eki3G2GpRbQG2IzqEGxO1dnVc+0YF1VUl+1vQFCo96SDpZobcwS6xvTpmtxkW/rcplC2y+wI1NCmAQARSMEHczybw== X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: f16451da-c46e-4cd5-29f4-08dafb03592c X-MS-Exchange-CrossTenant-AuthSource: SN6PR10MB3022.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Jan 2023 16:28:22.8386 (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: 6pgYIFqola/S06MX972wKmo/WzdigmEVv9i9M6SMWlYuhq22gFxVyT57/Zfe5tQEoTtor635CQy7of8Z5GHrYQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN7PR10MB6381 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.219,Aquarius:18.0.930,Hydra:6.0.562,FMLib:17.11.122.1 definitions=2023-01-20_09,2023-01-20_01,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 suspectscore=0 malwarescore=0 phishscore=0 adultscore=0 mlxscore=0 mlxlogscore=999 spamscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2212070000 definitions=main-2301200157 X-Proofpoint-GUID: Yt72NwqWgZIpM0pICzd_Ym1SbZPplwHv X-Proofpoint-ORIG-GUID: Yt72NwqWgZIpM0pICzd_Ym1SbZPplwHv Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" 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 7a52a7c37009..9ddeb92600d6 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) } } =20 -/* - * 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 li= st - * and tree and add to the address space's page tree also if not an anonym= ous - * 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)) { - 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--; @@ -1221,7 +1183,11 @@ unsigned long do_mmap(struct file *file, current->mm->total_vm +=3D len >> PAGE_SHIFT; =20 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); =20 /* we flush the region from the icache only when the first executable * mapping of it is made */ @@ -1406,7 +1372,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) { @@ -1414,14 +1380,19 @@ static int shrink_vma(struct mm_struct *mm, =20 /* 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)) { + 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 =3D from; - else + } else { + vma_iter_clear(vmi, vma->vm_start, to); vma->vm_start =3D to; - if (add_vma_to_mm(mm, vma)) - return -ENOMEM; + } =20 /* cut the backing region down to size */ region =3D vma->vm_region; @@ -1498,7 +1469,7 @@ int do_munmap(struct mm_struct *mm, unsigned long sta= rt, 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); } =20 erase_whole_vma: --=20 2.35.1 From nobody Sun Sep 14 14:22:07 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 CC608C05027 for ; Fri, 20 Jan 2023 16:30:34 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229934AbjATQad (ORCPT ); Fri, 20 Jan 2023 11:30:33 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:37250 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230218AbjATQa3 (ORCPT ); Fri, 20 Jan 2023 11:30:29 -0500 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id D739310253 for ; Fri, 20 Jan 2023 08:29:54 -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 30KGE8A3024778; Fri, 20 Jan 2023 16:28:30 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-2022-7-12; bh=k+jcTWs0G4M5GnpPjWscF3JT325Zv8egxRDvpDVSKks=; b=CufxjEB0W+mEDwa2trBaug/on+akVNuvyyYGm/3DUrd4oDJZdOl3zCtlJUgSROf4vgAG /t25a3J1rX+mJ0zTWsZgPG7GR4i+c2olUtLcqiURzPh7IbRduc7X8jjkkWNiUVREURIK XFEGvAGp2S0V80bkgHzM+MWMQrme1HKlvzprtzNf7m1nuZWpaZ4pZSI1g0s+vl/JZhiS N8W0bz1f5dvHLwksVH6tG9akzKyKDISYT5htB9OBikYroWgp40FsmF7UtUDhL/k8FW3C x4kMunOcM6KHkimZx3PSiIeWtn6u5mL7X02VHaGY2byhJ2EL438OBAgYE//aW7ZlJaEN 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 3n3k0154de-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 20 Jan 2023 16:28:29 +0000 Received: from pps.filterd (phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (8.17.1.5/8.17.1.5) with ESMTP id 30KGIcFE000987; Fri, 20 Jan 2023 16:28:29 GMT Received: from nam11-co1-obe.outbound.protection.outlook.com (mail-co1nam11lp2170.outbound.protection.outlook.com [104.47.56.170]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 3n74d2sw5p-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 20 Jan 2023 16:28:29 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=cQ520c0n20lsEcUzIjf1+gMfaTEY4ZzhTBpgKByy5eQlHSCtg51nvplKB8Y1mfEaTu1sDIOO8h3hU2DaArEmiBdaho53W4V+BQO0vUu/OoZ2bp+oL5KseVd+84FCvjUuwU6SC6fXwajHJy/xMgsxV2ceFbv0aRESqx6VHFm5TFPnaC909Js1hgp/yqLbIdYYb0OTfJjUp3HNvSq2911hHZxO/YAtZyaxIytsrw8tvfxX6tpH0dgIXqzAvFVL3fBqKbj6fFuMTHY0SSPOWUrjY94Ve4fvWLpvPfB12SXFSJwDoxjr4T0DOfEiDXvbJ9ikYoG0gyoX728oIwqaINI6Yg== 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=k+jcTWs0G4M5GnpPjWscF3JT325Zv8egxRDvpDVSKks=; b=i4enLoai54tV6Gn84ewwKAwkbtUK/3r+SdvGnGd8iLqdMSwHXCQwOJTZe7yjelYohGfy0oDrU6SoJzQnV3fnOcQf9kdPr0XG6VToRd7KXAG/nWrHC8DqXJ2iuaOawqC1ck60s9V2FaxCPt6+TlK0LXeXcmr/t+WCTBHkRuwkYDWRytjocy0HJJp1qkSyuljTlEoAemZnaLCEha3Xyt2BJNllHAoFDfktcd9ARHMYwronlivKWMAASDU/2+bzCa/23aXCtRq5fcbaeqSq99JQavwRUPLBsyrWh2FeJ+vEV1mT8HCnRZIDshqmpS1QhHlXUr4KXddZm5XB1uvojbdYEg== 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=k+jcTWs0G4M5GnpPjWscF3JT325Zv8egxRDvpDVSKks=; b=jh80Ixbqqv8y2+5pc1t6odjMdLuvreqkHSNUsPwcZZE2Xc8GIan6jP9oVn81GfVKbO6n4aevG+sYBfcZWNhhHgZECwxwuGwc/EM0FPYLoOAscd+TJVX3I2g1Iu1htWHrPCCP+HwBWgb+dqaOFP4cQuWI61F2SYzQ2UhJWPzcIWs= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by SN7PR10MB6381.namprd10.prod.outlook.com (2603:10b6:806:26f::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6043.5; Fri, 20 Jan 2023 16:28:26 +0000 Received: from SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::7306:828b:8091:9674]) by SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::7306:828b:8091:9674%5]) with mapi id 15.20.6043.005; Fri, 20 Jan 2023 16:28:26 +0000 From: "Liam R. Howlett" To: linux-mm@kvack.org, linux-kernel@vger.kernel.org, Andrew Morton , maple-tree@lists.infradead.org Cc: "Liam R. Howlett" , "Liam R . Howlett" Subject: [PATCH v4 29/49] mm: Switch vma_merge(), split_vma(), and __split_vma to vma iterator Date: Fri, 20 Jan 2023 11:26:30 -0500 Message-Id: <20230120162650.984577-30-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.35.1 In-Reply-To: <20230120162650.984577-1-Liam.Howlett@oracle.com> References: <20230120162650.984577-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YT4PR01CA0168.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:ac::25) To SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SN6PR10MB3022:EE_|SN7PR10MB6381:EE_ X-MS-Office365-Filtering-Correlation-Id: 06ff51d1-45ec-4361-a85c-08dafb035b19 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 1uwWkhqF7WMZ+hde0wborr7JI+oCb2Z1CdbeOw/TXWL07g7x+GT4Mgrprn933SETUw5odqQ9kDhf0P9BhFu/Tx3poFOubnqTZbKwQM3ME+v9Idb9V3FwFlud8Udn8+p5IPJq60GC66c3eCKoaZTcviZeMpOUenJC6u8C67dJLLcGGioVZZ0/aXYo5nfAvf7elXmFeakM++5n8iUh3GWjphu1j0jV6lo0+6PedF5KXxW3VXPm5M/NNfWFA94hIyjLtPWri/9slSxSNEpFv8IdfKAiTnSW4txqydFxKmEpjIJO1yeqhWqSUTK4XXk4TleZw5OZDp3PziJu3KccbnQdPvtEQsm+5pkryOP2oaHEqggHWq+9wqxUVUg212D3DjP584OTnPTiZ8YvjKVG1xVIwiGGI6hWwfOK5Y2ANnXUXSjmOJaad+6PHh7KAaji/3+DWiDTYV1UBLpUzhcjaelNdpLQ8Ufh0qKHf1iZBk+tOn1vOHEc/CjYkTAY5zlzXKsXNF8o0eJfT+5KPyc61zPWDrrt/WJu8u9n1ZXX/V+bikcInSHGevHuVbmqw+tCJLM4FvNcHQ80YG0f7T8vLYGs3APO2UzJoZZ9x7RV/RD119wDhWlFNW153QBIgU1POS+Dt/4VQTpU542SS620+rv3VQ== 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)(396003)(376002)(136003)(366004)(39860400002)(451199015)(316002)(26005)(54906003)(41300700001)(2616005)(4326008)(66946007)(66476007)(66556008)(36756003)(83380400001)(86362001)(8676002)(38100700002)(6486002)(6666004)(107886003)(478600001)(6512007)(6506007)(1076003)(186003)(30864003)(2906002)(5660300002)(8936002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?1KAxVfboG3zjWgsUOWbqHrsLqySFiSTTcm28VCHONHp+7K3oPVNO5237MWmG?= =?us-ascii?Q?zh4A6FF/lE1kxP/Z8oE0A77sSYZULu8wKSeA2zqWLWsB8RFB029zQ6fmRbV8?= =?us-ascii?Q?QLUeae7HlVajHK4t+lgbJFAeyPN/9lijWLOiE8tMrjhbDhFufehFkcpJJ717?= =?us-ascii?Q?D1flk4QlUYN5wt+n+C3baUfa3tEHfcLTmLvoZPUpxlX1vAOKru8p6MPIRsK6?= =?us-ascii?Q?XLzCyr1f2LVbIYcF65IZjwtCkc/8BNw31hZC5+ZMaYRmz+42RP30PD/nqu+X?= =?us-ascii?Q?tBj5b3pGXJy/vKPT2mGDjF9w6sfdxMZNQCuYXtgyxtmNHQitS+lJq/RNpSbx?= =?us-ascii?Q?WHXXp5Vu/C5n89MphdMeaaXPoxIjU3FTalpb9dZZopfrt20ZOWMtjdcJN3J6?= =?us-ascii?Q?YYndp+AcKfN9YIHpq+cf+nh3PSkSFEOCH+xKJPapuxsVn+c+mECpf0ZArcWk?= =?us-ascii?Q?r2gpXMech3OSWvATH6hEiPweUheamyAF8cKxs4k7O3tYUyqTmwHf4KTYO+tl?= =?us-ascii?Q?+7twcldyKO/wqKBZIq5h1zY1epbjmtMIgoA4A9Z8bmaaE/8thUPcKiJjTCEX?= =?us-ascii?Q?0fP49vA1Nah45BgJhT8mQlIzVshSe9/CNawM2fHznS2UM95R5zBjMTh60xlw?= =?us-ascii?Q?KffpY58ARN6GPGWEbHVe2pY73Gq1uGzKFK22fAxnCsh44haavcXeyy1/YvI7?= =?us-ascii?Q?qcRSytpjYfGJmxsLI7gmq9i0ROaP4h98KzS0lT54EZjp1DbO00e6E4ZtZfn2?= =?us-ascii?Q?N5TKA/CLmEYhcxKtj3q20xn2Q65Ajx2/C8FtY+f9xmSQjFaT18v4Ld/nHavU?= =?us-ascii?Q?gSDXtV5WyzaS0PgluFLwCsBeK+uG0QlFLpNajax/JgauqPwWgWxKs645fXYp?= =?us-ascii?Q?+YmvPU4LWPonx+bYF7h2OpIM9pSJgWuxB9VHqkQj5Wn4t1q3FvPagcPmN6Nw?= =?us-ascii?Q?qvLmGrQpSSp2JJOWqPvGuXGM/TcTX9fIOaHgDS1HbPq0ondvQ0mtc8YGcH3O?= =?us-ascii?Q?Q8I0bdTBNC44W//yshlcEu4xog9LFmkHuesqRL0mNzASCvWWjhp/rAmIaECc?= =?us-ascii?Q?/+tUU2w2IjzipUEj9YpLOCymyNBwH/HROq4qkD1NHsWDK+sb9MXFxQgVGnL/?= =?us-ascii?Q?JuJs0ThozIS6hxkGkhYapsZWO9xqeQ6X3ErhFB1j+GxIrdtksOhqsHxi/uTH?= =?us-ascii?Q?k6zQyr/da5onJGJl1m/DrlgYwGsebO6xpkas+aN4wykKQGS4yBAi5eS8jG22?= =?us-ascii?Q?2hZTa/6NjvWJoBS3KF0clffOqSa/4u1xHcg4kzlJVbGe+6yQmZ30kFzYARIQ?= =?us-ascii?Q?WRFEGK2hKOtpAeA5kE5lk2o0C9YmHLnSyuVVub1gYrHwd+uc1lNP/EozbDpV?= =?us-ascii?Q?B5SXfBD5cXdB+9MawzvhRQZxNQ9yFf6A04c2vfeg0hTv4atakBBSWls4oQSG?= =?us-ascii?Q?VtJr+5GBPeJ+C0a590w7K6pxuJCwqqGf4wl/sOKd8T5Csp0vLBUTpra6Q1ah?= =?us-ascii?Q?AoWrAJWjfTwYQ6FFy+rRMpCQ8OQGKaGWzjIrp1++u/P2IcW3+DTKCeZbjGE1?= =?us-ascii?Q?/iv4Ps7LXz/f4u94r1ce5P+DihaN+qvCPLWujy622/8wIPmfAizdlPCLQao0?= =?us-ascii?Q?ug=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: vlI2tSpefzGdbgPNcjlHKax5KbMYHMLMB4BUfyywtbW2yCuG2ZjrLYUMIaWqcz7eQ9J/8FpnxdhBv9fs4ji0lqXKB61gXzrZYTwO+RGyMQuXlvPj5ylbayz33Jwhfbo1UGK+axumuOcAQ4PVdRUazXxgEApv3Y0kAln1KspLxLnLJNCvpIbHrL755xAkHa6Hq11/9mZuBwYhabaOUQW5HqpW5IzimyczxSwMUJJ19m6n7TibvSHwYt+VqTYFZwZgWb9aMuEorYitYQX/e9r/9OfpWnwZBCy6pFqF7OsdpyhrYtmCgHICMQfUBiI3MTcJDxPEbjXFVu45FeQs0b/fYVZ610BQuUt2jCr9Fi68ERjtj4zQ9VPFPW7suRWe9IulOlsKW/xEwLh70jef8f/RwwmILK7lXOipSnoCgABoA9/6bmcU5ptGTtQL714+CHDI5AeXcCzy2MnvSsdhB6YQ3xgKxQlSMpEj2NtSDalFWjjTMX9pzj4xq7OoBoSqre/8/4UXHX92uARaLHcuo999YhBBoi6t+Jn1Yx/sucUkd7uTtf84Eo6bIALCQkowHEbJjZpKB10P8vVfJwxQhTRtZ1HGOxxYyoLYSaHVHdm66PfPiVVZwQZ+U4i2gkoJ0Jr7JqRzyrPnj52KraKe7jhu0GZz9+HZs3/cWvyG/p2p3tVnJOCHfUBAjzsZoYOMjc2/yKFLv1v2r3bBVm52VkGMPqbpPJqRwNkMWPh2vLl7KDst3CnRHADswo9SYxYRsVEVLqSESYRrzum0drglLzDSjs6g3XfNoY+sjaJrzmmFHLN/+oiLDT35FjrqVv56MMX93OCmA7fqENqFaw7mE0OFyXXTWUA+2sZt8Kot8n8OWFNLMjfg0Fjps9B5uXC4nQUa6ugOkYNMUP8IVi0qkAsvDA== X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 06ff51d1-45ec-4361-a85c-08dafb035b19 X-MS-Exchange-CrossTenant-AuthSource: SN6PR10MB3022.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Jan 2023 16:28:26.5415 (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: J6WQVnw4Dtak4JZZBDueOENmsJlywE7AioXahPBWDID7JJoh+BscIvoT7j8qRqWZxG4k3qE+KJwiJbGUREy3Fg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN7PR10MB6381 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.219,Aquarius:18.0.930,Hydra:6.0.562,FMLib:17.11.122.1 definitions=2023-01-20_09,2023-01-20_01,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxscore=0 phishscore=0 spamscore=0 mlxlogscore=999 bulkscore=0 malwarescore=0 adultscore=0 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2212070000 definitions=main-2301200157 X-Proofpoint-GUID: 86XGrhlzZVOTgcz9arIHe8k5AO10CDoa X-Proofpoint-ORIG-GUID: 86XGrhlzZVOTgcz9arIHe8k5AO10CDoa Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" From: "Liam R. Howlett" Drop the vmi_* functions and transition all users to use the vma iterator directly. Signed-off-by: Liam R. Howlett --- fs/userfaultfd.c | 14 ++++---- include/linux/mm.h | 18 +++-------- mm/madvise.c | 6 ++-- mm/mempolicy.c | 6 ++-- mm/mlock.c | 6 ++-- mm/mmap.c | 79 +++++++++++++--------------------------------- mm/mprotect.c | 6 ++-- mm/mremap.c | 10 +++--- mm/nommu.c | 8 +++-- 9 files changed, 55 insertions(+), 98 deletions(-) diff --git a/fs/userfaultfd.c b/fs/userfaultfd.c index 4334bd35984d..f3c75c6222de 100644 --- a/fs/userfaultfd.c +++ b/fs/userfaultfd.c @@ -909,7 +909,7 @@ static int userfaultfd_release(struct inode *inode, str= uct file *file) continue; } new_flags =3D vma->vm_flags & ~__VM_UFFD_FLAGS; - prev =3D vmi_vma_merge(&vmi, mm, prev, vma->vm_start, vma->vm_end, + prev =3D vma_merge(&vmi, mm, prev, vma->vm_start, vma->vm_end, new_flags, vma->anon_vma, vma->vm_file, vma->vm_pgoff, vma_policy(vma), @@ -1452,7 +1452,7 @@ static int userfaultfd_register(struct userfaultfd_ct= x *ctx, vma_end =3D min(end, vma->vm_end); =20 new_flags =3D (vma->vm_flags & ~__VM_UFFD_FLAGS) | vm_flags; - prev =3D vmi_vma_merge(&vmi, mm, prev, start, vma_end, new_flags, + prev =3D vma_merge(&vmi, mm, prev, start, vma_end, new_flags, vma->anon_vma, vma->vm_file, vma->vm_pgoff, vma_policy(vma), ((struct vm_userfaultfd_ctx){ ctx }), @@ -1463,12 +1463,12 @@ static int userfaultfd_register(struct userfaultfd_= ctx *ctx, goto next; } if (vma->vm_start < start) { - ret =3D vmi_split_vma(&vmi, mm, vma, start, 1); + ret =3D split_vma(&vmi, vma, start, 1); if (ret) break; } if (vma->vm_end > end) { - ret =3D vmi_split_vma(&vmi, mm, vma, end, 0); + ret =3D split_vma(&vmi, vma, end, 0); if (ret) break; } @@ -1632,7 +1632,7 @@ static int userfaultfd_unregister(struct userfaultfd_= ctx *ctx, uffd_wp_range(mm, vma, start, vma_end - start, false); =20 new_flags =3D vma->vm_flags & ~__VM_UFFD_FLAGS; - prev =3D vmi_vma_merge(&vmi, mm, prev, start, vma_end, new_flags, + prev =3D vma_merge(&vmi, mm, prev, start, vma_end, new_flags, vma->anon_vma, vma->vm_file, vma->vm_pgoff, vma_policy(vma), NULL_VM_UFFD_CTX, anon_vma_name(vma)); @@ -1641,12 +1641,12 @@ static int userfaultfd_unregister(struct userfaultf= d_ctx *ctx, goto next; } if (vma->vm_start < start) { - ret =3D vmi_split_vma(&vmi, mm, vma, start, 1); + ret =3D split_vma(&vmi, vma, start, 1); if (ret) break; } if (vma->vm_end > end) { - ret =3D vmi_split_vma(&vmi, mm, vma, end, 0); + ret =3D split_vma(&vmi, vma, end, 0); if (ret) break; } diff --git a/include/linux/mm.h b/include/linux/mm.h index bd0017ab13f3..9f519c6ea006 100644 --- a/include/linux/mm.h +++ b/include/linux/mm.h @@ -2839,24 +2839,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 4d4471916465..02b317726c9a 100644 --- a/mm/madvise.c +++ b/mm/madvise.c @@ -150,7 +150,7 @@ static int madvise_update_vma(struct vm_area_struct *vm= a, } =20 pgoff =3D vma->vm_pgoff + ((start - vma->vm_start) >> PAGE_SHIFT); - *prev =3D vmi_vma_merge(&vmi, mm, *prev, start, end, new_flags, + *prev =3D vma_merge(&vmi, mm, *prev, start, end, new_flags, vma->anon_vma, vma->vm_file, pgoff, vma_policy(vma), vma->vm_userfaultfd_ctx, anon_name); if (*prev) { @@ -163,7 +163,7 @@ static int madvise_update_vma(struct vm_area_struct *vm= a, if (start !=3D vma->vm_start) { if (unlikely(mm->map_count >=3D sysctl_max_map_count)) return -ENOMEM; - error =3D vmi__split_vma(&vmi, mm, vma, start, 1); + error =3D __split_vma(&vmi, vma, start, 1); if (error) return error; } @@ -171,7 +171,7 @@ static int madvise_update_vma(struct vm_area_struct *vm= a, if (end !=3D vma->vm_end) { if (unlikely(mm->map_count >=3D sysctl_max_map_count)) return -ENOMEM; - error =3D vmi__split_vma(&vmi, mm, vma, end, 0); + error =3D __split_vma(&vmi, vma, end, 0); if (error) return error; } diff --git a/mm/mempolicy.c b/mm/mempolicy.c index f5201285c628..195dcf83dc41 100644 --- a/mm/mempolicy.c +++ b/mm/mempolicy.c @@ -809,7 +809,7 @@ static int mbind_range(struct mm_struct *mm, unsigned l= ong start, =20 pgoff =3D vma->vm_pgoff + ((vmstart - vma->vm_start) >> PAGE_SHIFT); - prev =3D vmi_vma_merge(&vmi, mm, prev, vmstart, vmend, vma->vm_flags, + prev =3D vma_merge(&vmi, mm, prev, vmstart, vmend, vma->vm_flags, vma->anon_vma, vma->vm_file, pgoff, new_pol, vma->vm_userfaultfd_ctx, anon_vma_name(vma)); @@ -818,12 +818,12 @@ static int mbind_range(struct mm_struct *mm, unsigned= long start, goto replace; } if (vma->vm_start !=3D vmstart) { - err =3D vmi_split_vma(&vmi, vma->vm_mm, vma, vmstart, 1); + err =3D split_vma(&vmi, vma, vmstart, 1); if (err) goto out; } if (vma->vm_end !=3D vmend) { - err =3D vmi_split_vma(&vmi, vma->vm_mm, vma, vmend, 0); + err =3D split_vma(&vmi, vma, vmend, 0); if (err) goto out; } diff --git a/mm/mlock.c b/mm/mlock.c index 0d09b9070071..0336f52e03d7 100644 --- a/mm/mlock.c +++ b/mm/mlock.c @@ -418,7 +418,7 @@ static int mlock_fixup(struct vma_iterator *vmi, struct= vm_area_struct *vma, goto out; =20 pgoff =3D vma->vm_pgoff + ((start - vma->vm_start) >> PAGE_SHIFT); - *prev =3D vmi_vma_merge(vmi, mm, *prev, start, end, newflags, + *prev =3D vma_merge(vmi, mm, *prev, start, end, newflags, vma->anon_vma, vma->vm_file, pgoff, vma_policy(vma), vma->vm_userfaultfd_ctx, anon_vma_name(vma)); if (*prev) { @@ -427,13 +427,13 @@ static int mlock_fixup(struct vma_iterator *vmi, stru= ct vm_area_struct *vma, } =20 if (start !=3D vma->vm_start) { - ret =3D vmi_split_vma(vmi, mm, vma, start, 1); + ret =3D split_vma(vmi, vma, start, 1); if (ret) goto out; } =20 if (end !=3D vma->vm_end) { - ret =3D vmi_split_vma(vmi, mm, vma, end, 0); + ret =3D split_vma(vmi, vma, end, 0); if (ret) goto out; } diff --git a/mm/mmap.c b/mm/mmap.c index 0696bf9e1085..4a5d5c9a8dc6 100644 --- a/mm/mmap.c +++ b/mm/mmap.c @@ -1013,7 +1013,7 @@ can_vma_merge_after(struct vm_area_struct *vma, unsig= ned long vm_flags, * parameter) may establish ptes with the wrong permissions of NNNN * instead of the right permissions of XXXX. */ -struct vm_area_struct *vma_merge(struct mm_struct *mm, +struct vm_area_struct *vma_merge(struct vma_iterator *vmi, struct mm_struc= t *mm, struct vm_area_struct *prev, unsigned long addr, unsigned long end, unsigned long vm_flags, struct anon_vma *anon_vma, struct file *file, @@ -1022,7 +1022,7 @@ struct vm_area_struct *vma_merge(struct mm_struct *mm, struct anon_vma_name *anon_name) { pgoff_t pglen =3D (end - addr) >> PAGE_SHIFT; - struct vm_area_struct *mid, *next, *res; + struct vm_area_struct *mid, *next, *res =3D NULL; int err =3D -1; bool merge_prev =3D false; bool merge_next =3D false; @@ -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; -} =20 -struct vm_area_struct *vmi_vma_merge(struct vma_iterator *vmi, - struct mm_struct *mm, - struct vm_area_struct *prev, unsigned long addr, - unsigned long end, unsigned long vm_flags, - struct anon_vma *anon_vma, struct file *file, - pgoff_t pgoff, struct mempolicy *policy, - struct vm_userfaultfd_ctx vm_userfaultfd_ctx, - struct anon_vma_name *anon_name) -{ - struct vm_area_struct *tmp; - - tmp =3D vma_merge(mm, prev, addr, end, vm_flags, anon_vma, file, pgoff, - policy, vm_userfaultfd_ctx, anon_name); - if (tmp) + if (res) vma_iter_set(vmi, end); =20 - return tmp; + return res; } =20 /* @@ -2231,12 +2216,14 @@ static void unmap_region(struct mm_struct *mm, stru= ct maple_tree *mt, * __split_vma() bypasses sysctl_max_map_count checking. We use this wher= e it * has already been checked or doesn't make sense to fail. */ -int __split_vma(struct mm_struct *mm, struct vm_area_struct *vma, +int __split_vma(struct vma_iterator *vmi, struct vm_area_struct *vma, unsigned long addr, int new_below) { struct vm_area_struct *new; int err; - validate_mm_mt(mm); + unsigned long end =3D vma->vm_end; + + validate_mm_mt(vma->vm_mm); =20 if (vma->vm_ops && vma->vm_ops->may_split) { err =3D vma->vm_ops->may_split(vma, addr); @@ -2276,8 +2263,10 @@ int __split_vma(struct mm_struct *mm, struct vm_area= _struct *vma, err =3D vma_adjust(vma, vma->vm_start, addr, vma->vm_pgoff, new); =20 /* Success. */ - if (!err) + if (!err) { + vma_iter_set(vmi, end); return 0; + } =20 /* Avoid vm accounting in close() operation */ new->vm_start =3D new->vm_end; @@ -2292,46 +2281,21 @@ int __split_vma(struct mm_struct *mm, struct vm_are= a_struct *vma, mpol_put(vma_policy(new)); out_free_vma: vm_area_free(new); - validate_mm_mt(mm); + validate_mm_mt(vma->vm_mm); return err; } -int vmi__split_vma(struct vma_iterator *vmi, struct mm_struct *mm, - struct vm_area_struct *vma, unsigned long addr, int new_below) -{ - int ret; - unsigned long end =3D vma->vm_end; - - ret =3D __split_vma(mm, vma, addr, new_below); - if (!ret) - vma_iter_set(vmi, end); - - return ret; -} =20 /* * Split a vma into two pieces at address 'addr', a new vma is allocated * either for the first part or the tail. */ -int split_vma(struct mm_struct *mm, struct vm_area_struct *vma, +int split_vma(struct vma_iterator *vmi, struct vm_area_struct *vma, unsigned long addr, int new_below) { - if (mm->map_count >=3D sysctl_max_map_count) + if (vma->vm_mm->map_count >=3D sysctl_max_map_count) return -ENOMEM; =20 - return __split_vma(mm, vma, addr, new_below); -} - -int vmi_split_vma(struct vma_iterator *vmi, struct mm_struct *mm, - struct vm_area_struct *vma, unsigned long addr, int new_below) -{ - int ret; - unsigned long end =3D vma->vm_end; - - ret =3D split_vma(mm, vma, addr, new_below); - if (!ret) - vma_iter_set(vmi, end); - - return ret; + return __split_vma(vmi, vma, addr, new_below); } =20 static inline int munmap_sidetree(struct vm_area_struct *vma, @@ -2391,7 +2355,7 @@ do_vmi_align_munmap(struct vma_iterator *vmi, struct = vm_area_struct *vma, if (end < vma->vm_end && mm->map_count >=3D sysctl_max_map_count) goto map_count_exceeded; =20 - error =3D vmi__split_vma(vmi, mm, vma, start, 0); + error =3D __split_vma(vmi, vma, start, 0); if (error) goto start_split_failed; =20 @@ -2412,7 +2376,7 @@ do_vmi_align_munmap(struct vma_iterator *vmi, struct = vm_area_struct *vma, if (next->vm_end > end) { struct vm_area_struct *split; =20 - error =3D vmi__split_vma(vmi, mm, next, end, 1); + error =3D __split_vma(vmi, next, end, 1); if (error) goto end_split_failed; =20 @@ -2693,9 +2657,10 @@ unsigned long mmap_region(struct file *file, unsigne= d long addr, * vma again as we may succeed this time. */ if (unlikely(vm_flags !=3D vma->vm_flags && prev)) { - merge =3D vmi_vma_merge(&vmi, mm, prev, vma->vm_start, - vma->vm_end, vma->vm_flags, NULL, vma->vm_file, - vma->vm_pgoff, NULL, NULL_VM_UFFD_CTX, NULL); + merge =3D vma_merge(&vmi, mm, prev, vma->vm_start, + vma->vm_end, vma->vm_flags, NULL, + vma->vm_file, vma->vm_pgoff, NULL, + NULL_VM_UFFD_CTX, NULL); if (merge) { /* * ->mmap() can change vma->vm_file and fput @@ -3241,7 +3206,7 @@ struct vm_area_struct *copy_vma(struct vm_area_struct= **vmap, if (new_vma && new_vma->vm_start < addr + len) return NULL; /* should never get here */ =20 - new_vma =3D vmi_vma_merge(&vmi, mm, prev, addr, addr + len, vma->vm_flags, + new_vma =3D vma_merge(&vmi, mm, prev, addr, addr + len, vma->vm_flags, vma->anon_vma, vma->vm_file, pgoff, vma_policy(vma), vma->vm_userfaultfd_ctx, anon_vma_name(vma)); if (new_vma) { diff --git a/mm/mprotect.c b/mm/mprotect.c index 42ceb0548754..c417f7d5d0e3 100644 --- a/mm/mprotect.c +++ b/mm/mprotect.c @@ -642,7 +642,7 @@ mprotect_fixup(struct vma_iterator *vmi, struct mmu_gat= her *tlb, * First try to merge with previous and/or next vma. */ pgoff =3D vma->vm_pgoff + ((start - vma->vm_start) >> PAGE_SHIFT); - *pprev =3D vmi_vma_merge(vmi, mm, *pprev, start, end, newflags, + *pprev =3D vma_merge(vmi, mm, *pprev, start, end, newflags, vma->anon_vma, vma->vm_file, pgoff, vma_policy(vma), vma->vm_userfaultfd_ctx, anon_vma_name(vma)); if (*pprev) { @@ -654,13 +654,13 @@ mprotect_fixup(struct vma_iterator *vmi, struct mmu_g= ather *tlb, *pprev =3D vma; =20 if (start !=3D vma->vm_start) { - error =3D vmi_split_vma(vmi, mm, vma, start, 1); + error =3D split_vma(vmi, vma, start, 1); if (error) goto fail; } =20 if (end !=3D vma->vm_end) { - error =3D vmi_split_vma(vmi, mm, vma, end, 0); + error =3D split_vma(vmi, vma, end, 0); if (error) goto fail; } diff --git a/mm/mremap.c b/mm/mremap.c index f161516ab3c1..71ba8eddd836 100644 --- a/mm/mremap.c +++ b/mm/mremap.c @@ -1043,12 +1043,10 @@ SYSCALL_DEFINE5(mremap, unsigned long, addr, unsign= ed long, old_len, * when a vma would be actually removed due to a merge. */ if (!vma->vm_ops || !vma->vm_ops->close) { - vma =3D vmi_vma_merge(&vmi, mm, vma, - extension_start, extension_end, - vma->vm_flags, vma->anon_vma, - vma->vm_file, extension_pgoff, - vma_policy(vma), vma->vm_userfaultfd_ctx, - anon_vma_name(vma)); + vma =3D vma_merge(&vmi, mm, vma, extension_start, + extension_end, vma->vm_flags, vma->anon_vma, + vma->vm_file, extension_pgoff, vma_policy(vma), + vma->vm_userfaultfd_ctx, anon_vma_name(vma)); } else if (vma_adjust(vma, vma->vm_start, addr + new_len, vma->vm_pgoff, NULL)) { vma =3D NULL; diff --git a/mm/nommu.c b/mm/nommu.c index 9ddeb92600d6..9a166738909e 100644 --- a/mm/nommu.c +++ b/mm/nommu.c @@ -1297,18 +1297,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 e= ither * 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; =20 /* we're only permitted to split anonymous regions (these should have * only a single usage on the region) */ if (vma->vm_file) return -ENOMEM; =20 + mm =3D vma->vm_mm; if (mm->map_count >=3D sysctl_max_map_count) return -ENOMEM; =20 @@ -1465,7 +1467,7 @@ int do_munmap(struct mm_struct *mm, unsigned long sta= rt, size_t len, struct list if (end !=3D vma->vm_end && offset_in_page(end)) return -EINVAL; if (start !=3D vma->vm_start && end !=3D vma->vm_end) { - ret =3D vmi_split_vma(&vmi, mm, vma, start, 1); + ret =3D split_vma(&vmi, vma, start, 1); if (ret < 0) return ret; } --=20 2.35.1 From nobody Sun Sep 14 14:22:07 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 57F5DC05027 for ; Fri, 20 Jan 2023 17:38:40 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230096AbjATRii (ORCPT ); Fri, 20 Jan 2023 12:38:38 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:55860 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229898AbjATRif (ORCPT ); Fri, 20 Jan 2023 12:38:35 -0500 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id BACFBDBC3 for ; Fri, 20 Jan 2023 09:38:33 -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 30KGE8WH024790; Fri, 20 Jan 2023 16:28:33 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-2022-7-12; bh=qW75i3gO1AL14UINgLGt4T1VtHbdI7RuZfXcZaqf/6M=; b=f9mnLy4rRcTz+4uh+LkpFJ+/CpKiD1bt35MaKJZLYdHyikF+ZwdpgOirBuAOr25m8KCc 0veAfghFkv4Q8yf0ow2lyIjg07egJ6auEft9PWdKfSUGxpPuV+8fThRVcyOKT5iYM18A mHSzSwZyc/0ninp+mWGMAp7jKF7ZMyPkmJ3Y9JZeE1IFB7ht5aIGjaA11nBe3sJr6Lgr sRGQk+/s8AIkbkkNdpMliN2thaFRFx14py313bsHTyjVYTH4huvAzxVG3s+4MIm2qvL3 lWNJI+hJAvo6A8OI5n2GGAWWMKTIw7RI3VnxbykuduUKiK+bAbwZHyP+A6LaXMAiEwZY /Q== Received: from iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta01.appoci.oracle.com [130.35.100.223]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3n3k0154dq-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 20 Jan 2023 16:28:33 +0000 Received: from pps.filterd (iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (8.17.1.5/8.17.1.5) with ESMTP id 30KGNOdL004659; Fri, 20 Jan 2023 16:28:31 GMT Received: from nam11-co1-obe.outbound.protection.outlook.com (mail-co1nam11lp2171.outbound.protection.outlook.com [104.47.56.171]) by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 3n6r2w1gdp-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 20 Jan 2023 16:28:31 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=aoHB894K4QwahExrL9iFn/9eKZrnHDE+/fOXzCRIcuCpXB4jLhw6KfMkzkTk6yc5AUIZzD2uP5MFzRhvvYhFDB2Ta6dsYgfnqiK5oZ1FM+OvZVhoUvbUGFoOZsX+rdtGkuJURW/El9Ypaux217gmfHds1tx8Ypj8bLStveWTmof4qezgKljHfdqWpFnf/LiMj1ROlEmB3dXXeWAbuABSXbng44CPtQ8UClR75GMsQtD6+gXiak5LB+4wyW1/8piq4Y5IgO1baooyYMKOmNX1AijbdLOpMzVDx/lWr5UgC9cciFOzyFlnAwVUkPsaqQoEJ+mQZHSJmLU3z8kxxR9wwQ== 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=qW75i3gO1AL14UINgLGt4T1VtHbdI7RuZfXcZaqf/6M=; b=W5pLIscdgARAuh9SflbpSd26a2RwWRopbOgSWQqW2sKER6Aq0deGXrpslfB9b+NkKEMpYE1M1c/qWQch14mAWMHSiFT9YksXBGZ8gNavW8A8DSTIz6ImoftPCbcibrmZfu5c7+wl10vmfAhtoaL4gbgA7NmDI3APuQIctEAwDeFSiTvXWh924GoINrB6vcSoCso8JBu4RSXRbKcTqumuScnTsUpVj/MGT7sHZCy6w5hQLVDVeh9JQL/2n+RDAKIZwTHBs2c5Yt8ORK16pI7U47WS3cae2pPSiVwrDrw8QhbcHGZXc4PR5BE35qeo7UVneXkFpRRb7PLcDtCgwRRnTQ== 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=qW75i3gO1AL14UINgLGt4T1VtHbdI7RuZfXcZaqf/6M=; b=V/BOAPYlhXC9ALADKfkh+2HBSPWAYnLzHXNbBWz10fHvnlR8NCzIhMuehFjs29vpg9gMWhLD0SVBiA901jG8Nl9EY1mPN6FKZbnjPE6FoMDF/wR6se/7ZIvtQnuLuDGOVeMDqkEccOXEBc5ZFb/Rp3iyOYLMbOH/dmOBiJ/1K8A= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by SN7PR10MB6381.namprd10.prod.outlook.com (2603:10b6:806:26f::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6043.5; Fri, 20 Jan 2023 16:28:28 +0000 Received: from SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::7306:828b:8091:9674]) by SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::7306:828b:8091:9674%5]) with mapi id 15.20.6043.005; Fri, 20 Jan 2023 16:28:28 +0000 From: "Liam R. Howlett" To: linux-mm@kvack.org, linux-kernel@vger.kernel.org, Andrew Morton , maple-tree@lists.infradead.org Cc: "Liam R. Howlett" , SeongJae Park , damon@lists.linux.dev, kernel test robot Subject: [PATCH v4 30/49] mm/damon/vaddr-test.h: Stop using vma_mas_store() for maple tree store Date: Fri, 20 Jan 2023 11:26:31 -0500 Message-Id: <20230120162650.984577-31-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.35.1 In-Reply-To: <20230120162650.984577-1-Liam.Howlett@oracle.com> References: <20230120162650.984577-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YT4PR01CA0119.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:d7::13) To SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SN6PR10MB3022:EE_|SN7PR10MB6381:EE_ X-MS-Office365-Filtering-Correlation-Id: 34bda718-6598-40ef-7881-08dafb035cd7 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: zwKra2zfAXJb4JvdeIH4n81uQ+2dNekujHQUHayVH9UUAS6g7pWbN5WjOf0zYZHd+Wm+yLmZK/SNBY6DgKMJZ3V+T1DI4GoU/J2YSTe+EndRsUg5xkWVAYelHZnRyuRwQ00MZAsl8UgbWRiQPpOx36p29ZqktoDwN+36Iu+lwNBIyyK34sFf1xTfcD9IM4gtSfSwfNAxUEEH4vKRpRLPbXV1/DSJVQj3kWOWMV5wOLYWORD6959A+gVr6nAGJeaDIlH/VwPTxtj+xnYy8WnFMYppVYtPufGHRUMYZo7sUHcHEk5SXt1XjO1QVicfhVpr8dqAAqzzJdsBTicTNLYfShVueEC5eQAUTwTKywf2XzU+Zh7Z+iJge4mafc99DSZoaJTdP7/bQSLjDLlsYfOPxB1dmZ5fKYm+3TUx2LaEHD17qRdRs4W9qsgMHSPUGCOJAheJ3tsxMElIJgTjSa7QP9RNproIAI2t3xuJM50AnyjjPeMlLpFWXKv4xkql1Ughxe7NIcNyl4TEi8WBBLL+xcQ8bBJEh8t+3g6Cqfw/cbJvwJVU/kYxjOFm/hz2hDpQwxVSIfZ2dL7vHGMC8BPwXebhvGc2usYT2PUUI6a6xS6brTYeSPkWUgSftSZ/aXVQs0AOU/pVOtEGDQtyaQLa9g== 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)(396003)(376002)(136003)(366004)(39860400002)(451199015)(316002)(26005)(54906003)(41300700001)(2616005)(4326008)(66946007)(66476007)(66556008)(36756003)(83380400001)(86362001)(8676002)(38100700002)(6486002)(6666004)(478600001)(6512007)(6506007)(1076003)(186003)(2906002)(5660300002)(8936002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?u2sk2EKZ9Uo93vIfZlqHwOyIhKOrHa2I0hjbfU813rtkWt0GfMX505WOCilx?= =?us-ascii?Q?1xbtaHLA9gwam5FwnOKPkwfSOhUpqm88ml/fCXpW9+XYHfnnZxtNTaFjcONV?= =?us-ascii?Q?hZGpXx4fA1+7dgdQl9IvpOOnoCs6yLnaaPPrVbNRnMsdg5N8FAdAQ+hUE0a1?= =?us-ascii?Q?CaNy5gdUr2aXwhLzqH4iQcS4KN94S0XmOGRFsGu0zM3XCRx+EWSLAyn50MqE?= =?us-ascii?Q?irGdVHQ7quW4QoCbjaREYY+fxJiRBSIUz16SWb7o1qesvLyROzzLNEg7n7NR?= =?us-ascii?Q?MGceJ69/ZbxkrS9BUdAB5MrAm6kpYjMUOoWHVLczYvQUq3M2A2ARIJ4l9d7D?= =?us-ascii?Q?OaBm7PN5AgeWHIN2hHmf+xpf2/qTnSACk4WdYJoFaX3L+SlWER1QPKama9Sy?= =?us-ascii?Q?UWXf9bel3qPOOYT12eYsPiyHao/s72qAlb5SWWgNl1sVSI92KKYsc3MTdSjx?= =?us-ascii?Q?Q5VHj/6naVxmShDDDrNUQ8mwZuV9Ld7cEDftF36pBEdZLvJ205nbK2cicJb8?= =?us-ascii?Q?C79xIJYbJ7pHvLbJq4SOiV1Wl1gvVNcPeZzLs9wadBfT72+TdTrOkJWDkfCb?= =?us-ascii?Q?I20RR2nbBm3WsFPW5GfzeXCm3fQ/ASNhgOd5K9xRrQgbylqKAsxhtVjWVbA5?= =?us-ascii?Q?QtAIq/bssz4DIlWfK61nb+oIZ+u2klG2MEmUyk+bXXeczEEOYbWJEy+9xWa+?= =?us-ascii?Q?sLgTSDr2dQD/qzn3QNvRv1EaqlTc9gV0oKEJF0EWHByY6yvgfJGRyTcrV4ak?= =?us-ascii?Q?vvjP4RqZpAOCfYXMaZ4ateeS60sXfRcRXGIqFvh0k15Aq7aQgQqm8AGvt7Ge?= =?us-ascii?Q?axsoOG6Z6YlsHY0jci01gHliAjwPz9A4GoRen5JKC8JdkBFcxzCUHNwF1BWr?= =?us-ascii?Q?GMQXS4T0dPJE2I8ArNKKFSfKEhgq65XNkepSB1bsyxgVIFXCG2S90qSS0yXA?= =?us-ascii?Q?3m1AgnE95KrKg+XCV2pAMBhpBWL3Hi+PwoyMx7gVJ2R/w8fj71RosqGMm9Py?= =?us-ascii?Q?6GwqSEge7JaCQF99qy76R/L/EPsfXul/jnaHK8bdBe9iwpqUBJpePLzBP9L5?= =?us-ascii?Q?hbOLVvokRG2hTLGZUPOb6rUhQWQybOZKmIPuji5fP0iAlw6sxKmxD4zLRuNO?= =?us-ascii?Q?1sbxoB6Q1NuwHywM+ZnZt05SOZ+10CnSGyUijJS2lavGzYpHLpXPKYlwblqA?= =?us-ascii?Q?g/RVpWk6tAqIsZNi9aXa4yBNVPeUUX7YBFWbgUjMhwFOL3GFuKog+Hwu4guh?= =?us-ascii?Q?IkgMK7wxW5WRz9nCXc1ImYQVG9umKT2UW+67TXsg4jAU0zLgLwJelHQaTAwN?= =?us-ascii?Q?bzBtznbTik55u+5sDl58yEIkDxxQFM8H2YOBNUwr6bHTBcvIfJGhN9O/arSH?= =?us-ascii?Q?rowFi8h9ikRh9jqbhoE2fG7xTR1zguWxblFm2dy7xyXjkWJEYnucDWesm8Ar?= =?us-ascii?Q?wWY9ZAcvouQ6eJT2nYzmahHvCSull4xqe8BnYD4BM0gLJIZcTIKJKpTUSoLs?= =?us-ascii?Q?1aJYzbq8+A9GjBz94l25Dd23hySl6xlqkaKKuZpp6oRUpAIIf4y06H9ybZzi?= =?us-ascii?Q?hONpSGEvMR0NjmDOObPjQmAdnEn5QYgMyUyFRydJR1nLv3Qx8cnnJMhDfg/n?= =?us-ascii?Q?GA=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: =?us-ascii?Q?0il650yBtD7VVECLXg6/RPXCWH4u7w/zlhXfyeUtN+3K2SiWEo13YsMIiPRb?= =?us-ascii?Q?+f9NYENy/fqRIbGJiSZqUe+xNIQz1hgLssLCHg+BUKXctaiciDlI/qvAbeO0?= =?us-ascii?Q?udNrcEQBO/vbsXC8CzgoxsTCzi4auY/pBHaqKM6KUBIN7a/3P2Z03Yff/OGF?= =?us-ascii?Q?nWj0YKIoxHQCP7R83EurJ4cxnpfj96CW57xBxsV5ZLpXZxBbtuG1jCk3rMWO?= =?us-ascii?Q?8IYRlA/n8d9/AuYjRv4yXbRox5+4EFDgcyI1WfBltHm3gmtYMM7/wrYv8mtw?= =?us-ascii?Q?kOaKZoXovbWiz/O2Jte6wBat/E592g3Thg5UQM24UBH2wayS1oXIj5IByWTt?= =?us-ascii?Q?dqB9xvTbIFTvCeUwDV9by4p1DB8VpS0Bkuw5QQa0D0Fy0zwTP6VoOFMAYaqm?= =?us-ascii?Q?CTeQeXvcqEtdQHCByEzVHlSh1/VuqQpZSsbtoQxj5wGCZLwr32pfAph4joQ2?= =?us-ascii?Q?vXFPuPE3SFfeI3ETpU4KjoQInRgk2EHGGBQZgzUqO6gHNcFEF7CVUMSwfh0L?= =?us-ascii?Q?7QXuP2VVT8iEViDNT41unifsF+7FmtbTTxtAeARlECp01kjxyei43an9nb/O?= =?us-ascii?Q?LnsSHmKxcsXoUJdtw3xPpmGRx048/eU8+WB0NN4j9SBh5jceReX/ltWGmc+D?= =?us-ascii?Q?A9HlpQYzrac2909P82vCuMgCjqPx0Tll3UFJRpo69AbAjmimjmh1RMY1Vud8?= =?us-ascii?Q?sn/BQSo95/OlRP7wioYkfdezP15YvH4SnU/whlFWXX8LmosWglmCG4FDA4RJ?= =?us-ascii?Q?Wj/svlD/MVX4FKlmOFmNy9SNwNGcXhNU4VBxhmCLZGk+jJ6r1AkeS74ThYtf?= =?us-ascii?Q?TvER8zoxh/HWQlK+mwG/42QW9ii+nyq1+oj49jSYO3U9iMCrE34tTdOrw2zG?= =?us-ascii?Q?0ACkzpud0ViWDP38V/whFqIvUwJNBMCLAJkpOiGxQfCCkiKTWNMEaS+3eod8?= =?us-ascii?Q?7f/hpS1+4dW6Yu8Ewj8/eENz0lKIvdmezuXg4rB1HGTsr3WBXV11GPIZmv8S?= =?us-ascii?Q?kUHN?= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 34bda718-6598-40ef-7881-08dafb035cd7 X-MS-Exchange-CrossTenant-AuthSource: SN6PR10MB3022.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Jan 2023 16:28:28.8538 (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: h89grnbE46+VW71RpZPRbqCV5YJIAc4hSn8lr3we6MpLoX0/ospOqrEjh8RIKg6opAJuvfFddVqqEvFP5IME8w== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN7PR10MB6381 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.219,Aquarius:18.0.930,Hydra:6.0.562,FMLib:17.11.122.1 definitions=2023-01-20_09,2023-01-20_01,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 adultscore=0 mlxlogscore=999 malwarescore=0 mlxscore=0 phishscore=0 suspectscore=0 spamscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2212070000 definitions=main-2301200157 X-Proofpoint-GUID: Yir3eKu-FTDfnr3b3AGrDtg0yo9fEHvR X-Proofpoint-ORIG-GUID: Yir3eKu-FTDfnr3b3AGrDtg0yo9fEHvR Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" Prepare for the removal of the vma_mas_store() function by open coding the maple tree store in this test code. Set the range of the maple state and call the store function directly. Cc: SeongJae Park Cc: damon@lists.linux.dev Reported-by: kernel test robot Signed-off-by: Liam R. Howlett Reviewed-by: SeongJae Park --- mm/damon/vaddr-test.h | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/mm/damon/vaddr-test.h b/mm/damon/vaddr-test.h index bce37c487540..c4b455b5ee30 100644 --- a/mm/damon/vaddr-test.h +++ b/mm/damon/vaddr-test.h @@ -14,19 +14,26 @@ =20 #include =20 -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 =3D -ENOMEM; MA_STATE(mas, mt, 0, 0); =20 if (!nr_vmas) - return; + return 0; =20 mas_lock(&mas); - for (i =3D 0; i < nr_vmas; i++) - vma_mas_store(&vmas[i], &mas); + for (i =3D 0; i < nr_vmas; i++) { + mas_set_range(&mas, vmas[i].vm_start, vmas[i].vm_end - 1); + if (mas_store_gfp(&mas, &vmas[i], GFP_KERNEL)) + goto failed; + } + + ret =3D 0; +failed: mas_unlock(&mas); + return ret; } =20 /* @@ -71,7 +78,8 @@ static void damon_test_three_regions_in_vmas(struct kunit= *test) }; =20 mt_init_flags(&mm.mm_mt, MM_MT_FLAGS); - __link_vmas(&mm.mm_mt, vmas, ARRAY_SIZE(vmas)); + if (__link_vmas(&mm.mm_mt, vmas, ARRAY_SIZE(vmas))) + kunit_skip(test, "Failed to create VMA tree"); =20 __damon_va_three_regions(&mm, regions); =20 --=20 2.35.1 From nobody Sun Sep 14 14:22:07 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 A184FC05027 for ; Fri, 20 Jan 2023 16:30:38 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230230AbjATQah (ORCPT ); Fri, 20 Jan 2023 11:30:37 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:37054 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229706AbjATQaa (ORCPT ); Fri, 20 Jan 2023 11:30:30 -0500 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 1A05D40C6 for ; Fri, 20 Jan 2023 08:29:58 -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 30KGDjgB014997; Fri, 20 Jan 2023 16:28:34 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-2022-7-12; bh=cnTBz+bBZ4OTmUg/Q/etSwIKDALuXQlZedjFF6uE7lQ=; b=sZW9qtbydKnUKi8p4YseADpJyw1wbu87HQNXXl7I6sXRYr+O7anTe16QbdEj9ujUyZ7Z xEzS1QtBHB0JXtG9GZrgZUUeH+cQXJPaNlEyf2ubKN7C9OnBFi+3gz4U907WHUJXOkJn CXKmtDoMLPyFYwReYuHE0VWFSX31RQwmy/pOoEICibA3qihlyqNtNM2PFJElGQku0Hub PpjTcE9dwG4sgcV5iykZFiUA0TmG4/dc0/erI4UWKSAvloId1xIhqtj/VAtuNPPFCzW6 uU6COH/UCOpYmfTRXMTYk/lrpYzs5/VIcAI5qLtX02QPn2W9KaF9Gjg16y9XjDQ49xF7 tA== Received: from phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta02.appoci.oracle.com [147.154.114.232]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3n3mxtd243-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 20 Jan 2023 16:28:34 +0000 Received: from pps.filterd (phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (8.17.1.5/8.17.1.5) with ESMTP id 30KFGYBd000868; Fri, 20 Jan 2023 16:28:33 GMT Received: from nam11-co1-obe.outbound.protection.outlook.com (mail-co1nam11lp2171.outbound.protection.outlook.com [104.47.56.171]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 3n74d2sw98-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 20 Jan 2023 16:28:33 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ek2XftSC9we/0Oc19JEx5Xc0+H38GyzHt5D9O8QQkyGvb6BDeNTLtajPuwTRz2UsiNvaf0OZayrXvCItVwA8/TvwvndVYVwRkpA1vEh5D00CeZHxkCRxuKQ6M2KsVsWH/GRSc+miMsN2GsrSNkB8QnFEC5p1t/0X5fW7e60VgX8AMFIjtB/VAyZDpaa55qtXGNCXo1IyDHt4tHes8FKlWgx4EgXP1hO8F6YrL7M3bCmszSqZFuevOXusz2BQKVdzJkmxoKb8KoFMhdIPrtzFdV4JN41K1ojjNQ9IkTLZoovRwXU9OIWSgg3evN26ZtrmADjeNMyOGg5c89URw3DKlw== 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=cnTBz+bBZ4OTmUg/Q/etSwIKDALuXQlZedjFF6uE7lQ=; b=nnuqlxyo4aUrzpSDAkh1A6DVFt/D/hHNvYqvDend0iHFdW2aDRSi7cCW0R3tCdpbGJYTA4UyEtj7xhPQj08csKMxZUSJZmrpoDuIlEXMCofFcYl6ZYH4a4cLT4Nz2NteJZFnh+d96WmUTICPBg8VAo7r3/21E/ngLNLdA66p3yG1CGHmVAcsv28BcYLbg2KVJ9TZZUkeijCLOjd4USyU/i9RUrYX9SgqyHJ/Fyv55tAh7Rd3wjOsT0ufvB3/CVsenfTPP53YynIcqT92cfaOr8fw1OjVAfjvqR4JiP99Ghr+q5cTiUo543Lr9ZLTFMPOhXvwTvDHZw9B2pfRdMufvQ== 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=cnTBz+bBZ4OTmUg/Q/etSwIKDALuXQlZedjFF6uE7lQ=; b=co8R3+SjZfH/7NbyrDl8DkaGdcN5WT9EVTbJvPjpy3ZPeetfgVek/RrxwxwHkKdYlkW5I/tpL4c02nBht0AXXiaRK+EDsUje0IgcDBPUH2k7oKyBg8mwG6vUOP4YgYhsW/zOUEojGqGFuthoDd6GQsPny4ib8/Euk8MCaIjcYUQ= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by SN7PR10MB6381.namprd10.prod.outlook.com (2603:10b6:806:26f::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6043.5; Fri, 20 Jan 2023 16:28:31 +0000 Received: from SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::7306:828b:8091:9674]) by SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::7306:828b:8091:9674%5]) with mapi id 15.20.6043.005; Fri, 20 Jan 2023 16:28:31 +0000 From: "Liam R. Howlett" To: linux-mm@kvack.org, linux-kernel@vger.kernel.org, Andrew Morton , maple-tree@lists.infradead.org Cc: "Liam R. Howlett" , "Liam R . Howlett" Subject: [PATCH v4 31/49] mmap: Convert __vma_adjust() to use vma iterator Date: Fri, 20 Jan 2023 11:26:32 -0500 Message-Id: <20230120162650.984577-32-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.35.1 In-Reply-To: <20230120162650.984577-1-Liam.Howlett@oracle.com> References: <20230120162650.984577-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YT4PR01CA0152.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:ac::9) To SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SN6PR10MB3022:EE_|SN7PR10MB6381:EE_ X-MS-Office365-Filtering-Correlation-Id: 08f09c13-ed0a-4c9b-c555-08dafb035e2e X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 3exNDx76DmK5MNpVdPsrRKl1x6LO76mEY+aLMZOSIgGDD51xhsvn8fxwj6B5rJ6ZPdGkagRpX6JjmTX/bN8bPEnZq4Mo/vnW8BXGWuqQeoX9XTe+Xme0gUbi8dIaJ5UIeCddz1hCckjVLr/uJj/+83vVxyXYrrN9B5VdGq0pdk8oXiU6MymjsZncUbu+IbpkXnnAcas85PqOJyGoFvTMTAMTVUvxuTP2d+eW0XZkE1FUr/gwPBiKGobItrymBkEfJKWLyHxZhjlcDFM3AurriCVeS/JathNZq4nT4FENt8U4WhkReTOujiFwrs7TegPH/J9j8m2qXs0j+zUCTrKp8qPgyqDlsTLDOUbq1up9SpW5u7LttegRRW2o38MoPVTkGp9f9ZyRfLel0Wz7guZmuI8JkSCqSCqYbyzSeKnXfQ9e+w5i+KP0bo7W0+4fQPphRabXCRCb0/5SVVbYjTU3XarcqIaL2IxJtXCsC0bLXULk1RJcoLAFyNujsco1JWA3ES4xji4oeP6HYsm0Nh80Rreibmluo4mEbbo+rxHyIk82fpdEQXusPMp7LSsJGyAwfUdPYzjjN1QfiVonQsd9dPESfl2wHmeaLEPVunbRkEl6WX9UPlRV0FVaDXzbKNZEJyOjNZTdYq9MJr6FiDyF8w== 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)(396003)(376002)(136003)(366004)(39860400002)(451199015)(316002)(26005)(54906003)(41300700001)(2616005)(4326008)(66946007)(66476007)(66556008)(36756003)(83380400001)(86362001)(8676002)(38100700002)(6486002)(107886003)(478600001)(6512007)(6506007)(1076003)(186003)(2906002)(5660300002)(8936002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?WoRxMpaIUCn1pe7fs4LZtznFUqFzQ51YTl0PM9Lzvrq769vSgFaeMY0loRJ8?= =?us-ascii?Q?hfvzA/TQZ99HZYJc3etbQdTI/67yl9qQjvvstR1rgCWZvHRkzBsAavrNe4/0?= =?us-ascii?Q?SGP2PL1/57SyeJbJnUJBYiu7hQEe5dwvd2Ke+tG+iNt7QOIXGNGTdKgwdw/E?= =?us-ascii?Q?3Yb08GDv/IuHM0WgKD9aURKZqjyE3MYFzgYhLgfgSXNBOCbylKJF/KCpBK6Q?= =?us-ascii?Q?ywPWyt1TOkEDvE2Aii963T/EuLFv2Ni7houTOFzC/w2KbkFeUh0g+raI2Yp/?= =?us-ascii?Q?Zk7VxNeltqkjh9GZWHsGATWwpha/Rul7e2wtvrNZo9ZJRkbT0t85JE4/5N/g?= =?us-ascii?Q?Z8CsrciucvQWa8Aw9IcKnapsHWTopHNr9+JMk2M6CwzCE8BIjJVbNTjClyEV?= =?us-ascii?Q?QXv9lPr5X/TX66serqfxCc0dPbtJh0G31DdtCIgObNxEKarsB+2jhlHKD9Nm?= =?us-ascii?Q?79/nQD/rZXOsXgWtabFBjXWfpXIIQLxAl1ooyySTT0Y9hfngRfdiUv7Oh0/K?= =?us-ascii?Q?JIXAfRozJp4wnv97i2VJ1Gpomi61y2e91RSKr2JQvVgKqDA1f+/vW0lyiEmt?= =?us-ascii?Q?NRRWfn/uyQXKyvz0V9kDW0Z0YzuYyXzDkpRd1nO+v/D2iw/HsrMTQ/WXBuYT?= =?us-ascii?Q?19uSDj19gciXRpiXH9ph7oN5i1dVogqGJjpI9Jx9WGrngmfZLXcurCAbYn35?= =?us-ascii?Q?GHax/0VLJyfBlboLxc6o5Zt1lJ7YpteSBTK77Q3I7zruTJvyzDShqEEgSEgq?= =?us-ascii?Q?9HnPlR5yCA6eXLJ32mLcPUy2lIhEeSrZUgbAJ2JGk2M3OpzbDS/1bHBnxOP1?= =?us-ascii?Q?VKxRIXvnIyqehxPudKJH4waKFB44B7kWo8yEdEl/epCBDrK7ZeltcHsyeKGa?= =?us-ascii?Q?FNwY0Fzj3efywya1M3KlRkg2GeAqI7yURbbTQ5GqlGOhEMbsl/F6DvRy2woC?= =?us-ascii?Q?gWo4kd/Rno6/38RL5RlrFvXNxZLh20o/IQsEf8Dl0G6EDQH0XwrAopuR4vnM?= =?us-ascii?Q?7+GJuoOVKfyxD3ZvDXP4U6ReMGxdLw+ffZ6iVNqly4XIvbY2xV0UZz5pOlN6?= =?us-ascii?Q?0oziETwl2gjbhQFyul3Vn8m2feGooAkTY8d8Re28pkxX3qJP0cMCMLZVR1x5?= =?us-ascii?Q?ADdUg3yadm+hmwOMVD3QPUsDUN9ZkfwQbboZ7RKMOmFdht0D9WcWGOeJfGV7?= =?us-ascii?Q?CDIHM3F9vKKetBZdkOv1Pd8Q7HdDT0z2+f8xzv7P3/15hNlAWIzar13fqwyf?= =?us-ascii?Q?UyqcMD9vxh9DCGgyPh5tHyKSoq5Eg8pVSRAT5Oq3dEmS09dftRQF4VInD7UI?= =?us-ascii?Q?h7K5bL3Mfp1azKbfUYLgJ34Cmz9WwhUarCrZuydYjgxoceO1MHJ2Q5rs7LdI?= =?us-ascii?Q?Z6psMTJMJlEkdo5FWJzBXSWrTOTi4QbngbWNfoEpVatPW5B9NxI7G2qzcPEy?= =?us-ascii?Q?hDehfKSaAVLr8QuSIsIXgadfq1l8EgZdnGkwbPlZF4/7i+mel30M8z3yjuRS?= =?us-ascii?Q?Gku1LxkENVOG60db/YRhUWsXxKQSkSQiOvcB6trZf4J0Y2Di126kv5whq6Wx?= =?us-ascii?Q?jB08HzXx2YPR/pMun5H+5nbHVSXI3qYrxmhyvagJaPN2Eh4w1mJ2hbvq859L?= =?us-ascii?Q?/w=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: DT2tdUEuYAQnUOwwPO1WorOjtVOC4vtvFUBBjo1+ghPDTxGXqQx4bThgVR4wik4dTugMt+dstChubVqEubsneyJ8UBY95ZuTJtHCYd0eepsI5p6iJ5NC4b91l6F/N4f9gE64T3pXjSG0BUSEx/1D0uqBVcRu4WaF5hgYaxP4BD4gUn0i2JBs2MOVNQTFhlYy4srtVlW7pjK0bu5YuGGYIc5TDVaE9LQApj+jXuAL786Nyb0OooVwANoqbdTYI1EwAoIr1R+v2HiyUg3vzhw50rG2PIVNwjkBnhLzAgtPs7BTf/QFnwMIUnmdczmthAJwu0+pzXSDUEZR6G8XD80uaEllpt3DK8XdIRQlsE/AZldaG5JBF4gNazhdlsOjvZ5vK+rjXxbjaXC1olFrJfZVyDJKzTxBR59Z5RFFvc5zZurKfNA4+cWjKsLuAzb2vi9bDrfkkE9iQpX/xqZf2TuNppHRAlYzvjyojiW6c0lUnsP9fjZjArOvnEPxqWqQVaGzOUsFYQFVIk652saJO3xZnAzyt4qGTmGA2k9eGt4jtbWx4DghYTJ7QCdBy2FdlmiPbsvgscXpAj9YfZ+Q/VmTzxZX++DMTxGy1ggIDO8ppu1022APNquXgItLENkS0bM1xlrxwo7zoESZAZxsmtR4BKCPpiFLIk+pcKDw8FHeKE+Jcn6niC4Z8GlpAm6IHxz1fKLjP1QsHKTmYsMKv/UFTTq0sU4pGxTBcpMDZMJ+it09iaKhIACT2QeuOnkHPW5SaF6ciSB+OwDPi225o7HfxzxhR91nw2ksyl4C5ObYpAUM0XdYk9m+LGxk1oBtsN8+LiZauQ3oJ4GpZoStiFOXVy51YdLZeI75fs5KEq3hjqXbCU4/DY2aPMOzFYNnebw8sRIEl73rfRUYU5hCPsLW3w== X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 08f09c13-ed0a-4c9b-c555-08dafb035e2e X-MS-Exchange-CrossTenant-AuthSource: SN6PR10MB3022.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Jan 2023 16:28:31.2287 (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: IwRJC1CnMdHeMRIwUf+oPsYbmA7DMTIEa6qn5NMUClSrvWlC/2NKrJrnmfX5ikC5q/dy0Ld/YwUqSe9J0GhV3w== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN7PR10MB6381 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.219,Aquarius:18.0.930,Hydra:6.0.562,FMLib:17.11.122.1 definitions=2023-01-20_09,2023-01-20_01,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxscore=0 phishscore=0 spamscore=0 mlxlogscore=999 bulkscore=0 malwarescore=0 adultscore=0 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2212070000 definitions=main-2301200157 X-Proofpoint-GUID: 8AiYz9vkF5_zet9KPxqzVdmCcOEhTW6i X-Proofpoint-ORIG-GUID: 8AiYz9vkF5_zet9KPxqzVdmCcOEhTW6i Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" From: "Liam R. Howlett" Use the vma iterator internally for __vma_adjust(). Avoid using the maple tree interface directly for type safety. Signed-off-by: Liam R. Howlett --- include/linux/mm.h | 3 -- mm/mmap.c | 75 ++++++++-------------------------------------- 2 files changed, 13 insertions(+), 65 deletions(-) diff --git a/include/linux/mm.h b/include/linux/mm.h index 9f519c6ea006..170a06e46cc9 100644 --- a/include/linux/mm.h +++ b/include/linux/mm.h @@ -2856,9 +2856,6 @@ extern struct vm_area_struct *copy_vma(struct vm_area= _struct **, bool *need_rmap_locks); extern void exit_mmap(struct mm_struct *); =20 -void vma_mas_store(struct vm_area_struct *vma, struct ma_state *mas); -void vma_mas_remove(struct vm_area_struct *vma, struct ma_state *mas); - static inline int check_data_rlimit(unsigned long rlim, unsigned long new, unsigned long start, diff --git a/mm/mmap.c b/mm/mmap.c index 4a5d5c9a8dc6..19e5a79d5ca7 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); } =20 -/* - * vma_mas_store() - Store a VMA in the maple tree. - * @vma: The vm_area_struct - * @mas: The maple state - * - * Efficient way to store a VMA in the maple tree when the @mas has already - * walked to the correct location. - * - * Note: the end address is inclusive in the maple tree. - */ -void vma_mas_store(struct vm_area_struct *vma, struct ma_state *mas) -{ - trace_vma_store(mas->tree, vma); - mas_set_range(mas, vma->vm_start, vma->vm_end - 1); - mas_store_prealloc(mas, vma); -} - -/* - * vma_mas_remove() - Remove a VMA from the maple tree. - * @vma: The vm_area_struct - * @mas: The maple state - * - * Efficient way to remove a VMA from the maple tree when the @mas has alr= eady - * been established and points to the correct location. - * Note: the end address is inclusive in the maple tree. - */ -void vma_mas_remove(struct vm_area_struct *vma, struct ma_state *mas) -{ - trace_vma_mas_szero(mas->tree, vma->vm_start, vma->vm_end - 1); - mas->index =3D vma->vm_start; - mas->last =3D vma->vm_end - 1; - mas_store_prealloc(mas, NULL); -} - -/* - * vma_mas_szero() - Set a given range to zero. Used when modifying a - * vm_area_struct start or end. - * - * @mas: The maple tree ma_state - * @start: The start address to zero - * @end: The end address to zero. - */ -static inline void vma_mas_szero(struct ma_state *mas, unsigned long start, - unsigned long end) -{ - trace_vma_mas_szero(mas->tree, start, end - 1); - mas_set_range(mas, start, end - 1); - mas_store_prealloc(mas, NULL); -} - static int vma_link(struct mm_struct *mm, struct vm_area_struct *vma) { VMA_ITERATOR(vmi, mm, 0); @@ -644,7 +594,7 @@ int __vma_adjust(struct vm_area_struct *vma, unsigned l= ong start, bool vma_changed =3D false; long adjust_next =3D 0; int remove_next =3D 0; - MA_STATE(mas, &mm->mm_mt, 0, 0); + VMA_ITERATOR(vmi, mm, 0); struct vm_area_struct *exporter =3D NULL, *importer =3D NULL; =20 if (next && !insert) { @@ -729,7 +679,7 @@ int __vma_adjust(struct vm_area_struct *vma, unsigned l= ong start, } } =20 - if (mas_preallocate(&mas, GFP_KERNEL)) + if (vma_iter_prealloc(&vmi)) return -ENOMEM; =20 vma_adjust_trans_huge(orig_vma, start, end, adjust_next); @@ -775,7 +725,7 @@ int __vma_adjust(struct vm_area_struct *vma, unsigned l= ong start, if (start !=3D vma->vm_start) { if ((vma->vm_start < start) && (!insert || (insert->vm_end !=3D start))) { - vma_mas_szero(&mas, vma->vm_start, start); + vma_iter_clear(&vmi, vma->vm_start, start); VM_WARN_ON(insert && insert->vm_start > vma->vm_start); } else { vma_changed =3D true; @@ -785,8 +735,8 @@ int __vma_adjust(struct vm_area_struct *vma, unsigned l= ong start, if (end !=3D vma->vm_end) { if (vma->vm_end > end) { if (!insert || (insert->vm_start !=3D end)) { - vma_mas_szero(&mas, end, vma->vm_end); - mas_reset(&mas); + vma_iter_clear(&vmi, end, vma->vm_end); + vma_iter_set(&vmi, vma->vm_end); VM_WARN_ON(insert && insert->vm_end < vma->vm_end); } @@ -797,13 +747,13 @@ int __vma_adjust(struct vm_area_struct *vma, unsigned= long start, } =20 if (vma_changed) - vma_mas_store(vma, &mas); + vma_iter_store(&vmi, vma); =20 vma->vm_pgoff =3D pgoff; if (adjust_next) { next->vm_start +=3D adjust_next; next->vm_pgoff +=3D adjust_next >> PAGE_SHIFT; - vma_mas_store(next, &mas); + vma_iter_store(&vmi, next); } =20 if (file) { @@ -823,8 +773,7 @@ int __vma_adjust(struct vm_area_struct *vma, unsigned l= ong start, * us to insert it before dropping the locks * (it may either follow vma or precede it). */ - mas_reset(&mas); - vma_mas_store(insert, &mas); + vma_iter_store(&vmi, insert); mm->map_count++; } =20 @@ -870,7 +819,7 @@ int __vma_adjust(struct vm_area_struct *vma, unsigned l= ong start, if (insert && file) uprobe_mmap(insert); =20 - mas_destroy(&mas); + vma_iter_free(&vmi); validate_mm(mm); =20 return 0; @@ -2002,7 +1951,8 @@ int expand_upwards(struct vm_area_struct *vma, unsign= ed long address) anon_vma_interval_tree_pre_update_vma(vma); vma->vm_end =3D address; /* Overwrite old entry in mtree. */ - vma_mas_store(vma, &mas); + mas_set_range(&mas, vma->vm_start, address - 1); + mas_store_prealloc(&mas, vma); anon_vma_interval_tree_post_update_vma(vma); spin_unlock(&mm->page_table_lock); =20 @@ -2084,7 +2034,8 @@ int expand_downwards(struct vm_area_struct *vma, unsi= gned long address) vma->vm_start =3D address; vma->vm_pgoff -=3D grow; /* Overwrite old entry in mtree. */ - vma_mas_store(vma, &mas); + mas_set_range(&mas, address, vma->vm_end - 1); + mas_store_prealloc(&mas, vma); anon_vma_interval_tree_post_update_vma(vma); spin_unlock(&mm->page_table_lock); =20 --=20 2.35.1 From nobody Sun Sep 14 14:22:07 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 CA8B3C05027 for ; Fri, 20 Jan 2023 19:17:42 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229778AbjATTRl (ORCPT ); Fri, 20 Jan 2023 14:17:41 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:51234 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229687AbjATTRj (ORCPT ); Fri, 20 Jan 2023 14:17:39 -0500 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 51DE275A24 for ; Fri, 20 Jan 2023 11:17:31 -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 30KGBgk2011455; Fri, 20 Jan 2023 16:28:37 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-2022-7-12; bh=vgzpJAY9VMzONa6f9TqAF7Ll7ccVCmH/+d2ppBJqQQU=; b=Nf3olKxIv64+QT70J9oxx8LGIIYKkFYn8DkhVSoNQWq+xGRgxdAB/QNl04lrgyQPqvRn vCWc+ws+GTAUlbfO/U9iIdxzotNjZG/9SnBcdQDyyDCEErIBHcpSMx3QJUuj2RWpt1ea 6jio2qsYej4Vkjg+pdPWBgnccbLyWrv6uQ0XRfD0e7xGqWvFsEkpRZUoJcx+GONyVFq9 Ludz+hB0R5ppmzvY/z0jMzgN2TPX/TZsraYLYFjiPt0EAH5Gf1huE2eBNXyMlJCRbf8d 4aDu7ckbfpeu04CyoBlvwH7/G2QFskF93jaLNihRVGIJ15dOhKbZ5zXt4fNJQBKToKlD +A== Received: from iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta01.appoci.oracle.com [130.35.100.223]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3n7895aqru-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 20 Jan 2023 16:28:37 +0000 Received: from pps.filterd (iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (8.17.1.5/8.17.1.5) with ESMTP id 30KFVpgL004600; Fri, 20 Jan 2023 16:28:36 GMT Received: from nam11-co1-obe.outbound.protection.outlook.com (mail-co1nam11lp2174.outbound.protection.outlook.com [104.47.56.174]) by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 3n6r2w1gjy-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 20 Jan 2023 16:28:36 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=EFNyW5dDBWly1q7mWleqOG4FLK6IFTBTR7W/M+B5BuSI7a008maGBC8fbDzGvIOqN5gVq4ja0SRSUTPVvUlZucf/Wfyo1rgipZzpPeyfSpMuurWbIyx3YvWS9cb0OW3O+UIOzsSLlbBuwy3m5OygYXLbDio7gq2e+CadioYhNr15pi0aN4jIz642q1Up0TqjFGSu2gOuwfKNRnUt0bnTdkQmqIVJk9vAH4qij55ND7+BNjoAa2EJ2RAX7VuQHqDnsOylYygrcDRCepFwz6y4Fq6Yl7RLDCfqYo1Gt2tux1T+Lp0beOicsXntRiFaxXOMtNxMHHAIKLAyCQMudWAaYw== 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=vgzpJAY9VMzONa6f9TqAF7Ll7ccVCmH/+d2ppBJqQQU=; b=XwOMHnXsxEENXDX2mLgolQUzLiuM6xMSS/c4JkLfYMEJFOukGVofVzqAZ9HQfBom4DD9I1BVBRs/eqm3rR3jhBzVQkfTX1LhEM3lmLBsbjNeQHxLcgmGq13/ZT2AOzi7ESm8hC1R+Vv8Biyrg384cwIkKxjXOvSQQPKahXUcHZeotX5Ctl1BEwluKyC++/NK8q6AGVYCJ1Sp+RpukXYbuFBHJt8fdKhHrab4JSzlj0ZTTXssOdK4qKj62sqHIBXDe/Z7y0clEF0rB7/mS1kCE3nc6viNKkViCj0xzVJo+OcJOU/GZRq02l042p3tSa2lHeNFzRVsShOXQaN2zfuZdw== 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=vgzpJAY9VMzONa6f9TqAF7Ll7ccVCmH/+d2ppBJqQQU=; b=Vz+Cf3fn575leLW1bvBiA+jssixWWJd+29zURQY5Ay4hOLpaoefcvwM21xQQZw4iiQvmevtwTS1JNXZGcBHAf4M+d0MMX3Cd+FYQarCqtZxsSl8HGJThK1DfBTNdvFRLBnhlmNRtRJepHi1hXuGpl718nPQ2giX04aLJ3e4dEfc= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by SN7PR10MB6381.namprd10.prod.outlook.com (2603:10b6:806:26f::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6043.5; Fri, 20 Jan 2023 16:28:34 +0000 Received: from SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::7306:828b:8091:9674]) by SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::7306:828b:8091:9674%5]) with mapi id 15.20.6043.005; Fri, 20 Jan 2023 16:28:34 +0000 From: "Liam R. Howlett" To: linux-mm@kvack.org, linux-kernel@vger.kernel.org, Andrew Morton , maple-tree@lists.infradead.org Cc: "Liam R. Howlett" , "Liam R . Howlett" Subject: [PATCH v4 32/49] mm: Pass through vma iterator to __vma_adjust() Date: Fri, 20 Jan 2023 11:26:33 -0500 Message-Id: <20230120162650.984577-33-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.35.1 In-Reply-To: <20230120162650.984577-1-Liam.Howlett@oracle.com> References: <20230120162650.984577-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YT3PR01CA0022.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:86::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_|SN7PR10MB6381:EE_ X-MS-Office365-Filtering-Correlation-Id: 4f3c92f5-60b6-4377-f3e9-08dafb03602c X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: bNq1Ev6k3ccOvCOkQW7iqCLfwKiAP9hrXuBkCi7ljSweGsoBzjvMUhs2iBDZKjZ1XoKkF8XhZ6/aUGOE39l8HIcKEz9gMVKKHMvBXwR3hl75/lwvzQwpC6JHi4aGMy9JlOHLjnHtKiE0pJQ3FUWP/UiCMIeomUgr+IjP07UHov7+tKwvuIj0WR56DQjERc5X95ZeZLwbyQjv35egEpWErigAq+4W/CXfejILJS+9vr0TSQZnPwVvaepgT1egEixs1JQzsxKtPJ/s0BBI+ddMbNrH9JbbHAyP642hVxDCIfDJ9OUsqWvEzpvCOh6T5dxGGE50xloATUTXffDKnT11LmTSPwfX344kB9PBtd7JDVlmXjqWBIYPEzcWtrGxK+42WoCPJx7I+rikNMTw/BlpmDw+eyAHgjNlem+LoKLcUEu7tiaU8qgw/yOImAoUoa/Lq4zv3vrLLYGknocyJAS8lUhgS3XRnzgWOM+NgU/IBRQq/DGj9yVaeXztVdWDVTNANhiPKQfp1iZmvjWs5hMBnNK0lGRlKuxdTYqaLZnK9pwDsmLr7Pvbgmy7iCLnnTZZzZ9EzSYSbuBaZnDG6MHChsUXoQ9JCZJGjTnVywhljK+YNI1wvP01zu5tJII0l/0bSmwHWud+zSKn+KSTwraadg== 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)(396003)(376002)(136003)(366004)(39860400002)(451199015)(316002)(26005)(54906003)(41300700001)(2616005)(4326008)(66946007)(66476007)(66556008)(36756003)(83380400001)(86362001)(8676002)(38100700002)(6486002)(107886003)(478600001)(6512007)(6506007)(1076003)(186003)(2906002)(5660300002)(8936002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?zQnLD9e4R2Gooyy49J74Wl4Dwdp1xEkVScxIROmq/Hk1KCruZd4ypjbfK+Mq?= =?us-ascii?Q?/3vd5Ol/c/aXsd1DwUKKTJeRlzgAZyt3HEwP1hHqcPmCkS9wSn1P+cpMXJZ3?= =?us-ascii?Q?r/WMZWeJBN+1p2sTtNkve2nq3a4ZsA2ONIV22kTMCA2wY75Ha7r6xkXEg1yK?= =?us-ascii?Q?RzBPCHVeJhstYq1iz3MRNmjIo8bJENoEkPU86Ne0/JXhysHtBaegbHUI72kA?= =?us-ascii?Q?DQC2ws/4EzDCkgJzHNwV6cQG0bd/jLZLTaPCBuAV2FP2dp/ug+biIzaCBM76?= =?us-ascii?Q?LcHGa8iCDFqVUbGDIRzZnkti+KdtPrA9RDio3RdbzyKSviWC4ld7LtTdQJKj?= =?us-ascii?Q?25HGSnSU3v0aFWaAf11D5FvD9ZnhPIXitPcm4+Kdukn3jcl7V97JT9ZkMXdH?= =?us-ascii?Q?ezXtvjf+K/7GgxIyDWaVa/P9VkYU+J3ZJgTO8sSMXLFZgE+c9inBRnnclPoN?= =?us-ascii?Q?ZDtQShSYOoTdKTiBTB8o9xgWt+gHEN9v3w7KAYdKFzVGsjTjqDRhEb0hXDb+?= =?us-ascii?Q?E4Gq5BBfFTWUCown+1UYvHriB3swjFApG4G1IjqG5TvAw06ixptMW4MMeR5t?= =?us-ascii?Q?PaXaaSeW1LU9S54j1fkw12vDw2sxI54X8Tp1TJIxJsGP04annvzyeqDQPzFM?= =?us-ascii?Q?+naGLlzoCxnnrN/W/MLzGe7jpCq31lIk36+jRG+nqDags21duR/6RNoYgeOI?= =?us-ascii?Q?DXcUqobrl+GujhhgRzr0rcU/atE690G1Z1Pm31VSRqDChI80t75XAf3tMrIm?= =?us-ascii?Q?GkEIF9BIlK55bTmAo+9ngsj35h9CXsGiHSApUYkPT0/ENL2uI0QvOd2mAuRK?= =?us-ascii?Q?ARbgjJYvbLu+YpbFZKiDucoupgd77Ukj1zKh+td9gLwbbd7jNRTtcgfx4qrG?= =?us-ascii?Q?wpJbPoUKPH4dyfrGpq0sygMItD7eD1cy/38PKO/bhXucKuqbKok79NN4bjzL?= =?us-ascii?Q?IuRTWrUIz4Vo4XCPUGuVk2JMrAqWyJryBwPBuKTyCenzUJE1wMkPeoVNj6qX?= =?us-ascii?Q?08ArVwlSfixHldH42FUSNPfEzLtmY1kNHtt1JxYTQGLVRsTM2BdyxXCCudOU?= =?us-ascii?Q?qFMauq0bXwn/RGa0G0hpLXG7QnJtyW1CsIxfyyZ2l5K4kHNCusYTjKcfGlhP?= =?us-ascii?Q?Xm9/2kGkwaPock421sUBHjq4OmxgHgSJvDdoUMOGGGxhqT0RxHIG0SzjDJYc?= =?us-ascii?Q?Z7rBo3eKRHIed60/95okpM0DaRRkqjM77vnpXRnb66DPwBSp0P/ib04BA4fe?= =?us-ascii?Q?rnA1mD7S/hz39+YVp4fpbEmsyuRZByMHRpff8t51nY3n7ddO1lvrHN8+avGp?= =?us-ascii?Q?X8KVHOg8K4f5BE/7vyT2wgfbi3nFhgrKIwe7A67Zad7iNHCJFdoAdfAdL2KG?= =?us-ascii?Q?1Ns6H7PF32W+yN3H4o1cxJM8RZX32KubO+Sdj8a2uk2TUpCP4ieO1jEQSZzn?= =?us-ascii?Q?P7Vndg4IzgrjyzlJF3Rg2wv1rCGqiZVNsyBRJsY5c/SP8BLMj/zs6fgfDivZ?= =?us-ascii?Q?0UGhOz4tG0ZAaWriOW4diJcAX8nzp6GlYt9gVnx7To2FSzGo+L3js9nv6RFk?= =?us-ascii?Q?Ut0x3WKS4i/T993r/sGRIAGZR4+v/LvKVc8YhisSoa/eYyQxY6X8xoVUAOss?= =?us-ascii?Q?nA=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: p7/4Ucfs7uzS27WX+bkI+RvGXp0Qtq4wSEawC7jEg+82s1CvHdNzDvFMg2PSd7u+oTRVV9ZmIOme/CBUxua2qsjmQLjUR8O3aVeKYCX/AbS97BXfgAvSDBm5nfYVX2hKuPUIe/sPBR3rcuOgM7t7st3Iy+dLqgLwl9MFEPYoy4B5/Wgo838AJhYYhoELMOzmFPyDX68L/R2ujrGa8ZTDx3xCS7K9rXZ8Cb+T67AS0ZFIHOYl0sCmn3JF1x1ZOW6Yd24952dwrl58Eb/CBpTs8D/iystFPoDym2ec/uFMuJeaCHloLtxEoy4Ze+g6VjZJu9KXs34eb2ZLinh5Kdn4npAgSk3aKIXOSk6hd6x9GX5JgZi3mJckfz93m1qYzmzkjNYu3Z2PdHR1WzCSDagBnvw0DofOc6GnepqH20t/OpKbmdITBw+uXMazeq5iy7hn38zqUfHOvrMb75cuIRkFZKMubKxHNtcLw/pt8X9xK93KOqZU0bhOh2BUDxvulDnjejv+QcOHhCF6ccc6hTrmsxw5RYOqToPAnPjFHpVpwJVNS4nch6zwQpz+wvAp4vtInYhThfiVvzTgOofHl1sXdOsw7EYggRefW2fGXZ+n6E5K3JyMyf927QJCQpTGAygSSUCE8jA8oo2I4Qgb4LIPL48b8RnGIYWvaKp4ogK79JA9Cbr8bk5u9haY5cRolBeDaCIZ3Kxn8EUWSmpuBt5acj1YF8IbBDdJDJmyvHa4s3PH4WDBSQu/Z+LK/nUZx0iPiNzgyqzalGK7LVt1JAz4PfMGrymR7pOmlIFdRgnWwusSOoxfZRdLSW/vYA+Wce99hQ/cu4vnAisMKVvaYK5uMr212Ug/NwsdujEWrwYsSHRw1BRDDepSbGBYltLuzw7f50Eve8XqkqveB8WrzfxaEA== X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 4f3c92f5-60b6-4377-f3e9-08dafb03602c X-MS-Exchange-CrossTenant-AuthSource: SN6PR10MB3022.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Jan 2023 16:28:34.4941 (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: Zau38J6Tqrp7YaGkJ83VixMLaDl4hRB57Olw007uw3+NnbVzNykvxD/MYcw+eSGkI9K3Ioj7kMo4LTFjvJYQ+A== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN7PR10MB6381 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.219,Aquarius:18.0.930,Hydra:6.0.562,FMLib:17.11.122.1 definitions=2023-01-20_09,2023-01-20_01,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 adultscore=0 mlxlogscore=999 malwarescore=0 mlxscore=0 phishscore=0 suspectscore=0 spamscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2212070000 definitions=main-2301200157 X-Proofpoint-ORIG-GUID: wyOIaeAa-vyCH6IK5Od-xZFVfDxzSrgv X-Proofpoint-GUID: wyOIaeAa-vyCH6IK5Od-xZFVfDxzSrgv Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" From: "Liam R. Howlett" Pass the vma iterator through to __vma_adjust() so the state can be updated. Signed-off-by: Liam R. Howlett --- include/linux/mm.h | 6 ++++-- mm/mmap.c | 31 +++++++++++++++---------------- 2 files changed, 19 insertions(+), 18 deletions(-) diff --git a/include/linux/mm.h b/include/linux/mm.h index 170a06e46cc9..479c79204d96 100644 --- a/include/linux/mm.h +++ b/include/linux/mm.h @@ -2831,13 +2831,15 @@ void anon_vma_interval_tree_verify(struct anon_vma_= chain *node); =20 /* mmap.c */ extern int __vm_enough_memory(struct mm_struct *mm, long pages, int cap_sy= s_admin); -extern int __vma_adjust(struct vm_area_struct *vma, unsigned long start, +extern int __vma_adjust(struct vma_iterator *vmi, struct vm_area_struct *v= ma, unsigned long start, unsigned long end, pgoff_t pgoff, struct vm_area_struct *insert, struct vm_area_struct *expand); static inline int vma_adjust(struct vm_area_struct *vma, unsigned long sta= rt, unsigned long end, pgoff_t pgoff, struct vm_area_struct *insert) { - return __vma_adjust(vma, start, end, pgoff, insert, NULL); + VMA_ITERATOR(vmi, vma->vm_mm, start); + + return __vma_adjust(&vmi, vma, start, end, pgoff, insert, NULL); } extern struct vm_area_struct *vma_merge(struct vma_iterator *vmi, struct mm_struct *, struct vm_area_struct *prev, unsigned long addr, diff --git a/mm/mmap.c b/mm/mmap.c index 19e5a79d5ca7..5f03c8f3f407 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 =3D vma->vm_mm; struct vm_area_struct *next_next =3D NULL; /* uninit var warning */ @@ -594,7 +594,6 @@ int __vma_adjust(struct vm_area_struct *vma, unsigned l= ong start, bool vma_changed =3D false; long adjust_next =3D 0; int remove_next =3D 0; - VMA_ITERATOR(vmi, mm, 0); struct vm_area_struct *exporter =3D NULL, *importer =3D NULL; =20 if (next && !insert) { @@ -679,7 +678,7 @@ int __vma_adjust(struct vm_area_struct *vma, unsigned l= ong start, } } =20 - if (vma_iter_prealloc(&vmi)) + if (vma_iter_prealloc(vmi)) return -ENOMEM; =20 vma_adjust_trans_huge(orig_vma, start, end, adjust_next); @@ -725,7 +724,7 @@ int __vma_adjust(struct vm_area_struct *vma, unsigned l= ong start, if (start !=3D vma->vm_start) { if ((vma->vm_start < start) && (!insert || (insert->vm_end !=3D start))) { - vma_iter_clear(&vmi, vma->vm_start, start); + vma_iter_clear(vmi, vma->vm_start, start); VM_WARN_ON(insert && insert->vm_start > vma->vm_start); } else { vma_changed =3D true; @@ -735,8 +734,8 @@ int __vma_adjust(struct vm_area_struct *vma, unsigned l= ong start, if (end !=3D vma->vm_end) { if (vma->vm_end > end) { if (!insert || (insert->vm_start !=3D end)) { - vma_iter_clear(&vmi, end, vma->vm_end); - vma_iter_set(&vmi, vma->vm_end); + vma_iter_clear(vmi, end, vma->vm_end); + vma_iter_set(vmi, vma->vm_end); VM_WARN_ON(insert && insert->vm_end < vma->vm_end); } @@ -747,13 +746,13 @@ int __vma_adjust(struct vm_area_struct *vma, unsigned= long start, } =20 if (vma_changed) - vma_iter_store(&vmi, vma); + vma_iter_store(vmi, vma); =20 vma->vm_pgoff =3D pgoff; if (adjust_next) { next->vm_start +=3D adjust_next; next->vm_pgoff +=3D adjust_next >> PAGE_SHIFT; - vma_iter_store(&vmi, next); + vma_iter_store(vmi, next); } =20 if (file) { @@ -773,7 +772,7 @@ int __vma_adjust(struct vm_area_struct *vma, unsigned l= ong start, * us to insert it before dropping the locks * (it may either follow vma or precede it). */ - vma_iter_store(&vmi, insert); + vma_iter_store(vmi, insert); mm->map_count++; } =20 @@ -819,7 +818,7 @@ int __vma_adjust(struct vm_area_struct *vma, unsigned l= ong start, if (insert && file) uprobe_mmap(insert); =20 - vma_iter_free(&vmi); + vma_iter_free(vmi); validate_mm(mm); =20 return 0; @@ -1013,20 +1012,20 @@ struct vm_area_struct *vma_merge(struct vma_iterato= r *vmi, struct mm_struct *mm, if (merge_prev && merge_next && is_mergeable_anon_vma(prev->anon_vma, next->anon_vma, NULL)) { /* cases 1, 6 */ - err =3D __vma_adjust(prev, prev->vm_start, + err =3D __vma_adjust(vmi, prev, prev->vm_start, next->vm_end, prev->vm_pgoff, NULL, prev); res =3D prev; } else if (merge_prev) { /* cases 2, 5, 7 */ - err =3D __vma_adjust(prev, prev->vm_start, + err =3D __vma_adjust(vmi, prev, prev->vm_start, end, prev->vm_pgoff, NULL, prev); res =3D prev; } else if (merge_next) { if (prev && addr < prev->vm_end) /* case 4 */ - err =3D __vma_adjust(prev, prev->vm_start, + err =3D __vma_adjust(vmi, prev, prev->vm_start, addr, prev->vm_pgoff, NULL, next); else /* cases 3, 8 */ - err =3D __vma_adjust(mid, addr, next->vm_end, + err =3D __vma_adjust(vmi, mid, addr, next->vm_end, next->vm_pgoff - pglen, NULL, next); res =3D next; } --=20 2.35.1 From nobody Sun Sep 14 14:22:07 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 E4B14C05027 for ; Fri, 20 Jan 2023 16:30:46 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230222AbjATQap (ORCPT ); Fri, 20 Jan 2023 11:30:45 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:37720 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230216AbjATQan (ORCPT ); Fri, 20 Jan 2023 11:30:43 -0500 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 8DE01891F4 for ; Fri, 20 Jan 2023 08:30:04 -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 30KGDi0K014958; Fri, 20 Jan 2023 16:28:39 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-2022-7-12; bh=MBEDGhtN7BkuDoCi6obfXZugRKwkp4Gt/hiaxbRJ8iQ=; b=iMScHM7fG0Iu5Eszf2dEYa0rzJe2bIUDkvNxp9qYIcept4Ngnkp96wBQssJ321M7Z877 vBfrhGqIcbf1dcKdXOnBY2vObJjzDQTkhMDiOrpUGGmgeKmokAzSUdYoXClyeovODgLW fg76pLiu7r0hfCaWlFfYwsvHnC7jnG64CDngKWnu1RzqkU1Zi2HsTB/PbD5XKJ//ftCW oQVxqdEAlnaoXmo7FGxlySzgyoAAEaR5SlpIC9ee4ug6WXz9X7Pp1lqx0VN0HZFOOdz1 zQ49I+T2pxzDAG+48ShRbA5AUhoF1Jp+ElMxGmJ0HYFxiYXl0/hLQn6bn11wJCba+sPj Og== Received: from phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta02.appoci.oracle.com [147.154.114.232]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3n3mxtd24e-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 20 Jan 2023 16:28:39 +0000 Received: from pps.filterd (phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (8.17.1.5/8.17.1.5) with ESMTP id 30KFMi44000775; Fri, 20 Jan 2023 16:28:38 GMT Received: from nam11-co1-obe.outbound.protection.outlook.com (mail-co1nam11lp2176.outbound.protection.outlook.com [104.47.56.176]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 3n74d2swdu-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 20 Jan 2023 16:28:38 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=DhWkjh09+233Ab6myFMTpYFArO8ke7wn8AL/QhKfeguSobzSRnwtNSM5MLxRLZ8OaEftIK9sg/SqvJdnNpFM6YjNeQuukzhqrtGhib1OEYfYRLB0uZzBw7Ph/CpMGz4+670QO6kagA0bhj1EA2F5HdI64Q37ZnuEUqw5RtcFFRzUCA5NPwkD2373V4tYPhoGsj/+53wpYoeN4yimzZ3bXWw+Mn0EYZ1L634YSLhYhkTTeJwSI6HhjXjR3bygmsxti+ZEkR0wWRz0dpn0d4bWtvo81tlMDlDFZDclkXia2CT07+ZBAAsRdq5NhoII9AiiDaAxBybVUM/nPbSLNBMtxg== 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=MBEDGhtN7BkuDoCi6obfXZugRKwkp4Gt/hiaxbRJ8iQ=; b=fiSrj41YiXp+1CjAGFIlAxV5tgVK2ByNhWAqtzOX2L4piIWpHvdRebGaf+ErUZAgJdpmIsjF0/TZNZIpjUHQeLjT/K6VMiQ58rSXNu2kkQX9NzsGT+WWl0LVfeQPImI9tdUwMMwPnnBuif6634e1B5EyGpv2a2lGAMmPKBAgnd9Uuj75LCnia2dJvSIBLgPYmhB8UUbS5tzx2tRfzxr8G6ti5VlmkLbYDYdZ0WyLobN+qM23Mg8+XHM1gsPz7SsejShQKb5Warg7iHD0AEp9dK1t5amwu2IvqvyaFK+bPz2yKpr+xsjzrpmkUCTmW8uqo/X9h7XTtFuE3gGp72WS2Q== 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=MBEDGhtN7BkuDoCi6obfXZugRKwkp4Gt/hiaxbRJ8iQ=; b=zOC4mqlBguURIXBR3hSZyQ49gKVsc0kywBfOHDU1T8CvoUA7C9eRfTNvcegAyZLNXJCa5hmfIM64ZY/yd2yHVnm7auBt8njaO+DtQZh/svkI3EJDTV0kF8V851pFQqR7QcO7MOkgPXSZXY0pjA25KGG7pDApGMQCVqBmyjGjVTg= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by SN7PR10MB6381.namprd10.prod.outlook.com (2603:10b6:806:26f::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6043.5; Fri, 20 Jan 2023 16:28:36 +0000 Received: from SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::7306:828b:8091:9674]) by SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::7306:828b:8091:9674%5]) with mapi id 15.20.6043.005; Fri, 20 Jan 2023 16:28:36 +0000 From: "Liam R. Howlett" To: linux-mm@kvack.org, linux-kernel@vger.kernel.org, Andrew Morton , maple-tree@lists.infradead.org Cc: "Liam R. Howlett" , "Liam R . Howlett" Subject: [PATCH v4 33/49] madvise: Use split_vma() instead of __split_vma() Date: Fri, 20 Jan 2023 11:26:34 -0500 Message-Id: <20230120162650.984577-34-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.35.1 In-Reply-To: <20230120162650.984577-1-Liam.Howlett@oracle.com> References: <20230120162650.984577-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YT4P288CA0005.CANP288.PROD.OUTLOOK.COM (2603:10b6:b01:d4::27) To SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SN6PR10MB3022:EE_|SN7PR10MB6381:EE_ X-MS-Office365-Filtering-Correlation-Id: 9d724aee-fa6a-4573-8e9c-08dafb036192 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: VdfonDVj1uzqsynoFaFNVbfIicBbOuRWwXUaQztXqmi/sNpo/pJRZQm5KXAcjx6+S0tGB//oPhSTg71aPAe6J8TieHW6abaZwnmc3EDTlFTOCsHQN6zavb2uLW+NVY+SNjHEbhLqV9RCyHEAQq82cOcsbj87XzFYnMiN91B2sUdL+8Tc7QkuEr0YJ5VbNe5FfE0B2MgtPTkL0EPXUkrAwLKVpXaivk2QzeL9hXQj/uo9jF+VkSnNF6LXCog2Km7Thqo7XYk/ewdthWHqJIdbDBOBI1nM6eTKl1IC9yHBaeP0LcoamtyRzqv3ZT5Af00J0yu7CYGWWeXlBVTSrgEhMk4LsIsePxC5zRh6nluHrJqpbVf2Z3U9+xhUZ5Z/vPB5sIo442k36twtvrSkC6uEYj11EpifMc7rSsBCcdM6dNQveb6zsqpxZnHdDHuWcfyWesa5d+jzwORrsTsgwl+NEMfotUkXGAv4Gvxlb2oe3qVnKWDnLeJ06Ivx1SImfCRMVE6oASuAU9F9PDm8XDMjJxFfFJghA1BnWNqrFiME3HuQR21KTzwqFpaSUo8cUBuKA1ANQEUkbBhk6APuo7Iy/FF21Zp4ghY1J3K2LZmbo4Qdb+ygbBbRb0we1mPpUMmTHy34pi5DrECizkfL7d19sA== 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)(396003)(376002)(136003)(366004)(39860400002)(451199015)(316002)(26005)(54906003)(41300700001)(2616005)(4326008)(66946007)(66476007)(66556008)(36756003)(83380400001)(86362001)(8676002)(38100700002)(6486002)(107886003)(478600001)(6512007)(6506007)(1076003)(186003)(4744005)(2906002)(5660300002)(8936002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?BzMnoEwJaRj0Vc7WZln40jSyx9nHZ+eUZggZxOADBG3+VWUvbCtsDpG46YJg?= =?us-ascii?Q?IoC/xLgE7pdEwCSR5eiQ8JsDfba/xuLRLl2ikBG/1xQQwSkRZiAlw2WS4l+n?= =?us-ascii?Q?tayL/awVE2wZw7EcU/EImrktFl65M9UHSqqMeqUDgLpWOEKFP/vKv5/Hde5o?= =?us-ascii?Q?cNsSeYyc5ytHby/hfFxj7hFEcZh45J3vUhd/GJMW3V12icT1Y6RpSrAGZFsO?= =?us-ascii?Q?imjFcGaiocQ8zqX1sgOzVPQmP8PrHyhBfqyTb/2lNGX21tatoQW+r3rNn0Xg?= =?us-ascii?Q?NdUmJF2+5rvlPJtzslV71ua8pX2YK4pAWaVTEP3BRg9C9KDGlbSkqWWWvJ3J?= =?us-ascii?Q?VpPhGLjpyEL4Wex1bQk6rJPfHhiCmG0KRofUvb2FunwJGXpCW2hbXOiEqTCp?= =?us-ascii?Q?c3N2e7kDzpOPjUae+bZUfDlwDheqEDcHSR6Kr2xgKN2DDsxcNcgubpki1XS9?= =?us-ascii?Q?WsNc8OC0vOCAdNuyNZKVj2s7dhdO6V3ehBNHbhdQxelFlgCxZWA8wF2rvp0t?= =?us-ascii?Q?9Ecc6GjvD1RvFImFFcGYafXq6sZal8YYD1mZfvHH2waQmuV8StHeV2wmmNfQ?= =?us-ascii?Q?1Xem/1/J9OaWH1UDO3kVSBMY1L8AQa00h8Ys6vfnKJxzk8JyCBMQgTLDizlG?= =?us-ascii?Q?VhHF+BY5cbxb3dfLwkutmOaYziKkbsPvbM/PA0ScauOikM0BGCee2DYIzrkK?= =?us-ascii?Q?aXCOuQM2CNpu/OGQDkCr5Vd/Nf1hJO7ioYVOMUfKdz5n9P4H3Vvg0GIIEBP3?= =?us-ascii?Q?opoWKz1CEhcDAqmHV9H6YaGlmupjsvujG6cedjAykgGyaSD+CWkaL3j5e7Mz?= =?us-ascii?Q?F2AvRcTUc6o+tuz0UUMOFqx8qUC5Q5E2mVpw70HCNainnI1r7FtD8OLjLq+Q?= =?us-ascii?Q?0LibzG/x1eqGKW0PUg9KMI49GJtXKs1dmXDpihXrh2smPc1ef0hR3JUHODbU?= =?us-ascii?Q?p/RBjTS5V0yE6g9Rnm2GFM9UtMBDDulANPAXrGVrwQOvcbLNjn5PC4oeyb/r?= =?us-ascii?Q?USPDob5iFXi2hl4XcUnW07DQFcyr0a+ZAPTVwYnZsSz21Xi0M17oBgTqkNaD?= =?us-ascii?Q?rJn+ZY+g/NJOCgyYA3RwR1KsI70C3QwaPvg6p8g/My04sDdFFR5RVDiqqmpO?= =?us-ascii?Q?KHUPrUnMVQrhkDqYIWncM870c/t4MsH+3YrBcJlWAkAJS7Ko+ynuFhOnOml5?= =?us-ascii?Q?2SIbau0I4LkiKsGFY5oxqfKRcJRWBtaEj9rc7T9A2lAPzwb4UoTsAtQE1eYU?= =?us-ascii?Q?Xe+khA+NrcfQ+s2vSLvsgiV/BiNO2jqO9DcS9MfJcUa1hr4QGNjYkXxmpmG3?= =?us-ascii?Q?OSiT3HqqhWdXOXFS0GLRs9EfsZu9QV6DHy5hVR0I15YKQIDrvjvqENQWBFXR?= =?us-ascii?Q?Ylzt7Ru+4PgqWwdcl+mzvfG6EI6Oyn4Hv8zpMwBNbU70pFZHSM6+0SFJNWiG?= =?us-ascii?Q?fV9qWJZ5j+1Ya38QMulyF17NOMbqLLQpow6DJu6Wqcpii0Z0eMTG6/n0xwkb?= =?us-ascii?Q?JvCqqfSHwus0xviiQC4STXoHfeM/CKxrcE/zGdQNi/iquz5Cv8wqSyVLXCIE?= =?us-ascii?Q?Z25EPAmOq0x7fjKgXBTzLTiSilWAFM7zutztNxFS7X6YPgby4VAt8y8djvZX?= =?us-ascii?Q?5g=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: ixy+ZEV+PONmp2NtR/SjcFpiliMZ3Hmqsr8g2PEoiGHhXnN5JHQmuF/y8z/2GelFJ1/n4kGwBANmaCuUINyRS1v+s7k0PcXTL2XpwtVnent1P2tLbEWyWPB0NkibFFRyirPSFfFjNCMu4YC5Q4Pa6zOu99rfgEbyAUNDc/obU1cHuWskT6qfv6FowGBGr0BIfn+4Xs36u+iJvg3jqRa+2XdyCu9ggf+wHtGNaQ3gvz6ZXdDqJ8FQVMHrRN2TpnAObzSNemdy5rIGTpJDS1H1THVhcv01x0xXlHMKcsSLipAadg0P7E9sZhflu/pwoYbLuZmgmOejhGxQJdiBpkZl6l+mQNB9kh4qHe21er2C1LYJ/h07myp9q5aMHXV0vC6mbaFr3Aa53kvL3sLph97FX/q0SCFgETdQHkJNMwxP6P6Kkhh0jrCtvz4qqIauZEhnMwOY3dRiSnI7jJIZCVTJ+vMnskU3kFSGAvRsk42+13a2I1fDn97eipnRPk3WSI8XdnKc9IC/r+UmNU2pCh9vOeK51kgBQEDrGeNubZKEFR5Bc2EeuyF8Agbcqw9JmeVvYBQWbQszra1QsdxI9cx2reDmPrHYx4VYZzq1oC9dmPfT0A16zzh5TBTsVor5hN1gzM7AwbI8kwInA0PbbvPfCMIXfaQQlAdYmKeK/vl2ZPJ/0J57vIXYRhOBjUFQdphbLquED2SkZ6X8215XP+yOMrHJbnJBljKVTtopjQT7n0TJmgf5cNPb91mrLIR/14NqVDQhwMKzOybDH5HOvOm5z0z/ho1PpTsUau/232p8V3NYMsMmoY7fMjd3LsVAvx2Qo4WitqZjI1I1Ql3CQEo3NRUUC1VubvTWN87SXUhKl/VLcnsGOnmfU96j2ZTcYrSSq0qykKhBHnazgitRR8W1/Q== X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 9d724aee-fa6a-4573-8e9c-08dafb036192 X-MS-Exchange-CrossTenant-AuthSource: SN6PR10MB3022.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Jan 2023 16:28:36.8689 (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: Cu16Ta5VBPDcR0dsb4+1hLSQnrZbr3XwWe7C/wJb4PlaeTtN086WAPVhemIkyrvNDdQKFmAkjlWiWjEuZ4G+KA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN7PR10MB6381 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.219,Aquarius:18.0.930,Hydra:6.0.562,FMLib:17.11.122.1 definitions=2023-01-20_09,2023-01-20_01,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxscore=0 phishscore=0 spamscore=0 mlxlogscore=999 bulkscore=0 malwarescore=0 adultscore=0 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2212070000 definitions=main-2301200157 X-Proofpoint-GUID: Rs8qyejwSrEQWaQBGCKSae-xIckzTPEA X-Proofpoint-ORIG-GUID: Rs8qyejwSrEQWaQBGCKSae-xIckzTPEA Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" From: "Liam R. Howlett" The split_vma() wrapper is specifically for this use case, so use it. Signed-off-by: Liam R. Howlett --- mm/madvise.c | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/mm/madvise.c b/mm/madvise.c index 02b317726c9a..7db6622f8293 100644 --- a/mm/madvise.c +++ b/mm/madvise.c @@ -161,17 +161,13 @@ static int madvise_update_vma(struct vm_area_struct *= vma, *prev =3D vma; =20 if (start !=3D vma->vm_start) { - if (unlikely(mm->map_count >=3D sysctl_max_map_count)) - return -ENOMEM; - error =3D __split_vma(&vmi, vma, start, 1); + error =3D split_vma(&vmi, vma, start, 1); if (error) return error; } =20 if (end !=3D vma->vm_end) { - if (unlikely(mm->map_count >=3D sysctl_max_map_count)) - return -ENOMEM; - error =3D __split_vma(&vmi, vma, end, 0); + error =3D split_vma(&vmi, vma, end, 0); if (error) return error; } --=20 2.35.1 From nobody Sun Sep 14 14:22:07 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 73091C25B4E for ; Fri, 20 Jan 2023 16:31:10 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230255AbjATQbJ (ORCPT ); Fri, 20 Jan 2023 11:31:09 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:38270 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230242AbjATQbE (ORCPT ); Fri, 20 Jan 2023 11:31:04 -0500 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id B72F2619A for ; Fri, 20 Jan 2023 08:30: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 30KGBggQ011434; Fri, 20 Jan 2023 16:28:45 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-2022-7-12; bh=jWHgUTZwZaztKJBOjvH9mNdNg+9MnJY7IDlOLmIWEug=; b=QlmIy21S1yVCosxUx7hFeoRllUYl2djG1zHPDBUgjSGpgb9gnc33r20vOQZN40WXLi1B 5QgwkA0cYtxm82WJDo15lZHmG++UsFGrxqmrasERGg7667kAeKmp481OI1QOMFobsp80 egb9IQKY+/xsERt21FU/ijSaeC+2oDwZCzs4P07nDbKYrzeJ+v39k2LetmaX8v03zP9s GpjGbOTmW2gwocQ72D2Q3v6vW2zIUrWJnZWKGOvepGNVXtYN1N6C2ZayrZq4CI7lqYMn d1IjKNhDKI1dx0X8mjf1HxP6o/pBbr6HruFV5pnPiQWRz6P2Sm9rpvR8A1laLDKENo/f VQ== Received: from iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta01.appoci.oracle.com [130.35.100.223]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3n7895aqs0-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 20 Jan 2023 16:28:44 +0000 Received: from pps.filterd (iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (8.17.1.5/8.17.1.5) with ESMTP id 30KGNOda004659; Fri, 20 Jan 2023 16:28:44 GMT Received: from nam11-co1-obe.outbound.protection.outlook.com (mail-co1nam11lp2177.outbound.protection.outlook.com [104.47.56.177]) by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 3n6r2w1gs7-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 20 Jan 2023 16:28:44 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ia89G8af2WN3/IPK7DqpJ2SNdq+maJLLiai4jqoQfOFBGr4SMdhNEr+fMFcNHO9pU8D1JACvtm83gIC+gce91KZHjlhJl1S2aXLGnmxWoGixdD3CaEWAo9nrNV67oXsfU6T+h0nJ0wohYeltOOSBMoRllM/8msT4vBpEGLsQWOlNPOi75R97AU85zKt9JhRbmSzHsLRo54IpZNiMdM62seNmv2gFh/ivVaGGvLtotwoyYvLX9odsP0y3meE2o0tm02QKgwWXHfr10RCNPlUocE4DTU3WPY7g533YKRqPYNNJx7LFvxR5ii1FxWLoL/DcKxxkACy1SoEMUglD8LFuBQ== 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=jWHgUTZwZaztKJBOjvH9mNdNg+9MnJY7IDlOLmIWEug=; b=dm3ES5bF6sdtph9/RNgsF1gUZipK30KPOF+VA52+dB3SM5XDyInuDX1cjMqa/5qWsu4gUtvEV84IHhUki/MUe+dgnjG65HqbKoHaLeKNLIvlj4kvH1f6nVVslKT44TRG8nnnuwbfPtJ1NMNEoV57UEXrdf2qTFZ/ErRUhGTBAdk75m1ike9SlLPsY9j24XbiBvEwZ33prlmDAKDlCzLYDuaHD/SYrxZTqiYRhrWq09HD62Ye4gmmFcDFh4qTyPbQY1cVhROKRMa5lz0QFPNikHrxWzfURGgAurpAzENxe80+5xZJhXGcXmk1qlvghrJW+0DRhsC5SHmqRe7llH+cxQ== 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=jWHgUTZwZaztKJBOjvH9mNdNg+9MnJY7IDlOLmIWEug=; b=eBeg9E5xkuUF34VGUp4pU03q8ypODYGS95gUEELIqjzjkrXHmDo/tbz5w+aDEdVg4kN2GmKo0nF8zuSeVzBpa6XW1cecHor6hY/q7VHA3h5X4G2Uktf0/wpvucMRtgpI/Pq2hWPx98pqtAMBrLNJM6jXdF11/7JHWq3cCXA35ow= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by SN7PR10MB6381.namprd10.prod.outlook.com (2603:10b6:806:26f::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6043.5; Fri, 20 Jan 2023 16:28:41 +0000 Received: from SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::7306:828b:8091:9674]) by SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::7306:828b:8091:9674%5]) with mapi id 15.20.6043.005; Fri, 20 Jan 2023 16:28:41 +0000 From: "Liam R. Howlett" To: linux-mm@kvack.org, linux-kernel@vger.kernel.org, Andrew Morton , maple-tree@lists.infradead.org Cc: "Liam R. Howlett" , "Liam R . Howlett" Subject: [PATCH v4 34/49] mm: Remove unnecessary write to vma iterator in __vma_adjust() Date: Fri, 20 Jan 2023 11:26:35 -0500 Message-Id: <20230120162650.984577-35-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.35.1 In-Reply-To: <20230120162650.984577-1-Liam.Howlett@oracle.com> References: <20230120162650.984577-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YT4PR01CA0050.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:111::10) To SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SN6PR10MB3022:EE_|SN7PR10MB6381:EE_ X-MS-Office365-Filtering-Correlation-Id: 2325895d-02dc-4c36-db58-08dafb0362e9 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: WGO6e7B86bCZ2iMVTU1BdjwHqD4r2eX2SNM9JQP2ZcNgUE08puhVHtvJKZiN7azrm/udNoWlbsDQkRrMrA1MjLBPLvbJ356U9tsASx3+eyXnl4DAUkjhquya83CcjQz4enqooMCDhnWxeyiV1PzoebCno2wnUG/NVdmggUJetcy7osP7SDbinpzR8FW1bWhhF5e6YZLZAYOyNAKChPXVgdN7SOymBkikK4/10SQ9W/ifIC+q5LifZl5ZTC37cAb/ncV9SorzMmP08iMBy8hC2daSYH5HwYgwIfP0q5hL/W4RypXsdFBwQezHMKgs2FS9o7VQHbeLxX+MdDc4DQ5sAGsi8H8EarX+2J18YD90fh4XdmpEHpnTRvXFsX6vNlXukRpIXNv2I75zEnoOwXQiubj+BRuDNJW6gaZIUEwsas8Tx2H3pwWt3s1e0vV3AGQj+jID/XhbiIOKW29d4BCfRbHTjda3vPQV3PDH4uczo0VLZEtyNBtW0VAbTlgvyW+Sy4wWpOnd2ELoDtpHLQlzVHNu8QYPIlhbXzje08UdQNlGX86dnjNqqFPVfH1fv0rpJ50s06wMyIgZt7OfZiMF/XVX1/BDBROp9pjlfTFT4Wjn+Ijuz+ewGolOx56do0cMGFR/ostt8PwI/T67QOqsXg== 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)(396003)(376002)(136003)(366004)(39860400002)(451199015)(316002)(26005)(54906003)(41300700001)(2616005)(4326008)(66946007)(66476007)(66556008)(36756003)(83380400001)(86362001)(8676002)(38100700002)(6486002)(6666004)(107886003)(478600001)(6512007)(6506007)(1076003)(186003)(2906002)(5660300002)(8936002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?r7apehFTaIKa1So4gBVOVlaqSbMz/AhjXF2FHEaedxeAzunfkMZtyBtOtY21?= =?us-ascii?Q?eQ92Sk5et+KuyQugQ6F6m97IsLQZSqGwkKF9BlfKqWaF//mGfdvzQmytR9U1?= =?us-ascii?Q?iZZ9CD545wPU6s73GgCArF65IJS7qHzmSOmkgFTvDVdAI7SaDiqTx38k+m3k?= =?us-ascii?Q?2gUsCjhkPLGiwjz0L1jFP3SdXkvv+TLxHpdNy2L3lFuFOgyuPV+EMJDFn5dv?= =?us-ascii?Q?7TTxzaSJgVKH4hv5RS6dj8AS0S0evNoa8beAWw36VmmXxGjVB7YUMCTjnJz4?= =?us-ascii?Q?LAtv932FO9CfhXnfAZPSeRkjoeAeY3BcgUpxbcah5osGe2sgt4xgTijqVExY?= =?us-ascii?Q?Uz3qSkfkmD0NaAL5kP5usxm2Aa2BocYRoBGrE8S6khcavWnbeZ8O/O/QH3TA?= =?us-ascii?Q?bV14EXYCJbSmGfhm4sayutuCyrwikE08vZ7RKfhMQkk5hWOKiGSFbKBfP+dg?= =?us-ascii?Q?heG8VhYM9S8ebo7WPGd/HC+Kl4BD2oAZkwxZ3wT826yqz+3loi9aJluClMN6?= =?us-ascii?Q?IO4X9QtZH54ZbMKhsLFhf9/Aew6IukEkdMpTGsb/SUYbThHg6CToq7Oa19Qm?= =?us-ascii?Q?GmCDV8VeFkBcOvZfE4PPfDxbpgs0F8YQmZcz0yMwlynOllGKdQock/wGjKAT?= =?us-ascii?Q?yu592QVtPPWoCaCiZ67CCYEbLQTOxALEsijEw5qCxFLSWrKoEnE180AaaFE6?= =?us-ascii?Q?/Ln0Oi7yqG2Y8yXIWB3hqlbbzyUJviXvJdt8NV6p3kK9fQ6Cglq+3uKx7Qi4?= =?us-ascii?Q?9HJw1AADQjYWiJ3lLPP4PRYtop1nWeX5VjKR5kiiA8TdxbjrDpuW+IWsj5pR?= =?us-ascii?Q?/5uB9XFcoh8ZknKuG1juuUsAVLQkaBZB+BvL6Xt/CV/9ATvYfl+F68h1E9/r?= =?us-ascii?Q?6onZzxasI30cDclYFLnMh8rgzatOj2JmcChUFJfVJJhgwpqCj1v8vqZi8QZQ?= =?us-ascii?Q?czCT8o26Nz0EOahsjdWAa3ZzdBDmSIstpgHoU7MilZwG04WwpihUePPTo0FR?= =?us-ascii?Q?Wx2lv9TCYyBmCBhoH99+Ew4fKL/gJLaKXvFsi+KKLyL/TwoyDD+KNrKDn472?= =?us-ascii?Q?fanSMqHHLQf+V2UhmiuKcShxHezb2gmeymxzfzt8BfggC4YFUmcbxYXmqmes?= =?us-ascii?Q?HGhX3kNyLvrQGkhBbfKhDz9yr0KT2FzCASiF0Jdeo84X5xVGSUoOBAPXt1bU?= =?us-ascii?Q?vnyv1+M7vPTnUv48ZRyDso7Z4hJtCer8tK6ggV02kMGnSqlydm4w98C4SyxI?= =?us-ascii?Q?qXdkhR0wKbkMCHhFRVru7BePYQJRfNOfRg5Pf5p8o15QWZ6QYBAMSn3EXpsw?= =?us-ascii?Q?aDC8pvePF1+SCDBIqxBFO+HVxvYe7knwdRgvaCuBuWdUvaVB7u4k4TbFYPvM?= =?us-ascii?Q?QY6CQT/zV3xGBURZO0FW9sdxkHaaQ/bQe+syS4buQQFbvCx0EdPxzu3njreg?= =?us-ascii?Q?Jg8zTp1HzPqAxX95WDlHpI35Ep8sFheNEZgsoaj6mHIgapUizhYf5oBYdQ8y?= =?us-ascii?Q?K7RZQPhHOYfZszT+2tltFV/sIZmnUXp5LVU8LhwyuLWgZLDaxszdgOGFOAT5?= =?us-ascii?Q?uucOShQ5J2y3iVysW7Fjjksf6ogXacYhzd4yl4CQJRZx6DA/oaDyn5E791v+?= =?us-ascii?Q?BA=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: ADSNNl/gZvWOFbfuMGCa+MeOa2mLkz1XL0W+5NlFSGPGeFH151Q1CgRAXn2EbNH+bmR7SOMfv1RuQQ1JTiYGAg4xwVLFOTTlhTZCi1bJQ7OpYrPsKalWjayqmGDc6VZgDfDmQAZkGv/4N2G51m5m+OR6MbsRk9ZM3slXKyQeCpz+VP5V6Qj3rwwxWxrQz/ZPX9xyb5a7ZfzA+Kft275JeOZE2I1xaOzlX7Wbg+kk/gPJRjAJAYiRmORIA9jWvL/xP9BQ8QlyEOZAcKVR6S3sGi7obR0lHUwEfle3I0+KJTHC6Fi3jWh26/sUaOMYMcxpQkfFhHOHdVo4NHyM3nHH9DUsJITIB9K6t/cPw/jKJFBo9t62V9PgexvMk4ndlGaHefzwgFac1c2HG1q4cqqNJgni9+C0k00OufXycY5wiRT0Dicto1dJBVQD6OiWz1OYDG1CyvbPz3ZE2K1qGDdbe1gnfmdK/k1X/PqCn0ErmeIOs9S8NEukvTQz+KStlJyJz6rv570uYn0QWoImNk/ltgUxgzM9AoZ2v4r+XKCG4Dpb+/GDKL9Xg18LUd9ARsqrOXaMJ1FP/2NPIk0DXim8KBruPPl+RSy9cXEGHsPoI7S5zxNvkmk6Tlm18xGZgBEDT9i21q3Cnan4AaIQ7etkSefGA0gLwdeUzaH8g1hG+OYzlxElXFizRRiG+PTwYzQRLSJBKSk6/fdlg/GiRDAXzcl/t1tHaYT42Ta9pYxmLrAlR0kNFOVWAqdayfDyAseJPDkgHNoo0LdTWkUNkpVTl+elkezhd+sQKtPFYUzM1OO64fJeBhY+UaeoqFHoB0U6tBhIjH2Olj1Y6krUlblbLr4o7NYwRpSgCJz31bVkPUb4ncOpz1aSPjnYxcHk51MfYVlG7r3xw4MyR2bHdRh2gA== X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 2325895d-02dc-4c36-db58-08dafb0362e9 X-MS-Exchange-CrossTenant-AuthSource: SN6PR10MB3022.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Jan 2023 16:28:40.7905 (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: DUHJi9WlzOE+lyd2NdA4/HPiYJAutGvEE9sOOwE46VNOiXPrI011+ZboVYEhDoEWy37UjcJo9BgSQDFlrid+OQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN7PR10MB6381 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.219,Aquarius:18.0.930,Hydra:6.0.562,FMLib:17.11.122.1 definitions=2023-01-20_09,2023-01-20_01,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 adultscore=0 mlxlogscore=999 malwarescore=0 mlxscore=0 phishscore=0 suspectscore=0 spamscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2212070000 definitions=main-2301200157 X-Proofpoint-ORIG-GUID: ylG8RIj9HBc5xosU5AvMROWcvNnsZ4hw X-Proofpoint-GUID: ylG8RIj9HBc5xosU5AvMROWcvNnsZ4hw Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" From: "Liam R. Howlett" If the vma start address is going to change due to an insert, then it is safe to not write the vma to the tree. The write of the insert vma will alter the tree as necessary. Signed-off-by: Liam R. Howlett --- mm/mmap.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/mm/mmap.c b/mm/mmap.c index 5f03c8f3f407..58b2187b447b 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, } =20 if (start !=3D vma->vm_start) { - if ((vma->vm_start < start) && - (!insert || (insert->vm_end !=3D start))) { - vma_iter_clear(vmi, vma->vm_start, start); - VM_WARN_ON(insert && insert->vm_start > vma->vm_start); + if (vma->vm_start < start) { + if (!insert || (insert->vm_end !=3D start)) { + vma_iter_clear(vmi, vma->vm_start, start); + vma_iter_set(vmi, start); + VM_WARN_ON(insert && insert->vm_start > vma->vm_start); + } } else { vma_changed =3D true; } --=20 2.35.1 From nobody Sun Sep 14 14:22:07 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 0301DC25B4E for ; Fri, 20 Jan 2023 16:30:50 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230254AbjATQas (ORCPT ); Fri, 20 Jan 2023 11:30:48 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:37682 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230209AbjATQao (ORCPT ); Fri, 20 Jan 2023 11:30:44 -0500 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 39AB1893E2 for ; Fri, 20 Jan 2023 08:30:06 -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 30KGBbSg003336; Fri, 20 Jan 2023 16:28:45 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-2022-7-12; bh=7C53ousdziI37cbxBfN0Xo+nYJxD9WslkqlikZo2qKw=; b=JxO79Rv8If/FFnfaJz9n6jmzj+9UZFHDKsmzOC/LMh4uBd2smf1LUiDEKQN3wUPSosbo G9uc9fMV29rDXAeGffFHok5/rUzxluNuPaph7KXUAiZeRqfM9DGY6CML4OwMvUBNggfF 67h+2za8pPBuIOEeX++6e54D2tHIAr0sNGWkC/ATf4+dmSct83cJKXXojwW7ID8SdBCX Iv1ayh1VnYV5TRo3K8hJu63T7SAIW1OPuxKl4t0gDnCR93WlGbZnOePHrJBi4keINgfM QFUCm4nwH7o6evh2caT1Qglt0aZqSRJLg4IsgEr2QUuIWy3tOdeHjnKcc2ZS/ZBTrhbE jA== Received: from iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta01.appoci.oracle.com [130.35.100.223]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3n3medn7h3-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 20 Jan 2023 16:28:45 +0000 Received: from pps.filterd (iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (8.17.1.5/8.17.1.5) with ESMTP id 30KGNOdd004659; Fri, 20 Jan 2023 16:28:44 GMT Received: from nam11-co1-obe.outbound.protection.outlook.com (mail-co1nam11lp2177.outbound.protection.outlook.com [104.47.56.177]) by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 3n6r2w1gs7-2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 20 Jan 2023 16:28:44 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=SqptT5iN+Bz8uzJ+2+MschwuW9Jb7hE9isz0+Cd+cInHBfGJ6TIaEdhsYGFfWpbbV+A1I+4Na6vNzapUPNQDJsun4yqr5JXry5EEHr5WmbuYHG+8jnxLffU2H6/cbEsm/upee14kpM3Scwxwg5XbIXh3JuTut9fmmdf44IFYHhCvP9E2Ic2zPy2drPi7t7nwJu680/vW/9KX8I5EDaUYcv3CRntp6XMcijkSDzpX3DYiPc7VLETnYRQ54yGMo1DdSU5A4rKIzxN+U02HaKeNfrWX4Yq+yKyjASyYU8OzaA7KO6R6ztztwL2BTLSwXvIx58kFFSJ7jiLAGRXhL0f+9Q== 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=7C53ousdziI37cbxBfN0Xo+nYJxD9WslkqlikZo2qKw=; b=BOpCUVrYqcI5E3zAnrRA27MomuddhoW1hwHIDGlizdhy6cn396zdvXlyIEST5xtHALwR++r0JMmSYS+hRGRnhUoc6te3jVlQUE21+nQUrWl5GVrGWpYEOM9+372EPnkwuLtPwP5EQQhhHaxyfLgAQcH0uademXGB1T2Nf6fW6PPiVhFiLlIuQmrFlVG/QrZYGd5WePdB3Z/xGAzycH80gKghO1PJTIBuHGtQpw65YM6XsnGx2Ohci/cus3b+1zcPyUE7jCs8C0wbt0n/jKnFtYg/gfa2f/5LPAiMjkjKPRc40A+uwy4Nubl6L68WpdgrQWvTe4wpC3KrlaHnhQE1Ng== 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=7C53ousdziI37cbxBfN0Xo+nYJxD9WslkqlikZo2qKw=; b=bHMkuz4EuQ3XXEOMVjtGMnOWorl1j9KXRajREWGBQk2zl4dHTTGA9SROA4Hds32ggVo3Rrdr880ozJJF/6J+ojpLLNc5LjzZDF+VOOnDOdKPGfKLUvjMSOpC1AH2QvwhOEAZ0Nu7xtF1gSmGGv6/KAS/C1Yi85+BD98WNACsj1g= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by SN7PR10MB6381.namprd10.prod.outlook.com (2603:10b6:806:26f::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6043.5; Fri, 20 Jan 2023 16:28:42 +0000 Received: from SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::7306:828b:8091:9674]) by SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::7306:828b:8091:9674%5]) with mapi id 15.20.6043.005; Fri, 20 Jan 2023 16:28:42 +0000 From: "Liam R. Howlett" To: linux-mm@kvack.org, linux-kernel@vger.kernel.org, Andrew Morton , maple-tree@lists.infradead.org Cc: "Liam R. Howlett" , "Liam R . Howlett" Subject: [PATCH v4 35/49] mm: Pass vma iterator through to __vma_adjust() Date: Fri, 20 Jan 2023 11:26:36 -0500 Message-Id: <20230120162650.984577-36-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.35.1 In-Reply-To: <20230120162650.984577-1-Liam.Howlett@oracle.com> References: <20230120162650.984577-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YT4P288CA0007.CANP288.PROD.OUTLOOK.COM (2603:10b6:b01:d4::8) To SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SN6PR10MB3022:EE_|SN7PR10MB6381:EE_ X-MS-Office365-Filtering-Correlation-Id: ee354a16-acb3-47c1-187c-08dafb036539 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: NB3AoqcWsp2uJknIBuciUtSrANYevzq/acUC7Ihpyk+aE50LJ0E0fdDMn2C0oJOlXcr3YQ0ocsE4S/IG06QNrx0jR9UL9iI+LbJS1QOGGr57dUK0ahm0VzSY1Zn7JM7ZBa8dBLposuzyGyufeJ0rO4i9R0uLhu8a4ZZXFrzT64DifQKdFISuyQVgcPE/MyH+pg4ooUYXtzzw1RTHQdaI/71Jksh+DsnACpTsXtD3qUMmc3uMLnksSBF/1HnjVWUgf6dLw5MYC2baW3tncVL6A0j8Ql9Y2/Y9QBY+whOi+SMvni5M9aiTAz20fj7y9w7BmAWPxOdIFheFKCFoydZiTVsr3wsGC1MKh5JPV2f+iK9w5TmQ998NIkIADFnudvCEjwonkR6O62WauH5sNvMHAMi02hA/ZuINIcIo8px19TiP14S+dfRemMC+ITYCgomhSuflctHLnLnhS7RM1KttJySHjwP+e5DXSbvnAEOtTImN/JllUjmHSkPGnsOSVKynC1zh+Wrqn9VZctitHJQVIXmJGi+Q8HJXg534Zbe9mv9T/r5kh9qxaNKQ0FyNXYUeJfY3alakf0/ZSD0Js4qPLA6ZYQgMr/NpYhpmrYRtQy6obA5r65gAi5YUNmm5SmecWeu/Dzn6iXVEnGbWG+lazQ== 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)(396003)(376002)(136003)(366004)(39860400002)(451199015)(316002)(26005)(54906003)(41300700001)(2616005)(4326008)(66946007)(66476007)(66556008)(36756003)(83380400001)(86362001)(8676002)(38100700002)(6486002)(6666004)(107886003)(478600001)(6512007)(6506007)(1076003)(186003)(2906002)(5660300002)(8936002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?YQsGzM216EVy++T2Hs7HJem4KAzFGv+EsWIIDTqal17Jz9rwFZvHuhCG/d5y?= =?us-ascii?Q?Xxf2S1RrKW2b3Hg9wGh7tB6TNRjtYeBJ4AIFKeMZ+2Oyqln4k8hybQhFf3AX?= =?us-ascii?Q?9yljs3jXtankVQhXOIo03uw/gn0yNq29XmT3nXL/a+PXKFWo9IbB0BjgVC58?= =?us-ascii?Q?djJBSId9ml9+sxzm0sJaRZiss8zo8ZNlibYTqPv6Z/LR7YlI0YZbTb0VbpN8?= =?us-ascii?Q?1Umfgv9OrMOPIeLE5XxEtdDuhmWihqSb6auyrGfYALS+vlKkst/WjVVfO1YK?= =?us-ascii?Q?4qrGSXKB0z7NsBHKPH6gQojfSgf3gGnlrZsct+MFpXeQWVCJ+/LcvgIOQeqe?= =?us-ascii?Q?Dtg5cpZyoB6xo5gIx1EKXmnY/zCTXXjdoBNLxdtdxGRMVMlTz+o8cqzOC7Hh?= =?us-ascii?Q?sOz9UFnNG/fdH6jlEx2tkeis9F3oQ996JfXBamTpTDapq1BBNFdrO2uFmtzy?= =?us-ascii?Q?FDDKj/StC2pztPdoB1PlE5iRb1eG3V2QfljaaGQLu1DuIyMnQHG7IhRdOPIz?= =?us-ascii?Q?kx5Ah1C7QPwQiVFFD+fIog93q02vx1EF+2YdI1OihbBEic/tc5oWnQT+M9S4?= =?us-ascii?Q?oqt3IcPOb/cJDUcwtr5BObKYCRJl3mQTzbyAOrqN2kI/HA6YOhhhP4Di1Gpz?= =?us-ascii?Q?baardl0aG/KzAJJEi6zv5XYQW4bXSGNjeEUdIOl+F3PiVjddrf1g15cjfEaw?= =?us-ascii?Q?wcF3p+WzHmCRaID9Zhg57Qh1kUia+cdlMUJCySl1V6OQ8nhA3/Qwywpg8Ulx?= =?us-ascii?Q?iEJR43PvMUUxRZgCt1ZwnSHfQBbao8UXW7AGgkwjUtQMd8dT3tXohn0x4y95?= =?us-ascii?Q?eBVnKwzgPq/G5h7dZnFa0FOTDZy220H/6VaEAw7Ergag5OTMcQYogOUihTXO?= =?us-ascii?Q?apuUaEU/kAeyrPCQ+1LpIag4SUGhmNj1imBMygimQ6vTDg7KaQHJui98HyL9?= =?us-ascii?Q?y37nfyi+kZr7J2hlq/LgVGY8h7+r30qJ3+bixDDD+IeBo7d2iaXlDu9fo9uR?= =?us-ascii?Q?Qfn5/P/EDszbd0lDBETAgomY9wmEB5tSZDvK2zSMJvnm2qqMxDvSgmrv/S5g?= =?us-ascii?Q?Rfg/2s0Xka/sch8wvSpFn8Ox+MlrWSWMQYU4eW1uVLR54V80MEbsU86/ZV4X?= =?us-ascii?Q?1cdH0PQ2Hik8WQu2V/pg6S4Tx7UJAHKsNkaSMYsh5SMtvSZMs+lqbtOcHL98?= =?us-ascii?Q?Y0AGZuS/hav1E6U0dO74W1DDYqY+elbfiywVVZ2pVCzqlUWLq/jvg7cFJB/c?= =?us-ascii?Q?+LpQ1GrqZlurAC93BXvt86F13zw966NJspfG50ImG23X0jXPCtrJN0ZGD6lR?= =?us-ascii?Q?033pNqM3IGhlrEjQYgSfF3e1WqkyMEGRjwCDrMRorR9L1eLIPjeI2/1NIpuP?= =?us-ascii?Q?XfBbQoFm2tDedgqxbGzvRzRMvXqGO1NrQU9zvtJR3Nel/7FknadpcQ2CQ0xz?= =?us-ascii?Q?2Yewt5vpOwR9QrhY4SXVhugk0T2ffPosRJ5q5LORJ0H4awn5LuE6wE/rC+rl?= =?us-ascii?Q?kqC2fcd3TThdqjpdi2gGT935GQs5QbbPl6QqJnxjonxrQ5SroJagzw4CAfNQ?= =?us-ascii?Q?Rph1KwXZLbVGADKTt4O2qD2QuLK3h2rsRPIVRX6wNg7v3NupvLl9lUAIUqWh?= =?us-ascii?Q?Og=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: mSHODp32Yp1fuEjV0QoWd3GRnO6HPKUy1IUtjN44JnvP6qhzZySIfrKKWOQi/ygzStBo1dZy6YbyaVf7JN113IgIu3Jpw3E3y4npBuAZMBtDijzNsqEvfYS7y4QAFqG9flf2QUc+YbQyv24BFQ8WgBynefrhRnGZCU/x9CdL1h8MVa6eqsCwopFRKxzn9KdNdpUDLQxmc9HVXpiD4IB3FAwp4T+MTbiznNtWg3nZx8p0I3vmaK7F8ZPNybr9jQ7gmkwUsNdY+t5QWD5Gt9KvgpuTWN8jHB5cAu+00heNnJdgwMlDqwHxMJEMC/FcktB0c5HYjdH3j2/sIzTUtThg0GAjyO6gahskNRQf1O3Oic+jgE10iCgRXXiNg/q7Y9sckNveRjq8sRpJYQVWlg/fbDMrs7LglvdYYK3x01d3pHO54Vq1ReapDZqwZgitJEJkSeHy6KcWdP40hu0yS9jqFab8N2nbAP1XIfufWxviXJXHTbg3C0EPqYU2q8zgNCCpAPJYQUPlBbhwCVcbLEV+dTWjtU977UEIGGObsAG5kFqL06iUqgW0sRhOZMAtxk0zYblGFpUY4eDMzCMKH6aN9/z5KGpj7y8782a17Za3NZPMAwH52upZxBhdwBQX+ROBZvsZwjGKa6tbpDeTasgS2pzXLwJPB1vjfN2MYODVjSJNeVl8qmkJ34y2m776W6i5NF2nLZkL1qKlcznbLOOAT0JaDPf0Dk6rVwrDfMrG4Eg2ATHoxldjZ/iSQ7HUnoX6xGOdR1c+def2DGIJd7HfTEoizrBRyANbZWykN+NQb93uk9RGjvXpHHuO8blD46AE4IoYxrhJc+dbne+9HF/gHEKitRZ6pl2XLGUEZJY+O7lmGfa83kQD8rWzqcgBoazLDXBhaIbNBxPoB4NIEaarJg== X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: ee354a16-acb3-47c1-187c-08dafb036539 X-MS-Exchange-CrossTenant-AuthSource: SN6PR10MB3022.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Jan 2023 16:28:42.8841 (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: goQ90hcQOgUTeD46eVMH2wGxqFiZBZYJZeAFWlM7me76/Cspk/OBbSjuS1Rfdot4DRQWPAETW43T/IQLwdOzGA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN7PR10MB6381 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.219,Aquarius:18.0.930,Hydra:6.0.562,FMLib:17.11.122.1 definitions=2023-01-20_09,2023-01-20_01,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 adultscore=0 mlxlogscore=999 malwarescore=0 mlxscore=0 phishscore=0 suspectscore=0 spamscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2212070000 definitions=main-2301200157 X-Proofpoint-ORIG-GUID: TgrmUuWoXuS7wExi7mGq8FAlldkEyGWm X-Proofpoint-GUID: TgrmUuWoXuS7wExi7mGq8FAlldkEyGWm Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" From: "Liam R. Howlett" Pass the iterator through to be used in __vma_adjust(). The state of the iterator needs to be correct for the operation that will occur so make the adjustments. Signed-off-by: Liam R. Howlett --- mm/mmap.c | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/mm/mmap.c b/mm/mmap.c index 58b2187b447b..c7d72475ba6d 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); } =20 + /* VMA iterator points to previous, so set to start if necessary */ + if (vma_iter_addr(vmi) !=3D start) + vma_iter_set(vmi, start); + vma->vm_start =3D start; vma->vm_end =3D end; vma->vm_pgoff =3D pgoff; @@ -2167,13 +2171,13 @@ static void unmap_region(struct mm_struct *mm, stru= ct maple_tree *mt, /* * __split_vma() bypasses sysctl_max_map_count checking. We use this wher= e it * has already been checked or doesn't make sense to fail. + * VMA Iterator will point to the end VMA. */ int __split_vma(struct vma_iterator *vmi, struct vm_area_struct *vma, unsigned long addr, int new_below) { struct vm_area_struct *new; int err; - unsigned long end =3D vma->vm_end; =20 validate_mm_mt(vma->vm_mm); =20 @@ -2209,14 +2213,17 @@ int __split_vma(struct vma_iterator *vmi, struct vm= _area_struct *vma, new->vm_ops->open(new); =20 if (new_below) - err =3D vma_adjust(vma, addr, vma->vm_end, vma->vm_pgoff + - ((addr - new->vm_start) >> PAGE_SHIFT), new); + err =3D __vma_adjust(vmi, vma, addr, vma->vm_end, + vma->vm_pgoff + ((addr - new->vm_start) >> PAGE_SHIFT), + new, NULL); else - err =3D vma_adjust(vma, vma->vm_start, addr, vma->vm_pgoff, new); + err =3D __vma_adjust(vmi, vma, vma->vm_start, addr, vma->vm_pgoff, + new, NULL); =20 /* Success. */ if (!err) { - vma_iter_set(vmi, end); + if (new_below) + vma_next(vmi); return 0; } =20 @@ -2311,8 +2318,7 @@ do_vmi_align_munmap(struct vma_iterator *vmi, struct = vm_area_struct *vma, if (error) goto start_split_failed; =20 - vma_iter_set(vmi, start); - vma =3D vma_find(vmi, end); + vma =3D vma_iter_load(vmi); } =20 prev =3D vma_prev(vmi); @@ -2332,7 +2338,6 @@ do_vmi_align_munmap(struct vma_iterator *vmi, struct = vm_area_struct *vma, if (error) goto end_split_failed; =20 - vma_iter_set(vmi, end); split =3D vma_prev(vmi); error =3D munmap_sidetree(split, &mas_detach); if (error) @@ -2576,6 +2581,7 @@ unsigned long mmap_region(struct file *file, unsigned= long addr, goto unacct_error; } =20 + vma_iter_set(&vmi, addr); vma->vm_start =3D addr; vma->vm_end =3D end; vma->vm_flags =3D vm_flags; --=20 2.35.1 From nobody Sun Sep 14 14:22:07 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 7C685C05027 for ; Fri, 20 Jan 2023 18:53:57 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229801AbjATSxz (ORCPT ); Fri, 20 Jan 2023 13:53:55 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:58564 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229737AbjATSxw (ORCPT ); Fri, 20 Jan 2023 13:53:52 -0500 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 358C0577DE for ; Fri, 20 Jan 2023 10:53:46 -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 30KGBYm4029935; Fri, 20 Jan 2023 16:28:48 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-2022-7-12; bh=Ckv3Hs5WM16MW5wP9SWlQ8M7ylH1vcV4/Auox2N1Ci0=; b=Ucz52MSYvwFineFwHDy4KJXcPfmDfBj9qPS4kftQ6QF3dV8tzntHEeeXEGsGlwGfeSxr YftYahIhqqWyCWNzFKtBgeipei1muvi3a6miS++jpbin7dGkV25czmW/c/oJnBr1hknf o+7nj7ZEJgxA4LC34nhlQTeCC02Rr7I9BQdS1cPuMYQckmQcemFNBD+SXGaiYdRyN8W3 Xg7l7Y6vgQ3msW8sLneO5R5B+4Lv77JiJNR6z9Ubk2x+wCh2PixaygBOHJYoGHGu53uS atdxe50+M+I48LnbTSxPmxJOJLAtY1D1E2gseV1fzOX1syXyLjkAGkANIqvCuatAF5Om 6A== Received: from iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta03.appoci.oracle.com [130.35.103.27]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3n3k6cd3f6-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 20 Jan 2023 16:28:48 +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 30KFY00u013475; Fri, 20 Jan 2023 16:28:47 GMT Received: from nam11-co1-obe.outbound.protection.outlook.com (mail-co1nam11lp2173.outbound.protection.outlook.com [104.47.56.173]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 3n6qmfayy5-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 20 Jan 2023 16:28:47 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=NalIPyZInnmIB/xQnUiC9VVhLTE/4FJ7oqdTaq1iGibRr1rYYzgPh9h/0eTECIlFuH+hCcGHy1c/k6ikOXDq6QsPbvRUqRXW05Djp4vRkYeCBQximA9rmzByZvh3R14fOce/mB6PoEJ7AxXVon4U6PciLJMsTnN4lMa+dOJnYQzeM82U2WcrUGQUh0wYUOEPNROCtqTckq5fpJnttvI9VEXk3ejsluvuRLpF6WlJST7NXFI4GLzltTNjzNbnW5ddItonOiX/2XXzJQ4IDd3Nx2IwdPkF7Znv22iIwU+i0uruiCCSRaDqjGCNRbcHv9lNsy+MsZV2i3c9M5KPblFxTw== 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=Ckv3Hs5WM16MW5wP9SWlQ8M7ylH1vcV4/Auox2N1Ci0=; b=PByR2V6OStb3y4iXRVqaD/1jCkOUkb8bC2oQXCMatAvvaKei5Fi935Pq555sbeFqVmYC7fO8iVVUBIbTCMGDaWSlh3AABX0V0TJ4ytZmibgeFdE1kEWgSOMJcKhSAgvWKdPX2KNNOeosYkx7GnF3bnmbgXeczd5uFAP9GiKF0WoHpCa9DIxY8qEZIj3OMjX8wZLVketH5lqDXuqvQ6TSZBkgAIAHw85Gl5hVGSg1iDwcBLokg6AQB23vVp5lXXqmu67XKJi5k3Javit4oBJ70qM6bm2eagM//i0wFO5H2shZQjy2rX4ot03AOoyzW/Jl/pl+P70r3hyPD7rJAj8BHA== 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=Ckv3Hs5WM16MW5wP9SWlQ8M7ylH1vcV4/Auox2N1Ci0=; b=Dt96/U/3HJoIK+6uLLPn54yv2osG+E+jzSA/kVmfkhTmcq3sCDfV+Gxb1N0W5ptB4Rl/Yvol3EapChEyLvpmk6b5RrMim+QJ9rblWmcONXQH1XV9+sYUD9f96YLdFvgTR4MglK9zJBsa3hQfBXTMBlihH4WpStc2rTQWwezGQtQ= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by SN7PR10MB6381.namprd10.prod.outlook.com (2603:10b6:806:26f::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6043.5; Fri, 20 Jan 2023 16:28:45 +0000 Received: from SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::7306:828b:8091:9674]) by SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::7306:828b:8091:9674%5]) with mapi id 15.20.6043.005; Fri, 20 Jan 2023 16:28:44 +0000 From: "Liam R. Howlett" To: linux-mm@kvack.org, linux-kernel@vger.kernel.org, Andrew Morton , maple-tree@lists.infradead.org Cc: "Liam R. Howlett" , "Liam R . Howlett" Subject: [PATCH v4 36/49] mm: Add vma iterator to vma_adjust() arguments Date: Fri, 20 Jan 2023 11:26:37 -0500 Message-Id: <20230120162650.984577-37-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.35.1 In-Reply-To: <20230120162650.984577-1-Liam.Howlett@oracle.com> References: <20230120162650.984577-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YT4P288CA0094.CANP288.PROD.OUTLOOK.COM (2603:10b6:b01:d0::22) To SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SN6PR10MB3022:EE_|SN7PR10MB6381:EE_ X-MS-Office365-Filtering-Correlation-Id: c5016deb-c407-422e-dff5-08dafb036648 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: fmTh2I8u4wjJWE42rZxwW7wHs44LHQdCR9OoJzxjGGYz3oqra+KzHGsiKQ+eIPni1PDgTigs/2td5y0pLqsqbmjTJ387psbexrjJvfX8kSbD3Eq5Yny/W019mHWSTEw90BT1ZngLqdu1O7u8S8ugbc1HeBC4aHKuyLlM9NoG85GpOayKjXZSwIWS3VqmecS3eM1dJPPw6JCc8YeXFFZf8qNM9ZC5ceUe6xelcibg2sZ6VdoYCPlLoqPo4Qk2OaLFHdD78aa/4d0HC3ourv7bSEKx36rcylFfp+F2kTahJcXXgqyLNPvLl6w5hDZ0PrMvWbqOGfL8qvieLUfmDIQPPs+9QRu5jUHr18c6jF/6FSNaoE2ygSOVzCyU3urrDM8dMY9uWsiyPMYfdzA1dp6QRgFwyy2d53xzlJBE/mJ+05WSle/nOeftzQxGiZn6d8bBHNlZPw5NPjf6CzmXL+Juxg03HUMFR3jsEYVpjnX2O7s/+CfvsS4DniBtK4Hz1/bXJlSlNzgDBpiFc33R7Zcyk8mDzjbkIdbf7/fh/10TxGBTPp0s3JQcZbSEDVTuuSXhKBdvplH9t0unSMtU8/OhMAh8OcHsIh2a3nYFT+SiYI7WQZj+DtoL5su/S+khkrQt6yEIWQNdBVAvRvaI0Ul2Zw== 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)(39860400002)(136003)(376002)(396003)(346002)(366004)(451199015)(186003)(2906002)(8936002)(5660300002)(2616005)(41300700001)(86362001)(8676002)(83380400001)(66556008)(66476007)(66946007)(36756003)(4326008)(316002)(26005)(54906003)(6512007)(6506007)(1076003)(6486002)(38100700002)(6666004)(478600001)(107886003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?6V9wXpmvyK9SRsYTRTb27j7C4SBmZbElEfQkVStcCR2Nt7uN2n75BW0XpWK9?= =?us-ascii?Q?M1gHbUPV8efPv1RH1U4CxZcV2RXkPP+HilokxJrg8Y9PSz6cfOWqS7N8n38g?= =?us-ascii?Q?HI2+W8scQhQE2GhUHauqldqLwI6p7ZjDtB3A8uPClIN9c2CtltexSp1M8U90?= =?us-ascii?Q?W34jQrQFPaJYHUjIEdjAvi3+kp03sJ7+xrv2SATGhPHuL+rzC0RQc+44zBYB?= =?us-ascii?Q?tPWf1RK/+j/du9+IoJjrck2LD4YaMM89VU/sxRV6MMMWb5Ec2vQb7CUK9AQ0?= =?us-ascii?Q?YLKv1Az7N9XtQ6mTQpMPeXRrcCCAQ8hKtLhzgSKAjEwWTfulvntokd/TTPZi?= =?us-ascii?Q?gBPI/PWo5SuNVQX8KuyWBtynm6a+ixqF+AKz9U3APLbV2XOHYxX+WJMBJ698?= =?us-ascii?Q?C55KTupCayDjcEjfH3s+lkCzl4B1A5AeXzR5K9GWQvXUGO0OPg71YC/LByn+?= =?us-ascii?Q?KrHpydHmgFHJ97D8io83WzNyy20rkSauDZqDriVzQ7yXmlCpW8HLtFSK7ddn?= =?us-ascii?Q?uD+pvFZJJ08b+AWwyIREnfBi71ZGMMnpV8PuWbC1Fp/1EnzxC/Z9byQvXo59?= =?us-ascii?Q?ywEgFPDffzLhMF1kiIbtmF/FwjFZR8IeGlC50Ys49W+Jdj1A6OKiiV19BjCh?= =?us-ascii?Q?5dYy0uFAopbFjwXrwv1aw3YHGfHCNAd9o6zjG0m6DahM+ankeHBWXWLhz60P?= =?us-ascii?Q?iKVRz2id48Dia5xxIb6knq28on6iLt6HnXq19j9cR3Xfg9K6DTv8YWnYrf6p?= =?us-ascii?Q?B+SEVUF2xtnPPqP1GLWBDHrgfpliXxDcz/b0y3Yg8OEwfvrxyIwxgk4TiZRb?= =?us-ascii?Q?y4w/SzNat8kbeWEfDLy1vuFvednYT5spfBUtJTBx/zVWzV51EXiv20Jz4K+4?= =?us-ascii?Q?B63DN2ocWiNMTAlzgEFzE0ah3M1TqumV/On9YPYW6Iyu0MR0EmzliTrUVj0U?= =?us-ascii?Q?ATPZeDwx8HrQScEK1+octq/h+tHrfywXgPxINeXIlEGa6Feyhs9MMYqa4B3G?= =?us-ascii?Q?+nDohE8DZlLD7EwDnXBY75CmH4Py86HiQaKlQBftkgZ5+IklTFFuLhdgHJnu?= =?us-ascii?Q?IoJA1O/fxCNCtEUuDeNtqiQi6Q1VH8XakwCu68QLdIUPh9ww7AG5isWLoFOd?= =?us-ascii?Q?RLfH3NsgxsFTi32jKGOqyk9gs8bD27U1BFgRCVio4n1fB1QAPXTUlBiI8s2w?= =?us-ascii?Q?G+I4kAVAAezs8JYNaFZR6fPgzl571gtTATsjDmyr6gGMx2m1Qa1Ej3vqRW2V?= =?us-ascii?Q?GpwjMbZYGKc0KWkuiQ+RK43u6j6KAmbXHbaFBmL0Ld+xh6RjpjnbfX7sMCxL?= =?us-ascii?Q?AhWr8Bfx8GZEnwRbA3lk/Zy5rt6XhnXiitbGsRreKiMwVUNHvy8Bx5iuE5gd?= =?us-ascii?Q?eFlHZ/Iq2shIIWHNZRImam3pmZwO1N2JBQEwN5PYQ3TBPsX6TDA6XuTaJceD?= =?us-ascii?Q?UYNZJ2NySeFH3zDiiic8fWa0C0zuoS4AAYcS8ZG4HRIaYBNg1Jt2WlQX+qSw?= =?us-ascii?Q?rY5DTDO5l61LbGrgCqr2eytaymiWR7/SgqCP2wQyiUKv0dB34wXcbmowT5my?= =?us-ascii?Q?mViKRs+bLcYq4U5043bshWbPYLQIYzSZfPc9s1VSCtqCMNLgTxQRgfKfw5+0?= =?us-ascii?Q?uA=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: IMuS+JDj1uwjXdWGe7GPd7edfUptB/CXvmA1a2l3Y1JHjaUVihRXqDbdJUMSYlteX6TJe9yoB///7PTeWuiyIsX44OPo38TqbIhzZhyPZXOZnf7c/9zDAUkvL+S9qmP6hp+4SApOwzH3FZG7duPq75F4b2ujSX7FqkI5QVzcd2IHmzUFUCFhVmRWjcE5FQuwL9CySwNdZrtmhYN4GfVrG4KgyRuT0eGjCdXzNncsxowjTD6RjdtG8V6xlNqgSnVy2GgVoJLw7X2gif4UjWjXDwVxShHSGrGCigxgOnJYaoUqUZWrfP9p8QDTD1wvuHIMU1EjOzD7xPr4teIuGr/CVqfRo81cC2rWI3xj7jE7Es+00itL8wLZ5L9tnBPXEV8UwMfEMC+3/aVJ7uozg84/n+RwagB+58DG5vhB5VJO5PXUAhgziDwBIukGHwkVoIhQvbyDzX4LqRlYa71VngRpjElgismE7CAYMiOnwhsHEHU0E2acHhP/5qCRJA4HAgUffvVi3PoHJ7DKboCY+eAMZkqKBz4AAJjb0G+smJEQUPK+Wtj3MOm8cMU/JAsOx+MS3YmxQp0ChR5Huwo7NdTLohFhiJI+GvrN8OjakHQHdGh6YySAfRhXIh0MG3KokNw7PhF/LF7E2JTvjbXzOquVi+r4IDRcZC8VpReF1x7/aSr7jBYc/SlehPR+m9ljLwpEAmbrEMFqRyOOJhcOEitqcc3z2WgvvxQLEMpiGz7hYf3UD3eRonJnK/gJdPDod97u04eOKCnlRr0fPgiucV291RxP6f15118lhmkNsXRfy7S8cWacH7e8fanWdjKeBk3u4CQyxtYfD4haq4m58OxqAgucoi2pAl+ZhHqsJMPXiGFi6u0pgJfstDvNs7hEJr9LbZIhGDLSFFDsKUGRhQ8Zwg== X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: c5016deb-c407-422e-dff5-08dafb036648 X-MS-Exchange-CrossTenant-AuthSource: SN6PR10MB3022.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Jan 2023 16:28:44.8528 (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: jHUD13I4H90STpvCOdGsQi990R7AslB9YJHfuO1Imn69rk9bG7M9xjLg9OOPAJbAGgLzvZIYTZ/vIXuSYyCGhQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN7PR10MB6381 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.219,Aquarius:18.0.930,Hydra:6.0.562,FMLib:17.11.122.1 definitions=2023-01-20_09,2023-01-20_01,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 suspectscore=0 malwarescore=0 phishscore=0 adultscore=0 mlxscore=0 mlxlogscore=999 spamscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2212070000 definitions=main-2301200157 X-Proofpoint-GUID: 90ONoGs3pW1eDAO9ik817fUgZDmLBzNh X-Proofpoint-ORIG-GUID: 90ONoGs3pW1eDAO9ik817fUgZDmLBzNh Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" From: "Liam R. Howlett" Change the vma_adjust() function definition to accept the vma iterator and pass it through to __vma_adjust(). Update fs/exec to use the new vma_adjust() function parameters. Update mm/mremap 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 +++++----- mm/mremap.c | 4 ++-- 4 files changed, 15 insertions(+), 19 deletions(-) diff --git a/fs/exec.c b/fs/exec.c index b98647eeae9f..76ee62e1d3f1 100644 --- a/fs/exec.c +++ b/fs/exec.c @@ -699,7 +699,7 @@ static int shift_arg_pages(struct vm_area_struct *vma, = unsigned long shift) /* * cover the whole range: [new_start, old_end) */ - if (vma_adjust(vma, new_start, old_end, vma->vm_pgoff, NULL)) + if (vma_adjust(&vmi, vma, new_start, old_end, vma->vm_pgoff, NULL)) return -ENOMEM; =20 /* @@ -731,12 +731,9 @@ static int shift_arg_pages(struct vm_area_struct *vma,= unsigned long shift) } tlb_finish_mmu(&tlb); =20 - /* - * Shrink the vma to just the new range. Always succeeds. - */ - vma_adjust(vma, new_start, new_end, vma->vm_pgoff, NULL); - - return 0; + vma_prev(&vmi); + /* Shrink the vma to just the new range */ + return vma_adjust(&vmi, vma, new_start, new_end, vma->vm_pgoff, NULL); } =20 /* diff --git a/include/linux/mm.h b/include/linux/mm.h index 479c79204d96..75b6d06d69d5 100644 --- a/include/linux/mm.h +++ b/include/linux/mm.h @@ -2834,12 +2834,11 @@ extern int __vm_enough_memory(struct mm_struct *mm,= long pages, int cap_sys_admi extern int __vma_adjust(struct vma_iterator *vmi, struct vm_area_struct *v= ma, unsigned long start, unsigned long end, pgoff_t pgoff, struct vm_area_struct *insert, struct vm_area_struct *expand); -static inline int vma_adjust(struct vm_area_struct *vma, unsigned long sta= rt, - unsigned long end, pgoff_t pgoff, struct vm_area_struct *insert) +static inline int vma_adjust(struct vma_iterator *vmi, + struct vm_area_struct *vma, unsigned long start, unsigned long end, + pgoff_t pgoff, struct vm_area_struct *insert) { - VMA_ITERATOR(vmi, vma->vm_mm, start); - - return __vma_adjust(&vmi, vma, start, end, pgoff, insert, NULL); + return __vma_adjust(vmi, vma, start, end, pgoff, insert, NULL); } extern struct vm_area_struct *vma_merge(struct vma_iterator *vmi, struct mm_struct *, struct vm_area_struct *prev, unsigned long addr, diff --git a/mm/mmap.c b/mm/mmap.c index c7d72475ba6d..b6bedc07ef11 100644 --- a/mm/mmap.c +++ b/mm/mmap.c @@ -2213,12 +2213,12 @@ int __split_vma(struct vma_iterator *vmi, struct vm= _area_struct *vma, new->vm_ops->open(new); =20 if (new_below) - err =3D __vma_adjust(vmi, vma, addr, vma->vm_end, - vma->vm_pgoff + ((addr - new->vm_start) >> PAGE_SHIFT), - new, NULL); + err =3D vma_adjust(vmi, vma, addr, vma->vm_end, + vma->vm_pgoff + ((addr - new->vm_start) >> PAGE_SHIFT), + new); else - err =3D __vma_adjust(vmi, vma, vma->vm_start, addr, vma->vm_pgoff, - new, NULL); + err =3D vma_adjust(vmi, vma, vma->vm_start, addr, vma->vm_pgoff, + new); =20 /* Success. */ if (!err) { diff --git a/mm/mremap.c b/mm/mremap.c index 71ba8eddd836..2176f0cc7f9a 100644 --- a/mm/mremap.c +++ b/mm/mremap.c @@ -1047,8 +1047,8 @@ SYSCALL_DEFINE5(mremap, unsigned long, addr, unsigned= long, old_len, extension_end, vma->vm_flags, vma->anon_vma, vma->vm_file, extension_pgoff, vma_policy(vma), vma->vm_userfaultfd_ctx, anon_vma_name(vma)); - } else if (vma_adjust(vma, vma->vm_start, addr + new_len, - vma->vm_pgoff, NULL)) { + } else if (vma_adjust(&vmi, vma, vma->vm_start, + addr + new_len, vma->vm_pgoff, NULL)) { vma =3D NULL; } if (!vma) { --=20 2.35.1 From nobody Sun Sep 14 14:22:07 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 66E50C05027 for ; Fri, 20 Jan 2023 17:10:45 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229586AbjATRKo (ORCPT ); Fri, 20 Jan 2023 12:10:44 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:52888 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229472AbjATRKm (ORCPT ); Fri, 20 Jan 2023 12:10:42 -0500 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 1A7AE5E513 for ; Fri, 20 Jan 2023 09:10:40 -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 30KGBbwk003319; Fri, 20 Jan 2023 16:28: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-2022-7-12; bh=QKE9UVQdDv+uxybjkJp5/tNtaC+6qu/VI0mj8GrP/8E=; b=P0TGd+AV7LOAj7qEEVT8KLvkj/FElo9Tq/3lRkVY058A3TCQJcX/P8kY+GDu3fSsb4Cn rqpsYE9mx+SOzEHjb6uvvpJXKj9borEIHEUeDm5g1jcfocT3++Zt6h09GvNWVPO3HhZs DFoetUAHGr7ieKLlba//pxGZFlwIBYFJ45G0e4OlUeJNvujrT9gA/YpAYRTEqMdS3pIj qb79dBe7y/4mB5gMvuaKQc0QjFmv2259o1DiDEsdAokuXYhOyXVSwJMBc53KAW+4pb1p zsEsobhO7KpSdYD4IRJGrbNXyNmFjyZCVQNPRWFSXBnpOKdTG8gbKtmxctKAlmBqcMx0 ow== Received: from iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta01.appoci.oracle.com [130.35.100.223]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3n3medn7h7-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 20 Jan 2023 16:28:50 +0000 Received: from pps.filterd (iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (8.17.1.5/8.17.1.5) with ESMTP id 30KFWNJY004690; Fri, 20 Jan 2023 16:28:50 GMT Received: from nam11-co1-obe.outbound.protection.outlook.com (mail-co1nam11lp2173.outbound.protection.outlook.com [104.47.56.173]) by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 3n6r2w1gwr-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 20 Jan 2023 16:28:50 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=SokcxsoHiVfcVl6YWACarchLgaBHlzsnRAi+tI6Mdyo1g23TymtBYW4i60RAXMo/KQPa9ZeisiHjxF2CjVaeNXkpeay/0GJdU3D27qI/zzj/seTaPHbS1j5AHK8IWlv4z4/Nnd8SM6z0kR9lwdzGnL2mZt0V9vcL+/IYsG7At0m8XUiqkzVE0hz1zrlYz+IFqaTq+fee9SbvYto7caJoVh9v4kDhiE7gj9M8SOHyj6dYwPT6H1cXip8S1tFur+3xAa0I8dfGRHJMhYhAo9G/10+egBAyBZndUBEMd82l+i99VP5y7z2xfiqdO1Cddm2+a6/HmffZBQF5kTaFQiilyA== 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=QKE9UVQdDv+uxybjkJp5/tNtaC+6qu/VI0mj8GrP/8E=; b=D5QIiMIWyXI7s0gckdXCPbGZo/5W1/8kz76DAKiCdxLYRVsRon4l5WN1q04ANT6xggqFIJGzKtGsHt8Y0i4NiMMdrslSriQSDMvHI7oNwF2Cb7FV1fb2+NzJY5fXmGd5wQcATJOJHdwR4TKE2ZMK9e7i+s6eB0TvSmowIRDg8UzyjUVus2ZJBzRC7s1j0XMYE0J34w+cSeU3BbgSOyNAvdt1npDsAitoMaTdiB1DPWm3NPqBYL/t8F0Gkg8QuGI9bk/MmcDXoWxJvWwKFmfgkG3nB9Gps7/sBeidWwGK+gMD1o2ogoT4fNHM8++rVuEWvJHKVDtsh1/p8QsdhdF6tw== 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=QKE9UVQdDv+uxybjkJp5/tNtaC+6qu/VI0mj8GrP/8E=; b=XOoiBPAe+o9owOuSlhavBNQ+JxC81lnleROpgrCEpxxcClLDS6P2wyMisI0Tjv7QKmJbp3S3uiJWBhP4grDWuPM7ehw+ZcP35KQHBJt+6mPUwtwxluY93duYeWWz8XcmjZzIM9zRvCRM6JKt4fWUWZ7/95MFM70cHaxY3xQaWHU= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by SN7PR10MB6381.namprd10.prod.outlook.com (2603:10b6:806:26f::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6043.5; Fri, 20 Jan 2023 16:28:48 +0000 Received: from SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::7306:828b:8091:9674]) by SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::7306:828b:8091:9674%5]) with mapi id 15.20.6043.005; Fri, 20 Jan 2023 16:28:47 +0000 From: "Liam R. Howlett" To: linux-mm@kvack.org, linux-kernel@vger.kernel.org, Andrew Morton , maple-tree@lists.infradead.org Cc: "Liam R. Howlett" , Li Zetao , "Liam R . Howlett" Subject: [PATCH v4 37/49] mmap: Clean up mmap_region() unrolling Date: Fri, 20 Jan 2023 11:26:38 -0500 Message-Id: <20230120162650.984577-38-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.35.1 In-Reply-To: <20230120162650.984577-1-Liam.Howlett@oracle.com> References: <20230120162650.984577-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YT4PR01CA0138.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:d5::8) To SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SN6PR10MB3022:EE_|SN7PR10MB6381:EE_ X-MS-Office365-Filtering-Correlation-Id: 92a60486-397d-4a9e-789d-08dafb0367cd X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: L2B0d08nAtfASoy1USFGHq9/7v7Z4qDGglWC+tT/v7M8ceVC2AoJQ5Ey9pITFTVaglryNREK4T1CWqEYfHklpnA5YUVwxIU4lhnivrNNmyR9/u2CcEdA8OLTNi7rvlOH8Uf0q5T0BHIrumFG5sJEp3vm1T/RT0Tkd/PV4uBWF0Li2XuozBeuUvdo2TETdDpX0YxUP0oDfah4odpZOeYRBSIzm18gtn23Asu/q7XxAq/DfZoBI18ZIsw+1HV0vfbwnBAfaxwm9vZjKNFoKlXdSyi6EvqRY6wxO17BqhLwf34zxRzX5lE2pE/hEY5gHNsLzuAsDZYPXEcE3f+AsNFtRRtjewgxNNUWtOMLpMutvLaDiGqDCBsk6WhipQOmeCTRhGqxVMIL8Zn9dgCvBLOLvf/ah72NtqBwp1uX3e09YoXiz++yMS1JsXyDfNhbOOUduV+lOlrp8al1wn8fn9TKTJKWCNPC7jmuauyriuHLOeSjKmDewNUQG9jdNPAvBPwG4Na9wM8wKGgkGVVSVxhLlFzvVBhfpdppCPiP6Z6ph1L8UBifKov4i8PlQpgc4g31df9JADFH7PDDTlm4zLO/7WrJmxHfEWBgnkt08b4KUOcJwEky73OhXna8v7k+NpXrpTy5uSrm8E5hB97NILGO9A== 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)(39860400002)(136003)(376002)(396003)(346002)(366004)(451199015)(186003)(2906002)(8936002)(5660300002)(2616005)(41300700001)(86362001)(8676002)(83380400001)(66556008)(66476007)(66946007)(36756003)(4326008)(316002)(26005)(54906003)(6512007)(6506007)(1076003)(6486002)(38100700002)(6666004)(478600001)(107886003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?ChpgXLPsbX4TG/TvBll/zpXNMrkYin3BYt4Z8ypAoCUUmRPeDcI+vJT7Qvx8?= =?us-ascii?Q?WEP5fKbubrOjc02UNX4s6toPz+4ILafZJqzOaJAzTuLfiueRDfokH9qktqyP?= =?us-ascii?Q?Diw6bcMcaU0k9VUdS7FBf+VyNn0nz4pZPWNBRDYqvBKBM+Zp3dJ9u7KGAbeR?= =?us-ascii?Q?3GVOwRHSUE/Fplli+ibT+d//QsztqP6scZmqc2isZi25YLYv47VAXkEOmzQW?= =?us-ascii?Q?2AnDDjYzsgw0n1xvPPtosdpmhCURzpdNcn8sGZLHJIqdbimhefPs9Hb4M5TZ?= =?us-ascii?Q?GuaEPlNHB//EJtgUZLbqT5TMX0I6nR1xw2Ag3EfUrgJE+0IfYkQC6cn/qYZd?= =?us-ascii?Q?ajTO7+YW8X0SHCyLrfB1iWyA0mEdBgfonwicfZJ5wO6gkhwY9+mJmylAI0gK?= =?us-ascii?Q?b6OdytMOfoe3QyQaKS4x0mtkBMK4LdmSL//YobdkioMNsEpF4+MlhruA0M0k?= =?us-ascii?Q?FkatMFFbWGNX99/yRrk+1KfotKiIL2PzfzQaLOdYEf1rJJk2yRcht38TU15d?= =?us-ascii?Q?myniaHjWSZwsx/2Pe7o71OvWqTWujnd9vgH67Iz6Sw2eYtk7o094kFGXCYn2?= =?us-ascii?Q?5RhRe5G3AhINIXx2yZ4LZD6k5ikmkM3BQIATwOsIPZJitXscc/Tp1LttMw+q?= =?us-ascii?Q?6QKeEZ7TkZX/6srvEJ7KIhisBumv0ho2C/nicdhmsKOTBTpzXp5lCfpNAtyX?= =?us-ascii?Q?InJQlE6bkOl61YfWOsiwcViOpxuqRW2BW4xWmJ75fmyytDZWlf1WudbDuwWm?= =?us-ascii?Q?3rnW8ffdS/KJcj5w2BWqZ0CQYO6ySC/EqXMR+PHnzoc9DC2b1KG2luYNacSN?= =?us-ascii?Q?HuDk0INApFKhz57bvXvQWzDdecogHWqCCzeLhLfQm016rgIUjfd4lQsk5wKe?= =?us-ascii?Q?vN8I1s4KY1sTYwTDFJAfwk0NHR/fLwDmKFRFuExBoM+FZDonL08RVIGhupb1?= =?us-ascii?Q?4veRoZCDBO9PL3/lL/IDnQMQQhAupfzAD9IlckUJlkWxUZx7yHtWj7qoaeDF?= =?us-ascii?Q?wOYIjl0cCvObzKaztsintQg5Xb6qykrfqvSH/L0J5FECXWiUXEpvYZD3Qpqk?= =?us-ascii?Q?KZjX3adoTeYQRkHzrJc5ZZYODyUAJ6GJ0yTEVMTRSCt2An7BO8pxj+hTS9V2?= =?us-ascii?Q?TKPNqpK4PpjoQ1/yvd1CjYHVGQnDRSRw7pQ7dTEgBzaQtxhWyfYJnVCpbpbz?= =?us-ascii?Q?/CzinQHnzhslNKu1ErQNKu6qPzgIu6/h3Qk8Y5cCx3KDyea9rbTt/t7UU91E?= =?us-ascii?Q?+BIvDoIfoGqTIZwEdNVo8Dxu7XnbhW+tWxz1HvfuQy0DB8wPWshM2wK+YkwN?= =?us-ascii?Q?zIYcDjBXYqvVAktzdFaXtXY2oESTy4MlNy1j7o3GVIUgR6L2nxWpSxfI2U8Y?= =?us-ascii?Q?e03FwmRACXCr9rHOKf5BYQuW/9iR/DP59ykTKmdTk2yw6pY9zatAtFQemzJy?= =?us-ascii?Q?uLlEZV/i4AohMLvgT5vz0C+5i9UGd6ZivFCqsZ0zGIsF33aFLPkFRspplDDB?= =?us-ascii?Q?tfaFd+6K8HeBT2eIU6oS759OeQWl61w99YZfJmFoHJla7aitLRvuiTWLNzQb?= =?us-ascii?Q?hNvhdI7prJ5+2NLo2c8rwF1aVaLYQiotNoF0u2/WZrsJT4+7lgbd6zgIkwwA?= =?us-ascii?Q?JQ=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: ehNiJlIWL7GG5nuaCMcIMDGAO95kyt0Wc7xjqjEHLqNDJ6nUW4aL0mLNjuC+XEYK+a5a19V/XN4+ASKxd5qzKdXJdvVoBN9gZIO6ZO4ARPwmEEmP8Pu4ThJLV+1epPnsAHSCHY4sgMV1Z3mvFby4aTQx5ZOs8w5jcvwcGKgEkd3vkxzNC/zFGJ60Iwc3ZPPv7V/U72RYPJgQ25ovqhO+1mo1921LMYdcce16irX3hZIecPF+rnzBjtWcsw8otrgKVVJCVUIHx8U2c7U+uIkKxgPLbxIlyJBTT+0Yhqg6WdrY+NXQsQghMbuCPK9o+T2LrOB8FRexnrtYbv4KKam7SKJCkgnbvKEEqrx75o4NLjvWPC8MAdbIjomDTHMmP9ANEISrUK2KX1tOVYDYqe+8kwdkuCBCpA2CdgeG7mXET1riO/rWsS+gGJX35PHZLg7awi/rXKmOr9It0fde3y4lFhDWZMJ0tuRQOho5mvsvTVDc6a6uxxQEvC0Xc5jtETUsSGLyz8qO5ZnBtTjxypfz8KyEmICjObX/iS1UOCCehFUFnWHCb9iDJ2+H3J30KZA0Z2Jgm6UvLimbiqdOn7jghX6uiw5K0TTBlDcyGzzP+bMVomUwABi4rM0u76sKo88YRqcddHUIVsu7HeOSJs4sSqAqA52mkZglAkoKHeqyYWl766/oKSWMcxGi2UTeEX1TwWfv4E4Y5j1qdGF98ktJvTJfR1yj46x4tNgq3siXn4vkJOMbBFwpe615ArfGmZMOkEBXWJZ2365wmwHnJWd0r5Cenm3Lw8PETjeZM+3nkAEBhf0H8sa2WhSlpiuNQdU1+FWhBFvM9HU/fLJ75KIde+n4uzS5KS4c4bUeneIxFKj+xQoTdYm/JOz88yQihtKT0wF0Qvhp4TjzR8bEme1y0n+aHhZiFR5Wd/cxcFnu7jU= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 92a60486-397d-4a9e-789d-08dafb0367cd X-MS-Exchange-CrossTenant-AuthSource: SN6PR10MB3022.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Jan 2023 16:28:47.3526 (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: oTwZmoFrm6DTjBNEF52BXq/HXUk5aGzpy0Z9FeNXvp8O22Tw/GDPWrZU9uUPRcm2ijoK3gLkFwnvJF4UX81Hsg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN7PR10MB6381 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.219,Aquarius:18.0.930,Hydra:6.0.562,FMLib:17.11.122.1 definitions=2023-01-20_09,2023-01-20_01,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 adultscore=0 mlxlogscore=781 malwarescore=0 mlxscore=0 phishscore=0 suspectscore=0 spamscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2212070000 definitions=main-2301200157 X-Proofpoint-ORIG-GUID: aHyLiMUkDKpo14uM2Oyd3qR-NloLUsNb X-Proofpoint-GUID: aHyLiMUkDKpo14uM2Oyd3qR-NloLUsNb Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" From: "Liam R. Howlett" Move logic of unrolling to the error path as apposed to duplicating it within the function body. This reduces the potential of missing an update to one path when making changes. Cc: Li Zetao Signed-off-by: Liam R. Howlett --- mm/mmap.c | 45 ++++++++++++++++++--------------------------- 1 file changed, 18 insertions(+), 27 deletions(-) diff --git a/mm/mmap.c b/mm/mmap.c index b6bedc07ef11..d9e2666d8059 100644 --- a/mm/mmap.c +++ b/mm/mmap.c @@ -2604,12 +2604,11 @@ unsigned long mmap_region(struct file *file, unsign= ed long addr, * Expansion is handled above, merging is handled below. * Drivers should not alter the address of the VMA. */ - if (WARN_ON((addr !=3D vma->vm_start))) { - error =3D -EINVAL; + error =3D -EINVAL; + if (WARN_ON((addr !=3D vma->vm_start))) goto close_and_free_vma; - } - vma_iter_set(&vmi, addr); =20 + vma_iter_set(&vmi, addr); /* * If vm_flags changed after call_mmap(), we should try merge * vma again as we may succeed this time. @@ -2646,25 +2645,13 @@ unsigned long mmap_region(struct file *file, unsign= ed long addr, } =20 /* Allow architectures to sanity-check the vm_flags */ - if (!arch_validate_flags(vma->vm_flags)) { - error =3D -EINVAL; - if (file) - goto close_and_free_vma; - else if (vma->vm_file) - goto unmap_and_free_vma; - else - goto free_vma; - } + error =3D -EINVAL; + if (!arch_validate_flags(vma->vm_flags)) + goto close_and_free_vma; =20 - if (vma_iter_prealloc(&vmi)) { - error =3D -ENOMEM; - if (file) - goto close_and_free_vma; - else if (vma->vm_file) - goto unmap_and_free_vma; - else - goto free_vma; - } + error =3D -ENOMEM; + if (vma_iter_prealloc(&vmi)) + goto close_and_free_vma; =20 if (vma->vm_file) i_mmap_lock_write(vma->vm_file->f_mapping); @@ -2723,14 +2710,18 @@ unsigned long mmap_region(struct file *file, unsign= ed long addr, return addr; =20 close_and_free_vma: - if (vma->vm_ops && vma->vm_ops->close) + if (file && vma->vm_ops && vma->vm_ops->close) vma->vm_ops->close(vma); + + if (file || vma->vm_file) { unmap_and_free_vma: - fput(vma->vm_file); - vma->vm_file =3D NULL; + fput(vma->vm_file); + vma->vm_file =3D NULL; =20 - /* Undo any partial mapping done by a device driver. */ - unmap_region(mm, &mm->mm_mt, vma, prev, next, vma->vm_start, vma->vm_end); + /* Undo any partial mapping done by a device driver. */ + unmap_region(mm, &mm->mm_mt, vma, prev, next, vma->vm_start, + vma->vm_end); + } if (file && (vm_flags & VM_SHARED)) mapping_unmap_writable(file->f_mapping); free_vma: --=20 2.35.1 From nobody Sun Sep 14 14:22:07 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 24ED9C25B4E for ; Fri, 20 Jan 2023 17:13:38 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229678AbjATRNh (ORCPT ); Fri, 20 Jan 2023 12:13:37 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:55254 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229542AbjATRNf (ORCPT ); Fri, 20 Jan 2023 12:13:35 -0500 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 1FAF328D1C for ; Fri, 20 Jan 2023 09:13:34 -0800 (PST) Received: from pps.filterd (m0246629.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 30KGEC4E006224; Fri, 20 Jan 2023 16:28:53 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-2022-7-12; bh=afTZvLcrzM1nMWgYmbzfQmJi+EabrJS9q29fsvtBzPc=; b=V36+YIqiMUs+jQZGhSGqJo/iVtHCVhOdqrKd401yq2J0ECw35EbhWY1fjWCMDfZ7Mm6v wWLDFR5+FfIlqD0VSjL6kfGJeZ4Q5K6+If0hQ1W6Mfe1TQPzY3TPdlzM7O32BE/aVf6g XAnL2v5VHDy5X7sihR8Yk5CZDuvobU3rpkJ7zFiPyXZxbUE+X8KslYcaeToLNttprXdb cq1dPyxn+ZX9yLzsmYX0Hm9qMXWQJmnztML3iv0kAX1Lzc2HB7quTF+IZuxCPa8Yvhtt 6sk4EkR5m3cSOmLV0x4ncBi9XeAnYDzmj23Ufy/+ARPdUbGQAnq+udd4t5L41be9Vsgj RQ== Received: from phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta01.appoci.oracle.com [138.1.114.2]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3n40mdmfyf-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 20 Jan 2023 16:28:53 +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 30KFZfIg027915; Fri, 20 Jan 2023 16:28:52 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 3n6qud92vm-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 20 Jan 2023 16:28:52 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=WESzSHacVq9PYfi6EnIBtg+kxvin1r13pJxGX/pxQQwspt4DVjb/28z4tzc47uozI5j1uSvRjKJdEMuWuwoYijfGYugaHbhz0C/QzoQI+vhkmd3oT4MNr/NYtWtPKTDDaj300q0r+56KKRFbUuoWKxrGGICE5qoahTb1r3+oWWbMSZpsxmhsmZGJoH38uWYts+PcK2gaik5kx2CHsaRxpiBzNYYYkBZ8tA9U0kGOGokKUC3z5gaQs0ovFsJ0+EXkodEwKE2FOPBzw6bA3mf8mH++TH41w0GNfNxVYc+UaCKNQiOMoTgbfhBleYo9OAZ3R+RAIovg8EtuVUxgvudt4w== 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=afTZvLcrzM1nMWgYmbzfQmJi+EabrJS9q29fsvtBzPc=; b=BMEPZFIYvMBQQVWBujJIbbqmryhao+0DoEqgcJqu5qhe8CqgcsckTKZIkehmYhnJ+8O7n/7ZP+p3+YNiX1c9n3/JnKdC8HPJUTIW0u4g4tlDNlMhTU7CdizP5eVnloJ3pxyIuVp4V8OefVaDTxvDnm5pny5nYQQG/RTW1DmOfpoTy5AgDYfgcu/nmHBJGf9NkiYJg+vbHASDeJL/gbaf+m0yppvCG0XRZayk5cEZZHU+wW3EZh0qEHwjo5TFX2WiTQ8Wxn40NbzeLafo6qJUZ0rpjL4HmXvCxo389PwVinUlEW8eWAvDQW7Z3excaEtZBnRN5oqU+9W77Q8R0jadqw== 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=afTZvLcrzM1nMWgYmbzfQmJi+EabrJS9q29fsvtBzPc=; b=vHHugysnhA26qv19Iu09ZZwOjYyOS+KQsRLyBiByXFLvXtiJ7puqsBkYGrPoZIHXNkAFtaQ5wkIAEb9sLYtKuiQTOhuovfX3Nd486yT0I2KKqcfrKeCM7/r3p9hcJKHBLYl3Xd9khlTMBbRqIoZFZamX2QF8NpLYWB9Aee1WgpA= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by SN7PR10MB6381.namprd10.prod.outlook.com (2603:10b6:806:26f::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6043.5; Fri, 20 Jan 2023 16:28:50 +0000 Received: from SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::7306:828b:8091:9674]) by SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::7306:828b:8091:9674%5]) with mapi id 15.20.6043.005; Fri, 20 Jan 2023 16:28:50 +0000 From: "Liam R. Howlett" To: linux-mm@kvack.org, linux-kernel@vger.kernel.org, Andrew Morton , maple-tree@lists.infradead.org Cc: "Liam R. Howlett" , "Liam R . Howlett" Subject: [PATCH v4 38/49] mm: Change munmap splitting order and move_vma() Date: Fri, 20 Jan 2023 11:26:39 -0500 Message-Id: <20230120162650.984577-39-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.35.1 In-Reply-To: <20230120162650.984577-1-Liam.Howlett@oracle.com> References: <20230120162650.984577-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YT2PR01CA0027.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:38::32) To SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SN6PR10MB3022:EE_|SN7PR10MB6381:EE_ X-MS-Office365-Filtering-Correlation-Id: 68bd4fbb-242e-4705-96af-08dafb036999 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: HAizxDaDQxHQHZ+P6O6LrF9pehwtHdM1mUqprdUFzeFVMAR61ugPZMZhEusYpHTaCbGX4r5MG0wFaZsc71u6mrIHZCBsjQ2eeIKxXfMLmUZHYfTy2jCYHqm6RbpiDJzP9HI97bO5e/BEas7CfqrGXGiEmIXsqFqXFJPxsotFn90AQod24kC5LzfY69yTCcy5OgeyNGoM0PIEaZKd/t2pQWVglTmR1j5fkW9ovf8gl4wRv9oeOqQ32WrXWpM968AEgdD4VXG7Z8GfKJTQM4xc8qyWvR9FECLCqOltsdBnNmSQJavBJrzFnA02jTmw/X8Y7d1o1gA6CDD4jLz/2Noz76uGj5hWSPVpZFkp/ccSjvJH6UA90uBpCPl+z5kpIao89aInW9+DoJTrjCOv+Sk8d4JDq8vHoXkRFT561dtQQO4vhCZKRX5zJFuO4x9HfL3qIofWOpAOg82BVOwm0gGOtk5in4oeKlhCzWgas2da5NGmQG/4wVd6t2eXSGQVuzeexJ0//ueNHypYdTyBvAfgYiW0lQP09nJvsd2QQBBi2c4ai5dGD87vb1F19pbgGt9VUa9qmuvC7cSSI1TjDkOl3lA2fzg6CFkuLN1crLlpKTlqUJv8qZR6QVR4uwDEq59laRX02pzpIF0akBP2iUJl5w== 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)(39860400002)(136003)(376002)(396003)(346002)(366004)(451199015)(186003)(2906002)(8936002)(5660300002)(2616005)(41300700001)(86362001)(8676002)(83380400001)(66556008)(66476007)(66946007)(36756003)(4326008)(316002)(26005)(54906003)(6512007)(6506007)(1076003)(6486002)(38100700002)(6666004)(478600001)(107886003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?0Up73kKERLGU4VDItCtF6JSaxTtyQazPORUJmKbup53o+cU1JAwSwkiz0ymf?= =?us-ascii?Q?QsvZFlDdXdvdhkpiAUVnVDGNH8xza45q5+07FlO2y8K0xcnWq+GgH3aSEK4P?= =?us-ascii?Q?gUvzmIwzn4kVWyX723Zvn3mDUu17LEz1MKBizk/+1h/y9RkVB5DGG3wLBIb4?= =?us-ascii?Q?St20EjYrqu5Cvoy55Vcf5SYd46aWw/wV4Ie5b7Esn0r1ngM1KFn7BEiapfBu?= =?us-ascii?Q?wBocXYo9+2UWNKfeoG3zP1qZXtr6DnXxxK3iwFdafuqbcR/Z0Qd2Vmcxmy7J?= =?us-ascii?Q?FcxJM5heJiGBNTo4BLFxuJqboqabzUfSvSOXvnHZ91YO7ODLCgVumpSl4jIt?= =?us-ascii?Q?cgtZXWNJkmtgpRBralC5wwq2CnRWdhXOfKaKhrm4s3vfkfCgn+ixz8VlDhcl?= =?us-ascii?Q?BcUtFwXWawN/8n63iSJxyD6zBU1OTFM26/YjPQmrlvyNET/gArQxeOF3kF+5?= =?us-ascii?Q?QHUeT8xuInIP+X65nz2BUABb5RXj9q0XKu0qhfXgL1io6qWGYHv6buneJdlR?= =?us-ascii?Q?qjU5OBXHkujPXOtIpldLqhgrgYtfqeZbWF6xxvrsAMAvBmOig5hiiolSVd3o?= =?us-ascii?Q?KB1Svxq4209nV2OUvjwd+CM3i2hlMQHG9mD/WPlOGybb3zHmYtc0361E9P3f?= =?us-ascii?Q?8dpSn13Ov9zQ0tTJ5ptImFTlep0mC5IMrvi7FP1Z3qsx4+6JVVb2erNS2NJN?= =?us-ascii?Q?w1zoIipLcehF2VSCq4RhU8pM+YpgnEpbi2zM4QwamCwtRIj3gcNeZ671wOxq?= =?us-ascii?Q?AFY2uFzF1opeRvBKFHCAwImEBh6HzDV/dyFxv2hknVbwaVU3/F5rJEKcySQO?= =?us-ascii?Q?xdlrDODSAoDFZX32mM4WVW6byJYnhQpd8FFc91g0GWG2cN1MgLlLJd8l/5Qi?= =?us-ascii?Q?0aitedLT0cwcLfgAgApabTn3DPqThZXRRV3nTIv0rOUpffmQO5eRNBHj5Bjd?= =?us-ascii?Q?Z5BoPHLTl5APBIlRJ97+eO1aYaN1HLx7caM0raK8ZcnXyC0IJb5MZcd9ENTt?= =?us-ascii?Q?NZR2KvSi52Ii4K1gYRf0iiK1HMhVQ+QM1fWYbHorbnK14WEuz6JR8ldPBZTg?= =?us-ascii?Q?7wa30y8Qgscv/C5s+LbdBjNLzZhL+NYhnLUReKXiLNqjtl6zgaETL9lgKoEb?= =?us-ascii?Q?lGovFOela6TDQJwIR6dyQZTwAThMoSilPw9ou2yCFml1RYhtxZZg4rsRUlN+?= =?us-ascii?Q?dcqz0Uspe+ll/NSZP4+OiwvB9SYe/WgiwgEghfWceQRZgnNrpXA7Y8oKHXLo?= =?us-ascii?Q?P81ZABJT95HPb9xFb4XbFC9PlLxOORm6x3OXwlfL1SSZAcVgLHz7QZGbWOcI?= =?us-ascii?Q?A42RIvoIjuZoD5g6jFauOuAU6V8ll8ppIjgdHAunYqtPJ4pemPZXtFwZ2Vq6?= =?us-ascii?Q?/9/Lo7C8kCtfAtP87SLeSxOcBBTy8iAxBGW1noKdS+eV59CcqZ5wEPLHVy86?= =?us-ascii?Q?NYLFGHT/BBhvGmppCuh4RSE4n46nzBonn1RGeFF+Sw1/EubRd5zPGBVW3gvt?= =?us-ascii?Q?a46vB4lBjm6mgMXOClgB63VoINZgS6IKRqFOPK9hkKf0IxNRmv4O/SHIeD5b?= =?us-ascii?Q?6F+J0iEIV7A9d72TCGq18SQAWzBiLikrrSFxpBZdVG0e0QQeeb5e8OatPWYE?= =?us-ascii?Q?hA=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: 6SLxHXNxshIRDq1wEbTj/XS794usrsM4ddsUQ9CUBRmDDmrd5UzX4tMCVp4uITwpBIcl+FtTyhzZmV0I1kQdi/OP+GrcNrTNMTM4spcsHMftJPqAJJywPL7IUgLhVvFwDYo9jIfAofGWqmB6a6vnUxRf7uycgoEK4zGvl43vlQfB51U8ih/3GEva7Ve9uKQHfG8NcNxKckJhLZFtNmg1tMqC9Vp4qceKmnjDcw9VhkCO/oUsGsy1RvMm7aR1Cq3Y+EMFPMYITemfG7irm95CAEgsiu23/jehmlrtPvTQrhbuc7xav92xVo+i4zBR4pmvpD0/+rKawKU4EyiyVSpASe3bay1or7HEpHzgg7bXgTImSj6JxkMsbLu4o+Wv4OQJLb0TvbwpQGMTSqra4zYhkCwUStVqlPp8LrTJI9ilJe0N73MX464S/vQuhE7gVfpcDsCJ7XAQ212PJrmSBrizJ/u1xrK4kvQZK/ndYWtkp5Cyx1ZQDxkE/+GC6YgWgg/KBNipNxl8NQE+MgF5gUa28LsNTcqZ4/BI7k7IhIWbdumNhIDoyPGsBZxvIVKS2i3/ng/4xVmfTdxI4IInVV+jCVSCPCVMvh+L0Kz4ZaP9/b4QPhyO8HiEnj+P4QMyObORtvRfEY3wVNEOAd2++2ifAK+C+ZXVDubmeA2FTusNeppVjMlQJ0iCc2tC/Hnl03y/CUdOK4GkusnK0U7zRriwM8jESJMkVnTCfSpECktR3cT4hnZZuzW1V4tSeM2E9Ej8aOF6RTInpiBjMImecb9G+AJ19mAsefjEJoMomY7VjZ+vgiozTyWlRUHdnbUoeR0xGqvscOeZuVOg6XI37Z0wPN1c3DypZnr1Lq2z5ytLRvSZlMagpa6puUxIctw/vbIVCirFrVqbd248/5riiyUlmg== X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 68bd4fbb-242e-4705-96af-08dafb036999 X-MS-Exchange-CrossTenant-AuthSource: SN6PR10MB3022.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Jan 2023 16:28:50.2274 (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: 7p342+IWD/SlpP+SZhckOgfYIqWORkL3DXnvOovLrAQDyDbiHZK3VjRQygk4hi4qW/ZO+njj7xZBXD54R9ZAbg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN7PR10MB6381 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.219,Aquarius:18.0.930,Hydra:6.0.562,FMLib:17.11.122.1 definitions=2023-01-20_09,2023-01-20_01,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 phishscore=0 bulkscore=0 suspectscore=0 spamscore=0 malwarescore=0 mlxscore=0 mlxlogscore=999 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2212070000 definitions=main-2301200157 X-Proofpoint-ORIG-GUID: mhlEbVvYkrK6ZYOgHG4emZejH5qslIi7 X-Proofpoint-GUID: mhlEbVvYkrK6ZYOgHG4emZejH5qslIi7 Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" From: "Liam R. Howlett" Splitting can be more efficient when the order is not of concern. Change do_vmi_align_munmap() to reduce walking of the tree during split operations. move_vma() must also be altered to remove the dependency of keeping the original VMA as the active part of the split. Transition to using vma iterator to look up the prev and/or next vma after munmap. Signed-off-by: Liam R. Howlett --- mm/mmap.c | 18 ++---------------- mm/mremap.c | 27 ++++++++++++++++----------- 2 files changed, 18 insertions(+), 27 deletions(-) diff --git a/mm/mmap.c b/mm/mmap.c index d9e2666d8059..56483b837ef9 100644 --- a/mm/mmap.c +++ b/mm/mmap.c @@ -2332,21 +2332,9 @@ do_vmi_align_munmap(struct vma_iterator *vmi, struct= vm_area_struct *vma, for_each_vma_range(*vmi, next, end) { /* Does it split the end? */ if (next->vm_end > end) { - struct vm_area_struct *split; - - error =3D __split_vma(vmi, next, end, 1); + error =3D __split_vma(vmi, next, end, 0); if (error) goto end_split_failed; - - split =3D vma_prev(vmi); - error =3D munmap_sidetree(split, &mas_detach); - if (error) - goto munmap_sidetree_failed; - - count++; - if (vma =3D=3D next) - vma =3D split; - break; } error =3D munmap_sidetree(next, &mas_detach); if (error) @@ -2359,9 +2347,7 @@ do_vmi_align_munmap(struct vma_iterator *vmi, struct = vm_area_struct *vma, #endif } =20 - if (!next) - next =3D vma_next(vmi); - + next =3D vma_next(vmi); if (unlikely(uf)) { /* * If userfaultfd_unmap_prep returns an error the vmas diff --git a/mm/mremap.c b/mm/mremap.c index 2176f0cc7f9a..1bc81afd90de 100644 --- a/mm/mremap.c +++ b/mm/mremap.c @@ -580,11 +580,12 @@ static unsigned long move_vma(struct vm_area_struct *= vma, unsigned long vm_flags =3D vma->vm_flags; unsigned long new_pgoff; unsigned long moved_len; - unsigned long excess =3D 0; + unsigned long account_start =3D 0; + unsigned long account_end =3D 0; unsigned long hiwater_vm; - int split =3D 0; int err =3D 0; bool need_rmap_locks; + VMA_ITERATOR(vmi, mm, old_addr); =20 /* * We'd prefer to avoid failure later on in do_munmap: @@ -662,10 +663,10 @@ static unsigned long move_vma(struct vm_area_struct *= vma, /* Conceal VM_ACCOUNT so old reservation is not undone */ if (vm_flags & VM_ACCOUNT && !(flags & MREMAP_DONTUNMAP)) { vma->vm_flags &=3D ~VM_ACCOUNT; - excess =3D vma->vm_end - vma->vm_start - old_len; - if (old_addr > vma->vm_start && - old_addr + old_len < vma->vm_end) - split =3D 1; + if (vma->vm_start < old_addr) + account_start =3D vma->vm_start; + if (vma->vm_end > old_addr + old_len) + account_end =3D vma->vm_end; } =20 /* @@ -700,11 +701,11 @@ static unsigned long move_vma(struct vm_area_struct *= vma, return new_addr; } =20 - if (do_munmap(mm, old_addr, old_len, uf_unmap) < 0) { + if (do_vmi_munmap(&vmi, mm, old_addr, old_len, uf_unmap, false) < 0) { /* OOM: unable to split vma, just get accounts right */ if (vm_flags & VM_ACCOUNT && !(flags & MREMAP_DONTUNMAP)) vm_acct_memory(old_len >> PAGE_SHIFT); - excess =3D 0; + account_start =3D account_end =3D 0; } =20 if (vm_flags & VM_LOCKED) { @@ -715,10 +716,14 @@ static unsigned long move_vma(struct vm_area_struct *= vma, mm->hiwater_vm =3D hiwater_vm; =20 /* Restore VM_ACCOUNT if one or two pieces of vma left */ - if (excess) { + if (account_start) { + vma =3D vma_prev(&vmi); + vma->vm_flags |=3D VM_ACCOUNT; + } + + if (account_end) { + vma =3D vma_next(&vmi); vma->vm_flags |=3D VM_ACCOUNT; - if (split) - find_vma(mm, vma->vm_end)->vm_flags |=3D VM_ACCOUNT; } =20 return new_addr; --=20 2.35.1 From nobody Sun Sep 14 14:22:07 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 17E58C05027 for ; Fri, 20 Jan 2023 16:31:15 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230301AbjATQbN (ORCPT ); Fri, 20 Jan 2023 11:31:13 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:38314 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230247AbjATQbH (ORCPT ); Fri, 20 Jan 2023 11:31:07 -0500 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 20B18298EC for ; Fri, 20 Jan 2023 08:30: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 30KGBjOF011480; Fri, 20 Jan 2023 16:28:58 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-2022-7-12; bh=xjY2jrdY3QZJ9w8k+bVf1Va0RZBvVfRpOJUI0biDIh8=; b=Yh20tt/EteSr0fZm/bmsSyt2IFw6ujx+fIm1d/1Ua4RmmPccgdZ2+pUpqzuv+kD4wiOv +4dh6JVRMRwDWTmyw83F+qcN6Qd/wQWBoReyi8bTlRDN5rRM2NV6H2skTFPhB8T0IQnJ N/0xY+TL56XrIsA9Vt0qCfrD3f5Yt7CSBgRBnQPT9Cm+nWatIZXDLKLuJU9uWnv2w0g4 3diLOCpiRwJoB6AH3eq41Xr5lVA6ZQagQ25PBZpySl5qdWZ0XZ4cHouAJiTcuzT+eDWW pKVJGz5bffKCZX2Q2ROwNQ3BiXRJgsHHwny+nWB1/PDvDau5S8skuUvFK1d8RrRlqEet aQ== Received: from iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta02.appoci.oracle.com [147.154.18.20]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3n7895aqsf-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 20 Jan 2023 16:28:57 +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 30KGP61h018673; Fri, 20 Jan 2023 16:28:57 GMT Received: from nam11-co1-obe.outbound.protection.outlook.com (mail-co1nam11lp2174.outbound.protection.outlook.com [104.47.56.174]) by iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 3n6quja1da-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 20 Jan 2023 16:28:57 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=gtmHH/q2yOtOh0OSXtNysJqF7plAAPV2L0sUBesTabi4ID1602VQCrB/zUoDXZuw+PwwVQNE2OC0rpp27QHATpKkXs3yAX3P/FVjgja2tbphpgC+PmtS8+qJq3vnTJNUw094CujLezDreV7hAriXGmDX1wGvGdgxpqG5pTQyZQiqOZ3Lasx7Hu3ZSXP7mI/agOrkvNR4+hyDuhsePOnBdRlrMwQcoKcQjvGyw100ZmLU8GpgUk1CEiQ171Yqfs2NHAvy2eYeXgEcnG3kn4DNDpflntljeWLMbWRWpmCbp2WmEFLvOa4BwpJS4GAXzWYmtI/yA7J4o8W66d/bm9GyYw== 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=xjY2jrdY3QZJ9w8k+bVf1Va0RZBvVfRpOJUI0biDIh8=; b=MKpBUsJoKxuv9yv1+/IfMW5ohTvotUlUPI2NuPiWRy71ficGfpFdrruvr5/r3aJX9BGGToVHp26bKQMhoqNv6Pw1b7IqdlGCd5zLda2vFoAyAmcy+pQOxMWQLP0Ywoouee2lgaQrGOipcq9E5oISIkwOtgrwBej33ODNnPFbA9SLW8yH/cBSqz9ut/wmn/fzwtVMzKNwfMq+kbPHjqGG2VHT2wInbbuNIR5FLIcjCs18OKP4pxLMGjgr5nMcrZqe8KeSxEPZBB3ZelkZIxCydXpkFD4SLX3MKo1+opAC2mMFHGRpj6MwKe9dqtT9/FwHs1Gwx+0kQAIyZxWo3grfPQ== 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=xjY2jrdY3QZJ9w8k+bVf1Va0RZBvVfRpOJUI0biDIh8=; b=sGYi86FBmaIJl8Zf9W/EaoMnkQX9GfxjdOkulMA8n/ndqRtunU+1P9/GaWUR64M2hpQ6DeWvouoqaohZNP2fEkkPEVJsui116L6jc2LezkmIs+bavW0ep7Ezn8g/0NHxik8wKwHvbQlSmI9kmgS37sdzH/cXPYuNaihvr7N2WfQ= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by SN7PR10MB6381.namprd10.prod.outlook.com (2603:10b6:806:26f::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6043.5; Fri, 20 Jan 2023 16:28:52 +0000 Received: from SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::7306:828b:8091:9674]) by SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::7306:828b:8091:9674%5]) with mapi id 15.20.6043.005; Fri, 20 Jan 2023 16:28:52 +0000 From: "Liam R. Howlett" To: linux-mm@kvack.org, linux-kernel@vger.kernel.org, Andrew Morton , maple-tree@lists.infradead.org Cc: "Liam R. Howlett" , "Liam R . Howlett" Subject: [PATCH v4 39/49] mm/mmap: move anon_vma setting in __vma_adjust() Date: Fri, 20 Jan 2023 11:26:40 -0500 Message-Id: <20230120162650.984577-40-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.35.1 In-Reply-To: <20230120162650.984577-1-Liam.Howlett@oracle.com> References: <20230120162650.984577-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YT4PR01CA0142.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:d5::17) To SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SN6PR10MB3022:EE_|SN7PR10MB6381:EE_ X-MS-Office365-Filtering-Correlation-Id: 703e6f97-6763-448a-6eab-08dafb036adb X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: s1j8J9pX/f6AI5/eqitFEsww8z894a00eHLvHEGplg6PY8fSVYLlEBbTC8T1SmN0VDQFRTjGoHQvNaNllxPZdtpcHVDIMIe8t23nb96wbMasIoYbHETB2z7Hx+I9Fq+275iewSs0nAEYtYjVJbnlf3LvASATzWmw+5BRsrIbRuUx8YJ/R7BlYbGotArIlitBU9IflfPT4Lq+EQdeHFY+ZDaLpozjCIWUSXTNiAHaS48IFKXomdo/aP0khCZ6y3KNK5S3XhnbO85KlSy7N8l+3H5wiTB8GbPiFyRrbHCSDNagsaEbGxTikE9BTB86db09cSRJoFy2l8qBVHX4YBhCBAjJaCzSM5xK27HG3UqJAg8aI01B1XY4UeBBPnkQzWioTMf68AfISVBvaE3cVJ4D9jmX2NqzhfE9AJw3xq+dvwmfLn8iusgatJ9zpgEu3AUmF/uhvpjI1wrrNaYoLgl7iO6/18YlVjCOGqQHXMXk/B5vGQ4aJjKiOVc+AJyj935xkymYhbeW+canKxhCfTYJXSQA7t/ty+Bwq7hct8HpfAAhtcd/Bj54nW03U6+v7OyLP2z6MnI6VRLAMf/Au1AuT3oH1CbWsoW7lnBrFVKx+i0QOJ2sdlqm8N3wlC/Hofn7a4yhVwKiC5CISUb9INjm+w== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SN6PR10MB3022.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230022)(39860400002)(136003)(376002)(396003)(346002)(366004)(451199015)(186003)(2906002)(8936002)(5660300002)(2616005)(41300700001)(86362001)(8676002)(83380400001)(66556008)(66476007)(66946007)(36756003)(4326008)(316002)(26005)(54906003)(6512007)(6506007)(1076003)(6486002)(38100700002)(6666004)(478600001)(107886003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?3f1k6UTK1thm0s9UHEKTwmSOPkL+73p6AqXoirtDCNZaaX+x+cPR1N/hWddO?= =?us-ascii?Q?O9eL+dhE9UIj0zn0I88+gkpPj07MuSr1T3HXyGyshGEhjEFPX1+QQNUluQgQ?= =?us-ascii?Q?XMSNSs8lJ9l6rzbqvqaGmBSX29lyunnYAizYOX/yNUaSZFfrnMz4tjnTy14D?= =?us-ascii?Q?VdgcoEhk/qxKD3XwCd26S+8j9/h6ISAP/rLGiyK6Nff853Eoy//RHqkE5cis?= =?us-ascii?Q?KQWOZ2+RZ4Ns0WFiNutPaOrIfNmWEHDJKs4D8cyEGiAV4snme8h7HmssA5SI?= =?us-ascii?Q?dvbRzce5+968tqDwgtMbq127ZxZprr2IhnO1/gpSABn2yo1cxcOgwG6/Jyg6?= =?us-ascii?Q?rLpaeZ+jfVdluo89bnEE1CGnkzD/LNV9BjR0ERk/hdOsn7UlsaS3OseF0V9a?= =?us-ascii?Q?Bsx0DmC4/d6w9rCpFf01TS8MPP8sr2rePoLiOqXWYnG92vrx3DxDifz+V8GS?= =?us-ascii?Q?StgjjRJIGcfQOuLTcmyOKsSLwbGejWFqntRqUD/24z18e81Hxomcs+V6NH1f?= =?us-ascii?Q?6Y1G0PEdZZC2HG1zlpRDh/n9cfv+PzXqgd3tgEAqBSIUDkte5ILGTZzcm899?= =?us-ascii?Q?UpCo4H5vI9cPzrSnta1qqMUms6r9szM+p73ERAbczS1aqy1WxUIFyqxLNtg4?= =?us-ascii?Q?loDKKPkQL8i99mkOSDnbgG7fQwXR9TO1fFV5mwdVJrWah4HhKkGMayLu0wJJ?= =?us-ascii?Q?RPBAIHxE53PnTmxQWEm66nShRGsj21R3bKKPyhKLf5JZ2BnZAxTXnEWSwxRg?= =?us-ascii?Q?c6r42Jdz2bKWoS2JmKSyVnP/D6Yrd99rQJzuyn0zUBPKVVo7rO3mFstHb3IX?= =?us-ascii?Q?Ot6kZNrLjXNkIKZmqDOUvfwTimmjbks/57NpE9faWc2xJCEju3+ThdA/QbG8?= =?us-ascii?Q?tTTi7UcVhb9wOLKf8iQs7UplAVL9oY3u+jJVYndsjeVR3uXfwvGOGLMPNP/5?= =?us-ascii?Q?OxYdiUAiln5ylx5DgyG+rC0naF8Obc6guKhjTdBZyy1Us1Mdxcs1i5oBnbXa?= =?us-ascii?Q?FMU6CMp+7/6fAlu5xAZfj4bsYji1YdNJBzH1lQFQTfN35cFW0Sl7Ksy9f1/d?= =?us-ascii?Q?j7MbDwb/J5UMlucZKw0b3W90r1I1IZwwVXaODGfyU9ecL/KHMxHBs5libRSb?= =?us-ascii?Q?bMjSOAco1qyWSpEJTA5uUhJaM9m8D+ZM/KnBA2HmguijYHVyFsTsCG4/nC1a?= =?us-ascii?Q?8PP/RhZpR8/QBaNCAAAAs+46bJCDPqqWfyzhwduMKYNM/semd7GbptVu/bcd?= =?us-ascii?Q?9W51xe0PMSCUXnb4mdOg6/HX6N63ToGjh70VeGP6XBju6Np5sB1Ff9WnwT65?= =?us-ascii?Q?Ra4D3Whzw429hfYYmLs48ZpBVPRF3e3CEjLPP7P1vnrMYWoy88SWQIUqr/j3?= =?us-ascii?Q?cWx5p5nShjko/J7l87UO5xXkCQfHCVktHNQAd8YT9LQxopOirl+tR19/dc+1?= =?us-ascii?Q?FPIiBg46b3+1udaSarZciNBsPaQVupdHS6PdrVRjquBF6vBfgnOcsXaZLOHM?= =?us-ascii?Q?iD1+bS6/gDzWw/6/dkun87wFyvup/MUKkwsLVvLeLV+RxlTDU9OJoBQiU+Yv?= =?us-ascii?Q?pdeVX653H4Nh+V+zZrm3z3vnTLtE9r6M+f6wN8OpYNhKtCm+Q60bvQRS0vtQ?= =?us-ascii?Q?6g=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: cGr8aZ2aRCmlf+pm7GIecX4pBR/TzBvASObIrmoHR4g3ihkvExTf5vfy1zJ96xOGbkni0bVfUlq16TASZ1MkUTsxNa2VjpIobJWcmcbffARUUQei3rlvpTyao0XUfG5/PKoSf/xyC12589yo2xYHeDHJvzkm17ycszyrSGxUVxZZMX+JivTH6W8vyEWqhNQngMOib6RpAFCewNRXoVOJpbkLJuN8Wru3bEWiYrp4dtzz8x9x2vrj7HQPkcqQwHiDYETFDR1NRDB00ZUfhT9cdYAxnkX9+BHaSQXkKTccj4EAufQZseI70RnnMlJmQdlpNXBp+vBYXITNWrUO2hGAeKPcsloVlD5tchQx/GvlnxF+LXqDzbOKFKr9iuMfZRhiXayqXnunaos0158081V9ndM7IpGwMIF+Gswc1EkK/q5cZr1TeHw+GVH2X2HbFwuA0hFOMl3GWdDOWhINGtCz9MFte1Lj5zlKXc6K0nAeCGgHxXRNPd42Nzc1M6ahT4L69/3mHzSuUbgPYpnvktN1f+6ZP8bj56DoLtTH22qYq9Xzqk6dYb5B6y2xYwELvV07LKDzCJeF8SaXvbH5uKkE0xuovolpiyAx4DN6dCr4AD4YHwhhzgGJfDWs8eC+q5s+wKVzKt1QFw5DnZWMp4WufvLKUXkWUF++pX2RdUko+j7LX6gEne3DiNXFlbQVPTLWRphMOJMwMrT+cXRwsdkGrtBlPfBOXAX1NvhAhxjYex38jt1vga2N1zQOwds/RSil6ZwJ+Jgr2eYgXkbdFFlpvarYcLr7b8ZsH13FxTztfl2yfYvL9hstYmck72siWlOurD7cosAjuOBAdQ1Ea1C8aF2/4s7BknYK38Gsd8b9NBAqPH479NuOBHJbG5J4aRYClgavlau1Ya+slUOomk1MvA== X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 703e6f97-6763-448a-6eab-08dafb036adb X-MS-Exchange-CrossTenant-AuthSource: SN6PR10MB3022.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Jan 2023 16:28:52.4460 (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: 7XXQ4uu4q5ImH7ydM7gVqU9MnMYEqJy9OrOAc9Ab0H3QvHVAXP+t7Fcre60wI+LLLy7Wyhxn9x6z6pCb9q9hJQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN7PR10MB6381 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.219,Aquarius:18.0.930,Hydra:6.0.562,FMLib:17.11.122.1 definitions=2023-01-20_09,2023-01-20_01,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 suspectscore=0 phishscore=0 malwarescore=0 spamscore=0 mlxlogscore=999 mlxscore=0 adultscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2212070000 definitions=main-2301200157 X-Proofpoint-ORIG-GUID: 7K5CINu5TmvjhHj_LMF9JfLoz3XHCSsE X-Proofpoint-GUID: 7K5CINu5TmvjhHj_LMF9JfLoz3XHCSsE Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" From: "Liam R. Howlett" Move the anon_vma setting & warn_no up the function. This is done to clear up the locking later. Signed-off-by: Liam R. Howlett --- mm/mmap.c | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/mm/mmap.c b/mm/mmap.c index 56483b837ef9..b83c70c59a76 100644 --- a/mm/mmap.c +++ b/mm/mmap.c @@ -685,6 +685,14 @@ int __vma_adjust(struct vma_iterator *vmi, struct vm_a= rea_struct *vma, if (vma_iter_prealloc(vmi)) return -ENOMEM; =20 + anon_vma =3D vma->anon_vma; + if (!anon_vma && adjust_next) + anon_vma =3D next->anon_vma; + + if (anon_vma) + VM_WARN_ON(adjust_next && next->anon_vma && + anon_vma !=3D next->anon_vma); + vma_adjust_trans_huge(orig_vma, start, end, adjust_next); if (file) { mapping =3D file->f_mapping; @@ -706,12 +714,7 @@ int __vma_adjust(struct vma_iterator *vmi, struct vm_a= rea_struct *vma, } } =20 - anon_vma =3D vma->anon_vma; - if (!anon_vma && adjust_next) - anon_vma =3D next->anon_vma; if (anon_vma) { - VM_WARN_ON(adjust_next && next->anon_vma && - anon_vma !=3D next->anon_vma); anon_vma_lock_write(anon_vma); anon_vma_interval_tree_pre_update_vma(vma); if (adjust_next) --=20 2.35.1 From nobody Sun Sep 14 14:22:07 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 9C1E2C25B4E for ; Fri, 20 Jan 2023 16:31:03 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229459AbjATQbC (ORCPT ); Fri, 20 Jan 2023 11:31:02 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:38182 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229492AbjATQbA (ORCPT ); Fri, 20 Jan 2023 11:31:00 -0500 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id AA91170291 for ; Fri, 20 Jan 2023 08:30: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 30KGEC4H006224; Fri, 20 Jan 2023 16:29:00 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-2022-7-12; bh=n4Gq67PooHV0kmg5itzjmmVVXM1ySWT1cdfJ2Ul+zK4=; b=vYCxmGm5u8GNn8vZt13JzIFyKorWSf9ZUIsnfdMr0uXhNmCIcDeRLykpdfXeRhKospCv tLADKVL0QJ4QPkEbTo6JBHu5Zon4gGo3h2u/wDqdhUsO/UIPeFZiQmpHM+iUpVvGdHUg QknKNdiImssl2iXP3aP0DOZUMUwD/9/oo6tOdSIHIxEOUmtR/luBqdFg44+tdH0prEdz 7mh0kdfkskcHW80rRDoGvQa8P1N9NyUQ8zu0GAdCx+dc2WrpFcMDx4/8vLn/cOHzU9QN LQG6C0lqcS6NJvlXVMMgeZ/hoPkYG/9VUGIO/Y2FyPlzV9NFkr2SgJBjJy382umhvbB3 +w== Received: from phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta03.appoci.oracle.com [138.1.37.129]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3n40mdmfyv-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 20 Jan 2023 16:28:59 +0000 Received: from pps.filterd (phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (8.17.1.5/8.17.1.5) with ESMTP id 30KGN3LC007681; Fri, 20 Jan 2023 16:28:59 GMT Received: from nam11-co1-obe.outbound.protection.outlook.com (mail-co1nam11lp2176.outbound.protection.outlook.com [104.47.56.176]) by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 3n6rgeq8e9-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 20 Jan 2023 16:28:59 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=loAUDjiJZ7GP1iI0gMk2/DYhMR2n+X/ce+FY3TbQjWq7RgvMcZlLvOoviPX6Ltk1rtG6aswn1gXnhiCcgiPiS6P3LegilTcTOsnjW45gu4l+7B2QA8UQB/8GDv8JGU29Wf8xrGbx11wmaQdzjp4xr8Ls8BCWfva1PQzEWaCrksJK1MQ2lQVt6WMi6Q2bdVM8knWBBqmZfOnzrdwJq3r8XjvhaopOD8RO/MMBVOQEUxod/Zd8iH97H3q2Crc6DOUSrc5rE+G1zlnZnYI1pntoCtbGzwygg2A/sTmuEYZG9EB6bEXe6muNwW3kx2ZZm5iK5fn6mFGB1B9zvGMop6eysA== 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=n4Gq67PooHV0kmg5itzjmmVVXM1ySWT1cdfJ2Ul+zK4=; b=k144uyDkfQh/sPukgqukrrXc4XWZUr76InZX9qOj34Yu/V866j6Q9piJxOdsKecX8f8cAgo4z5s9TzEjdwTg3Roa0r54x3GmirEgOG0SLkzo8d2r2b/xwcmel6IJwEOvzTOKiSegvGTYhQNqWwXNo0TTsyqF2X3dGyp7RWVRqioFjmKDp5VgovHlKWKzmmzTO8UlgiWTmWPJcIDqQfEXFUoMwUFGKFSVgRUlCCGjNY7VBAcz12o3mHYEXOOAoaGt5ptSYkYtyOskOMTNi6awev/+I/ebyh39q6/YDDQTkIlGaHGnFO7Nsg7Q+2Q1IBLYOb6UVg2e2pzQ2gTXbHSHBQ== 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=n4Gq67PooHV0kmg5itzjmmVVXM1ySWT1cdfJ2Ul+zK4=; b=CIrJG/DbORZ0q05VVes+KcCQIodDsPDdeR2PrfcIZenENpmJykjALzHKvOmAH8TmaRJAHPpR+BfWDtmsBbItUGAAjRo8tkMQBxBjmkvNJOr9u1061vd69mJgp+0q0UXyBgdS64VcNY8vsYcCngybDpfY8Pb9solzsuS00ZWnf9Q= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by SN7PR10MB6381.namprd10.prod.outlook.com (2603:10b6:806:26f::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6043.5; Fri, 20 Jan 2023 16:28:57 +0000 Received: from SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::7306:828b:8091:9674]) by SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::7306:828b:8091:9674%5]) with mapi id 15.20.6043.005; Fri, 20 Jan 2023 16:28:55 +0000 From: "Liam R. Howlett" To: linux-mm@kvack.org, linux-kernel@vger.kernel.org, Andrew Morton , maple-tree@lists.infradead.org Cc: "Liam R. Howlett" , "Liam R . Howlett" Subject: [PATCH v4 40/49] mm/mmap: Refactor locking out of __vma_adjust() Date: Fri, 20 Jan 2023 11:26:41 -0500 Message-Id: <20230120162650.984577-41-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.35.1 In-Reply-To: <20230120162650.984577-1-Liam.Howlett@oracle.com> References: <20230120162650.984577-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YT1PR01CA0045.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:2e::14) To SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SN6PR10MB3022:EE_|SN7PR10MB6381:EE_ X-MS-Office365-Filtering-Correlation-Id: 4ff07b04-c058-490b-9487-08dafb036c2b X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: g3gvwZ+fYsVK1YJRE0qIS/XIdu10kZRIBg55xvx27Xid4VHNQaS3Bfw/Htnk0uK+umrA7yV8k5KCEWEFa4lWldUot+m/n/F5g4US982vINmYYg+q/EfsCtcabmhJtGQZUIKg0h2vIQuTW138YCuoNC4bBiOwZ/zjDS4+9NFckMPxdWXYbzDJUwAZLXH2AYtR/kZH1Tp05kjK+mJb1PLQ0ZmC+o2lgUapcC1JGVeovIbUVRXxa/n4+lJs3m9wD3eOd/VcbagpzSGD2g6suNlnDJ8CWPCqTDZPIElBi/87iiIIDoIRCbOr7r9IBGKWIyAKeEvnZuZScUAkxmP2pp+ZTGF5kdu4uhN2zv2KzrbTxLpsJPpYZNHMwPpwijgHWCMtROZOvp68YNex3u9ALU7MIas/PrwzxVjyJBgQ7fe1ffA35iI1J1IBecSIVNTvhI5tViCEi4LVJhjnku3N1XbgwNI36Ei/wA6ZIA8h/eldTGi2mPeCbyHWfuoDMsiDyeWGRH0FhriO1Vo8sZTJm1SnCdZxliPGpVHN8zHFDYrLC0w45ykTwMV3rqL3Bo26J0IV94S4UoCRZWD0A9D+QhTNQ2pg8V5spz3n/O5P7swhN32B0jKKyoxpPvLmUFFm6GhKY8NbChhXtMbW5Gnr7pp+Dg== 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)(39860400002)(136003)(376002)(396003)(346002)(366004)(451199015)(186003)(2906002)(8936002)(5660300002)(2616005)(41300700001)(86362001)(8676002)(83380400001)(66556008)(66476007)(66946007)(36756003)(4326008)(316002)(26005)(54906003)(6512007)(6506007)(1076003)(6486002)(38100700002)(6666004)(478600001)(107886003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?i66D8JMZ4Y2BkUGBlHonX1Pb/zXs+dYT13ULAoJsOy+ICjkrPRuZRzkJhHl8?= =?us-ascii?Q?rrOffC3xc8lHxHbrryfEgsJ+y8eV5IPIfyrTfYg8svE8u04m0Ou7vBQVoFZ2?= =?us-ascii?Q?sR2NOAUebKZ4388w5/QFD54FUUrTsACgZSoLiGedKNBwEa7i0d0+RZ8JT4vd?= =?us-ascii?Q?0HZ/yO8kr+0KUrCRNXHfmExhmURmB3XkykZbIwOYF+YHoi2lZ266l/CULWgA?= =?us-ascii?Q?LzGDIeULo5i2V+tJQH2FiFnUGZBVM+4WXpz52Jw9idue7B+dvW+P05njxwEa?= =?us-ascii?Q?AI25SkNRoLnd9No5LbGFOUhsBVgcihoBhlXHGf9bkD+Mo/k/e1htAR6JeNjE?= =?us-ascii?Q?TyYD4lcSZZa+7/IWFmbDwUBzZIoeWT6zZL2/w0v3bR6T9/t/qcYkD9TIW5yy?= =?us-ascii?Q?LY5/e46f/Zm0iUov79ximJuQ4z7xQjsqxJAljVhFV1CNZcml6KYUNgEb1u2Q?= =?us-ascii?Q?DNRRnxnk6LdDta0L7N0RddjIldcGTafYP3njYHZ+Z7KhzGYGm3kQUVSFyM9z?= =?us-ascii?Q?LKMk0aG8Wd1x6s1RC6Ty7YeBlEdOC8YixbNYnDgq5GpirOaBhrQb9oPRpCle?= =?us-ascii?Q?UBIEaBqi1j2x23Sjo29ItB8yQVbAUwZJzBzo1NoOYwp2+kdD6ZuiSRsDRofl?= =?us-ascii?Q?tWfOlem5JW15OtHkLYeMGcmAEffm0otnjYmGhrszMnwb6gfIIbBcZp2Uctp5?= =?us-ascii?Q?RaI/+bJtqtzbKyTVMXO0m4YPyodhzYEimaEpMfnWfJbLXGI91rRSgylVo0uM?= =?us-ascii?Q?izZxs7NFRp9jlq05KsRuw0RY33lbuSAewhELXQsp3EFH3OFBQZczQQW+3icj?= =?us-ascii?Q?TBLjmcV4dWPj1bA/b3mD3px+SijUJSHufxrue6BQ9PcGncAeQZc8fimuUOoO?= =?us-ascii?Q?2EVkZKNQMaeyNNmlCHlfuQE9n+OZjwVHp1wgn9eZTAfB22PRmfaxVtJVScUy?= =?us-ascii?Q?YY0OAfq7TpMZsr+h9mqtYldQlvD7aTduiLCi+WE7BjrgCtil73vC7qwvDWLy?= =?us-ascii?Q?oKMed2156zrmJf8p2lWAZ3NMgLG5Oq730MmjPWoxwylVkDsWyKgtosSlfYUC?= =?us-ascii?Q?dO+azGz+9vN3ip2u31LzCH+S4ilXBjgDfP0d/wAA3KrEksbP4c671D1vYC6M?= =?us-ascii?Q?Uqgu8P0x6gFQxCNM2aKPBAl7bJDCvuNOhxLZFJBBhUS3jaadJe8yAGIfYeY3?= =?us-ascii?Q?Lg2EWncNs4jr+xFhLk0khtHvYRyYKBPSXwwJruZslN+5nNhW0yFyLXNO5nov?= =?us-ascii?Q?Oa0jUCBEL4N5TBalmInJSV4+880lARyjVp7Jia7aqkizZjafgLfayfCSRD9b?= =?us-ascii?Q?VhuG2YaNh69pKbs7PM5sKKfXfTdIY+aBMrupFZhLFJp5E4bnOtvqJ891EI2O?= =?us-ascii?Q?Z5qhohe7f3+E1W3n3VmIqCSRtSIFb4uFcQeeTAPkmwCqHDcoUZ8cOzWR5Yd1?= =?us-ascii?Q?QvHvn30M/i2yzkGXX9kkF1Y1d/CQ1C+QeUG4whEyibyJ9gV7UGOvHXM/rWyF?= =?us-ascii?Q?L1AqCpAHbz3SoxWNzVfA98qo7JLHiYpYu0bZgUeOaJ+fd/F6iZhyId0j7j4K?= =?us-ascii?Q?HKzGLv+xG4Ou7BZO55eEGbK7Ur3b1vTfYiFMl0Jn3lFZjcgFi5Gng50kYXdq?= =?us-ascii?Q?IA=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: kxvq1DFtuI2qsA5iT5DW6oZD/R4gW5opalYxeCll6B9aPB8/cpx+6B/jN4qKemMRCLNLLUyjMTgvpvC4mSsr6gvDd+Ws70p+r7Jq/MUk56tTKqL3rjc4I/Esak5a358tzEdSvs+CI7qoUXHyk/AuS+lOa7z0EYezO/Aup5IIvlS1tiRh2RrG8y98VHUfLviiVMpo4jcE3BV8riUxo0ezNlFBMHinKaossNqSqkbfhg3BSEnMhtlT4Jnqz9usSiYuU8VP+apHzdchuO7qgDsmazzD1n3Sx3Q6+JLk9YJKaStmmmLJqa1zv1/l+F/RXKEelPveZF0Xugn1W+NKMHonFeWRz0LgW7gcpTKDVwerS8d92zpwOijkPDurYsQqZX1YKy8IVLLiPCeoUuQOs3OoHR0NjnYRFTzC5T1MixsD9GJ8VEh8fFk+ate6lOEMudhbGki+6mfBM3OXeiPlwFOtlXfRxGseGkehZdLiuxSnCqf7TcFi/x1m1yUfRoCuxh5qtWbA3x6V198TrC3Z6ih1MP5syEsd0aBjPxcR2zyV3g1RJ/2UqW6JguQJ5j/uLZHZPEFHBUkW5alXHNNe3vwswQ3QxYpLbMeglRDv2zDJFMgxpFxAAh3CDfsElqBxDA+BWIbcET5AA5fCKRZPpYV9kE6KZB+Wuk5ber4LI7jdrYVkuxuEAvqIt69WSeluF83ccfTvFiDjunYWYl4RbDdCkp4ZfFGEnMIH4H0oO7qJD42OGe7pPUFoSiU74CK17dJt1O860fy2ugXd2+b8V4Q1qBQE3Eq+1zt3jEPFmeAbwmSPPEwg+IPXI0RkiunKUNCaupi9pttda8bQErx71SEes6Wlk206F/AQmAmLuCPpGDtiQxJIXSwVKedQu8Ot7zT4w8bWvyx1er1J450ggBz9cw== X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 4ff07b04-c058-490b-9487-08dafb036c2b X-MS-Exchange-CrossTenant-AuthSource: SN6PR10MB3022.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Jan 2023 16:28:54.6959 (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: EsKzSINOIjdQY3biHl1aagx1xuiDv0XowuS/mia96cO7MJqC6z695GlXOhHgpBmdl1dR4IJbQEeoIjhY6Tj2Sg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN7PR10MB6381 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.219,Aquarius:18.0.930,Hydra:6.0.562,FMLib:17.11.122.1 definitions=2023-01-20_09,2023-01-20_01,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 suspectscore=0 phishscore=0 mlxscore=0 malwarescore=0 spamscore=0 bulkscore=0 adultscore=0 mlxlogscore=953 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2212070000 definitions=main-2301200157 X-Proofpoint-ORIG-GUID: 1O60DMNIhNsUlQW53mADoXVdqrNPCam1 X-Proofpoint-GUID: 1O60DMNIhNsUlQW53mADoXVdqrNPCam1 Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" From: "Liam R. Howlett" Move the locking into vma_prepare() and vma_complete() for use elsewhere Signed-off-by: Liam R. Howlett --- mm/internal.h | 14 +++ mm/mmap.c | 231 +++++++++++++++++++++++++++++--------------------- 2 files changed, 150 insertions(+), 95 deletions(-) diff --git a/mm/internal.h b/mm/internal.h index b4f66efc912d..bcd01a6e8ed2 100644 --- a/mm/internal.h +++ b/mm/internal.h @@ -937,4 +937,18 @@ static inline int vma_iter_store_gfp(struct vma_iterat= or *vmi, =20 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 b83c70c59a76..9afaf05eb96b 100644 --- a/mm/mmap.c +++ b/mm/mmap.c @@ -576,6 +576,127 @@ inline int vma_expand(struct vma_iterator *vmi, struc= t vm_area_struct *vma, return -ENOMEM; } =20 +/* + * vma_prepare() - Helper function for handling locking VMAs prior to alte= ring + * @vp: The initialized vma_prepare struct + */ +static inline void vma_prepare(struct vma_prepare *vp) +{ + if (vp->file) { + uprobe_munmap(vp->vma, vp->vma->vm_start, vp->vma->vm_end); + + if (vp->adj_next) + uprobe_munmap(vp->adj_next, vp->adj_next->vm_start, + vp->adj_next->vm_end); + + i_mmap_lock_write(vp->mapping); + if (vp->insert && vp->insert->vm_file) { + /* + * Put into interval tree now, so instantiated pages + * are visible to arm/parisc __flush_dcache_page + * throughout; but we cannot insert into address + * space until vma start or end is updated. + */ + __vma_link_file(vp->insert, + vp->insert->vm_file->f_mapping); + } + } + + if (vp->anon_vma) { + anon_vma_lock_write(vp->anon_vma); + anon_vma_interval_tree_pre_update_vma(vp->vma); + if (vp->adj_next) + anon_vma_interval_tree_pre_update_vma(vp->adj_next); + } + + if (vp->file) { + flush_dcache_mmap_lock(vp->mapping); + vma_interval_tree_remove(vp->vma, &vp->mapping->i_mmap); + if (vp->adj_next) + vma_interval_tree_remove(vp->adj_next, + &vp->mapping->i_mmap); + } + +} + +/* + * vma_complete- Helper function for handling the unlocking after altering= VMAs, + * or for inserting a VMA. + * + * @vp: The vma_prepare struct + * @vmi: The vma iterator + * @mm: The mm_struct + */ +static inline void vma_complete(struct vma_prepare *vp, + struct vma_iterator *vmi, struct mm_struct *mm) +{ + if (vp->file) { + if (vp->adj_next) + vma_interval_tree_insert(vp->adj_next, + &vp->mapping->i_mmap); + vma_interval_tree_insert(vp->vma, &vp->mapping->i_mmap); + flush_dcache_mmap_unlock(vp->mapping); + } + + if (vp->remove && vp->file) { + __remove_shared_vm_struct(vp->remove, vp->file, vp->mapping); + if (vp->remove2) + __remove_shared_vm_struct(vp->remove2, vp->file, + vp->mapping); + } else if (vp->insert) { + /* + * split_vma has split insert from vma, and needs + * us to insert it before dropping the locks + * (it may either follow vma or precede it). + */ + vma_iter_store(vmi, vp->insert); + mm->map_count++; + } + + if (vp->anon_vma) { + anon_vma_interval_tree_post_update_vma(vp->vma); + if (vp->adj_next) + anon_vma_interval_tree_post_update_vma(vp->adj_next); + anon_vma_unlock_write(vp->anon_vma); + } + + if (vp->file) { + i_mmap_unlock_write(vp->mapping); + uprobe_mmap(vp->vma); + + if (vp->adj_next) + uprobe_mmap(vp->adj_next); + } + + if (vp->remove) { +again: + if (vp->file) { + uprobe_munmap(vp->remove, vp->remove->vm_start, + vp->remove->vm_end); + fput(vp->file); + } + if (vp->remove->anon_vma) + anon_vma_merge(vp->vma, vp->remove); + mm->map_count--; + mpol_put(vma_policy(vp->remove)); + if (!vp->remove2) + WARN_ON_ONCE(vp->vma->vm_end < vp->remove->vm_end); + vm_area_free(vp->remove); + + /* + * In mprotect's case 6 (see comments on vma_merge), + * we must remove next_next too. + */ + if (vp->remove2) { + vp->remove =3D vp->remove2; + vp->remove2 =3D NULL; + goto again; + } + } + if (vp->insert && vp->file) + uprobe_mmap(vp->insert); +} + /* * We cannot adjust vm_start, vm_end, vm_pgoff fields of a vma that * is already present in an i_mmap tree without adjusting the tree. @@ -591,14 +712,13 @@ int __vma_adjust(struct vma_iterator *vmi, struct vm_= area_struct *vma, struct vm_area_struct *next_next =3D NULL; /* uninit var warning */ struct vm_area_struct *next =3D find_vma(mm, vma->vm_end); struct vm_area_struct *orig_vma =3D vma; - struct address_space *mapping =3D NULL; - struct rb_root_cached *root =3D NULL; struct anon_vma *anon_vma =3D NULL; struct file *file =3D vma->vm_file; bool vma_changed =3D false; long adjust_next =3D 0; int remove_next =3D 0; struct vm_area_struct *exporter =3D NULL, *importer =3D NULL; + struct vma_prepare vma_prep; =20 if (next && !insert) { if (end >=3D next->vm_end) { @@ -694,39 +814,22 @@ int __vma_adjust(struct vma_iterator *vmi, struct vm_= area_struct *vma, anon_vma !=3D next->anon_vma); =20 vma_adjust_trans_huge(orig_vma, start, end, adjust_next); - if (file) { - mapping =3D file->f_mapping; - root =3D &mapping->i_mmap; - uprobe_munmap(vma, vma->vm_start, vma->vm_end); - - if (adjust_next) - uprobe_munmap(next, next->vm_start, next->vm_end); - - i_mmap_lock_write(mapping); - if (insert && insert->vm_file) { - /* - * Put into interval tree now, so instantiated pages - * are visible to arm/parisc __flush_dcache_page - * throughout; but we cannot insert into address - * space until vma start or end is updated. - */ - __vma_link_file(insert, insert->vm_file->f_mapping); - } - } =20 - if (anon_vma) { - anon_vma_lock_write(anon_vma); - anon_vma_interval_tree_pre_update_vma(vma); - if (adjust_next) - anon_vma_interval_tree_pre_update_vma(next); + memset(&vma_prep, 0, sizeof(vma_prep)); + vma_prep.vma =3D vma; + vma_prep.anon_vma =3D anon_vma; + vma_prep.file =3D file; + if (adjust_next) + vma_prep.adj_next =3D next; + if (file) + vma_prep.mapping =3D file->f_mapping; + vma_prep.insert =3D insert; + if (remove_next) { + vma_prep.remove =3D next; + vma_prep.remove2 =3D next_next; } =20 - if (file) { - flush_dcache_mmap_lock(mapping); - vma_interval_tree_remove(vma, root); - if (adjust_next) - vma_interval_tree_remove(next, root); - } + vma_prepare(&vma_prep); =20 if (start !=3D vma->vm_start) { if (vma->vm_start < start) { @@ -764,69 +867,7 @@ int __vma_adjust(struct vma_iterator *vmi, struct vm_a= rea_struct *vma, vma_iter_store(vmi, next); } =20 - if (file) { - if (adjust_next) - vma_interval_tree_insert(next, root); - vma_interval_tree_insert(vma, root); - flush_dcache_mmap_unlock(mapping); - } - - if (remove_next && file) { - __remove_shared_vm_struct(next, file, mapping); - if (remove_next =3D=3D 2) - __remove_shared_vm_struct(next_next, file, mapping); - } else if (insert) { - /* - * split_vma has split insert from vma, and needs - * us to insert it before dropping the locks - * (it may either follow vma or precede it). - */ - vma_iter_store(vmi, insert); - mm->map_count++; - } - - if (anon_vma) { - anon_vma_interval_tree_post_update_vma(vma); - if (adjust_next) - anon_vma_interval_tree_post_update_vma(next); - anon_vma_unlock_write(anon_vma); - } - - if (file) { - i_mmap_unlock_write(mapping); - uprobe_mmap(vma); - - if (adjust_next) - uprobe_mmap(next); - } - - if (remove_next) { -again: - if (file) { - uprobe_munmap(next, next->vm_start, next->vm_end); - fput(file); - } - if (next->anon_vma) - anon_vma_merge(vma, next); - mm->map_count--; - mpol_put(vma_policy(next)); - if (remove_next !=3D 2) - BUG_ON(vma->vm_end < next->vm_end); - vm_area_free(next); - - /* - * In mprotect's case 6 (see comments on vma_merge), - * we must remove next_next too. - */ - if (remove_next =3D=3D 2) { - remove_next =3D 1; - next =3D next_next; - goto again; - } - } - if (insert && file) - uprobe_mmap(insert); - + vma_complete(&vma_prep, vmi, mm); vma_iter_free(vmi); validate_mm(mm); =20 --=20 2.35.1 From nobody Sun Sep 14 14:22:07 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 78AC5C05027 for ; Fri, 20 Jan 2023 18:35:00 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229634AbjATSe7 (ORCPT ); Fri, 20 Jan 2023 13:34:59 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:43306 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229461AbjATSez (ORCPT ); Fri, 20 Jan 2023 13:34:55 -0500 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id B91944CE6D for ; Fri, 20 Jan 2023 10:34:54 -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 30KGE9PR025147; Fri, 20 Jan 2023 16:29:00 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-2022-7-12; bh=7fH9jEYvIL72fRiIo9twc0fQLD/WFlcNcmjDvU9soOQ=; b=HJtYwrjoila6Vs0/mJL7w2KSgt/cjKpaH9GcgCj0Czvp2PQJhLTDBOa53Fzr6thEIrqT Ip3kacNda/S8DRtO2Hsa1RoIYEcNN2JeWn8GBgj6j2SHN5Uge3ShKgKRSYMIR7Kuf2sd ApjrIq6ncXRE7atJFjOBAlkOjI+P2Lkxk4TX1WULpbI+COGSIsyOtyLylbPGwKGJCRPn QmVSKIj0Vl7z1Ajs4+DgjChf+aSKZ/1Cq0sfhp92pOkuyTQcdMpstFL/TexaUIIvuPun Fm6QPwr2li9+g8fBhTpiizKCH9oiL4Wi3Iu3xhKHOuhJp7BJQbvyY7qwt8C8oPlDUGG5 Zg== Received: from phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta03.appoci.oracle.com [138.1.37.129]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3n3k0154fc-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 20 Jan 2023 16:29:00 +0000 Received: from pps.filterd (phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (8.17.1.5/8.17.1.5) with ESMTP id 30KGN3LD007681; Fri, 20 Jan 2023 16:28:59 GMT Received: from nam11-co1-obe.outbound.protection.outlook.com (mail-co1nam11lp2176.outbound.protection.outlook.com [104.47.56.176]) by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 3n6rgeq8e9-2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 20 Jan 2023 16:28:59 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=QW7Yaa2MmYtHqE0AcOafNNeYTfVm9ohh6JZ1W/ZSlki5JgcWQrp5w5h6GAUo8Ilcm2Q9c1e+b8k6ljPwQ7+Rj5lLSuLvl/QMRNxogzjqUPr1V7oAdI9lvyfIKHeFMLuJLlKzErVNPRyJXFTm4/gEfj5Rm82YsHK3jbTHa8l6qax7Cu9lUJ571SbJ4RIs+G9s+YdWqceF3YXV8g/yXBdUTyFch61ejFsEKMZCD3n40IDLR0inONBLodVjoZT832ehmYOf/88DzzSbinssIeBhNhrcbQ/Jr6rjsztiG+P/eqWdllYzP/KU2J03G4I1phEBSB9essQsSfT2jFbdZ3OQYw== 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=7fH9jEYvIL72fRiIo9twc0fQLD/WFlcNcmjDvU9soOQ=; b=SiUw/MsXnLE6uFE38hGTqtfALWYsKkx3RAphe6LHSYbCU00CxqoRIZXiPPMiq1xO33SZBUM0pYtGNZJw3PgmHuL5Oth978TgHbWPcWLR0OElw/dC7zvGh2NOqnM/9WZwsiuJLPKwMHy1m+t5SkQ857PCfmb6yKruuuji4BL/t23cp+9ts7tsBi6NssbGyBCJi/e+9oUkVn8h8bcIpNi+bwFMqcEcF7juBaETSis8KL2xf68mp+e5IfYFXDu2aU7dYJ/BA7gdCWgdxTDjdaUtqFSIvEcT2ZUm8e4mdYii6CVt1UbqhHmtm1PVroYJP6rNgEiPeauNq+zoeaQvYITayw== 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=7fH9jEYvIL72fRiIo9twc0fQLD/WFlcNcmjDvU9soOQ=; b=F28FLAzwCmphHMvHwGkPugrIcg62gMZBuHCpPbj2JBKgxa61CQf10LEG0PelrbhEVv3tvxBdfvgwYYclwrUq/JITabQj/6ww8rHY2QKDJmOPYZcAwU0o13wcvQwaqiMXtuhm0SM0I93r/QgLal+VSHGWlevpfpCA3is24cfA4wU= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by SN7PR10MB6381.namprd10.prod.outlook.com (2603:10b6:806:26f::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6043.5; Fri, 20 Jan 2023 16:28:57 +0000 Received: from SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::7306:828b:8091:9674]) by SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::7306:828b:8091:9674%5]) with mapi id 15.20.6043.005; Fri, 20 Jan 2023 16:28:57 +0000 From: "Liam R. Howlett" To: linux-mm@kvack.org, linux-kernel@vger.kernel.org, Andrew Morton , maple-tree@lists.infradead.org Cc: "Liam R. Howlett" , "Liam R . Howlett" Subject: [PATCH v4 41/49] mm/mmap: Use vma_prepare() and vma_complete() in vma_expand() Date: Fri, 20 Jan 2023 11:26:42 -0500 Message-Id: <20230120162650.984577-42-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.35.1 In-Reply-To: <20230120162650.984577-1-Liam.Howlett@oracle.com> References: <20230120162650.984577-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YT4P288CA0081.CANP288.PROD.OUTLOOK.COM (2603:10b6:b01:d0::14) To SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SN6PR10MB3022:EE_|SN7PR10MB6381:EE_ X-MS-Office365-Filtering-Correlation-Id: 2ad99454-6e57-4bf7-6c8d-08dafb036d6d X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: OFTPk/OmZxPa82eVtXeYaRST7hV+jBYgg0YPv+jC5GYVB8z9LxVl0cVXRjgiFhBUs0YH00JO83lhBxooyapxMfQYYfmNGPNbQYWsNp8CU9A/3H639b1tHjhiwFbwbYQQqr/O9sPjbkpxNufeLm0s/xd68DyH06T16ol4OQunclIdZwi/Aa9CrRS3zIecwV0yvAkbwsX2vFxceLViiVgVSH3Ka3+98TwR8IFW3fEDOn61jGvLHkD99sgSskTF9rKRuvbDOyeTD1nLyNkB9Ens2NNsuDElLP/L3SXPKZ/QXR3LceRW/LOSriRiInksooPHU3izqtn+80+UGr41cgcWC1upFv5gKnHQde3/UfpGAHXo/eef5y/WEqORd5MbqsChQg9HSRCkTCpfIPQikS342QU8oJh0osR7rYjgIdZ8Hia4Q42B7U8IZ1vvoXtZLnzxDFPJ1Oe/77FaCc8CYPKl+vtlBs4abN2N2qq5zCWq7HPSt5QgQmAWUa7aCGQKKOc8j8YFLXATgkV032u7WCBtNoa/Gq6nWEyLoRKDcNjJeNPs6biNcTLTmkCb5n2Nuu6QnK1xSBTreZB+GJWL2n50+k5L7Z1qrlX50QoNZPVjru5E1UQ2HzrZSCtWXknsARvqgijSXF17UNF6pLDPOOb9jw== 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)(39860400002)(136003)(376002)(396003)(346002)(366004)(451199015)(186003)(2906002)(8936002)(5660300002)(2616005)(41300700001)(86362001)(8676002)(83380400001)(66556008)(66476007)(66946007)(36756003)(4326008)(316002)(26005)(54906003)(6512007)(6506007)(1076003)(6486002)(38100700002)(6666004)(478600001)(107886003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?e90EkxDh/5U4soCs+P8eWyhvQzTPPucdNyixRKdd5hSam+e/LRTA2QChS/kj?= =?us-ascii?Q?4DvxJY7TcobHNWI38WsFOGVFPN4r+nW4iJtn76cSbfNDJzAH1uwKhcQeCAKy?= =?us-ascii?Q?KUWZcv1Ag61gx68CT/gaHpIpBhyAmOvoJobolY+9eAN80/D0NpzSQhBhGMLg?= =?us-ascii?Q?iieff+JRd5TfR3RtBddvivUUgkFuzFImPbSXR9MOrCi2ANEfyh+9mS0YucJK?= =?us-ascii?Q?Qudaxgof1m4sAml/V/Z0qY1xrzSIcFyWZwX7ug28q9J5ff/81Iw6vzVi0BQv?= =?us-ascii?Q?OoW7h/Fr8C+UF3mRMTuU0VSvauFgXSZ/PirAeqgQjqLObZbulPH7sAjsGYPS?= =?us-ascii?Q?B4AvJ5AemP7ulbZsOY/hwEEzJT7NUUi5hEWDEvoQYhFBZQn3i82Z41aejjAa?= =?us-ascii?Q?rJ/xLlrsvBpeZ/zRAmq+xjO4ZwbLfvxXXu3Za/LAflF15uFzpfgKOrevzS0O?= =?us-ascii?Q?BCxX+9S6ylgIohcy0I1Gf0VA0LKXS0fvAyS83TGUw8wtSKNDVVfYytX5saw1?= =?us-ascii?Q?RLS2WevFWFuGgXHMUxsDG3fGuDF4ZAW/NgIlVMUjI50lN4zTuFe5s30/frKa?= =?us-ascii?Q?2Edre4a70LBoxfA8MofD2pg2XIEIUfQYdlS84ZtIBLa9y5EG+37PNFEwnofd?= =?us-ascii?Q?6N7jy7hMehVyuaA/whglsHntapzfNhCplP+42B0KfsrMmFrT2Xgr+GYGHyjB?= =?us-ascii?Q?ZrmUlSCOEyQdZOnG3l/azbXrrVdFbPg2km/sHYr63+yAP0NtP0PuRWOVUaNw?= =?us-ascii?Q?jEDP7M4oUPAs2Fi2YvBiyvzfMSRcuOK1vw+OOMZFIuzrQrV+8i6KEB3t/Eg2?= =?us-ascii?Q?6PYn3zEK/sPgZMatVdh6pEyPLJLY8kyXPmkbYyCV5FTa3I65GuZdj9WxYjq7?= =?us-ascii?Q?dTVrZgcAofWhFsGOHmNl6XJWhlMsL33n7Kbn9ZrG+8ztP/kvCNbrG4+5eZoG?= =?us-ascii?Q?1ptvBCC8j5i914dJ+h/Wnfo720tdNsmKPWCd7sZZTjHw4ChU1DXbfHG3C8ZJ?= =?us-ascii?Q?xDdtk1vcJDTS87vryuSyoTkYY+lSxp9NTeiWikBlxuf3Mm95i1DO5bfi8X/z?= =?us-ascii?Q?HiKclQSQZ+Kzd4BXZym1OvW3YF5f8vxVbk7PgAhNjouER1hzFjH1s01vHyw+?= =?us-ascii?Q?CCCLdpY+FrP+cBXrsCr+xDEzniWJMyixzM3Rw0c2p8jurqf+qcV05WUpy0Ml?= =?us-ascii?Q?8GMfSUMe/jthQcqP07Na5yvLdFxO0AYj/AN5BJlJTVjOI2RSd8f+HVnAX0z6?= =?us-ascii?Q?dI3h4SuRlATx4piYrm+oi+gM9iEh7ahVjacv+5wVbdyf3HfJSbzP6VC83wdR?= =?us-ascii?Q?lIXaIYtWfsrd1vDxZN8TT9PreC+mxUaRATn9Hi0UIePtunleUUrilXBTtkNX?= =?us-ascii?Q?EpURPi18DmPQ+r8vJg1Id7pTqWlOLg5Puk5lqnjt4nkTIigcEK1vTxcG+DX5?= =?us-ascii?Q?nGowoleYNJUu2S961W9t9G4BpxBcxLd2xR9ugGTFAI8gVlH1Aix3j+p0N4gE?= =?us-ascii?Q?6/1vIpywTw0fOz+hQh7j8GPTVQERuweHrxvawOqkRXLoRLOAi3tjKHNsqyus?= =?us-ascii?Q?KYcMeLE0Y8J3PBfawvTkPMOIm5hUCMwCzJGRA0qAbzGINTnSi1g39xZvj4AQ?= =?us-ascii?Q?ag=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: hmNzmpcUR+UtH0OKKgzR87IekxunNgvLGGk8RpQGSqxKDNxFLF1HLUWR0bhRvXsmC8na/L0jF383oTsjrCZL6x/Q2F6I+4f154l3JToNXzAhwfX7rCedBeXyCswfdxIVmGeix9TjTY529gYtEgQ5qTFfNUd6ziInju65ZesuxJjna6Rge/jtoFDQbckEo573o/zHq8BMgWMBf3xEvy1pg44P+TizdAhCPb4koM+PluKoQB2em50e0LQn5jm9mIdN2Xx4i2C8AYhEd++JNMG0pOYfO611r8zaiN0OFyHYrcvxClVwYkkQukblCamOGxObTobWNlIDXcCNtS+IBJlcyJa3S8fXnugFJJQG0WlI96jvIVdYM1tap4op7G8MtFjDuo20QQ00T+2oVPJvG7w/VdP4LW0HGFC5GNiNZdmLhBdXqsXhKllgFf5Rs1yEwcdovlDMBDblbhyb5vTxMdIG0DVE4WloJRx5cmu7sI3TkcCgxNiMFyGzQCllVZkdlYUK1CXxYn5lAbE55lA89mHCq7zz2HKJGtBp+9n0MoMHHD+iYfrOOgPRgkDXBjOXbEFClqV24lE9dQZwKSccmVE0sWSGRn4Kb8r4vHE17eQm/NufMAK/GuXx+E0MYeJKPQ8B+USAWLv/mS9QPMXn66L1cAroaXwe4DR6yzce9MkiW7rh2+pQVxD7I1YzGqCsccjbzfnP830fyJYWjuSXrP7XQuPHGZ8XN80iQhMQrF/v9s/2NKjLCOJB1qJPvT1Byn0mKbVuuh4phayFlu1yKDcjOsIueI92Ud23m7VZ+1WUI92Sqk1gNqEveWPG6Ls/nRLZlyI/fScpSdRe5Fc/GEeK6VGoEAgUzBtb1GNTTG7ocNnqDjIhRgXyzF8qDQob01fVzZWjZZxQb/WG7Lmb8mfeww== X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 2ad99454-6e57-4bf7-6c8d-08dafb036d6d X-MS-Exchange-CrossTenant-AuthSource: SN6PR10MB3022.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Jan 2023 16:28:56.6801 (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: GTMLHZNxzAPNJ9tvwBYtLwV14dvVvMDrmoycnjM9SCS13D43d5xq98KO8aIiitTh/GACdmnikYZKNsiU2tPDiw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN7PR10MB6381 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.219,Aquarius:18.0.930,Hydra:6.0.562,FMLib:17.11.122.1 definitions=2023-01-20_09,2023-01-20_01,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 suspectscore=0 phishscore=0 mlxscore=0 malwarescore=0 spamscore=0 bulkscore=0 adultscore=0 mlxlogscore=997 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2212070000 definitions=main-2301200157 X-Proofpoint-GUID: hQ9cptZSOCRO8tYrQrGcrTEz-ZooiFPt X-Proofpoint-ORIG-GUID: hQ9cptZSOCRO8tYrQrGcrTEz-ZooiFPt Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" From: "Liam R. Howlett" Use the new locking functions for vma_expand(). This reduces code duplication. At the same time change VM_BUG_ON() to VM_WARN_ON() Signed-off-by: Liam R. Howlett --- mm/mmap.c | 188 +++++++++++++++++++++--------------------------------- 1 file changed, 72 insertions(+), 116 deletions(-) diff --git a/mm/mmap.c b/mm/mmap.c index 9afaf05eb96b..a0883c23f948 100644 --- a/mm/mmap.c +++ b/mm/mmap.c @@ -460,122 +460,6 @@ static int vma_link(struct mm_struct *mm, struct vm_a= rea_struct *vma) return 0; } =20 -/* - * vma_expand - Expand an existing VMA - * - * @mas: The maple state - * @vma: The vma to expand - * @start: The start of the vma - * @end: The exclusive end of the vma - * @pgoff: The page offset of vma - * @next: The current of next vma. - * - * Expand @vma to @start and @end. Can expand off the start and end. Will - * expand over @next if it's different from @vma and @end =3D=3D @next->vm= _end. - * Checking if the @vma can expand and merge with @next needs to be handle= d by - * the caller. - * - * Returns: 0 on success - */ -inline int vma_expand(struct vma_iterator *vmi, struct vm_area_struct *vma, - unsigned long start, unsigned long end, pgoff_t pgoff, - struct vm_area_struct *next) -{ - struct mm_struct *mm =3D vma->vm_mm; - struct address_space *mapping =3D NULL; - struct rb_root_cached *root =3D NULL; - struct anon_vma *anon_vma =3D vma->anon_vma; - struct file *file =3D vma->vm_file; - bool remove_next =3D false; - - if (next && (vma !=3D next) && (end =3D=3D next->vm_end)) { - remove_next =3D true; - if (next->anon_vma && !vma->anon_vma) { - int error; - - anon_vma =3D next->anon_vma; - vma->anon_vma =3D anon_vma; - error =3D anon_vma_clone(vma, next); - if (error) - return error; - } - } - - /* Not merging but overwriting any part of next is not handled. */ - VM_BUG_ON(next && !remove_next && next !=3D vma && end > next->vm_start); - /* Only handles expanding */ - VM_BUG_ON(vma->vm_start < start || vma->vm_end > end); - - if (vma_iter_prealloc(vmi)) - goto nomem; - - vma_adjust_trans_huge(vma, start, end, 0); - - if (file) { - mapping =3D file->f_mapping; - root =3D &mapping->i_mmap; - uprobe_munmap(vma, vma->vm_start, vma->vm_end); - i_mmap_lock_write(mapping); - } - - if (anon_vma) { - anon_vma_lock_write(anon_vma); - anon_vma_interval_tree_pre_update_vma(vma); - } - - if (file) { - flush_dcache_mmap_lock(mapping); - vma_interval_tree_remove(vma, root); - } - - /* VMA iterator points to previous, so set to start if necessary */ - if (vma_iter_addr(vmi) !=3D start) - vma_iter_set(vmi, start); - - vma->vm_start =3D start; - vma->vm_end =3D end; - vma->vm_pgoff =3D pgoff; - vma_iter_store(vmi, vma); - - if (file) { - vma_interval_tree_insert(vma, root); - flush_dcache_mmap_unlock(mapping); - } - - /* Expanding over the next vma */ - if (remove_next && file) { - __remove_shared_vm_struct(next, file, mapping); - } - - if (anon_vma) { - anon_vma_interval_tree_post_update_vma(vma); - anon_vma_unlock_write(anon_vma); - } - - if (file) { - i_mmap_unlock_write(mapping); - uprobe_mmap(vma); - } - - if (remove_next) { - if (file) { - uprobe_munmap(next, next->vm_start, next->vm_end); - fput(file); - } - if (next->anon_vma) - anon_vma_merge(vma, next); - mm->map_count--; - mpol_put(vma_policy(next)); - vm_area_free(next); - } - - validate_mm(mm); - return 0; - -nomem: - return -ENOMEM; -} - /* * vma_prepare() - Helper function for handling locking VMAs prior to alte= ring * @vp: The initialized vma_prepare struct @@ -697,6 +581,78 @@ static inline void vma_complete(struct vma_prepare *vp, uprobe_mmap(vp->insert); } =20 +/* + * vma_expand - Expand an existing VMA + * + * @vmi: The vma iterator + * @vma: The vma to expand + * @start: The start of the vma + * @end: The exclusive end of the vma + * @pgoff: The page offset of vma + * @next: The current of next vma. + * + * Expand @vma to @start and @end. Can expand off the start and end. Will + * expand over @next if it's different from @vma and @end =3D=3D @next->vm= _end. + * Checking if the @vma can expand and merge with @next needs to be handle= d by + * the caller. + * + * Returns: 0 on success + */ +inline int vma_expand(struct vma_iterator *vmi, struct vm_area_struct *vma, + unsigned long start, unsigned long end, pgoff_t pgoff, + struct vm_area_struct *next) +{ + struct vma_prepare vp; + + memset(&vp, 0, sizeof(vp)); + vp.vma =3D vma; + vp.anon_vma =3D vma->anon_vma; + if (next && (vma !=3D next) && (end =3D=3D next->vm_end)) { + vp.remove =3D next; + if (next->anon_vma && !vma->anon_vma) { + int error; + + vp.anon_vma =3D next->anon_vma; + vma->anon_vma =3D next->anon_vma; + error =3D anon_vma_clone(vma, next); + if (error) + return error; + } + } + + /* Not merging but overwriting any part of next is not handled. */ + VM_WARN_ON(next && !vp.remove && + next !=3D vma && end > next->vm_start); + /* Only handles expanding */ + VM_WARN_ON(vma->vm_start < start || vma->vm_end > end); + + if (vma_iter_prealloc(vmi)) + goto nomem; + + vma_adjust_trans_huge(vma, start, end, 0); + + vp.file =3D vma->vm_file; + if (vp.file) + vp.mapping =3D vp.file->f_mapping; + + /* VMA iterator points to previous, so set to start if necessary */ + if (vma_iter_addr(vmi) !=3D start) + vma_iter_set(vmi, start); + + vma_prepare(&vp); + vma->vm_start =3D start; + vma->vm_end =3D end; + vma->vm_pgoff =3D pgoff; + /* Note: mas must be pointing to the expanding VMA */ + vma_iter_store(vmi, vma); + + vma_complete(&vp, vmi, vma->vm_mm); + validate_mm(vma->vm_mm); + return 0; + +nomem: + return -ENOMEM; +} /* * We cannot adjust vm_start, vm_end, vm_pgoff fields of a vma that * is already present in an i_mmap tree without adjusting the tree. --=20 2.35.1 From nobody Sun Sep 14 14:22:07 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 1B5EAC25B4E for ; Fri, 20 Jan 2023 16:31:26 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230319AbjATQbY (ORCPT ); Fri, 20 Jan 2023 11:31:24 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:38668 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230325AbjATQbU (ORCPT ); Fri, 20 Jan 2023 11:31:20 -0500 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id D790671BD4 for ; Fri, 20 Jan 2023 08:30:41 -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 30KGBY75020107; Fri, 20 Jan 2023 16:29:02 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-2022-7-12; bh=4gAFhTxYv3cfusEPiCd18HJdTaepqn4d9nML2OnEXmQ=; b=rJ00e7qdzPQDdCzEnXlmJHqGJIywNBw6Ow0sULlDbtcT2ZaJ15yDYyQJntIe+VKe7VHZ QYZ+1uggtVW7y+ZpKEh0hU2PcIK5MChiiHIQGlMEzgPpOr/e79S8aWsAe5K07pCf/1oI VB9QA3uehTAorbprpdZM4gEvPnrReNYDt2PYjJzpZ/Nd2Yfk3c+5bleNrNqV9pTg/1/8 uzqhv9M9uRa6i8LJbtWlFGoh5L6UUNpqBi0KF8TR/FcPlCEVli4M70dMewNPkPfvWTsB dk6pHXJ3RhgQAPFmhqqKnIfgbOdOyzLYV42AyoEOcdzSvQ/nPZQNlqePXerthwtadXvI PQ== Received: from iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta01.appoci.oracle.com [130.35.100.223]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3n3m0tw26g-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 20 Jan 2023 16:29:02 +0000 Received: from pps.filterd (iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (8.17.1.5/8.17.1.5) with ESMTP id 30KFXQiI004636; Fri, 20 Jan 2023 16:29:01 GMT Received: from nam11-co1-obe.outbound.protection.outlook.com (mail-co1nam11lp2175.outbound.protection.outlook.com [104.47.56.175]) by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 3n6r2w1h7x-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 20 Jan 2023 16:29:01 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=dvqjUWldJKO7DK6iRJtijOAd5eyQtGRu5IlLPUK6m9vAlL5KDaZkHKmJZUABJsYkJ6esZwesVI7EGWgfVMWUVtKaqx8cyJtqbusPxKCmld/74nANTdxXJm64vki7ZsptaOvp/ZEbEsxFasKDtL20D+LfBrZ9jziF0BLPK6+apFPFbytx7FAn3iMVWO7l83ouwZ3MNA9j3aMEmAJRoj7IZK7JrYcPJmTO1dYDR2AiCrnF6veCTPZI2+Ekhbuh1U406WdJdRkTb4ozs82PzvgPJQ0NRTU07hwJO4z/bRlpSrW5SdB/FKNL+V/xGTV/B+RLiX5P18VHXpjwbFjRyF9X/A== 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=4gAFhTxYv3cfusEPiCd18HJdTaepqn4d9nML2OnEXmQ=; b=PTvC9W2JAKz2ua/GQ/7mnwHReyj04VK8E6vMbNE05Uwvgg1xnfNudNknSFUzqiRnR57TQcuGRx/FwxHmPfn4bbeJj5QvrtQ7+PRsaFYP2j9dGg0QXVstWVd6pAq6MiQ054g/eBhRdqQjLk7XKWV8Cg8IGPisxsnq3U0XWg72L0jcrtKtw2xbD1m85E8FVuKTmvdBxAq9z3F9iY+N2vc7e1aBtXjshlautxDPArhl2l8A1DuzanIkRkORTa4FIDbAPo1VaBm04/Bu3rpMvy4S+o36h7LJiGfwMUU5CBSpKII+Zt2J8xgSqUeASAZLnAwe9SWx5CPvDhW99UYE0vOSgg== 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=4gAFhTxYv3cfusEPiCd18HJdTaepqn4d9nML2OnEXmQ=; b=C/HmJzayr1VJ3A8U2dMlYY89mZeUAS6Ca99JB3raRRixGlc6xOvwzVtw6SAZuxLu0WVK/XbQqBCoCl7fs4AfG6okGh7CWSDTxTVS+C1gxvty6YYL3CRS5nOSTr5naUWFX0GWwOTo6B2X7/RUQAOKX0GrhVOO5SWgocVon8gcJl8= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by SN7PR10MB6381.namprd10.prod.outlook.com (2603:10b6:806:26f::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6043.5; Fri, 20 Jan 2023 16:28:59 +0000 Received: from SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::7306:828b:8091:9674]) by SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::7306:828b:8091:9674%5]) with mapi id 15.20.6043.005; Fri, 20 Jan 2023 16:28:59 +0000 From: "Liam R. Howlett" To: linux-mm@kvack.org, linux-kernel@vger.kernel.org, Andrew Morton , maple-tree@lists.infradead.org Cc: "Liam R. Howlett" , "Liam R . Howlett" Subject: [PATCH v4 42/49] mm/mmap: Introduce init_vma_prep() and init_multi_vma_prep() Date: Fri, 20 Jan 2023 11:26:43 -0500 Message-Id: <20230120162650.984577-43-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.35.1 In-Reply-To: <20230120162650.984577-1-Liam.Howlett@oracle.com> References: <20230120162650.984577-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YT1PR01CA0047.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:2e::16) To SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SN6PR10MB3022:EE_|SN7PR10MB6381:EE_ X-MS-Office365-Filtering-Correlation-Id: 315ad98b-703c-4c04-e253-08dafb036eac X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: KFv7f2Pn9w5oWQZbfQe6cepU5jI3uSj9ypL8KFbvD0MVKmexCr49YNr3KrIIBuMacJh3zdgkQPW94DzC7iKFfvrbrc9WxYjCbgZLCHPr/XTehyap9kU3ecqL7I9LVG5T9E82EL/ehnxq/nKqwNQJly68OGDWYmX2bgYyNblDGQGxqgKL+/SICQL4SqlAd7Xfq1kZIWOPIheikyVNMHIjtDw9wrJYzLo8NDHavM//JMrTStFeAme//FUPcNICVHyc4vguEty65k2Cjpu41FXkhdTs7uvBAPvYwD8fVUDLy1Va5gvfAc4rpzYqY/aMQ1DOqIahmJv+iSElKQrEcRRZvZ5R1W64h9N/U4q8Tr2gY3mUZXrxEjnC/pciOYHG108oOv/14Sm17I+acNtu66ehYMzp2ISUnO99KJahiuAMA7puVXZUQsYwTaD6q5vIf/BsotfRY+esBQay9j1hsyuZcUtK1IPAyQjOEP+O2fcEXTNCIf0wKAtXRLPjXVXiyguMCGqW6F4/dz+HK4L4NlZiwre3Q4ozEguEnZSGs5+v4UYhXWMe21AXI3ptE0/SIldpqJRSWsuHrSA99zlnmov6h4Xjv6dCtbfEFBsuwWtJ5G68glH68UpcIM/+UIetdt2fLzN2/jND5gcMcCbhQmyu7A== 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)(39860400002)(136003)(376002)(396003)(346002)(366004)(451199015)(186003)(2906002)(8936002)(5660300002)(2616005)(41300700001)(86362001)(8676002)(83380400001)(66556008)(66476007)(66946007)(36756003)(4326008)(316002)(26005)(54906003)(6512007)(6506007)(1076003)(6486002)(38100700002)(6666004)(478600001)(107886003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?UYg5PWSHWJAFuJB3g9qipH3UsKmL0gq3CJv9HKne6//YmQaXFmGgxGMHtAq6?= =?us-ascii?Q?h5HxVxx7jVUwDzlzWCZM/vEzzujI2i9M80+K5DcJqsnA3+OeIbBxUFmYTTAH?= =?us-ascii?Q?DqNE3B16cOcPFiz5zHKYPbjbDFkbAqoxvTbdmD9xsJHZhAQuR/VZw3Kp+aNX?= =?us-ascii?Q?HN/6ZDW7Aj3P9ya445cr15IfqgN+gPKNLT4q0fgTWDyxHtguiwehwDmnlP2a?= =?us-ascii?Q?cDxJJM6eiQMU0xNIICYI7NaGeVQKGMP1NuYuuPFAPtI/F2c+W43ZPh9mwxz6?= =?us-ascii?Q?SWi56yilpx78y26v44c7kBrdu7e+E/7T/91h3oRMafIKV7q/jLAS2PrWvP3s?= =?us-ascii?Q?y5gNcIJ5qLLvZcl1KHvLX0gjoyFpHZM27PIpJdAsSSro4Jv55Js0tYu134Np?= =?us-ascii?Q?225HiEnQeNn29PFom9Aot9Iq11LrSmZWzGjZ2Xhv9AbfKJbwfhL6Y7Gh+KzM?= =?us-ascii?Q?i+T1xUtbWcoi+lX++EoVQf6T2aXi6m1UhopdG/lR7YMlQXWGRcIkFLmQ/LwA?= =?us-ascii?Q?SeDwZtkPH7xik3GVQMKAb7ogprNk5Vh//NEKrzIvJaGdBGpfjE2G0ofSj3yw?= =?us-ascii?Q?DpE1j0RDjKDAB+cbl7fqRCvHt7TB9iJ5yOGWr9ryAVsWlgWF27IxlMHMCPFn?= =?us-ascii?Q?QA0V4/k7FSQt7Ttldx6mq/OhG3uOnsBUzFQKdmpaiM1PWoRxlN7sywywWqL1?= =?us-ascii?Q?lg6ErO9H0WjlCZOy22uGuOfD3qT8fjkDr3na4Jt+kjUkSyoACePWVj6WHZ8h?= =?us-ascii?Q?2LCYtbNmhWNv3KiPJSYCxSI/NgeBmyguJzIJRgfmTiBL8LmsWtNM07KAgf6j?= =?us-ascii?Q?YwgiaeWYVqGczg0YMAA+0GGBpnA5v4+9g+JiHwjXOc4+f+lrLVWrnEfGLMDk?= =?us-ascii?Q?J76QuMhOsjfw11YxbdFBpH/gk/hnlgK8mdixaulIkd4jVM6VPm16HrAg09Em?= =?us-ascii?Q?iADGCd36AqqFWwIq2bNwR23V99J0q6hZDisDTGCvDMVCna6FqEU5lwQ7polI?= =?us-ascii?Q?ib5jeFX9+KiFkNP37UJEtvaXfA6WbLR8UWiGO/S3SXU8ignKpzVDZSQoI1TS?= =?us-ascii?Q?mcCHXb+mOsr31heBHn58yqteK43UM/LTf3j8E5qsmpFDpnR05AeTTyxTwQMq?= =?us-ascii?Q?kLJwf751MXNtVNx7q0aXupoMWD6BSOsGL987MulZw0Ft6ALdBYSrEjkqQEO3?= =?us-ascii?Q?zTgUOe8O+eFz4eO+MUeLseNGJjsppCmKc6yyYxXg/maQ7/M6oN3zz5jXqHd7?= =?us-ascii?Q?KSpk1brnb0TspBDlBNXezWawsoHbkUdxjVWGKM4e9wP601ivgStxAFnaLk3d?= =?us-ascii?Q?Z83ZWUEfjsTRcILHb4dWYg0pukFX4F8h2A5D/oEIRLkiNeSWaJIBdvFLkakQ?= =?us-ascii?Q?xCJwEvRve+iI31bf3ncVgXIu3sCl9ZBBscBhDuld5ZwLehVHOwF5b9CGT8PP?= =?us-ascii?Q?g4Hqj1xgkh+iTVR7aphMtrBKCT9jADzxX0+8XmVJIzs+W1c5LI0mpd5vHo9x?= =?us-ascii?Q?lzFoW2d0cPvji4oZqWEDfh1S5NNmczhqizRK9dfSVHIDSPqlqGB0XNcQQaWn?= =?us-ascii?Q?lOb1uhgnzF/Q2HYycqg0m0n5i48Qn/ZcHKFChx0BwXIXXHUpd88XUAYEcxkY?= =?us-ascii?Q?cw=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: tpXubT5r5+ZKDl2n7qNVzueiLc0G3Q7zqx8HeFuGBIBfoL2vOiQ8hu13bxjiSiiQFI9mlLTMiaEYpF3g+oczgEj1UKcFYq1DWt+zlF+UQgAA5QnyHZpJypzftXlmJx1I/c+j2vMgk2aZBwXldMfdxP8eeUqh01W32Zl495ALF/wqVX1e1zx0hMgh5yLgyLPk7KKo9qlL/8lCsHG12PFe6kCDm86ARAsdTsgIjTa06clRcSCaY1OEPMILMzwyYmcBWD2o426EL3dfwsPz8tKY3Gv+zuXPdcgs0QnPqITctE1+vBpAuOFlStOFJ/OEKUXmYOS53d8v7x7LRxuUDhOSyQPTNHZihIcqVOgpGxasyklf7NDU/V4aPyJMgeAZAoAQ/cHs7xLn8cpJEhLc+D81XlAanfZXGYiuLsl8dGdfWt9qfk3RwykBErmOAennhqj/gV7nACE9f/zsF+EW84Q2vZiB0llVJWCcK2pSz0LvUrsDyN9XfTFUO5YrtJKZPdl33dyEsRUp8o2eFDg7F+tnu0JeOWzJ12JqPGLBqRAgAFEdEMsT2yN6n1otIcx5+gBAH1s/tnHPfW/JVitWJkTPE4gybhHkbWUIui3fXs4m4RkOzvj+i/cGF6B/RUzfMTZGzAyvAUAeKEuiVp1sNFDhn7WtLt9nFPuE02cToNLHkAZotsQ+EwEjQ95ilGwbKbLrM8s3ALt8fgfjD7C4AsHIriW2kFmC592NzidIGS8u3AcvdZxlDZ3ssCkAatUC+4w1uL1CIwHPEjMoFnUNkord4UR50Xk8AcS7Y18+1ezP8QpY3apZDWG2OxTxpNdGXbT6menuLlhA8yLWrXaM5Ba6Y4wo3aaWTTFglRKxEyjenCLzfDUQ0RJUvcKhK6Lr8DgFZBjk08/D1bh4nGihvDM7AA== X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 315ad98b-703c-4c04-e253-08dafb036eac X-MS-Exchange-CrossTenant-AuthSource: SN6PR10MB3022.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Jan 2023 16:28:58.9925 (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: YOviOk3N7hR1BFYYMlI0nPzl0uNsn7MBS1GMsI8frHJsLdqYix18YnILHz7n+3DUwF/KwZFgTImL3aHiBBSE9A== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN7PR10MB6381 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.219,Aquarius:18.0.930,Hydra:6.0.562,FMLib:17.11.122.1 definitions=2023-01-20_09,2023-01-20_01,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 adultscore=0 mlxlogscore=999 malwarescore=0 mlxscore=0 phishscore=0 suspectscore=0 spamscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2212070000 definitions=main-2301200157 X-Proofpoint-GUID: X9zMEY_xuXkXyi4MTc8_F2EQSDUDjJBr X-Proofpoint-ORIG-GUID: X9zMEY_xuXkXyi4MTc8_F2EQSDUDjJBr Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" From: "Liam R. Howlett" Add init_vma_prep() and init_multi_vma_prep() to set up the struct vma_prepare. This is to abstract the locking when adjusting the VMAs. Also change __vma_adjust() variable remove_next int in favour of a pointer to the VMA to remove. Rename next_next to remove2 since this better reflects its use. Signed-off-by: Liam R. Howlett --- mm/mmap.c | 108 ++++++++++++++++++++++++++++++------------------------ 1 file changed, 61 insertions(+), 47 deletions(-) diff --git a/mm/mmap.c b/mm/mmap.c index a0883c23f948..7eb93c311d8d 100644 --- a/mm/mmap.c +++ b/mm/mmap.c @@ -460,6 +460,45 @@ static int vma_link(struct mm_struct *mm, struct vm_ar= ea_struct *vma) return 0; } =20 +/* + * init_multi_vma_prep() - Initializer for struct vma_prepare + * @vp: The vma_prepare struct + * @vma: The vma that will be altered once locked + * @next: The next vma if it is to be adjusted + * @remove: The first vma to be removed + * @remove2: The second vma to be removed + */ +static inline void init_multi_vma_prep(struct vma_prepare *vp, + struct vm_area_struct *vma, struct vm_area_struct *next, + struct vm_area_struct *remove, struct vm_area_struct *remove2) +{ + memset(vp, 0, sizeof(struct vma_prepare)); + vp->vma =3D vma; + vp->anon_vma =3D vma->anon_vma; + vp->remove =3D remove; + vp->remove2 =3D remove2; + vp->adj_next =3D next; + if (!vp->anon_vma && next) + vp->anon_vma =3D next->anon_vma; + + vp->file =3D vma->vm_file; + if (vp->file) + vp->mapping =3D vma->vm_file->f_mapping; + +} + +/* + * init_vma_prep() - Initializer wrapper for vma_prepare struct + * @vp: The vma_prepare struct + * @vma: The vma that will be altered once locked + */ +static inline void init_vma_prep(struct vma_prepare *vp, + struct vm_area_struct *vma) +{ + init_multi_vma_prep(vp, vma, NULL, NULL, NULL); +} + + /* * vma_prepare() - Helper function for handling locking VMAs prior to alte= ring * @vp: The initialized vma_prepare struct @@ -569,7 +608,7 @@ static inline void vma_complete(struct vma_prepare *vp, =20 /* * In mprotect's case 6 (see comments on vma_merge), - * we must remove next_next too. + * we must remove the one after next as well. */ if (vp->remove2) { vp->remove =3D vp->remove2; @@ -602,17 +641,14 @@ inline int vma_expand(struct vma_iterator *vmi, struc= t vm_area_struct *vma, unsigned long start, unsigned long end, pgoff_t pgoff, struct vm_area_struct *next) { + bool remove_next =3D false; struct vma_prepare vp; =20 - memset(&vp, 0, sizeof(vp)); - vp.vma =3D vma; - vp.anon_vma =3D vma->anon_vma; if (next && (vma !=3D next) && (end =3D=3D next->vm_end)) { - vp.remove =3D next; + remove_next =3D true; if (next->anon_vma && !vma->anon_vma) { int error; =20 - vp.anon_vma =3D next->anon_vma; vma->anon_vma =3D next->anon_vma; error =3D anon_vma_clone(vma, next); if (error) @@ -620,6 +656,7 @@ inline int vma_expand(struct vma_iterator *vmi, struct = vm_area_struct *vma, } } =20 + init_multi_vma_prep(&vp, vma, NULL, remove_next ? next : NULL, NULL); /* Not merging but overwriting any part of next is not handled. */ VM_WARN_ON(next && !vp.remove && next !=3D vma && end > next->vm_start); @@ -630,11 +667,6 @@ inline int vma_expand(struct vma_iterator *vmi, struct= vm_area_struct *vma, goto nomem; =20 vma_adjust_trans_huge(vma, start, end, 0); - - vp.file =3D vma->vm_file; - if (vp.file) - vp.mapping =3D vp.file->f_mapping; - /* VMA iterator points to previous, so set to start if necessary */ if (vma_iter_addr(vmi) !=3D start) vma_iter_set(vmi, start); @@ -665,14 +697,13 @@ int __vma_adjust(struct vma_iterator *vmi, struct vm_= area_struct *vma, struct vm_area_struct *insert, struct vm_area_struct *expand) { struct mm_struct *mm =3D vma->vm_mm; - struct vm_area_struct *next_next =3D NULL; /* uninit var warning */ + struct vm_area_struct *remove2 =3D NULL; + struct vm_area_struct *remove =3D NULL; struct vm_area_struct *next =3D find_vma(mm, vma->vm_end); struct vm_area_struct *orig_vma =3D vma; - struct anon_vma *anon_vma =3D NULL; struct file *file =3D vma->vm_file; bool vma_changed =3D false; long adjust_next =3D 0; - int remove_next =3D 0; struct vm_area_struct *exporter =3D NULL, *importer =3D NULL; struct vma_prepare vma_prep; =20 @@ -691,25 +722,24 @@ int __vma_adjust(struct vma_iterator *vmi, struct vm_= area_struct *vma, */ VM_WARN_ON(end !=3D next->vm_end); /* - * remove_next =3D=3D 3 means we're - * removing "vma" and that to do so we + * we're removing "vma" and that to do so we * swapped "vma" and "next". */ - remove_next =3D 3; VM_WARN_ON(file !=3D next->vm_file); swap(vma, next); + remove =3D next; } else { VM_WARN_ON(expand !=3D vma); /* - * case 1, 6, 7, remove_next =3D=3D 2 is case 6, - * remove_next =3D=3D 1 is case 1 or 7. + * case 1, 6, 7, remove next. + * case 6 also removes the one beyond next */ - remove_next =3D 1 + (end > next->vm_end); - if (remove_next =3D=3D 2) - next_next =3D find_vma(mm, next->vm_end); + remove =3D next; + if (end > next->vm_end) + remove2 =3D find_vma(mm, next->vm_end); =20 - VM_WARN_ON(remove_next =3D=3D 2 && - end !=3D next_next->vm_end); + VM_WARN_ON(remove2 !=3D NULL && + end !=3D remove2->vm_end); } =20 exporter =3D next; @@ -719,8 +749,8 @@ int __vma_adjust(struct vma_iterator *vmi, struct vm_ar= ea_struct *vma, * If next doesn't have anon_vma, import from vma after * next, if the vma overlaps with it. */ - if (remove_next =3D=3D 2 && !next->anon_vma) - exporter =3D next_next; + if (remove2 !=3D NULL && !next->anon_vma) + exporter =3D remove2; =20 } else if (end > next->vm_start) { /* @@ -761,30 +791,14 @@ int __vma_adjust(struct vma_iterator *vmi, struct vm_= area_struct *vma, if (vma_iter_prealloc(vmi)) return -ENOMEM; =20 - anon_vma =3D vma->anon_vma; - if (!anon_vma && adjust_next) - anon_vma =3D next->anon_vma; - - if (anon_vma) - VM_WARN_ON(adjust_next && next->anon_vma && - anon_vma !=3D next->anon_vma); - vma_adjust_trans_huge(orig_vma, start, end, adjust_next); =20 - memset(&vma_prep, 0, sizeof(vma_prep)); - vma_prep.vma =3D vma; - vma_prep.anon_vma =3D anon_vma; - vma_prep.file =3D file; - if (adjust_next) - vma_prep.adj_next =3D next; - if (file) - vma_prep.mapping =3D file->f_mapping; - vma_prep.insert =3D insert; - if (remove_next) { - vma_prep.remove =3D next; - vma_prep.remove2 =3D next_next; - } + init_multi_vma_prep(&vma_prep, vma, adjust_next ? next : NULL, remove, + remove2); + VM_WARN_ON(vma_prep.anon_vma && adjust_next && next->anon_vma && + vma_prep.anon_vma !=3D next->anon_vma); =20 + vma_prep.insert =3D insert; vma_prepare(&vma_prep); =20 if (start !=3D vma->vm_start) { --=20 2.35.1 From nobody Sun Sep 14 14:22:07 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 9CAF0C05027 for ; Fri, 20 Jan 2023 16:41:39 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230376AbjATQlh (ORCPT ); Fri, 20 Jan 2023 11:41:37 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:51596 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229989AbjATQld (ORCPT ); Fri, 20 Jan 2023 11:41:33 -0500 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 4451217CC5 for ; Fri, 20 Jan 2023 08:41:22 -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 30KGBgk4011455; Fri, 20 Jan 2023 16:29:07 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-2022-7-12; bh=CavP105CED09rOPI666NqLVlmX/aO+nkvBl07Qjw2x0=; b=r+HEluIxoYlEzD1nTU4D7SGCuNPIAr9H/DV2RJRngsxLReKecna9NH9rp5u00L/N5B4C L55ZGL+ynd5BrNR9/zruJXE+TFb9LuSb/v4K6fWWa28YfeMAI1RO03hjPsJ/QzggL5PZ LV/uRUX6kaF6gX1TY8EsuKCGoxr1lBykvaLyKi96U6Ko6jMrkNZS+h6WCxE9jBPXLMU8 E+wpvIcMc4gFTuit+q9bbHZObyP8HeB5+pZyjjWA2iz9J3P9gkppTKQiAVSzWStExuw8 UYe8wgO4LFHOUE+cCIwvoYFVP4iXGDSD3bNa5TQNXOjAEL/PdZK/YfV5gPpBORTBBylC pg== Received: from iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta01.appoci.oracle.com [130.35.100.223]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3n7895aqt1-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 20 Jan 2023 16:29:07 +0000 Received: from pps.filterd (iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (8.17.1.5/8.17.1.5) with ESMTP id 30KFaTff004734; Fri, 20 Jan 2023 16:29:06 GMT Received: from nam04-dm6-obe.outbound.protection.outlook.com (mail-dm6nam04lp2044.outbound.protection.outlook.com [104.47.73.44]) by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 3n6r2w1hc8-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 20 Jan 2023 16:29:06 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Z0G46sPZrrczCLWGCDnMLodUYjuGNoIYF1Un+yYm+DPi0CO+lS8lOY6ww8mwuzJEqgQyDC6UDaU/fZhrBl5R0eNwB3a697i6AnSPeMT86L9PRz3810bsoRRmdXrYEEJqELNZLpaueOdxKdUl8NetQOJtjR7EIAzuiSRAN5HvXK6YyRU4JrnoHInqQM/+plPeV7XvmPWzWp4Cxwaf+cgZkthzJ98tI0933TzxcJlJFkgCpt9xVqf8TzjSE1Dw8mdaVMplb6TdILmXRzN7jNfLcEoBjek3MtM66cp3P5w2mPVE+RmNr5G2DwJ40MKCP1APgk79YFEa+s+zMG4IxGP6Tg== 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=CavP105CED09rOPI666NqLVlmX/aO+nkvBl07Qjw2x0=; b=BsSQvT8I84Z1SiAQmF4ZtK1Ju1qjQ9AubFrj1aftQl77TSOtvFN8lLiWFkCuneSerKilKjA3lfd2yiqi+qr9EbBQI5ogF4ufxorZYOfiZ9lZqnPz4qUZuLVRclfJ5zxMX4zCnjQJHRhSPTv3HRz5VxjpC6T9qOQK4aIqaXruglWXk6nzA94544wGJmTxO5aAeKrYAsLDiDCmnakoqR0eGNgajKZhfpezOGs5yQnZwQ/ODXRdB5SpddvpMbjH1VTGmyc+lnI0qRqFfyRjZunDfaLpI+Qt40j9uMNdVA9ZCewCgGvwkaHFcKnqhMwtLkbEbeJXTW8Gb9x9AFAZ0xtahQ== 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=CavP105CED09rOPI666NqLVlmX/aO+nkvBl07Qjw2x0=; b=c/57vkTrLvCVPuQqAFF/myxrYHOtc//gd7fBXsSvwRm5My321VRgKP3L7uoGzHpiUDNzJsKayR2w4uFuiPfGYMcLz+jjnYsHMCbAf+xkDZuNOsU4RG0wBlhQELu2GBYWjkgP0WGhzvjrCWaft2mx6DJNrCtkBL5jYzBQF38JRAg= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by SJ0PR10MB6400.namprd10.prod.outlook.com (2603:10b6:a03:44c::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6002.11; Fri, 20 Jan 2023 16:29:04 +0000 Received: from SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::7306:828b:8091:9674]) by SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::7306:828b:8091:9674%5]) with mapi id 15.20.6043.005; Fri, 20 Jan 2023 16:29:03 +0000 From: "Liam R. Howlett" To: linux-mm@kvack.org, linux-kernel@vger.kernel.org, Andrew Morton , maple-tree@lists.infradead.org Cc: "Liam R. Howlett" , "Liam R . Howlett" Subject: [PATCH v4 43/49] mm: Don't use __vma_adjust() in __split_vma() Date: Fri, 20 Jan 2023 11:26:44 -0500 Message-Id: <20230120162650.984577-44-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.35.1 In-Reply-To: <20230120162650.984577-1-Liam.Howlett@oracle.com> References: <20230120162650.984577-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YT3PR01CA0136.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:83::21) To SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SN6PR10MB3022:EE_|SJ0PR10MB6400:EE_ X-MS-Office365-Filtering-Correlation-Id: 69f08ce1-7b22-4c9b-2b2c-08dafb037042 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: S/30+IoJanNT3oj2Rmc0WOVGeu5ekAKW2PjzmT25fRkBtlQJJDl/euFNlHF11LfcSjtlxN/r4NhRSQZD9PPf+W2QlVdpogpftv/iUPOT1kDRl2Pck/iEt26itTOUuohBSrDHooiXJTKHDM9Y9dNv/BR0YFmh07H+bYSLlQRK2hq5ikY/y9M6rn5tIkh57Lr66/X0b7P/fOa04QG5l//wRiaoimqVSbn7Rt6Sl1kAmfhLn2Xoz8XsffT60iYzEuS0Tk2nwGoLPaJTvXm4YFO4u/4c8cZXkSrV8nzZ57FVIVzaaLOd3X0WHgxJ0J572p2o9zlZE+vc/VOXpU4EQowr+u1LFVdtMSQ66UErGDN7wKY/ILzo7ROa5yNwfzzI247RXLCf9YdRu/YNlW7T+tPpV6nRk2rMOuQBO4dSkk6gKGWQ6xQCTim8lMqtdwxSUGpL2AVq+LQi15i3KK4WG4Z2FBAxQsr2KKn0Z4rJzn9kuRoLSliaSJ4KgTWfD/0mr5dNiM6UoNifsRJjT3e/hN9zC7+kOrY0kpV6xkH+pv2YKcic/StnuAcZo4h4lumE6iRo2LFDyg6jYzBfxJXP2EjFqPUCF03zo8HBq4gEQyadWejCOEUG9Dn6howA1O9d85o1cgkxfmGB4YXADfQ+ai4TuQ== 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)(366004)(376002)(39860400002)(136003)(396003)(451199015)(316002)(54906003)(83380400001)(2616005)(1076003)(2906002)(66476007)(26005)(6512007)(186003)(6666004)(107886003)(4326008)(8676002)(66556008)(86362001)(6506007)(36756003)(66946007)(8936002)(6486002)(38100700002)(478600001)(5660300002)(41300700001);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?1B/wlkoRfOauOaCdgbiFTaj1gSJ3Kfq/CFU5DP328S+N79Y1ITJuCykw/rFA?= =?us-ascii?Q?Ui2QarfoumdRAGCIIm/i9TypIDhoWGy6r+VpLKofE2ZnQ49X4UctHMS4choO?= =?us-ascii?Q?fNSQCBv40UINMObBZv40d/lcmTiplXP5rBwWfRKs8uirHGh+ahqm4NQ4V8uy?= =?us-ascii?Q?EuH+R4YaVFqSy1vb+OIzqAbhcZvWJ3r8CDHSjac1WucE9ewDsZZB4BdEEa9w?= =?us-ascii?Q?6p4HHHbda7jlR0ooNL5CJlCJhXRd4OqcZ00GAEGhYsTq8qExH8zs6HU0AAeO?= =?us-ascii?Q?cEbZHW5K1rHA2fbPU+kfW5WOkIb+LfyJKHfHJjGSOlzBDrgbLw+STCeszeZv?= =?us-ascii?Q?e9hqddzZdTU2T6QaL5tNYrV6b005LpQ3HLImtZfpJy//CvgBvoi0HApjsdrQ?= =?us-ascii?Q?Vcfc8FkIop3duu8CLJ6itHhJXcmmFnf57Tz3D4N99b/yCla0i2g300NYbPoa?= =?us-ascii?Q?ArTOmkiurN0o/vCZKgOzF1pGeIPP/d3Qzk6Ed2GgFB2L1EJyH0kqrC6j1B8Q?= =?us-ascii?Q?DQozoe7ohPnTYu4HqjobiYT8GTFrtJw+S5eLEd3COJBzBssYcgsO9Y+qBoGY?= =?us-ascii?Q?YfFMNgKfRFrsoBKzc6uIax+SKdzPKzHMr8LRKirpKkH281oZocb2gplPKy6f?= =?us-ascii?Q?fRFlTxoJDbZXFiip8O0Ldc/fOuHat720iUKYbHzyeF+aWlozV5upHRIyteDM?= =?us-ascii?Q?EzeHqhIPPFYLqH4ZKPtkH3F7b5HJlzVOcgsDVr8Bck9SQYpPbkd0FZPkbe4h?= =?us-ascii?Q?mRbhSc6B/qyHo+59YyfiOx47yexmVSXMnvbQEImifUJn7KFsXA+opCB+Byl3?= =?us-ascii?Q?SQi2cOo60hpU0re0tIZzj/lhko5ShajdRe36xtFySDrIpfVLhpxr574Efc1z?= =?us-ascii?Q?e0FmTAO+uPbLT+wOiwlxw9/MCD2J7znM6B2vturQn5plk1Wd6ayIu8nHfHn/?= =?us-ascii?Q?/l/FnaDxxcSdRgSJTcrVxS7bKHE9jCSWSNUlKb8+iJPwPiKqR2GXBVJrT3j5?= =?us-ascii?Q?/pbVJSh6oxPsCSRxpEtZSRzQah86kne+fCATNN302JQQ8F3tb5w8ar1O94Xn?= =?us-ascii?Q?YralV6B5Xf9p2HZX2wIe1Z486/rZ5+IgNui9XYZ1QqDUu+0FJxLYXwCjaQXx?= =?us-ascii?Q?6Xc1Sl9neH02WUbEa8QwcNliKZxF8vi3OMtElBJD2Hd5jV0kmC8YHyAgVp5b?= =?us-ascii?Q?xPl3EPPEds4uNXS8ONY7j7i+qhDvY1K1RlLl69sPessjvamteLoOMRKeKGhM?= =?us-ascii?Q?AT3zaeqJNr+P+hBHlxMyiVZOW4FgywcGEuU6L9rBGeO4OWzVkUheNU4jMgDi?= =?us-ascii?Q?IKKPgW0N8MVQdPOBBiy1CUO65aXUCnd14V5gsfW1hW3KRSlzd7E2TsAoY3+d?= =?us-ascii?Q?7/ie9ahjwwH8Yp+Lai36qUTatEcpxrJyxl9JQQ7Uan23BMI0kDYnQnn+NxCE?= =?us-ascii?Q?BrH3xDz+3BIB0Jcev4p94jDLkWCCx6JeNrHMO2zsnhxxwkMksAj3eUU2nmwD?= =?us-ascii?Q?RRECsn+8kCHcnAtwLYzH1wTd6OfI1CKg9nvuBQNwqHUNR989B9AGmMizW7Ks?= =?us-ascii?Q?G10Wm3ckp5uGxPs3NZrlUpLfHhPDyNfD6Tyw2HjT83V9O50AicBF7qj8MvL4?= =?us-ascii?Q?jg=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: BHfvVCkjDBBxWcXsTGmUPL3nJkXfTRRHXzZsE/cRKINVGLLNW9/cuDeFc+plpE03xwzdSW+wc+TUVRXHN7W70XsBTB/hNVVGKCnYBp+U7LaD0JOhkid+fCoSxg2Qe4z6uBok9sDmLOvV2xgXr2nf3UkYzjLxTZ/v7dILVtgdb1Av9V/xNeGnnJ6mOsIdTD3e1s/oila19quEpzRaX2Bu+3/wyeW6TVJTRQBF92D/3a6snERl+hen2TqtFiTCkvxF/UoxYGQAdYH3y3I1uLk553iwBwe8IMrujCyC0p3wSBTfWK7LyFV31W9nj59NEmtSYLD/Ini8UauomwWzr79YH2vsDdu5hj5Sa2v45A60zQxzcKd8pLUVIw7Ybq1IV5mRPnmyylYZPSE/K3MCJvfr7RKfmCFZxsQGZk52hoisDdBljs6xYBEe436kuX+ZOdPLDYdYEBW3Kgkk7bGouLlbz7Y/SbXVe4axQWyktWMURHVj2nXmoQezwxUli7spvBIHrySbpawlZK85MdIhHGlahV7zHgOepXn0d4Me03u87CosSixJff2Xp7m/6HtIp/5C3RcZQWh9xe4HfdVPshCkk5wJQEubD+XsNqHuwyxKuWYDwbS+dEy2Qkr7hIT3dDVGW1R3GgU95czGWGsn2kACK5cArRYP/R+tUSz7kIfKvfNs0vAJUdgHim8NzMA69qHrwtIi7jbEq7CG+c9msIWvox3F3kKcu+E2D6V+3ceNar5VI67Ghb2EwevqQljQK5fveGuez/O4b10aA6LGhKFVrrzzZMQJIT3b6lFyREn1DC+5yN5zFkeNEBm2jwEPnsU90ZGyg5YJUXp2BZ1DDXPYPfMnB86CRT1dEq6RVO/SPzABCN3Sav9AeEMVITBXYNkHtrKihohfNnAs0K/M+w62Hg== X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 69f08ce1-7b22-4c9b-2b2c-08dafb037042 X-MS-Exchange-CrossTenant-AuthSource: SN6PR10MB3022.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Jan 2023 16:29:03.6328 (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: BLW828rD/eoKbLrLVI6P+MHhKZkHyJ2QIrFpiiBkTmOnFRl5MCKu6f3R5sJp/Bg4l2HfkDZbkedZlbkyZZVsfQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR10MB6400 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.219,Aquarius:18.0.930,Hydra:6.0.562,FMLib:17.11.122.1 definitions=2023-01-20_09,2023-01-20_01,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 adultscore=0 mlxlogscore=999 malwarescore=0 mlxscore=0 phishscore=0 suspectscore=0 spamscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2212070000 definitions=main-2301200157 X-Proofpoint-ORIG-GUID: cewSGlLDCS9zTe6bMyiyFp4j8v_ksK0b X-Proofpoint-GUID: cewSGlLDCS9zTe6bMyiyFp4j8v_ksK0b Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" From: "Liam R. Howlett" Use the abstracted locking and maple tree operations. Since __split_vma() is the only user of the __vma_adjust() function to use the insert argument, drop that argument. Remove the NULL passed through from fs/exec's shift_arg_pages() and mremap() at the same time. Signed-off-by: Liam R. Howlett --- fs/exec.c | 4 +- include/linux/mm.h | 7 ++- mm/mmap.c | 118 +++++++++++++++++++++------------------------ mm/mremap.c | 2 +- 4 files changed, 61 insertions(+), 70 deletions(-) diff --git a/fs/exec.c b/fs/exec.c index 76ee62e1d3f1..d52fca2dd30b 100644 --- a/fs/exec.c +++ b/fs/exec.c @@ -699,7 +699,7 @@ static int shift_arg_pages(struct vm_area_struct *vma, = unsigned long shift) /* * cover the whole range: [new_start, old_end) */ - if (vma_adjust(&vmi, vma, new_start, old_end, vma->vm_pgoff, NULL)) + if (vma_adjust(&vmi, vma, new_start, old_end, vma->vm_pgoff)) return -ENOMEM; =20 /* @@ -733,7 +733,7 @@ static int shift_arg_pages(struct vm_area_struct *vma, = unsigned long shift) =20 vma_prev(&vmi); /* Shrink the vma to just the new range */ - return vma_adjust(&vmi, vma, new_start, new_end, vma->vm_pgoff, NULL); + return vma_adjust(&vmi, vma, new_start, new_end, vma->vm_pgoff); } =20 /* diff --git a/include/linux/mm.h b/include/linux/mm.h index 75b6d06d69d5..c372c09e11b5 100644 --- a/include/linux/mm.h +++ b/include/linux/mm.h @@ -2832,13 +2832,12 @@ void anon_vma_interval_tree_verify(struct anon_vma_= chain *node); /* mmap.c */ extern int __vm_enough_memory(struct mm_struct *mm, long pages, int cap_sy= s_admin); extern int __vma_adjust(struct vma_iterator *vmi, struct vm_area_struct *v= ma, unsigned long start, - unsigned long end, pgoff_t pgoff, struct vm_area_struct *insert, - struct vm_area_struct *expand); + unsigned long end, pgoff_t pgoff, struct vm_area_struct *expand); static inline int vma_adjust(struct vma_iterator *vmi, struct vm_area_struct *vma, unsigned long start, unsigned long end, - pgoff_t pgoff, struct vm_area_struct *insert) + pgoff_t pgoff) { - return __vma_adjust(vmi, vma, start, end, pgoff, insert, NULL); + return __vma_adjust(vmi, vma, start, end, pgoff, NULL); } extern struct vm_area_struct *vma_merge(struct vma_iterator *vmi, struct mm_struct *, struct vm_area_struct *prev, unsigned long addr, diff --git a/mm/mmap.c b/mm/mmap.c index 7eb93c311d8d..c1eb353c16f8 100644 --- a/mm/mmap.c +++ b/mm/mmap.c @@ -694,7 +694,7 @@ inline int vma_expand(struct vma_iterator *vmi, struct = vm_area_struct *vma, */ int __vma_adjust(struct vma_iterator *vmi, struct vm_area_struct *vma, unsigned long start, unsigned long end, pgoff_t pgoff, - struct vm_area_struct *insert, struct vm_area_struct *expand) + struct vm_area_struct *expand) { struct mm_struct *mm =3D vma->vm_mm; struct vm_area_struct *remove2 =3D NULL; @@ -707,7 +707,7 @@ int __vma_adjust(struct vma_iterator *vmi, struct vm_ar= ea_struct *vma, struct vm_area_struct *exporter =3D NULL, *importer =3D NULL; struct vma_prepare vma_prep; =20 - if (next && !insert) { + if (next) { if (end >=3D next->vm_end) { /* * vma expands, overlapping all the next, and @@ -798,39 +798,25 @@ int __vma_adjust(struct vma_iterator *vmi, struct vm_= area_struct *vma, VM_WARN_ON(vma_prep.anon_vma && adjust_next && next->anon_vma && vma_prep.anon_vma !=3D next->anon_vma); =20 - vma_prep.insert =3D insert; vma_prepare(&vma_prep); =20 - if (start !=3D vma->vm_start) { - if (vma->vm_start < start) { - if (!insert || (insert->vm_end !=3D start)) { - vma_iter_clear(vmi, vma->vm_start, start); - vma_iter_set(vmi, start); - VM_WARN_ON(insert && insert->vm_start > vma->vm_start); - } - } else { - vma_changed =3D true; - } - vma->vm_start =3D start; - } - if (end !=3D vma->vm_end) { - if (vma->vm_end > end) { - if (!insert || (insert->vm_start !=3D end)) { - vma_iter_clear(vmi, end, vma->vm_end); - vma_iter_set(vmi, vma->vm_end); - VM_WARN_ON(insert && - insert->vm_end < vma->vm_end); - } - } else { - vma_changed =3D true; - } - vma->vm_end =3D end; - } + if (vma->vm_start < start) + vma_iter_clear(vmi, vma->vm_start, start); + else if (start !=3D vma->vm_start) + vma_changed =3D true; + + if (vma->vm_end > end) + vma_iter_clear(vmi, end, vma->vm_end); + else if (end !=3D vma->vm_end) + vma_changed =3D true; + + vma->vm_start =3D start; + vma->vm_end =3D end; + vma->vm_pgoff =3D pgoff; =20 if (vma_changed) vma_iter_store(vmi, vma); =20 - vma->vm_pgoff =3D pgoff; if (adjust_next) { next->vm_start +=3D adjust_next; next->vm_pgoff +=3D adjust_next >> PAGE_SHIFT; @@ -849,9 +835,9 @@ int __vma_adjust(struct vma_iterator *vmi, struct vm_ar= ea_struct *vma, * per-vma resources, so we don't attempt to merge those. */ static inline int is_mergeable_vma(struct vm_area_struct *vma, - struct file *file, unsigned long vm_flags, - struct vm_userfaultfd_ctx vm_userfaultfd_ctx, - struct anon_vma_name *anon_name) + struct file *file, unsigned long vm_flags, + struct vm_userfaultfd_ctx vm_userfaultfd_ctx, + struct anon_vma_name *anon_name) { /* * VM_SOFTDIRTY should not prevent from VMA merging, if we @@ -1033,20 +1019,19 @@ struct vm_area_struct *vma_merge(struct vma_iterato= r *vmi, struct mm_struct *mm, is_mergeable_anon_vma(prev->anon_vma, next->anon_vma, NULL)) { /* cases 1, 6 */ err =3D __vma_adjust(vmi, prev, prev->vm_start, - next->vm_end, prev->vm_pgoff, NULL, - prev); + next->vm_end, prev->vm_pgoff, prev); res =3D prev; } else if (merge_prev) { /* cases 2, 5, 7 */ err =3D __vma_adjust(vmi, prev, prev->vm_start, - end, prev->vm_pgoff, NULL, prev); + end, prev->vm_pgoff, prev); res =3D prev; } else if (merge_next) { if (prev && addr < prev->vm_end) /* case 4 */ err =3D __vma_adjust(vmi, prev, prev->vm_start, - addr, prev->vm_pgoff, NULL, next); + addr, prev->vm_pgoff, next); else /* cases 3, 8 */ err =3D __vma_adjust(vmi, mid, addr, next->vm_end, - next->vm_pgoff - pglen, NULL, next); + next->vm_pgoff - pglen, next); res =3D next; } =20 @@ -2190,11 +2175,15 @@ static void unmap_region(struct mm_struct *mm, stru= ct maple_tree *mt, int __split_vma(struct vma_iterator *vmi, struct vm_area_struct *vma, unsigned long addr, int new_below) { + struct vma_prepare vp; struct vm_area_struct *new; int err; =20 validate_mm_mt(vma->vm_mm); =20 + WARN_ON(vma->vm_start >=3D addr); + WARN_ON(vma->vm_end <=3D addr); + if (vma->vm_ops && vma->vm_ops->may_split) { err =3D vma->vm_ops->may_split(vma, addr); if (err) @@ -2205,16 +2194,20 @@ int __split_vma(struct vma_iterator *vmi, struct vm= _area_struct *vma, if (!new) return -ENOMEM; =20 - if (new_below) + err =3D -ENOMEM; + if (vma_iter_prealloc(vmi)) + goto out_free_vma; + + if (new_below) { new->vm_end =3D addr; - else { + } else { new->vm_start =3D addr; new->vm_pgoff +=3D ((addr - vma->vm_start) >> PAGE_SHIFT); } =20 err =3D vma_dup_policy(vma, new); if (err) - goto out_free_vma; + goto out_free_vmi; =20 err =3D anon_vma_clone(new, vma); if (err) @@ -2226,33 +2219,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); =20 - if (new_below) - err =3D vma_adjust(vmi, vma, addr, vma->vm_end, - vma->vm_pgoff + ((addr - new->vm_start) >> PAGE_SHIFT), - new); - else - err =3D vma_adjust(vmi, vma, vma->vm_start, addr, vma->vm_pgoff, - new); + vma_adjust_trans_huge(vma, vma->vm_start, addr, 0); + init_vma_prep(&vp, vma); + vp.insert =3D new; + vma_prepare(&vp); =20 - /* Success. */ - if (!err) { - if (new_below) - vma_next(vmi); - return 0; + if (new_below) { + vma->vm_start =3D addr; + vma->vm_pgoff +=3D (addr - new->vm_start) >> PAGE_SHIFT; + } else { + vma->vm_end =3D addr; } =20 - /* Avoid vm accounting in close() operation */ - new->vm_start =3D new->vm_end; - new->vm_pgoff =3D 0; - /* Clean everything up if vma_adjust failed. */ - if (new->vm_ops && new->vm_ops->close) - new->vm_ops->close(new); - if (new->vm_file) - fput(new->vm_file); - unlink_anon_vmas(new); - out_free_mpol: + /* vma_complete stores the new vma */ + vma_complete(&vp, vmi, vma->vm_mm); + + /* Success. */ + if (new_below) + vma_next(vmi); + 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; diff --git a/mm/mremap.c b/mm/mremap.c index 1bc81afd90de..30eea37f9fc4 100644 --- a/mm/mremap.c +++ b/mm/mremap.c @@ -1053,7 +1053,7 @@ SYSCALL_DEFINE5(mremap, unsigned long, addr, unsigned= long, old_len, vma->vm_file, extension_pgoff, vma_policy(vma), vma->vm_userfaultfd_ctx, anon_vma_name(vma)); } else if (vma_adjust(&vmi, vma, vma->vm_start, - addr + new_len, vma->vm_pgoff, NULL)) { + addr + new_len, vma->vm_pgoff)) { vma =3D NULL; } if (!vma) { --=20 2.35.1 From nobody Sun Sep 14 14:22:07 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 D8A23C25B50 for ; Fri, 20 Jan 2023 19:45:09 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229445AbjATTpI (ORCPT ); Fri, 20 Jan 2023 14:45:08 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:39944 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229807AbjATTpD (ORCPT ); Fri, 20 Jan 2023 14:45:03 -0500 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 4F3BFAA7EB for ; Fri, 20 Jan 2023 11:45:02 -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 30KGBaV5029981; Fri, 20 Jan 2023 16:29:09 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-2022-7-12; bh=qhY7vp45X2rYBbuUWykYt08J08ENdLihX8OXTFkfGxY=; b=gxvHCPwdMi6/EvviV+XvuTOPmFh6HF/Tt5fhO0NuXlrKYikTqLRIJv4qOSec9z7wUPjB sEcjowFetcGoO4C5PoM74z1ChFTYavxLl8oBdcBJQX9jykUHv3TrY0vauMvlm7KCJxq0 WNss5im4FHZU+oc+cECt+ofAhW9BPZuyM8trCCW9XlpXGvXfZrTSMRAwR3dqeRzUSzn3 nILkX2/ILEON49Dt4XATTzwOe0rn+avGSZ7XWkDTroiMuoX+QiUeXOdJPf6TzeXkEWt5 h4d6UUNyZAUrTl8z90UR7hok0zN0c8/sKotHsMH417ZiAbqabrld8VpRZxuJy6iSbFtz sg== Received: from phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta01.appoci.oracle.com [138.1.114.2]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3n3k6cd3g7-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 20 Jan 2023 16:29:08 +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 30KFNHTJ027854; Fri, 20 Jan 2023 16:29:08 GMT Received: from nam04-dm6-obe.outbound.protection.outlook.com (mail-dm6nam04lp2042.outbound.protection.outlook.com [104.47.73.42]) by phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 3n6qud93ab-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 20 Jan 2023 16:29:07 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=SsZvrBDTT7STooqJCQTDiihMaaSUB8g12tLl3O5fOlh59Z1Wmwk7FSSvqyMa9zCcLmlu1Bn3yGRTqEeT/eyNYkHTX7a3xceGrPpdpHxdtMWxLJAx1U+QxGedOj2uRBD4uvNQM3uG5JwgUbE3UMX1FpCDK6sRLBrHQQUhsw1H35bSr2+XX2jJjxM16IuwbeM191t2X21TSsjvTB15R8Zhp6zUUOOvQQ3ploodPtbgiSi5MtPEoXLmEecUDsnfVX6tfXFVmIXbkWtWaOG4v0cPJfTxIpuz9EduwIIyfB/E52rjUqNLyIYMN0qvNRP1ibj1kEu9xIKNgtprUZOp+G0KjA== 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=qhY7vp45X2rYBbuUWykYt08J08ENdLihX8OXTFkfGxY=; b=j18jVgvsk/fX6SKIOMitXRp1RiLK3B08yyTyozNBR81PLR1uY2NCZbjY8nSVnBzt8/xePWpDu10QRobU8hN84WiRsrn7LVqIzl3TJqbFWW8fclacVruDxLuQOkF138nmC8Im2GkKSa50PDv7VlyLgE7gH4MQ8rhg4yKsPIUIQRxN17i4j9bGmgFAxNlYIk/0EnvmVRv6eiD7DYB5w0G+zsXQnHaNcboQsE5Hmg2XpwV5VB60/Aeivz01K1XPdwABFDoChZvnB7cxiGMYMqqrgMRnUNSnIABw09pM3DuO5rSqpIzm+fSkiMHjUKKeYk3koP+tAEE9qmNq6ARQA47byw== 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=qhY7vp45X2rYBbuUWykYt08J08ENdLihX8OXTFkfGxY=; b=JI4IZSWJ5jHp+DR35Z/rUW4W8wk/i/aGRoNfHWHYrF2hJH4O2NMIFq0vDaONiLXUZIssQe+HztSxOxwsftXm14ULkOtyMBS/rAtafsJeWladflC3PckOkUNw0o97Cvzu5xKEb8oNWgLbza4knOG3jRB86WkT9AsLZu6vqWhwQ6M= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by SJ0PR10MB6400.namprd10.prod.outlook.com (2603:10b6:a03:44c::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6002.11; Fri, 20 Jan 2023 16:29:06 +0000 Received: from SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::7306:828b:8091:9674]) by SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::7306:828b:8091:9674%5]) with mapi id 15.20.6043.005; Fri, 20 Jan 2023 16:29:06 +0000 From: "Liam R. Howlett" To: linux-mm@kvack.org, linux-kernel@vger.kernel.org, Andrew Morton , maple-tree@lists.infradead.org Cc: "Liam R. Howlett" Subject: [PATCH v4 44/49] mm/mremap: Convert vma_adjust() to vma_expand() Date: Fri, 20 Jan 2023 11:26:45 -0500 Message-Id: <20230120162650.984577-45-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.35.1 In-Reply-To: <20230120162650.984577-1-Liam.Howlett@oracle.com> References: <20230120162650.984577-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YT1PR01CA0125.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:2c::34) To SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SN6PR10MB3022:EE_|SJ0PR10MB6400:EE_ X-MS-Office365-Filtering-Correlation-Id: 9770648f-bd46-40a4-1288-08dafb0372ff X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: dTRAJYTZ+Nk63zJLrmmkV7Ow3T/qCnKErqGgJo/Re7/rta08QsvabM1b1+p+tpmicA6ftQbCmJ12g/QgwmVqLhZNfyEvOm0F8k4fJ/CyhmDlD5vCdrAgVdBWhfoAPd7v57iq9Opjb/Lev+WVCxh/0pdBiDvmBJU6oqtsSTQJJntVldKpRXC0yLJKQ/K1XNeUh/tOWisXbU7bdI8FlUhs08v0+dCFfT8rdpVo4Qt69QDlFArXgGUpcgM7fz/UtjNw1Gcd7XrOAuRJAQqAqfCAysrTe02MBEv2e8RMDYcyv86pcKHfawaZNPvjYu8IxG+C5VEbgwtYU6qHSBM7e9e6FYuVAkA/pxGiKnURacLTYKXQMmSQWI/IhOcpT2CcsnvHgP4CihBhf8sos1Ho2pcOyk1MtEzTAtjrVikD2P/g/P1qQZrbLgGMVfXEDE66i1gdKjwxVsfBMC25E5mBVTR+wqUE9KjUPTvzXpsLYScKrrJZ7Ki8oUok46Lhp1cqXaE+EWoqD7ydExFDh0IaOBd5rS65G4llrpLPs+2uskNj0J/K7Jc/bVtpOsKSY/vJnrM61IbtVsl5SVhH3uoDoz3FtxBC7irebPykr3sL6L4ctosMQyqUeFaQOSivrbonHxkFOLKb/36ZGO1chi2oibCvqg== 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)(366004)(376002)(39860400002)(136003)(396003)(451199015)(316002)(83380400001)(2616005)(1076003)(2906002)(66476007)(26005)(6512007)(186003)(6666004)(107886003)(4326008)(8676002)(66556008)(86362001)(6506007)(36756003)(66946007)(8936002)(6486002)(38100700002)(478600001)(5660300002)(41300700001);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?DeLrTU5AMyCgJfbetRFQlmCeEaOA8/FNftUuh/2fip4LTPqkf0qOEfgWAcSU?= =?us-ascii?Q?bd6vFUyFQGRyYbHJzdPo4tsvwpCUZnI34SqkxL5epLLAP+15fUa62YI39DIe?= =?us-ascii?Q?HT11+R3Ip3LqZe3sJU+7HD4GjaiBbzvW8+nc2a+DaG54QzkjnUYyI7sU9uLV?= =?us-ascii?Q?AMg//8eHZR223r8BhqNB35nqsJC0X4aQySwZXWJS/Uh6k+FQh3uHF38F6oCt?= =?us-ascii?Q?lx5B0MZoQldfgBTqZnntE7ilpMsYD5J8Vi3d8En4PYuOMEytGdgDh0DJpneF?= =?us-ascii?Q?X17dSCFxlC3O7nyvZ2CxhFWCRyB1+IMGWNBHCrEe+6DM5Gy/OizYfuZDhcK8?= =?us-ascii?Q?i6jRpa0PZna4+l1Wfk3thuiVtZR0FO7Y/b+rgz6DNZkXVonLbbq7+pF+1EB9?= =?us-ascii?Q?hEgmETafKA/VNeaVArMpZTFDCBxtBJOAtwLQNFqej/PQyOd9q03d+xvAUytO?= =?us-ascii?Q?GiRC1r2Is0O9S909soGn1sD2PlqR95GqCmOlUnGSuzdROOKMubXTb9lrzZrm?= =?us-ascii?Q?aIbaaWbk3ZbAwRC/EXH1yHA0/Q57VZSNTwMQyTLnAP8smQyIBBAMVQQBYPrF?= =?us-ascii?Q?a9JksEunDunW6/4dcNYZY94DDr4tCwi3ENr8pRNS9G1Rq+9nOETSLZzN5cTl?= =?us-ascii?Q?UVQ50UadVvqU4DEOiSwq4M1SI1MX4WclrLOVDwrMfepQJpXhStVRy4i+9uoI?= =?us-ascii?Q?F8UEHSAqJd5xneh2Q7ZccUkjphpfLRcTLy4h3id7fiiFcYswzuS9SbOhEtMV?= =?us-ascii?Q?0LgiV7ZHKQ3Zkkt29QhrKCfmE1LVjZESXS+HQMyLKGHCJ1kfBa1HJDyDEmIZ?= =?us-ascii?Q?PhtzbWszDo3phttPzi2dJztstfmB/ae8tSMotN1khoPl36hFC69ETbp1o4Vb?= =?us-ascii?Q?dIFoSf3Ak4GNUg1QKMMtvkWHehH5/xs0eSdAagfxbXV3GdoifY4Y4yNQCZQQ?= =?us-ascii?Q?PjRn8FrG5g8hKqs4WIexuFp00NDDmwJiLaF1ZCzPFuXVzWlwzf08bPMBeEY6?= =?us-ascii?Q?FU7MMszurlR3NkZjXuYIcKKyMhzWt/qbFb1X/fMR/ar4yzlwUBFjDisutufZ?= =?us-ascii?Q?6qMg5QivaFoQR3maY7BmI6cHJGBGLs/XyRhfQyQgjspmpjU8rKdOtgEMg6BL?= =?us-ascii?Q?agco9chcYYBg4zpNp7bq8JeaUzD9xYEM/s712mvgZu3oNeJLM48yZnSR9dzF?= =?us-ascii?Q?xy4HpWLmp9YR940+R4d4m0oTQs4V9hw+3HdcAdEWwOIx9vC+RUBBTeX7knRb?= =?us-ascii?Q?PLPIvbH5X84d03/Mi41r/UXhQgK7GewiWiTB4CerW5ZRUaC/DeStd7+FLpWM?= =?us-ascii?Q?BhT1i1L//FoIcwvz6ECEMp8Xm/u+x9afbtQe9DJbX3N61eMGGGFPYguXyruN?= =?us-ascii?Q?uJkz0zs+SFPveapwlC2IOCggH8u4kmurs+Swt2j4hZbEwL9P16adGaIH/PbE?= =?us-ascii?Q?huXO7Z95B0gbGeubZMApV8rxXhUnCXWPRVgUGvbEStLAlECIJTxpZqAcmgLu?= =?us-ascii?Q?t3gKz3ENoZa1WFlvvfcMKanQ1JupTClDD+JtiF9WosncA6TSKLAaziWX5XmP?= =?us-ascii?Q?P2o6JUP9Tzp9JDy6Ebo1XvN2pxeI1IrXkxEGNVrAbcdnj4VxnfjDT5rlGG2t?= =?us-ascii?Q?nA=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: CMJjR7hxraPhaRJezY3tpcee7IWJIpbe0J28tBlC78aL5FoKCUb51yFtVDMwM1fiVg2RXKLnf1XMzO9ALdaK3agacGcew8G/c7i7fq96TdkVrdn1jtz4+ewgR1GbrmrO+zvLy5Olj9tigKj7sPJ2DbE5O92qKEYKHk3M5WzHPdlfUxW4neEXkJUV5Tpozy7jR0todI09cxuYb5nuwQMxLQHHFFAO5BFlXf04ivFuHUlduECYzo2loUShnKMFU6EyXKnH/fovh+5/dJmBblsRpeieQISHazfM5Rji9uKL/zNi5wjyfPO/vw+zgK2lmXr0HAZpI6tLmDagxWZdIrt02AYiyssn7afx7onXOQLAUbzl3N0leXddXvVWGGzzteD3B423RvDG2NkKcJicN0D864ssaqluttrSo+sqA2K9dgOAl+fZNM9JDIUtCDmE/fPSywMU3ZifSxfiDQvBDD3hb2FM/eNzF9qb3mWjY2C/6Hw112tWSNCLOoq5l0mFTMIfdL9SAacNz4QHvf/Z02PKMGAtifHFkEobc1GT8w+0d1+NlIFx4r4yIoYng3lsTmqPmVgEeIdoyLl316gNTFa+0bewcBgqclWifmXQvGEHe1Mk+t/njMHVRbH5e03jMFipNX1+8RvwW2jvFabLYi3O0yLFEoRuo2NpEgEGGIm358sRa02V1YH3QvOKxutP9N1UalOo5hRQSndvpOB4Je/F3BNi6n04MW3km6LY8EQ6uqBZrnCRao6DeIjPy8y9ew8vx9G7ckUCk6b8oJ1eUGTqXEnSd5XXnGLhFoqEeP/G9pxuldS3XR1hfYj4FJ0ioOmDYagHzV8IDJO81714v1QWT4jD6yc29KiyRDizGtWaYwzaUA9KQtDISIdkx6/N5Gix/Mqq6jCS4NpNjiqsOlNpTg== X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 9770648f-bd46-40a4-1288-08dafb0372ff X-MS-Exchange-CrossTenant-AuthSource: SN6PR10MB3022.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Jan 2023 16:29:06.0701 (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: 44eVWiRDmSCa8bz/+WHWSjQ5C/EnYHIU8R1RFQJ71YEZpI8hOGzl86J26AHLPRErjQ0yaOZpjCUXFCdonNNNYA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR10MB6400 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.219,Aquarius:18.0.930,Hydra:6.0.562,FMLib:17.11.122.1 definitions=2023-01-20_09,2023-01-20_01,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 phishscore=0 bulkscore=0 suspectscore=0 spamscore=0 malwarescore=0 mlxscore=0 mlxlogscore=986 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2212070000 definitions=main-2301200157 X-Proofpoint-GUID: a_ufg1atntQOxTMBf2uWRkBdaHM68IK6 X-Proofpoint-ORIG-GUID: a_ufg1atntQOxTMBf2uWRkBdaHM68IK6 Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" Stop using vma_adjust() in preparation for removing the function. Export vma_expand() to use instead. Signed-off-by: Liam R. Howlett --- include/linux/mm.h | 3 +++ mm/mmap.c | 6 +++--- mm/mremap.c | 4 ++-- 3 files changed, 8 insertions(+), 5 deletions(-) diff --git a/include/linux/mm.h b/include/linux/mm.h index c372c09e11b5..287e340ced01 100644 --- a/include/linux/mm.h +++ b/include/linux/mm.h @@ -2839,6 +2839,9 @@ static inline int vma_adjust(struct vma_iterator *vmi, { 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 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 c1eb353c16f8..4bb8d219b53f 100644 --- a/mm/mmap.c +++ b/mm/mmap.c @@ -637,9 +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 =3D false; struct vma_prepare vp; diff --git a/mm/mremap.c b/mm/mremap.c index 30eea37f9fc4..1b3ee02bead7 100644 --- a/mm/mremap.c +++ b/mm/mremap.c @@ -1052,8 +1052,8 @@ SYSCALL_DEFINE5(mremap, unsigned long, addr, unsigned= long, old_len, extension_end, vma->vm_flags, vma->anon_vma, vma->vm_file, extension_pgoff, vma_policy(vma), vma->vm_userfaultfd_ctx, anon_vma_name(vma)); - } else if (vma_adjust(&vmi, vma, vma->vm_start, - addr + new_len, vma->vm_pgoff)) { + } else if (vma_expand(&vmi, vma, vma->vm_start, + addr + new_len, vma->vm_pgoff, NULL)) { vma =3D NULL; } if (!vma) { --=20 2.35.1 From nobody Sun Sep 14 14:22:07 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 28715C05027 for ; Fri, 20 Jan 2023 18:22:09 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229710AbjATSWI (ORCPT ); Fri, 20 Jan 2023 13:22:08 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:37212 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229472AbjATSWG (ORCPT ); Fri, 20 Jan 2023 13:22:06 -0500 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id BE37B3524B for ; Fri, 20 Jan 2023 10:22:03 -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 30KGBb0s003343; Fri, 20 Jan 2023 16:29:11 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-2022-7-12; bh=DgWGq0X/scR3Bp07oZlHCAr7L89jhXEut/RbqohpkU4=; b=znlp0omuS3obtb40LTAYUauurUB3+Zw+q8jxfONOlX7G+7g7f06MXSiEJFlDf4AArp0F fKLNLg7fu0J0RyOGuoZW59X90Sn0PDSUGtUnAPhp7MD3SG6eD19niecUROFebS7Khk+G 0uWLpqECa9Hr7GYpAeAbR/0QvT3sguUy++l4Tjcj9iBl1QnY/z+IaBdBKFRwarS5OBiE dhHJQL1b0by/mBrGxyk9jtQkSv4hPixz1uq9BQshyyfeEKxtZMbLApzrik7DLSovw5NL L4AKpRMxgrfqzAomA7AbMne2BJyz+9Vijc+s30N/x4k2JWxqoyZmOrb2B5O02JsuqOky pw== Received: from iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta03.appoci.oracle.com [130.35.103.27]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3n3medn7j9-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 20 Jan 2023 16:29:11 +0000 Received: from pps.filterd (iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (8.17.1.5/8.17.1.5) with ESMTP id 30KGBRDL013478; Fri, 20 Jan 2023 16:29:10 GMT Received: from nam12-dm6-obe.outbound.protection.outlook.com (mail-dm6nam12lp2168.outbound.protection.outlook.com [104.47.59.168]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 3n6qmfb0ja-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 20 Jan 2023 16:29:10 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=fyAyZsky7jkbyY60ZtXde2/eBcg6GtkKXX1X5VROUGlZM+wYXJsgXPCY+j5gbLkdmkJnibfLjjtCr/sw0KSpv4kkYTSxZ07iBP3o5+76xUL+FGRjWUkDmnG56eh89fFtpgkzoYU43M1UPXc41xAVnGVgc4nlK+DCsVYdUC4EmYcLdhTIuxOgQ6capVoMIxEtNpLMGRWI1de3TOr5oGUSgjdLDY5bPwby3VoqIenS1k1lp4V//PO2e8lisLi8ytscRP/YabU+mCy4hiXM4RS2iS039rZH5c5MXXruhGbcKJiRB45Igwc2FzwGaVqD+KSJEP7Slo6tPLoBvjsck8tUVA== 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=DgWGq0X/scR3Bp07oZlHCAr7L89jhXEut/RbqohpkU4=; b=jx5dKVN/T1/0/80d5nCa5Lr6V7LgesjjAxxWEw9jxuDb8hmvQ9jhRHPqTybzxBAq4NnXjZi27StD7NZYsDtO8ZETVU9LiszRYlU9uo7tDN+ctdz3s5oqIXHWlpypHeOxibYDPjbZLn6zD0a3sKDEMsoIS1iJPskUOCvNnU7Q5FCS/FrPNAUf3ij+bLriYVSnGGWBgrbxAM5CODqjMXVrkDVJHoGvozPo4Ponsn+sJXJUAsoIJRTbUrYr76VFry8n7EJiwF+eC4bUuCA3Z6/7r1DCBg0pQYV0ZpWPUVbeq6hW3hN79lgDcIANy8LLqoW8KjLdQNXd5Y5CsNFqxTCHcA== 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=DgWGq0X/scR3Bp07oZlHCAr7L89jhXEut/RbqohpkU4=; b=xYrFXEM/LFd+JkW8EWcQuQTXaJ2cMShEwip+D6ACRvJsCexvbXS43BKB09bXE/wQTTRz/qSe7hz33EIOyfL3se4yDfzKgFvEUlIBBb37rDFp3keePE1IeAZORxvAfUS72N5Qdsx5vUSoPsAxkPzZuZzt3Ie78NA933J9u/I7Uy0= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by SJ0PR10MB6400.namprd10.prod.outlook.com (2603:10b6:a03:44c::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6002.11; Fri, 20 Jan 2023 16:29:08 +0000 Received: from SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::7306:828b:8091:9674]) by SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::7306:828b:8091:9674%5]) with mapi id 15.20.6043.005; Fri, 20 Jan 2023 16:29:08 +0000 From: "Liam R. Howlett" To: linux-mm@kvack.org, linux-kernel@vger.kernel.org, Andrew Morton , maple-tree@lists.infradead.org Cc: "Liam R. Howlett" , "Liam R . Howlett" Subject: [PATCH v4 45/49] mm/mmap: Don't use __vma_adjust() in shift_arg_pages() Date: Fri, 20 Jan 2023 11:26:46 -0500 Message-Id: <20230120162650.984577-46-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.35.1 In-Reply-To: <20230120162650.984577-1-Liam.Howlett@oracle.com> References: <20230120162650.984577-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YT3PR01CA0067.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:84::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_|SJ0PR10MB6400:EE_ X-MS-Office365-Filtering-Correlation-Id: e94ddc92-55d9-47a3-feff-08dafb037434 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: wQHxR2pWzR/1tsle9p/F5GY1tkSFd1PZle4Jng1LNb/bqLJNaJWVT7qlFRqSGv0Wk5srly8UaQgwOYaFkF86DxXMd0lhd32fPMf0VdxaIEsT+wlDx8tW/KW1qpknE2XJUcezret94y6iJpPMGepdbnX4+7XyADepjw4YQ47tBCf1nBJHl88ZJlTd6iT5CQTa5XzQlj82ZD80Dia1TTkqFsHeD1/2asflqsmzfcyQtCls/IoPV2uh2r6keRJXoRr7ilFaqgBg8S845HxKtFffOwPvu4os3HCiAIJ8iSzX+qsVJTRkGQnYwLQWL7Rub1aO6VBuR4nS7rEEklpU9PkEZgwYQ7wxpzEp6kUtv6mY0ZRVnySC0lpIl2lHoHXaItT5bG6Zbj1w6QN/jL4ZR3ovVZSA6aFx72ugzf4CO/V/baD2MMKHvACe7nUpmt919lAwAEwCNkACg8vKWPUmIcXZvpjrpQkH4H4xp99tsCnr1SRSuUpmhSJgHi6fuBs5Jve4zG/aC+OS0r/dMQTsr4tEWQgkDTItpnuGT0VMCl6USBV0pDy8LWniF47YNudmjxbK7qpsDyp2sdFUgw5QlHJWgVLLpSEL6kZEZeF+lHnIg8ovdrCQc/rmDuE2F/ETVfMHMEfl20v5wXB54uX4zbFDsg== 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)(366004)(376002)(39860400002)(136003)(396003)(451199015)(316002)(54906003)(83380400001)(2616005)(1076003)(2906002)(66476007)(26005)(6512007)(186003)(6666004)(107886003)(4326008)(8676002)(66556008)(86362001)(6506007)(36756003)(66946007)(8936002)(6486002)(38100700002)(478600001)(5660300002)(41300700001);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?c6Tbx1w6jgzIwfod+j5h0hhfeufKfIpvUJDfb7JfglJlCh1e2WV5T3jr92aM?= =?us-ascii?Q?Fo6X0/xYSzWhe8oieeXClm0qCO20VxpdwUjOdRCynRV/cdZOMM7lTsB5LH2V?= =?us-ascii?Q?bOqzSHfKHw1iP4hgsa0uPlKCSE/iyHJj0XSoSpnfrb8g29C6H5Xdd78Cdpqu?= =?us-ascii?Q?VsuQRpcm+HqNHMzf+TNCPlaMhhu2AAXuMRB9lzAID060rizixFvtxjZZOuTH?= =?us-ascii?Q?iaOftyU90W6t1fJbKlqXy/u+MOLN3JCyL2w09zApjCRROQFCfxV6qDZvz/KJ?= =?us-ascii?Q?6lZEpkU4zhizqj8jSO4jU8qr5sOAQNP/CGmCTosJcOzjax5CwqnyWlZOzhqr?= =?us-ascii?Q?lOYSdDsKhObIW/Y3/+TNUK5zXbIAGBcy42uTMJSHrv4Z1DtfPlr39LsD86VY?= =?us-ascii?Q?+PiGBZ34wXT6q0ROOFMkE/zo6+BjILW3oEKOG1gTo7BOhTW7+N6XpQEOAqbd?= =?us-ascii?Q?CanQH2uvf+GIJOsTxVHGPPttnmTRR0i3UAiZYqutLXY8Y8MhD7Pw5X5c5WQO?= =?us-ascii?Q?wvJz/ymmd7ZVXMnQT+OdRgBwT+XFZjrwIcdFXRXYPk5bKiJI/sV6APaTWlNf?= =?us-ascii?Q?i57ej9yZke6x+10AotLBQNEqgJIaI/bTKbbG/5QTCMvVbVENSX2GkX4k6yRa?= =?us-ascii?Q?hwyHeh2hhqC9nsAyB6qn1sMYmChixedSUFznNRljVOydTCbS3LmcSNOtn7/C?= =?us-ascii?Q?JPbBo/KKOSj0KYp9BX4E9kvqSggnnlG9D5cvW/8IfqDxVT5oOfiWsyMc3XDJ?= =?us-ascii?Q?v3vlzpwvI0c1milM5HpMR/IjKFKOg69iHEWn1iQgkPz7a745KM9S0UB+V/pN?= =?us-ascii?Q?fvb8TEUzB9RIfG+quFWJgZY0bzXLHCQH+MvoTACnvLxCLlGTIdnJV/PUuoAG?= =?us-ascii?Q?uJKsvRASl4Tp/N4pW2DfQDsOeRigXEh/hZewiCha0N4DOACWz01GXXhWGCeT?= =?us-ascii?Q?1iHW2WB6iGMjuGDysFZdfRlItkVSZzSD00bc66kmBO2HHnIBmrn5rKQwKCJD?= =?us-ascii?Q?YFgyX6OowSzLCKYjGp25/3phDXuRyXLE4B6qQ9K0UIPxsiSKZ3zFQIIzBkz6?= =?us-ascii?Q?Z3CqL2ugt/Aun04Dn5zfEJc4HEFnpW1Alfs6HyIYc69vqV9RlIzvnljkexhK?= =?us-ascii?Q?EjH1w454GWopkwEMQV1i37ZYLLgNmqFAp/WlyVX9MEUXdj4XVVq4BjSV5tpE?= =?us-ascii?Q?PIY7kEMd6Yg3r+BJI6PFRejub0oTGgsbXtOXMkZpaQ54rwW9g0/OyQ54TQCz?= =?us-ascii?Q?DmrRs4654WI2Biw0H7eW1BEIa2lztoHL4EIGP3Ax0BUOh/If2Z/NF4MRSkj5?= =?us-ascii?Q?srDdC+qt5hwgGoLzgMl1mmUazo2fb8ZFcaGc18EjXOoquyzQ98h40uc8LWmG?= =?us-ascii?Q?CyiqqRAUhS8/3ePJVKiUAcEwXX2S+BHx93MV04ucBFBE7+77H2dZU8fueeNN?= =?us-ascii?Q?dIV+/crPdxfafq68OKeaf+PXM0LNFNP8gkF3oO2/VJ9q9L5w3pXU93ozV9BA?= =?us-ascii?Q?iT2oMUWI0CDoB7+hoWCNJiM8WmUYrkbgHo76Tp9Bw4f1UBpR3qTEbBkCW6jK?= =?us-ascii?Q?OGhyAIyEB4lmYjZM1XzrKkAetjcuN9LdrJOvzQ4tSVHRU/fojGszGRRU98Q1?= =?us-ascii?Q?zQ=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: 1QrNr6RWcvR2X3Y3W5yt+5PkNpPabym57wgqZVw37b25+BXeUPyqyrt4Wqt4xP8QB8R0DCE7H8PG19T6CjuZFVdYYlGWs3HfFjigRdZYQ2aZj1Uajk7QaYRso3GPY8e2zv6EXz4F3B78JlWiekRg6xdgXW2IDRYJHBaEHGqVZXdF0uXifArHM0HLnnOnV0iSXORxB4uPJTeLFiBPvL3uojEHl2FKIEUJKsN4kTvQ1C3GXQL7dWFPGzWYN1yJlCFSPB5Jgt56QJJjT7Hf72uYJ1anvG8zkudSzDwEV0ITBVEdDOzhBiP3/osqTUCLt5OuMXuJuyuw9MAqn3UQp0QvwJdrLK3D6LfBX4jS9Fzc29ZuO/17WxDjxB87G+TfbL/WS4h1Acm/AsZL0vWVOtbFHZGinwIUMYD+JMZW6P7vVT7YlsOACw4YRVCWVqwI2CwoTjPMiIZB/wJF6aO1WmTaeI6/NZixeVG+hFXGm0uZWvtLRRnOfkLhnIMmChuPrqzRE50Usdk02cDYdGAvsNTPps38M+jBOVwKHZ8LeV4U0DmdTW+Aa0MhbKCNWlq4mrwzYg7xBKS0v/f/fRHJRH6j10voHVpCsXBhEzbyLVcsXxEn18U+RwxlRHyBZXTRiNuhBAuaxeyte+dIKf1qB2HJDg90xO630f7d66kxo7OmoMixCv/waRRopdBS8snsjRbVAX2xyvbiatS6KFtBTB+uBn73JQo6ZXKUUm/jD+oeud9Ou1cCnBf+KqYEB5U1pj3FqVkBE2VvFsex9/BInc07Ti81UAYe7XGzGI4u6uu5O8NN2B1snklkuqrA/iCEaLsU0g1nIxBxl2j8h7/zgMKbH1EegaNpBHmbtGC8htkOXjdhy16FbXfi1CCdnt42gXiKIe8XoNXSH6FKTrVfm1UUZA== X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: e94ddc92-55d9-47a3-feff-08dafb037434 X-MS-Exchange-CrossTenant-AuthSource: SN6PR10MB3022.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Jan 2023 16:29:08.1950 (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: GSHP6pKqT2agwhjqcjPjMg42vthD/DmmYQHQWJCkb5DIPLoh9hOnvLCOxSXl2rsod3NbGqFzlbpwJ+xAcA6JSw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR10MB6400 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.219,Aquarius:18.0.930,Hydra:6.0.562,FMLib:17.11.122.1 definitions=2023-01-20_09,2023-01-20_01,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 suspectscore=0 malwarescore=0 phishscore=0 adultscore=0 mlxscore=0 mlxlogscore=999 spamscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2212070000 definitions=main-2301200157 X-Proofpoint-ORIG-GUID: QJThX5d9G1cd9GT4kxrKs9aYJFyEswX0 X-Proofpoint-GUID: QJThX5d9G1cd9GT4kxrKs9aYJFyEswX0 Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" From: "Liam R. Howlett" Introduce shrink_vma() which uses the vma_prepare() and vma_complete() functions to reduce the vma coverage. Convert shift_arg_pages() to use expand_vma() and the new shrink_vma() function. Remove support from __vma_adjust() to reduce a vma size since shift_arg_pages() is the only user that shrinks a VMA in this way. Signed-off-by: Liam R. Howlett --- fs/exec.c | 4 ++-- include/linux/mm.h | 10 ++------- mm/mmap.c | 52 ++++++++++++++++++++++++++++++++++++++-------- 3 files changed, 47 insertions(+), 19 deletions(-) diff --git a/fs/exec.c b/fs/exec.c index d52fca2dd30b..c0df813d2b45 100644 --- a/fs/exec.c +++ b/fs/exec.c @@ -699,7 +699,7 @@ static int shift_arg_pages(struct vm_area_struct *vma, = unsigned long shift) /* * cover the whole range: [new_start, old_end) */ - if (vma_adjust(&vmi, vma, new_start, old_end, vma->vm_pgoff)) + if (vma_expand(&vmi, vma, new_start, old_end, vma->vm_pgoff, NULL)) return -ENOMEM; =20 /* @@ -733,7 +733,7 @@ static int shift_arg_pages(struct vm_area_struct *vma, = unsigned long shift) =20 vma_prev(&vmi); /* Shrink the vma to just the new range */ - return vma_adjust(&vmi, vma, new_start, new_end, vma->vm_pgoff); + return vma_shrink(&vmi, vma, new_start, new_end, vma->vm_pgoff); } =20 /* diff --git a/include/linux/mm.h b/include/linux/mm.h index 287e340ced01..cd6947b1dc99 100644 --- a/include/linux/mm.h +++ b/include/linux/mm.h @@ -2831,17 +2831,11 @@ void anon_vma_interval_tree_verify(struct anon_vma_= chain *node); =20 /* mmap.c */ extern int __vm_enough_memory(struct mm_struct *mm, long pages, int cap_sy= s_admin); -extern int __vma_adjust(struct vma_iterator *vmi, struct vm_area_struct *v= ma, unsigned long start, - unsigned long end, pgoff_t pgoff, struct vm_area_struct *expand); -static inline int vma_adjust(struct vma_iterator *vmi, - struct vm_area_struct *vma, unsigned long start, unsigned long end, - pgoff_t pgoff) -{ - return __vma_adjust(vmi, vma, start, end, pgoff, NULL); -} extern int vma_expand(struct vma_iterator *vmi, struct vm_area_struct *vma, unsigned long start, unsigned long end, pgoff_t pgoff, struct vm_area_struct *next); +extern int vma_shrink(struct vma_iterator *vmi, struct vm_area_struct *vma, + unsigned long start, unsigned long end, pgoff_t pgoff); extern struct vm_area_struct *vma_merge(struct vma_iterator *vmi, struct mm_struct *, struct vm_area_struct *prev, unsigned long addr, unsigned long end, unsigned long vm_flags, struct anon_vma *, diff --git a/mm/mmap.c b/mm/mmap.c index 4bb8d219b53f..da58f428c5c0 100644 --- a/mm/mmap.c +++ b/mm/mmap.c @@ -685,6 +685,44 @@ int vma_expand(struct vma_iterator *vmi, struct vm_are= a_struct *vma, nomem: return -ENOMEM; } + +/* + * vma_shrink() - Reduce an existing VMAs memory area + * @vmi: The vma iterator + * @vma: The VMA to modify + * @start: The new start + * @end: The new end + * + * Returns: 0 on success, -ENOMEM otherwise + */ +int vma_shrink(struct vma_iterator *vmi, struct vm_area_struct *vma, + unsigned long start, unsigned long end, pgoff_t pgoff) +{ + struct vma_prepare vp; + + WARN_ON((vma->vm_start !=3D start) && (vma->vm_end !=3D end)); + + if (vma_iter_prealloc(vmi)) + return -ENOMEM; + + init_vma_prep(&vp, vma); + vma_adjust_trans_huge(vma, start, end, 0); + vma_prepare(&vp); + + if (vma->vm_start < start) + vma_iter_clear(vmi, vma->vm_start, start); + + if (vma->vm_end > end) + vma_iter_clear(vmi, end, vma->vm_end); + + vma->vm_start =3D start; + vma->vm_end =3D end; + vma->vm_pgoff =3D pgoff; + vma_complete(&vp, vmi, vma->vm_mm); + validate_mm(vma->vm_mm); + return 0; +} + /* * We cannot adjust vm_start, vm_end, vm_pgoff fields of a vma that * is already present in an i_mmap tree without adjusting the tree. @@ -800,14 +838,7 @@ int __vma_adjust(struct vma_iterator *vmi, struct vm_a= rea_struct *vma, =20 vma_prepare(&vma_prep); =20 - if (vma->vm_start < start) - vma_iter_clear(vmi, vma->vm_start, start); - else if (start !=3D vma->vm_start) - vma_changed =3D true; - - if (vma->vm_end > end) - vma_iter_clear(vmi, end, vma->vm_end); - else if (end !=3D vma->vm_end) + if (start < vma->vm_start || end > vma->vm_end) vma_changed =3D true; =20 vma->vm_start =3D start; @@ -820,7 +851,10 @@ int __vma_adjust(struct vma_iterator *vmi, struct vm_a= rea_struct *vma, if (adjust_next) { next->vm_start +=3D adjust_next; next->vm_pgoff +=3D adjust_next >> PAGE_SHIFT; - vma_iter_store(vmi, next); + if (adjust_next < 0) { + WARN_ON_ONCE(vma_changed); + vma_iter_store(vmi, next); + } } =20 vma_complete(&vma_prep, vmi, mm); --=20 2.35.1 From nobody Sun Sep 14 14:22:07 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 EE6D1C25B4E for ; Fri, 20 Jan 2023 18:45:07 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229805AbjATSpG (ORCPT ); Fri, 20 Jan 2023 13:45:06 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:49034 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229518AbjATSpE (ORCPT ); Fri, 20 Jan 2023 13:45:04 -0500 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id ADACE5590 for ; Fri, 20 Jan 2023 10:45:03 -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 30KGBggS011434; Fri, 20 Jan 2023 16:29: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-2022-7-12; bh=yzRCK8lB1VXL4jFBXek0Jo49vbE0RIMVOuZES8MqPCk=; b=akBdDFE0EyCEMmc9b82NgQK4mFB44JriolKjcP1Peqe1T5NagTw+V1Pw4v2U0YWD9CY1 HRyIEaT5cuutireZEkYGwIxY5U88hlKqriGa5tgkXRLiaXvb90XGP1pE+/+IxdbOR0Q1 sbEdqfeQzGJwcZvr2Ua07BV6/UChBeey/09Uw5Ug69c72qBU0PbSNnDhqcJWJylD1uJ8 OLLkbavfNDi8ttCNF3T+HDBZqCwmtc3YJmg6qWqE8f2EmKQNEbvJsGgXAhsjpZKXDNMZ ct+vKt7T8NdvIoh8wYDNEP+voSnyqeTHfUHExpQcLCo/bYAlV1lViJxqiKLLyJrV6KMi Ng== Received: from iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta01.appoci.oracle.com [130.35.100.223]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3n7895aqtf-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 20 Jan 2023 16:29:13 +0000 Received: from pps.filterd (iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (8.17.1.5/8.17.1.5) with ESMTP id 30KFKRdk004601; Fri, 20 Jan 2023 16:29:13 GMT Received: from nam12-dm6-obe.outbound.protection.outlook.com (mail-dm6nam12lp2175.outbound.protection.outlook.com [104.47.59.175]) by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 3n6r2w1hj2-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 20 Jan 2023 16:29:12 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=VvhyYUjWP5WTIwn2hQi/DZ9jsRUEhCqOCzjDKnucwPYKbFW0O/XfM7BLXGR4CxuoXdMEymItMl7EVqmo71Jp3fwTkpQFezZyGz3gd3Ma5Zoid96PBX6p/kxHGjwILAWYC60po24tS3WgqIH4MmujXdZeYUYmkZnoUqOeSdpYLZEyuLUBszYwTjhXSSAK2oOV2nwLgB5w0I1DRDF2lNukj/nSb/k5jljwd8+5axjU69qoRwe/6TTJghCTVs14N0LmbEuuQgcB+kCTYLBJNmaJ4Ge5hjoftEc8lMT2KQv7D0RjejbCBkzl9rnrAbvzBFTJBQPdkGpPvTR+HLRbZTvj4g== 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=yzRCK8lB1VXL4jFBXek0Jo49vbE0RIMVOuZES8MqPCk=; b=CTQ5H4qisnxiIT1aZNPwjVWTr28Gtoq6S+p6tZJwpS8KJNSYBsdfiqzMbwNJNnZ3mNh5tVh2oQfDYxoKSkJ4eA5/I2vSGPGOVsC/az2FM4z3Ue1r/BttuojFCQX+7TtHGpItldQrZz07H8TUqzOE5KS0OY0FJTWmIcqR4aAJHqIKulG0Ed8UhsPY6J+qJ0wPH6WGEKloYim7p0HJ75fhAlTZoZfeDr0zDlcwACkfzpk7MCCa0I2l9bKGSEe+H0q4Cu0iudqYZSIzEG9u/edL+ljeSYtDuoLqkNrKJtuS1i0J5Nk4zofsVjRh5jnspMkPZyDjFOYBI/E66FsJHzPYAg== 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=yzRCK8lB1VXL4jFBXek0Jo49vbE0RIMVOuZES8MqPCk=; b=BagWt6YzuRE3+yofVpO/kDkRf5ssFRD3+parCLDVBUOX5dc8UlCfknBouAWYIOs5OT7wufQVHerG16DFlQthN7HpEuutpA0+cO3YcKdJoRD8sOFy8cfqRQB7r5GcXguTeJ26E3NuTl7lGsTdPJACvT9QLtWXFohRZi/l7LOu5jY= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by SJ0PR10MB6400.namprd10.prod.outlook.com (2603:10b6:a03:44c::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6002.11; Fri, 20 Jan 2023 16:29:10 +0000 Received: from SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::7306:828b:8091:9674]) by SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::7306:828b:8091:9674%5]) with mapi id 15.20.6043.005; Fri, 20 Jan 2023 16:29:10 +0000 From: "Liam R. Howlett" To: linux-mm@kvack.org, linux-kernel@vger.kernel.org, Andrew Morton , maple-tree@lists.infradead.org Cc: "Liam R. Howlett" , "Liam R . Howlett" Subject: [PATCH v4 46/49] mm/mmap: Introduce dup_vma_anon() helper Date: Fri, 20 Jan 2023 11:26:47 -0500 Message-Id: <20230120162650.984577-47-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.35.1 In-Reply-To: <20230120162650.984577-1-Liam.Howlett@oracle.com> References: <20230120162650.984577-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YT1PR01CA0123.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:2c::32) To SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SN6PR10MB3022:EE_|SJ0PR10MB6400:EE_ X-MS-Office365-Filtering-Correlation-Id: e83a333b-891b-47a0-d314-08dafb0375b4 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: d4oTl2tw1M6w5b2PMCJEdedrcGBBOzN9s7pceZgD67HeVOGlEF9nM/nvm8nn9ZtxnsPd9NKZp2GF5e+i/N2DZLJjEKsW9meDCqbnhFbMmUlH4qZWSt5mitkYQrVdq4/u1Y+/JLZJO54B0kTlQjtXy14yX04eoV3WkTjPPadCPdEYYeM/NUAuKBlvhGxGwYKVQV4eQ5IxgvhTUMi2f15G5+XtcFPBqPk+tMBHoU8YOULDzpPXVb5sYDdK9YC+16Y9G3nNApogCUcwq00Dtz4U7j1I1e+nRMnq1OBmVLdpN+1U/OtWdNgFgl+9wpHztzHUCAlDDOkGGGpRLtsrsV+nCne8Rw5tAlcGRZnrCn117IjTFhHdWTOdizw7dIAtpYvQd2BeAzPH09eUt+9Iredt8L9ac1kZm4HjK2y365VkvjZ0+QLDiiz4LMwZUojvZLV7RR7lT89x3syIzk5xeDz1GSURZOcbM9rsXQn/NXenTU99htf0dbStnHZmHN2TXeLdzEAxkPKbE4T2MeMe7rkhjcBUGdFx5arjyuhVNb9I2vnPzoMiwYqlSb1hLCbVib4hw/6IBjDj5IrKy73y7wkeVSAVTC12A+T5NMLWTVt37PF0WklnDmOgioKOYUFhR4mIRq+7RdUiS2qPQHRpPgvwfw== 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)(366004)(376002)(39860400002)(136003)(396003)(451199015)(316002)(54906003)(83380400001)(2616005)(1076003)(2906002)(66476007)(26005)(6512007)(186003)(6666004)(107886003)(4326008)(8676002)(66556008)(86362001)(6506007)(36756003)(66946007)(8936002)(6486002)(38100700002)(478600001)(5660300002)(41300700001);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?1+eDQEfyeHozBst6tof9LBMTu2vP7Zr1vfotaHWjKMoJ0/fWTNZPZUxgmwUJ?= =?us-ascii?Q?NQ5bZ8xGlNHjBeRiFpY6uMdSM4O4bTPpudTuyrDVPZhmLfdagqHAtA40tN7g?= =?us-ascii?Q?9vUWzBhoTfivxaSyL4tbpJVA2jK8wnWyopQokrUNiRn5OZLeaEcBPxF6knQv?= =?us-ascii?Q?H60alFnj2I/b634ZqfnjorZ3iShPHyPebQq2d2G3GEYX6ECkpT6HcbHctU97?= =?us-ascii?Q?CiNyxd24aBgVfvb3TvD3eifIfCHbZPI5kUE/VGrLiGxb0ONOW/aMsiEIlp7u?= =?us-ascii?Q?gmBRUFZ7SCiYMdvrUdh6ai2wd/e5OSGWiUmIje+VyISBq6b2rWGF1pgGlajC?= =?us-ascii?Q?zNPfvq2GBLCtcIUFpZSlYuf+yTzDmm724bDxT2mxouNxQjnPLJJlJSdMhhOe?= =?us-ascii?Q?0SVGXz6XvmhS5EeNLHxXqtf5TR2QydU7ib9Rpj6UVA9ZBAfCLjfNpW8Y8s0g?= =?us-ascii?Q?fhtr44myZVATYSEIJsVskM079ui5vuPRhjuU4nxmewCmLUfYKs7GyKlVLyz9?= =?us-ascii?Q?ad1+9REBHQSxaIo4dv+WUb2wCPwdyPAIEWeAbx1AZOEO+TKxsvvxt4Xnfs03?= =?us-ascii?Q?XE7Wm2NDBQye1LXRbzUXCOyBFMpWPDEXv+cGZWjF/dGzsGRro6FYdDzb8wFc?= =?us-ascii?Q?U8aDpEtVvmHHZW+pHW65vnNVTCcXUiSwLfafHSVH5UE+BNZogbtrkOtlKPiF?= =?us-ascii?Q?26D/iAOrYApRk0okUsWzCPtTrrKeNl4LRdo0Xz+nnor2Z6Pyb4+d0qDV865+?= =?us-ascii?Q?+I5tQ9lQvyw9UwAhZf5MKbzZ2mD6LcHyEaFNKTUi6tSOuCpKdPtisvOUNdOh?= =?us-ascii?Q?Oi/1T/0NhRn/Maz7zn1tMiJL6xtBrijJeL1WRrTilsnmW3E49iaG05GNyP0U?= =?us-ascii?Q?2RySE1vy5rVzpLo3uFz0xhJnCOZ72Omyzjx2sNOhZ5FCK1NqnhxH2bPPP0xW?= =?us-ascii?Q?Ab/U4/UcWnQh4ieMh9fxddsnTdr5XAJUsNsC7JLLZ+T2nTPDpMfDc3Ctfm2H?= =?us-ascii?Q?OrsHmBhcxH/cQhVmiifekngwx3ohB/lGFsy/SUxPb6emYyI9n9ZT+oSI51Uo?= =?us-ascii?Q?oejgf9GX/H9FjoWCqH3r5ltwTy2NteryZQK9WeL7mZOiR8ByS+BAtbXcwYbg?= =?us-ascii?Q?uWTlGfD1db741sXrkU1A+LfN2XqgxG5bxBVjb127jdmWZAozaWlhaSB+1073?= =?us-ascii?Q?clpIqrBkpDw9G+qLOVxgwFsVYXHK0MRfBG/8ppqHHOnH29/6hHeRbc+a7r5O?= =?us-ascii?Q?EOGlFv1LX1Bzo1OlyjOG8RTgsyto1G44nU9Ix3JgHb/u6BujUVy2sBShU7rR?= =?us-ascii?Q?16yKmUThlIkSO29QEEgUtpX0wdTY8H3luBoCp5U5CQZ3SDDrTnE9TjqoJLSt?= =?us-ascii?Q?fYD9NwGSO9mLIMURAi0YQEOfzc7TMUlZpigO0CudiZVKcPP4Bllr0Qly0hrm?= =?us-ascii?Q?7jyjzAhF7PMvUPzYj5Vu0kQzlV/Bk3TJqOn1AQBIQenfi4JiXPGGfZShw11P?= =?us-ascii?Q?1UEMifzaFnMnEMAe0HyqxycMNDuYpTbdL89teBGWYW1g3G2lDLwIriNnXm2B?= =?us-ascii?Q?uSWWq8O+yYzMfbxS2OGNw7fu0FCDb1PRGM8wF0VIw1hfhjAij2IVNMvCP5ws?= =?us-ascii?Q?OQ=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: 30W9Bla8auDSjKcB/Ld96PueVTEZpXVASfw3rzss19lumLw7A4+yP43LSzv7MYjBbM8EPuHZY/TVTD15md3zhivxAi2Rg/oLpleDHlJYPOBE2w7Mh8sbmC2YqR1K6gxzntCBV0e8m5j8816xKpVLO8WV3ZF98FsJZ/F9tS78wbOJgQ6qy7s4Q/XJe7fNWfxOerqZCElFNZMgQATG/AlqEzb9cCAHLMBZM1RRj+3ju1EUncPTTTohOk4te6SZwU+CT3jrqdnAwJpDiMO+36yu0E/6Gr7U2PsR7uLCTZE7Pe7D1VyTOD9ue/0l9WRAZptcu4lwVnvk7Jr/ooyq3NIbWY6WtuC0xYwLOQKoU5kwshKc+VlfZ3ksvVBEXeuP/Yic+4UMXIJCeJmfOfm3iWE1/AxF7bF20mpZSW0yRFB4RvaB6KytegDLlFkZ2qItXwu6ULEJ6ZUTHppCklE5puPDeNe4NP6Iw1Qzs/6fLBHBsNTl4ZrIaG8cXsGgER8oL5fm7iAjPaaMKIcVKBRtw9eo8WqUcbSaWG8Z1zuIV6voW5PZq5PdGLcTLlIvfLlwjw4bUHCXBK4B3O8aR1gS8yzsjCnf3juAYhEu0sczhlJbJ+ehrJaXdCgqY8kwseBZihHiGwwHLIpySTMydLwCE2lHzgbylVB9UKoI1TGXb96btOtfjeJrA79Uj4FFok17nxIrO7AQ2Jaeud8o/k7JQ0PVjcnaTn+O/3C7q69zat33vDAcMTebLxPGThZ7Fp+Ml0bN/Q9/ay5rwSgHpheDQc+iT4KVHwoKEeOuV57/T7Knu5LUUD0yc4UdkBG4uoiVENFpzRP5d9gTzC0lMWrsqAn5x4nisiIjyPw0eMWB7atk5qndhYYn+QVo8746VMpR4t8ifKIxbZuypzCmU6bnVBWtMw== X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: e83a333b-891b-47a0-d314-08dafb0375b4 X-MS-Exchange-CrossTenant-AuthSource: SN6PR10MB3022.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Jan 2023 16:29:10.6636 (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: 7BajcjBk5L2gJqLH/Oxz6C/i9qjkQoY94CbmBl1eda1Gp1CKiFfyDJS3+LRqVkfRloN5NPdoZE8t/g61mMQ92Q== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR10MB6400 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.219,Aquarius:18.0.930,Hydra:6.0.562,FMLib:17.11.122.1 definitions=2023-01-20_09,2023-01-20_01,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 adultscore=0 mlxlogscore=999 malwarescore=0 mlxscore=0 phishscore=0 suspectscore=0 spamscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2212070000 definitions=main-2301200157 X-Proofpoint-ORIG-GUID: 5j2vBZ0C55qN96grw7sN7D4qdjJEavul X-Proofpoint-GUID: 5j2vBZ0C55qN96grw7sN7D4qdjJEavul Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" From: "Liam R. Howlett" Create a helper for duplicating the anon vma when adjusting the vma. This simplifies the logic of __vma_adjust(). Signed-off-by: Liam R. Howlett --- mm/mmap.c | 74 ++++++++++++++++++++++++++++++------------------------- 1 file changed, 40 insertions(+), 34 deletions(-) diff --git a/mm/mmap.c b/mm/mmap.c index da58f428c5c0..0a2b19633174 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); } =20 +/* + * dup_anon_vma() - Helper function to duplicate anon_vma + * @dst: The destination VMA + * @src: The source VMA + * + * Returns: 0 on success. + */ +static inline int dup_anon_vma(struct vm_area_struct *dst, + struct vm_area_struct *src) +{ + /* + * Easily overlooked: when mprotect shifts the boundary, make sure the + * expanding vma has anon_vma set if the shrinking vma had, to cover any + * anon pages imported. + */ + if (src->anon_vma && !dst->anon_vma) { + dst->anon_vma =3D src->anon_vma; + return anon_vma_clone(dst, src); + } + + return 0; +} + /* * vma_expand - Expand an existing VMA * @@ -645,15 +668,12 @@ int vma_expand(struct vma_iterator *vmi, struct vm_ar= ea_struct *vma, struct vma_prepare vp; =20 if (next && (vma !=3D next) && (end =3D=3D next->vm_end)) { - remove_next =3D true; - if (next->anon_vma && !vma->anon_vma) { - int error; + int ret; =20 - vma->anon_vma =3D next->anon_vma; - error =3D anon_vma_clone(vma, next); - if (error) - return error; - } + remove_next =3D true; + ret =3D dup_anon_vma(vma, next); + if (ret) + return ret; } =20 init_multi_vma_prep(&vp, vma, NULL, remove_next ? next : NULL, NULL); @@ -742,10 +762,11 @@ int __vma_adjust(struct vma_iterator *vmi, struct vm_= area_struct *vma, struct file *file =3D vma->vm_file; bool vma_changed =3D false; long adjust_next =3D 0; - struct vm_area_struct *exporter =3D NULL, *importer =3D NULL; struct vma_prepare vma_prep; =20 if (next) { + int error =3D 0; + if (end >=3D next->vm_end) { /* * vma expands, overlapping all the next, and @@ -780,15 +801,14 @@ int __vma_adjust(struct vma_iterator *vmi, struct vm_= area_struct *vma, end !=3D remove2->vm_end); } =20 - exporter =3D next; - importer =3D vma; - /* * If next doesn't have anon_vma, import from vma after * next, if the vma overlaps with it. */ - if (remove2 !=3D NULL && !next->anon_vma) - exporter =3D remove2; + if (remove !=3D NULL && !next->anon_vma) + error =3D dup_anon_vma(vma, remove2); + else + error =3D dup_anon_vma(vma, remove); =20 } else if (end > next->vm_start) { /* @@ -796,9 +816,8 @@ int __vma_adjust(struct vma_iterator *vmi, struct vm_ar= ea_struct *vma, * mprotect case 5 shifting the boundary up. */ adjust_next =3D (end - next->vm_start); - exporter =3D next; - importer =3D vma; - VM_WARN_ON(expand !=3D importer); + VM_WARN_ON(expand !=3D vma); + error =3D dup_anon_vma(vma, next); } else if (end < vma->vm_end) { /* * vma shrinks, and !insert tells it's not @@ -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 =3D -(vma->vm_end - end); - exporter =3D vma; - importer =3D next; - VM_WARN_ON(expand !=3D importer); - } - - /* - * Easily overlooked: when mprotect shifts the boundary, - * make sure the expanding vma has anon_vma set if the - * shrinking vma had, to cover any anon pages imported. - */ - if (exporter && exporter->anon_vma && !importer->anon_vma) { - int error; - - importer->anon_vma =3D exporter->anon_vma; - error =3D anon_vma_clone(importer, exporter); - if (error) - return error; + VM_WARN_ON(expand !=3D next); + error =3D dup_anon_vma(next, vma); } + if (error) + return error; } =20 if (vma_iter_prealloc(vmi)) --=20 2.35.1 From nobody Sun Sep 14 14:22:07 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 D1C5BC25B4E for ; Fri, 20 Jan 2023 16:31:12 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230287AbjATQbL (ORCPT ); Fri, 20 Jan 2023 11:31:11 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:38328 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230264AbjATQbH (ORCPT ); Fri, 20 Jan 2023 11:31:07 -0500 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 821A73F2A9 for ; Fri, 20 Jan 2023 08:30:28 -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 30KGBZwR029948; Fri, 20 Jan 2023 16:29:16 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-2022-7-12; bh=p439LvY40ylSMMh35PHQRibzaWJvjzCCB0xsT/pJA6Y=; b=gzJ4dpQZ6L67RXcJ/vR1HbXOPcayCyyABC9k65ZbqwpUNGu513h8gDhoBES/ETctEQtX Na95+QGvqD/X5lomZwzDXnnaU9IdTSIX6Wp5ifrMRi9sQ8fwKzMmlFFytotQYkcCKTmd yl6hGPTMNbXxc4/tF3MZc8cyrXaRxZPprEQDENncDfAyl8AjSojxKLIu/YJey9wCEoSS Pt5WE/Mx2jj9e24HoYc9dZq6cpGtzJUww9TcZhGfEnY4NJ/BWqC+IhkH2fjbrB5bI/13 ec/1/Z8ZVZ7cS3j/YtwIZuSu43JMVgzQIg8H4xRKPM+RlbU7ZTEaNA5pSOAcbWE76ko6 jw== Received: from phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta01.appoci.oracle.com [138.1.114.2]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3n3k6cd3gq-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 20 Jan 2023 16:29:16 +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 30KGRab3027906; Fri, 20 Jan 2023 16:29:15 GMT Received: from nam12-dm6-obe.outbound.protection.outlook.com (mail-dm6nam12lp2173.outbound.protection.outlook.com [104.47.59.173]) by phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 3n6qud93hm-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 20 Jan 2023 16:29:15 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=n5qiltoQ2tHHm1cADVsmJYrJbiQo6kfCvZSqCdbUGLmCEFeoGzxm1x7TxxGlSM/opM3mckzrpQkw9JFUCpQ6vudVQCngqlbJuXwrDWQrzZgc757kp5NeQ4I/fYkgoKOP+twL8SA+526/Wdj6SuUcjTkdl2OrtaIpmpd2ZOqg0/5Ykwczk1tJlDQQqL2cGzgRBOs9D7mvbNHdX052KPrOJ7aBcdWz/pvl33MMKkG8j+cLAPxv0MOdPbiCqerbqfeKf7hawHKgkmV3U2zaKy2aSqa/ETBLnYJnWruDyy7MtqChAVMrQOlYgUr1ofDTtEA/RIltSS9l3qkqqWNMzp2MRA== 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=p439LvY40ylSMMh35PHQRibzaWJvjzCCB0xsT/pJA6Y=; b=X4DnEB62l2F6fgoqGNFn5Jiq2CXcWbGAP4h3cw3Bs507YtLz+XYhcgQKGrul5Ud9aOU+SsXJXZM0dNVlt0xmti49qt4nqnL/mo28Sdvr4Lc45aY8kNraxKVTzjBXt/LTwDmbwfpGyGPy8BzxWRhhpRXMZTlRiQlpiyakGFXO6g0mJemnAbaFHIN2daamvo01zYZixSm0QifhCYmLWsjHseutLZpaz5aenc8yFreBNfa5Gn6LWHqEUFmezTKEbF7Vhd9n/Zy6V3DXRQBRBez4AbZ4ZjtiT+kcaRhRsXSEgxEYRChtDgs3H8WE9k8mNW9kYClk7k9CDVuRem5xGhsfBQ== 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=p439LvY40ylSMMh35PHQRibzaWJvjzCCB0xsT/pJA6Y=; b=T/sh1UQ4bAsSFIe8bfwsQct3Egn33mYnGfObzS88RIVJalG+hoImuk25u/DFZhU8RxT3H9iEaAFqm6quujMWqllDVjYYO9oj3LcarSZo9PgRpfc+hDLyGJfjvUpWdezGdb4mGbsfVCalEUH59O7cExdh7ygs2KeoNcYo39zMo/k= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by SJ0PR10MB6400.namprd10.prod.outlook.com (2603:10b6:a03:44c::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6002.11; Fri, 20 Jan 2023 16:29:13 +0000 Received: from SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::7306:828b:8091:9674]) by SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::7306:828b:8091:9674%5]) with mapi id 15.20.6043.005; Fri, 20 Jan 2023 16:29:13 +0000 From: "Liam R. Howlett" To: linux-mm@kvack.org, linux-kernel@vger.kernel.org, Andrew Morton , maple-tree@lists.infradead.org Cc: "Liam R. Howlett" , "Liam R . Howlett" Subject: [PATCH v4 47/49] mm/mmap: Convert do_brk_flags() to use vma_prepare() and vma_complete() Date: Fri, 20 Jan 2023 11:26:48 -0500 Message-Id: <20230120162650.984577-48-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.35.1 In-Reply-To: <20230120162650.984577-1-Liam.Howlett@oracle.com> References: <20230120162650.984577-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YT1PR01CA0134.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:2f::13) To SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SN6PR10MB3022:EE_|SJ0PR10MB6400:EE_ X-MS-Office365-Filtering-Correlation-Id: e7320fcb-5ee7-4648-574e-08dafb037745 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: lYx593t9IFDBbbgT0mW6R9qaHboZoqbuFv0kzKwcq4VGh0RR4CTg0cEJVfDWBUBJ3khnwqnxpr4FoSyHOBSm3H/vVe7SZddzm1+6SWnm/u9uOmqXyv2S76wVcM7dOJt/SMT9wfgYiyUkZHYwi2LeXRJBJIFZ5aq1ekf4NDImjVCa4OGSQDHil7xqgjclASZOAaBUWZGOuG4utolYECcqbnicb8Kdw8ls89SvHJpODQXUvHP8n4wp7uFSRtqvJq0P/TN+TrMEuKM57j0yTHP7tUzepC6RLshKUo84zf7UDPGDPv2ZpTAgbyrh1AjtSWhvJ7nA7cLRMKfz6rWtWm149u3kS+2zy3cLWZVy/5IHGkolvYDzwIMo/9azJ9qlznLgzJ1TkGeRIFMznG8fRRysak5WbIqp6cA0Rq0nQmcynxijBvA5NQBg9ylgcXGDtDAkXVZd+QJdbOv+3w1YFinCNtzLAeytANUIw/SQJ8Sa54WGv/dqwPdyjMRs8jg5mwA1PkgWlByPcN8pJe5RlF68bIpGfPQfDOD+KiUw9o83QTzw/oFAGheqENYniQPEw6cQSwGIIQZYZh5+z68WLFlslWVb8mb6w2GyXGDfLhdaUXxQyabqFrv+uSbst57qDw9I4F7j8786nJGMBY3US2+Avg== 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)(366004)(376002)(39860400002)(136003)(396003)(451199015)(316002)(54906003)(83380400001)(2616005)(1076003)(2906002)(66476007)(26005)(6512007)(186003)(6666004)(107886003)(4326008)(8676002)(66556008)(86362001)(6506007)(36756003)(66946007)(8936002)(6486002)(38100700002)(478600001)(5660300002)(41300700001);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?dMiR6DdJrl1G6J5qc9hU/FZ+zKE2GD2EVZOuwjPKZb0Vp8gD+giPqPfq8oMW?= =?us-ascii?Q?kOOpWlEw3K1RC16xz2An5Ox6ML/bK05P1Dp5F5zu66/o6PZPBzyL6ezsZ3TC?= =?us-ascii?Q?j7h2qB4LCckScPtZ5V7WPLnNaXwqpoucU7GOmgoZY/bpbYYgC7V0iABGPqcr?= =?us-ascii?Q?8XOjp/FbCToC82ao74NHPr3aIW8jIP4WeNEV26EOXaFl3v2JEpv3D2n3eoSy?= =?us-ascii?Q?rRijVPIdmdqYp+34d9Q27A+2OJDUjxtuEm65frAcyrLGw0k18KFMqa8rcxoV?= =?us-ascii?Q?tvTppaQDkD9/ORfmi895ytRoS+IQ4gHspJk9AbTCcYNtJ/Tbq7ZSbev5+5uZ?= =?us-ascii?Q?pymdhF9CEcnjYuznbZ3IAdFhIC19tHCk1msPQsHN9vif/XQlzDlcvm17dBmO?= =?us-ascii?Q?H4qN4mCdG1pPbwpsxUUJKhAweG3/QXtm6huRBzmqXGgBj6I5KHbwHCLuQx7M?= =?us-ascii?Q?shhs2MM9PoVAmx9dvirBCmS1955Vo6l1jW7pbiAlkTNxFp+EJE/yGXJxZlzW?= =?us-ascii?Q?KA9H55tZutysB/B3KKGGhEWbkHphWfooSwgiciC9Pd1L6kQ3ducansHNvuHX?= =?us-ascii?Q?JcvudldyS9Dddd8xa/ik5oQRJD6dDKrGE704++p9cgAyJ6kWEZi225qg0NvX?= =?us-ascii?Q?sQFVWkw3T6fxMpK/aTAfbtGkm/IJo9ba/IJNKL+LRZ0/XW5XDyjMGe8ffXEe?= =?us-ascii?Q?4ooVtMPRzqPqHVjTnJxUZgichpuVYT+1g6svq5NZJ8YEnLXYhX1xp2Ml5CGH?= =?us-ascii?Q?QtH1cblFWB2117wDvjnKCpO7GUa9UXC/wDfizaEJaCazkD4sc/TV1rFLpxzz?= =?us-ascii?Q?bxTa7kcd2yvd7OEWsmZc29WPfhnlQzosVvuvnNgDsl/+hkJF30xyBRCNR52f?= =?us-ascii?Q?hhPuWfYnXCuKcJps/DI0iR3Mg1QG1Ztn95iUhqUrWg0Rl2m8M7TgtnBfMYtN?= =?us-ascii?Q?t25DZckha4C4FlYXgiKMLEYqrlNRC+4y9mxyNwBfX+79+DxcJI69aO37nipr?= =?us-ascii?Q?1WjPCQsKVSggh4e0AxeewUga0PpaIieaeJMpbhY2LN4ha72J+Q/tJpYg7RXE?= =?us-ascii?Q?iTXz4R+kUcwZw1fcWdXEKYD8Pkb7WDK4HtDAUKBIXsYzqMSLDUxmahA8njv6?= =?us-ascii?Q?DWDTqK7ubglXSXCZQei1jcXqbMzIimywGwluFw8UX5A/PjeaKy9iHBJ+Xaqo?= =?us-ascii?Q?+VAIL9Vwm0+L5quQPa3Yho/IIQ3zrHxJUrb/YZPk+po3qL/IeQ8iX96V5r4U?= =?us-ascii?Q?jjyhiF9VN0jMOOwFPwB+EIZGIxGqdYn4RRTkz1JcLgUNYD+x1v+oIn9Qff1/?= =?us-ascii?Q?rCKu6UUMOjRV2t7E0HGJAfCqFklQsYhdwAnsIuQqG8AXGCfGPsoeFk+7iovz?= =?us-ascii?Q?uHtd2Or9F3mRZTfstGaXQS5jpopFi1P+4mUyyJMUD1b7PJdXqYhkI/+9w8pr?= =?us-ascii?Q?SPZbEHZNc3LYghP84vx3nNoMydngSeZ7FyKtWz89ArLM7YsOE5yKrKx0V2++?= =?us-ascii?Q?v1dfD57qAUm4ofwa3pcxWJvwjbB5KMr/zd5N3/2YUeNx64mtrx+REoeJtQwK?= =?us-ascii?Q?6PGcfC1ISOGRphvhSl8djT94km0L7h7AuKhWAFu1sBn+nsguyRbNF6QfYyDT?= =?us-ascii?Q?/Q=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: TbAY4ONf7Rq/64aG4AUgDGEaIKMy+kHzTgvYD9/A273XS6EBfi8Fsk9C6BlVTfkeTo+Hc61CIYt+rs3WJUZTo+T0pHVeBNoW5qzC/DfLifaHmeAn0CUiWGzcXDuFUO9Jdk/Hg3Rll4ZWWQQQ2r21YSP9RN9+ly/u08e49hSsB8hWZcxIwDt6OoY84WTh/VAYWJV5SYc91iVD8F2SgwYUHCXp8VcD2SePAwNS76kM4YKoU7UmvMZmOnk3TAF6T2+woA7t1/kLT0NQ5F9Gf8es7CEkFtTnK97eMAMMvQEHdYFGnr4sMa5nqN36H81sxfmIuyAuc6hKWu3QH4FgS8UuzXmpL88LGlJ3h+btMeBYZkvyU0HV0kVNZdfTLYb9uO67N0HWjepy34jq+aqTpJNcICnxK45U83vP7WDpzGZAL1h6nkedfUjt9fXPeiCNAKwY+HA9oB1nJM8L1Ic0jFRrm2ZpuX/wp4QGIWCTsmBJX/tycX2kh4tribZpzV4pfZPDO6qRUAzf72XgFe35hZyl+h1RD90koIkSnS5uSz9UjCZ31KWdNKbqXGdLvDqCraN8CZb7z4IElmv0CwCsXcPH6E7TQodSOWvW5mULLwc4uZJzVc7UvF/oOKtf2YD8BZ/8AVnURJUdgaZBp4VujYic+lEseZymJGPLLFLWACApgpi8yG1odAHOrgpusLSFI564goUyME8l/kUZkIJVX4nRSij/EeTPvDuLebz7mzpTMTD0oqPooioHrjADeldtKbVR8gqYkBvWMXR00yhe6fidtWKEkze5L2cp7ggl0/Pk5GWsPovrPv+w/7803wJchHqfK63YQWu3NT8R9zs3R1gT0TBlJpP2wEq9Z9xPBBa99OCwrvGX7nwDbr7mrY0Vj1wRky88JgZSiW5QFovJQLx5aA== X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: e7320fcb-5ee7-4648-574e-08dafb037745 X-MS-Exchange-CrossTenant-AuthSource: SN6PR10MB3022.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Jan 2023 16:29:13.2884 (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: Ljlq6GJMDYKlSOJfKZcF5uEch9tEPzDWg50s03KpzWcXdTxbnEFvP3wzaONGptuRhwsvS0cUoXL8ST6UqJI94g== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR10MB6400 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.219,Aquarius:18.0.930,Hydra:6.0.562,FMLib:17.11.122.1 definitions=2023-01-20_09,2023-01-20_01,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 phishscore=0 bulkscore=0 suspectscore=0 spamscore=0 malwarescore=0 mlxscore=0 mlxlogscore=943 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2212070000 definitions=main-2301200157 X-Proofpoint-GUID: VxMPMMe3WqhNmYsAdGlkJR9vdHg59Rij X-Proofpoint-ORIG-GUID: VxMPMMe3WqhNmYsAdGlkJR9vdHg59Rij Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" From: "Liam R. Howlett" Use the abstracted vma locking for do_brk_flags() Signed-off-by: Liam R. Howlett --- mm/mmap.c | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/mm/mmap.c b/mm/mmap.c index 0a2b19633174..5aa048e9ff30 100644 --- a/mm/mmap.c +++ b/mm/mmap.c @@ -2928,6 +2928,7 @@ static int do_brk_flags(struct vma_iterator *vmi, str= uct vm_area_struct *vma, unsigned long addr, unsigned long len, unsigned long flags) { struct mm_struct *mm =3D current->mm; + struct vma_prepare vp; =20 validate_mm_mt(mm); /* @@ -2955,18 +2956,13 @@ static int do_brk_flags(struct vma_iterator *vmi, s= truct vm_area_struct *vma, goto unacct_fail; =20 vma_adjust_trans_huge(vma, vma->vm_start, addr + len, 0); - if (vma->anon_vma) { - anon_vma_lock_write(vma->anon_vma); - anon_vma_interval_tree_pre_update_vma(vma); - } + init_vma_prep(&vp, vma); + vma_prepare(&vp); vma->vm_end =3D addr + len; vma->vm_flags |=3D VM_SOFTDIRTY; vma_iter_store(vmi, vma); =20 - if (vma->anon_vma) { - anon_vma_interval_tree_post_update_vma(vma); - anon_vma_unlock_write(vma->anon_vma); - } + vma_complete(&vp, vmi, mm); khugepaged_enter_vma(vma, flags); goto out; } --=20 2.35.1 From nobody Sun Sep 14 14:22:07 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 65FB4C25B4E for ; Fri, 20 Jan 2023 16:31:53 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230321AbjATQbw (ORCPT ); Fri, 20 Jan 2023 11:31:52 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:39538 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230281AbjATQbt (ORCPT ); Fri, 20 Jan 2023 11:31:49 -0500 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 97D8DC4EA7 for ; Fri, 20 Jan 2023 08:31:21 -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 30KGBXO6020071; Fri, 20 Jan 2023 16:29: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-2022-7-12; bh=57GulC22IzZN7y5jzLF7uN7yeYdZzkWQzGDDgEf53d4=; b=T/dvt0SIVNp1lP+X23v2zS/14f+VG+plnmYRtWx//pTHNCUwh42u63MWcoxYpQK8OWl5 uOz5jGuyg/TBVNsdknLPvx876u0SYZlxvvbcNrVTvojMjcFTCfd2AmNl4h2o2+I3JElA kMSbpWgUqLgl6bY8pZCQ+FeYXjgq7PPcx2pm9kzopy1/GV048sKjEUeTZ7Qk7makfMSf th4kPb3Hyo2PCAdqNbYDxNXyV2CjIlzx9V2Ur4fVDf+Oh+SBZvvECM0cYjLJoke4Me6w kSWX9+55z29E3wMQ+l4mfmUZNGcv4PK3TUwL6BcbznS6Atr9IkDOFtcAuuwvxaTKtAd9 Pw== Received: from phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta02.appoci.oracle.com [147.154.114.232]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3n3m0tw27g-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 20 Jan 2023 16:29:18 +0000 Received: from pps.filterd (phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (8.17.1.5/8.17.1.5) with ESMTP id 30KFCTaE000901; Fri, 20 Jan 2023 16:29:17 GMT Received: from nam12-dm6-obe.outbound.protection.outlook.com (mail-dm6nam12lp2169.outbound.protection.outlook.com [104.47.59.169]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 3n74d2sxch-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 20 Jan 2023 16:29:17 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=J9JHwiYrW4XFeMbIkSFDoM4BkvWi/rpn6QKzSAxxbk7Rs+p9AdBrIL5hxqLof4Ekg13cbggjzGU6UxpGLgj9fo7hq5haLkGPrtbvBDsY/uwtkGe/aH1J9yEcAu9IKctyQDigBQooGyX5hvE8vLCQiwpTZ48EReEy3td2vWNNcg9fxsdsbCBLDsEJzWWHbDiBV/M9l0Y0umdDF6KQufcgh0mAn2K0uX98ejVDLWXOYt4GoEpTyX56AIlzV2MCOjwNgU07TjWV5eRhLhPBLpCdG74BjHL+uT0rw6/VGOV9BvsrdVvStB+U5Vz+Y9RuASWrBFOWXjemraKxgs9gzI9Epw== 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=57GulC22IzZN7y5jzLF7uN7yeYdZzkWQzGDDgEf53d4=; b=eqiq7IBD2fwBbeJPWlGUW0bUepFkSFALnDZUsf0CeGxJ235DGpMkzfaiSTSLalEXKjGOqUVRGd2CBWlq1J+sOHnVAYsNTdUj3UWwWER1/Iuz3Rxwkfga+YN4zak/0mkiHAOXR0H0jmzUT/rM7rglwCI90v3ogW8HOB739+TJMWy/gAXiZJJ6dwI5rU8QqBN92lSStQPgPc6TEBfM6surN120fC24V4Qu1QSwaFEe8ZAdbL/WOBkUxkJcxPha7WJ/1ZzEkvGkq+b069tL888NwlT0slL20Y97FWLrTgsfELrxQHMSLDhMrOrG4SD9e9et7RcBfkroJYqrK5fdUvAWSA== 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=57GulC22IzZN7y5jzLF7uN7yeYdZzkWQzGDDgEf53d4=; b=fyLwjq9Qf2gm7gyIurcb1gBVWQl+rNXZIT7cl/rhaKQcbKl3HVr2qLGGlJ4tHsBDi6XyvDZ6J5gqjiFp/2wI7UyhOpuA+35kw3d0whHD+vkJ12JrO5jgHbJEq4ifBaB4+BiBwWrjFynbT7oGD0ujjOM5M+pVG2mMRR0xMOl1iSc= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by SJ0PR10MB6400.namprd10.prod.outlook.com (2603:10b6:a03:44c::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6002.11; Fri, 20 Jan 2023 16:29:15 +0000 Received: from SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::7306:828b:8091:9674]) by SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::7306:828b:8091:9674%5]) with mapi id 15.20.6043.005; Fri, 20 Jan 2023 16:29:15 +0000 From: "Liam R. Howlett" To: linux-mm@kvack.org, linux-kernel@vger.kernel.org, Andrew Morton , maple-tree@lists.infradead.org Cc: "Liam R. Howlett" , "Liam R . Howlett" Subject: [PATCH v4 48/49] mm/mmap: Remove __vma_adjust() Date: Fri, 20 Jan 2023 11:26:49 -0500 Message-Id: <20230120162650.984577-49-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.35.1 In-Reply-To: <20230120162650.984577-1-Liam.Howlett@oracle.com> References: <20230120162650.984577-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YT4P288CA0056.CANP288.PROD.OUTLOOK.COM (2603:10b6:b01:d2::13) To SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SN6PR10MB3022:EE_|SJ0PR10MB6400:EE_ X-MS-Office365-Filtering-Correlation-Id: b672da2e-be34-422d-1cd5-08dafb037874 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: GjW/QVkF1E6nngSblFOpvWdX5o307qtfwWi2xvObxp+8UbHZJbzQV0HqfUUCtfJEiDWPtHUXEWdCPjgqXYVa88NXs25iraxEFxbqgwO4jsTlvw6vKbR/Me2NE6hBEHg1RNgj5DVknnKAoRx588b4BYjXtgzNzoLneh3SbZG2R4K5V8rDi2mFa7zlijBpG/KdxXA6vaWulRC1Mz2DPBanhdEUoP4K+HRStL2gxABf1Htn9HIY71H5rlFq7Doousjojbxq2ukuV8k3BW+iUXdF0Wg7WinQMfwV0qz99y1lqjNvGJ6Y0WrWRUke1GzIc4RjjNj6G/tufzWdZNhyiHSYuVXRMffOR1CeFz3xrDP1wHf+5q/kmI+amptamlK6XlR0qXSgrF1Syb3V7lJwhjnsFmZujEBin1WMnFpE6IIHEgpBmrwQhvH2CY0rU3yi/WxBho/M9EzH8CKhm8CcU9FRB/HFYDCop5eWuFGg2dcmcgbiK0PjHAjgWxnS0fXyUNUTk2aRVjoBbcOxjtel4UduQhZZCyjeef6wpLyGnC8qQ64EPPsputKrYCFezQUK9A6ur6A+CalNBrBk2aJxVriPoltvJ6lx2e/t2tNmhqHQ3L15nUTD6JHSLeq22iOhago5jzOlDTx4qMJ48BBdGIorbg== 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)(366004)(376002)(39860400002)(136003)(396003)(451199015)(316002)(54906003)(83380400001)(2616005)(1076003)(2906002)(66476007)(26005)(6512007)(186003)(30864003)(6666004)(107886003)(4326008)(8676002)(66556008)(86362001)(6506007)(36756003)(66946007)(8936002)(6486002)(38100700002)(478600001)(5660300002)(41300700001);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?92wnSEbjA8RJ1ej19Sm8z8oGh9J/JLN3c503WTwe3FJnsPbDp9J1Bl2JNrK0?= =?us-ascii?Q?h9ZGSu8rSYj5606cU9FaeXSWpe2tMhlsmBoZXpWHasdzYfAEfI+UAI/h/Ppw?= =?us-ascii?Q?nSZdiRU6XpyqaDcOu2UJavYnhOot1C53ZV3j6EyEzHRGPol9B/ktMUu+vmDe?= =?us-ascii?Q?1Wt4c8p1l9nVUngpKAW925nSjFD5O+mvo6SrBPAj7ZCgn6/u/1EqqrPZxg51?= =?us-ascii?Q?whpHOR3LIkxCyKTeIBjhJQgYF2nX32OrK9SkRsBZBLpHVsMm1YwXmM7A1do6?= =?us-ascii?Q?0JfMy++vRT8MJFlazSiNvs21bcwGcRp8JBfh9FvNQjytq3KNj2skeFvguoDV?= =?us-ascii?Q?GX1Efd6tCUtJ3E9CkJdQm87sHRXMagciRSIzb9qeb5PtqJj3EabStf5gX5lk?= =?us-ascii?Q?I1IcKBG0X+E8zq8zXuSUtpD9fz7bxVwzGf/H5m/phN6NdFbbaDI7Zo/aGyjV?= =?us-ascii?Q?RQ58NwLc1xIVtoDio8HVAFQxDE6xSjbKiiltA5/XuhHgHZwCzmPcs6zEu7/x?= =?us-ascii?Q?EUjHqHYMRyMeCPGOr1zDfxrvS7H2+IkY2EZLbLNvo/SGxytNK53u88rR6Ysg?= =?us-ascii?Q?InhQK8MkZzR/7EB6qZY0qqCxGV8XUyRwutmE5D04Uk9RQshIqCF73qOFhjre?= =?us-ascii?Q?pDMAlNE0LYpEbAB1lzqwk0ymmyEMFS55B7sgCfDma9ysj2pN6hsE7d0M2U1A?= =?us-ascii?Q?7A4MT+bVhM60AYhgip2HVF9/qCrCfUCyV9qgJNUSifzDB0eSiEahvg+SSVRC?= =?us-ascii?Q?NSr8aZQ9xYuv2CUODIxZ9H8vyQx+AFP3tWzcuykIhE9m/oQTaC57dEx2uNnq?= =?us-ascii?Q?WSL+bbSNB87X4ALDf0oujBsWbiEHgAFtYR8sIlhdgDR9vYsQly3C+vLKjepH?= =?us-ascii?Q?SgNFRybLv+wX3sIZ6qpLHel9EN7kwVdQ8ZvEACEhqdko0kkYvKtWLh0eTD0v?= =?us-ascii?Q?ZN+aDC9ZORJ2TQgrYcmDNfLf6QuY2ZgOhuoQWZUvvpw3iUaxVyC2En06Ul+M?= =?us-ascii?Q?DFk9a5n34SpmAgRdLoxBi/g8CF18rPe6AibxGVMAyowUN7tRIU+gpVEhQ+9w?= =?us-ascii?Q?ywi5ZGdM5K9krqYJdYe7XAbZHUiaYzLPAGmurKpHkH28RqIoW6jLTjpqWBUt?= =?us-ascii?Q?M449SGhklfYOdju84ZbcNB7JcNUvLuLY6f2DDjjGavvWnozc1VJd8+URKGdW?= =?us-ascii?Q?lDbqmIvPIdT3q8kdyZ5nwAPe4eRUAOMUiMDWHrFKVZ8zQJUqzQ+dec9/xCJp?= =?us-ascii?Q?/7eZfATIzmWJUmDpdu2P9Zcw1pLKMrqmcpw2RNDWzCLRGgUPDbmcmulPIAVr?= =?us-ascii?Q?qOWW/LC1vs4vdF5Ju9qhUWIFs1REc3J5y3pJLkO/gSky2sNSxpo3fYaEj5LA?= =?us-ascii?Q?bF/fdQWygevz7u4ycfYumeoHQ7mb478zqZMjUOVEG67Pia468GrSAbl93fRb?= =?us-ascii?Q?MwyOFkIZek54A0tP8zPMaHISnsXYl1aZUZBECxlqaCGkH79Ppq4gt/jKqYhH?= =?us-ascii?Q?szwsWrHXI6FStFAuB51LwmfLESemF9wgN9yjOFFgaVA8Y21H3DUtjjhxzkrq?= =?us-ascii?Q?GgmMBZKeRvLVD6QOvBgh5Ke5BcKaUwawhyjx9HZY8s0p6H9fNfwzgYj5gb+1?= =?us-ascii?Q?zw=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: OLX1NakJTPEHsTbvwiE6NicwYYLxVPpA9ds5YgMwG365MqPbDSpDXx1q4EUo+ED0xXGTuuyJuAF6BdRXMRsox8/YtMkrHmS9f5v99HRxozN4GgYI4AVgJZ/qpDqJ0X8q0Gye2rCl9TaciA1Nxk/msn/nzgN/NritySxSsZ8qXyG6QXpsD3cIcuJQe0NL4IIeH3RApxIuIASgytqVohqdrF+WlIwFML3oGZPXmK1+2P/k+w6lu4pHhubtCkSCO1Q9Flz0ou4EZTUsqmYE0jtjbnOf+FFHzLpkLTZOA8tfS2syXqYlYRzHr8C8/JOVT9z6dePwO3oRHKAT55zTtzaXeRb4jsYGsTCQuQQ6EM3w3ZA25tasXCXgzNIHZE7gBEao3+cJl0KxcxKp5xrxCNTSkEfnHT7KwCZoyagtBcGkQOt5rU02ZCqXFwh8dEJ7FTnEfwLv7ia85Yn8d7LY93cCa/yAnbNPf39Ot23zJg3XGePWyvrrr9/iaLeyoi6lgIGQA9xCpe0E4MH0XkAMvP+XDsI7i0mjSGOUC8eDWPlhL36K5KXT6R4x+s98UErz0/rbRP1OfiDTlSx9jpI3VhBCJVDyUwysRzh/eBtjs0S5vGY574ZbHoaliQulNGV1ODKWz6mGP46d/gwxKs15BfiJyBin2k+IKyYrwIUtKWKQfGwwYIs7pMrZB5VlVOtQ7txIPUfYwOsDLMB8oKvtgh3jjY44oytoKQf6je/bBq2sNaBtWx9TBB7Y59urgQycOK0PfpA45XHpd8tkjKyPUiKsPRR48ymIBLsv6m3i72AbOfFhS2wMmfuYIYj6Ornaj0SArFXiYuiGStdyj1MBiBzvB+E6MkDIQvBLPG0hRvAiYSDoNZin4GhTKg02Q73eqLmihmrJGLeZMuCibRkbYJRVCg== X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: b672da2e-be34-422d-1cd5-08dafb037874 X-MS-Exchange-CrossTenant-AuthSource: SN6PR10MB3022.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Jan 2023 16:29:15.3351 (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: 1eZWSCysSR/PN5jW8hCm4NjHZn0M+gKT1Muo8RbmBZesrdUNYra87g8w0EAn017HhUx9Ghr9U8+iyLX43kKJjg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR10MB6400 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.219,Aquarius:18.0.930,Hydra:6.0.562,FMLib:17.11.122.1 definitions=2023-01-20_09,2023-01-20_01,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxscore=0 phishscore=0 spamscore=0 mlxlogscore=999 bulkscore=0 malwarescore=0 adultscore=0 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2212070000 definitions=main-2301200157 X-Proofpoint-GUID: STFUqhp5J4XmYNJhzx19pFnCpw1_aPHR X-Proofpoint-ORIG-GUID: STFUqhp5J4XmYNJhzx19pFnCpw1_aPHR Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" From: "Liam R. Howlett" Inline the work of __vma_adjust() into vma_merge(). This reduces code size and has the added benefits of the comments for the cases being located with the code. Change the comments referencing vma_adjust() accordingly. Signed-off-by: Liam R. Howlett Reviewed-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 1a3904e0179c..59887c69d54c 100644 --- a/kernel/events/uprobes.c +++ b/kernel/events/uprobes.c @@ -1351,7 +1351,7 @@ static int delayed_ref_ctr_inc(struct vm_area_struct = *vma) } =20 /* - * Called from mmap_region/vma_adjust with mm->mmap_lock acquired. + * Called from mmap_region/vma_merge with mm->mmap_lock acquired. * * Currently we ignore all errors and always return 0, the callers * can't handle the failure anyway. diff --git a/mm/filemap.c b/mm/filemap.c index c915ded191f0..992554c18f1f 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 5aa048e9ff30..e227b7cd71aa 100644 --- a/mm/mmap.c +++ b/mm/mmap.c @@ -743,133 +743,6 @@ int vma_shrink(struct vma_iterator *vmi, struct vm_ar= ea_struct *vma, return 0; } =20 -/* - * We cannot adjust vm_start, vm_end, vm_pgoff fields of a vma that - * is already present in an i_mmap tree without adjusting the tree. - * The following helper function should be used when such adjustments - * are necessary. The "insert" vma (if any) is to be inserted - * before we drop the necessary locks. - */ -int __vma_adjust(struct vma_iterator *vmi, struct vm_area_struct *vma, - unsigned long start, unsigned long end, pgoff_t pgoff, - struct vm_area_struct *expand) -{ - struct mm_struct *mm =3D vma->vm_mm; - struct vm_area_struct *remove2 =3D NULL; - struct vm_area_struct *remove =3D NULL; - struct vm_area_struct *next =3D find_vma(mm, vma->vm_end); - struct vm_area_struct *orig_vma =3D vma; - struct file *file =3D vma->vm_file; - bool vma_changed =3D false; - long adjust_next =3D 0; - struct vma_prepare vma_prep; - - if (next) { - int error =3D 0; - - if (end >=3D next->vm_end) { - /* - * vma expands, overlapping all the next, and - * perhaps the one after too (mprotect case 6). - * The only other cases that gets here are - * case 1, case 7 and case 8. - */ - if (next =3D=3D expand) { - /* - * The only case where we don't expand "vma" - * and we expand "next" instead is case 8. - */ - VM_WARN_ON(end !=3D next->vm_end); - /* - * we're removing "vma" and that to do so we - * swapped "vma" and "next". - */ - VM_WARN_ON(file !=3D next->vm_file); - swap(vma, next); - remove =3D next; - } else { - VM_WARN_ON(expand !=3D vma); - /* - * case 1, 6, 7, remove next. - * case 6 also removes the one beyond next - */ - remove =3D next; - if (end > next->vm_end) - remove2 =3D find_vma(mm, next->vm_end); - - VM_WARN_ON(remove2 !=3D NULL && - end !=3D remove2->vm_end); - } - - /* - * If next doesn't have anon_vma, import from vma after - * next, if the vma overlaps with it. - */ - if (remove !=3D NULL && !next->anon_vma) - error =3D dup_anon_vma(vma, remove2); - else - error =3D dup_anon_vma(vma, remove); - - } else if (end > next->vm_start) { - /* - * vma expands, overlapping part of the next: - * mprotect case 5 shifting the boundary up. - */ - adjust_next =3D (end - next->vm_start); - VM_WARN_ON(expand !=3D vma); - error =3D dup_anon_vma(vma, next); - } else if (end < vma->vm_end) { - /* - * vma shrinks, and !insert tells it's not - * split_vma inserting another: so it must be - * mprotect case 4 shifting the boundary down. - */ - adjust_next =3D -(vma->vm_end - end); - VM_WARN_ON(expand !=3D next); - error =3D dup_anon_vma(next, vma); - } - if (error) - return error; - } - - if (vma_iter_prealloc(vmi)) - return -ENOMEM; - - vma_adjust_trans_huge(orig_vma, start, end, adjust_next); - - init_multi_vma_prep(&vma_prep, vma, adjust_next ? next : NULL, remove, - remove2); - VM_WARN_ON(vma_prep.anon_vma && adjust_next && next->anon_vma && - vma_prep.anon_vma !=3D next->anon_vma); - - vma_prepare(&vma_prep); - - if (start < vma->vm_start || end > vma->vm_end) - vma_changed =3D true; - - vma->vm_start =3D start; - vma->vm_end =3D end; - vma->vm_pgoff =3D pgoff; - - if (vma_changed) - vma_iter_store(vmi, vma); - - if (adjust_next) { - next->vm_start +=3D adjust_next; - next->vm_pgoff +=3D adjust_next >> PAGE_SHIFT; - if (adjust_next < 0) { - WARN_ON_ONCE(vma_changed); - vma_iter_store(vmi, next); - } - } - - vma_complete(&vma_prep, vmi, mm); - vma_iter_free(vmi); - validate_mm(mm); - - return 0; -} - /* * If the vma has a ->close operation then the driver probably needs to re= lease * per-vma resources, so we don't attempt to merge those. @@ -996,7 +869,7 @@ can_vma_merge_after(struct vm_area_struct *vma, unsigne= d 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, unsig= ned long vm_flags, * or other rmap walkers (if working on addresses beyond the "end" * parameter) may establish ptes with the wrong permissions of NNNN * instead of the right permissions of XXXX. + * + * In the code below: + * PPPP is represented by *prev + * NNNN is represented by *mid (and possibly equal to *next) + * XXXX is represented by *next or not represented at all. + * AAAA is not represented - it will be merged or the function will return= NULL */ struct vm_area_struct *vma_merge(struct vma_iterator *vmi, struct mm_struc= t *mm, struct vm_area_struct *prev, unsigned long addr, @@ -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 =3D (end - addr) >> PAGE_SHIFT; + pgoff_t vma_pgoff; struct vm_area_struct *mid, *next, *res =3D NULL; + struct vm_area_struct *vma, *adjust, *remove, *remove2; int err =3D -1; bool merge_prev =3D false; bool merge_next =3D false; + bool vma_expanded =3D false; + struct vma_prepare vp; + unsigned long vma_end =3D end; + long adj_next =3D 0; + unsigned long vma_start =3D addr; =20 + validate_mm(mm); /* * We later require that vma->vm_flags =3D=3D vm_flags, * so this tests vma->vm_flags & VM_SPECIAL, too. @@ -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 >=3D end); =20 - /* Can we merge the predecessor? */ - if (prev && prev->vm_end =3D=3D addr && - mpol_equal(vma_policy(prev), policy) && - can_vma_merge_after(prev, vm_flags, - anon_vma, file, pgoff, - vm_userfaultfd_ctx, anon_name)) { - merge_prev =3D true; + if (prev) { + res =3D prev; + vma =3D prev; + vma_start =3D prev->vm_start; + vma_pgoff =3D prev->vm_pgoff; + /* Can we merge the predecessor? */ + if (prev->vm_end =3D=3D addr && mpol_equal(vma_policy(prev), policy) + && can_vma_merge_after(prev, vm_flags, anon_vma, file, + pgoff, vm_userfaultfd_ctx, anon_name)) { + merge_prev =3D true; + } } /* Can we merge the successor? */ if (next && end =3D=3D next->vm_start && @@ -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 =3D true; } + + remove =3D remove2 =3D adjust =3D NULL; /* Can we merge both the predecessor and the successor? */ if (merge_prev && merge_next && - is_mergeable_anon_vma(prev->anon_vma, - next->anon_vma, NULL)) { /* cases 1, 6 */ - err =3D __vma_adjust(vmi, prev, prev->vm_start, - next->vm_end, prev->vm_pgoff, prev); - res =3D prev; - } else if (merge_prev) { /* cases 2, 5, 7 */ - err =3D __vma_adjust(vmi, prev, prev->vm_start, - end, prev->vm_pgoff, prev); - res =3D prev; + is_mergeable_anon_vma(prev->anon_vma, next->anon_vma, NULL)) { + remove =3D mid; /* case 1 */ + vma_end =3D next->vm_end; + err =3D dup_anon_vma(res, remove); + if (mid !=3D next) { /* case 6 */ + remove2 =3D next; + if (!remove->anon_vma) + err =3D dup_anon_vma(res, remove2); + } + } else if (merge_prev) { + err =3D 0; /* case 2 */ + if (mid && end > mid->vm_start) { + err =3D dup_anon_vma(res, mid); + if (end =3D=3D mid->vm_end) { /* case 7 */ + remove =3D mid; + } else { /* case 5 */ + adjust =3D mid; + adj_next =3D (end - mid->vm_start); + } + } } else if (merge_next) { - if (prev && addr < prev->vm_end) /* case 4 */ - err =3D __vma_adjust(vmi, prev, prev->vm_start, - addr, prev->vm_pgoff, next); - else /* cases 3, 8 */ - err =3D __vma_adjust(vmi, mid, addr, next->vm_end, - next->vm_pgoff - pglen, next); res =3D next; + if (prev && addr < prev->vm_end) { /* case 4 */ + vma_end =3D addr; + adjust =3D mid; + adj_next =3D -(vma->vm_end - addr); + err =3D dup_anon_vma(res, adjust); + } else { + vma =3D next; /* case 3 */ + vma_start =3D addr; + vma_end =3D next->vm_end; + vma_pgoff =3D next->vm_pgoff; + err =3D 0; + if (mid !=3D next) { /* case 8 */ + remove =3D mid; + err =3D dup_anon_vma(res, remove); + } + } } =20 - /* - * Cannot merge with predecessor or successor or error in __vma_adjust? - */ + /* Cannot merge or error in anon_vma clone */ if (err) return NULL; + + if (vma_iter_prealloc(vmi)) + return NULL; + + vma_adjust_trans_huge(vma, vma_start, vma_end, adj_next); + init_multi_vma_prep(&vp, vma, adjust, remove, remove2); + VM_WARN_ON(vp.anon_vma && adjust && adjust->anon_vma && + vp.anon_vma !=3D adjust->anon_vma); + + vma_prepare(&vp); + if (vma_start < vma->vm_start || vma_end > vma->vm_end) + vma_expanded =3D true; + + vma->vm_start =3D vma_start; + vma->vm_end =3D vma_end; + vma->vm_pgoff =3D vma_pgoff; + + if (vma_expanded) + vma_iter_store(vmi, vma); + + if (adj_next) { + adjust->vm_start +=3D adj_next; + adjust->vm_pgoff +=3D adj_next >> PAGE_SHIFT; + if (adj_next < 0) { + WARN_ON(vma_expanded); + vma_iter_store(vmi, next); + } + } + + vma_complete(&vp, vmi, mm); + vma_iter_free(vmi); + validate_mm(mm); khugepaged_enter_vma(res, vm_flags); =20 if (res) diff --git a/mm/rmap.c b/mm/rmap.c index 948ca17a96ad..f6176c09fcc7 100644 --- a/mm/rmap.c +++ b/mm/rmap.c @@ -262,11 +262,12 @@ static inline void unlock_anon_vma_root(struct anon_v= ma *root) * Attach the anon_vmas from src to dst. * Returns 0 on success, -ENOMEM on failure. * - * anon_vma_clone() is called by __vma_adjust(), __split_vma(), copy_vma()= and - * anon_vma_fork(). The first three want an exact copy of src, while the l= ast - * one, anon_vma_fork(), may try to reuse an existing anon_vma to prevent - * endless growth of anon_vma. Since dst->anon_vma is set to NULL before c= all, - * we can identify this case by checking (!dst->anon_vma && src->anon_vma). + * anon_vma_clone() is called by vma_expand(), vma_merge(), __split_vma(), + * copy_vma() and anon_vma_fork(). The first four want an exact copy of sr= c, + * while the last one, anon_vma_fork(), may try to reuse an existing anon_= vma to + * prevent endless growth of anon_vma. Since dst->anon_vma is set to NULL = before + * call, we can identify this case by checking (!dst->anon_vma && + * src->anon_vma). * * If (!dst->anon_vma && src->anon_vma) is true, this function tries to fi= nd * and reuse existing anon_vma which has no vmas and only one child anon_v= ma. @@ -1253,7 +1254,7 @@ void page_add_anon_rmap(struct page *page, struct vm_= area_struct *vma, __lruvec_stat_mod_folio(folio, NR_ANON_MAPPED, nr); =20 if (likely(!folio_test_ksm(folio))) { - /* address might be in next vma when migration races vma_adjust */ + /* address might be in next vma when migration races vma_merge */ if (first) __page_set_anon_rmap(folio, page, vma, address, !!(flags & RMAP_EXCLUSIVE)); @@ -2538,7 +2539,7 @@ void hugepage_add_anon_rmap(struct page *page, struct= vm_area_struct *vma, =20 BUG_ON(!folio_test_locked(folio)); BUG_ON(!anon_vma); - /* address might be in next vma when migration races vma_adjust */ + /* address might be in next vma when migration races vma_merge */ first =3D atomic_inc_and_test(&folio->_entire_mapcount); VM_BUG_ON_PAGE(!first && (flags & RMAP_EXCLUSIVE), page); VM_BUG_ON_PAGE(!first && PageAnonExclusive(page), page); --=20 2.35.1 From nobody Sun Sep 14 14:22:07 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 D209EC25B4E for ; Fri, 20 Jan 2023 16:31:30 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230356AbjATQb3 (ORCPT ); Fri, 20 Jan 2023 11:31:29 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:38676 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230326AbjATQbU (ORCPT ); Fri, 20 Jan 2023 11:31:20 -0500 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id C471571BC0 for ; Fri, 20 Jan 2023 08:30:47 -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 30KGBYmA029935; Fri, 20 Jan 2023 16:29:20 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-2022-7-12; bh=Ze9CQLzhnFHwEl5pGWEkfDnwGB29tne9wg0CTYEfFM0=; b=MTm6j9DyZOEWZ2oYsrpAEca8ui4fekkUOn83ExBf2Ga+2KDYvh8tELQ4yisc1NrM4FDl lNnobgY6E51FH8MiZpMh0DbropE2MjuvNklmsoNLu8s8hYn3N2MnOU/vQc2bSu2w+E1u +K/2uuQCIhoyoB6RRhSBZh5tasBMpikNCLhoxebEzZRWwYYtFUUDohMUrh5A/gicoP6y 6miolRmkACctopcaSxC/Y7Ao7j0f6LtO8Y59Btm3uSw9yT2K2R1JEnL2Kv5H1tWacEIj Kn209zMYqO16UrhaZlkiToWrm0Ih4DBPpprBvUHOY3oLLhZLlh05XTPz6KtLhkVipRM7 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 3n3k6cd3gx-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 20 Jan 2023 16:29:20 +0000 Received: from pps.filterd (phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (8.17.1.5/8.17.1.5) with ESMTP id 30KGDla5007833; Fri, 20 Jan 2023 16:29:19 GMT Received: from nam12-dm6-obe.outbound.protection.outlook.com (mail-dm6nam12lp2177.outbound.protection.outlook.com [104.47.59.177]) by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 3n6rgeq8w6-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 20 Jan 2023 16:29:19 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=I1rnr/9xkBvOgt+tT3hFW7uoG7WdvA02/W995Uo06+AU2pxv5Kxomjn1hw18sYlIdLOVsi3EbeuKj5p35NUiakDOa0l9jPDJXRFqCRBIdh+OHw/Rz+9DXa8mUy/cmLyRXCq59USarAg/pI3ED3H2f/sGEHBypOP4M1to3bCgjicfbo1GvvfAnozPpcZhtF8ncV69zxGZ2+7zKqTbkZ05SqAgq3yGygT7T6tKBRzFBcCVCL6MXRrkuzPYf+u0QDKyS2yrwI9PBuM1C0lk5sJd2v2oKEWoUN+VTAw4GyE3wogQMmUqS7m9xzaF16mz2bxR0sm9klYY9Qp7xVnQjWc4tg== 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=Ze9CQLzhnFHwEl5pGWEkfDnwGB29tne9wg0CTYEfFM0=; b=mIZ3yVzJet0RTaW8asAVWQDhKlz2izctXFmC3ZiU3BRn80SlQFR1VrS9yjwo/aK6AB4+EVSlnY9WOhOVyZ7h6q8rNyQPJ4zbyA1ib0bPSqAbo+nmPt9kI8aM2CkjJWulUv0Ut+CbYW4tnaTHbjsyfa/4+TtVB2t4b6SS88arT1Hpx/9AVV08GG6t1HrOXgnpnzWGEW33NkfgQuNwNkGIl9bER5C1Uo960NNNCOVs2ySbD3FzyfPuLYcLX1fG8DCai0IKiXdDB5s/6WVWnNlbXcLG8F5UW4MPiu1pdijE4DPVAVzcDxoVOXJSqEvSNeWVAqrNBB6kDODfp30aszVyPQ== 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=Ze9CQLzhnFHwEl5pGWEkfDnwGB29tne9wg0CTYEfFM0=; b=INxhmvNFHurbvhln+XNo+rRkOoo1Vepn3PCRSJGCaECnabS7O5jiPmmNFvlPgOdv9mrq3r0ab0W80OZ9jTBU9tlBPIRZw2CAx4I8Lfet+5DvkS8D1Zc8Ca0c3gpeOD3ETkBZqDYvBkgJHB3hBe9BBaupd128FS0ThMP4cfQt9+Q= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by SJ0PR10MB6400.namprd10.prod.outlook.com (2603:10b6:a03:44c::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6002.11; Fri, 20 Jan 2023 16:29:17 +0000 Received: from SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::7306:828b:8091:9674]) by SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::7306:828b:8091:9674%5]) with mapi id 15.20.6043.005; Fri, 20 Jan 2023 16:29:17 +0000 From: "Liam R. Howlett" To: linux-mm@kvack.org, linux-kernel@vger.kernel.org, Andrew Morton , maple-tree@lists.infradead.org Cc: "Liam R. Howlett" , "Liam R . Howlett" Subject: [PATCH v4 49/49] vma_merge: Set vma iterator to correct position. Date: Fri, 20 Jan 2023 11:26:50 -0500 Message-Id: <20230120162650.984577-50-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.35.1 In-Reply-To: <20230120162650.984577-1-Liam.Howlett@oracle.com> References: <20230120162650.984577-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YT4PR01CA0224.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:eb::9) To SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SN6PR10MB3022:EE_|SJ0PR10MB6400:EE_ X-MS-Office365-Filtering-Correlation-Id: ab3ceda6-1cd6-4e8a-19be-08dafb0379dc X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: cn+ZwIsON3aiKZR1CyqtWbeypLmVPXHVwxENMK0Zwwk8bgz+S9s+roG1hjj+xi3uFUJwmK5e6yWhyZtAr6EfDsZ5hmD+a+VqWOfmNAyrMTR19S4JF2CRhtUbj6072jyHkCOGMMuoniA/swYDQXVl8hWJ97IAR0A4DBvro+PlOrgune8vcQfw1pEL3k0GEs2gPerChG6YHYyKUHoCPClXM4wsGMTnTDPlHlRfEubWgMK3Nf7R3sV/AkgI2nI1V+gfZvU5EC88GCSmrmMaPArbWYJudhpFRlxjVTIqWyayYLvUJ5GtCvczVKQOC5pnHEFga2Yhj/65hroe24cbwbdJ1Y1ToPdblCaC1XZVJKLqlGmnT59HVbJBGnCxajH8JT/p8HSaB0aX0FtWqjhcp/JOPPFykvBICqi+V1qBhea9HOWhby0VJC07G1ttJH6FaVhRuCd8jUMH+nEuN5I/SynvaC6YiIroBHTu4GknnP/VTUBCSPwou5pWszrWk2KoLtVjzK1jHfBLJykvlqeEN5ls1nonRnk6ozXGIB5AtOziXtQsOuTjsL2FBABKKLEkZem7uP5E7A87DwkdnnzWeg36ANbcVzuvEXddR+TlPTZkZblyM+s2fRA14Fb+iZ7oWy4TcfrOcSEPKRrYp0u9FJhKcg== 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)(366004)(376002)(39860400002)(136003)(396003)(451199015)(316002)(54906003)(83380400001)(2616005)(1076003)(2906002)(66476007)(26005)(6512007)(186003)(6666004)(4744005)(107886003)(4326008)(8676002)(66556008)(86362001)(6506007)(36756003)(66946007)(8936002)(6486002)(38100700002)(478600001)(5660300002)(41300700001);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?orQhNAVVS1nMzt3SuGghMBKU0DhYkgb3QTXFkCpCTOXc2LJzKmxra/IPr5hg?= =?us-ascii?Q?BCrL1Xj0JiMWFeb7i8fUQiKoVbgC23hnC/cFCuum0s/In1FlZnQL4MJvVkaB?= =?us-ascii?Q?lLxcGOqT/kgVE2JshcWjHy2ioHF1ecA98AdHh0GehygYM7i8CAv4cm2kek3I?= =?us-ascii?Q?R8G5sgA0rem9dS7lgDlM0IQfCD7tyaytKeaahmiGL+JO6OGg5uWhynkQU0jI?= =?us-ascii?Q?PuKaGhqZ+bV8oe3XoCy21eM2tWQmSQPaJDfOQv4WtbJN0TOazfTLPKqAgmIx?= =?us-ascii?Q?rMMNtWzZYdckT5RJ0L9RdxJTUha2cOtt8ReaAvw1MXJwdc1zqZXZ5/c4h8km?= =?us-ascii?Q?jeHCWKW+K7jF0u/fDQ7flxHlWr0RKHYPiZCHTIA+2DPPVMIqtz/GocYKTDYN?= =?us-ascii?Q?exVm5LExddLzXhxPxt5M5h67C5bTVikeuRtS3XtV2Hpf5bB/gwMGOjehfw+J?= =?us-ascii?Q?9Yav9cKaNN6C7TGWjet/ViN2hjEItgqIJtyLkRdt+xGYCaDIS2G91VS6dKbJ?= =?us-ascii?Q?cCDPAPdLZbb+LkmPjkasCWMJa5yGQR3k84e37r5xbWtlk55yDz+q1jG9hpll?= =?us-ascii?Q?vUUlYHEAJCVhhXGgSljiPe66QGSjlUJ6zsiimZDVeOmzKIJlMlPTsp4O88Ep?= =?us-ascii?Q?WktTNP54YsQv+g/XfFGdUaLclVGjxFEJ0rLHnqNr4jcv859zyfl5spHB0hPZ?= =?us-ascii?Q?0yJB5y2rS9pjB0UlyhAUtly22zrne+A2YIAZPQ4diwMOxqYFXECNj1Kg2w/t?= =?us-ascii?Q?+z+9p6s5JWUXLzQUW1X5H17vFdiWBznnXbyNh4kkimkJOczsMmoOC4Haei0Y?= =?us-ascii?Q?g7i43lxyr6CCFzFGPSvN811ndHUtzbgUncRn43LbmLNeRbPFKgQ/+1TMpbOb?= =?us-ascii?Q?tQAHCAthHagKQ/8j0ML0/AWyrzXeAdJpWS6nnYVLl6rJhaHUVMRUAS9JW51w?= =?us-ascii?Q?T/7dg1Em4pMrsuPqJ7wcOphjUym6xNcPHseQeCdhbAyq2OtaBMmXEhpUr4JN?= =?us-ascii?Q?10+Xnazk9oiDwadc25GgqSxoYIhCOurIq7mVBnwrDc6ryCyEIisERsWLAxvy?= =?us-ascii?Q?8eap0LzRgO6Pe77MKN4nlR1m02PHBpCdk1Rh25FLpL2rktEfu4ppcQjgXic8?= =?us-ascii?Q?fZiOHQPqFLIHQltDvcfRaPLToEJ+TnEqUozRufEKg9KUg28yBqJYB2cE651p?= =?us-ascii?Q?KISblSYItsMAQx/fKb4L5iNpcl/32gxWn31RmtnMnPwlbQGrNYKVZunEvbQ0?= =?us-ascii?Q?BvAViFTxHNDGehmzji/mISG/BnE4J/3dj1HLP5Mo9NDqqpdcqgMrzuVVMkfm?= =?us-ascii?Q?Q6NK1K8JOJ2leMjm5KgDrNNCwl+i8OF3AvGuid95dHYS3TnbuIXCXECoulck?= =?us-ascii?Q?aAGVZGMNjuLeQuBuPghKBFkdcFkgOh5Lu4M3I31F/B/XFTjDRQ6Py8YCeJNb?= =?us-ascii?Q?dtF+ZRbNEnlMkHogX1Tz8NHRKixYMcvdQgTywFtLhPeG2HiBTKIImvSjKq7a?= =?us-ascii?Q?RSyhlKutu9X0D4LXqoYNQhxsWA5sFIZl8qpCNuv8ElRuqta51aHE5lABqQxY?= =?us-ascii?Q?uB5bjKeardFEiGPEgdC1OtmOGDkJIDSsGrT1Gzk1i+O7naw2Cd7pLyaGIqlN?= =?us-ascii?Q?xw=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: dcXH4c+/IICVisbowmZOON32KoRH398HTyPzlfzT+Z0R+iR2fXr90Ea13tYTSio36UIKQu4frNAykdGeFhi4p6bJBAh8eeIsyd1w29wTZUhDvh2UD5pcdgJ1nGEkrJs4zPVtTW9/llJrJFjoa/wg2tOBbI5bIWBIUP2CvUioa+qlkYbJN1SIiWl1pHvB1NQAfvRns7u3tldfSz+/Wd0wHVEzM6zZYUPc73itjNo7N+i14JNzptnLrVtIlQ3Whd03NjjYSNs3ufGY07LBJE0iNFvVVNWL+hXHAnIeqCxTT82/4HC0A9BTLoHF6rHZ9KH4QUni6SK3NMiR3FT+XJef2GMB0zCHccRKyyOBvDTEFv86iWMX2xej6lCe+Ph0s3QqbjsfJKYevZbJm0o/0IUk8D1IJM5kF4QvXJMwPypX/7jjzXapO3dnB+qKc+wQVG4opBV0AGLxw1+HA1D1032nbQhRA+o3KNVy6NmkrLTayZGLq+5+b72yQsuOU008jjw8EVymJ6y8slP2ffgXdPPmF0aYo7v6KHHrFnNPdUa0vM9D1XfNmqZXhp41X8Jezld5+vQc4qWtbuAc7N6TEkH55CYnQA2faQxG0Z3NOnFWtErdwu3byZaLkAHDZXTdswCiKKRaKE8NmDeQS90qoJ8xi9+uvULgWpoJHNVatU2EsvwtM76Hht+DPWuk4Z9QX8t7TdhveH9i3KRw2O0zEQZtV/OBMVeQuQZqqCOr6EwVRcB2IeUdirwjzKo5LLl+HygkK6epFfDpdP6o1kkhu0VciQXFoS07lZK2RHV/ejW3abp7xlYesE3XN7bsqIGI4LNvkJqIArYAptms4/4QJk39LQyqZsrzXhz7zD6LT6ITlzntvHbjDskNUnV69LZVLjCvDy/aRVQ/hljI7i2dhyYcPA== X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: ab3ceda6-1cd6-4e8a-19be-08dafb0379dc X-MS-Exchange-CrossTenant-AuthSource: SN6PR10MB3022.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Jan 2023 16:29:17.5069 (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: Xld3xeomdYDL/3Kz5QLK1oiHT7gRi5dcC1nWyGmGWxujfx2syGufRKHSas6aIan6R4QRE/uBA3FxE17kphPAoA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR10MB6400 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.219,Aquarius:18.0.930,Hydra:6.0.562,FMLib:17.11.122.1 definitions=2023-01-20_09,2023-01-20_01,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 suspectscore=0 phishscore=0 mlxscore=0 malwarescore=0 spamscore=0 bulkscore=0 adultscore=0 mlxlogscore=999 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2212070000 definitions=main-2301200157 X-Proofpoint-GUID: yGMlBKwueY8tw5BRPWUfn5cSzxzLenGV X-Proofpoint-ORIG-GUID: yGMlBKwueY8tw5BRPWUfn5cSzxzLenGV Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" From: "Liam R. Howlett" When merging the previous value, set the vma iterator to the previous slot. Don't use the vma iterator to get the next/prev so that it is in the correct position for a write. Signed-off-by: Liam R. Howlett --- mm/mmap.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/mm/mmap.c b/mm/mmap.c index e227b7cd71aa..920b0c56ab7c 100644 --- a/mm/mmap.c +++ b/mm/mmap.c @@ -935,6 +935,7 @@ struct vm_area_struct *vma_merge(struct vma_iterator *v= mi, struct mm_struct *mm, && can_vma_merge_after(prev, vm_flags, anon_vma, file, pgoff, vm_userfaultfd_ctx, anon_name)) { merge_prev =3D true; + vma_prev(vmi); } } /* Can we merge the successor? */ @@ -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); =20 - if (res) - vma_iter_set(vmi, end); - return res; } =20 --=20 2.35.1