From: sashiko-bot@kernel.org
To: "Chengwen Feng" <fengchengwen@huawei.com>
Cc: linux-pci@vger.kernel.org, kvm@vger.kernel.org
Subject: Re: [PATCH v20 13/16] vfio/pci: Add IV-ST TPH policy and VFIO TPH_ST batch programming support
Date: Tue, 14 Jul 2026 11:14:44 +0000 [thread overview]
Message-ID: <20260714111445.E06F31F000E9@smtp.kernel.org> (raw)
In-Reply-To: <20260714104325.54444-14-fengchengwen@huawei.com>
Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
Pre-existing issues:
- [High] Unconditional call to `dma_resv_unlock` even when `dma_resv_lock_interruptible` fails, leading to unbalanced unlock.
--
--- Patch [13]: [PATCH v20 13/16] vfio/pci: Add IV-ST TPH policy and VFIO TPH_ST batch programming support ---
commit d4cf54f638f6e3b2fed97fa978cb257c72da35af
Author: Chengwen Feng <fengchengwen@huawei.com>
vfio/pci: Add IV-ST TPH policy and VFIO TPH_ST batch programming support
This commit extends VFIO TPH implementation to support IV-ST mode based on
the existing NO-ST baseline. It adds the VFIO_DEVICE_FEATURE_TPH_ST feature
to enable batch ST table programming for NONE, DMABUF, and CPU sources.
> diff --git a/drivers/vfio/pci/vfio_pci_core.c b/drivers/vfio/pci/vfio_pci_core.c
> index 82582c8ef69da..df31f4e8766fa 100644
> --- a/drivers/vfio/pci/vfio_pci_core.c
> +++ b/drivers/vfio/pci/vfio_pci_core.c
[ ... ]
> @@ -1680,6 +1690,32 @@ static int vfio_pci_get_dmabuf_tph(int fd, bool extended, u16 *st, u8 *ph)
> return ret;
> }
>
> +static int vfio_pci_get_tph_st_tag(struct pci_dev *pdev, u32 src_bits,
> + u32 src_hndl, bool extended, u16 *st)
> +{
> + u8 req_type = extended ? PCI_TPH_REQ_EXT_TPH : PCI_TPH_REQ_TPH_ONLY;
> + int ret = 0;
> + u8 ph;
> +
> + if (src_bits & VFIO_DEVICE_TPH_SRC_DMABUF)
> + ret = vfio_pci_get_dmabuf_tph(src_hndl, extended, st, &ph);
[Severity: High]
This isn't a bug introduced by this patch, but looking at the implementation
of vfio_pci_get_dmabuf_tph() which is called here, is there an unbalanced
unlock if the lock acquisition is interrupted?
In drivers/vfio/pci/vfio_pci_core.c:vfio_pci_get_dmabuf_tph():
ret = dma_resv_lock_interruptible(dmabuf->resv, NULL);
if (ret == 0)
ret = dma_buf_get_pci_tph(dmabuf, extended, st, ph);
dma_resv_unlock(dmabuf->resv);
If a signal is delivered to the thread while it is attempting to acquire the
lock, dma_resv_lock_interruptible() will return a non-zero error. The
if (ret == 0) check correctly skips the inner function, but does this code
still unconditionally execute dma_resv_unlock() and corrupt the lock state?
> + else if (src_bits & VFIO_DEVICE_TPH_SRC_CPU_VOLATILE)
> + ret = pcie_tph_get_cpu_st_ext(pdev, TPH_MEM_TYPE_VM,
> + req_type, src_hndl, st);
> + else if (src_bits & VFIO_DEVICE_TPH_SRC_CPU_PERSISTENT)
> + ret = pcie_tph_get_cpu_st_ext(pdev, TPH_MEM_TYPE_PM,
> + req_type, src_hndl, st);
> + else if (src_bits & VFIO_DEVICE_TPH_SRC_NONE)
> + *st = 0;
> + else
> + ret = -EINVAL;
> +
> + if (ret != 0)
> + *st = 0;
> +
> + return ret;
> +}
--
Sashiko AI review · https://sashiko.dev/#/patchset/20260714104325.54444-1-fengchengwen@huawei.com?part=13
next prev parent reply other threads:[~2026-07-14 11:14 UTC|newest]
Thread overview: 33+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-07-14 10:43 [PATCH v20 00/16] vfio/pci: Add PCIe TPH support Chengwen Feng
2026-07-14 10:43 ` [PATCH v20 01/16] PCI/TPH: Add requester/completer type helpers Chengwen Feng
2026-07-14 10:54 ` sashiko-bot
2026-07-14 10:43 ` [PATCH v20 02/16] dma-buf: add optional get_pci_tph() callback Chengwen Feng
2026-07-14 10:50 ` sashiko-bot
2026-07-14 10:43 ` [PATCH v20 03/16] vfio/pci: implement get_pci_tph and DMA_BUF_TPH feature Chengwen Feng
2026-07-14 10:50 ` sashiko-bot
2026-07-14 10:43 ` [PATCH v20 04/16] PCI/TPH: Fix pcie_tph_get_st_table_loc() field extraction Chengwen Feng
2026-07-14 10:54 ` sashiko-bot
2026-07-14 10:43 ` [PATCH v20 05/16] PCI/TPH: Fix tph_enabled concurrent update race by bitfield packing Chengwen Feng
2026-07-14 11:00 ` sashiko-bot
2026-07-14 10:43 ` [PATCH v20 06/16] PCI/TPH: Cache negotiated max requester type at probe time Chengwen Feng
2026-07-14 10:57 ` sashiko-bot
2026-07-14 10:43 ` [PATCH v20 07/16] PCI/TPH: Refactor pcie_enable_tph and add requester variant Chengwen Feng
2026-07-14 10:58 ` sashiko-bot
2026-07-14 10:43 ` [PATCH v20 08/16] PCI/TPH: Refactor pcie_tph_get_cpu_st & " Chengwen Feng
2026-07-14 11:00 ` sashiko-bot
2026-07-14 10:43 ` [PATCH v20 09/16] PCI/TPH: Add macros to check standard and extended TPH support Chengwen Feng
2026-07-14 11:07 ` sashiko-bot
2026-07-14 10:43 ` [PATCH v20 10/16] PCI/TPH: Add pcie_tph_set_st_entries() batch ST entry programming helper Chengwen Feng
2026-07-14 11:11 ` sashiko-bot
2026-07-14 10:43 ` [PATCH v20 11/16] PCI/TPH: Add pci_tph_dsm_supported() helper to detect device TPH ST _DSM Chengwen Feng
2026-07-14 11:27 ` sashiko-bot
2026-07-14 10:43 ` [PATCH v20 12/16] vfio/pci: Add basic NO-ST TPH VFIO device feature support Chengwen Feng
2026-07-14 11:10 ` sashiko-bot
2026-07-14 10:43 ` [PATCH v20 13/16] vfio/pci: Add IV-ST TPH policy and VFIO TPH_ST batch programming support Chengwen Feng
2026-07-14 11:14 ` sashiko-bot [this message]
2026-07-14 10:43 ` [PATCH v20 14/16] vfio/pci: Add DS-ST TPH policy and extend TPH_RESOLVE capabilities Chengwen Feng
2026-07-14 11:12 ` sashiko-bot
2026-07-14 10:43 ` [PATCH v20 15/16] vfio/pci: Sync core PCI TPH software state across device lifecycle and resets Chengwen Feng
2026-07-14 11:28 ` sashiko-bot
2026-07-14 10:43 ` [PATCH v20 16/16] vfio/pci: Expose per-device TPH state via debugfs Chengwen Feng
2026-07-14 11:17 ` sashiko-bot
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=20260714111445.E06F31F000E9@smtp.kernel.org \
--to=sashiko-bot@kernel.org \
--cc=fengchengwen@huawei.com \
--cc=kvm@vger.kernel.org \
--cc=linux-pci@vger.kernel.org \
--cc=sashiko-reviews@lists.linux.dev \
/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.