From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from BL0PR03CU003.outbound.protection.outlook.com (mail-eastusazon11012064.outbound.protection.outlook.com [52.101.53.64]) (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 56CCB245031 for ; Fri, 15 May 2026 05:50:40 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.53.64 ARC-Seal:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778824241; cv=fail; b=ssQqcikAM0iyvubWRq8jstkiunA/ntq0wQCdlp8FB7b96UtGajFssJXWtQJcuN+lotDu7HZGXcAwGqm86jdjkYwmm7eZK9F/0gRmWjlAWtq7RYHnmO6kY94hq7lStaz0QmiwfJRP21Zn3l/dAPhTrJXIhF+lxWWWwAst+DohBIg= ARC-Message-Signature:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778824241; c=relaxed/simple; bh=j6w4w31ej/C4MXQtYqHlQ60yFDlxblSCceQT/72dpSU=; h=Date:From:To:Cc:Subject:Message-ID:References:Content-Type: Content-Disposition:In-Reply-To:MIME-Version; b=CsZaf9o9SEtwDDaWr3FyF7lHm2A6p9ZBDMS5M8aQCBG1gAwntJKK9CLAvCQm+0+R/0Np872yrn39xq/f+8m2IlW4hUd9QtvmFbgkt6lhIQ/0lo91kIVR1V33zzWVrOtQ3xYwu6NT226ohtF4Yow9waPWSwsTQ3zKhP/ArEKcXL4= 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=ThtPa0MD; arc=fail smtp.client-ip=52.101.53.64 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="ThtPa0MD" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=XJnvOyJovVFgpdjRQ/0Xd1lg3iTrjTYSZ2Fqxn9br2HH1QDDSE1uiHUeOKI5UCQwVRDMFv0+tpXpLzV5eri2OLuXQDQN+Y4z/0RYOZ2XuetKFP6QUESd7ORChkRReUsdcYZgaWpUHeOg1v4imX1Zc6ql+0F07EDIKbOq/UT/KmpFLECCJfiZUBmZNPZVbZdV57B/BstJG+1v+YKDAuRtPCRvgiXPgf86dTq5H03/0potN4p3GgiS5MPmdvVtvzKDD4v8bft34GNBLJq6ebH4XwIErG4RHNFRD0w1UigzYT4qxFeaFfMsze9SlWkpgj7R0uXX6pbzUcqcJBqJO72NDQ== 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=xHcfokJ/S69O0PYCRmfwfgiI7HRJGjr8fs2A1RKh5ig=; b=NEkSwTJcI6tgn21vg8Hdy+w27Xba1dPghQuf1eZJKBgYSUoxJtlTT2mR8GxD0bsUfagl4Ry72oy9I6kkfhXL5vvXRFg6saifsZ6zglXf9yMOdfmTdrwECMhGivbv0DF4Vlb93z0Wdd/qtukZi4e3k3/ypxk2VB2EfVNPcWUrQSxyumRq/i2faHThuHShM+ycvVdGLTr55qxxFXgCnOR4R7VAbk51IpsDv1E/VziwO9eTYXb1wRildiUVT95NalQKm6X6M0qA/ru0qydtzHhEW2V/+PLYR4MezB7K99ceaqWUTGBMFIdW2cdnLGNss0RY4JwoRDqQtPLmVR6bwzyu7A== 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=xHcfokJ/S69O0PYCRmfwfgiI7HRJGjr8fs2A1RKh5ig=; b=ThtPa0MDg+X9FvQlPQqjrJCgO8v/AMemVtJcjmTRBseDf7YQml7U6z8jZ/V99M2afZMRVydsuCj4gww5beeJDoa9abWHyLWWmv1xSMHYsRJ2obvfrIwDUL2woKWPkZgNFJFDkmGpSpy4HHN9zJqAx2m74avazMckoUIkJvs9rJizPwCIwCQvpLKtXKxrRi+FxpEUdoGhVKabYgZm+gHBs0tlIXuA6hvxT3Z9CJdbcoeNzUXA0RvplwQ0QGXU4+x7n6LhLD7INMXjJCiF4RITYXCTeJ9RYbr0fyJt3O0tf7akWLJ2+sWlA31c3gXH5ZdR3Ricxuv7Tk8+5QdjytlCAQ== 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 MW6PR12MB7086.namprd12.prod.outlook.com (2603:10b6:303:238::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.25.18; Fri, 15 May 2026 05:50:32 +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.20.9913.009; Fri, 15 May 2026 05:50:32 +0000 Date: Fri, 15 May 2026 15:50:26 +1000 From: Alistair Popple To: liuqiangneo@163.com Cc: jgg@ziepe.ca, leon@kernel.org, akpm@linux-foundation.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, Qiang Liu Subject: Re: [PATCH] lib/test_hmm: Check alloc_page_vma() return value Message-ID: References: <20260514032345.32256-1-liuqiangneo@163.com> Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20260514032345.32256-1-liuqiangneo@163.com> X-ClientProxiedBy: SY5P300CA0072.AUSP300.PROD.OUTLOOK.COM (2603:10c6:10:247::9) 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_|MW6PR12MB7086:EE_ X-MS-Office365-Filtering-Correlation-Id: 2059bbe7-f1e8-4d2f-9668-08deb245e05f X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|376014|1800799024|11063799003|18002099003|22082099003|56012099003; X-Microsoft-Antispam-Message-Info: uchAtQ1ArWMLrVD4746dFvQ3kLZ7izlKyWRjipF3XBWhBhuGc7g8djzAuG48+v5tng75qvpZJlqnpDtbcyFmb3mbTHMJkKeT8OOVOe7zio9+cg43+s4UBDnQs9SIq90TW9BetUreUyA3yk4QVGdwPI/ewk5bwJgGTCDMWOeEFjxE+ruWbBu7bGsi5GR6CV3T70HYXodSfnpbPdN0g/9CVzPHUzZ+ZH9mHTNHdqKI5RFxdDOFZlKz3g4GESaM7XFZ92CMeXwxmRvjPjgxUeEo5SCtRJmBtzENI6/xWWC8nZazR7tKCSGjD1lonTPEYb4SkwmZRljBEzW1UVnm9OZmSBtCyWGQYfVrE1EniXnZTB5juirXg27aCLnpktfgsC+WGwiCHDYLqxlKXGP2tYSagi0y+lKNmgAVMkk9l1nA5qk5XKVbP+sTlx495uBHbXOw7h6JCqbyKIFJ4woPqsLBItO0nZrDpZyF5t7bTb5NQIYnst5T00OConKr3seRkckKzODol268eK9Re9jM1q8XvQmsNJK1BmvIHhU0+q+7RdLcovTGaJ5eRFWsjQQzGXCHSLnF1vQEVav40M+I8wVGRxJAFxch0/3moBGEMnkBDmpv+Yee5Pa4V/ZWy2C9lxqo32kShyRRzFBlrnxxt2C1+Njd0ZsZrIiEy5x5vMXWD6eeFAJ+RO//c4ktZoMIsgMv 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)(366016)(376014)(1800799024)(11063799003)(18002099003)(22082099003)(56012099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?gR+NNHcMml9uJPjBIXBbYhtfxF3kdaJPftpo6cotiPWE7oFs9AwWAQnmOkrK?= =?us-ascii?Q?5YFOKmziWahuhEI7r1pviDr7Mj2Qea9k0pg6+R/GsR3uhl3K86H+IsjhF/4D?= =?us-ascii?Q?0jiG/H0pMh8zXl9YeYqzYsDkO8UdlDqLgBAF1qrEVxCA0EVppN4sFgoYym4h?= =?us-ascii?Q?ezfLvoOyAHta0r+EDdD59dE03h4ngcXakOB6K14YePXOQuxhpwml3MuY9VNa?= =?us-ascii?Q?EOMIdoN/7eZh5f6VdLVUqf3y5lVAExgMoZJxvCbnO223JW/R/rFJ6r/kCBVG?= =?us-ascii?Q?KE54u6fnD3q2ElHWBA7W8Hk1S0ASSOVhp7gkFZW9XksO1/Tj8n/wPdR+1AbS?= =?us-ascii?Q?kaFJLzs1UX+guPBNPdp2Es7DJLcJH3zZxl8ceqsdeChJ5eOV7iTNBRG3SNNn?= =?us-ascii?Q?4iJPXAEWMmx5Y82r5v9SxpnIe3mwRbn5MWl1MhWEdRnfEahT7+QbNgHr6ENY?= =?us-ascii?Q?x19NRVapogPCXmiSvW1iGxBBavF07N58f8eKEzRj9GB5re+KUcMESMWV4skt?= =?us-ascii?Q?cD6M2AgYa7iTejq3PDAPtrEqjFtUPWDDgBIFOCMvMj0RFq/9VMhfmeBZPsCV?= =?us-ascii?Q?4yqwySA1XDD00cZF5RSlAnP7lQdcBtpRl0FR3BLoqeVTevtxLQpwSxnJj/bV?= =?us-ascii?Q?/PDIG8RI7oO12C6YPWd8blKI0KgKpc8ktSldZqb//VCP6fV+znkF8fGyuL3f?= =?us-ascii?Q?YS3E5KkgXXjfGVnUPO0ctBTJtj3Bxi2bThAcVrXeVyKklYlQff+BTvOpvraK?= =?us-ascii?Q?rNhlvGSuA8NXueq6TKROQNtQNQIJZ/TA5GwXiEonJd96vSCFN+Xn42usAHpd?= =?us-ascii?Q?I1nbQay2vCotBES5iIadIVKnTaM8JwU37jGKLuT+N861T/SbPMm74QkN57PS?= =?us-ascii?Q?ZkG0bfuh8VbU+sfx/jbLRsMjE+dOEmLudnML3iXe35p+JxA6A6ySJOeClm/R?= =?us-ascii?Q?20YuJP2WdgsLva3S9X5YbokH79jxJBXo3lEQNvjrloCNA2BuyYc3fk2k9Fab?= =?us-ascii?Q?TqfoSEnw5S94nCDFE9rkf9dbOFJACtlYsH6JFrEZLvFoIOlqILPAzRWh0j+y?= =?us-ascii?Q?fqUYIEzOQoJ8lfvnJxAubH/QQ40WpEt2eUp9XZwsCLJkaY0812VJvwyLDJ3E?= =?us-ascii?Q?7y91PbBUO/VqmuEkZjAofDg6mrYlK3q2P3Tv0fNl2VrYzGQWPJUDk45B7pJ1?= =?us-ascii?Q?qe2xPlbOx6GYCQo7Jfap+Ow/pjIrqsvX2jR3BGKcvJW+AtJ04OxjtfoXRHiQ?= =?us-ascii?Q?9uCJlvA4bbBhIRNtbszXG2lvgmY1gkLRJ4XOSvpQInNzlwpzXFfWyP9px9jQ?= =?us-ascii?Q?okaQp+7BaoOeYbGxA1clKegXDVLJthkgZNoScvFFMNLoSjRGzI35/5M9jbPh?= =?us-ascii?Q?eyr8ebMdPPvAI9qJcnDrFOmaT9i+jxaUT+8aextyHuGJk9QbpZidBx2kSWf0?= =?us-ascii?Q?+C+McmhATwg9XzglcjnMd4fEVrW9pAaof0p3p4urreA37f6Ti6ZBDSqkBItx?= =?us-ascii?Q?rie67DkFlIhBwFJkI21K4wOwmfwTpv+5ZPWm2W2arDbpdGEApMZ0aenZujnZ?= =?us-ascii?Q?Htwmm6AF7odOEUsE423W5UD19AD9ds4JpBJRmh2yVA7wsL2aVhBVpNwzlnVx?= =?us-ascii?Q?R09PEJHn1n4AuY7W7QOBueRJTSiJZOV0cmnwJA7t8A58O92DRR7qcvH+uyVv?= =?us-ascii?Q?AhQAj270u2PFaO8fP+sFQyHaO4LUIyAiq05kNoJ7OFh/Fznp0vI2cEi0qX1Z?= =?us-ascii?Q?eDcccJM29w=3D=3D?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 2059bbe7-f1e8-4d2f-9668-08deb245e05f X-MS-Exchange-CrossTenant-AuthSource: DS0PR12MB7726.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 May 2026 05:50:32.1959 (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: ZVJVdD2tR2f9kmFmnpC7GL5/xD3hS3xpQa5lNIYWq3vUMQc8yHIRIIro84bFLEw/oG7PearkUTMlIqefsDbH8Q== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW6PR12MB7086 On 2026-05-14 at 13:23 +1000, liuqiangneo@163.com wrote... > From: Qiang Liu > > Return VM_FAULT_OOM if page allocation fails, which > avoids a NULL pointer dereference when calling lock_page(). Thanks, I agree the NULL dereference is a bug and this avoids it but what happens to the pages that may have already been allocated and locked in previous iterations of the loop? I think the subsequent migrate_vma_pages()/finalize() calls will do the correct thing, but that would lead to a partial migration. Given that's not what we're explicitly testing here I think it would be better to just unlock and free the previously allocated pages before returning. - Alistair > Signed-off-by: Qiang Liu > --- > lib/test_hmm.c | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/lib/test_hmm.c b/lib/test_hmm.c > index 213504915737..f8b43d6eb261 100644 > --- a/lib/test_hmm.c > +++ b/lib/test_hmm.c > @@ -1063,6 +1063,8 @@ static vm_fault_t dmirror_devmem_fault_alloc_and_copy(struct migrate_vma *args, > /* Try with smaller pages if large allocation fails */ > if (!dpage && order) { > dpage = alloc_page_vma(GFP_HIGHUSER_MOVABLE, args->vma, addr); > + if (!dpage) > + return VM_FAULT_OOM; > lock_page(dpage); > dst[i] = migrate_pfn(page_to_pfn(dpage)); > dst_page = pfn_to_page(page_to_pfn(dpage)); > -- > 2.43.0 > >