Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/1.1/patches/2180675/?format=api
{ "id": 2180675, "url": "http://patchwork.ozlabs.org/api/1.1/patches/2180675/?format=api", "web_url": "http://patchwork.ozlabs.org/project/linuxppc-dev/patch/20260107091823.68974-9-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-9-jniethe@nvidia.com>", "date": "2026-01-07T09:18:20", "name": "[v2,08/11] mm: Add helpers to create device private entries from struct pages", "commit_ref": null, "pull_url": null, "state": "handled-elsewhere", "archived": false, "hash": "d86218e5d2bacfa5aa47753b81ad85c514d847c7", "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-9-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/2180675/comments/", "check": "pending", "checks": "http://patchwork.ozlabs.org/api/patches/2180675/checks/", "tags": {}, "headers": { "Return-Path": "\n <linuxppc-dev+bounces-15371-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=PVszHrzX;\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-15371-incoming=patchwork.ozlabs.org@lists.ozlabs.org;\n receiver=patchwork.ozlabs.org)", "lists.ozlabs.org;\n arc=pass smtp.remote-ip=52.101.56.71 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=PVszHrzX;\n\tdkim-atps=neutral", "lists.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=nvidia.com\n (client-ip=52.101.56.71; helo=bn1pr04cu002.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 4dmMvF07Z4z1xpW\n\tfor <incoming@patchwork.ozlabs.org>; Wed, 07 Jan 2026 20:20:09 +1100 (AEDT)", "from boromir.ozlabs.org (localhost [127.0.0.1])\n\tby lists.ozlabs.org (Postfix) with ESMTP id 4dmMtL404Rz2yRm;\n\tWed, 07 Jan 2026 20:19:22 +1100 (AEDT)", "from BN1PR04CU002.outbound.protection.outlook.com\n (mail-eastus2azon11010071.outbound.protection.outlook.com [52.101.56.71])\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 4dmMtK6THrz2ypV\n\tfor <linuxppc-dev@lists.ozlabs.org>; Wed, 07 Jan 2026 20:19:21 +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:19:03 +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:19:03 +0000" ], "ARC-Seal": [ "i=2; a=rsa-sha256; d=lists.ozlabs.org; s=201707; t=1767777562;\n\tcv=pass;\n b=Hedzd6t+VWkZmR8lgSEFb93MnaTuR03+B3fq4aTD7iKPFwaPkjMLe1Ceo/K9Kl029eZBMIHB7kmP1uow5IMBSL9wzvvsS97fjByoXAOxH9+4PBYcJ4FqzvN91Q2wJYhOAM3flBMuNCkKbHeuOIX0xnmbx1E2VX7II3ihF7i5Skkp9E5y+doWwukWlopGZWrDPo9c17rHOcGvsPAV+9KJ9lmsMM8/r1XeKvk1PXccUuONTJeGKt3Hmw6yauMOl4IZ0vve46UM5kvqyYj/SWJi9JFvE2ZyTIs2FdY+s7TDhXrtdx51Zk5hIXXugXX+rJu13PppBAltFEr9U8/+hCyA3w==", "i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;\n b=UoSB/4M39WAPrZzkt46kkip1GEkoCQJtwwTYJUudbXM0fif9QLZcrNss/o07inWqCKX+5j2zo9Ih5ru3hj55d7vM33pt8iEXMOefaMXZcTru461YNrjmzbYcfGPcoVCTKNW7v2SwUgEa9O/dS6fEIHeknW4QAzCOHX8SL/HEgneUYJRHkMaICAMr9C784uLnggFgPUvDuFelwG9HMqVz8WtXVBE+Rzz/pgNNn4C3Ur0BrZOyPwNDZ4cJBtHJd9winCR7Ur5XEvfoqdFLRshU+SvUY3y3H78lD475zYS4FqhMomvdvHXccTdH6d0a8UknTzn53vBnlQZVFoHypU+wRw==" ], "ARC-Message-Signature": [ "i=2; a=rsa-sha256; d=lists.ozlabs.org; s=201707;\n\tt=1767777562; c=relaxed/relaxed;\n\tbh=EijhbkwoWflkBd1JtjlUZeAmfp2Jg31nhxyHaejtBe0=;\n\th=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References:\n\t Content-Type:MIME-Version;\n b=h8xKbzzdAlpGDpm1EovjchDEVcLb2gnrBVs0tMJ/hdB2VfrwnoEyB2oDFWNMGKIOndqGUM35eM4GjuzEvS6bkX6JDFhsLuqO2xrKVcAn+l0W54c90lwOLwpaj4FNFP99n3TyTZSf7I3oY/Xw9ijvq/1MSA3pNZHlNr5kpnGxcJ+pLz/35987OYcIvh66ZPQ5MgTCWVV2QDwQbgk+voCRrLcBtsqy9tYZOlU5/gVn57SM/nYXxKd7gu6zK4P1P08yabalblmeURNoji9WgzBh/dMV+MRLkRuXsUFUOKtNx1giAPpijO7MqYRTMEy+emVg1XmMWQG3B9xmLi+cL4Jzng==", "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=EijhbkwoWflkBd1JtjlUZeAmfp2Jg31nhxyHaejtBe0=;\n b=CmwQRyfa6C1UYRaxsJ+CzzOedSxep07zh7RAoURRwDUcr4YXcbrBKaMWZFXsEsOBn8pbmw3153SrFRYfwVn2Is0tJza5EkZaUWAOFRiJ9Md8JLaP53FQq/Q0gnFAsUiX7wgT7dnZVSu8r7P4AGyzHs/RiaKVbh9Z3w6CjfWIOY/dEV7sS6Q7p4ylJg0yEO2FeJ9MYIQLNV0tH6UfzH5Ab6aeU1KXN8ys8PHCKZIJct09p327LEKvHugqFuzy1fduE5qTHsq8VKV6X60pTjHUF8gaqwJAn8yQZM7MkvBgDxd1yKtaits3TIw3XEiW58J+6h5LgxUkyvJhuSVjPmsCbg==" ], "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=PVszHrzX; dkim-atps=neutral;\n spf=pass (client-ip=52.101.56.71;\n helo=bn1pr04cu002.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=EijhbkwoWflkBd1JtjlUZeAmfp2Jg31nhxyHaejtBe0=;\n b=PVszHrzX14MjyIMFX2CWTKMuoLL8dBa4wAYGcKNR0pg5jG+azQNaNBwdBWH3HGHwtmrC6kV8r0Dzp/AJVNbQ6ZF2zfRNGamb1ZpTsKkChvT3f5FLTNRsUnO2XWsieVRI6VO1ab2v5cPBEcw7wYiG5YAiMoMm3vriNUjE/u/Wkic+nEmbyImdP4SNZFSLvNrVcMpCD07E7jauZbDbY1jXblPva2TzkGkltQp4mqh/Vizzy2VubzUtBwu+MHJMx+zycwXb842bTB9t6RkrjToQ3gH0YrwOC64+sgfxQ1dJ19JwZ1FX9L/z68Otox37BC5Ar1ZdmYLMRzWljjv2dvOWoA==", "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 08/11] mm: Add helpers to create device private entries\n from struct pages", "Date": "Wed, 7 Jan 2026 20:18:20 +1100", "Message-Id": "<20260107091823.68974-9-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": "SJ0PR03CA0235.namprd03.prod.outlook.com\n (2603:10b6:a03:39f::30) 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": "51fdf2a3-5021-4c40-ccd2-08de4dcdcc76", "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 B3TdwsoEzgXlbEtoPQX01Wp0GSFbG4Jyd/yr6t3rQmkGCftNCO1oTNT57439W2ITYmS5egBhEsZlYYUl94FnuvW+0YS6alhVru0JZdiKusq04sJs6Lg9TKxA3S1sz7+LORfUJn5U/HNxh9nt6+vVRfEjdkhYOeWHONrs4uvIsnLhU0hua2OiymjPnSf7oz6YPI1kTV2fUvMO3seo7QX14fPcUHXZC14sNR5UXQkf4Qk0QOV88Vgp5CSd2C2oGGnyM7DxAKigU3g2NqNNPsIYDWgeATkYpkX93LVhi9Jucs2hV05cwJbFtqPY3X5Iw+t/GfWwgofVnvYBUEho3JRo6Mz4c06PDR/rlbXEXwSxRKfeW8LquoOczyvKQEOlI+T2HuIv2yCrC19zUfN3q/pHoGNCjlUKpfAI1KFmkZdsNSHOuXsFgvCySwFw1Amv1AggCIxZRv6p+1qAUQ6UMXzDdD6V/rcxZOfl0yGKEZiNbAdpDlV6LRyqe81zPaJfmgMKv6zJC8Qc3R052rJgY/WRzYAzz5uww8rkKeDNs4ST07i8Zpv/2skd9xQACa7+6TPK1OX+VwhmoJYkspOZ38JtOB3ZadAIgo5SaJ7QXQOBGzxwiaNmopNyTIVUXQCNUKka7CAZhg3U2Fh3rHcxwkmkZFPZZTk1lSCMiQZarz4qv+uRceiWVbRpUtObWZJNEKn8qAVSaDCvD1JT8YdH15iC5ivpCKvngxbvD52oaDB2fAfR3LA9mt841BqGhzWHEj3si+CNxux8pNGFzZX/RWcyzsS6MsvYrg7oHrvXCPj7siMQniliIDIJUvUxjhzhS7tfmU7MFON9Tj8J1PSEPltpU08jQF+hXrusKibnxMZp+xK+qfzPLFY4gpYmdGprZ3AVcneQ4FXTFA0iJsc9q82pGAd0keweca9jttb4YvGEC/9AJiHOcWuHIdawcawd9CHgicxXtrgPXHOXop4S9A907EYTJV6vLGgOKtOgoPuboZ1wr4IfnjCHNmssJ82lH2G8D8n/WOWBCh5VGL9FmLLPtMjOMJpMUJHychKOV0lkIiAmEHd1L+nj48IPAfih05cmsxZBfxcP0RWZ2rhXC/MEMTqruf5LtI5o9aTvEJufVe8cZAJ42xol5wov1+CZHE6IldVLpW3m0XBe0fd4j03WOdOFYSVeeg8YpZv295Wf2/2FOVsk3DKZCvQ1qj/XWP3yHKx6HEt11x9h02L7EMs/W86XvDqMpWyq3wk4XPpK/STEjSxfsLheeQiGApA3RnB5i30DOQ3QXXdFZU4dj+pwsn/heuwx14bcx0avkZeE2yaoDEO8DIeRf49Tls5vKYO1l9MFBEbpsEcGl4/fIBy5Yog749irvqfZRQrwPf4smsbwWZBhkBaGWz3c69BOapHVId8sLst0aFeo48ypeSYEa2oUnhbTI22Axw/xzp7AvdC2FPR02Id9bZHlSZWMCssS", "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 Gr0ZwzQwhTcoXNj3aRe/dtH6OijGozl1JhtbRv4hJb0NlzKS8Hp4KO66t0IFt2aheyGRjHKAx/ILPm7cpJwOWE9pOk/bB6IzAaWU1H3ORXNL+HmdQV7UXZeqLw4NW2zvn5nU4Hqe7B7Zwo/92BdSTjH3K4tX1HKj/8iyTV67PFHerhWAGnZzUvfKUL9ZgvSGFy1bENko7Mx8+1MbXOopHvMKBFS6C86j8226scZIgY3LZyIRdqsuQ9EHN1al1G+vqdKvpP2DnvnZQ2fv9j32r4hxHi0TTQgI92fINKyPXrIPWxs4zjrhmLe9HeYJXafuQFX5cd3URsKO0hUK8sMmMzO1YuZs30nVnWpkqwjZyTbGKlb0Egw1fmMTZU1zHW6wOH7F8IS3MaqWEN3g9Unkj6YOIDNYukHFs0VnkA0EexDnOQ5WrfSyS23RnCV5IXCoba04Jk0fV/RaYnGYWdlo8YrbbT6XdIq5nIfy3Qjd+el6Cfw35OMxR2rpzaoHK8zwtYVHIgUu1C8nS1sjLqppD7+ZWC+Qz/lfQzn1rYCnp1LLLXZQtQmwibk9o6af1X85khysmH9jQXlBBQthKjW8wBrDONYkLZumjqQ9b2kl0EnOtWOv9KnfyULpk5vCs4pLmVuX/y/pVmNo9t4Wu8HASAPk/77l8Zql2S8pr5E8aF36VAEpBlPM9g+2MQ4trSuAH5nsMpa71m0fwlgeXFYeRbbNKtHoA1Cby075M7WWTgyrHBRfy/1idWMUDmgtckTglWQU25VFy+83UF++BB5S9DbNs+vXlDSM+LsPfuJLM1CWm8KpJuJ+vqdLnbjbdWjxmOrnQ9Yep6ICGTvejXTMheMcpq2T6aPKPlbTy9qsw4R1Vr1X6PUXyPMnOEDstfrMEPmkqFCpCg9azDyg4/JmFhHWW4s812V+pMYYtHHVz4K7HYHnNfpQ7fERH6KsKbiM3tKDiaZFKTM3Q9oLRTtBp6m3KLpkkudjmYPC9GrVbM9gq9bHrhyAea9GSjf1GofbM4dwetmwnLSnJSkez847B5ILmWALGPYgIS7O+U99jOUwrfkAYtEPUUcdfytn/w3BoZiGRB0eN0vTOdU+K0y9SYhwolwArnAHxYlKN4rX6/JFoii5HbbjeX2oY6shfVu1YhXestzryqpU6DW/cxKdVroBhUAo8IzX4FlrtmVOL3Jz84liujIhNr5ifMO7z19iR/icyZO/rX3BBUqcbJpNZW1TlsTn2DVzdjAkfDyNzKHFiLCPEIPs/VlNb129uKiEK7LE8kF9rdFyk4tPomDH6J32dFbDudcwY7cjJ602xYzmzKPulsrodN5vAAPUpUPO5AuNjP4V9nWXO+cIPccZWSvJBm/B1DT+4W159oITnXsOhSUpL3IXdF8PrHBccKu0HYVex3FKBsaUTwVE+WJmV6M3HgR4+G2D4QQ/bE+alAw3R4mnkZK+tx86qIYKj6Sw5f1GQ5S1TcjhQ9ezbE/NsPpR2SOrFJawXHd1tB2CUJxcRhXq8HMAbbnK5bQLaIdTEf5bx699ZHAz4q8oeys3t4h+uM+oal1g0G876xramSzqUK/04v19aaz8nn3UrJCaNDH+pqjAiZYbH3gMHug0zW2JoVwvvvVpzahQ5qyu9CqBuCLpaZUQwvtJ4c7o1nvTmEnuiiWmQLlmWeMgOYryy1pOG6ftfG28NADGRSmayGR19oBKcAPYrWD7F9q8pBrtmVEtG7nDqvoTTucwD9twtw==", "X-OriginatorOrg": "Nvidia.com", "X-MS-Exchange-CrossTenant-Network-Message-Id": "\n 51fdf2a3-5021-4c40-ccd2-08de4dcdcc76", "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:19:03.0211\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 fPjd/67uHwvPe4IOyg6VAtHwlF1BVLsVv4zJhvdJqclfrfQ6eaUkDrCKFHcJKkc1FU0Oomzk7xJmwHGye1Y0qA==", "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 new device private entry for a given struct page, that page\nis first converted to its pfn, before passing the pfn to\nmake_writable_device_private_entry() (and friends).\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 set of helpers:\n\n- make_readable_device_private_entry_from_page()\n- make_writable_device_private_entry_from_page()\n\nThese helpers take a struct page as parameter instead of a pfn. This\nwill allow more flexibility for handling the swap offset field\ndifferently for device private pages.\n\nSigned-off-by: Jordan Niethe <jniethe@nvidia.com>\n---\nv1:\n - New to series\nv2:\n - Add flag param\n---\n include/linux/swapops.h | 24 ++++++++++++++++++++++++\n mm/huge_memory.c | 14 ++++++--------\n mm/migrate.c | 6 ++----\n mm/migrate_device.c | 12 ++++--------\n 4 files changed, 36 insertions(+), 20 deletions(-)", "diff": "diff --git a/include/linux/swapops.h b/include/linux/swapops.h\nindex bae76d3831fb..f7d85a451a2b 100644\n--- a/include/linux/swapops.h\n+++ b/include/linux/swapops.h\n@@ -138,11 +138,23 @@ static inline swp_entry_t make_readable_device_private_entry(pgoff_t offset)\n \treturn swp_entry(SWP_DEVICE_READ, offset);\n }\n \n+static inline swp_entry_t make_readable_device_private_entry_from_page(struct page *page,\n+\t\t\t\t\t\t\t\t pgoff_t flags)\n+{\n+\treturn swp_entry(SWP_DEVICE_READ, page_to_pfn(page) | flags);\n+}\n+\n static inline swp_entry_t make_writable_device_private_entry(pgoff_t offset)\n {\n \treturn swp_entry(SWP_DEVICE_WRITE, offset);\n }\n \n+static inline swp_entry_t make_writable_device_private_entry_from_page(struct page *page,\n+\t\t\t\t\t\t\t\t pgoff_t flags)\n+{\n+\treturn swp_entry(SWP_DEVICE_WRITE, page_to_pfn(page) | flags);\n+}\n+\n static inline swp_entry_t make_device_exclusive_entry(pgoff_t offset)\n {\n \treturn swp_entry(SWP_DEVICE_EXCLUSIVE, offset);\n@@ -191,11 +203,23 @@ static inline swp_entry_t make_readable_device_private_entry(pgoff_t offset)\n \treturn swp_entry(0, 0);\n }\n \n+static inline swp_entry_t make_readable_device_private_entry_from_page(struct page *page,\n+\t\t\t\t\t\t\t\t pgoff_t flags)\n+{\n+\treturn swp_entry(0, 0);\n+}\n+\n static inline swp_entry_t make_writable_device_private_entry(pgoff_t offset)\n {\n \treturn swp_entry(0, 0);\n }\n \n+static inline swp_entry_t make_writable_device_private_entry_from_page(struct page *page,\n+\t\t\t\t\t\t\t\t pgoff_t flags)\n+{\n+\treturn swp_entry(0, 0);\n+}\n+\n static inline swp_entry_t make_device_exclusive_entry(pgoff_t offset)\n {\n \treturn swp_entry(0, 0);\ndiff --git a/mm/huge_memory.c b/mm/huge_memory.c\nindex e3a448cdb34d..03f1f13bb24c 100644\n--- a/mm/huge_memory.c\n+++ b/mm/huge_memory.c\n@@ -3219,11 +3219,11 @@ static void __split_huge_pmd_locked(struct vm_area_struct *vma, pmd_t *pmd,\n \t\t\t * is false.\n \t\t\t */\n \t\t\tif (write)\n-\t\t\t\tswp_entry = make_writable_device_private_entry(\n-\t\t\t\t\t\t\tpage_to_pfn(page + i));\n+\t\t\t\tswp_entry = make_writable_device_private_entry_from_page(\n+\t\t\t\t\t\t\tpage + i, 0);\n \t\t\telse\n-\t\t\t\tswp_entry = make_readable_device_private_entry(\n-\t\t\t\t\t\t\tpage_to_pfn(page + i));\n+\t\t\t\tswp_entry = make_readable_device_private_entry_from_page(\n+\t\t\t\t\t\t\tpage + i, 0);\n \t\t\t/*\n \t\t\t * Young and dirty bits are not progated via swp_entry\n \t\t\t */\n@@ -4950,11 +4950,9 @@ void remove_migration_pmd(struct page_vma_mapped_walk *pvmw, struct page *new)\n \t\tswp_entry_t entry;\n \n \t\tif (pmd_write(pmde))\n-\t\t\tentry = make_writable_device_private_entry(\n-\t\t\t\t\t\t\tpage_to_pfn(new));\n+\t\t\tentry = make_writable_device_private_entry_from_page(new, 0);\n \t\telse\n-\t\t\tentry = make_readable_device_private_entry(\n-\t\t\t\t\t\t\tpage_to_pfn(new));\n+\t\t\tentry = make_readable_device_private_entry_from_page(new, 0);\n \t\tpmde = swp_entry_to_pmd(entry);\n \n \t\tif (pmd_swp_soft_dirty(*pvmw->pmd))\ndiff --git a/mm/migrate.c b/mm/migrate.c\nindex 5169f9717f60..6cc6c989ab6b 100644\n--- a/mm/migrate.c\n+++ b/mm/migrate.c\n@@ -399,11 +399,9 @@ static bool remove_migration_pte(struct folio *folio,\n \n \t\tif (unlikely(is_device_private_page(new))) {\n \t\t\tif (pte_write(pte))\n-\t\t\t\tentry = make_writable_device_private_entry(\n-\t\t\t\t\t\t\tpage_to_pfn(new));\n+\t\t\t\tentry = make_writable_device_private_entry_from_page(new, 0);\n \t\t\telse\n-\t\t\t\tentry = make_readable_device_private_entry(\n-\t\t\t\t\t\t\tpage_to_pfn(new));\n+\t\t\t\tentry = make_readable_device_private_entry_from_page(new, 0);\n \t\t\tpte = softleaf_to_pte(entry);\n \t\t\tif (pte_swp_soft_dirty(old_pte))\n \t\t\t\tpte = pte_swp_mksoft_dirty(pte);\ndiff --git a/mm/migrate_device.c b/mm/migrate_device.c\nindex c876526ac6a3..0ca6f78df0e2 100644\n--- a/mm/migrate_device.c\n+++ b/mm/migrate_device.c\n@@ -836,11 +836,9 @@ static int migrate_vma_insert_huge_pmd_page(struct migrate_vma *migrate,\n \t\tswp_entry_t swp_entry;\n \n \t\tif (vma->vm_flags & VM_WRITE)\n-\t\t\tswp_entry = make_writable_device_private_entry(\n-\t\t\t\t\t\tpage_to_pfn(page));\n+\t\t\tswp_entry = make_writable_device_private_entry_from_page(page, 0);\n \t\telse\n-\t\t\tswp_entry = make_readable_device_private_entry(\n-\t\t\t\t\t\tpage_to_pfn(page));\n+\t\t\tswp_entry = make_readable_device_private_entry_from_page(page, 0);\n \t\tentry = swp_entry_to_pmd(swp_entry);\n \t} else {\n \t\tif (folio_is_zone_device(folio) &&\n@@ -1033,11 +1031,9 @@ static void migrate_vma_insert_page(struct migrate_vma *migrate,\n \t\tswp_entry_t swp_entry;\n \n \t\tif (vma->vm_flags & VM_WRITE)\n-\t\t\tswp_entry = make_writable_device_private_entry(\n-\t\t\t\t\t\tpage_to_pfn(page));\n+\t\t\tswp_entry = make_writable_device_private_entry_from_page(page, 0);\n \t\telse\n-\t\t\tswp_entry = make_readable_device_private_entry(\n-\t\t\t\t\t\tpage_to_pfn(page));\n+\t\t\tswp_entry = make_readable_device_private_entry_from_page(page, 0);\n \t\tentry = swp_entry_to_pte(swp_entry);\n \t} else {\n \t\tif (folio_is_zone_device(folio) &&\n", "prefixes": [ "v2", "08/11" ] }