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 <davem@davemloft.net>
This commit is contained in:
commit
ff5f58f53c
|
@ -37,7 +37,7 @@
|
|||
#include "be_hw.h"
|
||||
#include "be_roce.h"
|
||||
|
||||
#define DRV_VER "11.1.0.0"
|
||||
#define DRV_VER "11.4.0.0"
|
||||
#define DRV_NAME "be2net"
|
||||
#define BE_NAME "Emulex BladeEngine2"
|
||||
#define BE3_NAME "Emulex BladeEngine3"
|
||||
|
|
|
@ -49,6 +49,9 @@
|
|||
#define POST_STAGE_BE_RESET 0x3 /* Host wants to reset chip */
|
||||
#define POST_STAGE_ARMFW_RDY 0xc000 /* FW is done with POST */
|
||||
#define POST_STAGE_RECOVERABLE_ERR 0xE000 /* Recoverable err detected */
|
||||
/* FW has detected a UE and is dumping FAT log data */
|
||||
#define POST_STAGE_FAT_LOG_START 0x0D00
|
||||
#define POST_STAGE_ARMFW_UE 0xF000 /*FW has asserted an UE*/
|
||||
|
||||
/* Lancer SLIPORT registers */
|
||||
#define SLIPORT_STATUS_OFFSET 0x404
|
||||
|
|
|
@ -3241,8 +3241,9 @@ void be_detect_error(struct be_adapter *adapter)
|
|||
{
|
||||
u32 ue_lo = 0, ue_hi = 0, ue_lo_mask = 0, ue_hi_mask = 0;
|
||||
u32 sliport_status = 0, sliport_err1 = 0, sliport_err2 = 0;
|
||||
u32 i;
|
||||
struct device *dev = &adapter->pdev->dev;
|
||||
u16 val;
|
||||
u32 i;
|
||||
|
||||
if (be_check_error(adapter, BE_ERROR_HW))
|
||||
return;
|
||||
|
@ -3280,14 +3281,24 @@ void be_detect_error(struct be_adapter *adapter)
|
|||
ue_lo = (ue_lo & ~ue_lo_mask);
|
||||
ue_hi = (ue_hi & ~ue_hi_mask);
|
||||
|
||||
/* On certain platforms BE hardware can indicate spurious UEs.
|
||||
* Allow HW to stop working completely in case of a real UE.
|
||||
* Hence not setting the hw_error for UE detection.
|
||||
*/
|
||||
|
||||
if (ue_lo || ue_hi) {
|
||||
/* On certain platforms BE3 hardware can indicate
|
||||
* spurious UEs. In case of a UE in the chip,
|
||||
* the POST register correctly reports either a
|
||||
* FAT_LOG_START state (FW is currently dumping
|
||||
* FAT log data) or a ARMFW_UE state. Check for the
|
||||
* above states to ascertain if the UE is valid or not.
|
||||
*/
|
||||
if (BE3_chip(adapter)) {
|
||||
val = be_POST_stage_get(adapter);
|
||||
if ((val & POST_STAGE_FAT_LOG_START)
|
||||
!= POST_STAGE_FAT_LOG_START &&
|
||||
(val & POST_STAGE_ARMFW_UE)
|
||||
!= POST_STAGE_ARMFW_UE)
|
||||
return;
|
||||
}
|
||||
|
||||
dev_err(dev, "Error detected in the adapter");
|
||||
if (skyhawk_chip(adapter))
|
||||
be_set_error(adapter, BE_ERROR_UE);
|
||||
|
||||
for (i = 0; ue_lo; ue_lo >>= 1, i++) {
|
||||
|
|
Loading…
Reference in a new issue