Skip to content

Commit ff5f58f

Browse files
committed
Merge branch 'be2net-next'
Suresh Reddy says: ==================== be2net: patch-set Hi Dave, Please consider applying these two patches to net-next ==================== Signed-off-by: David S. Miller <[email protected]>
2 parents 2baec2c + aab0830 commit ff5f58f

File tree

3 files changed

+23
-9
lines changed

3 files changed

+23
-9
lines changed

drivers/net/ethernet/emulex/benet/be.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@
3737
#include "be_hw.h"
3838
#include "be_roce.h"
3939

40-
#define DRV_VER "11.1.0.0"
40+
#define DRV_VER "11.4.0.0"
4141
#define DRV_NAME "be2net"
4242
#define BE_NAME "Emulex BladeEngine2"
4343
#define BE3_NAME "Emulex BladeEngine3"

drivers/net/ethernet/emulex/benet/be_hw.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,9 @@
4949
#define POST_STAGE_BE_RESET 0x3 /* Host wants to reset chip */
5050
#define POST_STAGE_ARMFW_RDY 0xc000 /* FW is done with POST */
5151
#define POST_STAGE_RECOVERABLE_ERR 0xE000 /* Recoverable err detected */
52+
/* FW has detected a UE and is dumping FAT log data */
53+
#define POST_STAGE_FAT_LOG_START 0x0D00
54+
#define POST_STAGE_ARMFW_UE 0xF000 /*FW has asserted an UE*/
5255

5356
/* Lancer SLIPORT registers */
5457
#define SLIPORT_STATUS_OFFSET 0x404

drivers/net/ethernet/emulex/benet/be_main.c

Lines changed: 19 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3241,8 +3241,9 @@ void be_detect_error(struct be_adapter *adapter)
32413241
{
32423242
u32 ue_lo = 0, ue_hi = 0, ue_lo_mask = 0, ue_hi_mask = 0;
32433243
u32 sliport_status = 0, sliport_err1 = 0, sliport_err2 = 0;
3244-
u32 i;
32453244
struct device *dev = &adapter->pdev->dev;
3245+
u16 val;
3246+
u32 i;
32463247

32473248
if (be_check_error(adapter, BE_ERROR_HW))
32483249
return;
@@ -3280,15 +3281,25 @@ void be_detect_error(struct be_adapter *adapter)
32803281
ue_lo = (ue_lo & ~ue_lo_mask);
32813282
ue_hi = (ue_hi & ~ue_hi_mask);
32823283

3283-
/* On certain platforms BE hardware can indicate spurious UEs.
3284-
* Allow HW to stop working completely in case of a real UE.
3285-
* Hence not setting the hw_error for UE detection.
3286-
*/
3287-
32883284
if (ue_lo || ue_hi) {
3285+
/* On certain platforms BE3 hardware can indicate
3286+
* spurious UEs. In case of a UE in the chip,
3287+
* the POST register correctly reports either a
3288+
* FAT_LOG_START state (FW is currently dumping
3289+
* FAT log data) or a ARMFW_UE state. Check for the
3290+
* above states to ascertain if the UE is valid or not.
3291+
*/
3292+
if (BE3_chip(adapter)) {
3293+
val = be_POST_stage_get(adapter);
3294+
if ((val & POST_STAGE_FAT_LOG_START)
3295+
!= POST_STAGE_FAT_LOG_START &&
3296+
(val & POST_STAGE_ARMFW_UE)
3297+
!= POST_STAGE_ARMFW_UE)
3298+
return;
3299+
}
3300+
32893301
dev_err(dev, "Error detected in the adapter");
3290-
if (skyhawk_chip(adapter))
3291-
be_set_error(adapter, BE_ERROR_UE);
3302+
be_set_error(adapter, BE_ERROR_UE);
32923303

32933304
for (i = 0; ue_lo; ue_lo >>= 1, i++) {
32943305
if (ue_lo & 1)

0 commit comments

Comments
 (0)