Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit ff5f58f5 authored by David S. Miller's avatar David S. Miller
Browse files

Merge branch 'be2net-next'



Suresh Reddy says:

====================
be2net: patch-set

Hi Dave, Please consider applying these two patches to net-next
====================

Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parents 2baec2c3 aab0830a
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -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"
+3 −0
Original line number Diff line number Diff line
@@ -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
+19 −8
Original line number Diff line number Diff line
@@ -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;
			}

		if (ue_lo || ue_hi) {
			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++) {