diff for duplicates of <5AE9B5BB.2080003@kontron.com> diff --git a/a/1.txt b/N1/1.txt index d858a72..3665827 100644 --- a/a/1.txt +++ b/N1/1.txt @@ -1,10 +1,10 @@ -Le 30/04/2018 19:53, Gilles BULOZ a écrit : -> Le 30/04/2018 19:04, Bjorn Helgaas a écrit : +Le 30/04/2018 19:53, Gilles BULOZ a ?crit : +> Le 30/04/2018 19:04, Bjorn Helgaas a ?crit : >> On Mon, Apr 30, 2018 at 01:36:53PM +0000, Gilles Buloz wrote: ->>> Le 30/04/2018 10:46, Gilles BULOZ a écrit : ->>>> Le 27/04/2018 18:56, Bjorn Helgaas a écrit : +>>> Le 30/04/2018 10:46, Gilles BULOZ a ?crit : +>>>> Le 27/04/2018 18:56, Bjorn Helgaas a ?crit : >>>>> On Fri, Apr 27, 2018 at 12:29:32PM +0000, Gilles Buloz wrote: ->>>>>> Le 27/04/2018 10:43, Ard Biesheuvel a écrit : +>>>>>> Le 27/04/2018 10:43, Ard Biesheuvel a ?crit : >>>>>>> (add Bjorn and linux-pci) >>>>>>> >>>>>>> On 13 April 2018 at 19:32, Gilles Buloz <Gilles.Buloz@kontron.com> wrote: @@ -312,3 +312,10 @@ Le 30/04/2018 19:53, Gilles BULOZ a écrit : > I'll test that on Wednesday 2th and will give you my feedback. Hi Bjorn, See attached patch (tested ok this morning) +-------------- next part -------------- +A non-text attachment was scrubbed... +Name: cfgspace3_4.1.35.patch +Type: text/x-patch +Size: 2246 bytes +Desc: cfgspace3_4.1.35.patch +URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20180502/bd83d6f9/attachment.bin> diff --git a/a/2.hdr b/a/2.hdr deleted file mode 100644 index 0b183c0..0000000 --- a/a/2.hdr +++ /dev/null @@ -1,7 +0,0 @@ -Content-Type: text/x-patch; name=cfgspace3_4.1.35.patch -Content-Description: cfgspace3_4.1.35.patch -Content-Disposition: attachment; filename="cfgspace3_4.1.35.patch"; size=2246; - creation-date="Wed, 02 May 2018 12:57:31 GMT"; - modification-date="Wed, 02 May 2018 12:57:31 GMT" -Content-ID: <14D15F00BA816742830047709F328530@Kontron.com> -Content-Transfer-Encoding: base64 diff --git a/a/2.txt b/a/2.txt deleted file mode 100644 index ac4465d..0000000 --- a/a/2.txt +++ /dev/null @@ -1,66 +0,0 @@ ---- include/linux/pci.h.orig 2018-03-26 16:51:18.050000000 +0000 -+++ include/linux/pci.h 2018-04-30 18:29:14.140000000 +0000 -@@ -193,6 +193,7 @@ - enum pci_bus_flags { - PCI_BUS_FLAGS_NO_MSI = (__force pci_bus_flags_t) 1, - PCI_BUS_FLAGS_NO_MMRBC = (__force pci_bus_flags_t) 2, -+ PCI_BUS_FLAGS_NO_EXTCFG = (__force pci_bus_flags_t) 4, - }; - - /* These values come from the PCI Express Spec */ ---- drivers/pci/probe.c.orig 2018-01-22 09:29:52.000000000 +0000 -+++ drivers/pci/probe.c 2018-05-02 13:44:35.530000000 +0000 -@@ -664,6 +664,23 @@ - } - } - -+static bool pci_bridge_child_bus_ext_cfg_accessible(struct pci_dev *bridge) -+{ -+ int pos; -+ u32 status; -+ -+ if (!pci_is_pcie(bridge) || /* PCI/PCI bridge */ -+ (pci_pcie_type(bridge) == PCI_EXP_TYPE_PCIE_BRIDGE) || /* PCIe/PCI bridge in forward mode */ -+ (pci_pcie_type(bridge) == PCI_EXP_TYPE_PCI_BRIDGE)) { /* PCIe/PCI bridge in reverse mode */ -+ pos = pci_find_capability(bridge, PCI_CAP_ID_PCIX); -+ if (pos) -+ pci_read_config_dword(bridge, pos + PCI_X_STATUS, &status); -+ return pos && (status & (PCI_X_STATUS_266MHZ | PCI_X_STATUS_533MHZ)); -+ } -+ -+ return true; -+} -+ - static struct pci_bus *pci_alloc_child_bus(struct pci_bus *parent, - struct pci_dev *bridge, int busnr) - { -@@ -725,6 +742,19 @@ - /* Create legacy_io and legacy_mem files for this bus */ - pci_create_legacy_files(child); - -+ /* -+ * if bus_flags inherited from parent bus do not already report lack of extended config -+ * space support, check if supported by child bus by checking its parent bridge -+ */ -+ if (bridge && !(child->bus_flags & PCI_BUS_FLAGS_NO_EXTCFG)) { -+ if (!pci_bridge_child_bus_ext_cfg_accessible(bridge)) { -+ child->bus_flags |= PCI_BUS_FLAGS_NO_EXTCFG; -+ dev_info(&child->dev, "extended config space not accessible due to parent bridge\n"); -+ } -+ } else { -+ dev_info(&child->dev, "extended config space not accessible due to parent bus\n"); -+ } -+ - return child; - } - -@@ -1084,6 +1114,9 @@ - u32 status; - u16 class; - -+ if (dev->bus->bus_flags & PCI_BUS_FLAGS_NO_EXTCFG) -+ return PCI_CFG_SPACE_SIZE; -+ - class = dev->class >> 8; - if (class == PCI_CLASS_BRIDGE_HOST) - return pci_cfg_space_size_ext(dev); diff --git a/a/content_digest b/N1/content_digest index ebcd68e..2027046 100644 --- a/a/content_digest +++ b/N1/content_digest @@ -6,24 +6,19 @@ "ref\05AE71BF4.2010200@kontron.com\0" "ref\020180430170447.GA95643@bhelgaas-glaptop.roam.corp.google.com\0" "ref\05AE75809.30701@kontron.com\0" - "From\0Gilles Buloz <Gilles.Buloz@kontron.com>\0" - "Subject\0Re: LS1043A : \"synchronous abort\" at boot due to PCI config read\0" + "From\0Gilles.Buloz@kontron.com (Gilles Buloz)\0" + "Subject\0LS1043A : \"synchronous abort\" at boot due to PCI config read\0" "Date\0Wed, 2 May 2018 12:57:31 +0000\0" - "To\0Bjorn Helgaas <helgaas@kernel.org>\0" - "Cc\0Bjorn Helgaas <bhelgaas@google.com>" - linux-pci <linux-pci@vger.kernel.org> - Minghuan.Lian@nxp.com <Minghuan.Lian@nxp.com> - linux-arm-kernel@lists.infradead.org <linux-arm-kernel@lists.infradead.org> - " Ard Biesheuvel <ard.biesheuvel@linaro.org>\0" - "\01:1\0" + "To\0linux-arm-kernel@lists.infradead.org\0" + "\00:1\0" "b\0" - "Le 30/04/2018 19:53, Gilles BULOZ a \303\251crit :\n" - "> Le 30/04/2018 19:04, Bjorn Helgaas a \303\251crit :\n" + "Le 30/04/2018 19:53, Gilles BULOZ a ?crit :\n" + "> Le 30/04/2018 19:04, Bjorn Helgaas a ?crit :\n" ">> On Mon, Apr 30, 2018 at 01:36:53PM +0000, Gilles Buloz wrote:\n" - ">>> Le 30/04/2018 10:46, Gilles BULOZ a \303\251crit :\n" - ">>>> Le 27/04/2018 18:56, Bjorn Helgaas a \303\251crit :\n" + ">>> Le 30/04/2018 10:46, Gilles BULOZ a ?crit :\n" + ">>>> Le 27/04/2018 18:56, Bjorn Helgaas a ?crit :\n" ">>>>> On Fri, Apr 27, 2018 at 12:29:32PM +0000, Gilles Buloz wrote:\n" - ">>>>>> Le 27/04/2018 10:43, Ard Biesheuvel a \303\251crit :\n" + ">>>>>> Le 27/04/2018 10:43, Ard Biesheuvel a ?crit :\n" ">>>>>>> (add Bjorn and linux-pci)\n" ">>>>>>>\n" ">>>>>>> On 13 April 2018 at 19:32, Gilles Buloz <Gilles.Buloz@kontron.com> wrote:\n" @@ -330,76 +325,13 @@ "> pci_alloc_child_bus().\n" "> I'll test that on Wednesday 2th and will give you my feedback.\n" "Hi Bjorn,\n" - See attached patch (tested ok this morning) - "\01:2\0" - "fn\0cfgspace3_4.1.35.patch\0" - "d\0cfgspace3_4.1.35.patch\0" - "b\0" - "--- include/linux/pci.h.orig\t2018-03-26 16:51:18.050000000 +0000\n" - "+++ include/linux/pci.h\t2018-04-30 18:29:14.140000000 +0000\n" - "@@ -193,6 +193,7 @@\n" - " enum pci_bus_flags {\n" - " \tPCI_BUS_FLAGS_NO_MSI = (__force pci_bus_flags_t) 1,\n" - " \tPCI_BUS_FLAGS_NO_MMRBC = (__force pci_bus_flags_t) 2,\n" - "+\tPCI_BUS_FLAGS_NO_EXTCFG = (__force pci_bus_flags_t) 4,\n" - " };\n" - " \n" - " /* These values come from the PCI Express Spec */\n" - "--- drivers/pci/probe.c.orig\t2018-01-22 09:29:52.000000000 +0000\n" - "+++ drivers/pci/probe.c\t2018-05-02 13:44:35.530000000 +0000\n" - "@@ -664,6 +664,23 @@\n" - " \t}\n" - " }\n" - " \n" - "+static bool pci_bridge_child_bus_ext_cfg_accessible(struct pci_dev *bridge)\n" - "+{\n" - "+\tint pos;\n" - "+\tu32 status;\n" - "+\n" - "+\tif (!pci_is_pcie(bridge) || /* PCI/PCI bridge */\n" - "+\t (pci_pcie_type(bridge) == PCI_EXP_TYPE_PCIE_BRIDGE) || /* PCIe/PCI bridge in forward mode */\n" - "+\t (pci_pcie_type(bridge) == PCI_EXP_TYPE_PCI_BRIDGE)) { /* PCIe/PCI bridge in reverse mode */\n" - "+\t\tpos = pci_find_capability(bridge, PCI_CAP_ID_PCIX);\n" - "+\t\tif (pos)\n" - "+\t\t\tpci_read_config_dword(bridge, pos + PCI_X_STATUS, &status);\n" - "+\t\treturn pos && (status & (PCI_X_STATUS_266MHZ | PCI_X_STATUS_533MHZ));\n" - "+\t}\n" - "+\n" - "+\treturn true;\n" - "+}\n" - "+\n" - " static struct pci_bus *pci_alloc_child_bus(struct pci_bus *parent,\n" - " \t\t\t\t\t struct pci_dev *bridge, int busnr)\n" - " {\n" - "@@ -725,6 +742,19 @@\n" - " \t/* Create legacy_io and legacy_mem files for this bus */\n" - " \tpci_create_legacy_files(child);\n" - " \n" - "+\t/*\n" - "+\t * if bus_flags inherited from parent bus do not already report lack of extended config\n" - "+\t * space support, check if supported by child bus by checking its parent bridge\n" - "+\t */\n" - "+\tif (bridge && !(child->bus_flags & PCI_BUS_FLAGS_NO_EXTCFG)) {\n" - "+\t\tif (!pci_bridge_child_bus_ext_cfg_accessible(bridge)) {\n" - "+\t\t\tchild->bus_flags |= PCI_BUS_FLAGS_NO_EXTCFG;\n" - "+\t\t\tdev_info(&child->dev, \"extended config space not accessible due to parent bridge\\n\");\n" - "+\t\t}\n" - "+\t} else {\n" - "+\t\tdev_info(&child->dev, \"extended config space not accessible due to parent bus\\n\");\n" - "+\t}\n" - "+\n" - " \treturn child;\n" - " }\n" - " \n" - "@@ -1084,6 +1114,9 @@\n" - " \tu32 status;\n" - " \tu16 class;\n" - " \n" - "+\tif (dev->bus->bus_flags & PCI_BUS_FLAGS_NO_EXTCFG)\n" - "+\t\treturn PCI_CFG_SPACE_SIZE;\n" - "+\n" - " \tclass = dev->class >> 8;\n" - " \tif (class == PCI_CLASS_BRIDGE_HOST)\n" - " \t\treturn pci_cfg_space_size_ext(dev);" + "See attached patch (tested ok this morning)\n" + "-------------- next part --------------\n" + "A non-text attachment was scrubbed...\n" + "Name: cfgspace3_4.1.35.patch\n" + "Type: text/x-patch\n" + "Size: 2246 bytes\n" + "Desc: cfgspace3_4.1.35.patch\n" + URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20180502/bd83d6f9/attachment.bin> -03f90691e1bc722eb5ae9bfa446d285e362932db7f8901ff1f83ebe337dfcce4 +b9fb2ea757ebe7cc50f92dec4b8b2f140439cf57f134552a1f13eb8f7b941ec0
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.