[PATCH] pci: Add ACS quirk for Broadcom BCM5760X NIC

Ajit Khaparde posted 1 patch 1 year, 9 months ago
drivers/pci/quirks.c | 4 ++++
1 file changed, 4 insertions(+)
[PATCH] pci: Add ACS quirk for Broadcom BCM5760X NIC
Posted by Ajit Khaparde 1 year, 9 months ago
The Broadcom BCM5760X NIC may be a multi-function device.
While it does not advertise an ACS capability, peer-to-peer
transactions are not possible between the individual functions.
So it is ok to treat them as fully isolated.

Add an ACS quirk for this device so the functions can be in independent
IOMMU groups and attached individually to userspace applications using
VFIO.

Signed-off-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
Reviewed-by: Andy Gospodarek <gospo@broadcom.com>
---
 drivers/pci/quirks.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c
index eff7f5df08e2..3d8aa3f709e2 100644
--- a/drivers/pci/quirks.c
+++ b/drivers/pci/quirks.c
@@ -5099,6 +5099,10 @@ static const struct pci_dev_acs_enabled {
 	{ PCI_VENDOR_ID_BROADCOM, 0x1750, pci_quirk_mf_endpoint_acs },
 	{ PCI_VENDOR_ID_BROADCOM, 0x1751, pci_quirk_mf_endpoint_acs },
 	{ PCI_VENDOR_ID_BROADCOM, 0x1752, pci_quirk_mf_endpoint_acs },
+	{ PCI_VENDOR_ID_BROADCOM, 0x1760, pci_quirk_mf_endpoint_acs },
+	{ PCI_VENDOR_ID_BROADCOM, 0x1761, pci_quirk_mf_endpoint_acs },
+	{ PCI_VENDOR_ID_BROADCOM, 0x1762, pci_quirk_mf_endpoint_acs },
+	{ PCI_VENDOR_ID_BROADCOM, 0x1763, pci_quirk_mf_endpoint_acs },
 	{ PCI_VENDOR_ID_BROADCOM, 0xD714, pci_quirk_brcm_acs },
 	/* Amazon Annapurna Labs */
 	{ PCI_VENDOR_ID_AMAZON_ANNAPURNA_LABS, 0x0031, pci_quirk_al_acs },
-- 
2.39.2 (Apple Git-143)

Re: [PATCH] pci: Add ACS quirk for Broadcom BCM5760X NIC
Posted by Krzysztof Wilczyński 1 year, 9 months ago
Hello,

> The Broadcom BCM5760X NIC may be a multi-function device.
> While it does not advertise an ACS capability, peer-to-peer
> transactions are not possible between the individual functions.
> So it is ok to treat them as fully isolated.
> 
> Add an ACS quirk for this device so the functions can be in independent
> IOMMU groups and attached individually to userspace applications using
> VFIO.

Applied to acs, thank you!

[1/1] PCI: Add ACS quirk for Broadcom BCM5760X NIC
      https://git.kernel.org/pci/pci/c/694b705cdbf7

	Krzysztof
Re: [PATCH] pci: Add ACS quirk for Broadcom BCM5760X NIC
Posted by Bjorn Helgaas 1 year, 9 months ago
On Fri, May 10, 2024 at 01:42:28PM -0700, Ajit Khaparde wrote:
> The Broadcom BCM5760X NIC may be a multi-function device.
> While it does not advertise an ACS capability, peer-to-peer
> transactions are not possible between the individual functions.
> So it is ok to treat them as fully isolated.
> 
> Add an ACS quirk for this device so the functions can be in independent
> IOMMU groups and attached individually to userspace applications using
> VFIO.
> 
> Signed-off-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
> Reviewed-by: Andy Gospodarek <gospo@broadcom.com>

Looks like this was applied by Krzysztof to pci/acs for v6.10.

I'm hoping Broadcom is still working on using the standard ACS so we
don't have to add quirks forever:

https://lore.kernel.org/all/CACKFLinvohm+jRupNZAV=G+OHg1buXvLDrs0yGgPY3o6NB8biA@mail.gmail.com/#t

> ---
>  drivers/pci/quirks.c | 4 ++++
>  1 file changed, 4 insertions(+)
> 
> diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c
> index eff7f5df08e2..3d8aa3f709e2 100644
> --- a/drivers/pci/quirks.c
> +++ b/drivers/pci/quirks.c
> @@ -5099,6 +5099,10 @@ static const struct pci_dev_acs_enabled {
>  	{ PCI_VENDOR_ID_BROADCOM, 0x1750, pci_quirk_mf_endpoint_acs },
>  	{ PCI_VENDOR_ID_BROADCOM, 0x1751, pci_quirk_mf_endpoint_acs },
>  	{ PCI_VENDOR_ID_BROADCOM, 0x1752, pci_quirk_mf_endpoint_acs },
> +	{ PCI_VENDOR_ID_BROADCOM, 0x1760, pci_quirk_mf_endpoint_acs },
> +	{ PCI_VENDOR_ID_BROADCOM, 0x1761, pci_quirk_mf_endpoint_acs },
> +	{ PCI_VENDOR_ID_BROADCOM, 0x1762, pci_quirk_mf_endpoint_acs },
> +	{ PCI_VENDOR_ID_BROADCOM, 0x1763, pci_quirk_mf_endpoint_acs },
>  	{ PCI_VENDOR_ID_BROADCOM, 0xD714, pci_quirk_brcm_acs },
>  	/* Amazon Annapurna Labs */
>  	{ PCI_VENDOR_ID_AMAZON_ANNAPURNA_LABS, 0x0031, pci_quirk_al_acs },
> -- 
> 2.39.2 (Apple Git-143)
>