From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from BN8PR05CU002.outbound.protection.outlook.com (mail-eastus2azon11011020.outbound.protection.outlook.com [52.101.57.20]) (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 1AA471891A9 for ; Thu, 28 May 2026 22:59:02 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.57.20 ARC-Seal:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780009144; cv=fail; b=ZX7p+ncsXtkr8RMDb4I6dOx5kCYSEQy+/lW2N17JaTbNZGAMIJwcQhEKaEXW5BczZKWQnptGUfa1Dc4S+7ODIueYx1kY/ZS+notkCHjjBh3p4de1vJwGCCHtw0VBtRp6sMkOy3qEX0QJXqJB3sGKACKuebJB0YE2oX1+Krp1lO8= ARC-Message-Signature:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780009144; c=relaxed/simple; bh=b6hsEvNXH3rfIluGZJWe+CVXjFyqDNMTi0ZcqxCpXBY=; h=Date:From:To:Cc:Subject:Message-ID:References:Content-Type: Content-Disposition:In-Reply-To:MIME-Version; b=cUi3s30OjwI37CRMWfCoh47mn2yJ+P2C7S7icZEai9+DdY9tPDknhHPzvPCOE9FgE4xbYri9M3JaSrLDhGPD//tk00OYRST4WIF215+rDW66bRcuj5C+wYrwC8QfoUAQYBLZSTKPOkGaHA3G6m5QVCKm9fkrxuJEZeTAQXrsPNQ= 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=UqMdGkQP; arc=fail smtp.client-ip=52.101.57.20 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="UqMdGkQP" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=E6RL5mF4KAVSGnPbzH+i0w1SyRAWnGzbybzCLJZTQ0VGM3nwjuq4gY9T/DGvMvTfNgbnVnz/+mUS3U9rAKkvVPkd7NKZvyjMi2y9rbCdB9aDVaggZv0nDv+VZFT/uTvkIcjlkF+aVpjDfZCUhZOVkkN1E/mvL9fZ75GFUCYKXxG2ZHEeEv/jMr/A2zKA/+RK3wGbOVQiZ7nTBDvnvKObXQmS1TO4chdwoEdKPQbSxXqzrsgip2MK1VFvIHAJPJQABzMbC9s7U135wl9Le7aWXXJnErFQCMsFWsuFi1dA5uf0TV4U4hLcTVW3AhZXggei/l18/ta+jlVAj195KgaxaQ== 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=p/o/Ulf0dt3Aez4JIOWbWJorSc0XZbdL+wK3ba0WHBk=; b=CqeesTtf8ggmM7Ukk3mHFj9D3vQx0ztiXJMKHFBXBfOO0g/Qc+wYmADHu+4kkZ3jPkb9Y+gLQ11eoXyEk6/jdxSZDkNqLnIbd7OtIwRRWO1EvBdZFOgHqbzOSFYo/6srd7U9PDRe8HEH0a/oGHcRp1rB06E/Q3U6ks2PzhaAfr1fOJbeG+VFGaMIkOxQeelvBy5XhxlBTa0zUMCquK357ra4em1cU+XFU/qv231xXOHj/xlI2mFx7675J6CAqQU0KeTJOGiJCF7KWK1iMcLPDkHiYEjRkmEGUYOEZIibGJ995ppRByYCy8kTCbMPGkL9oFWxvFrnZeAjO1WLlFcp1g== 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=p/o/Ulf0dt3Aez4JIOWbWJorSc0XZbdL+wK3ba0WHBk=; b=UqMdGkQPamGW8W7v15pb3Gkadz9NE3sb7hM2Prs/8u3qceaxWQKtpv4kQPhLz6lNyfVBgnPnEVkeiJWGLdeimQrolLq3tM0iXGoeIDRyZCBtUAjf1hIHJZNRxy7vQybidGzRPoH6PXGUhsEkAzdkzX9c0+wOE+fTqjsb4Nwgdx5yV8+PhO+XHHlx4D4Rb1GV60W42Zc29jtdPWK4EMJKgALYBWhWwRaKCiXSYC797HcwwWJG13d6uPYT40GmgVGufs5YOy+fB2icRyTtIgm2WlK8jKWJYSYKj1t7eTXJyBRwCd47F37MLNGv3NznducN+KwOiL8p4BNmigvIfIrxjQ== 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 SJ5PPF1C7838BF6.namprd12.prod.outlook.com (2603:10b6:a0f:fc02::98d) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.71.11; Thu, 28 May 2026 22:58:54 +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.21.0071.011; Thu, 28 May 2026 22:58:53 +0000 Date: Fri, 29 May 2026 08:58:48 +1000 From: Balbir Singh To: Alistair Popple Cc: Hao Ge , Andrew Morton , Jason Gunthorpe , Leon Romanovsky , linux-kernel@vger.kernel.org, linux-mm@kvack.org, Sashiko Subject: Re: [PATCH] lib/test_hmm: fix memory leak in dmirror_migrate_to_system() Message-ID: References: <20260528011336.20797-1-hao.ge@linux.dev> Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: X-ClientProxiedBy: ME3P282CA0054.AUSP282.PROD.OUTLOOK.COM (2603:10c6:220:5::23) To MW4PR12MB7286.namprd12.prod.outlook.com (2603:10b6:303:22f::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: PH8PR12MB7277:EE_|SJ5PPF1C7838BF6:EE_ X-MS-Office365-Filtering-Correlation-Id: e8fc7886-1693-4d5d-8146-08debd0cb037 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|376014|366016|22082099003|18002099003|4143699003|56012099006|11063799006; X-Microsoft-Antispam-Message-Info: et9BSvsCtgjToHGDnioNh1dcnOethwrtERWJ0vx9vD8KFgsqVFhNbf+YkNFaYKSC/RWHrZDDd+UY8/+FaApM21BrtSqVBfpf2tOFklq3HXeYyY9DdAvL6vydUeAd4InfHa1JKhvmQ2D4W5x8VXwdh6ctfBdj5Yw2fFRJ6MycbrZZL2srZR/kfOSJBsx8544kW5Q/pEN9ksOes5489OQqMdoSmXUvWtBBaiumN6yp1vzjWU3z6c944c7VGxBzx54X95N1Gb35nEVzdmut7bo1A+qUGuLllb02HTpNowT+oF51nUu/P+o7z0/naym3f3M4lpV+nL4KfHmt/C9MukL5ImcQfNPjzOgbFAMVMUwkViQrGRMScmX1IgeXIJMLD8TEjPGJdjDsbs3A8ee3L7m1vaEQpo1YBMq5b8FGE9j1VSiEwNcKFdjbywIbSRV/fNDV/MmTiwgM2CfyP52EBVRFqFI7tJ10amQNTfwEz5L+t5vBgfEB+hqL4EGS6zagAIeOqonQtRJZsy2HQ8qoM4vbP9ZQAB+SosMFn5001dyEHpluP/kun5AjfOOgcrgMMupWlVWcO+yPwv9POLHy5/VUdCtQ3EvWBAbAw8YU+vnr9M7Wk2WiPedIBvH4Pys0vK/HnrAsBtylAdqDvolgJncaA93iKhJYIs/dvo2FtUCUM+pEUBsOloDIjyMmwPxBJaaQ 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)(1800799024)(376014)(366016)(22082099003)(18002099003)(4143699003)(56012099006)(11063799006);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?9cOnhKb7q/e26hZsdLUifyBD4QSPQfApIBpdmA5M7CgjCqAmafgKjuATjtBJ?= =?us-ascii?Q?9C8WLouJVcuYcPdPVul9JMK5wHehTOaASzVkkdJEyQolm7wat3wGRT/L/NJJ?= =?us-ascii?Q?uWGGhjgaWUAeb/tyP3uYAmC6j5HBKXReDlAxhY2uH3cK/VuOdhqULPB9YFMW?= =?us-ascii?Q?BDyW9r+lbaHvvdHjQlBtzE9iIZQ97dkzftNcLFhyAULgo/cMRBdtxvlvPLVa?= =?us-ascii?Q?E1P9Zu5q0ztzJ2aMxjSsZyZcOWha5Mf/25CziLJh9guAwOl2Zro4LTJUX4v0?= =?us-ascii?Q?yJPV7hPwfkY5jFiVTXt9I/ck4O0BVaF5gAnJDQUpb5iui+88fXWWfdShu0te?= =?us-ascii?Q?WaVIVvnqrckpREJobt0nECQ134m7+T3Uqa/E0Uixsg09/S9sA6tmrUR2zi7X?= =?us-ascii?Q?nGMVcG3WOgYHWbERY7nvjNTeK9D0FmbZEXDbZC8xeBcUq2HzSARFgOXwAEPn?= =?us-ascii?Q?3T+vb6gTk732Vy2sqEHZn/8XpeBDMwY1t2SreHZEKOzmD6wpzgg9KwtG7LkD?= =?us-ascii?Q?6HCxtrS2hBAm9H00+7apyhPmned1yBMYVoBOru9veAZjCrRbvu6hQ1Ku1Gmn?= =?us-ascii?Q?PDGUAoF9V55Wdh2kKnzZImTbPdw9JXOCKz6URmvQjSOYStQG7R0ftfR8JPpz?= =?us-ascii?Q?l+ZkRmaO6OoeUDQxJTN8TIn2pvsaBUPtWwPSWWQKw5sVztEiryeb9MHXxjnn?= =?us-ascii?Q?fgCLG2EVPrCAlvnZKVSuht1RX5YJ0EBa1ys8W76+s5FYseIOZJu1xzhWjbOW?= =?us-ascii?Q?+xAD42BaxCXAY4NlI9IfjOayktTG1lw7M8T1dFacxnvHafwAPEYxDQSMpK6k?= =?us-ascii?Q?+pNdOQ9CcCuxLALp/Z5MYAq+fCBhmSxlI4wSogYojdLn65TODz+85IK8tAnS?= =?us-ascii?Q?Ngp+VuFg1GGJ7z1y+D3r3jo9w/I1DcEtNvpRmi8/lGBS/6v8nsphuaFyET8o?= =?us-ascii?Q?IbIt9hzZ/Z64TNJ+69IfNsud4wqONNxw6sBAYXBS2Jru7FSkvzuBuGGb3Ull?= =?us-ascii?Q?ae4hVw0JNvM7hyVCJqwWJhUBkpzdj/2BEuiKIP4mCLlAmuwR3YtBYepdUiyU?= =?us-ascii?Q?bgpHHohb7otcrlvxaS86ZmsdnP0lbgz0SwVGPxepFci3RXpYsCSBPAneHCAI?= =?us-ascii?Q?6cA8W6z0wwHOl1dXDL9R7ZRpFoQ6igEqzxLBmX1GVjIpeCobk/weNJxwssiP?= =?us-ascii?Q?INnKHoUPd+V52MJjPVFYSr19eaXtHSjOwU7z7kuP+3/uMboz3740ftbebXG6?= =?us-ascii?Q?0/P5dQvdwdRNRReuf1/9vNzN+H17OMNkpuLFQe8oDDWH6/ywvxJlyw4htC6J?= =?us-ascii?Q?hqmTfHW5TscEg+ECgEqwan9u/HsYCa2XZfj03hEhjxeC2BROhhw5aM3pDoyh?= =?us-ascii?Q?H84r6clcm9HWH2gz+52ci8AHaXLPVhJjYQFzGgWHaqpXV33oUjYKIIzADAaC?= =?us-ascii?Q?JU4pQEtXVdfqynx/HfjZrhMxdW4WKePYDQVGpBHXwFwz1fvIV0DBFn7pvMXA?= =?us-ascii?Q?nsmcDJlfAff7ATi0OYoweMd76nCh5RkbARDiEV5xHMfhyJ+Y94wahmnp3XFu?= =?us-ascii?Q?GWOzFXHvX94ikemXMKp0CF+5R3pGHBS3LRbujSFO5Np2yi8SrhUXzCwWNwJ6?= =?us-ascii?Q?rGYzQXgtdrhE32fLrVwGg7sv5bxDNuDQRBcYct8zg+OG+YB8PkFLSDExn4fu?= =?us-ascii?Q?q9BOzAiYHC/hPDE9VwIYzdWHzw2W5tk6yrtcAnAAQiNoERHfydkkPz1BkUq0?= =?us-ascii?Q?uPvB66b5PQ=3D=3D?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: e8fc7886-1693-4d5d-8146-08debd0cb037 X-MS-Exchange-CrossTenant-AuthSource: MW4PR12MB7286.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 May 2026 22:58:53.6962 (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: Fr2eExuz1AxJMQUCXu295gqveKp5pHC+dS1miAYeEuN900aNgMcSwPR8co5Ggq4KZGTUQI1nuTRKNwDpYJ07Cg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ5PPF1C7838BF6 On Thu, May 28, 2026 at 02:13:42PM +1000, Alistair Popple wrote: > On 2026-05-28 at 11:13 +1000, Hao Ge wrote... > > Move the kvcalloc() calls after the early return checks to avoid > > leaking src_pfns and dst_pfns when end < start or mmget_not_zero() > > fails. > > Thanks. > > Reviewed-by: Alistair Popple Thanks, might be late but Reviewed-by: Balbir Singh > > > Fixes: 775465fd26a3 ("lib/test_hmm: add zone device private THP test infrastructure") > > Reported-by: Sashiko > > Signed-off-by: Hao Ge > > --- > > Sashiko report: https://sashiko.dev/#/patchset/20260513082525.154036-1-hao.ge@linux.dev > > > > It looks like the other issue reported by Sashiko (dmirror_devmem_fault() > > leaking args.src/args.dst on migrate_vma_setup() failure) may have already > > been addressed in mm-new by 84808b0e9f75 ("lib/test_hmm: fix error path in > > dmirror_devmem_fault()"). > > --- > > lib/test_hmm.c | 6 +++--- > > 1 file changed, 3 insertions(+), 3 deletions(-) > > > > diff --git a/lib/test_hmm.c b/lib/test_hmm.c > > index 213504915737..0c02871b97ba 100644 > > --- a/lib/test_hmm.c > > +++ b/lib/test_hmm.c > > @@ -1111,9 +1111,6 @@ static int dmirror_migrate_to_system(struct dmirror *dmirror, > > unsigned long *src_pfns; > > unsigned long *dst_pfns; > > > > - src_pfns = kvcalloc(PTRS_PER_PTE, sizeof(*src_pfns), GFP_KERNEL | __GFP_NOFAIL); > > - dst_pfns = kvcalloc(PTRS_PER_PTE, sizeof(*dst_pfns), GFP_KERNEL | __GFP_NOFAIL); > > - > > start = cmd->addr; > > end = start + size; > > if (end < start) > > @@ -1123,6 +1120,9 @@ static int dmirror_migrate_to_system(struct dmirror *dmirror, > > if (!mmget_not_zero(mm)) > > return -EINVAL; > > > > + src_pfns = kvcalloc(PTRS_PER_PTE, sizeof(*src_pfns), GFP_KERNEL | __GFP_NOFAIL); > > + dst_pfns = kvcalloc(PTRS_PER_PTE, sizeof(*dst_pfns), GFP_KERNEL | __GFP_NOFAIL); > > + > > cmd->cpages = 0; > > mmap_read_lock(mm); > > for (addr = start; addr < end; addr = next) { > > -- > > 2.25.1 > > > >