]> asedeno.scripts.mit.edu Git - linux.git/blobdiff - drivers/pci/search.c
Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net
[linux.git] / drivers / pci / search.c
index bade14002fd8ad9afa5f3910458d4b3fcd9ea924..2061672954ee3cc9dac6a588f8056f775de3997d 100644 (file)
@@ -32,6 +32,12 @@ int pci_for_each_dma_alias(struct pci_dev *pdev,
        struct pci_bus *bus;
        int ret;
 
+       /*
+        * The device may have an explicit alias requester ID for DMA where the
+        * requester is on another PCI bus.
+        */
+       pdev = pci_real_dma_dev(pdev);
+
        ret = fn(pdev, pci_dev_id(pdev), data);
        if (ret)
                return ret;
@@ -41,9 +47,9 @@ int pci_for_each_dma_alias(struct pci_dev *pdev,
         * DMA, iterate over that too.
         */
        if (unlikely(pdev->dma_alias_mask)) {
-               u8 devfn;
+               unsigned int devfn;
 
-               for_each_set_bit(devfn, pdev->dma_alias_mask, U8_MAX) {
+               for_each_set_bit(devfn, pdev->dma_alias_mask, MAX_NR_DEVFNS) {
                        ret = fn(pdev, PCI_DEVID(pdev->bus->number, devfn),
                                 data);
                        if (ret)