struct msg_address address;
        struct msg_data data;
        int vector, pos, i, j, nr_entries, temp = 0;
-       u32 phys_addr, table_offset;
+       unsigned long phys_addr;
+       u32 table_offset;
        u16 control;
        u8 bir;
        void __iomem *base;
        /* Request & Map MSI-X table region */
        pci_read_config_word(dev, msi_control_reg(pos), &control);
        nr_entries = multi_msix_capable(control);
-       pci_read_config_dword(dev, msix_table_offset_reg(pos),
-               &table_offset);
+
+       pci_read_config_dword(dev, msix_table_offset_reg(pos), &table_offset);
        bir = (u8)(table_offset & PCI_MSIX_FLAGS_BIRMASK);
-       phys_addr = pci_resource_start (dev, bir);
-       phys_addr += (u32)(table_offset & ~PCI_MSIX_FLAGS_BIRMASK);
+       table_offset &= ~PCI_MSIX_FLAGS_BIRMASK;
+       phys_addr = pci_resource_start (dev, bir) + table_offset;
        base = ioremap_nocache(phys_addr, nr_entries * PCI_MSIX_ENTRY_SIZE);
        if (base == NULL)
                return -ENOMEM;
                         * Detect last MSI-X vector to be released.
                         * Release the MSI-X memory-mapped table.
                         */
+#if 0
                        int pos, nr_entries;
-                       u32 phys_addr, table_offset;
+                       unsigned long phys_addr;
+                       u32 table_offset;
                        u16 control;
                        u8 bir;
 
                        pci_read_config_dword(dev, msix_table_offset_reg(pos),
                                &table_offset);
                        bir = (u8)(table_offset & PCI_MSIX_FLAGS_BIRMASK);
-                       phys_addr = pci_resource_start (dev, bir);
-                       phys_addr += (u32)(table_offset &
-                               ~PCI_MSIX_FLAGS_BIRMASK);
+                       table_offset &= ~PCI_MSIX_FLAGS_BIRMASK;
+                       phys_addr = pci_resource_start(dev, bir) + table_offset;
+/*
+ * FIXME!  and what did you want to do with phys_addr?
+ */
+#endif
                        iounmap(base);
                }
        }
                msi_free_vector(dev, vector, 0);
                if (warning) {
                        /* Force to release the MSI-X memory-mapped table */
-                       u32 phys_addr, table_offset;
+#if 0
+                       unsigned long phys_addr;
+                       u32 table_offset;
                        u16 control;
                        u8 bir;
 
                        pci_read_config_dword(dev, msix_table_offset_reg(pos),
                                &table_offset);
                        bir = (u8)(table_offset & PCI_MSIX_FLAGS_BIRMASK);
-                       phys_addr = pci_resource_start (dev, bir);
-                       phys_addr += (u32)(table_offset &
-                               ~PCI_MSIX_FLAGS_BIRMASK);
+                       table_offset &= ~PCI_MSIX_FLAGS_BIRMASK;
+                       phys_addr = pci_resource_start(dev, bir) + table_offset;
+/*
+ * FIXME! and what did you want to do with phys_addr?
+ */
+#endif
                        iounmap(base);
                        printk(KERN_WARNING "PCI: %s: msi_remove_pci_irq_vectors() "
                               "called without free_irq() on all MSI-X vectors\n",