X-Git-Url: https://git.proxmox.com/?a=blobdiff_plain;f=patches%2Fkernel%2F0003-pci-Enable-overrides-for-missing-ACS-capabilities-4..patch;h=969d5cbf30d1775ade9e950d63d7bafccc98529e;hb=15baf5b4c2b0ecf549431f4ccaba93157ec0f2f9;hp=1eed7de2e0aec25272a6c813a78cb24bad36f772;hpb=777ee9fe67b12c9ee6918e40930f7f641474d364;p=pve-kernel.git diff --git a/patches/kernel/0003-pci-Enable-overrides-for-missing-ACS-capabilities-4..patch b/patches/kernel/0003-pci-Enable-overrides-for-missing-ACS-capabilities-4..patch index 1eed7de..969d5cb 100644 --- a/patches/kernel/0003-pci-Enable-overrides-for-missing-ACS-capabilities-4..patch +++ b/patches/kernel/0003-pci-Enable-overrides-for-missing-ACS-capabilities-4..patch @@ -1,8 +1,7 @@ -From 218bc45e33a23e8d9460389d9894a3acaa5e3bff Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Mark Weiman -Date: Sat, 29 Jul 2017 09:15:32 -0400 -Subject: [PATCH 3/7] pci: Enable overrides for missing ACS capabilities - (4.12+) +Date: Wed, 7 Feb 2018 16:04:03 -0500 +Subject: [PATCH] pci: Enable overrides for missing ACS capabilities (4.15) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -51,14 +50,14 @@ your customers the hassle of this boot option. Signed-off-by: Fabian Grünbichler --- Documentation/admin-guide/kernel-parameters.txt | 9 +++ - drivers/pci/quirks.c | 102 ++++++++++++++++++++++++ - 2 files changed, 111 insertions(+) + drivers/pci/quirks.c | 101 ++++++++++++++++++++++++ + 2 files changed, 110 insertions(+) diff --git a/Documentation/admin-guide/kernel-parameters.txt b/Documentation/admin-guide/kernel-parameters.txt -index 7441c67d1d8e..73fd6abac39b 100644 +index 27ca3fbc47aa..5e3caff3fb49 100644 --- a/Documentation/admin-guide/kernel-parameters.txt +++ b/Documentation/admin-guide/kernel-parameters.txt -@@ -2918,6 +2918,15 @@ +@@ -2968,6 +2968,15 @@ nomsi [MSI] If the PCI_MSI kernel config parameter is enabled, this kernel boot option can be used to disable the use of MSI interrupts system-wide. @@ -66,19 +65,19 @@ index 7441c67d1d8e..73fd6abac39b 100644 + [PCIE] Override missing PCIe ACS support for: + downstream + All downstream ports - full ACS capabilities -+ multfunction -+ All multifunction devices - multifunction ACS subset ++ multifunction ++ Add multifunction devices - multifunction ACS subset + id:nnnn:nnnn -+ Specfic device - full ACS capabilities ++ Specific device - full ACS capabilities + Specified as vid:did (vendor/device ID) in hex noioapicquirk [APIC] Disable all boot interrupt quirks. Safety option to keep boot IRQs enabled. This should never be necessary. diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c -index 02b009426670..c29d89ffc9b2 100644 +index db82bef43b99..ed94ba0d0922 100644 --- a/drivers/pci/quirks.c +++ b/drivers/pci/quirks.c -@@ -3687,6 +3687,107 @@ static int __init pci_apply_final_quirks(void) +@@ -3695,6 +3695,106 @@ static int __init pci_apply_final_quirks(void) fs_initcall_sync(pci_apply_final_quirks); @@ -122,7 +121,6 @@ index 02b009426670..c29d89ffc9b2 100644 + goto next; + } + acs_on_ids[max_acs_id].vendor = val; -+ + p += strcspn(p, ":"); + if (*p != ':') { + pr_warn("PCIe ACS invalid ID\n"); @@ -167,17 +165,17 @@ index 02b009426670..c29d89ffc9b2 100644 + return 1; + + switch (pci_pcie_type(dev)) { -+ case PCI_EXP_TYPE_DOWNSTREAM: -+ case PCI_EXP_TYPE_ROOT_PORT: -+ if (acs_on_downstream) -+ return 1; -+ break; -+ case PCI_EXP_TYPE_ENDPOINT: -+ case PCI_EXP_TYPE_UPSTREAM: -+ case PCI_EXP_TYPE_LEG_END: -+ case PCI_EXP_TYPE_RC_END: -+ if (acs_on_multifunction && dev->multifunction) -+ return 1; ++ case PCI_EXP_TYPE_DOWNSTREAM: ++ case PCI_EXP_TYPE_ROOT_PORT: ++ if (acs_on_downstream) ++ return 1; ++ break; ++ case PCI_EXP_TYPE_ENDPOINT: ++ case PCI_EXP_TYPE_UPSTREAM: ++ case PCI_EXP_TYPE_LEG_END: ++ case PCI_EXP_TYPE_RC_END: ++ if (acs_on_multifunction && dev->multifunction) ++ return 1; + } + + return -ENOTTY; @@ -186,10 +184,10 @@ index 02b009426670..c29d89ffc9b2 100644 /* * Following are device-specific reset methods which can be used to * reset a single function if other methods (e.g. FLR, PM D0->D3) are -@@ -4514,6 +4615,7 @@ static const struct pci_dev_acs_enabled { - { 0x10df, 0x720, pci_quirk_mf_endpoint_acs }, /* Emulex Skyhawk-R */ - /* Cavium ThunderX */ +@@ -4527,6 +4627,7 @@ 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 }, + { PCI_ANY_ID, PCI_ANY_ID, pcie_acs_overrides }, { 0 } };