From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from CY7PR03CU001.outbound.protection.outlook.com (mail-westcentralusazon11010032.outbound.protection.outlook.com [40.93.198.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 0FC072C028B for ; Wed, 4 Mar 2026 21:48:20 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.93.198.32 ARC-Seal:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772660902; cv=fail; b=hUE9h0Hc8qVfXADSSJxtyNNkuBUR3vWu5yr1EWhM5STFYDmcnJgRzJg/IESANC85MDKmkryASsx/ebolgg7VUjzt7lykzSQ6j4evb5eMC9DXkjEgvj62RtQa+WLax2hWR7LZJrByrGOa75Vv6IU2vHsK6E6Jzgi6rlGrqnSc1jY= ARC-Message-Signature:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772660902; c=relaxed/simple; bh=asQyX6ArjGixIdeWz9J1n3gmnEsne45aMRgnSrRDj8w=; h=Message-ID:Date:Subject:To:Cc:References:From:In-Reply-To: Content-Type:MIME-Version; b=SW4uVxn0D3Qz2xA5zPVVHYGKGQlvxZRvP3xOLHrl/HRXr9XCgI57Ai+skdMyvyLPbztf+inB5/j9xDs4PurQn7DRcKkWTujphEVFKoKtQZtlfD/2Y9SolNzctgaN9wLDTvP2FkxUK3aFjEX0pdd8YBokc7RxgMv1r7SjuzJ0Apg= 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=BXZvckoN; arc=fail smtp.client-ip=40.93.198.32 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="BXZvckoN" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=DwEVhNoDv7ukDsuUK+e+DyFpjI/eP75OfZkuX/SllmDaBfuPw9x9eokwXwCLgqlaFafjzV45TfYtlh/lRgRSuUru1e+K77x429JrxX65JLRgx5Pt9SeUKJfh3uEJCFoaKcmoAJpvBRizywmkHMmPIWeGmw/q2hd9hpaPA7qdx+RsJIcNVwbx0djSiNbQ/6yBqG/whmLja0Qo31nJiJoc1XlS3jRqaGmMNfwZIND5POYDtUbtSkSwEAAmcrH5IeGtxDG8X2yrptnzLnFUN8hYBdEQD4SapejbODVQ0DfJzNmH/QqNR3VgA3HYNQzIB2FMg9LJdjIp4ujXZu0FHibL7g== 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=dDbJlm6EhKYDOCGAtkUjyJEnxN+v33J8RVoAnke9c0M=; b=vdaRMBQtSzm4LCCZnS0iiQt86fQ7zrCwoabcTR0JMQkrv+jV8UmeYvcVq52Pdp7ZCEa9kdBKolv+ckr9Eg20h8pQiAfAxRd9DOI1LWakqqjB7W0yMOjSggOGxF/dkd7vkw4cAqdhYXHv32mlu9eQcoiWhcfCN6VwmaR+z1+/h6uKbxoNd2OjyTiO43XYzlGjUD0Rlijo63Iw15OGJLlTEE5Ni3SuMIqdfP/7+dqwIsE/ThFDs+mjFJR9MeCf0HBQG7iJX/OkHMuebKI+I9UapEDhrVR+F9xs23UhJu4FOeH0Q+DsygKntOOTTGLhLi3/3/R5clgyOQV33sDayxRDiQ== 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=dDbJlm6EhKYDOCGAtkUjyJEnxN+v33J8RVoAnke9c0M=; b=BXZvckoNVHaFM+8RzkpOW6TjetoJHlQTVfvPDicQ+aOQKjNHmyeZu/O/tAl9pf8/Cc1iGc5BidfhytGP8sRdDSPn0V3ZAouxJwEd4KuBgxr4AMiPisQfFVpvV1ecMewkcxTyzmODLZCKXGE6hoLsh2Cy1sGZZkpGzCUBRvezhlBcB2b6/sWanlh+F1hAaIkW4U9rFUWYlZN7li2/lHRMGHHa/yfgxelC40CLAy6diOYkHonUIkKv8yqphKFE69u+74ZCD4lp74p/NP5OdAqC+apnL7ePVAjT2skGrURWykloCDBXajnimiP+8Okh9Uq9KFotQfQYqxJ4qKoT+YdMOg== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; Received: from PH8PR12MB7277.namprd12.prod.outlook.com (2603:10b6:510:223::13) by SN7PR12MB7856.namprd12.prod.outlook.com (2603:10b6:806:340::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9654.22; Wed, 4 Mar 2026 21:48:17 +0000 Received: from PH8PR12MB7277.namprd12.prod.outlook.com ([fe80::2920:e6d9:4461:e2b4]) by PH8PR12MB7277.namprd12.prod.outlook.com ([fe80::2920:e6d9:4461:e2b4%5]) with mapi id 15.20.9654.022; Wed, 4 Mar 2026 21:48:17 +0000 Message-ID: Date: Thu, 5 Mar 2026 08:48:09 +1100 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH] mm/migrate_device: fix folio refcount leak on folio_split_unmapped failure To: Zi Yan , Usama Arif 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 References: <20260304120132.3973445-1-usamaarif642@gmail.com> Content-Language: en-US From: Balbir Singh In-Reply-To: Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-ClientProxiedBy: BYAPR08CA0021.namprd08.prod.outlook.com (2603:10b6:a03:100::34) To PH8PR12MB7277.namprd12.prod.outlook.com (2603:10b6:510:223::13) 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: PH8PR12MB7277:EE_|SN7PR12MB7856:EE_ X-MS-Office365-Filtering-Correlation-Id: 53c546a3-8d28-40b3-59ad-08de7a37beb4 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|1800799024|376014|7416014; X-Microsoft-Antispam-Message-Info: Gbn6hw+oLSIdVQqFwHAe9ur6tuIZpXF06MSo7N2RwwN1O1nNYnZA6TcIj34BvI8sJOgQIpe28u+f6SPg56sNsXZLumQX6QlYwawFjy0z7Q3PCGYa7RgK5hStgMfGwxpNjo84siR1GXhmr58LGN7UUzSUT2FdPnAODqjA0a/auMTSCiejscaPU07F888F1c7uUOedAgz33oJBAn8onaTOoAC4tPgRstYFRZrKSfDv6hotMR7XWFX4NcaBLBwsa2HHdChVHZlEk5bSeOUkCYKht71bTAiWNA9CvFj11LsRCp3fd2YLutMvj/Dw44hjDjfVvfuY2MmMmFuOkZz1v6+Bd+0BKggDtKUuhR9v1r5i6yYZZzbDBz1BpunbYgRMu4nIEspASpOTG1EPbE+r6LL7OmB96niXvGXT6ySK5ycbPX4GjeCTr/frAiL4v6thcgzQh7Q9wnKKqf6UpROBvL6TfB/7FG35loLxnIHHPjNu9GgSUlQUE4ih06zvUopt8gDBshPMd3AHti7fG8/QyKlTPa7Rr5A93t6+du2tdw1VOdXXtB6O+2wzz/cl8yVN16E+qXgo45CsUoAHKm0IdNG8FGRT8iwXK9T18jQdEkUsdOX5C2SYwIs9qETKA+44eoSiPnadrm7RXbGx18qktC0WlfrAYKhpP45sVOcvN07lyZYNMgIYP0diaSjVvamGFuauIkvwynvZfn40IKs0jkRpSWUzC2xsYGI/R7b6ZW3IJpc= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PH8PR12MB7277.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(7416014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?WVVsSER0MlIxaWdobjlJNnhqeVBwRFdVVk1YeUwrUUhSWEd4SWNoOWpGZzcz?= =?utf-8?B?dWV3ZWF1dkN3M2phVCtISzJkTVlvSW5LL2pBcUVVUmN6Z3FEV2E4SFovRE1x?= =?utf-8?B?dUdBcTNuZkNQT1FXS1drOUNFOG1DTERRd1ZYQjZXa0taYjNuRmtzNk9ldTZs?= =?utf-8?B?QU1YMFVUMUpWa0ZCV0FicklPR1VSQ2RTNDg2U3RhK1FIUWIwcjJjZ3h1SmFP?= =?utf-8?B?TFhTZnh3bUVIQU43QW0wYS9HY2s1RFIzSDBwSllYNUgvMU5MOTM3Q201VlBp?= =?utf-8?B?V3p5U0JoUXNtUlJsRGxYU2puR2lEL0pwN3VjeE5GdHlDdDFhcVBqWUw0TWdw?= =?utf-8?B?bFE5Sk91VWZZOUo0aFhxM1BZMmQxa3J2OGdKU2YxSGRjbHhqa2NOVWJ0UlVv?= =?utf-8?B?NG5sRHhsMUpVSUR0K2VuYlhLYnl6QlFOUWEyM0hqQ1A2VWswMUZJQXU1dzRq?= =?utf-8?B?ZEQ0QmM2cTRvbmRRQ2FJdG5udFlpRkFmbjNXUENEQTFQRDNMREd4a1Q0N0hT?= =?utf-8?B?UlE3cW5HWEpNaTQ5T1Q0SjVQeHBKcEk0c2xRaWNNTUNvMjNxeDVveDh4cE5C?= =?utf-8?B?NzFYMzIxQ2Fhdk5DV0xzb1NIZERNWXlCQXRQcnFQRlhxV081Y01KMlJPN2Jw?= =?utf-8?B?ekRPSFBWTk0rQVhLMWg2WG9xNmhwcHZkNlV1KzRSWnEvY3E5UllyQ0dlalVO?= =?utf-8?B?RGRJeFFGcXo4bEd3ZjJ2TmNOOEF0SzNMVkM2Y2pHQlZWcjRkU1d0U0dYN3kv?= =?utf-8?B?N3pJZTBaT0toTHBhbk1pa3dzNUVvMzQ3YUlkQzFYYkFVcStoaHAwZzZYWndP?= =?utf-8?B?VXBNWFhLdDdBM2FMSFpCM0JmdU5ZNGtBUXUrTFU2MEpoR1VrcXFydzlKMmxB?= =?utf-8?B?V0l4WEZKVVBCdU14Zmc5UmM5VGlLdWJTellTbDBkN2xZNm1vRExSeXVZYmQr?= =?utf-8?B?WXBaS0t6bDhKdTFqa3JFZ1JlWHBDaSszOXdWLy9iYTg1SHU1YXpnNUp3d1Jn?= =?utf-8?B?dkJEeE9YRkxuZ2llb1d1WnVNcmx3dHVFSHRiMktKMkltQXhBMERLSEROZlhU?= =?utf-8?B?NkExUnpHTkpDUXNzKzEzcUR1bkZKM1lVTGNtWFFhY0ZJVWpqQU5XWmxVYXFI?= =?utf-8?B?Wlg3aXROYXdDdkRyVlIwL2tyRjlvSmpZOFpBNUVSaVNpOTBKYjFiQmx5ZVBP?= =?utf-8?B?QVJtYkVoRXV1aFllc1lvZ1lOVHIwNWFnMHJDM29KZUxQYTVGcnVveHFnWEh5?= =?utf-8?B?QTZwekJxMmFuUWxIa1l0Rm9UNDE1Q0t0QnpEREpzWnJreExvbTVaRVFaTkxB?= =?utf-8?B?Uk5tU3FyS2FCb1N2dFVtQVJGaTkyRVlRQSsza0FTSkNNejE1OVROWTZQUHhx?= =?utf-8?B?YkQxanVSZVc4VTM1VDVhZmR2aUNVcFdSbU0yQWN1UWRNL01iT0xTc3hDYjhK?= =?utf-8?B?SjIvSUhVK3Q5c2xMalhlL05pOEFnWWwzVURtTnVNNFFidDRzbjhvVko4WStr?= =?utf-8?B?NTVtSXRaTXgvendEZHFTWUFNRi9ycnhPRXdETEhRREJ4Yld3VCtpajZYY1I3?= =?utf-8?B?eWZmV2JRQlF6US8yODdqMTQvOUt4Q1J2NVBlYUhwbnFRR1J3L3lZUEZTSVdY?= =?utf-8?B?blFObFhlY0FRbjRiSE1IdzZlckp4enJKQkdmMkltVmNVaGZTVWZOM0xYRkg1?= =?utf-8?B?M2owRnhnb3o3YlJ0WHhQL1VUNzlKT1daUDFVWi9MUGxhS1dNZDJiRGZ3ZlRB?= =?utf-8?B?RGkvQm50UjMyOVozOUIxSFMrY3dYWGNRVEJWYjVueFdFd2NjbjNGYzJkYXJY?= =?utf-8?B?SEU0VWlQVDQyeDZHYUt2N0U5dW1qU2t1cmx2UG8zRmhwcjlvTC9LVDl6RHdm?= =?utf-8?B?U2N2dnpQanNFdlE5TG5QTXd2MFJMcGkreUhwc0drMFE0N0VjRU5zUkZNZU0w?= =?utf-8?B?eGhOS2NzNHRPVkxwY2NDdmJRS0ovK2tiZjE1RXVyR2ZrS3lGbmV5Y2F6d3FP?= =?utf-8?B?TFlmNVViUGxjcTQ3N1pFVFJzOGUvdlZVMDc5eVE2ZlZRSk9GNUlVVUNnUStk?= =?utf-8?B?MEkrTUlHYTA4NWpOdXJOTXZCcEhQMkN5d0kvd1ZhWitpNlpTaEFuVVQ1eldZ?= =?utf-8?B?MDlTOWdJdEFBS3VjamhScFhaSHVndENMbHpQQkZFSG9oODRLVkhLNFZrN1hm?= =?utf-8?B?eHpDTGNWTHZnY2trcXEwREFuOHhhY3BXTXgrY3FMVmVlNkorck9jcTBtNmlQ?= =?utf-8?B?ZW56WjM0RG1UVkN1OElsMFJLbmhUekovNGtpZmxPdTRxLzdqOGZ6cDVOc253?= =?utf-8?B?dzkvWGM2ZEROakVyM3ZDTVlCc2hoUjRKTDhJdmtnSTIrb2kzNGN4Zz09?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 53c546a3-8d28-40b3-59ad-08de7a37beb4 X-MS-Exchange-CrossTenant-AuthSource: PH8PR12MB7277.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Mar 2026 21:48:17.5761 (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: m7IwcnXcwLKqWEQ76dnw69Rt4y9PggBYn73YopDiWOTQZS78w3s2fISjqv5y9V/0cSI/AGWoP+gMKvRNFy3cVA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN7PR12MB7856 On 3/5/26 02:17, Zi Yan wrote: > 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 migration") >> Closes: https://lore.kernel.org/all/CAA1CXcDyqPPwf_-W7B+PFQtL8HdoJGCEqVsVxq7DhOUB=L4PQA@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 = folio_split_unmapped(folio, 0); >> - if (ret) >> + if (ret) { >> + folio_put(folio); >> return ret; >> + } >> migrate->src[idx] &= ~MIGRATE_PFN_COMPOUND; >> flags = migrate->src[idx] & ((1UL << MIGRATE_PFN_SHIFT) - 1); >> pfn = migrate->src[idx] >> MIGRATE_PFN_SHIFT; >> -- >> 2.47.3 > > Add Balbir, who wrote the code, to comment on this. > Thanks Zi! Just wondering if there is a reproducer for the issue and how the fix was tested? I expect migrate_vma_finalize() to be called for folios, even when split failed and drop the lock. Balbir