get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

GET /api/1.0/patches/2175207/?format=api
HTTP 200 OK
Allow: GET, PUT, PATCH, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "id": 2175207,
    "url": "http://patchwork.ozlabs.org/api/1.0/patches/2175207/?format=api",
    "project": {
        "id": 28,
        "url": "http://patchwork.ozlabs.org/api/1.0/projects/28/?format=api",
        "name": "Linux PCI development",
        "link_name": "linux-pci",
        "list_id": "linux-pci.vger.kernel.org",
        "list_email": "linux-pci@vger.kernel.org",
        "web_url": null,
        "scm_url": null,
        "webscm_url": null
    },
    "msgid": "<20251217151609.3162665-9-den@valinux.co.jp>",
    "date": "2025-12-17T15:15:42",
    "name": "[RFC,v3,08/35] NTB: core: Add .get_private_data() to ntb_dev_ops",
    "commit_ref": null,
    "pull_url": null,
    "state": "new",
    "archived": false,
    "hash": "97eac5edcecb818609db8d608bba2db989693563",
    "submitter": {
        "id": 91573,
        "url": "http://patchwork.ozlabs.org/api/1.0/people/91573/?format=api",
        "name": "Koichiro Den",
        "email": "den@valinux.co.jp"
    },
    "delegate": null,
    "mbox": "http://patchwork.ozlabs.org/project/linux-pci/patch/20251217151609.3162665-9-den@valinux.co.jp/mbox/",
    "series": [
        {
            "id": 485709,
            "url": "http://patchwork.ozlabs.org/api/1.0/series/485709/?format=api",
            "date": "2025-12-17T15:15:53",
            "name": "NTB transport backed by endpoint DW eDMA",
            "version": 3,
            "mbox": "http://patchwork.ozlabs.org/series/485709/mbox/"
        }
    ],
    "check": "pending",
    "checks": "http://patchwork.ozlabs.org/api/patches/2175207/checks/",
    "tags": {},
    "headers": {
        "Return-Path": "\n <linux-pci+bounces-43179-incoming=patchwork.ozlabs.org@vger.kernel.org>",
        "X-Original-To": [
            "incoming@patchwork.ozlabs.org",
            "linux-pci@vger.kernel.org"
        ],
        "Delivered-To": "patchwork-incoming@legolas.ozlabs.org",
        "Authentication-Results": [
            "legolas.ozlabs.org;\n\tdkim=pass (1024-bit key;\n unprotected) header.d=valinux.co.jp header.i=@valinux.co.jp\n header.a=rsa-sha256 header.s=selector1 header.b=Fy5S4OBx;\n\tdkim-atps=neutral",
            "legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org\n (client-ip=2600:3c04:e001:36c::12fc:5321; helo=tor.lore.kernel.org;\n envelope-from=linux-pci+bounces-43179-incoming=patchwork.ozlabs.org@vger.kernel.org;\n receiver=patchwork.ozlabs.org)",
            "smtp.subspace.kernel.org;\n\tdkim=pass (1024-bit key) header.d=valinux.co.jp header.i=@valinux.co.jp\n header.b=\"Fy5S4OBx\"",
            "smtp.subspace.kernel.org;\n arc=fail smtp.client-ip=40.107.74.52",
            "smtp.subspace.kernel.org;\n dmarc=pass (p=none dis=none) header.from=valinux.co.jp",
            "smtp.subspace.kernel.org;\n spf=pass smtp.mailfrom=valinux.co.jp",
            "dkim=none (message not signed)\n header.d=none;dmarc=none action=none header.from=valinux.co.jp;"
        ],
        "Received": [
            "from tor.lore.kernel.org (tor.lore.kernel.org\n [IPv6:2600:3c04:e001:36c::12fc:5321])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519 server-signature ECDSA (secp384r1) server-digest SHA384)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4dWd4D3Fkcz1xpw\n\tfor <incoming@patchwork.ozlabs.org>; Thu, 18 Dec 2025 02:28:44 +1100 (AEDT)",
            "from smtp.subspace.kernel.org (conduit.subspace.kernel.org\n [100.90.174.1])\n\tby tor.lore.kernel.org (Postfix) with ESMTP id 3C3F83007696\n\tfor <incoming@patchwork.ozlabs.org>; Wed, 17 Dec 2025 15:17:54 +0000 (UTC)",
            "from localhost.localdomain (localhost.localdomain [127.0.0.1])\n\tby smtp.subspace.kernel.org (Postfix) with ESMTP id DF39C3469F3;\n\tWed, 17 Dec 2025 15:16:32 +0000 (UTC)",
            "from OS0P286CU010.outbound.protection.outlook.com\n (mail-japanwestazon11011052.outbound.protection.outlook.com [40.107.74.52])\n\t(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))\n\t(No client certificate requested)\n\tby smtp.subspace.kernel.org (Postfix) with ESMTPS id 0DE1F34217C;\n\tWed, 17 Dec 2025 15:16:31 +0000 (UTC)",
            "from TYWP286MB2697.JPNP286.PROD.OUTLOOK.COM (2603:1096:400:24c::11)\n by OS9P286MB4633.JPNP286.PROD.OUTLOOK.COM (2603:1096:604:2fc::12) with\n Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9434.6; Wed, 17 Dec\n 2025 15:16:20 +0000",
            "from TYWP286MB2697.JPNP286.PROD.OUTLOOK.COM\n ([fe80::fb7e:f4ed:a580:9d03]) by TYWP286MB2697.JPNP286.PROD.OUTLOOK.COM\n ([fe80::fb7e:f4ed:a580:9d03%5]) with mapi id 15.20.9434.001; Wed, 17 Dec 2025\n 15:16:20 +0000"
        ],
        "ARC-Seal": [
            "i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;\n\tt=1765984592; cv=fail;\n b=WCXJMgBzyt591tygKaytkiXiVVdsW30RZwqbRO3a5qy1p/Mob/52cRNRnvlx3L/k/ZAhBqPh2IrXguyvTVf1RYG5Uf/NAZSv1IdIF1fvkjRmgaWiHfZG4B1kQnhTfc9Vlm1nAIgRLGlDNNyyXDe9ol/JJW7qldUzK+qeXCP0f+0=",
            "i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;\n b=tQSnL8nH6xU8hjAMYAk9vIcQeklxOo6SgQWIipoL0hcvt+6OPaglnvJRoEX85ksA5JSIVTVy4fZdz1CsE05facpMzIBf9x2oidIzwKCW0EaloQnDZbKYW/Je57ZlAMnMxBcjLkWRP/TKlVE0mSQWs8YGMxaFoSBZScxWkQcPPFphiMAdcjXsHvaObk73WxJVQNkswlsLAhYXWyaaK/tp481BDYRII1/dN9EdmhQMTZk+QdcXtyJpph/23b/5RNsAtfLfYgis1p2Z8le47jW8DrCvW2AwYv/q/RfB1fisy1x7VhlmDRtd7r5oDnLXbVrdvwzuEIguwUB02JqG0grnUg=="
        ],
        "ARC-Message-Signature": [
            "i=2; a=rsa-sha256; d=subspace.kernel.org;\n\ts=arc-20240116; t=1765984592; c=relaxed/simple;\n\tbh=T5jp2zaMFoMP6W9EL8zFQ87tVN3MnldH4xZjzays6U0=;\n\th=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References:\n\t Content-Type:MIME-Version;\n b=ulo3d/LcWlsZPfptyet3GmpK1INEdvBmSJlb/yxVIF0u2tahji+wgthFEWu9jp/uVE0vhK0OvLWqm6l74BA2AoWxxOkp5MRpCL+vYKbKvIPNpSbyJ+z4fLUYhUHvARNtMFYakxr06nnO9ZjqOoDu6QwkmoxgACRi9K9HpGfqw40=",
            "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=FJNUYYkWVAavRFQ6IR47DRdNP1DobuH8bxwsyzuwkNo=;\n b=RU1ivh3/o4YFLX3ATJrPHeWw3ZCY7wl764Y0A6D8dXlKsIDo5pPBSaTw6g9F58NzV0BdHVrCyXrXlHjXr91QPg8xTu/ycRLIRcpG1DdGC6gMerAGkjHFlevC1IynjSidm1U6hfPG5EgS9S6oSYAHsRziJ2JAMR9yzzP9ZXzk7stW/j2P2a9StD+2jhik9iHbzZ8t+LFNMYI0+jeumQzG2wQ3D01U55idGp3Ayde/eDtV0xd4nWFyBympAJzo3OoNBXkLyx+vMcnTng5clmE7RAGgx4AQhFrhghdTl8ePjk9oM2V582ECJ6IXz7u5KX4AvEwKfmOMe1jlsO9qqm5w4Q=="
        ],
        "ARC-Authentication-Results": [
            "i=2; smtp.subspace.kernel.org;\n dmarc=pass (p=none dis=none) header.from=valinux.co.jp;\n spf=pass smtp.mailfrom=valinux.co.jp;\n dkim=pass (1024-bit key) header.d=valinux.co.jp header.i=@valinux.co.jp\n header.b=Fy5S4OBx; arc=fail smtp.client-ip=40.107.74.52",
            "i=1; mx.microsoft.com 1; spf=pass\n smtp.mailfrom=valinux.co.jp; dmarc=pass action=none\n header.from=valinux.co.jp; dkim=pass header.d=valinux.co.jp; arc=none"
        ],
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed; d=valinux.co.jp;\n s=selector1;\n h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;\n bh=FJNUYYkWVAavRFQ6IR47DRdNP1DobuH8bxwsyzuwkNo=;\n b=Fy5S4OBx0uNdKzJdt0Cs597aDEmcxme1zsEYrzr0aqXfGKJmvOKbLNad8opRGo7sp44Jsjunbn4m/hxz1Po1k2W+jSXEmVvYcUWjFjUSqvfwHY6L1Nq5FPl6Ih06aqI884lfPCuytX1vB0WaBTYfPAyXoAMFFgTE0J4dLmKESOk=",
        "From": "Koichiro Den <den@valinux.co.jp>",
        "To": "Frank.Li@nxp.com,\n\tdave.jiang@intel.com,\n\tntb@lists.linux.dev,\n\tlinux-pci@vger.kernel.org,\n\tdmaengine@vger.kernel.org,\n\tlinux-renesas-soc@vger.kernel.org,\n\tnetdev@vger.kernel.org,\n\tlinux-kernel@vger.kernel.org",
        "Cc": "mani@kernel.org,\n\tkwilczynski@kernel.org,\n\tkishon@kernel.org,\n\tbhelgaas@google.com,\n\tcorbet@lwn.net,\n\tgeert+renesas@glider.be,\n\tmagnus.damm@gmail.com,\n\trobh@kernel.org,\n\tkrzk+dt@kernel.org,\n\tconor+dt@kernel.org,\n\tvkoul@kernel.org,\n\tjoro@8bytes.org,\n\twill@kernel.org,\n\trobin.murphy@arm.com,\n\tjdmason@kudzu.us,\n\tallenbh@gmail.com,\n\tandrew+netdev@lunn.ch,\n\tdavem@davemloft.net,\n\tedumazet@google.com,\n\tkuba@kernel.org,\n\tpabeni@redhat.com,\n\tBasavaraj.Natikar@amd.com,\n\tShyam-sundar.S-k@amd.com,\n\tkurt.schwemmer@microsemi.com,\n\tlogang@deltatee.com,\n\tjingoohan1@gmail.com,\n\tlpieralisi@kernel.org,\n\tutkarsh02t@gmail.com,\n\tjbrunet@baylibre.com,\n\tdlemoal@kernel.org,\n\tarnd@arndb.de,\n\telfring@users.sourceforge.net,\n\tden@valinux.co.jp",
        "Subject": "[RFC PATCH v3 08/35] NTB: core: Add .get_private_data() to\n ntb_dev_ops",
        "Date": "Thu, 18 Dec 2025 00:15:42 +0900",
        "Message-ID": "<20251217151609.3162665-9-den@valinux.co.jp>",
        "X-Mailer": "git-send-email 2.51.0",
        "In-Reply-To": "<20251217151609.3162665-1-den@valinux.co.jp>",
        "References": "<20251217151609.3162665-1-den@valinux.co.jp>",
        "Content-Transfer-Encoding": "8bit",
        "Content-Type": "text/plain",
        "X-ClientProxiedBy": "TYCP286CA0252.JPNP286.PROD.OUTLOOK.COM\n (2603:1096:400:456::10) To TYWP286MB2697.JPNP286.PROD.OUTLOOK.COM\n (2603:1096:400:24c::11)",
        "Precedence": "bulk",
        "X-Mailing-List": "linux-pci@vger.kernel.org",
        "List-Id": "<linux-pci.vger.kernel.org>",
        "List-Subscribe": "<mailto:linux-pci+subscribe@vger.kernel.org>",
        "List-Unsubscribe": "<mailto:linux-pci+unsubscribe@vger.kernel.org>",
        "MIME-Version": "1.0",
        "X-MS-PublicTrafficType": "Email",
        "X-MS-TrafficTypeDiagnostic": "TYWP286MB2697:EE_|OS9P286MB4633:EE_",
        "X-MS-Office365-Filtering-Correlation-Id": "22a62180-2624-453a-a797-08de3d7f3b9c",
        "X-MS-Exchange-SenderADCheck": "1",
        "X-MS-Exchange-AntiSpam-Relay": "0",
        "X-Microsoft-Antispam": "\n\tBCL:0;ARA:13230040|10070799003|376014|7416014|1800799024|366016;",
        "X-Microsoft-Antispam-Message-Info": "\n Phc8SXXjQ4lS4MvD/X6PnGhGil39Bgg1dPLa3A81d/5iLFEDxNmxetkdN4OsQOqL8hcim/Y8PoNrXqc+W//vV9qBV7MD404K0pzgbnRM0VgZR8oNM3NQXBNGRA9lrO8fSDYPWb1fuBJxtyvvdjUc6CPDJ1qkHUylLdQR/O7bpVt2MWqZHTkR0ETn6irtMsBOzdJCnHSZDTze+mu5bTg9itLDH0geiQeU/uG/z5UjdDzo/13ZHeBvmE7dfrSrJfYa7UzUu1wQ7gelIdI3Kg9XG6Bk33g5NrO40BqpSE2+naGQYV5B+NRrWN/Pm78Hue3wDGno0O+ZPSqgIvBtyB4OGaWcIbw3i/wluxMhtt0FAXo6RBDI/FkVg89GQiC193XG72RwMCcwF+ry8kiEQcSooxOqYaWq6mZIQyFWNwkdfTb7LugudMENiB6x302PaYYxIVQRs87qewAq9pmrrbLfSQDTbkymdPAGiuNuZdsoTgeybZYUdVL0ftD1sAjpFlxyKOlqStNWOcYGcAteLjz0Fjive61Zdych+nWBwt2XVkul8HrsdvpSe8z9A9nZqK1X0PKq+198kpi3pLza4LL6z8B0o08DBh6g15QOF7fzHz/jsDiD1Tlj6x5r0tQDBSmqePk+/OTWFm5tLR12gwyK5S42oXYkHjp0RveAgFDpiBr1E4owcG+3eS/S+Gxs21pZOK3SJ3IQ1xXxDnpniOqEkoNfKl1/gwmSCRg0HmGpI/RCSBBL+QJzNDMDyqZfp/2RQwEIlQILVarD7pimyXx/VYepJG2GC8sbccpsxnqfatf9aUMcWZSBCksl9Gcc29q69vipZcfJjG0mY8OEcUr8dBDsS9NeljLn49xgEE3BGhc6YK19vC/hofIEWoEptTWzaYmAM7g7Af+cM8KKWhB58bs04uw5dgtNxMpeU4eYA+CRteIFMOpqHDw/crJQM0guAedYR2SHNEx1Klw+xxDVwkMu6qTWlXo2Xoh9kOMXhQy7eaOYsscXM/lXPrRi+9wiDmiXCVof/+ncnZvZ18fz9m8T8V7+aORNY+y16MFQabEJZOGAdrgy75zDdL9bhpLhF4Ui+eVD3btqacjz4HGPQFOCEQjL4/bLbmCWRSEMLMogrEOzs2Z5jqfls1jD0wO+/5l9E5MnkZmguK2WiguUMaM0+gFwOKfs90vk2GZFNEBaSlgGUO5CwAXLYfxxsrgFfKjqwnN6RFVjPzFhn+CrjAsNPJTcbXnqjojhE1vvDaX1KpfumzQKkl5qq5QiUrhcBc7QHZNWQeT+k4YSPFXlp3iBdGkrVa5gxfig1LCcP6aPsnxWX56rYpw6+GSEJa26pp+XeMGBIGLpgxMFuCMn6RburlwhmVadbKTTN+5MWY49D9L89puoQlJxm+qlciVGMLb03XojkjBhu/hpCr+0CQedF3JM1sA43aTcnsH+Yyg2qI35ytaN0yt0Zc0N89wG",
        "X-Forefront-Antispam-Report": "\n\tCIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:TYWP286MB2697.JPNP286.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(10070799003)(376014)(7416014)(1800799024)(366016);DIR:OUT;SFP:1101;",
        "X-MS-Exchange-AntiSpam-MessageData-ChunkCount": "1",
        "X-MS-Exchange-AntiSpam-MessageData-0": "\n YUwm6HckkKgYSy038p0ENaizXyLnTmWjjA+J18I4cg9kFqlXi/fCi6+XBJzlHH7b2qOwULuvzIpLI4GtaPnuZCUzJkkrr6uG7izKQy4pe7CJtK9pQ3QHAtAMJjLBtjRZKpf+PFlpHVRGUNEwN9qMtIq3XGIENMK1MgiFwHY7b+7MWnGgrGwqnBVD5guL37b+GvuTRiX6jY+QX5rntL3BH0eINdezZA6wXogDLg+C+5WMHAr9gNhouYXlpbIPczD0vJcvdx2Tmv7OKZ+6xdlHQcGdaxR4LsmfOJDkCkr6I26MFMDkFqDVylQbhwzYru8ZVONpAWAvfdZXEPcs+hEQRN9MpwWExnpxPhuCn96G4VoGcMp3NWTSJtANHLKurXZamXhOfCKsoRLOZuLeclah0TEZjBIjXdLp+ZB7ouwi/VBt22ERp8dkTIoEU907MfHw9vrhsFPTqZvC6DmJlsWbuY+euW1vsiiftvG+uGPxrBcJERRxzLm6MF2+pAiawBS7ohnr7SJ5gl1c8zbH/10gijr+RNQdlRaRHuHWMLPsUQhlBQk/hiDvishPVR7Y9Tr4FLdlEIEJde8AdNQ8c5XPzwAEufMPrZsf4/m/5MW6Nyb5WwofECrjbwXk67R7Uvj5OJtoy1kwmpx4pbnUzWMQOOm5iu+p8cGYDc797OFYNwrt/Vs2/aYtOWha5HTzVCIlWS8CVdQ3fEoH8xzHX+KNE3yp/wpgKzp0c9A9jvafliVprMfh6MKe2vKwLZnkPaRSbJmbs1lHeIthsVzNz+k2vMW31CoUHF1VdsjXWVmn8n4u+pPmX7Y0ausnz4Hd8B447U6/xwxhUkkUVvOQn4iVxKpaIz0wyfTzy6lLTgEz0/Lp5D2paTnauVCZ+saoSv5PEUA8GR+8aXD0jCQg24uPkANUTmF0PFUj6h0p5h/vLFbxOLJYWngZ5Q7Sb2kdyaqVoFbvyZlfk+EMCDgCG+qs/eKi5yAzdY2uWr8gZAx/iKfd/xYD0YRG3w9hiAQR52X+BJv2Eqf0Bf6gjF7IkzZhNtlS4F9s0s2VZWs6uw6DYlwi25MJtHDttg5K+G72rzxail+M5bl1TMQRTkKpd2Z8pq2JqiAbJsk2npr3sZTm63ULd1CouSu2ZA1eRJt6KppwN519XCPBD+eRGTXwGcKGFFDYDy7OCypFaeEeBdjcGp0FKJYtXhE/L8k7HGHcFnlf5ksw6q7vt3onw4C9aLYYsagREk9aTUGR7fTHyq9C0mFbZY2Ucxm2baqthL0bIuh/oB/2Pn5IaNFa92sJikshVbnwv7tPoJ1s3okYysy9v88qn4iVznqWZws1/4SW457W4qW3zfOwf/z6AGYxhREAXUKIQkYVta3YG6nq43aXlee2ZlJ3/zRTnZ0Clnb3z1VZ7jlFtxLDRgi42R+yOFh23B9UPbQc2sN6C2wobNj2jK+gNDyx/pF0W9IE5VAbc5FK+jrm1qNPcruzQKCkM/Dit9rJ4gCXpUrO7TAfbIjJsLzgarnTcIFDg0hFG7f9ZLywd3DHn8e1fTujwQkVJ+6S9MguOd5EJzlCRSBhs9dMe7uuUoBn6uCaIJ1TQcldVXMkidvHSxIsBk9FJO3DKqC2ZkGEs0NjT/wi/sYq7KVUmEE=",
        "X-OriginatorOrg": "valinux.co.jp",
        "X-MS-Exchange-CrossTenant-Network-Message-Id": "\n 22a62180-2624-453a-a797-08de3d7f3b9c",
        "X-MS-Exchange-CrossTenant-AuthSource": "TYWP286MB2697.JPNP286.PROD.OUTLOOK.COM",
        "X-MS-Exchange-CrossTenant-AuthAs": "Internal",
        "X-MS-Exchange-CrossTenant-OriginalArrivalTime": "17 Dec 2025 15:16:20.4162\n (UTC)",
        "X-MS-Exchange-CrossTenant-FromEntityHeader": "Hosted",
        "X-MS-Exchange-CrossTenant-Id": "7a57bee8-f73d-4c5f-a4f7-d72c91c8c111",
        "X-MS-Exchange-CrossTenant-MailboxType": "HOSTED",
        "X-MS-Exchange-CrossTenant-UserPrincipalName": "\n OrvG9RLaULOUFSGej2KBeu628cwFH6186NZxvbEdrdw7WXnXlCAiAEZ6A064QXoMKd62Nmzg0B0+dkCu+lq0Vw==",
        "X-MS-Exchange-Transport-CrossTenantHeadersStamped": "OS9P286MB4633"
    },
    "content": "Add an optional get_private_data() callback to retrieve a private data\nspecific to the underlying hardware driver, e.g. pci_epc device\nassociated with the NTB implementation.\n\nSigned-off-by: Koichiro Den <den@valinux.co.jp>\n---\n include/linux/ntb.h | 20 ++++++++++++++++++++\n 1 file changed, 20 insertions(+)",
    "diff": "diff --git a/include/linux/ntb.h b/include/linux/ntb.h\nindex d7ce5d2e60d0..0dcd9bb57f47 100644\n--- a/include/linux/ntb.h\n+++ b/include/linux/ntb.h\n@@ -256,6 +256,7 @@ static inline int ntb_ctx_ops_is_valid(const struct ntb_ctx_ops *ops)\n  * @msg_clear_mask:\tSee ntb_msg_clear_mask().\n  * @msg_read:\t\tSee ntb_msg_read().\n  * @peer_msg_write:\tSee ntb_peer_msg_write().\n+ * @get_private_data:\tSee ntb_get_private_data().\n  */\n struct ntb_dev_ops {\n \tint (*port_number)(struct ntb_dev *ntb);\n@@ -331,6 +332,7 @@ struct ntb_dev_ops {\n \tint (*msg_clear_mask)(struct ntb_dev *ntb, u64 mask_bits);\n \tu32 (*msg_read)(struct ntb_dev *ntb, int *pidx, int midx);\n \tint (*peer_msg_write)(struct ntb_dev *ntb, int pidx, int midx, u32 msg);\n+\tvoid *(*get_private_data)(struct ntb_dev *ntb);\n };\n \n static inline int ntb_dev_ops_is_valid(const struct ntb_dev_ops *ops)\n@@ -393,6 +395,9 @@ static inline int ntb_dev_ops_is_valid(const struct ntb_dev_ops *ops)\n \t\t/* !ops->msg_clear_mask == !ops->msg_count\t&& */\n \t\t!ops->msg_read == !ops->msg_count\t\t&&\n \t\t!ops->peer_msg_write == !ops->msg_count\t\t&&\n+\n+\t\t/* Miscellaneous optional callbacks */\n+\t\t/* ops->get_private_data\t\t\t&& */\n \t\t1;\n }\n \n@@ -1567,6 +1572,21 @@ static inline int ntb_peer_msg_write(struct ntb_dev *ntb, int pidx, int midx,\n \treturn ntb->ops->peer_msg_write(ntb, pidx, midx, msg);\n }\n \n+/**\n+ * ntb_get_private_data() - get private data specific to the hardware driver\n+ * @ntb:\tNTB device context.\n+ *\n+ * Retrieve private data specific to the hardware driver.\n+ *\n+ * Return: Pointer to the private data if available. or %NULL if not.\n+ */\n+static inline void __maybe_unused *ntb_get_private_data(struct ntb_dev *ntb)\n+{\n+\tif (!ntb->ops->get_private_data)\n+\t\treturn NULL;\n+\treturn ntb->ops->get_private_data(ntb);\n+}\n+\n /**\n  * ntb_peer_resource_idx() - get a resource index for a given peer idx\n  * @ntb:\tNTB device context.\n",
    "prefixes": [
        "RFC",
        "v3",
        "08/35"
    ]
}