get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 2195334,
    "url": "http://patchwork.ozlabs.org/api/patches/2195334/?format=api",
    "web_url": "http://patchwork.ozlabs.org/project/linux-pci/patch/20260210194014.2147481-3-zhipingz@meta.com/",
    "project": {
        "id": 28,
        "url": "http://patchwork.ozlabs.org/api/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,
        "list_archive_url": "",
        "list_archive_url_format": "",
        "commit_url_format": ""
    },
    "msgid": "<20260210194014.2147481-3-zhipingz@meta.com>",
    "list_archive_url": null,
    "date": "2026-02-10T19:39:55",
    "name": "[RFC,2/2] RMDA MLX5: get tph for p2p access when registering dmabuf mr",
    "commit_ref": null,
    "pull_url": null,
    "state": "new",
    "archived": false,
    "hash": "69ee45dc04d8beee58735c131189d6272fb70d05",
    "submitter": {
        "id": 92088,
        "url": "http://patchwork.ozlabs.org/api/people/92088/?format=api",
        "name": "Zhiping Zhang",
        "email": "zhipingz@meta.com"
    },
    "delegate": null,
    "mbox": "http://patchwork.ozlabs.org/project/linux-pci/patch/20260210194014.2147481-3-zhipingz@meta.com/mbox/",
    "series": [
        {
            "id": 491732,
            "url": "http://patchwork.ozlabs.org/api/series/491732/?format=api",
            "web_url": "http://patchwork.ozlabs.org/project/linux-pci/list/?series=491732",
            "date": "2026-02-10T19:39:53",
            "name": "Retrieve tph from dmabuf for PCIe P2P memory access",
            "version": 1,
            "mbox": "http://patchwork.ozlabs.org/series/491732/mbox/"
        }
    ],
    "comments": "http://patchwork.ozlabs.org/api/patches/2195334/comments/",
    "check": "pending",
    "checks": "http://patchwork.ozlabs.org/api/patches/2195334/checks/",
    "tags": {},
    "related": [],
    "headers": {
        "Return-Path": "\n <linux-pci+bounces-47115-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 (2048-bit key;\n unprotected) header.d=meta.com header.i=@meta.com header.a=rsa-sha256\n header.s=s2048-2025-q2 header.b=e+1BrbQE;\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-47115-incoming=patchwork.ozlabs.org@vger.kernel.org;\n receiver=patchwork.ozlabs.org)",
            "smtp.subspace.kernel.org;\n\tdkim=pass (2048-bit key) header.d=meta.com header.i=@meta.com\n header.b=\"e+1BrbQE\"",
            "smtp.subspace.kernel.org;\n arc=none smtp.client-ip=67.231.145.42",
            "smtp.subspace.kernel.org;\n dmarc=pass (p=reject dis=none) header.from=meta.com",
            "smtp.subspace.kernel.org;\n spf=pass smtp.mailfrom=meta.com"
        ],
        "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 4f9XCf2vR4z1xx7\n\tfor <incoming@patchwork.ozlabs.org>; Wed, 11 Feb 2026 06:47:42 +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 1B4CC303EFC4\n\tfor <incoming@patchwork.ozlabs.org>; Tue, 10 Feb 2026 19:47:40 +0000 (UTC)",
            "from localhost.localdomain (localhost.localdomain [127.0.0.1])\n\tby smtp.subspace.kernel.org (Postfix) with ESMTP id 8B7E028D850;\n\tTue, 10 Feb 2026 19:47:37 +0000 (UTC)",
            "from mx0a-00082601.pphosted.com (mx0a-00082601.pphosted.com\n [67.231.145.42])\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 4F4A3202F70\n\tfor <linux-pci@vger.kernel.org>; Tue, 10 Feb 2026 19:47:36 +0000 (UTC)",
            "from pps.filterd (m0044010.ppops.net [127.0.0.1])\n\tby mx0a-00082601.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id\n 61AH2JQ23309727\n\tfor <linux-pci@vger.kernel.org>; Tue, 10 Feb 2026 11:47:35 -0800",
            "from mail.thefacebook.com ([163.114.134.16])\n\tby mx0a-00082601.pphosted.com (PPS) with ESMTPS id 4c88qnjd9q-4\n\t(version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT)\n\tfor <linux-pci@vger.kernel.org>; Tue, 10 Feb 2026 11:47:35 -0800 (PST)",
            "from twshared13080.31.frc3.facebook.com (2620:10d:c085:208::7cb7) by\n mail.thefacebook.com (2620:10d:c08b:78::2ac9) with Microsoft SMTP Server\n (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id\n 15.2.2562.35; Tue, 10 Feb 2026 19:47:33 +0000",
            "by devbig259.ftw1.facebook.com (Postfix, from userid 664516)\n\tid C69F5102666F6; Tue, 10 Feb 2026 11:40:20 -0800 (PST)"
        ],
        "ARC-Seal": "i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;\n\tt=1770752857; cv=none;\n b=mH8mbcxjmI4no9nJg8vRu/N3eExWAGsq1VjBXxBkRqDcX/+vT3NUwQzPo1o7F60e1I2TVQtToG/HqKoh13F1CGAHtQXM3FsfFW+mwgoF0a7bOldYRJ7TSdyxIP+GH3lD3SiUtOTyHW1HWUoIJWwUkVSilX5yPL0sH6enUIFiyrk=",
        "ARC-Message-Signature": "i=1; a=rsa-sha256; d=subspace.kernel.org;\n\ts=arc-20240116; t=1770752857; c=relaxed/simple;\n\tbh=Zy44/LIpSi3+agiLDUKcDMJV1qfWV/Mh2KHyfM8qNUg=;\n\th=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References:\n\t MIME-Version:Content-Type;\n b=iHSIp5GOokwHaXIgSK5T9GnHhfV333YP2p/xT51qJP1FaeYrbhC7Gw4JDFk5ghuE7MsAXk404hFSomYUJxM91Xo846BtJ2epvQs7cOIJ4413kEjQ0jT9+KiI2EA3fmn20E6Q9HZO8fGBpBsX2LfK45VPszWkXpdjqjPcXt6bX2E=",
        "ARC-Authentication-Results": "i=1; smtp.subspace.kernel.org;\n dmarc=pass (p=reject dis=none) header.from=meta.com;\n spf=pass smtp.mailfrom=meta.com;\n dkim=pass (2048-bit key) header.d=meta.com header.i=@meta.com\n header.b=e+1BrbQE; arc=none smtp.client-ip=67.231.145.42",
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed; d=meta.com; h=cc\n\t:content-transfer-encoding:content-type:date:from:in-reply-to\n\t:message-id:mime-version:references:subject:to; s=s2048-2025-q2;\n\t bh=POD6O1akvG97jkADnL5riRKuih17v4b7P7apRIwKvXg=; b=e+1BrbQEKn4p\n\t+nxrVKU91fkzolnJY7veJA/CMebQB+CtL30K3XQ2x21O39oodqDWLGmiPQmt5N+S\n\t5CpQsdAnIRvjJq0Vtp6z4ocoOJ2TB4xq5N4JH96dwMpQwkYr7eLxd02EsUtfhcKC\n\teyIpt8UtZ1VSOGgRy6W4p+IdEHE8jgkthU/O6VP3mmdbS+gYQPKj0XG7pDGvwuMM\n\tkM5k2kEmmqjTDQPuOGChaUJHi8LhJC3HdNeUnP/GGD290ncImwrxbaafydX+2BZO\n\tmQTh88utZh++8VUbANF0v8lAXWkEB+msRHvEc/0jbNs1JHsu9Y1wTWOPm7fKrKmN\n\t5IaxLgz72Q==",
        "From": "Zhiping Zhang <zhipingz@meta.com>",
        "To": "Jason Gunthorpe <jgg@ziepe.ca>, Leon Romanovsky <leon@kernel.org>,\n        Bjorn\n Helgaas <bhelgaas@google.com>, <linux-rdma@vger.kernel.org>,\n        <linux-pci@vger.kernel.org>, <netdev@vger.kernel.org>,\n        <dri-devel@lists.freedesktop.org>, Keith Busch <kbusch@kernel.org>,\n        Yochai\n Cohen <yochai@nvidia.com>, Yishai Hadas <yishaih@nvidia.com>",
        "CC": "Bjorn Helgaas <helgaas@kernel.org>, Zhiping Zhang <zhipingz@meta.com>",
        "Subject": "[RFC 2/2] RMDA MLX5: get tph for p2p access when registering dmabuf\n mr",
        "Date": "Tue, 10 Feb 2026 11:39:55 -0800",
        "Message-ID": "<20260210194014.2147481-3-zhipingz@meta.com>",
        "X-Mailer": "git-send-email 2.47.3",
        "In-Reply-To": "<20260210194014.2147481-1-zhipingz@meta.com>",
        "References": "<20260210194014.2147481-1-zhipingz@meta.com>",
        "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",
        "Content-Transfer-Encoding": "quoted-printable",
        "X-FB-Internal": "Safe",
        "Content-Type": "text/plain",
        "X-Proofpoint-Spam-Details-Enc": "AW1haW4tMjYwMjEwMDE2MyBTYWx0ZWRfXx27zKZiWdGXg\n Yaug+0Ww8XK9mXCm0HVYwd6MayDyi8FbcDCNlDv0KbShLdXeLK+SooVcRERUWkaWdo9N/QJDGjv\n iOWKUc5j8V8kJD2J1FI/C1XAdkdGzma8Y1ZQfokedfk4pvG6BIR3hOqB0cwUpYXlCbJQtgn7Cur\n 1q74XP7pVrvUqyPfoyGUSP95ruMG+4d9DUgOU/o5XB7wrlRMMpxtjtRfYFlPG8UZTNIEDlc+eGu\n cckzPVRLE5isvl0lfLv9ufcAtQsgTbMLvPtz9cYbAlLnlOBmGV5N4cZbcZeh0E1pfr8E2+/3eD7\n GiDjcEWefdkGmut4hWxAeLIBlQjrjjO+0euXOMghYvP+1OCijF3mw73RJXOOhFyGOwjWZb7l005\n D3Uk/7gzQvCK/I2IXjLSEeHxkncrR2S5hqlN2GMJFudJ9QDTWLmHQmzyCHRmQWnav4xLW5cA4Jb\n NNhkHTAK4jAWc8a/c2g==",
        "X-Authority-Analysis": "v=2.4 cv=POkCOPqC c=1 sm=1 tr=0 ts=698b8b57 cx=c_pps\n a=CB4LiSf2rd0gKozIdrpkBw==:117 a=CB4LiSf2rd0gKozIdrpkBw==:17\n a=HzLeVaNsDn8A:10 a=VkNPw1HP01LnGYTKEx00:22 a=Mpw57Om8IfrbqaoTuvik:22\n a=GgsMoib0sEa3-_RKJdDe:22 a=VabnemYjAAAA:8 a=tOZ8yR1yUuKf9aCP_icA:9\n a=gKebqoRLp9LExxC7YDUY:22",
        "X-Proofpoint-ORIG-GUID": "rZS0KmhanwLtbdQDqmA81XOhj-AgzWB5",
        "X-Proofpoint-GUID": "rZS0KmhanwLtbdQDqmA81XOhj-AgzWB5",
        "X-Proofpoint-Virus-Version": "vendor=baseguard\n engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.51,FMLib:17.12.100.49\n definitions=2026-02-10_03,2026-02-10_02,2025-10-01_01"
    },
    "content": "The patch adds a local function to check and get tph info when available during\ndmabuf mr registration. Note the DMAH workflow for CPU still takes precedence in\nthe process. Currently, it only works with the direct st_mode. Compatibility\nwith other st_modes will be added in the formal patch set.\n\nSigned-off-by: Zhiping Zhang <zhipingz@meta.com>\n---\n drivers/infiniband/hw/mlx5/mr.c | 30 ++++++++++++++++++++++++++++++\n 1 file changed, 30 insertions(+)",
    "diff": "diff --git a/drivers/infiniband/hw/mlx5/mr.c b/drivers/infiniband/hw/mlx5/mr.c\nindex 325fa04cbe8a..c3eb5b24ef29 100644\n--- a/drivers/infiniband/hw/mlx5/mr.c\n+++ b/drivers/infiniband/hw/mlx5/mr.c\n@@ -46,6 +46,8 @@\n #include \"data_direct.h\"\n #include \"dmah.h\"\n \n+MODULE_IMPORT_NS(\"DMA_BUF\");\n+\n enum {\n \tMAX_PENDING_REG_MR = 8,\n };\n@@ -1623,6 +1625,32 @@ static struct dma_buf_attach_ops mlx5_ib_dmabuf_attach_ops = {\n \t.move_notify = mlx5_ib_dmabuf_invalidate_cb,\n };\n \n+static void get_tph_mr_dmabuf(struct mlx5_ib_dev *dev, int fd, u16 *st_index,\n+\t\t\t\t\t\t\t  u8 *ph)\n+{\n+\tint ret;\n+\tstruct dma_buf *dmabuf;\n+\n+\tdmabuf = dma_buf_get(fd);\n+\tif (IS_ERR(dmabuf))\n+\t\treturn;\n+\n+\tif (!dmabuf->ops->get_tph)\n+\t\tgoto end_dbuf_put;\n+\n+\tret = dmabuf->ops->get_tph(dmabuf, st_index, ph);\n+\n+\tif (ret) {\n+\t\t*st_index = MLX5_MKC_PCIE_TPH_NO_STEERING_TAG_INDEX;\n+\t\t*ph = MLX5_IB_NO_PH;\n+\t\tmlx5_ib_dbg(dev, \"get_tph failed (%d)\\n\", ret);\n+\t\tgoto end_dbuf_put;\n+\t}\n+\n+end_dbuf_put:\n+\tdma_buf_put(dmabuf);\n+};\n+\n static struct ib_mr *\n reg_user_mr_dmabuf(struct ib_pd *pd, struct device *dma_device,\n \t\t   u64 offset, u64 length, u64 virt_addr,\n@@ -1662,6 +1690,8 @@ reg_user_mr_dmabuf(struct ib_pd *pd, struct device *dma_device,\n \t\tph = dmah->ph;\n \t\tif (dmah->valid_fields & BIT(IB_DMAH_CPU_ID_EXISTS))\n \t\t\tst_index = mdmah->st_index;\n+\t} else {\n+\t\tget_tph_mr_dmabuf(dev, fd, &st_index, &ph);\n \t}\n \n \tmr = alloc_cacheable_mr(pd, &umem_dmabuf->umem, virt_addr,\n",
    "prefixes": [
        "RFC",
        "2/2"
    ]
}