[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <4C166B4F.90308@oracle.com>
Date: Mon, 14 Jun 2010 10:47:59 -0700
From: Yinghai Lu <yinghai.lu@...cle.com>
To: Jesse Barnes <jbarnes@...tuousgeek.org>,
Thomas Gleixner <tglx@...utronix.de>,
Ingo Molnar <mingo@...e.hu>, "H. Peter Anvin" <hpa@...or.com>
CC: Bjorn Helgaas <bjorn.helgaas@...com>,
Graham Ramsey <ramsey.graham@...world.com>,
linux-kernel@...r.kernel.org, linux-pci@...r.kernel.org,
Robert Richter <robert.richter@....com>,
Harald Welte <HaraldWelte@...tech.com>,
Joseph Chan <JosephChan@....com.tw>,
Jiri Slaby <jslaby@...e.cz>,
Hidetoshi Seto <seto.hidetoshi@...fujitsu.com>,
Andrew Morton <akpm@...ux-foundation.org>,
Dominik Brodowski <linux@...inikbrodowski.net>
Subject: [PATCH -v2] x86, pci: Handle fallout pci devices with peer root bus
Graham bisected
| commit 3e3da00c01d050307e753fb7b3e84aefc16da0d0
| x86/pci: AMD one chain system to use pci read out res
cause the SND_HDA_INTEL doesn't work anymore.
https://bugzilla.kernel.org/show_bug.cgi?id=16007
It turns out that his system with via chipset only have one hypertransport
chain, but does have one extra orphan device 80:01.0
PCI: Probing PCI hardware (bus 00)
PCI: Discovered primary peer bus 80 [IRQ]
node 0 link 0: io port [1000, ffffff]
TOM: 0000000080000000 aka 2048M
node 0 link 0: mmio [e0000000, efffffff]
node 0 link 0: mmio [a0000, bffff]
node 0 link 0: mmio [80000000, ffffffff]
bus: [00, ff] on node 0 link 0
Try to make peer root buses to share same mmio/io resources if those peer root
buses fall into the same bus range.
Also need to update insert_resource to avoid insert same resource two times.
We need this patch for 2.6.34 stable.
Reported-by: Graham Ramsey <ramsey.graham@...world.com>
Bisected-by: Graham Ramsey <ramsey.graham@...world.com>
Tested-by: Graham Ramsey <ramsey.graham@...world.com>
Signed-off-by: Yinghai Lu <yinghai@...nel.org>
Cc: stable@...nel.org
---
arch/x86/pci/bus_numa.c | 3 ++-
kernel/resource.c | 2 +-
2 files changed, 3 insertions(+), 2 deletions(-)
Index: linux-2.6/arch/x86/pci/bus_numa.c
===================================================================
--- linux-2.6.orig/arch/x86/pci/bus_numa.c
+++ linux-2.6/arch/x86/pci/bus_numa.c
@@ -22,7 +22,8 @@ void x86_pci_root_bus_res_quirks(struct
return;
for (i = 0; i < pci_root_num; i++) {
- if (pci_root_info[i].bus_min == b->number)
+ if (pci_root_info[i].bus_min <= b->number &&
+ pci_root_info[i].bus_max >= b->number)
break;
}
Index: linux-2.6/kernel/resource.c
===================================================================
--- linux-2.6.orig/kernel/resource.c
+++ linux-2.6/kernel/resource.c
@@ -451,7 +451,7 @@ static struct resource * __insert_resour
if (!first)
return first;
- if (first == parent)
+ if (first == parent || first == new)
return first;
if ((first->start > new->start) || (first->end < new->end))
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists