From nobody Sat Feb 7 05:57:32 2026 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 8F11348A2DE for ; Wed, 21 Jan 2026 16:52:02 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=205.220.165.32 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769014324; cv=fail; b=b5QzVl382cwi/D7GrXe+7z0vEgiE0rm/uy0Sqme2/LU3SyT+ZQfJnN5N2Ec7NtpgFiiP1lkBGw57S+PS9K9CvoPXHRM85pEvcJ6+kbg4GrXQDdowGqRP2RiKqKOwfY7wA7O9qR6VudvTRbcTXfPxrVJf7F/ewfY96M2ZAFLZQYA= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769014324; c=relaxed/simple; bh=Utgu4sai29hfVM0KxM1eRmlsyuk03HWRL7lXta3kWqc=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=Vjg/OUEpdqEUno8YuHbvr4G862BlNElV4ekVfkfg4MCgelpW+JrqofC/R1i03vZlyurJOQS8TAbptO+6O8eqRHX8W9mMdT1mWaM8pPtRWESqTw6b/l2e96PqZ65EMHHOpdq9ND6r5k5JhjhggsW2u4wk1k2P2pVFt1NMmPYR7rI= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com; spf=pass smtp.mailfrom=oracle.com; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b=HH3jxuZU; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=BI7h+juD; arc=fail smtp.client-ip=205.220.165.32 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oracle.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b="HH3jxuZU"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="BI7h+juD" Received: from pps.filterd (m0246627.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 60LDuguT3029196; Wed, 21 Jan 2026 16:51:06 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s= corp-2025-04-25; bh=by0KY1CnldwXqWUVlaFcGXe9rhmk5DjazvuCYy6FcWA=; b= HH3jxuZUHyldYzZdJdUL2WcLRtwyGGhPQHVGcsPOp9U8MOD5EMHDvEXuehva3NBN sjNbwrH//okzAut/anW0pln661Xkl/Q3fTZn7fApFXHE2XE0pwK2UHCsiNVGUzdr VvMLiWON7nbDvztx94CJapFUOCaTX85KuFeAfjm+uXl/SosRf1Nv6MSzFiRUoyom fRQBnuKB+DunRNMW+e7du3RFBOQfNIOPKEBEB3GdHsbDfnVjrKZWGjKaHVeOSrb0 9SFekgk8ajAAhnHI+FyG4mpugYgjBu38+t2AlLCx/yCV8KRuZjMcNtbmOpai9+GZ Hy5AvYIMwF2j2PBal3tZBA== Received: from phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta01.appoci.oracle.com [138.1.114.2]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 4br10vx874-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 21 Jan 2026 16:51:05 +0000 (GMT) Received: from pps.filterd (phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (8.18.1.2/8.18.1.2) with ESMTP id 60LFQGpK018321; Wed, 21 Jan 2026 16:51:05 GMT Received: from bn1pr04cu002.outbound.protection.outlook.com (mail-eastus2azon11010023.outbound.protection.outlook.com [52.101.56.23]) by phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 4br0vbh8ws-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 21 Jan 2026 16:51:05 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=fJ1qmTjMkuCIIlcrNIwQVRzOxHLnAZNJHdtQNWnDGEHgXuvXzOFpd95EqLcqSem6NmKmXyJ5D1QuOEBL6pERUjNGYx6GK1p3kaRvZM7MRlra0fyZq9ltjOCzRmweR/6FT94SLSYXb6b3RRkTlVOlTLbHSzhD+JTSWmGwNcRTPno8kUXZk+EGMXEnbwvkbMXujAzwVTy6OBmJuzhGyURfRCiwqdJnp/1YdN+qk0Z1vYwrNuUvrsLrcMPYzGHJ5axCAnTIvBfAImKtf+O9Ca9bKheO5MzWukQzo6x/Yi9Oxc25w1ScIGin6Fik9IEI+AkgbXPHpNH5yWoXAQKCB0hiCA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=by0KY1CnldwXqWUVlaFcGXe9rhmk5DjazvuCYy6FcWA=; b=xn5dTSPMIL7EyD+7LgI5cZWlR10Kbbftkc1RiVeC4MpeoIeAJiIlTCi+rWcDxD31mq6c8I17TY/jo30V/Aytrdmym8Egc/5YQ2VangWlyYuDVJ18wOPQsKqBOOi9lgX24Q0iCekYdT+ZRJ3eDz6GykanNEbM83XKGzB/+r9yKcoby6E31XyLc07xbOXhV+EzDOcoRoG7ShKkVQAbBCgOSLtH2bZfh80SkPutlseSbF9Xs8AB4lQ1EBMDPEAzQ/e6SumQPUVpYa+ENYJ76zpodKNHOsim3jpk4Pl87ZpAbKFlN1HCkkknx8Fh8t+45sG0gYBYG5F9uNHX+kxFNgJ4DQ== 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=by0KY1CnldwXqWUVlaFcGXe9rhmk5DjazvuCYy6FcWA=; b=BI7h+juDS4I6oKkO+snuP4pl/7NT75SlM//HafD0gJ4vneN+G7/sXJ6OFNjmP2GsfolVnFdfbW2BwmS3+att9+NWtX8SD10w0CGZXEt+FYb+n6X5i+NFLnna0LoXKE2GsVgLDHgnkw99Gf7PgsJW2SlXiaI1a8NRD7/MqEYFumo= Received: from PH0PR10MB5777.namprd10.prod.outlook.com (2603:10b6:510:128::16) by SJ0PR10MB4414.namprd10.prod.outlook.com (2603:10b6:a03:2d0::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9542.10; Wed, 21 Jan 2026 16:51:02 +0000 Received: from PH0PR10MB5777.namprd10.prod.outlook.com ([fe80::4b84:e58d:c708:c8ce]) by PH0PR10MB5777.namprd10.prod.outlook.com ([fe80::4b84:e58d:c708:c8ce%4]) with mapi id 15.20.9542.008; Wed, 21 Jan 2026 16:51:01 +0000 From: "Liam R. Howlett" To: Andrew Morton Cc: linux-mm@kvack.org, linux-kernel@vger.kernel.org, Suren Baghdasaryan , Lorenzo Stoakes , Pedro Falcato , David Hildenbrand , Vlastimil Babka , Michal Hocko , Jann Horn , shikemeng@huaweicloud.com, kasong@tencent.com, nphamcs@gmail.com, bhe@redhat.com, baohua@kernel.org, chrisl@kernel.org, Matthew Wilcox , "Liam R. Howlett" Subject: [PATCH v3 08/11] mm: Introduce unmap_desc struct to reduce function arguments Date: Wed, 21 Jan 2026 11:49:43 -0500 Message-ID: <20260121164946.2093480-9-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260121164946.2093480-1-Liam.Howlett@oracle.com> References: <20260121164946.2093480-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YT3PR01CA0142.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:83::24) To PH0PR10MB5777.namprd10.prod.outlook.com (2603:10b6:510:128::16) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: PH0PR10MB5777:EE_|SJ0PR10MB4414:EE_ X-MS-Office365-Filtering-Correlation-Id: 6957c6c7-1f13-4d44-fecb-08de590d426c X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|376014|7416014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?cyGOXQ7o4DCvp11VxUy2WgRydPBiJeGk3F+4ez1L+UafJtfvLWcRdPSjdbw2?= =?us-ascii?Q?s3eMKjMx1H1MD0uXr+Uk0JcSHHRVWHEzd3KMOhSrEA1RIHAMsZUlelOlWM6I?= =?us-ascii?Q?6FKEtdM/nlope0DWVmKd+VUnaBUg4bGxKGNNbuYqr3FJNGpC7RHSY1+kg694?= =?us-ascii?Q?e1B8VBPv8o13XKa642W/nvPDIavRQA+P/qtu3vU5Lc2Aiz7UkzKqnglnvFoQ?= =?us-ascii?Q?latLcECf4XUvSBL4JDqVDpO9tU4at+wDgB5Wp2z8L/78qSgrMB8s96U6XCiw?= =?us-ascii?Q?Y2tYAxMxlBSg4tkI+Bt3ewTXUv14VOgz162pCTblSqwFi6/U2PAmeucccGr2?= =?us-ascii?Q?ZDejR7yV00EzN4bSXTKMdkIzGDh9Rc0ZtoSEmMaU470L6RBdZxLAUqzGlwrJ?= =?us-ascii?Q?91atfdl9RO6rg/IyQ2pOsB4F13UJ4y8lBQVt8RcwLfvoFizUMgosM+RtaK6w?= =?us-ascii?Q?MSjY8hI0JK0DmZFx9tNldRHcRTcSFNEDNcuYle0M33bif26PVFyUTyN8yPgb?= =?us-ascii?Q?V4ylP2p+02w7on6BsF4MeTHhaHkZ8XSIld/RPS68Px6+v/Mgh192mglMf7UM?= =?us-ascii?Q?vtnelvCIQLsKURislIYvGw8ezh/zhxQaERKuHOqk75t9WsTtfeyx4pmyKNCn?= =?us-ascii?Q?t2/SaH0uCkDfHHQJ9Nn0HH869FrA5ki9IBGmioPUJFrSTwddauGKctn90W+m?= =?us-ascii?Q?rrIBdJHlCwivOf/3vlV72gB8DA3wQFDStWLgg8uRzjsiFNxip0ZPWpefW2V7?= =?us-ascii?Q?HYiB/knbPWxA1LpqTNUNAGaF+HbLYPg0jnJZl6NkRHXjHuvFQt0v7Amb5LOV?= =?us-ascii?Q?sizUu1HxbVTu0M6KJV5H+pNnXFc0c9DoOuDMYm+fcYZlLRkhldbt2O1/PS4w?= =?us-ascii?Q?LO9xhctKW3RHq/5ZzFZLMmi1XLnh+FGp5lEVMsX3KtxKIXTmU0j1TLfKM9He?= =?us-ascii?Q?uYhkFKtH+aJbuKt2iqXdisEFPsyOuUOwIp5Thh2olrZyyFdqREwcdqR42Bpr?= =?us-ascii?Q?XjgzKaVH8NgHukAP8KLB5hMMVNsqO/advjpK93KvWZoGRhlxLmaNIUap+KvJ?= =?us-ascii?Q?LCeN7L/0PE7WLo1X6eQV92cz+GbS/oZsRJEf8yQZzYu+n5lzyV7o2UWO/TfG?= =?us-ascii?Q?xvSwg2xqUTZedr7q86CN7/nOK+/rmAw+PoP3OYO4eQg0OxA6wZEhUhIDdfpV?= =?us-ascii?Q?0rfB07m/0LRQzTGHJ/hsAqBkJg6FpAsYhdbH/1sZkz9pdNQvnxfOhfuG6Lbz?= =?us-ascii?Q?x8tlMb7W8mtR57OZpjVVozac0t5c8XYCYOJHpMQrQS/jAOeqTVsZCln59WLP?= =?us-ascii?Q?l4Ac4P8AKb514EAKVdTShtosmZ7KZIz1RS90ZZWQvn7BHtdbVMBeWyKVJhPD?= =?us-ascii?Q?qEU5ZOUfs/SHc2g0uXmIJy7rCfINBVJVy7tnk8NXsUrHOOWTexdJGucfqqiU?= =?us-ascii?Q?CVYP73ecAOAmNdIo8VLo2Hd9f+2++/VuULxdQ18CylqVwc1Rb5yXoa9TUYu+?= =?us-ascii?Q?cRDaYOKOt6yYgjZ5PHvB0lrEirLHXlOdVjxRecg68XAa2Ns9j101Rndcw9wu?= =?us-ascii?Q?LgQyH0ZWy7d4iPh7ltg=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PH0PR10MB5777.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014)(7416014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?j/E3La2GnAIOPN284xUNClrIWaLhSzWtO3qcyVS/cIHPZz3GtCDV7iejwJMi?= =?us-ascii?Q?IQXihTPqaMpMAvJ1kI8gIPGlJn7YckEa0drM1jqt4jaqlYDWXlgLmTvY05y3?= =?us-ascii?Q?JXK1HN/sVw9XSli1s6J3Njyjn0xbNfnMBAOFfDcDn3yKaoBVlMhedxnAvIa5?= =?us-ascii?Q?0Lfd15Ywi+9B0pD8iLSnEzUeFdmkfAJuyqUj6wCk+0E857H9+jnaNCdUDeHy?= =?us-ascii?Q?n5C0pHjQM0liEnhOCz1zRij5EnxUNIFmDzr+YB3dtbSJVDYmmX7gSN0cwpS1?= =?us-ascii?Q?RZeSJsLYVh6VFYjSWz/GbHWUOURL4fmfwShEO1f1VE9Pjz9DS7SvUzK9jA7d?= =?us-ascii?Q?BgtoC4B+EvLjTh2HQCM/eyXaNV2JF1ItlajQVsnE/M5868j9LfviE/5iPOzb?= =?us-ascii?Q?9chPnPUWVXWmVVuoC+oZOXfB0ilNgwEd/FOj67WrgDm4hoCGU2NryHSOK4Zk?= =?us-ascii?Q?XfGY7kLIg9SyPazrRgtk0idekeQxQ/3KO0Z5RsKTG7f0Nro6pCtqe+Gf08/R?= =?us-ascii?Q?1GgOMCP+XK3XnWD1Uwt1pqz7XYOZLN+W2MvKhrjN1jXkez/lNodAO5u2x/FU?= =?us-ascii?Q?djBa8A0482PNdg3nJYkBsiX31o8EPVFDN3kbE47IAetdkkPmPFyk2riAAZTd?= =?us-ascii?Q?CMMf8Cf07GFOqeEoWlXDdSS2gOlFfEQHBKaRCzJo9sADLF2ZWTAfmjcQTGaz?= =?us-ascii?Q?y+61Lu3fGTvX/2LJKiUrb2egPl+zHZXDxpybGrAeOTS/312PNchj6ma2gm2i?= =?us-ascii?Q?wN1yMmEeL2li5V/N4Zys7bt6V907wH3992LEy8f6dWfp+9O1RO4JHCXmMw2t?= =?us-ascii?Q?JoLivzZXYRRFnsNoLcxaXsVoEbkDPYm1Mo02kVsLGdKU8EXwDwzFD+IJFE45?= =?us-ascii?Q?A9uV/FH6WfmxetJSkQVJ4xFvzpa/EWdOOoqDQL3x3I6EVvHMEAAawJniCNbB?= =?us-ascii?Q?BweHE8PmRuC4xAh3WE3K+dkZqDxupO3i5lrDbUeritT7kosnquqX34TJmVnK?= =?us-ascii?Q?spE6rNGbpUQ8shtSB79ebLJOWNW+1kZd8Qbc+U2PrcOJhdNLJ+RD5vWphq4J?= =?us-ascii?Q?IxvRMHwCN4lGBATvfd9Sm/g9hIVWQgW6yZGuzUxraa96ilK7GIruYBw9eYjZ?= =?us-ascii?Q?9lRJPabD0GbaFa5B/IhObyr09hyyRgpGLL9KfDh+y6lwf+xeA5CVk+xK0n6c?= =?us-ascii?Q?v1JSyJ4EseCwTlY7PR5B4DNxcr0Vjn9xxJEHcFBGK2Moyb6n7vIlExJG0q5n?= =?us-ascii?Q?YpBnwVbJ/1cP0lQ96SZ/FcvGN4Ne8KBJ0yKpIuofDrOphDrsuL9DtY3k2nZl?= =?us-ascii?Q?Uqt/j0JQqRsRPcrJ0nZVKFVv2i1SaX5O4KETOj747XPPpdolOQRWnPm6opfg?= =?us-ascii?Q?XyEkg+O9e6tenkY3ba0JjY0nrpqEFfUYi7Gw61UI+908h5wTreAM64iwt35d?= =?us-ascii?Q?pZRbfD/qi1CVc0EsYz3r1nm1bpFZf2F809vvrVoLctpwwp2GHdzBqQeLE+R1?= =?us-ascii?Q?UhaJ9J5XJs6KHRGmJkiJJQTK5qNVpoPjm4LdU8JmBuxfTFafrphqyy34oHc8?= =?us-ascii?Q?ncMrxW9irWSAoBGybhGI5joVquuNjLc7IIH4QF3aUQH1w2wBSB4FSEBHD00n?= =?us-ascii?Q?NUAarO4pSgN0MUUjmAmkemTnLvFva4KPgFK3mTuYVWvvGUhXCga6SquqnuAy?= =?us-ascii?Q?5DHk5EfUyYSAStCJf7ctQ0tmDXTaq47s+51Ny356wlf969RL4Kkf45+mXz7f?= =?us-ascii?Q?BGB+7ihs2g=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: UjT4/IpaRpEIOZKtSjOYnBYbCvtQA/1vrZ4E91kFm0lIWAX7JNq88lqNAucwHiuNONILfpSNpXCJUlIpYpOeS+IqhtXdmuNnaUyx1HDKKw1B638BRCOW9C478Is8Oq2UiIyi60UzLqUq+jwv2ChbiFexv96QswP7UYfjhk597f/11arL4exwBatsmgSjLajK4DrsiNwbOGBea8+maTI1ND11i6vNYMbMZlOIfU2Cl+ycLcLgIfG/zwcg94pvWE7iy5SAT8gRbkU7h/UOVldJZqtgUcrRoWEEsj6/plt0MCKvndL5vKAJN96dyRVjYyw6/xLWAfLYkq1DOA98ggAmWc4geAjTs0CxCkrodardSmVUZHiWSTrk1C2x5HaXB+BbZJq1zc6/Tcc86fdnS2hV9T/UZrPw0pIFvJTjQsfPvz8rNUXTzdLgXRRWPScV4AZ2fDVtAPN/4rgrRDvwQCVsFJ1sO/tPX11Gxw8X5CMubutteFmcVAtZ5v/M7hmbpjpHEj6tk6loB9ik6V093qxvcBMZhyyVhU9UfU8J0PbNXPmJEqiA3p+PyryRM8697sDSssGzqX4Cc15idF4obDr5hjMTpSz/AmjgxhN1a5XzZos= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 6957c6c7-1f13-4d44-fecb-08de590d426c X-MS-Exchange-CrossTenant-AuthSource: PH0PR10MB5777.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Jan 2026 16:51:01.8199 (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: zNsa+zAbGE5lODTf4aeZwMzUnJPnFs1xn4qrFHBN+1OpXEWvSb/RkgueZoX2AaNeiwDCBoLK2UqOBowMnt9tQQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR10MB4414 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.20,FMLib:17.12.100.49 definitions=2026-01-21_02,2026-01-20_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 malwarescore=0 mlxscore=0 adultscore=0 phishscore=0 suspectscore=0 spamscore=0 mlxlogscore=999 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2601150000 definitions=main-2601210142 X-Authority-Analysis: v=2.4 cv=H4nWAuYi c=1 sm=1 tr=0 ts=697103f9 cx=c_pps a=XiAAW1AwiKB2Y8Wsi+sD2Q==:117 a=XiAAW1AwiKB2Y8Wsi+sD2Q==:17 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=xqWC_Br6kY4A:10 a=vUbySO9Y5rIA:10 a=GoEa3M9JfhUA:10 a=VkNPw1HP01LnGYTKEx00:22 a=yPCof4ZbAAAA:8 a=ba_3bG9lUs-xoXSSiEUA:9 X-Proofpoint-GUID: 1mIFyso2utDcBmH5JDQCWDJoJSpCViA0 X-Proofpoint-ORIG-GUID: 1mIFyso2utDcBmH5JDQCWDJoJSpCViA0 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMTIxMDE0MiBTYWx0ZWRfXysZOcfqbDzyO NBLJXP6i4ao7T7Dr/EwH9Y1MHhVd//d/4wgeDznIk4LajQ1T3xef4QYmZzDQhlBpawr2QVPLTps woyfCWMdwFeqx3+/WhP/ImZF5bxXOLMzyY79bkEJ5At4zXcbUROmnApO7q2u5SaljyuqLteTal3 iIMAnq1E22W+wPkRpyG2i+Yr77+WYHkM6KH7RnU9MgidjYw4jmk3hhsxRYQIvEWqOficGBN36Xy blCa54amatqSkPIxTZBWJD5BrQTbjlED3irDwSQHwn7Egg4+juN993Pe7KrUbQ8I9iPW3B1j522 nVTN41xm82gGnwWx4rmByI46sGaZTB0u3xoXi6QVCc9bnzcrK0iwilG6jJqGKEAr7Yd1VyT/zFt knfRrUvV6vG28AQ7jCF2VH9E7tguQx8eAVa5mDj0kCuYpJdBVPNCOIK0YRItVsxrDw5S2roPVUW lR9VuYiMO+NOn9gsxtg== Content-Type: text/plain; charset="utf-8" The unmap_region code uses a number of arguments that could use better documentation. With the addition of a descriptor for unmap (called unmap_desc), the arguments can be more self-documenting and increase the descriptions within the declaration. No functional change intended Reviewed-by: Lorenzo Stoakes Reviewed-by: Pedro Falcato Signed-off-by: Liam R. Howlett --- mm/mmap.c | 14 ++++++++++---- mm/vma.c | 25 +++++++++++-------------- mm/vma.h | 35 ++++++++++++++++++++++++++++++----- 3 files changed, 51 insertions(+), 23 deletions(-) diff --git a/mm/mmap.c b/mm/mmap.c index 48dae3d48e46f..4500e61a0d5e4 100644 --- a/mm/mmap.c +++ b/mm/mmap.c @@ -1876,11 +1876,17 @@ __latent_entropy int dup_mmap(struct mm_struct *mm,= struct mm_struct *oldmm) if (end) { vma_iter_set(&vmi, 0); tmp =3D vma_next(&vmi); + UNMAP_STATE(unmap, &vmi, /* first =3D */ tmp, + /* vma_start =3D */ 0, /* vma_end =3D */ end, + /* prev =3D */ NULL, /* next =3D */ NULL); + + /* + * Don't iterate over vmas beyond the failure point for + * both unmap_vma() and free_pgtables(). + */ + unmap.tree_end =3D end; flush_cache_mm(mm); - unmap_region(&vmi.mas, /* vma =3D */ tmp, - /* vma_start =3D */ 0, /* vma_end =3D */ end, - /* pg_end =3D */ end, /* prev =3D */ NULL, - /* next =3D */ NULL); + unmap_region(&unmap); charge =3D tear_down_vmas(mm, &vmi, tmp, end); vm_unacct_memory(charge); } diff --git a/mm/vma.c b/mm/vma.c index b92383e5eebd1..75c68c74c062e 100644 --- a/mm/vma.c +++ b/mm/vma.c @@ -472,21 +472,19 @@ void remove_vma(struct vm_area_struct *vma) * * Called with the mm semaphore held. */ -void unmap_region(struct ma_state *mas, struct vm_area_struct *vma, - unsigned long vma_start, unsigned long vma_end, - unsigned long pg_max, struct vm_area_struct *prev, - struct vm_area_struct *next) +void unmap_region(struct unmap_desc *unmap) { - struct mm_struct *mm =3D vma->vm_mm; + struct mm_struct *mm =3D unmap->first->vm_mm; + struct ma_state *mas =3D unmap->mas; struct mmu_gather tlb; =20 tlb_gather_mmu(&tlb, mm); update_hiwater_rss(mm); - unmap_vmas(&tlb, mas, vma, vma_start, vma_end, vma_end); - mas_set(mas, vma->vm_end); - free_pgtables(&tlb, mas, vma, prev ? prev->vm_end : FIRST_USER_ADDRESS, - pg_max, next ? next->vm_start : USER_PGTABLES_CEILING, - /* mm_wr_locked =3D */ true); + unmap_vmas(&tlb, mas, unmap->first, unmap->vma_start, unmap->vma_end, + unmap->vma_end); + mas_set(mas, unmap->tree_reset); + free_pgtables(&tlb, mas, unmap->first, unmap->pg_start, unmap->pg_end, + unmap->tree_end, unmap->mm_wr_locked); tlb_finish_mmu(&tlb); } =20 @@ -2463,15 +2461,14 @@ static int __mmap_new_file_vma(struct mmap_state *m= ap, =20 error =3D mmap_file(vma->vm_file, vma); if (error) { + UNMAP_STATE(unmap, vmi, vma, vma->vm_start, vma->vm_end, + map->prev, map->next); fput(vma->vm_file); vma->vm_file =3D NULL; =20 vma_iter_set(vmi, vma->vm_end); /* Undo any partial mapping done by a device driver. */ - unmap_region(&vmi->mas, vma, vma->vm_start, vma->vm_end, - map->next ? map->next->vm_start : USER_PGTABLES_CEILING, - map->prev, map->next); - + unmap_region(&unmap); return error; } =20 diff --git a/mm/vma.h b/mm/vma.h index 7c2c95fef240b..cca7553c7d641 100644 --- a/mm/vma.h +++ b/mm/vma.h @@ -155,6 +155,35 @@ struct vma_merge_struct { =20 }; =20 +struct unmap_desc { + struct ma_state *mas; /* the maple state point to the first vma */ + struct vm_area_struct *first; /* The first vma */ + unsigned long pg_start; /* The first pagetable address to free (flo= or) */ + unsigned long pg_end; /* The last pagetable address to free (ceil= ing) */ + unsigned long vma_start; /* The min vma address */ + unsigned long vma_end; /* The max vma address */ + unsigned long tree_end; /* Maximum for the vma tree search */ + unsigned long tree_reset; /* Where to reset the vma tree walk */ + bool mm_wr_locked; /* If the mmap write lock is held */ +}; + +#define UNMAP_STATE(name, _vmi, _vma, _vma_start, _vma_end, _prev, _next) = \ + struct unmap_desc name =3D { \ + .mas =3D &(_vmi)->mas, \ + .first =3D _vma, \ + .pg_start =3D _prev ? ((struct vm_area_struct *)_prev)->vm_end : \ + FIRST_USER_ADDRESS, \ + .pg_end =3D _next ? ((struct vm_area_struct *)_next)->vm_start : \ + USER_PGTABLES_CEILING, \ + .vma_start =3D _vma_start, \ + .vma_end =3D _vma_end, \ + .tree_end =3D _next ? \ + ((struct vm_area_struct *)_next)->vm_start : \ + USER_PGTABLES_CEILING, \ + .tree_reset =3D _vma->vm_end, \ + .mm_wr_locked =3D true, \ + } + static inline bool vmg_nomem(struct vma_merge_struct *vmg) { return vmg->state =3D=3D VMA_MERGE_ERROR_NOMEM; @@ -262,11 +291,7 @@ int do_vmi_munmap(struct vma_iterator *vmi, struct mm_= struct *mm, bool unlock); =20 void remove_vma(struct vm_area_struct *vma); - -void unmap_region(struct ma_state *mas, struct vm_area_struct *vma, - unsigned long vma_start, unsigned long vma_end, - unsigned long pg_max, struct vm_area_struct *prev, - struct vm_area_struct *next); +void unmap_region(struct unmap_desc *unmap); =20 /** * vma_modify_flags() - Perform any necessary split/merge in preparation f= or --=20 2.47.3