public inbox for netdev@vger.kernel.org
 help / color / mirror / Atom feed
From: Bjorn Helgaas <helgaas@kernel.org>
To: Mengyuan Lou <mengyuanlou@net-swift.com>
Cc: netdev@vger.kernel.org, linux-pci@vger.kernel.org
Subject: Re: [PATCH] PCI: Add ACS quirk for Wangxun NICs
Date: Wed, 1 Feb 2023 09:37:50 -0600	[thread overview]
Message-ID: <20230201153750.GA1864705@bhelgaas> (raw)
In-Reply-To: <20230201104703.82511-1-mengyuanlou@net-swift.com>

On Wed, Feb 01, 2023 at 06:47:03PM +0800, Mengyuan Lou wrote:
> The Wangxun 1G/10G NICs may be multi-function devices. They do
> not advertise ACS capability.
> Add an ACS quirk for these devices so the functions can be in
> independent IOMMU groups.

Thanks for the patch!

The commit log and the code comment do not explicitly say that the
hardware implementation blocks transactions between functions.

Can you clarify this by verifying (a) you have direct knowledge that
the hardware *does* block those transactions, and (b) that the
following text is accurate:

  The Wangxun 1G/10G NICs may be multi-function devices. They do not
  advertise an ACS capability, but the hardware implementation always
  blocks peer-to-peer transactions between the functions.

  Add an ACS quirk for these devices so the functions can be in
  independent IOMMU groups.

> + * Wangxun 10G/1G nics have no ACS capability.
> + * But the implementation could block peer-to-peer transactions between them
> + * and provide ACS-like functionality.

Also, if the following comment is accurate, please incorporate it:

  Wangxun 10G/1G NICs have no ACS capability, but on multi-function
  devices, the hardware does block peer-to-peer transactions between
  the functions and provides ACS-like functionality.

"Implementation *could* block peer-to-peer transactions" doesn't say
whether it actually *does*.

If this all makes sense, please repost the patch with updated text.  I
don't want to update it myself because I don't know anything about the
NICs and I don't want to make assumptions.

Bjorn

> + */
> +static int  pci_quirk_wangxun_nic_acs(struct pci_dev *dev, u16 acs_flags)
> +{
> +	switch (dev->device) {
> +	case 0x0100 ... 0x010F:
> +	case 0x1001:
> +	case 0x2001:
> +		return pci_acs_ctrl_enabled(acs_flags,
> +			PCI_ACS_SV | PCI_ACS_RR | PCI_ACS_CR | PCI_ACS_UF);
> +	}
> +
> +	return false;
> +}
> +
>  static const struct pci_dev_acs_enabled {
>  	u16 vendor;
>  	u16 device;
> @@ -4980,6 +4998,8 @@ static const struct pci_dev_acs_enabled {
>  	{ PCI_VENDOR_ID_NXP, 0x8d9b, pci_quirk_nxp_rp_acs },
>  	/* Zhaoxin Root/Downstream Ports */
>  	{ PCI_VENDOR_ID_ZHAOXIN, PCI_ANY_ID, pci_quirk_zhaoxin_pcie_ports_acs },
> +	/* Wangxun nics */
> +	{ PCI_VENDOR_ID_WANGXUN, PCI_ANY_ID, pci_quirk_wangxun_nic_acs },
>  	{ 0 }
>  };
>  
> diff --git a/include/linux/pci_ids.h b/include/linux/pci_ids.h
> index b362d90eb9b0..bc8f484cdcf3 100644
> --- a/include/linux/pci_ids.h
> +++ b/include/linux/pci_ids.h
> @@ -3012,6 +3012,8 @@
>  #define PCI_DEVICE_ID_INTEL_VMD_9A0B	0x9a0b
>  #define PCI_DEVICE_ID_INTEL_S21152BB	0xb152
>  
> +#define PCI_VENDOR_ID_WANGXUN		0x8088
> +
>  #define PCI_VENDOR_ID_SCALEMP		0x8686
>  #define PCI_DEVICE_ID_SCALEMP_VSMP_CTL	0x1010
>  
> -- 
> 2.39.1
> 

  reply	other threads:[~2023-02-01 15:37 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-02-01 10:47 [PATCH] PCI: Add ACS quirk for Wangxun NICs Mengyuan Lou
2023-02-01 15:37 ` Bjorn Helgaas [this message]
  -- strict thread matches above, loose matches on Subject: below --
2023-02-07 10:24 Mengyuan Lou
2023-02-07 17:38 ` Simon Horman
2023-02-08  2:16   ` mengyuanlou
2023-02-08  8:20     ` Simon Horman
2023-02-14  0:07 ` Bjorn Helgaas

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=20230201153750.GA1864705@bhelgaas \
    --to=helgaas@kernel.org \
    --cc=linux-pci@vger.kernel.org \
    --cc=mengyuanlou@net-swift.com \
    --cc=netdev@vger.kernel.org \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox