|
@@ -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));
|