svn commit: r349956 - head/sys/dev/cxgbe/common

Navdeep Parhar np at FreeBSD.org
Fri Jul 12 20:59:11 UTC 2019


Author: np
Date: Fri Jul 12 20:59:10 2019
New Revision: 349956
URL: https://svnweb.freebsd.org/changeset/base/349956

Log:
  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.
  
  MFC after:	1 week
  Sponsored by:	Chelsio Communications

Modified:
  head/sys/dev/cxgbe/common/t4_hw.c

Modified: head/sys/dev/cxgbe/common/t4_hw.c
==============================================================================
--- head/sys/dev/cxgbe/common/t4_hw.c	Fri Jul 12 20:05:30 2019	(r349955)
+++ head/sys/dev/cxgbe/common/t4_hw.c	Fri Jul 12 20:59:10 2019	(r349956)
@@ -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);


More information about the svn-src-head mailing list