From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from SJ2PR03CU001.outbound.protection.outlook.com (mail-westusazon11012042.outbound.protection.outlook.com [52.101.43.42]) (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 1E75D3264C8 for ; Wed, 4 Mar 2026 15:17:25 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.43.42 ARC-Seal:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772637447; cv=fail; b=B7HsKBId5o6Rq72YHFMHKXYJy4M7JWuhm/VimtNrj5fUfwEgJvyuHu9n8F+lgIpnwhc6rWxIcUC1lmw3tS2bhJUpWDGeb17SUR5Jz59iIVNPXpLFPhhcJc30mgaqkHHT9ysFxFQu0azpbOxw5nuX3xVTzp+TAuQk07+AXLHJClE= ARC-Message-Signature:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772637447; c=relaxed/simple; bh=XGQp/azFQl43sJTng0pm6khJCsbKs4zv2xstbAH3DSE=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=K4ZyGhVK3gcR+BFKoS+KCLoGQNOFs6csh3/iQp6bskJIfiZoKO/nWd0AyUqoB3rvnR/e5AGEtRVe2Z+jKDFKYGv0sbjx+zIUVXpV1XCzDJ9IkvSLpdou02BtlGykQdlr32KEozflFsCPQxy5WxHRWnx3ycHifBx1oKQqDJmdQTU= ARC-Authentication-Results:i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com; spf=fail smtp.mailfrom=nvidia.com; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b=YydbpbgB; arc=fail smtp.client-ip=52.101.43.42 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=nvidia.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b="YydbpbgB" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=tKqee/NM+31wxVws4C4nYia45AmABXUSPvIytTXzDrGZr/awNgx5itUfTX5w33LvXQHyQeCTffbdfAtuC5GZbvvzBvpOiC6LC3StlmZbSNPVF1uiMAPtdaL16230fddpFNMbeCpRPWGuZxiTWu1hZhdNAUcXSnxlEO0Wz2LwqWioRGi9QlsZyypOdSN6TPMAg3S0vV7Ka1ganbkLNS2RWu33V5Z3Xt2+QL3bj85jlZ4mQdY6Lg36JJDRFoOfBu8Ub+theHQSXudzLEZbxWFkc1CTkU1K82i60Q02hsYardbWCfyq3f88bZ/p86hmpyyvA7KsauiAqMXQHvT+XlE++A== 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=hZMn/Gith91smII2Fzr4GImjMU8DCesfNrTsmrh/FjA=; b=NtBgMxM/z8XZStg8IqbJ5hzMIZisBZxlbEe5PXqCVHo05TjX8Nq7zrZjosR9rBLuQT1PXc3xNZF03dAVNXY+cl6QkT78m00uFLmC04hagsvqoTgoId/C8LP1OIwI/bD0wdc2xqRRv+MXKJCnklTw7/QmtghK43P5VTFXZaamwgws9mGISbiTa72mpYJFJrOC3zOisaf/hUi3Rep/PNVEJyGyXdW7QlqjOkt8cLhvWL4Pk5DyhH2WiJyCCdbc2rJ8ce5W2f2vBzDwDRAbmb6lxb0lJhKi0Hm69JpKkM9ue+9PXaz04cfDCqDrtdTeKXXkxCx0ipsoFGsIwyaK6qSRdw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com; dkim=pass header.d=nvidia.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=hZMn/Gith91smII2Fzr4GImjMU8DCesfNrTsmrh/FjA=; b=YydbpbgBacPzPyNK/e+eTzR6Q71y1Wq1imwi9uqjOeePA4mfEhxHQoNcHoNnTW4yVGXGIJHIiNel09ekCgwG5qcFSO++y98lj9jxL2+nX+C8U8i9OsPx1zsgn72J2OWGgUmo9eK0GQhQgAOi5vthb4hBqYLBoQz3bOiomHCSRB6F30YyY0IYuGJrygbBrzwQr2iy6uoLsVn8qVh9eYGSGAJhkgbPo2+1fDMRr6bUoOuropgpUWMXxvp7eqggIwKdfmfbSAM1kUi6hjp/COOf36Y6dCtV5RgL1uo/0rHfexLHIAdAcJlA4w0jes2wjKjL8qyd0ezko2BYAlmC7GjqJg== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; Received: from DS7PR12MB9473.namprd12.prod.outlook.com (2603:10b6:8:252::5) by BN7PPFD3499E3E3.namprd12.prod.outlook.com (2603:10b6:40f:fc02::6e3) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9678.18; Wed, 4 Mar 2026 15:17:23 +0000 Received: from DS7PR12MB9473.namprd12.prod.outlook.com ([fe80::f01d:73d2:2dda:c7b2]) by DS7PR12MB9473.namprd12.prod.outlook.com ([fe80::f01d:73d2:2dda:c7b2%4]) with mapi id 15.20.9654.020; Wed, 4 Mar 2026 15:17:22 +0000 From: Zi Yan To: Usama Arif , Balbir Singh Cc: Andrew Morton , npache@redhat.com, david@kernel.org, linux-mm@kvack.org, matthew.brost@intel.com, joshua.hahnjy@gmail.com, hannes@cmpxchg.org, rakie.kim@sk.com, byungchul@sk.com, gourry@gourry.net, ying.huang@linux.alibaba.com, apopple@nvidia.com, riel@surriel.com, shakeel.butt@linux.dev, kas@kernel.org, linux-kernel@vger.kernel.org, kernel-team@meta.com, Usama Arif Subject: Re: [PATCH] mm/migrate_device: fix folio refcount leak on folio_split_unmapped failure Date: Wed, 04 Mar 2026 10:17:17 -0500 X-Mailer: MailMate (2.0r6290) Message-ID: In-Reply-To: <20260304120132.3973445-1-usamaarif642@gmail.com> References: <20260304120132.3973445-1-usamaarif642@gmail.com> Content-Type: text/plain Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: BYAPR06CA0063.namprd06.prod.outlook.com (2603:10b6:a03:14b::40) To DS7PR12MB9473.namprd12.prod.outlook.com (2603:10b6:8:252::5) 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: DS7PR12MB9473:EE_|BN7PPFD3499E3E3:EE_ X-MS-Office365-Filtering-Correlation-Id: e06e1b9a-c092-4966-a8be-08de7a012293 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|7416014|376014; X-Microsoft-Antispam-Message-Info: Z+rfRtQR/bTUop5B2lgWpgJwqoGnYDjUOxRSVnBi3wYPGeuQYdukXGGkULGP5GBaQQgRquUhvZWUkJAUp8yIKGbyMSJ0rfy9pByS3UdcIeeYSqJtuFs66JiTe0wBwXNukUUtY/cqdxamD6UNGq/+XcQ24UiTSDrIYUbNXY6irAfFEI+tnLE81FifrVwM5JfnFlKpV0dN5EGgkYr+bZojFyJfiAAh5Z+34BTz4eP5BUqUC9avWR4deqIkVZuYBN1x6SMEnENY3nAyksXuXm1iqU0A1av2gmSl5jZSqisUWOAD19htQokR/I6e12K2DsT2hfWMgGhA5UW8Is2qs5KPrrGabl9IFWASG2/ZxrnOvtY+IRnutFw1r2bnCbmfrWbQ61YmQe6OyqiAYi1fn01dmptR9wRLWh3k1FwOIkMm4RUE8xFcNggfmSu2Ka+JLWk2oYn6Ssw/SKYUjKqdUDEsBtHZPqr/bPH8vo8H+PDakGcpoJ7Uc4hVRiO7KY412t8ZEEWLYHe0W0yupG66yLvRwnX8Tu4hEYa+JE82vulQ/tv7dLmAdD9JxIg2MJXpt+RJQtH2ttNr1WzcPr09P8JPyde2q7/qwwPPivxOieFaKC7RC1u5BcMfeWqdCPcoqO6Rq3lyvcxcGw95qWfzvigFzodzphoZUrBImxZWSxFFxpAQ+sah42xbAIxTzVq65zELu9zf5WekZZFsdPkOHhvboGG3vvINULyWnkd5dMY275k= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS7PR12MB9473.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(7416014)(376014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?li7AtYqQNEs0rsWdsmegzTpIGJMMdDTer4o7i8cjFuNbrQXShceQ8heAsW2E?= =?us-ascii?Q?hwb+29Ij7JvM1tZasRJR9daLKC2y1wkou1Fr0IwkVAFAJwIMqbQc0ivFWtsb?= =?us-ascii?Q?lokVTpAn0DDI8FiBsGpHRn+LQAzZSfZx8/Y5sujLUa2QSVW/0cXtRulyackQ?= =?us-ascii?Q?VCWje6t/qanuHezQQeAv0jpsNNSNNrJGQ0Ph1VMMX1rJ8xgwIEIQmjw6PXAg?= =?us-ascii?Q?8uWZEqO/62z41sVUWN8JSi2i9i3EOdoI+CXQ90v3EYNcscb3rWNt3SeSJ0IA?= =?us-ascii?Q?Ty3hwlGhdHj6wyRKOvtb7LVezPFFJh5ikin4ZM3nQFb6inR7ALDnkSMImBo7?= =?us-ascii?Q?bTOEY9pJoJxhreNZdbYqUAZdug2DXK8QB03twNET4Anb64qMqvawbLXnHncC?= =?us-ascii?Q?/5d4+efcv/oOGkDDrrPU4HMu9oyIJ0OWeeC7ywPiHRQ2HOniAoMDhPcQXFBs?= =?us-ascii?Q?zvoj121+j7npeAjIS7HAYLq10zB7+UEtWhmbE2m7KpyLpcpwSUpuOml8Bd/A?= =?us-ascii?Q?L7jJ2laXga1QZxBNroNmZyy7aRVjJNAMikUQECsx3AcMcz7bgBsJsUSCZWrL?= =?us-ascii?Q?8opDF/NlFQO8RIKA95Nm+XkMom02+GxYs6JMLki5h2L/oXjBch3rQKjhWrnl?= =?us-ascii?Q?4AQJ5jK+8wGcqYy63P6zMgk74XLxoJFjcYMj6b4x5MC4Yrc8GnEKvoukGliR?= =?us-ascii?Q?Adpv9DP5kdX8jZWhvTLnZe0yaeGrt3q0M+tuFj294VFM+ECaUfs6avV4SWCf?= =?us-ascii?Q?weXMSlXPktpWTIwiKK65SPwovVXhLHwbUmxJ7Uf9a/qpWR6507TRAJyIVI6/?= =?us-ascii?Q?k1VYwNTOZl7ExnmQf3dubaYyq3AJvQO3Z/lGbxONstV7ukYE859+rcnw0yzN?= =?us-ascii?Q?Fx7ggmDQHlhgSQDoedzryTnWhHunS5aHZFnIIh3V521Ffgahi1+jkqys7q5I?= =?us-ascii?Q?gfE/BiHEUhGW+gIztY+hdsFw+IubMf4PYlXeMnjzJ3CCx2CtPT8Qr3heZeUE?= =?us-ascii?Q?D16ymAl0aPwSuJrFmtG52K7sET3Jqz+KmBazqijJYsWie2ykj/zsh8rAphPR?= =?us-ascii?Q?cDOubS/NQDSDmEz/8XW3p7010ZuIu4r/IuFuBPFNJ5oM6Tu6HmsHoMuzdz0J?= =?us-ascii?Q?00lZEIDj/MFHN0HhAWSVvbaVoczNGNJz00TcobV1e9Y+PYMi7401EXA6pKKN?= =?us-ascii?Q?jBdiuN/2I3N7sYahxtQka7xodwOOnlIQPajH0t4E5wESOW4gSzMcZ5tl3XjJ?= =?us-ascii?Q?lNCJSXFvdOk2F4aeTBuNJC3AixtmC4XoyPv7MzWnasv13ffGm4kx12TLzw/w?= =?us-ascii?Q?VKY3irnF0mzTRdTghgyoOF2QR/WcCMgZT7LY6fsazTxCwE0m3jWYODa/pTVf?= =?us-ascii?Q?jJATye6nUjIKNXw877tfvZM7UkIW7UdlHGXUjEaFPzzEJDvM3E75D2kXaCfs?= =?us-ascii?Q?04ZQLFVrkQ39g1rdVcskYEp9IJmj5LJEzDtJHOZkwnQ6lDnYebH9Ju0AxXnk?= =?us-ascii?Q?8elN3OX+W5Q/wVt2QX22AaGAy2Hnd1+iKsZw47q5+TBAbo4eL2BwXudwnvV1?= =?us-ascii?Q?GYyltRh8jBFrd5ipZSw1QQmK2F2WN5sxVGEbHHS49SlDXHiw7DpF4ttNenR1?= =?us-ascii?Q?KCHH7VDj9J/fubGa2tySt591eygHLyn3ypcQsJYksEF16LEP//oLEQYNF+Y1?= =?us-ascii?Q?LkKl6O/QtrNFQGatV+jWY8TnkOdT+X/4GfdKsXwBKUWKub8fO7hHCurOMRLY?= =?us-ascii?Q?fg1aCeOUSQ=3D=3D?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: e06e1b9a-c092-4966-a8be-08de7a012293 X-MS-Exchange-CrossTenant-AuthSource: DS7PR12MB9473.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Mar 2026 15:17:22.8574 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 6TVAMdBAmQQqa1A8D9YCrF///QPR/FBVJb8bjWvCegRNc7ieysN0hejnmbvj9Z8K X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN7PPFD3499E3E3 On 4 Mar 2026, at 7:01, Usama Arif wrote: > From: Usama Arif > > migrate_vma_split_unmapped_folio() takes an extra reference via > folio_get() before calling folio_split_unmapped(). On success, the > split consumes this reference: __folio_freeze_and_split_unmapped() > expects the +1 in its folio_ref_freeze() check, and distributes it > across the resulting sub-folios via folio_ref_unfreeze(...+1), which > are later balanced by folio_put() calls in __migrate_device_finalize().= > > If folio_split_unmapped() fails (e.g., unexpected pinning returns > -EAGAIN), the function returns without calling folio_put(). The extra > reference is never released. > > Add the missing folio_put() on the error path. > > Fixes: 4265d67e405a4 ("mm/migrate_device: add THP splitting during migr= ation") > Closes: https://lore.kernel.org/all/CAA1CXcDyqPPwf_-W7B+PFQtL8HdoJGCEqV= sVxq7DhOUB=3DL4PQA@mail.gmail.com/ > Reported-by: Nico Pache > Signed-off-by: Usama Arif > --- > mm/migrate_device.c | 4 +++- > 1 file changed, 3 insertions(+), 1 deletion(-) > > diff --git a/mm/migrate_device.c b/mm/migrate_device.c > index 0a8b31939640f..351ecd9065d13 100644 > --- a/mm/migrate_device.c > +++ b/mm/migrate_device.c > @@ -917,8 +917,10 @@ static int migrate_vma_split_unmapped_folio(struct= migrate_vma *migrate, > folio_get(folio); > split_huge_pmd_address(migrate->vma, addr, true); > ret =3D folio_split_unmapped(folio, 0); > - if (ret) > + if (ret) { > + folio_put(folio); > return ret; > + } > migrate->src[idx] &=3D ~MIGRATE_PFN_COMPOUND; > flags =3D migrate->src[idx] & ((1UL << MIGRATE_PFN_SHIFT) - 1); > pfn =3D migrate->src[idx] >> MIGRATE_PFN_SHIFT; > -- = > 2.47.3 Add Balbir, who wrote the code, to comment on this. Best Regards, Yan, Zi