<?xml version="1.0" encoding="UTF-8"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://purl.org/rss/1.0/" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:syn="http://purl.org/rss/1.0/modules/syndication/" xmlns:admin="http://webns.net/mvcb/">
  <channel rdf:about="http://permalink.gmane.org/gmane.linux.kernel.pci">
    <title>gmane.linux.kernel.pci</title>
    <link>http://permalink.gmane.org/gmane.linux.kernel.pci</link>
    <description/>
    <syn:updatePeriod>hourly</syn:updatePeriod>
    <syn:updateFrequency>1</syn:updateFrequency>
    <syn:updateBase>1901-01-01T00:00+00:00</syn:updateBase>
    <items>
      <rdf:Seq>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.linux.kernel.pci/15555"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.linux.kernel.pci/15554"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.linux.kernel.pci/15553"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.linux.kernel.pci/15552"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.linux.kernel.pci/15551"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.linux.kernel.pci/15550"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.linux.kernel.pci/15549"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.linux.kernel.pci/15548"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.linux.kernel.pci/15547"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.linux.kernel.pci/15546"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.linux.kernel.pci/15545"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.linux.kernel.pci/15544"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.linux.kernel.pci/15543"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.linux.kernel.pci/15542"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.linux.kernel.pci/15540"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.linux.kernel.pci/15539"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.linux.kernel.pci/15538"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.linux.kernel.pci/15536"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.linux.kernel.pci/15535"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.linux.kernel.pci/15534"/>
      </rdf:Seq>
    </items>
    <image rdf:resource="http://gmane.org/img/gmane-25t.png"/>
    <textinput rdf:resource=""/>
  </channel>
  <image rdf:about="http://gmane.org/img/gmane-25t.png">
    <title>Gmane</title>
    <url>http://gmane.org/img/gmane-25t.png</url>
    <link>http://gmane.org</link>
  </image>
  <item rdf:about="http://permalink.gmane.org/gmane.linux.kernel.pci/15555">
    <title>[PATCH v7 00/10] PCI, x86: update MMCFG information when hot-plugging PCI host bridges</title>
    <link>http://permalink.gmane.org/gmane.linux.kernel.pci/15555</link>
    <description>&lt;pre&gt;This patchset enhance pci_root driver to update MMCFG information when
hot-plugging PCI root bridges. It applies to 
git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci.git pci/next-3.5

-v2: split into smaller patches and skip updating MMCFG information when
     MMCFG is disabled
-v3: add mmconf_added to simply free path, also make pci_mmconfig_insert()
     to process extra exist case --- By Yinghai
-v4: tune arch_acpi_pci_root_add() to handle a corner case raised by Kenji
-v5: address review comments from Bjorn and Taku, also better handle corner
     cases in arch_acpi_pci_root_add()
-v6: get rid of arch_acpi_pci_root_xxx() by using existing hooks
     add MCFG information for host bridges on demand
     more corner cases clear up
     correctly handle condition compilation
     fix section mismatch issues
     fix a issue reported by Taku about a BIOS bug
-v7: unify log messages
     remove redundant host bridge resource related log messages
     fix a issue reported by Taku which breaks pnp reso&lt;/pre&gt;</description>
    <dc:creator>Jiang Liu</dc:creator>
    <dc:date>2012-05-26T09:53:53</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.linux.kernel.pci/15554">
    <title>[PATCH v7 04/10] PCI, x86: introduce pci_mmcfg_arch_map()/pci_mmcfg_arch_unmap()</title>
    <link>http://permalink.gmane.org/gmane.linux.kernel.pci/15554</link>
    <description>&lt;pre&gt;Introduce pci_mmcfg_arch_map()/pci_mmcfg_arch_unmap(), which will be used
when supporting PCI root bridge hotplug.

Signed-off-by: Jiang Liu &amp;lt;liuj97&amp;lt; at &amp;gt;gmail.com&amp;gt;
---
 arch/x86/include/asm/pci_x86.h |    2 ++
 arch/x86/pci/mmconfig_32.c     |   15 +++++++++++++++
 arch/x86/pci/mmconfig_64.c     |   22 +++++++++++++++++++++-
 3 files changed, 38 insertions(+), 1 deletions(-)

diff --git a/arch/x86/include/asm/pci_x86.h b/arch/x86/include/asm/pci_x86.h
index b3a5317..df898ce 100644
--- a/arch/x86/include/asm/pci_x86.h
+++ b/arch/x86/include/asm/pci_x86.h
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -135,6 +135,8 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; struct pci_mmcfg_region {
 
 extern int __init pci_mmcfg_arch_init(void);
 extern void __init pci_mmcfg_arch_free(void);
+extern int __devinit pci_mmcfg_arch_map(struct pci_mmcfg_region *cfg);
+extern void pci_mmcfg_arch_unmap(struct pci_mmcfg_region *cfg);
 extern struct pci_mmcfg_region *pci_mmconfig_lookup(int segment, int bus);
 
 extern struct list_head pci_mmcfg_list;
diff --git a/arch/x86/pci/mmconfig_32.c b/arch/x86/pci/mmconfig_32.c
i&lt;/pre&gt;</description>
    <dc:creator>Jiang Liu</dc:creator>
    <dc:date>2012-05-26T09:53:57</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.linux.kernel.pci/15553">
    <title>[PATCH v7 05/10] PCI, x86: introduce pci_mmconfig_insert()/delete() for PCI root bridge hotplug</title>
    <link>http://permalink.gmane.org/gmane.linux.kernel.pci/15553</link>
    <description>&lt;pre&gt;Introduce pci_mmconfig_insert()/pci_mmconfig_delete(), which will be used to
update MMCFG information when supporting PCI root bridge hotplug.

Signed-off-by: Jiang Liu &amp;lt;liuj97&amp;lt; at &amp;gt;gmail.com&amp;gt;
---
 arch/x86/include/asm/pci_x86.h |    4 +
 arch/x86/pci/mmconfig-shared.c |  213 ++++++++++++++++++++++++++++++++--------
 2 files changed, 177 insertions(+), 40 deletions(-)

diff --git a/arch/x86/include/asm/pci_x86.h b/arch/x86/include/asm/pci_x86.h
index df898ce..b2fb1d8 100644
--- a/arch/x86/include/asm/pci_x86.h
+++ b/arch/x86/include/asm/pci_x86.h
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -137,6 +137,10 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; extern int __init pci_mmcfg_arch_init(void);
 extern void __init pci_mmcfg_arch_free(void);
 extern int __devinit pci_mmcfg_arch_map(struct pci_mmcfg_region *cfg);
 extern void pci_mmcfg_arch_unmap(struct pci_mmcfg_region *cfg);
+extern int __devinit pci_mmconfig_insert(struct device *dev,
+ uint16_t seg, uint8_t start,
+ uint8_t end, phys_addr_t addr);
+extern int pci_mmconfig_delete(uint16_t seg, uint8_t start, uint8_t end);
 extern struc&lt;/pre&gt;</description>
    <dc:creator>Jiang Liu</dc:creator>
    <dc:date>2012-05-26T09:53:58</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.linux.kernel.pci/15552">
    <title>[PATCH v7 01/10] PCI, x86: split out pci_mmcfg_check_reserved() for code reuse</title>
    <link>http://permalink.gmane.org/gmane.linux.kernel.pci/15552</link>
    <description>&lt;pre&gt;Split out pci_mmcfg_check_reserved() for code reuse, which will be used
when supporting PCI host bridge hotplug.

Signed-off-by: Jiang Liu &amp;lt;liuj97&amp;lt; at &amp;gt;gmail.com&amp;gt;
---
 arch/x86/pci/mmconfig-shared.c |   51 +++++++++++++++++++--------------------
 1 files changed, 25 insertions(+), 26 deletions(-)

diff --git a/arch/x86/pci/mmconfig-shared.c b/arch/x86/pci/mmconfig-shared.c
index 301e325..f799949 100644
--- a/arch/x86/pci/mmconfig-shared.c
+++ b/arch/x86/pci/mmconfig-shared.c
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -474,39 +474,38 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; static int __init is_mmconf_reserved(check_reserved_t is_reserved,
 return valid;
 }
 
+static int __devinit pci_mmcfg_check_reserved(struct pci_mmcfg_region *cfg,
+      int early)
+{
+if (!early &amp;amp;&amp;amp; !acpi_disabled) {
+if (is_mmconf_reserved(is_acpi_reserved, cfg, 0))
+return 1;
+else
+printk(KERN_ERR FW_BUG PREFIX
+       "MMCONFIG at %pR not reserved in "
+       "ACPI motherboard resources\n",
+       &amp;amp;cfg-&amp;gt;res);
+}
+
+/* Don't try to do this check unless configuration
+   type 1 is availa&lt;/pre&gt;</description>
    <dc:creator>Jiang Liu</dc:creator>
    <dc:date>2012-05-26T09:53:54</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.linux.kernel.pci/15551">
    <title>[PATCH v7 07/10] PCI, x86: update MMCFG information when hot-plugging PCI host bridges</title>
    <link>http://permalink.gmane.org/gmane.linux.kernel.pci/15551</link>
    <description>&lt;pre&gt;This patch enhances x86 arch specific code to update MMCFG information
when PCI host bridge hotplug event happens.

Signed-off-by: Jiang Liu &amp;lt;liuj97&amp;lt; at &amp;gt;gmail.com&amp;gt;
---
 arch/x86/include/asm/pci_x86.h |    1 +
 arch/x86/pci/acpi.c            |   69 ++++++++++++++++++++++++++++++++++++++++
 arch/x86/pci/mmconfig-shared.c |    7 +---
 arch/x86/pci/mmconfig_32.c     |    2 +-
 arch/x86/pci/mmconfig_64.c     |    2 +-
 5 files changed, 73 insertions(+), 8 deletions(-)

diff --git a/arch/x86/include/asm/pci_x86.h b/arch/x86/include/asm/pci_x86.h
index b2fb1d8..3e5f43c 100644
--- a/arch/x86/include/asm/pci_x86.h
+++ b/arch/x86/include/asm/pci_x86.h
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -100,6 +100,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; struct pci_raw_ops {
 extern const struct pci_raw_ops *raw_pci_ops;
 extern const struct pci_raw_ops *raw_pci_ext_ops;
 
+extern const struct pci_raw_ops pci_mmcfg;
 extern const struct pci_raw_ops pci_direct_conf1;
 extern bool port_cf9_safe;
 
diff --git a/arch/x86/pci/acpi.c b/arch/x86/pci/acpi.c
index 2bb885a..76ad029 100644
--- a/arch/x86/pci/acpi.c
&lt;/pre&gt;</description>
    <dc:creator>Jiang Liu</dc:creator>
    <dc:date>2012-05-26T09:54:00</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.linux.kernel.pci/15550">
    <title>[PATCH v7 10/10] PCI, x86: get rid of redundant log messages</title>
    <link>http://permalink.gmane.org/gmane.linux.kernel.pci/15550</link>
    <description>&lt;pre&gt;For each resource of a PCI host bridge, the arch code and PCI
code log following messages:
"pci_root PNP0A08:00: host bridge window [io 0x0000-0x03af]",
"pci_bus 0000:00: root bus resource [io  0x0000-0x03af]"

Signed-off-by: Jiang Liu &amp;lt;liuj97&amp;lt; at &amp;gt;gmail.com&amp;gt;
---
 arch/x86/pci/acpi.c |    7 -------
 1 files changed, 0 insertions(+), 7 deletions(-)

diff --git a/arch/x86/pci/acpi.c b/arch/x86/pci/acpi.c
index 76ad029..4368387 100644
--- a/arch/x86/pci/acpi.c
+++ b/arch/x86/pci/acpi.c
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -295,13 +295,6 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; setup_resource(struct acpi_resource *acpi_res, void *data)
 }
 
 info-&amp;gt;res_num++;
-if (addr.translation_offset)
-dev_info(&amp;amp;info-&amp;gt;bridge-&amp;gt;dev, "host bridge window %pR "
- "(PCI address [%#llx-%#llx])\n",
- res, res-&amp;gt;start - addr.translation_offset,
- res-&amp;gt;end - addr.translation_offset);
-else
-dev_info(&amp;amp;info-&amp;gt;bridge-&amp;gt;dev, "host bridge window %pR\n", res);
 
 return AE_OK;
 }
&lt;/pre&gt;</description>
    <dc:creator>Jiang Liu</dc:creator>
    <dc:date>2012-05-26T09:54:03</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.linux.kernel.pci/15549">
    <title>[PATCH v7 09/10] PCI, x86: simplify pci_mmcfg_late_insert_resources()</title>
    <link>http://permalink.gmane.org/gmane.linux.kernel.pci/15549</link>
    <description>&lt;pre&gt;Reduce redundant code to simplify pci_mmcfg_late_insert_resources().

Signed-off-by: Jiang Liu &amp;lt;liuj97&amp;lt; at &amp;gt;gmail.com&amp;gt;
---
 arch/x86/pci/mmconfig-shared.c |   34 ++++++++--------------------------
 1 files changed, 8 insertions(+), 26 deletions(-)

diff --git a/arch/x86/pci/mmconfig-shared.c b/arch/x86/pci/mmconfig-shared.c
index e80b5c2..77f0db2 100644
--- a/arch/x86/pci/mmconfig-shared.c
+++ b/arch/x86/pci/mmconfig-shared.c
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -27,7 +27,6 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
 #define PREFIX "PCI: "
 
 /* Indicate if the mmcfg resources have been placed into the resource table. */
-static int __initdata pci_mmcfg_resources_inserted;
 static bool pci_mmcfg_running_state;
 static bool pci_mmcfg_arch_init_failed;
 static DEFINE_MUTEX(pci_mmcfg_lock);
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -374,18 +373,6 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; static int __init pci_mmcfg_check_hostbridge(void)
 return !list_empty(&amp;amp;pci_mmcfg_list);
 }
 
-static void __init pci_mmcfg_insert_resources(void)
-{
-struct pci_mmcfg_region *cfg;
-
-list_for_each_entry(cfg, &amp;amp;pci_mmcfg_list, list)
-if (!cfg-&amp;gt;res.parent)
-insert_resource(&amp;amp;i&lt;/pre&gt;</description>
    <dc:creator>Jiang Liu</dc:creator>
    <dc:date>2012-05-26T09:54:02</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.linux.kernel.pci/15548">
    <title>[PATCH v7 06/10] PCI, ACPI: provide MCFG address for PCI host bridges</title>
    <link>http://permalink.gmane.org/gmane.linux.kernel.pci/15548</link>
    <description>&lt;pre&gt;This patch provide MCFG address for PCI host bridges, which will
be used to support host bridge hotplug. It gets MCFG address
by evaluating _CBA method if available, or by scanning the ACPI
MCFG table.

Signed-off-by: Jiang Liu &amp;lt;liuj97&amp;lt; at &amp;gt;gmail.com&amp;gt;
---
 drivers/acpi/pci_root.c  |   12 ++++++++++++
 drivers/pci/pci-acpi.c   |   34 ++++++++++++++++++++++++++++++++++
 include/acpi/acnames.h   |    1 +
 include/acpi/acpi_bus.h  |    3 +++
 include/linux/pci-acpi.h |    5 +++++
 5 files changed, 55 insertions(+), 0 deletions(-)

diff --git a/drivers/acpi/pci_root.c b/drivers/acpi/pci_root.c
index 7aff631..fc716cf 100644
--- a/drivers/acpi/pci_root.c
+++ b/drivers/acpi/pci_root.c
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -458,6 +458,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; static int __devinit acpi_pci_root_add(struct acpi_device *device)
 acpi_handle handle;
 struct acpi_device *child;
 u32 flags, base_flags;
+int end_bus = -1;
 
 root = kzalloc(sizeof(struct acpi_pci_root), GFP_KERNEL);
 if (!root)
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -505,6 +506,17 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; static int __devinit acpi_pci_root_add(struct acpi_device *devi&lt;/pre&gt;</description>
    <dc:creator>Jiang Liu</dc:creator>
    <dc:date>2012-05-26T09:53:59</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.linux.kernel.pci/15547">
    <title>[PATCH v7 08/10] PCI, x86: add MMCFG information on demand</title>
    <link>http://permalink.gmane.org/gmane.linux.kernel.pci/15547</link>
    <description>&lt;pre&gt;This patch changes mmconfig logic on x86 platforms to add MMCFG
information on demand instead of adding all MMCFG entries from
the ACPI MCFG table at boot time. So only MMCFG address ranges
used by active PCI host bridges will be actually mapped.

Signed-off-by: Jiang Liu &amp;lt;liuj97&amp;lt; at &amp;gt;gmail.com&amp;gt;
---
 arch/x86/include/asm/pci_x86.h |    5 +++
 arch/x86/pci/legacy.c          |    1 +
 arch/x86/pci/mmconfig-shared.c |   54 +++++++++++++++++++++++++++++++++++++---
 3 files changed, 56 insertions(+), 4 deletions(-)

diff --git a/arch/x86/include/asm/pci_x86.h b/arch/x86/include/asm/pci_x86.h
index 3e5f43c..4a1a9aa 100644
--- a/arch/x86/include/asm/pci_x86.h
+++ b/arch/x86/include/asm/pci_x86.h
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -142,6 +142,11 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; extern int __devinit pci_mmconfig_insert(struct device *dev,
  uint16_t seg, uint8_t start,
  uint8_t end, phys_addr_t addr);
 extern int pci_mmconfig_delete(uint16_t seg, uint8_t start, uint8_t end);
+#ifdefCONFIG_ACPI
+extern void pci_mmconfig_probe(uint8_t start);
+#else
+static inline void pci&lt;/pre&gt;</description>
    <dc:creator>Jiang Liu</dc:creator>
    <dc:date>2012-05-26T09:54:01</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.linux.kernel.pci/15546">
    <title>[PATCH v7 03/10] PCI, x86: use RCU list to protect mmconfig list</title>
    <link>http://permalink.gmane.org/gmane.linux.kernel.pci/15546</link>
    <description>&lt;pre&gt;Use RCU list to protect mmconfig list from dynamic change
when supporting PCI host bridge hotplug.

Signed-off-by: Jiang Liu &amp;lt;liuj97&amp;lt; at &amp;gt;gmail.com&amp;gt;
---
 arch/x86/pci/mmconfig-shared.c |   18 ++++++++++++------
 arch/x86/pci/mmconfig_32.c     |   13 +++++++++++--
 arch/x86/pci/mmconfig_64.c     |   13 +++++++++++--
 3 files changed, 34 insertions(+), 10 deletions(-)

diff --git a/arch/x86/pci/mmconfig-shared.c b/arch/x86/pci/mmconfig-shared.c
index 5e2cd2a..0ac97d5 100644
--- a/arch/x86/pci/mmconfig-shared.c
+++ b/arch/x86/pci/mmconfig-shared.c
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -17,6 +17,8 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
 #include &amp;lt;linux/bitmap.h&amp;gt;
 #include &amp;lt;linux/dmi.h&amp;gt;
 #include &amp;lt;linux/slab.h&amp;gt;
+#include &amp;lt;linux/mutex.h&amp;gt;
+#include &amp;lt;linux/rculist.h&amp;gt;
 #include &amp;lt;asm/e820.h&amp;gt;
 #include &amp;lt;asm/pci_x86.h&amp;gt;
 #include &amp;lt;asm/acpi.h&amp;gt;
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -25,6 +27,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
 
 /* Indicate if the mmcfg resources have been placed into the resource table. */
 static int __initdata pci_mmcfg_resources_inserted;
+static DEFINE_MUTEX(pci_mmcfg_lock);
 
 LIST_HEAD(pci_mmcfg_list);
 
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -45,20 +48,20 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; static __init&lt;/pre&gt;</description>
    <dc:creator>Jiang Liu</dc:creator>
    <dc:date>2012-05-26T09:53:56</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.linux.kernel.pci/15545">
    <title>[PATCH v7 02/10] PCI, x86: split out pci_mmconfig_alloc() for code reuse</title>
    <link>http://permalink.gmane.org/gmane.linux.kernel.pci/15545</link>
    <description>&lt;pre&gt;Split out pci_mmconfig_alloc() for code reuse, which will be used
when supporting PCI root bridge hotplug.

Signed-off-by: Jiang Liu &amp;lt;liuj97&amp;lt; at &amp;gt;gmail.com&amp;gt;
---
 arch/x86/pci/mmconfig-shared.c |   19 +++++++++++++++----
 1 files changed, 15 insertions(+), 4 deletions(-)

diff --git a/arch/x86/pci/mmconfig-shared.c b/arch/x86/pci/mmconfig-shared.c
index f799949..5e2cd2a 100644
--- a/arch/x86/pci/mmconfig-shared.c
+++ b/arch/x86/pci/mmconfig-shared.c
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -61,8 +61,9 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; static __init void list_add_sorted(struct pci_mmcfg_region *new)
 list_add_tail(&amp;amp;new-&amp;gt;list, &amp;amp;pci_mmcfg_list);
 }
 
-static __init struct pci_mmcfg_region *pci_mmconfig_add(int segment, int start,
-int end, u64 addr)
+static __devinit struct pci_mmcfg_region *pci_mmconfig_alloc(int segment,
+     int start,
+     int end, u64 addr)
 {
 struct pci_mmcfg_region *new;
 struct resource *res;
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -79,8 +80,6 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; static __init struct pci_mmcfg_region *pci_mmconfig_add(int segment, int start,
 new-&amp;gt;start_bus = start;
 new-&amp;gt;end_bus = en&lt;/pre&gt;</description>
    <dc:creator>Jiang Liu</dc:creator>
    <dc:date>2012-05-26T09:53:55</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.linux.kernel.pci/15544">
    <title>warn_slowpath_common in drivers/pci/search.c:44 on linux-3.4.0</title>
    <link>http://permalink.gmane.org/gmane.linux.kernel.pci/15544</link>
    <description>&lt;pre&gt;Hello,

I'm getting this warning with linux-3.4.0. My laptop is a DELL E5420.
Please tell me if you need further testing/debug.

Cheers,

[    1.054279] WARNING: at drivers/pci/search.c:44 pci_find_upstream_pcie_bridge+0x5e/0x70()
[    1.054385] Hardware name: Latitude E5420
[    1.054457] Modules linked in:
[    1.054568] Pid: 1, comm: swapper/0 Not tainted 3.4.0ordex+ #3
[    1.054643] Call Trace:
[    1.054716]  [&amp;lt;ffffffff81033d4a&amp;gt;] warn_slowpath_common+0x7a/0xb0
[    1.054793]  [&amp;lt;ffffffff81033d95&amp;gt;] warn_slowpath_null+0x15/0x20
[    1.054869]  [&amp;lt;ffffffff8123899e&amp;gt;] pci_find_upstream_pcie_bridge+0x5e/0x70
[    1.054949]  [&amp;lt;ffffffff813babe7&amp;gt;] intel_iommu_device_group+0x77/0x100
[    1.055027]  [&amp;lt;ffffffff813b52d5&amp;gt;] add_iommu_group+0x35/0x60
[    1.055113]  [&amp;lt;ffffffff813b52a0&amp;gt;] ? bus_set_iommu+0x50/0x50
[    1.055191]  [&amp;lt;ffffffff8132c586&amp;gt;] bus_for_each_dev+0x56/0x90
[    1.055267]  [&amp;lt;ffffffff813b528b&amp;gt;] bus_set_iommu+0x3b/0x50
[    1.055344]  [&amp;lt;ffffffff818c4920&amp;gt;] intel_iommu_init+0xab0/0xb3f
[    1.055421]  [&amp;lt;f&lt;/pre&gt;</description>
    <dc:creator>Antonio Quartulli</dc:creator>
    <dc:date>2012-05-26T08:25:52</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.linux.kernel.pci/15543">
    <title>(unknown)</title>
    <link>http://permalink.gmane.org/gmane.linux.kernel.pci/15543</link>
    <description>&lt;pre&gt;
 i am robothroli, Purchase manager from roli Merchant Ltd. We are
Import/export Company based in taiwan. We are interested in purchasing
your product and I would like to make an inquiry. Please inform me on:

Sample availability and price
Minimum order quantity
FOB Prices

Sincerely
Purchase Manager
robothroli



&lt;/pre&gt;</description>
    <dc:creator>robothroli company</dc:creator>
    <dc:date>2012-05-25T13:45:54</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.linux.kernel.pci/15542">
    <title>Re: [PATCH 02/11] PCI: Try to allocate mem64 above 4G at first</title>
    <link>http://permalink.gmane.org/gmane.linux.kernel.pci/15542</link>
    <description>&lt;pre&gt;
I think the first one looks good.

I'm curious about the second.  Why did you add the IORESOURCE_MEM
test?  That's doesn't affect the "start =" piece because
IORESOURCE_MEM is always set if IORESOURCE_MEM_64 is set.

But it does affect the "end =" part.  Previously we limited all I/O
and 32-bit mem BARs to the low 4GB.  This patch makes it so we limit
32-bit mem BARs to the low 4GB, but we don't limit I/O BARs.  But I/O
BARs can only have 32 bits of address, so it seems like we should
limit them the same way as 32-bit mem BARs.  So I expected something
like this:

    if (res-&amp;gt;flags &amp;amp; IORESOURCE_MEM_64) {
        start = (resource_size_t) (1ULL &amp;lt;&amp;lt; 32);
        end = PCI_MAX_RESOURCE;
    } else {
        start = 0;
        end = PCI_MAX_RESOURCE_32;
    }
&lt;/pre&gt;</description>
    <dc:creator>Bjorn Helgaas</dc:creator>
    <dc:date>2012-05-26T00:12:39</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.linux.kernel.pci/15540">
    <title>Re: [PATCH 02/11] PCI: Try to allocate mem64 above 4G at first</title>
    <link>http://permalink.gmane.org/gmane.linux.kernel.pci/15540</link>
    <description>&lt;pre&gt;
We are allocating from the resources available on this bus, which
means the host bridge apertures or a subset.  If the arch supplies
those, that should be enough.  If it doesn't, we default to
iomem_resource.  On x86, we trim that down to only the supported
address space:

        iomem_resource.end = (1ULL &amp;lt;&amp;lt; boot_cpu_data.x86_phys_bits) - 1;

But I'm sure some other architectures don't do that yet.  I guess
that's one of the risks -- if an arch is doesn't tell us the apertures
and doesn't trim iomem_resource, we could allocate a non-addressable
region.

Bjorn
&lt;/pre&gt;</description>
    <dc:creator>Bjorn Helgaas</dc:creator>
    <dc:date>2012-05-25T22:14:53</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.linux.kernel.pci/15539">
    <title>Re: [PATCH 02/11] PCI: Try to allocate mem64 above 4G at first</title>
    <link>http://permalink.gmane.org/gmane.linux.kernel.pci/15539</link>
    <description>&lt;pre&gt;
Do we also need to track the maximum address available to the CPU?

-hpa

&lt;/pre&gt;</description>
    <dc:creator>H. Peter Anvin</dc:creator>
    <dc:date>2012-05-25T21:58:52</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.linux.kernel.pci/15538">
    <title>Re: [PATCH 02/11] PCI: Try to allocate mem64 above 4G at first</title>
    <link>http://permalink.gmane.org/gmane.linux.kernel.pci/15538</link>
    <description>&lt;pre&gt;
Yeah, I convince myself of the dumbest things sometimes.  It occurred
to me while driving home that we need this, but you beat me to it :)

I think we actually have a separate bug here.  On 64-bit non-x86
architectures, PCIBIOS_MAX_MEM_32 is a 64-bit -1, so the following
attempt to avoid putting a 32-bit BAR above 4G only works on x86,
where PCIBIOS_MAX_MEM_32 is 0xffffffff.

        /* don't allocate too high if the pref mem doesn't support 64bit*/
        if (!(res-&amp;gt;flags &amp;amp; IORESOURCE_MEM_64))
                max = PCIBIOS_MAX_MEM_32;

I think we should fix this with a separate patch that removes
PCIBIOS_MAX_MEM_32 altogether, replacing this use with an explicit
0xffffffff (or some other "max 32-bit value" symbol).  I don't think
there's anything arch-specific about this.

So I'd like to see two patches here:
  1) Avoid allocating 64-bit regions for 32-bit BARs
  2) Try to allocate regions above 4GB for 64-bit BARs


I would support that.

Bjorn
&lt;/pre&gt;</description>
    <dc:creator>Bjorn Helgaas</dc:creator>
    <dc:date>2012-05-25T21:55:01</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.linux.kernel.pci/15536">
    <title>Re: [PATCH 02/11] PCI: Try to allocate mem64 above 4G at first</title>
    <link>http://permalink.gmane.org/gmane.linux.kernel.pci/15536</link>
    <description>&lt;pre&gt;
And so it is (assuming, of course, that we can address that memory.)

-hpa

&lt;/pre&gt;</description>
    <dc:creator>H. Peter Anvin</dc:creator>
    <dc:date>2012-05-25T20:18:18</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.linux.kernel.pci/15535">
    <title>Re: [PATCH 02/11] PCI: Try to allocate mem64 above 4G at first</title>
    <link>http://permalink.gmane.org/gmane.linux.kernel.pci/15535</link>
    <description>&lt;pre&gt;
That's goofy.  You're proposing to make only x86_64 and x86-PAE try to put
64-bit BARs above 4GB.  Why should this be specific to x86?  I acknowledge
that there's risk in doing this, but if it's a good idea for x86_64, it
should also be a good idea for other 64-bit architectures.

And testing for "is this x86_32 without PAE?" with
"PCIBIOS_MAX_MEM_32 == -1" is just plain obtuse and hides an
important bit of arch-specific behavior.

Tangential question about allocate_resource():  Is its "max" argument
really necessary?  We'll obviously only allocate from inside the root
resource, so "max" is just a way to artificially avoid the end of
that resource.  Is there really a case where that's required?

"min" makes sense because in a case like this, it's valid to allocate from
anywhere in the root resource, but we want to try to allocate from the &amp;gt;4GB
part first, then fall back to allocating from the whole resource.  I'm not
sure there's a corresponding case for "max."

Getting back to this patch, I don't think we &lt;/pre&gt;</description>
    <dc:creator>Bjorn Helgaas</dc:creator>
    <dc:date>2012-05-25T19:37:16</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.linux.kernel.pci/15534">
    <title>[PATCH] lspci: zero address in IO isn't always unassigned</title>
    <link>http://permalink.gmane.org/gmane.linux.kernel.pci/15534</link>
    <description>&lt;pre&gt;Zero is a valid address in I/O space, so display it and it's associated
size when IO is enabled in the PCI command register.

From arch/powerpc/kernel/pci-common.c:

/* Here, we are a bit different than memory as typically IO space
 * starting at low addresses -is- valid. What we do instead [is] that
 * we consider as unassigned anything that doesn't have IO enabled
 * in the PCI command register, and that's it.
 */

Signed-off-by: Aaron Sierra &amp;lt;asierra&amp;lt; at &amp;gt;xes-inc.com&amp;gt;
---
 lib/sysfs.c |    2 +-
 lspci.c     |    2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/lib/sysfs.c b/lib/sysfs.c
index 1ec4afb..2197fab 100644
--- a/lib/sysfs.c
+++ b/lib/sysfs.c
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -125,7 +125,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; sysfs_get_resources(struct pci_dev *d)
 break;
       if (sscanf(buf, "%llx %llx %llx", &amp;amp;start, &amp;amp;end, &amp;amp;flags) != 3)
 a-&amp;gt;error("Syntax error in %s", namebuf);
-      if (start)
+      if (end &amp;gt; start)
 size = end - start + 1;
       else
 size = 0;
diff --git a/lspci.c b/lspci.c
index 681ef6a..a67a516 100644
--- a/lspci.c&lt;/pre&gt;</description>
    <dc:creator>Aaron Sierra</dc:creator>
    <dc:date>2012-05-25T19:11:39</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.linux.kernel.pci/15533">
    <title>Re: [PATCH 02/11] PCI: Try to allocate mem64 above 4G at first</title>
    <link>http://permalink.gmane.org/gmane.linux.kernel.pci/15533</link>
    <description>&lt;pre&gt;
please check if attached one is more clear.

make max and bottom is only related to _MEM and not default one.

-       if (!(res-&amp;gt;flags &amp;amp; IORESOURCE_MEM_64))
-               max = PCIBIOS_MAX_MEM_32;
+       if (res-&amp;gt;flags &amp;amp; IORESOURCE_MEM) {
+               if (!(res-&amp;gt;flags &amp;amp; IORESOURCE_MEM_64))
+                       max = PCIBIOS_MAX_MEM_32;
+               else if (PCIBIOS_MAX_MEM_32 != -1)
+                       bottom = (resource_size_t)(1ULL&amp;lt;&amp;lt;32);
+       }

will still not affect to other arches.


Thanks

Yinghai
&lt;/pre&gt;</description>
    <dc:creator>Yinghai Lu</dc:creator>
    <dc:date>2012-05-25T18:39:26</dc:date>
  </item>
  <textinput rdf:about="http://search.gmane.org/?group=$group=gmane.linux.kernel.pci">
    <title>Search Engine</title>
    <description>Search the mailing list at Gmane</description>
    <name>query</name>
    <link>http://search.gmane.org/?group=$group=gmane.linux.kernel.pci</link>
  </textinput>
</rdf:RDF>

