<?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/15467"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.linux.kernel.pci/15466"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.linux.kernel.pci/15465"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.linux.kernel.pci/15460"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.linux.kernel.pci/15457"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.linux.kernel.pci/15456"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.linux.kernel.pci/15454"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.linux.kernel.pci/15453"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.linux.kernel.pci/15452"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.linux.kernel.pci/15451"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.linux.kernel.pci/15450"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.linux.kernel.pci/15449"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.linux.kernel.pci/15448"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.linux.kernel.pci/15447"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.linux.kernel.pci/15446"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.linux.kernel.pci/15445"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.linux.kernel.pci/15444"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.linux.kernel.pci/15443"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.linux.kernel.pci/15442"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.linux.kernel.pci/15440"/>
      </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/15467">
    <title>Re: [PATCH 03/11] intel-gtt: Read 64bit for gmar_bus_addr</title>
    <link>http://permalink.gmane.org/gmane.linux.kernel.pci/15467</link>
    <description>&lt;pre&gt;
Reviewed-by: Daniel Vetter &amp;lt;daniel.vetter&amp;lt; at &amp;gt;ffwll.ch&amp;gt;
&lt;/pre&gt;</description>
    <dc:creator>Daniel Vetter</dc:creator>
    <dc:date>2012-05-23T07:44:44</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.linux.kernel.pci/15466">
    <title>Re: [PATCH 03/11] intel-gtt: Read 64bit for gmar_bus_addr</title>
    <link>http://permalink.gmane.org/gmane.linux.kernel.pci/15466</link>
    <description>&lt;pre&gt;
Adding Daniel Vetter.

Dave.
&lt;/pre&gt;</description>
    <dc:creator>Dave Airlie</dc:creator>
    <dc:date>2012-05-23T07:21:51</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.linux.kernel.pci/15465">
    <title>[PATCH v8 2/2] PCI: acpiphp: remove all functions in slot, even without ACPI _EJx</title>
    <link>http://permalink.gmane.org/gmane.linux.kernel.pci/15465</link>
    <description>&lt;pre&gt;
Yeah. Otherwise, it will delete from the last function.
Attached v8, test passed.


&lt;/pre&gt;</description>
    <dc:creator>Amos Kong</dc:creator>
    <dc:date>2012-05-23T07:03:16</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.linux.kernel.pci/15460">
    <title>[PATCH 06/11] resource: make find_resource could return just fit resource</title>
    <link>http://permalink.gmane.org/gmane.linux.kernel.pci/15460</link>
    <description>&lt;pre&gt;Find all suitable empty slots and pick one just fit, so we could spare the big
slot for needed ones later.

Signed-off-by: Yinghai Lu &amp;lt;yinghai&amp;lt; at &amp;gt;kernel.org&amp;gt;
---
 kernel/resource.c |   60 +++++++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 56 insertions(+), 4 deletions(-)

diff --git a/kernel/resource.c b/kernel/resource.c
index 41d7050..45ab24d 100644
--- a/kernel/resource.c
+++ b/kernel/resource.c
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -435,7 +435,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; static int __find_resource(struct resource *root, struct resource *old,
 alloc.end = alloc.start + size - 1;
 if (resource_contains(&amp;amp;avail, &amp;amp;alloc)) {
 new-&amp;gt;start = alloc.start;
-new-&amp;gt;end = alloc.end;
+new-&amp;gt;end = !old ? avail.end : alloc.end;
 return 0;
 }
 }
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -450,14 +450,66 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; next:if (!this || this-&amp;gt;end == root-&amp;gt;end)
 return -EBUSY;
 }
 
+struct avail_resource {
+struct list_head list;
+struct resource res;
+};
 /*
  * Find empty slot in the resource tree given range and alignment.
  */
 static int find_resource(struct resource *root, struct&lt;/pre&gt;</description>
    <dc:creator>Yinghai Lu</dc:creator>
    <dc:date>2012-05-23T06:34:32</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.linux.kernel.pci/15457">
    <title>[PATCH 11/11] PCI: Treat ROM resource as optional during assigning.</title>
    <link>http://permalink.gmane.org/gmane.linux.kernel.pci/15457</link>
    <description>&lt;pre&gt;So will try to allocate them together with requested ones, if can not assign
them, could go with requested one only, and just skip ROM resource.

Signed-off-by: Yinghai Lu &amp;lt;yinghai&amp;lt; at &amp;gt;kernel.org&amp;gt;
---
 drivers/pci/setup-bus.c |   21 +++++++--------------
 include/linux/pci.h     |    5 +++++
 2 files changed, 12 insertions(+), 14 deletions(-)

diff --git a/drivers/pci/setup-bus.c b/drivers/pci/setup-bus.c
index ed32864..41c08d6 100644
--- a/drivers/pci/setup-bus.c
+++ b/drivers/pci/setup-bus.c
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -305,18 +305,10 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; static void assign_requested_resources_sorted(struct list_head *head,
 idx = res - &amp;amp;dev_res-&amp;gt;dev-&amp;gt;resource[0];
 if (resource_size(res) &amp;amp;&amp;amp;
     pci_assign_resource_fit(dev_res-&amp;gt;dev, idx, fit)) {
-if (fail_head) {
-/*
- * if the failed res is for ROM BAR, and it will
- * be enabled later, don't add it to the list
- */
-if (!((idx == PCI_ROM_RESOURCE) &amp;amp;&amp;amp;
-      (!(res-&amp;gt;flags &amp;amp; IORESOURCE_ROM_ENABLE))))
-add_to_list(fail_head,
-    dev_res-&amp;gt;dev, res,
-    &lt;/pre&gt;</description>
    <dc:creator>Yinghai Lu</dc:creator>
    <dc:date>2012-05-23T06:34:37</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.linux.kernel.pci/15456">
    <title>[PATCH 07/11] PCI: Don't allocate small resource in big empty space.</title>
    <link>http://permalink.gmane.org/gmane.linux.kernel.pci/15456</link>
    <description>&lt;pre&gt;Use updated find_resource to return matched resource instead using head
of bigger range.

Signed-off-by: Yinghai Lu &amp;lt;yinghai&amp;lt; at &amp;gt;kernel.org&amp;gt;
---
 drivers/pci/bus.c       |   22 ++++++++++++++++++----
 drivers/pci/setup-bus.c |   12 ++++++++----
 drivers/pci/setup-res.c |   28 ++++++++++++++++++----------
 include/linux/ioport.h  |    8 ++++++++
 include/linux/pci.h     |   10 ++++++++++
 kernel/resource.c       |   22 +++++++++++++++++++---
 6 files changed, 81 insertions(+), 21 deletions(-)

diff --git a/drivers/pci/bus.c b/drivers/pci/bus.c
index 2429f1f..a7ba102 100644
--- a/drivers/pci/bus.c
+++ b/drivers/pci/bus.c
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -110,14 +110,14 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; void pci_bus_remove_resources(struct pci_bus *bus)
  * for a specific device resource.
  */
 int
-pci_bus_alloc_resource(struct pci_bus *bus, struct resource *res,
+pci_bus_alloc_resource_fit(struct pci_bus *bus, struct resource *res,
 resource_size_t size, resource_size_t align,
 resource_size_t min, unsigned int type_mask,
 resource_size_t (*alignf)(void *,
   co&lt;/pre&gt;</description>
    <dc:creator>Yinghai Lu</dc:creator>
    <dc:date>2012-05-23T06:34:33</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.linux.kernel.pci/15454">
    <title>[PATCH 02/11] PCI: Try to allocate mem64 above 4G at first</title>
    <link>http://permalink.gmane.org/gmane.linux.kernel.pci/15454</link>
    <description>&lt;pre&gt;and will fall back to below 4g if it can not find any above 4g.

Signed-off-by: Yinghai Lu &amp;lt;yinghai&amp;lt; at &amp;gt;kernel.org&amp;gt;
---
 drivers/pci/bus.c |   16 +++++++++++++---
 1 files changed, 13 insertions(+), 3 deletions(-)

diff --git a/drivers/pci/bus.c b/drivers/pci/bus.c
index 4ce5ef2..2429f1f 100644
--- a/drivers/pci/bus.c
+++ b/drivers/pci/bus.c
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -122,13 +122,17 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; pci_bus_alloc_resource(struct pci_bus *bus, struct resource *res,
 int i, ret = -ENOMEM;
 struct resource *r;
 resource_size_t max = -1;
+resource_size_t bottom = PCIBIOS_MAX_MEM_32 + 1ULL;
 
 type_mask |= IORESOURCE_IO | IORESOURCE_MEM;
 
 /* don't allocate too high if the pref mem doesn't support 64bit*/
-if (!(res-&amp;gt;flags &amp;amp; IORESOURCE_MEM_64))
+if (!(res-&amp;gt;flags &amp;amp; IORESOURCE_MEM_64)) {
 max = PCIBIOS_MAX_MEM_32;
+bottom = 0;
+}
 
+again:
 pci_bus_for_each_resource(bus, r, i) {
 if (!r)
 continue;
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -145,12 +149,18 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; pci_bus_alloc_resource(struct pci_bus *bus, struct resource *res,
 
 /* Ok, try it out.. */
 ret = allocate_resou&lt;/pre&gt;</description>
    <dc:creator>Yinghai Lu</dc:creator>
    <dc:date>2012-05-23T06:34:28</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.linux.kernel.pci/15453">
    <title>[PATCH 00/11] PCI: resource allocation related</title>
    <link>http://permalink.gmane.org/gmane.linux.kernel.pci/15453</link>
    <description>&lt;pre&gt;From: Yinghai Lu &amp;lt;ying6hai&amp;lt; at &amp;gt;kernel.org&amp;gt;

This patchset will try to make allocation to find suitable assignement.
1. will try to assign 64 bit resource above 4g at first.
2. will find space that is matched with needed size
3. will put resource in right location to leave more big alignment with left blank resource
4. will try option rom BAR as optional resources.

Could be found:
git://git.kernel.org/pub/scm/linux/kernel/git/yinghai/linux-yinghai.git for-pci-res-alloc

and it is based on pci for-3.6 branch.

Thanks

Yinghai Lu

Yinghai Lu (11):
  PCI: Should add children device res to fail list
  PCI: Try to allocate mem64 above 4G at first
  intel-gtt: Read 64bit for gmar_bus_addr
  PCI: Make sure assign same align with large size resource at first
  resources: Split out __allocate_resource()
  resource: make find_resource could return just fit resource
  PCI: Don't allocate small resource in big empty space.
  resource: only return range with needed align
  PCI: Add is_pci_iov_resource_idx()
  PCI: Sort unas&lt;/pre&gt;</description>
    <dc:creator>Yinghai Lu</dc:creator>
    <dc:date>2012-05-23T06:34:26</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.linux.kernel.pci/15452">
    <title>Re: [PATCH v7 2/2] PCI: acpiphp: remove all functions in slot, even without ACPI _EJx</title>
    <link>http://permalink.gmane.org/gmane.linux.kernel.pci/15452</link>
    <description>&lt;pre&gt;
would be better to have break...

+static struct pci_dev *dev_in_slot(struct acpiphp_slot *slot)
+{
+struct pci_bus *bus = slot-&amp;gt;bridge-&amp;gt;pci_bus;
+struct pci_dev *dev;
+int ret = NULL;
+
+down_read(&amp;amp;pci_bus_sem);
+list_for_each_entry(dev, &amp;amp;bus-&amp;gt;devices, bus_list)
+if (PCI_SLOT(dev-&amp;gt;devfn) == slot-&amp;gt;device)
+ret = pci_dev_get(dev);
+up_read(&amp;amp;pci_bus_sem);
+
+return ret;
+}

===&amp;gt;


+static struct pci_dev *dev_in_slot(struct acpiphp_slot *slot)
+{
+struct pci_bus *bus = slot-&amp;gt;bridge-&amp;gt;pci_bus;
+struct pci_dev *dev;
+int ret = NULL;
+
+down_read(&amp;amp;pci_bus_sem);
+list_for_each_entry(dev, &amp;amp;bus-&amp;gt;devices, bus_list)
+if (PCI_SLOT(dev-&amp;gt;devfn) == slot-&amp;gt;device) {
+ret = pci_dev_get(dev);
+                      break;
+              }
+up_read(&amp;amp;pci_bus_sem);
+
+return ret;
+}
&lt;/pre&gt;</description>
    <dc:creator>Yinghai Lu</dc:creator>
    <dc:date>2012-05-23T05:29:04</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.linux.kernel.pci/15451">
    <title>[PATCH v7 2/2] PCI: acpiphp: remove all functions in slot, even without ACPI _EJx</title>
    <link>http://permalink.gmane.org/gmane.linux.kernel.pci/15451</link>
    <description>&lt;pre&gt;Attached the v7,  test passed.
&lt;/pre&gt;</description>
    <dc:creator>Amos Kong</dc:creator>
    <dc:date>2012-05-23T05:15:05</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.linux.kernel.pci/15450">
    <title>Re: [PATCH v6 2/2] PCI: acpiphp: remove all functions in slot, even without ACPI _EJx</title>
    <link>http://permalink.gmane.org/gmane.linux.kernel.pci/15450</link>
    <description>&lt;pre&gt;
Do you need to keep that pci_bus_sem operation pair on return path?

&lt;/pre&gt;</description>
    <dc:creator>Yinghai Lu</dc:creator>
    <dc:date>2012-05-23T05:04:12</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.linux.kernel.pci/15449">
    <title>[PATCH v6 2/2] PCI: acpiphp: remove all functions in slot,even without ACPI _EJx</title>
    <link>http://permalink.gmane.org/gmane.linux.kernel.pci/15449</link>
    <description>&lt;pre&gt;From: Amos Kong &amp;lt;kongjianjun&amp;lt; at &amp;gt;gmail.com&amp;gt;

When we add a device with acpiphp, we enumerate all functions in the
slot with pci_scan_slot(), regardless of whether they have associated
ACPI methods such as _EJ0.

When removing the device, we previously removed only the functions
with those ACPI methods.  This patch makes the remove symmetric with the
add: we remove all functions in the slot, whether they have associated
ACPI methods or not.

With qemu-kvm and SeaBIOS, we can build a multi-function device where
only function 0 has _EJ0 and _ADR (see bugzilla below).  Removing and
re-adding that device works correctly with Windows guests.  This patch
makes it also work in Linux guests.

[bhelgaas: restructure loop iteration, pull out of slot-&amp;gt;funcs loop]
Reference: https://bugzilla.kernel.org/show_bug.cgi?id=43219
Signed-off-by: Amos Kong &amp;lt;kongjianjun&amp;lt; at &amp;gt;gmail.com&amp;gt;
Signed-off-by: Bjorn Helgaas &amp;lt;bhelgaas&amp;lt; at &amp;gt;google.com&amp;gt;
---
 drivers/pci/hotplug/acpiphp_glue.c |   39 +++++++++++++++++++++++++++---------
 1 files changed, 29&lt;/pre&gt;</description>
    <dc:creator>Bjorn Helgaas</dc:creator>
    <dc:date>2012-05-23T04:35:11</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.linux.kernel.pci/15448">
    <title>[PATCH v6 1/2] PCI: acpiphp: fix function 0 leak when disabling a slot</title>
    <link>http://permalink.gmane.org/gmane.linux.kernel.pci/15448</link>
    <description>&lt;pre&gt;From: Amos Kong &amp;lt;kongjianjun&amp;lt; at &amp;gt;gmail.com&amp;gt;

Previously, we acquired two references to function 0, but only released
one.

[bhelgaas: split this out from "remove all functions" fix]
Signed-off-by: Amos Kong &amp;lt;kongjianjun&amp;lt; at &amp;gt;gmail.com&amp;gt;
Signed-off-by: Bjorn Helgaas &amp;lt;bhelgaas&amp;lt; at &amp;gt;google.com&amp;gt;
---
 drivers/pci/hotplug/acpiphp_glue.c |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)

diff --git a/drivers/pci/hotplug/acpiphp_glue.c b/drivers/pci/hotplug/acpiphp_glue.c
index 62d0ae4..c8f9991 100644
--- a/drivers/pci/hotplug/acpiphp_glue.c
+++ b/drivers/pci/hotplug/acpiphp_glue.c
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -893,6 +893,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; static int disable_device(struct acpiphp_slot *slot)
 pdev = pci_get_slot(bus, PCI_DEVFN(slot-&amp;gt;device, 0));
 if (!pdev)
 goto err_exit;
+pci_dev_put(pdev);
 
 list_for_each_entry(func, &amp;amp;slot-&amp;gt;funcs, sibling) {
 if (func-&amp;gt;bridge) {

&lt;/pre&gt;</description>
    <dc:creator>Bjorn Helgaas</dc:creator>
    <dc:date>2012-05-23T04:35:06</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.linux.kernel.pci/15447">
    <title>[PATCH v6 0/2] PCI: acpiphp: remove multifunction devices</title>
    <link>http://permalink.gmane.org/gmane.linux.kernel.pci/15447</link>
    <description>&lt;pre&gt;Here's my proposal for fixing this problem.

I split out the pci_dev_put() for function 0 because it looks to me
like that is actually a separate issue -- it looks like we leaked
that reference even for single-function devices.

I restructured the iteration over bus-&amp;gt;devices to make it read a bit
more naturally, and also to remove it from inside the slot-&amp;gt;funcs
loop.  It didn't make sense to me to have a nested loop there.

The cleanup_p2p_bridge() stuff is mostly just fiddling with notify
handlers and other ACPI-specific stuff.  I don't think there's
actually a dependency there on the PCI device removal, so I think
it's safe to do that separately.

Does this make sense to you?  If so, can you test it and make sure
it actually works?

Thanks,
  Bjorn

---

Amos Kong (2):
      PCI: acpiphp: fix function 0 leak when disabling a slot
      PCI: acpiphp: remove all functions in slot, even without ACPI _EJx


 drivers/pci/hotplug/acpiphp_glue.c |   40 +++++++++++++++++++++++++++---------
 1 files changed, 30 ins&lt;/pre&gt;</description>
    <dc:creator>Bjorn Helgaas</dc:creator>
    <dc:date>2012-05-23T04:35:01</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.linux.kernel.pci/15446">
    <title>Re: [PATCH] pci hotplug: rescan bridge after device hotplug</title>
    <link>http://permalink.gmane.org/gmane.linux.kernel.pci/15446</link>
    <description>&lt;pre&gt;
another solution could be:

in qemu acpi dsdt, you could set bridge size for new added bridge.

current pbus_size_mem() will not shrink the old bridge resource size.

Thanks

Yinghai Lu
&lt;/pre&gt;</description>
    <dc:creator>Yinghai Lu</dc:creator>
    <dc:date>2012-05-23T04:07:54</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.linux.kernel.pci/15445">
    <title>[PATCH v6 8/9] PCI, x86: add MMCFG information on demand</title>
    <link>http://permalink.gmane.org/gmane.linux.kernel.pci/15445</link>
    <description>&lt;pre&gt;From: Jiang Liu &amp;lt;liuj97&amp;lt; at &amp;gt;gmail.com&amp;gt;

From: Jiang Liu &amp;lt;jiang.liu&amp;lt; at &amp;gt;huawei.com&amp;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 |   51 ++++++++++++++++++++++++++++++++++++---
 3 files changed, 53 insertions(+), 4 deletions(-)

diff --git a/arch/x86/include/asm/pci_x86.h b/arch/x86/include/asm/pci_x86.h
index a50e783..dcf5d3e 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; -141,6 +141,11 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; extern void pci_mmcfg_arch_unmap(struct pci_mmcfg_region *cfg);
 extern int __devinit pci_mmconfig_insert(uint16_t seg, uint8_t start,
  uint8_t end, phys_addr_t addr);
 extern int pci_mmconfig_delete(uint16_t seg, uint8_t start&lt;/pre&gt;</description>
    <dc:creator>Jiang Liu</dc:creator>
    <dc:date>2012-05-23T03:50:25</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.linux.kernel.pci/15444">
    <title>[PATCH v6 5/9] PCI, x86: introduce pci_mmconfig_insert()/delete() for PCI root bridge hotplug</title>
    <link>http://permalink.gmane.org/gmane.linux.kernel.pci/15444</link>
    <description>&lt;pre&gt;From: Jiang Liu &amp;lt;liuj97&amp;lt; at &amp;gt;gmail.com&amp;gt;

From: Jiang Liu &amp;lt;jiang.liu&amp;lt; at &amp;gt;huawei.com&amp;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 |    3 +
 arch/x86/pci/mmconfig-shared.c |  130 +++++++++++++++++++++++++++++++++++++---
 2 files changed, 124 insertions(+), 9 deletions(-)

diff --git a/arch/x86/include/asm/pci_x86.h b/arch/x86/include/asm/pci_x86.h
index df898ce..1a3c12f 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,9 &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(uint16_t seg, uint8_t start,
+ uint8_t end, phys_addr_t addr);
+extern int pci_mmconfig_delete(uint16_t &lt;/pre&gt;</description>
    <dc:creator>Jiang Liu</dc:creator>
    <dc:date>2012-05-23T03:50:22</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.linux.kernel.pci/15443">
    <title>[PATCH v6 1/9] PCI, x86: split out pci_mmcfg_check_reserved() for code reuse</title>
    <link>http://permalink.gmane.org/gmane.linux.kernel.pci/15443</link>
    <description>&lt;pre&gt;From: Jiang Liu &amp;lt;liuj97&amp;lt; at &amp;gt;gmail.com&amp;gt;

From: Jiang Liu &amp;lt;jiang.liu&amp;lt; at &amp;gt;huawei.com&amp;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);
+}
&lt;/pre&gt;</description>
    <dc:creator>Jiang Liu</dc:creator>
    <dc:date>2012-05-23T03:50:18</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.linux.kernel.pci/15442">
    <title>[PATCH v6 9/9] PCI, x86: simplify pci_mmcfg_late_insert_resources()</title>
    <link>http://permalink.gmane.org/gmane.linux.kernel.pci/15442</link>
    <description>&lt;pre&gt;From: Jiang Liu &amp;lt;liuj97&amp;lt; at &amp;gt;gmail.com&amp;gt;

From: Jiang Liu &amp;lt;jiang.liu&amp;lt; at &amp;gt;huawei.com&amp;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 |   32 +++++++-------------------------
 1 files changed, 7 insertions(+), 25 deletions(-)

diff --git a/arch/x86/pci/mmconfig-shared.c b/arch/x86/pci/mmconfig-shared.c
index a7a2efd..01a775f 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_arch_init_failed;
 static DEFINE_MUTEX(pci_mmcfg_lock);
 
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -372,22 +371,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;
-
-/*
- * Insert resources for MMCFG items if the resource &lt;/pre&gt;</description>
    <dc:creator>Jiang Liu</dc:creator>
    <dc:date>2012-05-23T03:50:26</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.linux.kernel.pci/15440">
    <title>[PATCH v6 4/9] PCI, x86: introduce pci_mmcfg_arch_map()/pci_mmcfg_arch_unmap()</title>
    <link>http://permalink.gmane.org/gmane.linux.kernel.pci/15440</link>
    <description>&lt;pre&gt;From: Jiang Liu &amp;lt;liuj97&amp;lt; at &amp;gt;gmail.com&amp;gt;

From: Jiang Liu &amp;lt;jiang.liu&amp;lt; at &amp;gt;huawei.com&amp;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_&lt;/pre&gt;</description>
    <dc:creator>Jiang Liu</dc:creator>
    <dc:date>2012-05-23T03:50:21</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.linux.kernel.pci/15438">
    <title>[PATCH v6 2/9] PCI, x86: split out pci_mmconfig_alloc() for code reuse</title>
    <link>http://permalink.gmane.org/gmane.linux.kernel.pci/15438</link>
    <description>&lt;pre&gt;From: Jiang Liu &amp;lt;liuj97&amp;lt; at &amp;gt;gmail.com&amp;gt;

From: Jiang Liu &amp;lt;jiang.liu&amp;lt; at &amp;gt;huawei.com&amp;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_mmconf&lt;/pre&gt;</description>
    <dc:creator>Jiang Liu</dc:creator>
    <dc:date>2012-05-23T03:50:19</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>

