From mboxrd@z Thu Jan 1 00:00:00 1970 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 kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id CD934C67871 for ; Tue, 17 Jan 2023 02:34:26 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 1AFF26B0081; Mon, 16 Jan 2023 21:34:21 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 1335C6B0085; Mon, 16 Jan 2023 21:34:21 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id E799F6B0083; Mon, 16 Jan 2023 21:34:20 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0015.hostedemail.com [216.40.44.15]) by kanga.kvack.org (Postfix) with ESMTP id CA79C6B0081 for ; Mon, 16 Jan 2023 21:34:20 -0500 (EST) Received: from smtpin06.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay02.hostedemail.com (Postfix) with ESMTP id 77C6112088D for ; Tue, 17 Jan 2023 02:34:20 +0000 (UTC) X-FDA: 80362721880.06.FDAC87F Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) by imf15.hostedemail.com (Postfix) with ESMTP id 1D125A0004 for ; Tue, 17 Jan 2023 02:34:16 +0000 (UTC) Authentication-Results: imf15.hostedemail.com; dkim=pass header.d=oracle.com header.s=corp-2022-7-12 header.b=fYyNK8OF; dkim=pass header.d=oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=hWQgOZi5; arc=pass ("microsoft.com:s=arcselector9901:i=1"); spf=pass (imf15.hostedemail.com: domain of liam.howlett@oracle.com designates 205.220.177.32 as permitted sender) smtp.mailfrom=liam.howlett@oracle.com; dmarc=pass (policy=none) header.from=oracle.com ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1673922857; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=achDkf1FEZpqOQkM+iZMPfX2tkpkKZnH7dkp0tHtHbs=; b=oe2/TBRiU9k0LiEOggEU/wE074PoVC1IntyhybDodJ5V58upvav/zMlsPzaiiaXgbJ2fDx jQy3dER1+Rp29yeahfOkX+qPIOqZdyik64qT12ABni6f5zFfM8KzMJkYjsXaOgiUJl0Qaf NqB20CG/YzD0PWxsZuPjdt8+W3jsQ6o= ARC-Authentication-Results: i=2; imf15.hostedemail.com; dkim=pass header.d=oracle.com header.s=corp-2022-7-12 header.b=fYyNK8OF; dkim=pass header.d=oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=hWQgOZi5; arc=pass ("microsoft.com:s=arcselector9901:i=1"); spf=pass (imf15.hostedemail.com: domain of liam.howlett@oracle.com designates 205.220.177.32 as permitted sender) smtp.mailfrom=liam.howlett@oracle.com; dmarc=pass (policy=none) header.from=oracle.com ARC-Seal: i=2; s=arc-20220608; d=hostedemail.com; t=1673922857; a=rsa-sha256; cv=pass; b=ESQSQaSHkvPyLbeEE2aHsypPZ6SYBaTFW2hz9RXUBXDtlOezuRWHnNe27U+iCMjGbVznIS CRAYNlPdkFQioqdLWGD9Yua5GCmRvXT71pB/lECzD8dnJPQ2bjPzOQ2c6HdhSPWCzPa7P/ zInnZleCc7meubGIKN3OyUId4b/yAj0= Received: from pps.filterd (m0246632.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 30H092ro007573; Tue, 17 Jan 2023 02:34:16 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : references : in-reply-to : content-type : content-transfer-encoding : mime-version; s=corp-2022-7-12; bh=achDkf1FEZpqOQkM+iZMPfX2tkpkKZnH7dkp0tHtHbs=; b=fYyNK8OFUyixmDD+zHGYNWLebr9vapQANnv6GauFVRacF+a5sAS98vJaJGh32z78zLCq 2V8DD7xHrvQ4nLXopzIXiFdKm8wyZHL9jCggo9UnBUctyr3/GoZDvB4mcpsiTJQ+GDo8 J528YoZlrzRInYputjQlSVUPwS7L9itlwDjThRmeKxRC8MFH9J6F9nIN7GU+2fsDs3MK uv8gRvLNlYzmasLVRFKPmLMDg9aPiuJ2MEmH1hhaYeVMOEx1w+cggneWR0m9YuhFHHh6 6X5ln1Xdzc5tOpNrqh2fCeAazi8b2TsYwbVGA9RO+9FNjqFhmLNrJ3LIFEZY81jFWHMW Sg== Received: from iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta03.appoci.oracle.com [130.35.103.27]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3n3m0tkp01-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 17 Jan 2023 02:34:16 +0000 Received: from pps.filterd (iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (8.17.1.5/8.17.1.5) with ESMTP id 30GMM4re028480; Tue, 17 Jan 2023 02:34:15 GMT Received: from nam11-co1-obe.outbound.protection.outlook.com (mail-co1nam11lp2175.outbound.protection.outlook.com [104.47.56.175]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 3n4s2rfxkx-8 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 17 Jan 2023 02:34:15 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=kTyrhP5HTJ9/c44bAAsu3q9xOeM7LQWa+ixL0lH6LItCZuedVXnWd0tRicw4oM8+1eYauUmdSZKYz4eG8WLuzCbVDZUuk//MvTHMkltdZJfzGE+fyT+UpZqe1fa33w6SfvfKKXh0sbmwOc6LTQv1mGueBXbM5zgjHwjJuCtb736zZ/e7T08uyJkzjlYrUYMUX4l8NZ9ZRGZcnnVUYuoaP4wC/VshZo0wlhO+6EyCtEzFDW+KSIKz+jret7eJtzBaGnsPsUivmxH9ipjYOqPsOxED3XGNxi9V/+03gGPx4s0XlXJOzJ+KksNqJtVYoFjGbcnCP1tm40QjrhCbK6W9jQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=achDkf1FEZpqOQkM+iZMPfX2tkpkKZnH7dkp0tHtHbs=; b=KkhMtGV4IxyxJg8TKcgeWD1IAF0x3p3ZacpLBM3gddn5Wp/z/YZGZx8EVjL1tPG8mA+xng4P2dIK+w+dBDLpScbM2AskYM5pv/NSg9wNCV2FofY9eOF6vOosImD+rOf1pdzWQTIBryPnPwahiZv+xx+ZpuPKpbJugXuK/pA/OSPv/5wZ8Q32lSSX/Qn0kWoAmkSTPfsLv8UTwUmfXDU69e/M5gukZL4cCYIOS+O9O3+ogda3xxAWEplfAyu5Km3Ecpdlj3UN9gsYuZOq+v1Qi1BQB9YQE+4FTPQRhQmTGWw1+kqFumfet+JIBFBvLsM2yNtYCjqVkmCCzlqFQ5F3FA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com; dkim=pass header.d=oracle.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=achDkf1FEZpqOQkM+iZMPfX2tkpkKZnH7dkp0tHtHbs=; b=hWQgOZi5UcOFAC9vyA6offyRXGEqqpwKYSHXA9ftpY7tpubOINjAYxWTJ/oELcVniTah8FHTh+GtThT9KY3NY5VgLF8AtVYHvdtvep1wIMjczXdkiDlVzphQuhKlmPB/RqgsvGZQk5nRVOD2ZUnSyzdvrNQSDd4NqeDtbrFmv88= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by CH0PR10MB5356.namprd10.prod.outlook.com (2603:10b6:610:c3::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6002.12; Tue, 17 Jan 2023 02:34:13 +0000 Received: from SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::a02:2ac8:ee3e:682]) by SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::a02:2ac8:ee3e:682%4]) with mapi id 15.20.6002.012; Tue, 17 Jan 2023 02:34:13 +0000 From: Liam Howlett To: "linux-mm@kvack.org" , "linux-kernel@vger.kernel.org" , Andrew Morton , "maple-tree@lists.infradead.org" CC: Liam Howlett , Liam Howlett Subject: [PATCH v3 08/48] mm/mmap: convert brk to use vma iterator Thread-Topic: [PATCH v3 08/48] mm/mmap: convert brk to use vma iterator Thread-Index: AQHZKhwvS+P7uMU/SUqGMBeDCDB8nQ== Date: Tue, 17 Jan 2023 02:34:12 +0000 Message-ID: <20230117023335.1690727-9-Liam.Howlett@oracle.com> References: <20230117023335.1690727-1-Liam.Howlett@oracle.com> In-Reply-To: <20230117023335.1690727-1-Liam.Howlett@oracle.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-mailer: git-send-email 2.35.1 x-ms-publictraffictype: Email x-ms-traffictypediagnostic: SN6PR10MB3022:EE_|CH0PR10MB5356:EE_ x-ms-office365-filtering-correlation-id: 519c5fe3-cbd2-456c-b0db-08daf8335238 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: b/7wBQWO2fyc4PZNA66ExANWahSqEDDI2nK27oc2CeY7kMCvb7WkEVpXinGQWVm7P8c8KxnyLpf+EoHMNcbqbd5/UiEy2c0cJoA3zjvxyZCP245gMzIJdg1lf1nbNcm4KNeeq4u/MbOIMtnQaD7Xd3gmMaRTFPn16Jc9X7Ht8emfc3CSHWd8tFfzNhOkRJu+9FZRKkofIWvAzxSXsmtRyCT9zH/WquEATorJe3OGzeYY7Zb/LsNI1n/oejpbE1j5rD4lfAfyt0Uq/dM02hio4qhIPG5RLeorexvwobKLmustMMSArb3FkP+oQ/7uEwFFlafTpiGm+LifhEGSAhnO3IEHZEaMt9MWjvTfIXtoh/zEQ94jcpTCzUYvrvYvL7ZfUknIsKX6WlXg3CjhkSL0/B20XApC0QrOzkCdb4GK2vaO3P1ciDPqlMSz3+tkxmI7SUvc4/mn4K1NG3Nhr+B3abTPUFXlVpcyVp9KRgTR781vs3A+SRpeSQw7IA0bDcVUWtBf9TLEBLqZryJ4lwIFLbRJeU2TjKu6hhErfQOXNuSJC9AXosqaxAEA8MHuUe6aTmqQyNdc/4mXvRUPJQg91w3U4PU2YZZfc96PGdsfwLzyLp/AecSnIPCtSbfnPlx5LoydvKCVnBG7XAQDqnFJY4boPLCuEKuFHyJgfdEnDrV7w8E5OioIjETXGEGbvq2b8xwXzm/dezr+2pxiQLWr2Q== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SN6PR10MB3022.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230022)(396003)(366004)(376002)(346002)(39860400002)(136003)(451199015)(36756003)(38070700005)(5660300002)(8676002)(44832011)(8936002)(4326008)(76116006)(66946007)(64756008)(66556008)(66476007)(66446008)(2906002)(83380400001)(38100700002)(122000001)(478600001)(54906003)(71200400001)(316002)(107886003)(110136005)(6486002)(86362001)(1076003)(41300700001)(91956017)(2616005)(6512007)(186003)(26005)(6506007);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?Q?Pf0YPBi29Cg+v3KVTxx1IpZChnKNZXfB4dQlNsq123Chbiw+uvi2sTvSIR?= =?iso-8859-1?Q?RpsGeIRF7/WnoJTz6swf7q1vf0QdDOD/GiV1pXMMOsf6Je4DUpbiclfjk2?= =?iso-8859-1?Q?5Ouxy6sMGykxx+KOCrDB62fRpua6tj1/eQ0EifnNVPKSKXC0Q/HDAoiOJB?= =?iso-8859-1?Q?w36U/svjyGSPfpNaN/p0Z+CfuipY+zBVS1uTPO21/BNM51TeshOHr6QERs?= =?iso-8859-1?Q?7/bFViFL4n0v2rKu37C7vsMGDjTTmwFwqeh81me0NOPVlsNH44p0NXtsh+?= =?iso-8859-1?Q?ZsB0MjnnhzC1TKe1K5Nrl2pFAdUWsNBzAZgN0bOzIvQ5j10BrxbmABMidt?= =?iso-8859-1?Q?29cTMPUxjLMSUHW8kJTv8bHb57C/fA3CNFgFhI4EwPdmfFlBc78YR3VhO8?= =?iso-8859-1?Q?gzHgKensG2xJKOgKhl+eXI7j/Q92laxR0GUzBwOB9WoQZb0v52kB5oN+fh?= =?iso-8859-1?Q?jnlRgecuX4OrXRBmb9Lb7vE40rhwSmm6fd89VbzM9YGL5ebz7r9xtZcW1B?= =?iso-8859-1?Q?8CpMfkLC+Y5Lle4f2HZ8kWj6iqvDBu22M7+Zz6AgJmowIFr34smOXiQc70?= =?iso-8859-1?Q?2qk32M24Xj5Rquhf6zcF1ceAfqHtvLdPBnAprHJM4GjeguKFnqe/vO5feb?= =?iso-8859-1?Q?4O7m11dqAPlttF/T2orW6dkeEBeHrmWZlaZN6P06h15DPN3qT3qKNqe70p?= =?iso-8859-1?Q?FOf83oJtLiMTDyEkHPp3wE7Jatu34HsqYqp660C4LkFhW901f1Y/ULPWHn?= =?iso-8859-1?Q?CxErihvUBG4UEervps6dmapxmMtn9sfeIFd8xkQzjuulimt7aZA46zal/n?= =?iso-8859-1?Q?vxsZ4OaPqjH/oEVsSDQY2mWcczUxj6WEaJJYAXHDrdo6rkhxFDpSb5cgou?= =?iso-8859-1?Q?VHtJ7XcrbodEnNkz4xsE0PyilzUHlWG7WR0+Wfti3gV6CvULn9WFCjjUeB?= =?iso-8859-1?Q?uiHk0jgrtsC9YrcMIJh3E9uHcGzDowBMi5WGnyWmenmJt21n97tiKfyk8w?= =?iso-8859-1?Q?kW/ZhGaPK8un1RrL1U5oDCaz8YkbNjdUieIptPwAlcraKfA8n8gJnYFPic?= =?iso-8859-1?Q?R40LaCM7KOxku6ufdSdlkqu8c+dmNrTcq2l6QgMt++3oa3JziiiC2PZgt4?= =?iso-8859-1?Q?KtVL/Hek3BRmM3aP9+PN9gxGvs6ZitfY8ZUggwAZmLD+nU27KP+yew3Akj?= =?iso-8859-1?Q?EMmxLkYj+CF586NgnmmkRCvdHtHUeM543EFhePi0IL8MFfntnBjiYZoDBw?= =?iso-8859-1?Q?iW24t9uoWat4tRZr8LHStHcmswhJwNxA7iyaT7RKVBzpqYGW0z2qZlvV57?= =?iso-8859-1?Q?S1GEcM4QBQQPPQhZwtWQcxBY/6A/maqXufq3whO2og5x22h4HPpP0WF9vF?= =?iso-8859-1?Q?dcJXOr3iRpOKXaIa1/O4vzhCqc4bZNls95wBo6BklBmx9/77nQQL+MI9U9?= =?iso-8859-1?Q?JrXWyACpK+RTz9TVic9BCbwyh31O+nLYBhUemW6n/gMwfuMf7Xo9V0spbi?= =?iso-8859-1?Q?CcRJ2QxnREgmXlf3cac7OIw3qVAWR8Q0bJwTOTph1ssSc/LHCCoX5e+7rY?= =?iso-8859-1?Q?AdKAyLArOMJ30hOUhxZiMQz8dftEnxrHbyD9/Tnxlf2Skp3vKn/5fd9Zkc?= =?iso-8859-1?Q?koWpMS+mSZQtDtD6opzDGZoEVbn3W7d8mB7dQbzYRdp2XERvGSedwqzQ?= =?iso-8859-1?Q?=3D=3D?= Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: m0yK44LypjK1ywd9ScZCAAeBLTpJblycxS/WQHiXxyO4CQ2Tf76PSiI3EMl3cuFLI8hy2aTlUUGYJdMWcG8Q+kCZyiSj5v1blLVtdSbKqWaPcljcS/P84wOkdiIhihy9YFHpq8IR4e4vk9Jh2IAZHZmoxAsO9Xj2bsnr5nrEjpFNYA5lDOBfYGP5DGfkRvk1mM9m9EpblWZQnzFnt7AGRUioFtOSoTiApZQwUVZEIdg1QyHpU90qkhIgVh4GtPuOj1EpTm/F7PVZKyTi1uZAGKVNF1aWr9Ne9HvCaA5Z2Kyjp2HQHLfgfnXSslwF1uN/Z6MB1PJ3O9shQE06wuwEmoTtho0gjcSx12rvMLq8WJNkl4vVi0oWp1tuXyOQWmu4xOv3bBEfEJGZcsjHemTf5tDgbwsP3vLEV4SyP21W9xHepTB2YkA3/SRG5H6bWFDGtNnPfh2apFit5rLYnh8T3d/fn2WimZ+vC4ouJNe4/ue4/nPRHiz38k9IKUll0/j/S4u40sVthIy5GUb71eE92cEIZ1AzHDT/dYrfosKd5ZoHHf0by7+D+YhtM8DOFfbMjOoKQQE09z6B6TpG1FUMxQLeZ8infh1ahY7u9XhGTOXeEN+gxZh/D1IPLlsAI+Kcbr6W3SMHBeItR4x+aoWuAN+FGf928514NYpo9PI6VoQR6koKFF4tfPHqTMf5Ws4qtxoPAwjCgSiLdAzWOOs2g2pkKBBD+J/FE75kcMq6WsB0QlISVm6yS+Q/mP2606dBDGQNmRMYekYN2OXem8aCOx5Hkdsiad8O4pt9sLV9knJp/hKt/msQG6RRWxp0GgnI178up+1dyqfIiNxCPXKzoSZPiuNcQGpoTFeoTUJBxv14QsUTMfMdXuH6R+yNQ2WRDfwGGYfOT5OzhQNYajAdjw== X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: SN6PR10MB3022.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 519c5fe3-cbd2-456c-b0db-08daf8335238 X-MS-Exchange-CrossTenant-originalarrivaltime: 17 Jan 2023 02:34:12.3283 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: N50VSqtBnq71JmdiP+YPbT3kY6Zz7AfVWwqgeXt0+ZtbRX9Gc+sGTbY0jcJRphVa2zqThiHKeOMMYpCOz/XMEg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH0PR10MB5356 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.219,Aquarius:18.0.923,Hydra:6.0.562,FMLib:17.11.122.1 definitions=2023-01-16_18,2023-01-13_02,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxscore=0 adultscore=0 mlxlogscore=999 suspectscore=0 malwarescore=0 bulkscore=0 spamscore=0 phishscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2212070000 definitions=main-2301170017 X-Proofpoint-GUID: thmWD9AAPc0iwQyoviaCNtKGuSkzjx3k X-Proofpoint-ORIG-GUID: thmWD9AAPc0iwQyoviaCNtKGuSkzjx3k X-Rspamd-Server: rspam07 X-Rspamd-Queue-Id: 1D125A0004 X-Rspam-User: X-Stat-Signature: bg8nzub5jauqqewrc4o74qjb6epq9kt7 X-HE-Tag: 1673922856-682566 X-HE-Meta: U2FsdGVkX18rPTZ8KnHR/C5ImWH+WqtYs6w+4Oyi6PpvVvls0GIJ3WQiEidiReZ3F5Nnua/7y/DZuNNH6qcX84uVa9JeAJajwIFFCNTyfuTpokM8B6LwKWUNZkCE4y4PXUR0Z1yf24lWU8yALvxL/K8pnNNXWR711JM61vkagQ41uT4MC2N6ZHDSM6SRjCr1qlg8ipzggo8RABJMMmxq/WNW9rRj6QLsL54XAt8m4eaIEZXQ8iL5guf6Dps5oPW9qWsnunWz/QvzziK6V6+sYUfkTlYBuvcvtwgZgCN3iTkj5tC3OyVGFEzXctjI5wqCHNQni56VEf6AxCgISdCEFhRAkqeeXAcdOaLCZokvAotb1Frr7CVHt+Euls1DjpPVc7j0IbCmfJsYqz1E8BXP/IGtIyGf2xA2ZsYJATZ7BMDd1HP8Z6q6JzMpWezT+/L/w9XIF54ARSr838wLRED35bVv6ExfqHQ3ucUI8cSnhyVGe+ZZqDRWkVvotqFAKeD6Ec5BxrVnttx2Zxqw7kJ94NbJ3dl0jPl6wVRPgdLBTsa9wXF8fdScwXPtpG/IPZSCYdysH6cYtQQq1WokZKZ3AZ6Jb9rZqkYUV8UqwpoXMy/FKX/SrIwZIUPc3qjJJymOobEE4TEi+lqdMXD2+rYnu0HSjRj2l+jS3Bkt62WNEi7saC+9zqN1Exl2SwAS3OpRAtmOmYhdjW79VaS+6iWdXYWdoSsSmE/e9fINR0UfF1gpdhWfQPXVqh2RHHHaBghYsM5dBGS2qFyzU955d67nfhjmBDGOgt1Mq82wl6lBYRp2txU5NQBaQvpY47G0/36rYvnMTDEBb3qBOhfKoN6uWw9JqGNMtGSPYZ6DbhGUDUzOpJOWlipZYhiJGhPGob5R7TdGJk1vzXP++nvZ8Ri7tZgYoajQmXa9A8IjVMSri2IOv4xaJ4RXrd+xqRx2sIeZ16TGFGq12U6lqjcSGRR B+3r20iq y5dwfEQuPUcNo1sLb+mdB4xh75M/REYtPLgbo/QpTMP765TMKib0ITXzyyYuNpQCGZT8EezNbyvY5Mt5DWWqvhE2uas7HNzMq0EdP X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: From: "Liam R. Howlett" Use the vma iterator API for the brk() system call. This will provide type safety at compile time. Signed-off-by: Liam R. Howlett --- mm/mmap.c | 46 ++++++++++++++++++++++------------------------ 1 file changed, 22 insertions(+), 24 deletions(-) diff --git a/mm/mmap.c b/mm/mmap.c index 024fb46251e2..81ff47147317 100644 --- a/mm/mmap.c +++ b/mm/mmap.c @@ -180,10 +180,10 @@ static int check_brk_limits(unsigned long addr, 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; @@ -2904,7 +2904,7 @@ SYSCALL_DEFINE5(remap_file_pages, unsigned long, star= t, unsigned long, size, =20 /* * brk_munmap() - Unmap a parital vma. - * @mas: The maple tree state. + * @vmi: The vma iterator * @vma: The vma to be modified * @newbrk: the start of the address to unmap * @oldbrk: The end of the address to unmap @@ -2914,7 +2914,7 @@ SYSCALL_DEFINE5(remap_file_pages, unsigned long, 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) { @@ -2922,14 +2922,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, @@ -2939,7 +2939,7 @@ static int do_brk_munmap(struct ma_state *mas, struct= vm_area_struct *vma, * do not match then create a new anonymous VMA. Eventually we may be 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; @@ -2966,8 +2966,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, vma, GFP_KERNEL)) + if (vma_iter_prealloc(vmi, vma)) goto unacct_fail; =20 vma_adjust_trans_huge(vma, vma->vm_start, addr + len, 0); @@ -2977,7 +2976,7 @@ static int do_brk_flags(struct ma_state *mas, struct = vm_area_struct *vma, } vma->vm_end =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); @@ -2998,8 +2997,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++; @@ -3028,7 +3026,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) @@ -3047,12 +3045,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