summaryrefslogtreecommitdiff
path: root/sys/dev/cxgbe
diff options
context:
space:
mode:
authorNavdeep Parhar <np@FreeBSD.org>2019-11-30 19:52:47 +0000
committerNavdeep Parhar <np@FreeBSD.org>2019-11-30 19:52:47 +0000
commit3e8aeaf2d898d556824470d0760bf0b4c7ba3656 (patch)
tree0976dcb258df8d572ae9d3ae2d2249ee40f4c606 /sys/dev/cxgbe
parentd186d40c9e111500e6d98b3e6b2f0fa11f9ac4d9 (diff)
Notes
Diffstat (limited to 'sys/dev/cxgbe')
-rw-r--r--sys/dev/cxgbe/common/t4_hw.c13
1 files changed, 6 insertions, 7 deletions
diff --git a/sys/dev/cxgbe/common/t4_hw.c b/sys/dev/cxgbe/common/t4_hw.c
index d9f82f2595fe..b5d0a632c572 100644
--- a/sys/dev/cxgbe/common/t4_hw.c
+++ b/sys/dev/cxgbe/common/t4_hw.c
@@ -4021,17 +4021,16 @@ t4_handle_intr(struct adapter *adap, const struct intr_info *ii,
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);