Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 23 Jul 2019 21:26:03 +0000 (UTC)
From:      Navdeep Parhar <np@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org
Subject:   svn commit: r350264 - stable/12/sys/dev/cxgbe/common
Message-ID:  <201907232126.x6NLQ32W026102@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: np
Date: Tue Jul 23 21:26:03 2019
New Revision: 350264
URL: https://svnweb.freebsd.org/changeset/base/350264

Log:
  MFC r349956:
  
  cxgbe(4): Completely ignore all top level interrupts that are not enabled.
  
  The driver used to log any non-zero cause and when running with a single
  line interrupt it would spam the console/logs with reports of interrupts
  that are of no interest to anyone.
  
  Sponsored by:	Chelsio Communications

Modified:
  stable/12/sys/dev/cxgbe/common/t4_hw.c
Directory Properties:
  stable/12/   (props changed)

Modified: stable/12/sys/dev/cxgbe/common/t4_hw.c
==============================================================================
--- stable/12/sys/dev/cxgbe/common/t4_hw.c	Tue Jul 23 21:15:28 2019	(r350263)
+++ stable/12/sys/dev/cxgbe/common/t4_hw.c	Tue Jul 23 21:26:03 2019	(r350264)
@@ -4023,17 +4023,16 @@ t4_handle_intr(struct adapter *adap, const struct intr
 	bool rc;
 	const struct intr_action *action;
 
-	/* read and display cause. */
-	cause = t4_read_reg(adap, ii->cause_reg);
-	if (verbose || cause != 0)
-		t4_show_intr_info(adap, ii, cause);
 	/*
-	 * The top level interrupt cause is a bit special and we need to ignore
-	 * the bits that are not in the enable.  Note that we did display them
-	 * above in t4_show_intr_info but will not clear them.
+	 * Read and display cause.  Note that the top level PL_INT_CAUSE is a
+	 * bit special and we need to completely ignore the bits that are not in
+	 * PL_INT_ENABLE.
 	 */
+	cause = t4_read_reg(adap, ii->cause_reg);
 	if (ii->cause_reg == A_PL_INT_CAUSE)
 		cause &= t4_read_reg(adap, ii->enable_reg);
+	if (verbose || cause != 0)
+		t4_show_intr_info(adap, ii, cause);
 	fatal = cause & ii->fatal;
 	if (fatal != 0 && ii->flags & NONFATAL_IF_DISABLED)
 		fatal &= t4_read_reg(adap, ii->enable_reg);



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201907232126.x6NLQ32W026102>