e1000e: remove calls to ioremap/unmap for NVM addr
authorYanir Lubetkin <yanirx.lubetkin@intel.com>
Sat, 28 Feb 2015 10:10:06 +0000 (10:10 +0000)
committerJeff Kirsher <jeffrey.t.kirsher@intel.com>
Fri, 6 Mar 2015 10:47:08 +0000 (02:47 -0800)
Starting I219, the NVM will not be mapped to its own BAR, but to an
address region in another bar.  The mapping/unmapping is relevant
to older HW only.

CC: John W Linville <linville@tuxdriver.com>
Reported-by: John W Linville <linville@tuxdriver.com>
Signed-off-by: Yanir Lubetkin <yanirx.lubetkin@intel.com>
Tested-by: Aaron Brown <aaron.f.brown@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
drivers/net/ethernet/intel/e1000e/netdev.c

index 6fa4fc05709ef3f1b346b9bd13594ab6e38bcdc5..4be4576d71aaa47fa0955257ab4e6d6cacdc1607 100644 (file)
@@ -6833,7 +6833,8 @@ static int e1000_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
                goto err_ioremap;
 
        if ((adapter->flags & FLAG_HAS_FLASH) &&
-           (pci_resource_flags(pdev, 1) & IORESOURCE_MEM)) {
+           (pci_resource_flags(pdev, 1) & IORESOURCE_MEM) &&
+           (hw->mac.type < e1000_pch_spt)) {
                flash_start = pci_resource_start(pdev, 1);
                flash_len = pci_resource_len(pdev, 1);
                adapter->hw.flash_address = ioremap(flash_start, flash_len);
@@ -7069,7 +7070,7 @@ err_hw_init:
        kfree(adapter->tx_ring);
        kfree(adapter->rx_ring);
 err_sw_init:
-       if (adapter->hw.flash_address)
+       if ((adapter->hw.flash_address) && (hw->mac.type < e1000_pch_spt))
                iounmap(adapter->hw.flash_address);
        e1000e_reset_interrupt_capability(adapter);
 err_flashmap:
@@ -7142,7 +7143,8 @@ static void e1000_remove(struct pci_dev *pdev)
        kfree(adapter->rx_ring);
 
        iounmap(adapter->hw.hw_addr);
-       if (adapter->hw.flash_address)
+       if ((adapter->hw.flash_address) &&
+           (adapter->hw.mac.type < e1000_pch_spt))
                iounmap(adapter->hw.flash_address);
        pci_release_selected_regions(pdev,
                                     pci_select_bars(pdev, IORESOURCE_MEM));