diff options
Diffstat (limited to 'drivers/net/ethernet/emulex/benet/be_main.c')
| -rw-r--r-- | drivers/net/ethernet/emulex/benet/be_main.c | 10 | 
1 files changed, 10 insertions, 0 deletions
| diff --git a/drivers/net/ethernet/emulex/benet/be_main.c b/drivers/net/ethernet/emulex/benet/be_main.c index 3860888ac71..08e54f3d288 100644 --- a/drivers/net/ethernet/emulex/benet/be_main.c +++ b/drivers/net/ethernet/emulex/benet/be_main.c @@ -3688,6 +3688,8 @@ static void be_netdev_init(struct net_device *netdev)  static void be_unmap_pci_bars(struct be_adapter *adapter)  { +	if (adapter->csr) +		pci_iounmap(adapter->pdev, adapter->csr);  	if (adapter->db)  		pci_iounmap(adapter->pdev, adapter->db);  } @@ -3721,6 +3723,12 @@ static int be_map_pci_bars(struct be_adapter *adapter)  	adapter->if_type = (sli_intf & SLI_INTF_IF_TYPE_MASK) >>  				SLI_INTF_IF_TYPE_SHIFT; +	if (BEx_chip(adapter) && be_physfn(adapter)) { +		adapter->csr = pci_iomap(adapter->pdev, 2, 0); +		if (adapter->csr == NULL) +			return -ENOMEM; +	} +  	addr = pci_iomap(adapter->pdev, db_bar(adapter), 0);  	if (addr == NULL)  		goto pci_map_err; @@ -4329,6 +4337,8 @@ static pci_ers_result_t be_eeh_reset(struct pci_dev *pdev)  	pci_restore_state(pdev);  	/* Check if card is ok and fw is ready */ +	dev_info(&adapter->pdev->dev, +		 "Waiting for FW to be ready after EEH reset\n");  	status = be_fw_wait_ready(adapter);  	if (status)  		return PCI_ERS_RESULT_DISCONNECT; |