FreeBSD: for 64-bit BARs, skip the resource slot used for the upper 32 bits.
authorEric Anholt <eric@anholt.net>
Wed, 10 Oct 2007 22:20:51 +0000 (15:20 -0700)
committerEric Anholt <eric@anholt.net>
Wed, 10 Oct 2007 22:20:51 +0000 (15:20 -0700)
This gets us the same resource numbering as on Linux.

src/freebsd_pci.c

index bf41f63..0c7cf61 100644 (file)
@@ -397,9 +397,10 @@ pci_device_freebsd_probe( struct pci_device * dev )
     bar = 0x10;
     for (i = 0; i < pci_device_freebsd_get_num_regions( dev ); i++) {
        pci_device_freebsd_get_region_info( dev, i, bar );
-       if (dev->regions[i].is_64)
+       if (dev->regions[i].is_64) {
            bar += 0x08;
-       else
+           i++;
+       } else
            bar += 0x04;
     }