From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from CH4PR04CU002.outbound.protection.outlook.com (mail-northcentralusazon11013046.outbound.protection.outlook.com [40.107.201.46]) (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 3EF9B306B31 for ; Thu, 28 May 2026 04:13:53 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.201.46 ARC-Seal:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779941634; cv=fail; b=L6AgX75ZEaP419Omx+GcyekARKaTZvhmm+qQkso/GBtEEUB1Bx6lHSwrRQuA9BmDu2xXyP+MpRf3ZcdrTJPuNQgrm8WZ1zfxaOGjWNwGjYm/sfkeMBHi2QetYjmsdR5oMZXNOu9wCOtnGKMZ67aWqQ2bRYNwQodi0f/Fjh4KzNk= ARC-Message-Signature:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779941634; c=relaxed/simple; bh=9kwdl0iVKuSQilJ6AhqxuM4VDzbrKbOLeA1BtrJOCXU=; h=Date:From:To:Cc:Subject:Message-ID:References:Content-Type: Content-Disposition:In-Reply-To:MIME-Version; b=ok2cBM9pODQzUaMML6RMuRA7+ehgekD5qOYz35tlahFJ7+uzwTiXJ/Qtwe/BU61s/Gg8Zm+zWDNQgjZ9GrWCr9Wx/avRT8EmfE8uq8S1u4VrBvbYnynFSLqm9I9VuVwzdZzM1Pdvsbp5LWNNH3QqmK0rxkORkWrixruptj0RwGU= 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=VoRUAQTS; arc=fail smtp.client-ip=40.107.201.46 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="VoRUAQTS" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=XiW8bmwOXHFuZq4QRsogFVT3xwrV9E5XHm1pQ+iLpGxHPeUIfskt7HLnTkptXJGn85ipPaCxrnQ0DU2E4Q8tCP0wMNQk4cBEUh+UagDf8yqMiXjgEPBExoY8HHJkUe2tv35N713soi7eIzJMzOY7cAZicYdFa/YTQyD5K3dyuWOwBr9nq9JWFlPMrNoTqrDiS2//bGX6RnlNVC052EBxsphOL+dfRI31lQiaz5E9+sljsksW1V2beR8lknzdd8Kv0fSx8FJZyJvl/6J1eNVu4+sVmXxwv5T+hRMz/0MkyeYOwmss82Fz/J2/rbmFi4fKYo6+H42p2nFVkle6pwQBkQ== 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=oboPCJiPTkb1xQCb5sybWsovVY18H0BGd04oVfKii6A=; b=irgAWBT/1S4xzxWNMu8XV/XYf0VTW07hXgE6F5bIAvrsuiqCAsOlMDBjKH+BMGpO59VEOgs0yTYcYy64thd+xNyEA1o2ymZ9NnUKPLT20AHgdjcO1bSC8lkCzKF3jj5L+1etCPjrHU1QhwH0hu4xBsuhY15J0rC47S/zb/igGDYtLkfSwxw3CziceLLrAOnFCAqk6c2Mgm/K1cG20Tfw2NHCcv4jhvUk4zi7PqkTNlE/ExoeROnSLCAu6UniKScGxDq0JN1oyx0ZkHH/9ZET99nvhrfo2PWjmFUDb90YxXk3NamMkg351LzpXMPbZs3+WZvXdPGXNXiX1IRPZpLaEA== 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=oboPCJiPTkb1xQCb5sybWsovVY18H0BGd04oVfKii6A=; b=VoRUAQTSaVkHdAcF+wgFEkwkAwOobB1+q3kl//XgaFuQElEXkscC7ZYFan3L4s+/LD6SQLO3LpJEGHInSv9O/vunmIdkLTZVOXB+WJc9U2UMPlxr3qQZEpfSwgRX2N7ZxxgEux102yhpw0Bryv9SI3YC6S6GyLhBzUlf/q87g1MOCYxzyt+SArKw8juOYldQfJbICeltHe7B1l4uBCcJwRNgF5qeFujHiNUoYPMHAkleK2h3OzsJG56OCJCFai+tmar8FLiR13cSenTRipWpLKgMrJRf2JAkfyvmFZlRp9UGkkbr3fhUIPCZDmH69kS0RaWbUCIP1viDZAodmAb9lA== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; Received: from DS0PR12MB7726.namprd12.prod.outlook.com (2603:10b6:8:130::6) by DM4PR12MB7696.namprd12.prod.outlook.com (2603:10b6:8:100::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.71.13; Thu, 28 May 2026 04:13:49 +0000 Received: from DS0PR12MB7726.namprd12.prod.outlook.com ([fe80::5807:8e24:69b0:f6c0]) by DS0PR12MB7726.namprd12.prod.outlook.com ([fe80::5807:8e24:69b0:f6c0%4]) with mapi id 15.21.0071.011; Thu, 28 May 2026 04:13:48 +0000 Date: Thu, 28 May 2026 14:13:42 +1000 From: Alistair Popple To: Hao Ge Cc: Andrew Morton , Jason Gunthorpe , Leon Romanovsky , Balbir Singh , 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: <20260528011336.20797-1-hao.ge@linux.dev> X-ClientProxiedBy: SY5P300CA0011.AUSP300.PROD.OUTLOOK.COM (2603:10c6:10:1fb::18) To DS0PR12MB7726.namprd12.prod.outlook.com (2603:10b6:8:130::6) 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: DS0PR12MB7726:EE_|DM4PR12MB7696:EE_ X-MS-Office365-Filtering-Correlation-Id: 643d8374-6a15-4081-3a1b-08debc6f8483 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|376014|18002099003|22082099003|56012099006|11063799006; X-Microsoft-Antispam-Message-Info: TVYpvXmmJ59hpLGtohF5v8iIF4D67Nqd1okaD7x2i8uo2NDx5clONwOXmgvOyn9wILXcuc4py8O9OPKAT29bhOGBnl0TyflZqEIwmrNfjW3/aznjHcPTPpmBDEskNV2o6EUG2GfIL5o2YC24WbuZYNQxI2/W6VKtKxaFuH/QLd45RHNi+i7GFIE3PnmcPGdyDGItcp2UxAYhBITrQJvbY4NPdcO3qJCJ6K3up9caquFJ3h6HivmppD3pz/jNVrao+rER2r00Kp5Yr2TD5L5lJL9fYUAuC23h+I4O1qAcQj4Hz/lnJwthoebfaq5pqp7heMs5pgVYNFtss07JBxpMou/w8GdLzDAQvALq0nAuZqFIC3TZJKJA8NA9+k3/hWCNRC9QmDMeq7XNTKsKNt2c51TmzeVIzRc8U8Q56ZST8mTbVW97wBMFOyM2JxwMf69j5t6twVrTqR6jvatzEcNKBIULeWIkppXhklmnL0DrnqkvQKZrXsW78YqiGBuFsB8O+fmA4ANsq6e7NDBSxw9d8EZqOcCDG3FKXa62xBceIo+lT13FzwX1QU1a+9YS4lDmSkjGTNz+6V60N+dJ4ZKX5dEMY55NBY4a9o1WIFQbUyvkDhNUNnWaXOfG/zixbpBNSh3kTsLZrcmQ8JdkUG5/yOuAS/7sNwtc6u2Gpdv/Ny7AQ1l2HF4cRlSCD8VbzoQ6 X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS0PR12MB7726.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014)(18002099003)(22082099003)(56012099006)(11063799006);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?fPXcgcCiXiXKM8JiMiXlqXiqbREZGRd8uOkhzpeol7KBQ87tTcEQaNHJwzfT?= =?us-ascii?Q?ngbLW1rlXpTXifaJfeVHAjvaqeap4J0qEfbszEhC2ejRnMOkf5Tp0mkH1xVV?= =?us-ascii?Q?rdSLJ14hYOgGmhQGEAg2H9hUr0mztcEBVfHaMHOqkxko80GUyoWQZ0RYtWs4?= =?us-ascii?Q?3LOvOuSC5dnAhK5c02ciuhO9FrAaPLxR2dKn8pRWvl7XcScltf3cQdrrvApv?= =?us-ascii?Q?FuDQtEJpdkuSFUl+LyGIL+zL0rFwCO1tCmgoFW5SDoxQbBI/xVf2KhQwpDsp?= =?us-ascii?Q?9taJFWjx9HZ42jfjgBuKRrOboYWA1I/2oIBoKuODUJvHKlxF/GP/5SC9Yrot?= =?us-ascii?Q?0qBswuuUDqnWKD659AekL6B3TzfAJL3DwgQUcUKablvVNgFqgW3I7s2Dx23N?= =?us-ascii?Q?n1QOEOMKZ9YF8PNLVnkT6bie/ozpYLQ0GZHJ07th1cCkJg0qRv89bEISyDRE?= =?us-ascii?Q?/O2JtQaaOa/6wijYb4Sa81pF8UoVuJl2vLMQG72yGzrQ7vNxcgGkrcmp1L0j?= =?us-ascii?Q?WXfoOAcfuEQ/sZ/0L48RKzTjq3tHwURVi6Qg5hkjlGFvK3fqyU/c/3c/Erxu?= =?us-ascii?Q?exLl/E+HN4mLCmwgzkgoou4kkjeGbRjQkYnMU6SYSgy+Cv1VKpl34uQe9kg8?= =?us-ascii?Q?bUt+DN/EDa5i0CuExQ6Blzlvrys4IVwav1OMY+7ySP1dGFrOJSlP3JywHdoL?= =?us-ascii?Q?rZwdxgHo7d/B4HstoqcJOSKY0Bc/80wKsyM2M0ZYMXC83lqTYEITi2zn1Zgu?= =?us-ascii?Q?ZbuOHQ+t/NGqpXYANQYnLQYHwacHmhFrV8Cgau6CrhX7BCyNyyvIRadtxLBJ?= =?us-ascii?Q?X0zoWSni8kvWtbf80y1MIre5FTam5WePBrOOsQss7bXILLTz2ce7JCv3es+5?= =?us-ascii?Q?4bjHtK5pzzm0lOQf5k4rZ8xl/0jAVKptlVJxmQeZSwmdEL0T4dmmETJDIu/Q?= =?us-ascii?Q?y3Ej2vSQ1bVXpf2Jn62jh/LZfvyS/lFMoTt6wNjiczO2O+P1KBg6pNhBEaXu?= =?us-ascii?Q?2sYIgxbo0F8Frf7Ry9mZO8oc8TR7qjomI0HSy7xZkb5hzM1DYs7gNhOjBGi+?= =?us-ascii?Q?7IOQK9ZqcFif6/3AXlgIDvZAM8m76v44TUu73fmfOttUAM0mx+PLXZWebfXu?= =?us-ascii?Q?TVhRC8zVWzqSq6uPJeUJpAqj1kKFWRB/C3/cWehNBdOHNXVnQ3riODHhHyWd?= =?us-ascii?Q?cSDY4/RUXL4i+Knv/QEuEnrt78Lby89Wxly9mPI19Pu32JG8GKs1kqLQqGjz?= =?us-ascii?Q?d+Zgk+Va1MeAb3ey1c6ZJ+U6tQ6QIV3jIhV965ckHX8eiPTiL2pq4e14isHA?= =?us-ascii?Q?5byVdccTm7ZLmRWeP6ajd9r/4dGnwqOcp7oCuyXeBs7vRgJxHAfU7xqvhUt7?= =?us-ascii?Q?C3Ovy+eZ4F6rw1m+Jv4SGf/ewY0MQTOuN4qBuutXU5y2zelmXFmqJpt92Oae?= =?us-ascii?Q?2bYdlEjc59lOQQAZKM49LOwS6FpYBE7unQfTp6DASdMOJeBxlNzlJ9w40HzS?= =?us-ascii?Q?11ih3DbjYH4dGXfQE81uiQIPCLzrJJ3gRlQj0kWbJ2xp4MfgAnwqU988ihZy?= =?us-ascii?Q?IznIJbGITKvWkjTKV3rUQ26wOKCP8t7y5bwYwzwalWOYx9iZMB0ZNwDQf0nJ?= =?us-ascii?Q?NeFiyRCh8hWEvUdGgeF+Ahy2v3m6d60GHwu5MWW1lXOZSbEpTtux53Q0dvTP?= =?us-ascii?Q?07UThNLwyHKEG9S/3kw2KQTLn4ZHgUe646qQQ00h15fyw3U8eXK02N45zFqh?= =?us-ascii?Q?F4Q9QGZ/9A=3D=3D?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 643d8374-6a15-4081-3a1b-08debc6f8483 X-MS-Exchange-CrossTenant-AuthSource: DS0PR12MB7726.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 May 2026 04:13:48.6429 (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: AqnqRsGqgswcwblFOd8EuMJpAoAXuOJinB0VF3HA3Wq6W8jn8b4goJa0qLu2lpBMpNEWcPLcAIG6vOAld1eo7Q== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR12MB7696 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 > 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 > >