Merge branch 'akpm' (patches from Andrew)
[linux-2.6-block.git] / drivers / pci / probe.c
index 8004f67c57ec6ae59157714e507f06429127765e..8e3ef720997dfba2858c4dae77b2a0651f678c2d 100644 (file)
@@ -179,9 +179,6 @@ int __pci_read_base(struct pci_dev *dev, enum pci_bar_type type,
        u16 orig_cmd;
        struct pci_bus_region region, inverted_region;
 
-       if (dev->non_compliant_bars)
-               return 0;
-
        mask = type ? PCI_ROM_ADDRESS_MASK : ~0;
 
        /* No printks while decoding is disabled! */
@@ -322,6 +319,9 @@ static void pci_read_bases(struct pci_dev *dev, unsigned int howmany, int rom)
 {
        unsigned int pos, reg;
 
+       if (dev->non_compliant_bars)
+               return;
+
        for (pos = 0; pos < howmany; pos++) {
                struct resource *res = &dev->resource[pos];
                reg = PCI_BASE_ADDRESS_0 + (pos << 2);
@@ -1537,6 +1537,7 @@ static void pci_release_dev(struct device *dev)
        pcibios_release_device(pci_dev);
        pci_bus_put(pci_dev->bus);
        kfree(pci_dev->driver_override);
+       kfree(pci_dev->dma_alias_mask);
        kfree(pci_dev);
 }