From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from CY7PR03CU001.outbound.protection.outlook.com (mail-westcentralusazon11010062.outbound.protection.outlook.com [40.93.198.62]) (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 E79EC26D4CA for ; Sat, 13 Jun 2026 19:24:50 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.93.198.62 ARC-Seal:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781378692; cv=fail; b=So1/eckRhSrkP+zr1VNbT1AdqFz8n/HSBmRCGynAGz/+wVzykylhhycupsFlioC3qWLWL1docaNtHwNFqVLZf0wNFYggSmOuJFtzVK/T7RkyxWyTwLZoSJzV7tjPzGcq6jkxgZfASXz+4XCWYmCpwRQW6qe7iV25bAkSyh9iBJA= ARC-Message-Signature:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781378692; c=relaxed/simple; bh=qVMDFQ6PrJqDWBuxxCL/m1sDgifWFxq9VnFrfjZJDO0=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=g6N8HWOMuZJFKM4QCKZxmDiYWNRl7zG3aCS62MzdPdQYQ+AZ751xMmxx44v6sd3jAxYcHf3QRx1FYFkok8YkgNHGfiPwFU1eE85oib/RSu1ZeJJpGfAy8wDYY/BXGHWS2QqF4HvAWLIfId7bn9VoMfvrw3R8mI8MKLbWSLo8kzo= 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=diXiREUc; arc=fail smtp.client-ip=40.93.198.62 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="diXiREUc" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=bWHngBQkClPkEyFAEpatthUlAivNW8d+CYptmnyPCLuD0oGbKKdKIU74M2x8BwRiwwz3SmBy5yDEX1NTAG1S4AONf5gWt/3nshzazsuVpBYhjJ3EzR/iKzZgGD2TGnYnay00GBYlvmijldC5kOmG7dvfqNf5Kgfsf+qgeJE0mNgxSOuZ9NY7lBIxDioN1pX/tVfIjS5u8+IqmpzQyMptqkROIRHsSOE3JeE+i/n+WrzoLx32tGxfnk8YIlChfu5PdNriWhA2a4xCk//oklMzuX1gCKU6kHxAvo6BwV6Eo/XoGUAVKktBOhf51RLtup3oRo9oH6SutzOTOdg49yitlg== 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=JArPyfUz55OmWrT0vdXn/erKBi2lecQh4b+PARGRG4Q=; b=UF+cdMysn5iFUu9wJnflPqOaGRBzAIVDBJpyyyeitsuigWQAnjtMkfm4WegNdmGt7telxGBQbgsNi75f8pYf6/w3K02xrz863Oabgh5iGMPPkVauKL+dxwm1mzcadpb7dSX6OgIbSfMEMYB4Tt8Lzd6Hm+A3oUTszAPd8qm0O/uLHv9UOWPOn8DgQMhI7i8Vl1rwYUDFwu4V2ov8AZgV40OOr7P4VgoGr/Nc+p1EgkEyJYD5RyX0tQYoktxh2RE4wsHLmNfWlyZt8W+4vUm0ki6EN4e75zFmaT/7lh2SlDp0ywn5Kcml0PhTPHNp7SsiNi/TvwzFACl0fWI2oOyJzw== 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=JArPyfUz55OmWrT0vdXn/erKBi2lecQh4b+PARGRG4Q=; b=diXiREUcf4R8S9VbUkQanlXUsMZagQor+EnaRIeL5ZhLHHoj75YowQNR6KnQ7IkVCMs/V3hHjtFZp2Fw5U/g9T7RCxp1YRdmA9wE6udMi6FYwRVWBC334XStHaYlUB5AczYUXR5yHu8osIaXbk4BnCxog8rWr5j2A7IFAoo87EwqMiD3oD91obh2iauKJd3T9ViJVjkqsJzSuqL/RBgQpLQVOZkLYZ5NfSJ+7eCd5EmFTtCEIVYmxyo31TQR0IwZa7l3rhqMxGwXSqsEir1eIJQU+s6jeSM3KV3U9+d/cyogIJC4hqUZhG9OqlLz/GvEVEMfBQRNwGIw/xRttUYnPA== 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 SA1PR12MB8724.namprd12.prod.outlook.com (2603:10b6:806:38b::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.113.14; Sat, 13 Jun 2026 19:24:46 +0000 Received: from DS7PR12MB9473.namprd12.prod.outlook.com ([fe80::f01d:73d2:2dda:c7b2]) by DS7PR12MB9473.namprd12.prod.outlook.com ([fe80::f01d:73d2:2dda:c7b2%5]) with mapi id 15.21.0113.015; Sat, 13 Jun 2026 19:24:46 +0000 From: Zi Yan To: Usama Arif Cc: Andrew Morton , david@kernel.org, chrisl@kernel.org, kasong@tencent.com, ljs@kernel.org, ying.huang@linux.alibaba.com, Baoquan He , willy@infradead.org, youngjun.park@lge.com, hannes@cmpxchg.org, riel@surriel.com, shakeel.butt@linux.dev, alex@ghiti.fr, kas@kernel.org, baohua@kernel.org, dev.jain@arm.com, baolin.wang@linux.alibaba.com, npache@redhat.com, "Liam R. Howlett" , ryan.roberts@arm.com, Vlastimil Babka , lance.yang@linux.dev, linux-kernel@vger.kernel.org, nphamcs@gmail.com, shikemeng@huaweicloud.com, kernel-team@meta.com Subject: Re: [v2 05/16] mm/migrate_device: move softleaf_to_folio() inside device-private branch Date: Sat, 13 Jun 2026 15:24:43 -0400 X-Mailer: MailMate (2.0r6290) Message-ID: <89BDC039-6A49-4588-B1FA-8A5B7542DAC5@nvidia.com> In-Reply-To: <20260602142537.198755-6-usama.arif@linux.dev> References: <20260602142537.198755-1-usama.arif@linux.dev> <20260602142537.198755-6-usama.arif@linux.dev> Content-Type: text/plain Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: MN2PR11CA0020.namprd11.prod.outlook.com (2603:10b6:208:23b::25) 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_|SA1PR12MB8724:EE_ X-MS-Office365-Filtering-Correlation-Id: fe2399a4-6693-44b5-baba-08dec9816d9c X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|23010399003|7416014|376014|366016|22082099003|18002099003|11063799006|4143699003|56012099006; X-Microsoft-Antispam-Message-Info: jWtCr7mT3/FFS6yw6NrM/+9XscFiCXRbinS3wDLinHqqZGCn8oUhuPIJdLrqH4Ns0FinfMucpj6cQRNU9eTYoLXsa6ipzsRsaNOrSGNb8yPjweerMisZ07ISZmRjHFqGVX37SOyPVa/Tjqe3PzG+G3sWhzLCQPhgJ/A1BAjzOv2TJ0GpOjfY4TwlvONPnXaLEChwR54g4DKxhxythJJA8SZNQ1JnTKanNXbyb5zUCLsd3YqkIfBSmQN45Dcu7iOnyOxDdS1/nNlWqtb7a3ONq3QS7cJd85YqXejzG5aXpyjCYoZTam0Qa/wdQ7rMGJaBsE/P89jkdT1k2iL1fMy36afCqCLHnKJEVEjd9GD8C4yLYlKlCSccUaUmHHKsWPSrm5X3bP/n76ZMxNzJSoqknTfdpa3/GzwVOPBa8IEA07AzcIEh66m7QYceQgNCqIyIsAeXtwauCf7BlYAv1U/BEWOmRCw2vBYIUq80foaqUqVQ9/+c34V72Pyilh2bcpV8xyrgEgqbVVhM4nFD9GQgtAeRzse3X7MTLzRHqW/UioATq0ZMHcpmn1k3TUYtdgWbHmQYpOk1sfpmxeJfDNMQei1dGy1j5yjWoVvHFcn06KKC+FiHyDhh4hFH6S7+eFaH0dv1KPe+PAx/yXnKSneRDN3pb/kqDPr9Ljr/QFlvzxUkGupH4vPyXi1O5csQV3nP 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)(23010399003)(7416014)(376014)(366016)(22082099003)(18002099003)(11063799006)(4143699003)(56012099006);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?wJDZ7+N+riZKoPwEQVJE9nBUyfHzivyZ+ec1c5zwNL/xGUSSs7WuZEmFit0A?= =?us-ascii?Q?qZmCc8HvGTkeex9owqExTltfHY2jbuBgzn10bNq5GEcoKuxEAwNDpM2Ld3Iq?= =?us-ascii?Q?dbR5Ax/ky0EA2QZGJTvvF3PTWLtvKjcRUW+gX2UuJMlCbmpg9RvVJHbfPJOd?= =?us-ascii?Q?Y1Lu8ZwFfBeq2MErggLGYcA1aScd89KyfOFTsruZD5ksK0UUG+cbhujuUQ4m?= =?us-ascii?Q?Vw3b0lMhGKVloS1anfnG3X7fNIjRVQmBXzhsP1CCZHAmI6oRSmNsTNCsc8PV?= =?us-ascii?Q?u6sL6pEw17xiNDXhX/SHYW5XzvX0RJCHLVwgiSVdR1RF3c03DANjxbl+ns0h?= =?us-ascii?Q?l30JJYC/kN/kE0eIyUqq22u07rbLi0o0k9wBPXKRUHIJhch56SDrvgOX4wI1?= =?us-ascii?Q?GPJblMttzXglTMMJIhPq6SW8y9lpXy4/pOcnzEJgfhf+D5Eu9/cLefeTXZV3?= =?us-ascii?Q?gxKzBa8H0lHbZvIpPNI7FxYu1jSuXxvzDzdzP/0mlL20oCTSjwmbmAWM9ruz?= =?us-ascii?Q?fmXPuY+YqAM8++o2I4K7SqNrOzlEuabpQX93HhO1TM+Mk3D19H+q5OJL3VsK?= =?us-ascii?Q?Ny/nkUranwbZvwwoREbMVABGbygGCgZKSP7zOGtNw7aBZROBbFEWYTFKYQ66?= =?us-ascii?Q?DIGVophNkn/O5TZczuYUIGHFDhtzR9fmmcv5CFBSp7s73ECtAy+zEdz7mw+F?= =?us-ascii?Q?+7NPH3/1fCM5plNu8QYPZ73j0bubJ6vvzQm3pOq/hAqI7DBIEQfuhJwzxrQA?= =?us-ascii?Q?C2Er07m5OlLDNXqYIyZr5W1zxOMJlRKSFlbr31vWsMRilQgay0nbxk/+KCvd?= =?us-ascii?Q?VxfxhCvaLR3CirrFkeoQTYWHFqzc/MIf9SapOcxwTkqrRAk8F7LwBI5Du+yu?= =?us-ascii?Q?e3Z1MFW0OfMxr4jNTIr5iI4lPph8xwhXR8eLoA0UQqGeeCEQRuFeWsex1qb9?= =?us-ascii?Q?NaNwV/70wiELtukwtLf9qz7Qlz+s/dCPKshC05/ZzVcGwJ3VLjgTdOEl9jWw?= =?us-ascii?Q?yJEpvLqYLF+1XE0go3RX5gIeKEHKrqWQ66aL7GK+B9Tl1XQYSs1uzJSwSDyL?= =?us-ascii?Q?cZSGCCvWIKsyUlMjL2w3UkgDrFaDe3SrynncxOjXg1ChAv+41PpwhBj6ThbI?= =?us-ascii?Q?pikWMU89o7kQz6Z6sbeA1dGJtp1kA5aZP66JgQdZbGcqAHnHFrrdIyuhfz7G?= =?us-ascii?Q?Vafy/FJPIHmaqO8vDKY7w2P9E+Ux/QVYuVoJX7Vh9m63EjWb7P+wRG513uUm?= =?us-ascii?Q?6Xz0qARi39/zo1xqXYnvUGgxfkaNIfDn/vvN8vjhD7ZY1Q87+HieL85xJ+Ls?= =?us-ascii?Q?M/P/Gqmnrgz5bjDLHiTe5Tl4ucQ28VXKKJSCNarITNe95/k6DM/9EqfeKpHT?= =?us-ascii?Q?uMESGaN4jUpB6IeI474jwJEYiZzvDVeNzp8G7kZPTovhe0tHHRyfbn3aoae/?= =?us-ascii?Q?rphkDapg/+pHE083Q6I8iuFI9s8fv+a+yi6ogxq2qdXWU/7/idfZwvhCNj8W?= =?us-ascii?Q?kqCt/qXHk1TyaiCSvVmdELejMWAEFyHqvAr8LJKh7/vTJxtNygajTvcTdJvq?= =?us-ascii?Q?F0TW1b+ng9P4gNXE6OPi7jjAeqDyV5SB0pcFXtZuRI+H/egcYROBQ6MwW1Qh?= =?us-ascii?Q?AhvUqyCG+/4QUnxlyL6hg/GMkMmgdAckNR1i/ZrNpd1MVvQl/OU7CoLCroPL?= =?us-ascii?Q?cs9KIX+dLP6gQkaguuAbBCmDpfHGFwdElIWWqcFjrYqCN12M?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: fe2399a4-6693-44b5-baba-08dec9816d9c X-MS-Exchange-CrossTenant-AuthSource: DS7PR12MB9473.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Jun 2026 19:24:46.0921 (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: YNBQPkBk2UXGv6WpW0uau2U7ESHYxw5hDZFpHPE2cH3z1pE3mbzqFBMwGL/8xyFm X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR12MB8724 On 2 Jun 2026, at 10:24, Usama Arif wrote: > migrate_vma_collect_pmd() calls softleaf_to_folio() on a non-present > PMD before checking the entry's type. softleaf_to_folio() converts > the entry's offset to a PFN, which is only meaningful for migration > or device-private entries. > > A PMD swap entry's offset is a swap offset, not a PFN, so the > lookup would either return a bogus folio pointer or trip pfn_to_page > validation on a debug kernel. In the non-device-private path the > returned folio is then unused (the OR short-circuits to > migrate_vma_collect_skip()), but the lookup itself is already > unsafe. > > Move the softleaf_to_folio() call inside the device-private branch > where the folio is actually needed, mirroring the equivalent > change_non_present_huge_pmd() fix. > > Signed-off-by: Usama Arif > --- > mm/migrate_device.c | 11 +++++++---- > 1 file changed, 7 insertions(+), 4 deletions(-) > > diff --git a/mm/migrate_device.c b/mm/migrate_device.c > index ab93a8d11b70..87f079b64265 100644 > --- a/mm/migrate_device.c > +++ b/mm/migrate_device.c > @@ -166,11 +166,14 @@ static int migrate_vma_collect_huge_pmd(pmd_t *pm= dp, unsigned long start, > } else if (!pmd_present(*pmdp)) { > const softleaf_t entry =3D softleaf_from_pmd(*pmdp); > > - folio =3D softleaf_to_folio(entry); > - > if (!softleaf_is_device_private(entry) || > - !(migrate->flags & MIGRATE_VMA_SELECT_DEVICE_PRIVATE) || > - (folio->pgmap->owner !=3D migrate->pgmap_owner)) { > + !(migrate->flags & MIGRATE_VMA_SELECT_DEVICE_PRIVATE)) { > + spin_unlock(ptl); > + return migrate_vma_collect_skip(start, end, walk); > + } > + > + folio =3D softleaf_to_folio(entry); > + if (folio->pgmap->owner !=3D migrate->pgmap_owner) { > spin_unlock(ptl); > return migrate_vma_collect_skip(start, end, walk); > } > -- = > 2.52.0 Is the patch below a simpler alternative? diff --git a/mm/migrate_device.c b/mm/migrate_device.c index 554754eb26ff2..bdf1db67ccae3 100644 --- a/mm/migrate_device.c +++ b/mm/migrate_device.c @@ -166,11 +166,14 @@ static int migrate_vma_collect_huge_pmd(pmd_t *pmdp= , unsigned long start, } else if (!pmd_present(*pmdp)) { const softleaf_t entry =3D softleaf_from_pmd(*pmdp); - folio =3D softleaf_to_folio(entry); + folio =3D NULL; - if (!softleaf_is_device_private(entry) || - !(migrate->flags & MIGRATE_VMA_SELECT_DEVICE_PRIVATE) || - (folio->pgmap->owner !=3D migrate->pgmap_owner)) { + if (softleaf_is_device_private(entry)) + folio =3D softleaf_to_folio(entry); + + if (!folio || + !(migrate->flags & MIGRATE_VMA_SELECT_DEVICE_PRIVATE) || + (folio->pgmap->owner !=3D migrate->pgmap_owner)) { spin_unlock(ptl); return migrate_vma_collect_skip(start, end, walk); } I have no strong opinion here. No matter what you choose, feel free to add: Reviewed-by: Zi Yan -- Best Regards, Yan, Zi