aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/net/ethernet/emulex/benet/be_hw.h3
-rw-r--r--drivers/net/ethernet/emulex/benet/be_main.c18
2 files changed, 17 insertions, 4 deletions
diff --git a/drivers/net/ethernet/emulex/benet/be_hw.h b/drivers/net/ethernet/emulex/benet/be_hw.h
index 3e2162121601..dc88782185f2 100644
--- a/drivers/net/ethernet/emulex/benet/be_hw.h
+++ b/drivers/net/ethernet/emulex/benet/be_hw.h
@@ -64,6 +64,9 @@
64#define SLIPORT_ERROR_NO_RESOURCE1 0x2 64#define SLIPORT_ERROR_NO_RESOURCE1 0x2
65#define SLIPORT_ERROR_NO_RESOURCE2 0x9 65#define SLIPORT_ERROR_NO_RESOURCE2 0x9
66 66
67#define SLIPORT_ERROR_FW_RESET1 0x2
68#define SLIPORT_ERROR_FW_RESET2 0x0
69
67/********* Memory BAR register ************/ 70/********* Memory BAR register ************/
68#define PCICFG_MEMBAR_CTRL_INT_CTRL_OFFSET 0xfc 71#define PCICFG_MEMBAR_CTRL_INT_CTRL_OFFSET 0xfc
69/* Host Interrupt Enable, if set interrupts are enabled although "PCI Interrupt 72/* Host Interrupt Enable, if set interrupts are enabled although "PCI Interrupt
diff --git a/drivers/net/ethernet/emulex/benet/be_main.c b/drivers/net/ethernet/emulex/benet/be_main.c
index fee64bf10446..a2302dc061f3 100644
--- a/drivers/net/ethernet/emulex/benet/be_main.c
+++ b/drivers/net/ethernet/emulex/benet/be_main.c
@@ -2464,8 +2464,16 @@ void be_detect_error(struct be_adapter *adapter)
2464 */ 2464 */
2465 if (sliport_status & SLIPORT_STATUS_ERR_MASK) { 2465 if (sliport_status & SLIPORT_STATUS_ERR_MASK) {
2466 adapter->hw_error = true; 2466 adapter->hw_error = true;
2467 dev_err(&adapter->pdev->dev, 2467 /* Do not log error messages if its a FW reset */
2468 "Error detected in the card\n"); 2468 if (sliport_err1 == SLIPORT_ERROR_FW_RESET1 &&
2469 sliport_err2 == SLIPORT_ERROR_FW_RESET2) {
2470 dev_info(&adapter->pdev->dev,
2471 "Firmware update in progress\n");
2472 return;
2473 } else {
2474 dev_err(&adapter->pdev->dev,
2475 "Error detected in the card\n");
2476 }
2469 } 2477 }
2470 2478
2471 if (sliport_status & SLIPORT_STATUS_ERR_MASK) { 2479 if (sliport_status & SLIPORT_STATUS_ERR_MASK) {
@@ -3812,6 +3820,8 @@ static int lancer_fw_download(struct be_adapter *adapter,
3812 } 3820 }
3813 3821
3814 if (change_status == LANCER_FW_RESET_NEEDED) { 3822 if (change_status == LANCER_FW_RESET_NEEDED) {
3823 dev_info(&adapter->pdev->dev,
3824 "Resetting adapter to activate new FW\n");
3815 status = lancer_physdev_ctrl(adapter, 3825 status = lancer_physdev_ctrl(adapter,
3816 PHYSDEV_CONTROL_FW_RESET_MASK); 3826 PHYSDEV_CONTROL_FW_RESET_MASK);
3817 if (status) { 3827 if (status) {
@@ -4363,13 +4373,13 @@ static int lancer_recover_func(struct be_adapter *adapter)
4363 goto err; 4373 goto err;
4364 } 4374 }
4365 4375
4366 dev_err(dev, "Error recovery successful\n"); 4376 dev_err(dev, "Adapter recovery successful\n");
4367 return 0; 4377 return 0;
4368err: 4378err:
4369 if (status == -EAGAIN) 4379 if (status == -EAGAIN)
4370 dev_err(dev, "Waiting for resource provisioning\n"); 4380 dev_err(dev, "Waiting for resource provisioning\n");
4371 else 4381 else
4372 dev_err(dev, "Error recovery failed\n"); 4382 dev_err(dev, "Adapter recovery failed\n");
4373 4383
4374 return status; 4384 return status;
4375} 4385}