From: Bjorn Helgaas <helgaas@kernel.org>
To: Zhiping Zhang <zhipingz@meta.com>
Cc: Jason Gunthorpe <jgg@ziepe.ca>, Leon Romanovsky <leon@kernel.org>,
Michael Guralnik <michaelgur@nvidia.com>,
Sumit Semwal <sumit.semwal@linaro.org>,
Christian Konig <christian.koenig@amd.com>,
Alex Williamson <alex@shazbot.org>,
Bjorn Helgaas <bhelgaas@google.com>,
kvm@vger.kernel.org, linux-rdma@vger.kernel.org,
linux-pci@vger.kernel.org, dri-devel@lists.freedesktop.org,
Chengwen Feng <fengchengwen@huawei.com>
Subject: Re: [PATCH v13 1/5] PCI/TPH: treat reserved 0b10 completer encoding as unsupported
Date: Tue, 15 Sep 2026 17:19:24 -0500 [thread overview]
Message-ID: <20260915221924.GA876929@bhelgaas> (raw)
In-Reply-To: <20260731211601.3033906-2-zhipingz@meta.com>
On Fri, Jul 31, 2026 at 02:15:48PM -0700, Zhiping Zhang wrote:
> get_rp_completer_type() returns the Root Port's "TPH Completer
> Supported" field (bits 13:12 of Device Capabilities 2) verbatim. The
> 0b10 encoding is reserved, but pcie_enable_tph() feeds the raw value
> into the requester type:
>
> pdev->tph_req_type = min(pdev->tph_req_type, rp_req_type);
>
> and later writes tph_req_type to the TPH Requester Enable field, which
> only defines 0b00 (disable), 0b01 (TPH only) and 0b11 (extended TPH).
>
> No known hardware presents the reserved 0b10 in this field, so this is
> defensive hardening rather than a fix for observed silicon: fold the
> reserved encoding into "not supported" so only the three architected
> values can ever reach the Requester Enable field.
>
> Signed-off-by: Zhiping Zhang <zhipingz@meta.com>
> Acked-by: Chengwen Feng <fengchengwen@huawei.com>
In subject, to match history of the file:
PCI/TPH: Treat reserved 0b10 completer encoding as unsupported
Acked-by: Bjorn Helgaas <bhelgaas@google.com>
> ---
> drivers/pci/tph.c | 11 ++++++++++-
> 1 file changed, 10 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/pci/tph.c b/drivers/pci/tph.c
> index 655ffd60e62f..5cbb381e2a02 100644
> --- a/drivers/pci/tph.c
> +++ b/drivers/pci/tph.c
> @@ -200,6 +200,7 @@ EXPORT_SYMBOL(pcie_tph_get_st_table_size);
> static u8 get_rp_completer_type(struct pci_dev *pdev)
> {
> struct pci_dev *rp;
> + u8 tph_comp;
> u32 reg;
> int ret;
>
> @@ -211,7 +212,15 @@ static u8 get_rp_completer_type(struct pci_dev *pdev)
> if (ret)
> return 0;
>
> - return FIELD_GET(PCI_EXP_DEVCAP2_TPH_COMP_MASK, reg);
> + /*
> + * 0b10 is reserved; treat it as "not supported" so only the
> + * architected encodings reach the Requester Enable field.
> + */
> + tph_comp = FIELD_GET(PCI_EXP_DEVCAP2_TPH_COMP_MASK, reg);
> + if (tph_comp == PCI_EXP_DEVCAP2_TPH_COMP_TPH_ONLY ||
> + tph_comp == PCI_EXP_DEVCAP2_TPH_COMP_EXT_TPH)
> + return tph_comp;
> + return PCI_EXP_DEVCAP2_TPH_COMP_NONE;
> }
>
> /* Write tag to ST table - Return 0 if OK, otherwise -errno */
> --
> 2.53.0-Meta
>
next prev parent reply other threads:[~2026-09-15 22:19 UTC|newest]
Thread overview: 36+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-07-31 21:15 [PATCH v13 0/5] vfio/dma-buf: add TPH support for peer-to-peer access Zhiping Zhang
2026-07-31 21:15 ` [PATCH v13 1/5] PCI/TPH: treat reserved 0b10 completer encoding as unsupported Zhiping Zhang
2026-07-31 21:38 ` sashiko-bot
2026-09-15 22:19 ` Bjorn Helgaas [this message]
2026-09-15 23:14 ` Zhiping Zhang
2026-07-31 21:15 ` [PATCH v13 2/5] PCI/TPH: Add requester/completer type helpers Zhiping Zhang
2026-07-31 21:40 ` sashiko-bot
2026-08-03 1:21 ` fengchengwen
2026-09-15 22:23 ` Bjorn Helgaas
2026-09-15 23:27 ` Zhiping Zhang
2026-07-31 21:15 ` [PATCH v13 3/5] dma-buf: add optional get_pci_tph() callback Zhiping Zhang
2026-07-31 21:37 ` sashiko-bot
2026-07-31 21:15 ` [PATCH v13 4/5] vfio/pci: implement get_pci_tph and DMA_BUF_TPH feature Zhiping Zhang
2026-07-31 21:38 ` sashiko-bot
2026-07-31 21:15 ` [PATCH v13 5/5] RDMA/mlx5: get tph for p2p access when registering dma-buf mr Zhiping Zhang
2026-07-31 21:48 ` sashiko-bot
2026-07-31 22:59 ` Zhiping Zhang
2026-09-23 19:11 ` Zhiping Zhang
2026-09-24 1:13 ` fengchengwen
2026-09-24 6:24 ` Zhiping Zhang
2026-09-24 23:30 ` Jason Gunthorpe
2026-09-25 6:17 ` Zhiping Zhang
2026-09-28 17:29 ` Jason Gunthorpe
2026-09-28 21:47 ` Zhiping Zhang
2026-09-30 12:13 ` Leon Romanovsky
2026-10-05 21:33 ` Zhiping Zhang
2026-08-14 18:08 ` [PATCH v13 0/5] vfio/dma-buf: add TPH support for peer-to-peer access Zhiping Zhang
2026-09-02 20:53 ` Zhiping Zhang
2026-09-10 21:46 ` [PATCH v13 0/5] vfio/dma-buf: add TPH support for peer-to-peer access - ping Zhiping Zhang
2026-09-11 7:58 ` Christian König
2026-09-14 16:44 ` Zhiping Zhang
2026-09-15 20:49 ` Alex Williamson
2026-09-16 0:17 ` Zhiping Zhang
2026-09-15 11:37 ` Leon Romanovsky
2026-09-15 12:59 ` Christian König
2026-09-15 13:37 ` Leon Romanovsky
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20260915221924.GA876929@bhelgaas \
--to=helgaas@kernel.org \
--cc=alex@shazbot.org \
--cc=bhelgaas@google.com \
--cc=christian.koenig@amd.com \
--cc=dri-devel@lists.freedesktop.org \
--cc=fengchengwen@huawei.com \
--cc=jgg@ziepe.ca \
--cc=kvm@vger.kernel.org \
--cc=leon@kernel.org \
--cc=linux-pci@vger.kernel.org \
--cc=linux-rdma@vger.kernel.org \
--cc=michaelgur@nvidia.com \
--cc=sumit.semwal@linaro.org \
--cc=zhipingz@meta.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.