|
@@ -1060,33 +1060,8 @@ static int msi_free_vector(struct pci_dev* dev, int vector, int reassign)
|
|
|
entry_nr * PCI_MSIX_ENTRY_SIZE +
|
|
|
PCI_MSIX_ENTRY_VECTOR_CTRL_OFFSET);
|
|
|
|
|
|
- if (head == vector) {
|
|
|
- /*
|
|
|
- * Detect last MSI-X vector to be released.
|
|
|
- * Release the MSI-X memory-mapped table.
|
|
|
- */
|
|
|
-#if 0
|
|
|
- int pos, nr_entries;
|
|
|
- unsigned long phys_addr;
|
|
|
- u32 table_offset;
|
|
|
- u16 control;
|
|
|
- u8 bir;
|
|
|
-
|
|
|
- pos = pci_find_capability(dev, PCI_CAP_ID_MSIX);
|
|
|
- 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);
|
|
|
- bir = (u8)(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
|
|
|
+ if (head == vector)
|
|
|
iounmap(base);
|
|
|
- }
|
|
|
}
|
|
|
|
|
|
return 0;
|
|
@@ -1360,24 +1335,6 @@ void msi_remove_pci_irq_vectors(struct pci_dev* dev)
|
|
|
}
|
|
|
msi_free_vector(dev, vector, 0);
|
|
|
if (warning) {
|
|
|
- /* Force to release the MSI-X memory-mapped table */
|
|
|
-#if 0
|
|
|
- unsigned long phys_addr;
|
|
|
- u32 table_offset;
|
|
|
- u16 control;
|
|
|
- u8 bir;
|
|
|
-
|
|
|
- pci_read_config_word(dev, msi_control_reg(pos),
|
|
|
- &control);
|
|
|
- pci_read_config_dword(dev, msix_table_offset_reg(pos),
|
|
|
- &table_offset);
|
|
|
- bir = (u8)(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",
|