From: "Michael S. Tsirkin" <mst@redhat.com>
To: Yao Xingtao <yaoxt.fnst@fujitsu.com>
Cc: marcel.apfelbaum@gmail.com, qemu-devel@nongnu.org
Subject: Re: [PATCH v4] pci-bridge: avoid linking a single downstream port more than once
Date: Tue, 10 Sep 2024 11:16:48 -0400 [thread overview]
Message-ID: <20240910111433-mutt-send-email-mst@kernel.org> (raw)
In-Reply-To: <20240725093819.15549-1-yaoxt.fnst@fujitsu.com>
On Thu, Jul 25, 2024 at 05:38:19AM -0400, Yao Xingtao wrote:
> Since the downstream port is not checked, two slots can be linked to
> a single port. However, this can prevent the driver from detecting the
> device properly.
>
> It is necessary to ensure that a downstream port is not linked more than
> once.
>
> Links: https://lore.kernel.org/qemu-devel/OSZPR01MB6453BC61D2FF4035F18084EF8DDC2@OSZPR01MB6453.jpnprd01.prod.outlook.com
> Signed-off-by: Yao Xingtao <yaoxt.fnst@fujitsu.com>
>
> ---
> V3[3] -> V4:
> - make the error message more readable
> - fix the downstream port check error
>
> V2[2] -> V3:
> - Move this check into pcie_cap_init()
>
> V1[1] -> V2:
> - Move downstream port check forward
>
> [1] https://lore.kernel.org/qemu-devel/20240704033834.3362-1-yaoxt.fnst@fujitsu.com
> [2] https://lore.kernel.org/qemu-devel/20240717085621.55315-1-yaoxt.fnst@fujitsu.com
> [3] https://lore.kernel.org/qemu-devel/20240725032731.13032-1-yaoxt.fnst@fujitsu.com
> ---
> hw/pci/pcie.c | 7 +++++++
> 1 file changed, 7 insertions(+)
>
> diff --git a/hw/pci/pcie.c b/hw/pci/pcie.c
> index 4b2f0805c6e0..1e53be1bc7c5 100644
> --- a/hw/pci/pcie.c
> +++ b/hw/pci/pcie.c
> @@ -192,6 +192,13 @@ int pcie_cap_init(PCIDevice *dev, uint8_t offset,
>
> assert(pci_is_express(dev));
>
> + if ((type == PCI_EXP_TYPE_DOWNSTREAM || type == PCI_EXP_TYPE_ROOT_PORT) &&
> + pcie_find_port_by_pn(pci_get_bus(dev), port)) {
> + error_setg(errp, "The port %d is already in use, please select "
> + "another port", port);
> + return -EBUSY;
> + }
> +
> pos = pci_add_capability(dev, PCI_CAP_ID_EXP, offset,
> PCI_EXP_VER2_SIZEOF, errp);
> if (pos < 0) {
But can't there be two functions of a multi-function device,
sharing a port?
> --
> 2.41.0
next prev parent reply other threads:[~2024-09-10 15:17 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-07-25 9:38 [PATCH v4] pci-bridge: avoid linking a single downstream port more than once Yao Xingtao via
2024-08-20 3:20 ` Xingtao Yao (Fujitsu) via
2024-09-10 15:16 ` Michael S. Tsirkin [this message]
2024-09-12 2:41 ` Xingtao Yao (Fujitsu) via
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=20240910111433-mutt-send-email-mst@kernel.org \
--to=mst@redhat.com \
--cc=marcel.apfelbaum@gmail.com \
--cc=qemu-devel@nongnu.org \
--cc=yaoxt.fnst@fujitsu.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.