if (pci_read_config_dword(temp, PCI_VENDOR_ID, &l))
     return NULL;
        ....
     memcpy(dev, temp, sizeof(*dev));
    dev->vendor = l & 0xffff;
    dev->device = (l >> 16) & 0xffff;
   
   It seems to me this is incorrect for a big-endian machine
   (like PowerPC).  If we read the two 16-bit parts out of the
   first 32-bit part, we will end up with:
pci_read_config_dword should do the byte swapping on &l for
the caller, fix your pci_{read,write}_config_*() arch implementation.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/