Re: [Bug 16007] x86/pci Oops with CONFIG_SND_HDA_INTEL

From: Yinghai Lu
Date: Fri Jun 11 2010 - 19:09:13 EST



please check if this one workaround the problem

Thanks

Yinghai Lu

[PATCH] x86, pci: handle fallout pci devices with peer root bus

Signed-off-by: Yinghai Lu <yinghai@xxxxxxxxxx>

---
arch/x86/pci/bus_numa.c | 4 +++-
kernel/resource.c | 2 +-
2 files changed, 4 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;
}

@@ -37,6 +38,7 @@ void x86_pci_root_bus_res_quirks(struct
for (j = 0; j < info->res_num; j++) {
struct resource *res;
struct resource *root;
+ struct resource *tmp;

res = &info->res[j];
pci_bus_add_resource(b, res, 0);
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@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/