On Thu, Jan 25, 2018 at 03:36:07PM -0800, Feng Kan wrote:
> Adding Ampere Computing vendor id to the ACS quirk list.

I assume these new devices provide isolation and source validation the
same way the X-Gene devices do:

  commit a0418aa262df
  Author: Feng Kan <f...@apm.com>
  Date:   Thu Aug 10 16:06:33 2017 -0500

    PCI: Add ACS quirk for APM X-Gene devices
    
    The APM X-Gene PCIe root port does not support ACS at this point.  However,
    the hardware provides isolation and source validation through the SMMU.
    The stream ID generated by the PCIe ports contain both the bus/device/
    function number as well as the port ID in its 3 most significant bits.
    Turn on ACS but disable all the peer-to-peer features.

If so, please repost this patch with subject and changelog similar
to the above.  I want an explicit statement about how you provide
protection equivalent to ACS so it's clear this isn't a patch that
just makes things "work" at the expense of security.

> Signed-off-by: Feng Kan <f...@apm.com>
> ---
>  Tanmay is no longer with us. After the email system is rebranded
>  to the new company. We will clean up the remaining legacy items.
> 
>  drivers/pci/quirks.c    | 9 +++++++++
>  include/linux/pci_ids.h | 1 +
>  2 files changed, 10 insertions(+)
> 
> diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c
> index 10684b1..45d9187 100644
> --- a/drivers/pci/quirks.c
> +++ b/drivers/pci/quirks.c
> @@ -4512,6 +4512,15 @@ static const struct pci_dev_acs_enabled {
>       { PCI_VENDOR_ID_CAVIUM, PCI_ANY_ID, pci_quirk_cavium_acs },
>       /* APM X-Gene */
>       { PCI_VENDOR_ID_AMCC, 0xE004, pci_quirk_xgene_acs },
> +     /* Ampere Computing */
> +     { PCI_VENDOR_ID_AMPERE, 0xE005, pci_quirk_xgene_acs },
> +     { PCI_VENDOR_ID_AMPERE, 0xE006, pci_quirk_xgene_acs },
> +     { PCI_VENDOR_ID_AMPERE, 0xE007, pci_quirk_xgene_acs },
> +     { PCI_VENDOR_ID_AMPERE, 0xE008, pci_quirk_xgene_acs },
> +     { PCI_VENDOR_ID_AMPERE, 0xE009, pci_quirk_xgene_acs },
> +     { PCI_VENDOR_ID_AMPERE, 0xE00A, pci_quirk_xgene_acs },
> +     { PCI_VENDOR_ID_AMPERE, 0xE00B, pci_quirk_xgene_acs },
> +     { PCI_VENDOR_ID_AMPERE, 0xE00C, pci_quirk_xgene_acs },
>       { 0 }
>  };
>  
> diff --git a/include/linux/pci_ids.h b/include/linux/pci_ids.h
> index ab20dc5..c21d1f8 100644
> --- a/include/linux/pci_ids.h
> +++ b/include/linux/pci_ids.h
> @@ -1331,6 +1331,7 @@
>  #define PCI_DEVICE_ID_IMS_TT3D               0x9135
>  
>  #define PCI_VENDOR_ID_AMCC           0x10e8
> +#define PCI_VENDOR_ID_AMPERE         0x1def
>  
>  #define PCI_VENDOR_ID_INTERG         0x10ea
>  #define PCI_DEVICE_ID_INTERG_1682    0x1682
> -- 
> 2.7.4
> 

Reply via email to