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