]> err.no Git - linux-2.6/blobdiff - arch/sparc64/kernel/isa.c
Merge git://git.kernel.org/pub/scm/linux/kernel/git/agk/linux-2.6-dm
[linux-2.6] / arch / sparc64 / kernel / isa.c
index 1a1043fcf97dda26866182a97acd2739e94df3ee..a2af5ed784c99bd12def0527f8dccecbbc120725 100644 (file)
@@ -90,6 +90,9 @@ static void __init isa_fill_devices(struct sparc_isa_bridge *isa_br)
                sd = &isa_dev->ofdev.dev.archdata;
                sd->prom_node = dp;
                sd->op = &isa_dev->ofdev;
+               sd->iommu = isa_br->ofdev.dev.parent->archdata.iommu;
+               sd->stc = isa_br->ofdev.dev.parent->archdata.stc;
+               sd->numa_node = isa_br->ofdev.dev.parent->archdata.numa_node;
 
                isa_dev->ofdev.node = dp;
                isa_dev->ofdev.dev.parent = &isa_br->ofdev.dev;
@@ -153,6 +156,7 @@ void __init isa_init(void)
                isa_br = kzalloc(sizeof(*isa_br), GFP_KERNEL);
                if (!isa_br) {
                        printk(KERN_DEBUG "isa: cannot allocate sparc_isa_bridge");
+                       pci_dev_put(pdev);
                        return;
                }
 
@@ -166,6 +170,7 @@ void __init isa_init(void)
                        printk(KERN_DEBUG "isa: device registration error for %s!\n",
                               dp->path_component_name);
                        kfree(isa_br);
+                       pci_dev_put(pdev);
                        return;
                }