Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/1.1/patches/2180679/?format=api
{ "id": 2180679, "url": "http://patchwork.ozlabs.org/api/1.1/patches/2180679/?format=api", "web_url": "http://patchwork.ozlabs.org/project/linuxppc-dev/patch/20260107091823.68974-2-jniethe@nvidia.com/", "project": { "id": 2, "url": "http://patchwork.ozlabs.org/api/1.1/projects/2/?format=api", "name": "Linux PPC development", "link_name": "linuxppc-dev", "list_id": "linuxppc-dev.lists.ozlabs.org", "list_email": "linuxppc-dev@lists.ozlabs.org", "web_url": "https://github.com/linuxppc/wiki/wiki", "scm_url": "https://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux.git", "webscm_url": "https://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux.git/" }, "msgid": "<20260107091823.68974-2-jniethe@nvidia.com>", "date": "2026-01-07T09:18:13", "name": "[v2,01/11] mm/migrate_device: Introduce migrate_pfn_from_page() helper", "commit_ref": null, "pull_url": null, "state": "handled-elsewhere", "archived": false, "hash": "116d680e53dd1e760244f58a0b6ac3c6f4f8f03b", "submitter": { "id": 92354, "url": "http://patchwork.ozlabs.org/api/1.1/people/92354/?format=api", "name": "Jordan Niethe", "email": "jniethe@nvidia.com" }, "delegate": null, "mbox": "http://patchwork.ozlabs.org/project/linuxppc-dev/patch/20260107091823.68974-2-jniethe@nvidia.com/mbox/", "series": [ { "id": 487451, "url": "http://patchwork.ozlabs.org/api/1.1/series/487451/?format=api", "web_url": "http://patchwork.ozlabs.org/project/linuxppc-dev/list/?series=487451", "date": "2026-01-07T09:18:12", "name": "Remove device private pages from physical address space", "version": 2, "mbox": "http://patchwork.ozlabs.org/series/487451/mbox/" } ], "comments": "http://patchwork.ozlabs.org/api/patches/2180679/comments/", "check": "pending", "checks": "http://patchwork.ozlabs.org/api/patches/2180679/checks/", "tags": {}, "headers": { "Return-Path": "\n <linuxppc-dev+bounces-15375-incoming=patchwork.ozlabs.org@lists.ozlabs.org>", "X-Original-To": [ "incoming@patchwork.ozlabs.org", "linuxppc-dev@lists.ozlabs.org" ], "Delivered-To": "patchwork-incoming@legolas.ozlabs.org", "Authentication-Results": [ "legolas.ozlabs.org;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=Nvidia.com header.i=@Nvidia.com header.a=rsa-sha256\n header.s=selector2 header.b=ZEMSQ0ht;\n\tdkim-atps=neutral", "legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=lists.ozlabs.org\n (client-ip=2404:9400:21b9:f100::1; helo=lists.ozlabs.org;\n envelope-from=linuxppc-dev+bounces-15375-incoming=patchwork.ozlabs.org@lists.ozlabs.org;\n receiver=patchwork.ozlabs.org)", "lists.ozlabs.org;\n arc=pass smtp.remote-ip=52.101.61.13 arc.chain=microsoft.com", "lists.ozlabs.org;\n dmarc=pass (p=reject dis=none) header.from=nvidia.com", "lists.ozlabs.org;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=Nvidia.com header.i=@Nvidia.com header.a=rsa-sha256\n header.s=selector2 header.b=ZEMSQ0ht;\n\tdkim-atps=neutral", "lists.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=nvidia.com\n (client-ip=52.101.61.13; helo=dm1pr04cu001.outbound.protection.outlook.com;\n envelope-from=jniethe@nvidia.com; receiver=lists.ozlabs.org)", "dkim=none (message not signed)\n header.d=none;dmarc=none action=none header.from=nvidia.com;" ], "Received": [ "from lists.ozlabs.org (lists.ozlabs.org\n [IPv6:2404:9400:21b9:f100::1])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4dmMvv3Zvpz1xqd\n\tfor <incoming@patchwork.ozlabs.org>; Wed, 07 Jan 2026 20:20:43 +1100 (AEDT)", "from boromir.ozlabs.org (localhost [127.0.0.1])\n\tby lists.ozlabs.org (Postfix) with ESMTP id 4dmMtX747tz2yjx;\n\tWed, 07 Jan 2026 20:19:32 +1100 (AEDT)", "from DM1PR04CU001.outbound.protection.outlook.com\n (mail-centralusazon11010013.outbound.protection.outlook.com [52.101.61.13])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange secp256r1 server-signature RSA-PSS (2048 bits) server-digest\n SHA256)\n\t(No client certificate requested)\n\tby lists.ozlabs.org (Postfix) with ESMTPS id 4dmMtW6tQ5z2yGQ\n\tfor <linuxppc-dev@lists.ozlabs.org>; Wed, 07 Jan 2026 20:19:31 +1100 (AEDT)", "from DM4PR12MB9072.namprd12.prod.outlook.com (2603:10b6:8:be::6) by\n MN2PR12MB4335.namprd12.prod.outlook.com (2603:10b6:208:1d4::13) with\n Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9499.2; Wed, 7 Jan\n 2026 09:18:35 +0000", "from DM4PR12MB9072.namprd12.prod.outlook.com\n ([fe80::9e49:782:8e98:1ff1]) by DM4PR12MB9072.namprd12.prod.outlook.com\n ([fe80::9e49:782:8e98:1ff1%5]) with mapi id 15.20.9499.002; Wed, 7 Jan 2026\n 09:18:35 +0000" ], "ARC-Seal": [ "i=2; a=rsa-sha256; d=lists.ozlabs.org; s=201707; t=1767777572;\n\tcv=pass;\n b=ldUlSkZMIPQy/wpSK3NwUg1CeVQxI2plTYlaYtVEKlb1x9twhNjTnbmytXPF1S5WRAhach3ohnGMxtWl7h2EdeVni6Om11+8JB9F1/Q04EoZ46ah4fpO8yPKw4xVL65GHFVcS4Scc4FpXoW1GPIaPtidaF7m7RZqV6ttke4oDDFaGP9yQB61A2Dcx6xiT7AUqGGNAkjOQQ2fMJSw018pBen1YdBvw/qEblrcfWTwI0DmjFYmH+FNYs4VXdaov8sYkSQfsCVAFxGA8DPRS6rlEP0tRCNTDiaPzNk5tqY9E4wwFhwzdesS9JQDZzxABshD4d3Xh9sqJsJDtLzDW5OBVA==", "i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;\n b=acMk6KDzHj9ixLSibYTD3yVfsghMYzOxRIPyqbkEN7agR/KlGY9xCHkfrNPqFn4BZJoriIr8fabBp+5vQ9LEGclExgiNRqRCl7lco0vwpkZ+/5umOi9WUy6z5BpZ85Lurzg8zb4BjGErsnlcYczDmzb0FPSd5OFaXWDVGqYz/X/FA80NRGOaTxbUDFthj/1v5X7JP0NjMaYteR6tERwSgixi/diwb42xwjAXFHDItqLYFLGRa3Ho2hvOGJ6qNSNTiomxrRGZpYcjzC1PYGFXIDskOko7itwN1iMurUTP9nN7XgH0avhmkG7HHcHwd0BhcGU1GcamLtJpV7reOspLYg==" ], "ARC-Message-Signature": [ "i=2; a=rsa-sha256; d=lists.ozlabs.org; s=201707;\n\tt=1767777572; c=relaxed/relaxed;\n\tbh=lD1YgRjHKutvEUCMXbItDWnQyct03W+owQY7GnvxPBM=;\n\th=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References:\n\t Content-Type:MIME-Version;\n b=kY4KO1vJ7ubNuNw9px9sn1tNjIKFOnQ+RjgrUsaoqt5dJprrOwPpLRZP9XAKwAKLppKTPOsvr8W6eUdQ9cO+is2h+WyjMSCSORH2R+SIghtvZ2mKYC4B+2P9K3UoZ37NfrXZfhfMeH1BXFGE74eUJ2q7ke0mM9b5sa/lg8Njrwnekzu0uVLMmoGS5s/tJFJ0ziAxh418w24y0Jc29Uf3u/FdcSTSd22ND98LF7h9dZ5QVwViDkm55CinCf8iGvbkZED68scCCAgFBxLtE01kMXJDjbTe//c0XgrkgYJOUxOilEvuzEPoGjCsJUxnRl5aXFQgoLRe42Dz2rO24ex3KQ==", "i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;\n s=arcselector10001;\n 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;\n bh=lD1YgRjHKutvEUCMXbItDWnQyct03W+owQY7GnvxPBM=;\n b=ZtqlHxFVuBhZVtriJgWEsdngY+zexhVvCuc8K5G33TXn1Wp42fev1OZKyb34FxE6qnuOLg+O4aaQYP9HyoBeWL6mcPqImjVvsL4XSKDDR7AY4VnInUiexvusS0Pxg9GeYmSVVmdBXtqgK+yB974b4EO98kkAvKI3qiWFh8jC7PQbveBfXnWOmb3ldsSR4a6kilZoHxQOjdzC6VVnAuhpjSVejasmL26tyy1GXui/RXVgZd+J+CBLjcd6IMcG5BVQiEiGP9txA7qFkQSWlt08aje/UpLpG5Q0R3MTyT6tYpR2HtJ9a+lrkLAuQIqfpTi1OZZz1M3aGrjkcKKuyGyxWQ==" ], "ARC-Authentication-Results": [ "i=2; lists.ozlabs.org;\n dmarc=pass (p=reject dis=none) header.from=nvidia.com;\n dkim=pass (2048-bit key;\n unprotected) header.d=Nvidia.com header.i=@Nvidia.com header.a=rsa-sha256\n header.s=selector2 header.b=ZEMSQ0ht; dkim-atps=neutral;\n spf=pass (client-ip=52.101.61.13;\n helo=dm1pr04cu001.outbound.protection.outlook.com;\n envelope-from=jniethe@nvidia.com;\n receiver=lists.ozlabs.org) smtp.mailfrom=nvidia.com", "i=1; mx.microsoft.com 1; spf=pass\n smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com;\n dkim=pass header.d=nvidia.com; arc=none" ], "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com;\n s=selector2;\n h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;\n bh=lD1YgRjHKutvEUCMXbItDWnQyct03W+owQY7GnvxPBM=;\n b=ZEMSQ0ht27aI1SeLQxnolrucOAitj2ZTP+kDYVOcnC5Z7WquVH6o6GzTsfkNbh7Qx8mKoWCi0ZiTEsZTeUyiQ+Ft4WkYAGaCf8eNMbhyr6KijzIKROb31zvInd1SyIIpBzOLmWG860bwKXa0dlA2AsPdg64xa9pLx5vegPofxcFtr5nfrVrKrIWuDlpRgBdHio/0HEopGjgdJ/3h1pnQRtnn+fe1BdGIZoNopwEVKYAb8oLDhCvhgoXycKGLfvcLs8Izi0oGiOLD/2PzGI0NrJUUR5vJTaI++MT2tVfPuR0zhC6gIuy3PgGIyv+eyGXUHQd2Qj6Kj1wXnuUYR/t5yQ==", "From": "Jordan Niethe <jniethe@nvidia.com>", "To": "linux-mm@kvack.org", "Cc": "balbirs@nvidia.com,\n\tmatthew.brost@intel.com,\n\takpm@linux-foundation.org,\n\tlinux-kernel@vger.kernel.org,\n\tdri-devel@lists.freedesktop.org,\n\tdavid@redhat.com,\n\tziy@nvidia.com,\n\tapopple@nvidia.com,\n\tlorenzo.stoakes@oracle.com,\n\tlyude@redhat.com,\n\tdakr@kernel.org,\n\tairlied@gmail.com,\n\tsimona@ffwll.ch,\n\trcampbell@nvidia.com,\n\tmpenttil@redhat.com,\n\tjgg@nvidia.com,\n\twilly@infradead.org,\n\tlinuxppc-dev@lists.ozlabs.org,\n\tintel-xe@lists.freedesktop.org,\n\tjgg@ziepe.ca,\n\tFelix.Kuehling@amd.com", "Subject": "[PATCH v2 01/11] mm/migrate_device: Introduce migrate_pfn_from_page()\n helper", "Date": "Wed, 7 Jan 2026 20:18:13 +1100", "Message-Id": "<20260107091823.68974-2-jniethe@nvidia.com>", "X-Mailer": "git-send-email 2.34.1", "In-Reply-To": "<20260107091823.68974-1-jniethe@nvidia.com>", "References": "<20260107091823.68974-1-jniethe@nvidia.com>", "Content-Transfer-Encoding": "8bit", "Content-Type": "text/plain", "X-ClientProxiedBy": "SJ0PR03CA0216.namprd03.prod.outlook.com\n (2603:10b6:a03:39f::11) To DM4PR12MB9072.namprd12.prod.outlook.com\n (2603:10b6:8:be::6)", "X-Mailing-List": "linuxppc-dev@lists.ozlabs.org", "List-Id": "<linuxppc-dev.lists.ozlabs.org>", "List-Help": "<mailto:linuxppc-dev+help@lists.ozlabs.org>", "List-Owner": "<mailto:linuxppc-dev+owner@lists.ozlabs.org>", "List-Post": "<mailto:linuxppc-dev@lists.ozlabs.org>", "List-Archive": "<https://lore.kernel.org/linuxppc-dev/>,\n <https://lists.ozlabs.org/pipermail/linuxppc-dev/>", "List-Subscribe": "<mailto:linuxppc-dev+subscribe@lists.ozlabs.org>,\n <mailto:linuxppc-dev+subscribe-digest@lists.ozlabs.org>,\n <mailto:linuxppc-dev+subscribe-nomail@lists.ozlabs.org>", "List-Unsubscribe": "<mailto:linuxppc-dev+unsubscribe@lists.ozlabs.org>", "Precedence": "list", "MIME-Version": "1.0", "X-MS-PublicTrafficType": "Email", "X-MS-TrafficTypeDiagnostic": "DM4PR12MB9072:EE_|MN2PR12MB4335:EE_", "X-MS-Office365-Filtering-Correlation-Id": "77421d5e-6823-40ff-3168-08de4dcdbc4b", "X-MS-Exchange-SenderADCheck": "1", "X-MS-Exchange-AntiSpam-Relay": "0", "X-Microsoft-Antispam": "BCL:0;ARA:13230040|7416014|376014|1800799024|366016;", "X-Microsoft-Antispam-Message-Info": "\n MPVAKCsLojM+nONmnN+T/cEeNXgT8Uw+c+yEoVRR1EKMH5DWDCkgaD+DymVaPEAxXJ2PhNjAFwGfH8+KELxS0dfab5kaP9fOB2LgSEpPS71PImkduOhnap815BZ5BYuQuRVVNAkrGirj5JHK6DrpkjSA3ZiP8n2hVP+MF91aVy7QpRJCoa91RDFuK6F9wB4bDQ7lm+A/0labKV4XfyVncx+ZcIZ0wAeZMbm3BnUIJVVgukmP8Bt7f2aRW65DWFxhtfb01wwflToLpMJ5rsUseAkHHKKsIGhBc2m4XGJIjmeUBPlcllFBkQn4e1J1XqPwebBDfOLsJGavJAzEn0yvM/X1Udv3upC/qeYkqO4YiD3BxfHiPXVLNeeXTf+FBTvlie2fp2Sxovxm+XNXDerMIs+iTVukOHqgfnPRj5doxMq6r7dRax24mqGmLtItXe6xck5KMwFq5rycuecXjO3ycgYHu1BFt/P/2P86VRqUrSFpFe8KbNUSYiNK7aR9j6XZlAL4k2lQORaBJ9faFFKeDeLaZERK0jJMg9jIpbbbSL+gUprJFidVvPocBMZNxk6XyJDoq3gb1Fmae3ujUxdP4YNbXLz87F2u/VehiIVmZW5oJOyyt3HocygqHbfpVHgksxAnslhLcKeHujQbzsbNKD9zS4uFVY134ChxzZQmfB2DyNbT+R0Q7Ix3VqzscX9W3K8FhrpuudcU4FUzMrUuvsavCk6Ze35zsSzTFjNGCT6sIHp9EZb86ipe+Lv4hAwOaFJdY1jdW3ChnFwXs0gcL9KroVv10ygTS626wE7e14xePe7EfFrVCYRJZJXacS6iFPh2FOwuMlwlhVYfZPpMZjDe+PnsHYCDR2Tc05Ou+L/Rpw7b1MJzn7LhxoX9+U+tKxm1lSzfw2t8NL8AcCMtP5KD9LAUOSE9gvwMPzukhbsgryBQAOfXwD9SBr0xt5TCAOlmw6bYRvi2TusgAIH8DMp8bupTdYSjpo0l7e0IPoiuG6dRFSx/Q9rAicLfv9GT8AOBBVKdIFV5jczAswNiAGFzz8KepH22NGzBagVdA9Hm0d8jls5QEsEnGCL7t0+cITYCOdKmdcvyYgmAP39YzxaRYHx0BVbGaB2QcrZkTB8uiY6TDPSQh1GpGAkbhYOochst00QAFckDQBlkAYp98zbt4nvdYsQ3SbcetdpE4XkTz6J7w5I0JG8Qc7aqg7/4b/lOkzW39GTKHYMQGT/qs+ftDbpIhVk5lbfSBgywiMElh+ageEGgvkx5kwt6rDBp7+MM1SKx/8KZPMjJE1ODtM/jQih+sBIb4gzEUmvb5tiuBf08FdNacjuWHbDDm5NSA2+f20uXfi1lURHqitQs3xaaxIgc5nD2rUb7turrNws23GF4a1CqpyvtcaS+OjxLwtlxsG158ShV49byFjgaaWO9FuHY3EGiX45zNBx3UAtCEtulTUnvE1luPYK62y+e", "X-Forefront-Antispam-Report": "\n\tCIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM4PR12MB9072.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(7416014)(376014)(1800799024)(366016);DIR:OUT;SFP:1101;", "X-MS-Exchange-AntiSpam-MessageData-ChunkCount": "1", "X-MS-Exchange-AntiSpam-MessageData-0": "\n 3hM5zataBhIH13TAyztG1tgPaXz+GY3/TnecqS60B+JKyE0ePWEZfQQkm8yMAKlaJ7/z1LvMOGSKOrZrWTqn7TeHJ57Dtts6wH8yTAugS7nvqZDFaS8rGvd19tc9c9z0Mt3Sci4axPxGrwny0urLCala/uwvYsf2UjLweSRb/7eEe4VgSspuKwlmpJQzJSF4+ewb+udYzHaUZzf4zSJqXI6IrAgAxBI3PyGCIFrFq4RFKmD2+5G/Pkq+kTm0Ppp6iWucUkJlda6+zc02n7z9FS14VnJcJLqk8TFbuThxW/iQfSj1akeMprrLdYUwq6yw2re2Qzr9V171NcvALJ0Y3bbREzeEU/ju+HDEULvmLlvqYLgVOmysygVTtdPB0Jj5lPsLuiJehyrF1Qq79HunY5aR9njFQ6IA7/Vd0v7PcEA4B4Gu5d/j4Bagm3fDKI7AwAthVBElipxCh9N+IYPm+AHWlmC7wsaUqLULCSPGjo14e1KcPmPj4duQuAo52kwgPsoWE3HC7nPbVDZBpHx9vPRHwH0Dy8pH3EGOCRL+Ff8kU830KEkPaZ2ZHcJ9no4ipFvL1nMy078wzhKi1Vni/DAPXHturVcH9b6MTyxFbjZkkZ9koBcPXPpR0EvcGEQ69GiwuNZKOWj9VrIkZmMOLjR99cpdySw0zwViFtp79Zc89Ccz/d8VVmrNmw81TXyTxngBlhBySEWyAVh+I8UG8vtXMfWinigSxY03a/k6gmCMQ5YfeIj+M3oD1HiOSBmQU/axNusC9BBVWATszy1sgaayfWAyvapqXfFT7IP5n2xWruVak9Jun64dctqDZbjOKD2ngmerFmTxmWVFl/cpw2vQxTXijDiSdNmarSubWL0CnxGjffoBUiFQgR+7MAjc9EugwJR3WD2piK9cJSVgT0bHr66gsKbmAVUNN5EWnNXduBPXA/zoTj34BzN8poqduNJPuJbJvBCYGOibMFLwga2HGpdqmEJgUHPt3MCoPE+eTTk+grs9F5OdeT0Rf42cgsCjYoLAx9nUmxMKJ6eX8Gp5gfpexHSeZjO7OB3G6IN8G8tskW3UHX3Xic8/8dVW591YqQlkDDMKrH8DU9lgpOVD31Yj1GAZlghthmhAzr0XAR4TYaaufvEHl91+AXrWgJ1p9vGBsJa2n0DTx/tBB9MXUIq914TVLTnoYhbCy0CVAjOZytjs0WutDwVYsjG9UrCEHyYsU1gb5N2+vouWmT2TQcxAKhbknsn1f0f+kE+uqDuCq2uSLc2hCjbIDA/5pUJ0yavMzPucsAn14/Gb63USPADG/uFw+5poYKk04Z/RFnpCXYi8wjOOA5aqYFu4XyizeNLYKolMDcla14gDz6RdYtTpexpTNfEBYBiFI8IXJxkOUgpfFGfWZimiugff7dX3GTpI6w2+3op5DqDCc4bGp/+is0h7vvP00W22LJ4DynLj2+z2YWBWuUnNDSOqcI1ZanFLEy9AxLAFAAWnxMMBEimEumcZjOziqHYGd69V/TqESdcIspLasKrZo+EvGb7mi6KlZWGs3Kz/k6rMsAJw+EJGw6bSfknVyyklcUv6XtwhaGegVQTBqd/Wu8tsR5NTegSwb9FzhvggQSZ/r2E36wjmrSKTFy/sRXY3zzAup1Z+Ku8PPn0ATiQwzIWk1+w5S9F2iVar0dyw6V+e7A2SPPbmf7S0S6rANQQI1ovxU5wEj+AkObvOFhZcgiAV5rcT23bZ4r5JLeepk/mcAw==", "X-OriginatorOrg": "Nvidia.com", "X-MS-Exchange-CrossTenant-Network-Message-Id": "\n 77421d5e-6823-40ff-3168-08de4dcdbc4b", "X-MS-Exchange-CrossTenant-AuthSource": "DM4PR12MB9072.namprd12.prod.outlook.com", "X-MS-Exchange-CrossTenant-AuthAs": "Internal", "X-MS-Exchange-CrossTenant-OriginalArrivalTime": "07 Jan 2026 09:18:35.7511\n (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": "\n pedSK3GvWVIYwFUs2o40r9PAhS58646kvoG/EJPGiwNAGvmkvArxySBu24GIczNHigfzyocK6jOPTXZykxDGTQ==", "X-MS-Exchange-Transport-CrossTenantHeadersStamped": "MN2PR12MB4335", "X-Spam-Status": "No, score=-0.2 required=3.0 tests=ARC_SIGNED,ARC_VALID,\n\tDKIMWL_WL_HIGH,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,\n\tRCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H2,SPF_HELO_PASS,SPF_PASS\n\tautolearn=disabled version=4.0.1 OzLabs 8", "X-Spam-Checker-Version": "SpamAssassin 4.0.1 (2024-03-25) on lists.ozlabs.org" }, "content": "To create a migrate from a given struct page, that page is first\nconverted to its pfn, before passing the pfn to migrate_pfn().\n\nA future change will remove device private pages from the physical\naddress space. This will mean that device private pages no longer have a\npfn and must be handled separately.\n\nPrepare for this with a new helper:\n\n - migrate_pfn_from_page()\n\nThis helper takes a struct page as parameter instead of a pfn. This will\nallow more flexibility for handling the mpfn differently for device\nprivate pages.\n\nSigned-off-by: Jordan Niethe <jniethe@nvidia.com>\n---\nv2: New to series\n---\n arch/powerpc/kvm/book3s_hv_uvmem.c | 2 +-\n drivers/gpu/drm/amd/amdkfd/kfd_migrate.c | 2 +-\n drivers/gpu/drm/drm_pagemap.c | 2 +-\n drivers/gpu/drm/nouveau/nouveau_dmem.c | 4 ++--\n include/linux/migrate.h | 5 +++++\n lib/test_hmm.c | 11 ++++++-----\n mm/migrate_device.c | 7 +++----\n 7 files changed, 19 insertions(+), 14 deletions(-)", "diff": "diff --git a/arch/powerpc/kvm/book3s_hv_uvmem.c b/arch/powerpc/kvm/book3s_hv_uvmem.c\nindex e5000bef90f2..67910900af7b 100644\n--- a/arch/powerpc/kvm/book3s_hv_uvmem.c\n+++ b/arch/powerpc/kvm/book3s_hv_uvmem.c\n@@ -784,7 +784,7 @@ static int kvmppc_svm_page_in(struct vm_area_struct *vma,\n \t\t}\n \t}\n \n-\t*mig.dst = migrate_pfn(page_to_pfn(dpage));\n+\t*mig.dst = migrate_pfn_from_page(dpage);\n \tmigrate_vma_pages(&mig);\n out_finalize:\n \tmigrate_vma_finalize(&mig);\ndiff --git a/drivers/gpu/drm/amd/amdkfd/kfd_migrate.c b/drivers/gpu/drm/amd/amdkfd/kfd_migrate.c\nindex af53e796ea1b..ca552c34ece2 100644\n--- a/drivers/gpu/drm/amd/amdkfd/kfd_migrate.c\n+++ b/drivers/gpu/drm/amd/amdkfd/kfd_migrate.c\n@@ -646,7 +646,7 @@ svm_migrate_copy_to_ram(struct amdgpu_device *adev, struct svm_range *prange,\n \t\tpr_debug_ratelimited(\"dma mapping dst to 0x%llx, pfn 0x%lx\\n\",\n \t\t\t\t dst[i] >> PAGE_SHIFT, page_to_pfn(dpage));\n \n-\t\tmigrate->dst[i] = migrate_pfn(page_to_pfn(dpage));\n+\t\tmigrate->dst[i] = migrate_pfn_from_page(dpage);\n \t\tj++;\n \t}\n \ndiff --git a/drivers/gpu/drm/drm_pagemap.c b/drivers/gpu/drm/drm_pagemap.c\nindex 37d7cfbbb3e8..5ddf395847ef 100644\n--- a/drivers/gpu/drm/drm_pagemap.c\n+++ b/drivers/gpu/drm/drm_pagemap.c\n@@ -490,7 +490,7 @@ static int drm_pagemap_migrate_populate_ram_pfn(struct vm_area_struct *vas,\n \t\t\tgoto free_pages;\n \n \t\tpage = folio_page(folio, 0);\n-\t\tmpfn[i] = migrate_pfn(page_to_pfn(page));\n+\t\tmpfn[i] = migrate_pfn_from_page(page);\n \n next:\n \t\tif (page)\ndiff --git a/drivers/gpu/drm/nouveau/nouveau_dmem.c b/drivers/gpu/drm/nouveau/nouveau_dmem.c\nindex 58071652679d..a7edcdca9701 100644\n--- a/drivers/gpu/drm/nouveau/nouveau_dmem.c\n+++ b/drivers/gpu/drm/nouveau/nouveau_dmem.c\n@@ -249,7 +249,7 @@ static vm_fault_t nouveau_dmem_migrate_to_ram(struct vm_fault *vmf)\n \t\tgoto done;\n \t}\n \n-\targs.dst[0] = migrate_pfn(page_to_pfn(dpage));\n+\targs.dst[0] = migrate_pfn_from_page(dpage);\n \tif (order)\n \t\targs.dst[0] |= MIGRATE_PFN_COMPOUND;\n \tdfolio = page_folio(dpage);\n@@ -766,7 +766,7 @@ static unsigned long nouveau_dmem_migrate_copy_one(struct nouveau_drm *drm,\n \t\t((paddr >> PAGE_SHIFT) << NVIF_VMM_PFNMAP_V0_ADDR_SHIFT);\n \tif (src & MIGRATE_PFN_WRITE)\n \t\t*pfn |= NVIF_VMM_PFNMAP_V0_W;\n-\tmpfn = migrate_pfn(page_to_pfn(dpage));\n+\tmpfn = migrate_pfn_from_page(dpage);\n \tif (folio_order(page_folio(dpage)))\n \t\tmpfn |= MIGRATE_PFN_COMPOUND;\n \treturn mpfn;\ndiff --git a/include/linux/migrate.h b/include/linux/migrate.h\nindex 26ca00c325d9..d269ec1400be 100644\n--- a/include/linux/migrate.h\n+++ b/include/linux/migrate.h\n@@ -140,6 +140,11 @@ static inline unsigned long migrate_pfn(unsigned long pfn)\n \treturn (pfn << MIGRATE_PFN_SHIFT) | MIGRATE_PFN_VALID;\n }\n \n+static inline unsigned long migrate_pfn_from_page(struct page *page)\n+{\n+\treturn migrate_pfn(page_to_pfn(page));\n+}\n+\n enum migrate_vma_direction {\n \tMIGRATE_VMA_SELECT_SYSTEM = 1 << 0,\n \tMIGRATE_VMA_SELECT_DEVICE_PRIVATE = 1 << 1,\ndiff --git a/lib/test_hmm.c b/lib/test_hmm.c\nindex 8af169d3873a..7e5248404d00 100644\n--- a/lib/test_hmm.c\n+++ b/lib/test_hmm.c\n@@ -727,7 +727,8 @@ static void dmirror_migrate_alloc_and_copy(struct migrate_vma *args,\n \t\t\t\trpage = BACKING_PAGE(dpage);\n \t\t\t\trpage->zone_device_data = dmirror;\n \n-\t\t\t\t*dst = migrate_pfn(page_to_pfn(dpage)) | write;\n+\t\t\t\t*dst = migrate_pfn_from_page(dpage) |\n+\t\t\t\t write;\n \t\t\t\tsrc_page = pfn_to_page(spfn + i);\n \n \t\t\t\tif (spage)\n@@ -754,7 +755,7 @@ static void dmirror_migrate_alloc_and_copy(struct migrate_vma *args,\n \t\tpr_debug(\"migrating from sys to dev pfn src: 0x%lx pfn dst: 0x%lx\\n\",\n \t\t\t page_to_pfn(spage), page_to_pfn(dpage));\n \n-\t\t*dst = migrate_pfn(page_to_pfn(dpage)) | write;\n+\t\t*dst = migrate_pfn_from_page(dpage) | write;\n \n \t\tif (is_large) {\n \t\t\tint i;\n@@ -989,7 +990,7 @@ static vm_fault_t dmirror_devmem_fault_alloc_and_copy(struct migrate_vma *args,\n \n \t\tif (dpage) {\n \t\t\tlock_page(dpage);\n-\t\t\t*dst |= migrate_pfn(page_to_pfn(dpage));\n+\t\t\t*dst |= migrate_pfn_from_page(dpage);\n \t\t}\n \n \t\tfor (i = 0; i < (1 << order); i++) {\n@@ -1000,7 +1001,7 @@ static vm_fault_t dmirror_devmem_fault_alloc_and_copy(struct migrate_vma *args,\n \t\t\tif (!dpage && order) {\n \t\t\t\tdpage = alloc_page_vma(GFP_HIGHUSER_MOVABLE, args->vma, addr);\n \t\t\t\tlock_page(dpage);\n-\t\t\t\tdst[i] = migrate_pfn(page_to_pfn(dpage));\n+\t\t\t\tdst[i] = migrate_pfn_from_page(dpage);\n \t\t\t\tdst_page = pfn_to_page(page_to_pfn(dpage));\n \t\t\t\tdpage = NULL; /* For the next iteration */\n \t\t\t} else {\n@@ -1412,7 +1413,7 @@ static void dmirror_device_evict_chunk(struct dmirror_chunk *chunk)\n \n \t\t/* TODO Support splitting here */\n \t\tlock_page(dpage);\n-\t\tdst_pfns[i] = migrate_pfn(page_to_pfn(dpage));\n+\t\tdst_pfns[i] = migrate_pfn_from_page(dpage);\n \t\tif (src_pfns[i] & MIGRATE_PFN_WRITE)\n \t\t\tdst_pfns[i] |= MIGRATE_PFN_WRITE;\n \t\tif (order)\ndiff --git a/mm/migrate_device.c b/mm/migrate_device.c\nindex 23379663b1e1..1a2067f830da 100644\n--- a/mm/migrate_device.c\n+++ b/mm/migrate_device.c\n@@ -207,9 +207,8 @@ static int migrate_vma_collect_huge_pmd(pmd_t *pmdp, unsigned long start,\n \t\t\t.vma = walk->vma,\n \t\t};\n \n-\t\tunsigned long pfn = page_to_pfn(folio_page(folio, 0));\n-\n-\t\tmigrate->src[migrate->npages] = migrate_pfn(pfn) | write\n+\t\tmigrate->src[migrate->npages] = migrate_pfn_from_page(folio_page(folio, 0))\n+\t\t\t\t\t\t| write\n \t\t\t\t\t\t| MIGRATE_PFN_MIGRATE\n \t\t\t\t\t\t| MIGRATE_PFN_COMPOUND;\n \t\tmigrate->dst[migrate->npages++] = 0;\n@@ -328,7 +327,7 @@ static int migrate_vma_collect_pmd(pmd_t *pmdp,\n \t\t\t\tgoto again;\n \t\t\t}\n \n-\t\t\tmpfn = migrate_pfn(page_to_pfn(page)) |\n+\t\t\tmpfn = migrate_pfn_from_page(page) |\n \t\t\t\t\tMIGRATE_PFN_MIGRATE;\n \t\t\tif (softleaf_is_device_private_write(entry))\n \t\t\t\tmpfn |= MIGRATE_PFN_WRITE;\n", "prefixes": [ "v2", "01/11" ] }