svn commit: r301383 - stable/10/sys/dev/sfxge/common

Andrew Rybchenko arybchik at FreeBSD.org
Sat Jun 4 16:57:39 UTC 2016


Author: arybchik
Date: Sat Jun  4 16:57:38 2016
New Revision: 301383
URL: https://svnweb.freebsd.org/changeset/base/301383

Log:
  MFC r300011
  
  sfxge(4): only raise an exception after MC assert or reboot in the common code
  
  Fix efx_mcdi_request_poll so it only raises an exception if EIO is
  reported from a detected MC assert or reboot. This prevents
  an unnecessary exception being raised if an MCDI response error code
  is trandlated to EIO.
  
  Submitted by:   Andy Moreton <amoreton at solarflare.com>
  Sponsored by:   Solarflare Communications, Inc.

Modified:
  stable/10/sys/dev/sfxge/common/efx_mcdi.c
Directory Properties:
  stable/10/   (props changed)

Modified: stable/10/sys/dev/sfxge/common/efx_mcdi.c
==============================================================================
--- stable/10/sys/dev/sfxge/common/efx_mcdi.c	Sat Jun  4 16:56:36 2016	(r301382)
+++ stable/10/sys/dev/sfxge/common/efx_mcdi.c	Sat Jun  4 16:57:38 2016	(r301383)
@@ -519,6 +519,11 @@ efx_mcdi_request_poll(
 		if ((rc = efx_mcdi_poll_reboot(enp)) != 0) {
 			emip->emi_pending_req = NULL;
 			EFSYS_UNLOCK(enp->en_eslp, state);
+
+			/* Reboot/Assertion */
+			if (rc == EIO || rc == EINTR)
+				efx_mcdi_raise_exception(enp, emrp, rc);
+
 			goto fail1;
 		}
 	}
@@ -553,10 +558,6 @@ fail1:
 	if (!emrp->emr_quiet)
 		EFSYS_PROBE1(fail1, efx_rc_t, rc);
 
-	/* Reboot/Assertion */
-	if (rc == EIO || rc == EINTR)
-		efx_mcdi_raise_exception(enp, emrp, rc);
-
 	return (B_TRUE);
 }
 


More information about the svn-src-stable mailing list