starfire: Fix dma_addr_t size test for MIPS
[pandora-kernel.git] / drivers / net / starfire.c
index a42b687..a4f2bd5 100644 (file)
@@ -148,7 +148,7 @@ static int full_duplex[MAX_UNITS] = {0, };
  * This SUCKS.
  * We need a much better method to determine if dma_addr_t is 64-bit.
  */
-#if (defined(__i386__) && defined(CONFIG_HIGHMEM64G)) || defined(__x86_64__) || defined (__ia64__) || defined(__alpha__) || defined(__mips64__) || (defined(__mips__) && defined(CONFIG_HIGHMEM) && defined(CONFIG_64BIT_PHYS_ADDR))
+#if (defined(__i386__) && defined(CONFIG_HIGHMEM64G)) || defined(__x86_64__) || defined (__ia64__) || defined(__alpha__) || (defined(CONFIG_MIPS) && ((defined(CONFIG_HIGHMEM) && defined(CONFIG_64BIT_PHYS_ADDR)) || defined(CONFIG_64BIT))) || (defined(__powerpc64__) || defined(CONFIG_PHYS_64BIT))
 /* 64-bit dma_addr_t */
 #define ADDR_64BITS    /* This chip uses 64 bit addresses. */
 #define netdrv_addr_t __le64
@@ -302,7 +302,7 @@ enum chipset {
 };
 
 static DEFINE_PCI_DEVICE_TABLE(starfire_pci_tbl) = {
-       { 0x9004, 0x6915, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CH_6915 },
+       { PCI_VDEVICE(ADAPTEC, 0x6915), CH_6915 },
        { 0, }
 };
 MODULE_DEVICE_TABLE(pci, starfire_pci_tbl);
@@ -2078,11 +2078,7 @@ static int __init starfire_init (void)
        printk(KERN_INFO DRV_NAME ": polling (NAPI) enabled\n");
 #endif
 
-       /* we can do this test only at run-time... sigh */
-       if (sizeof(dma_addr_t) != sizeof(netdrv_addr_t)) {
-               printk("This driver has dma_addr_t issues, please send email to maintainer\n");
-               return -ENODEV;
-       }
+       BUILD_BUG_ON(sizeof(dma_addr_t) != sizeof(netdrv_addr_t));
 
        return pci_register_driver(&starfire_driver);
 }