git: 372803d65d24 - main - ixl: Set critical-error state bits independently

From: Kevin Bowling <kbowling_at_FreeBSD.org>
Date: Fri, 11 Sep 2026 20:57:47 UTC
The branch main has been updated by kbowling:

URL: https://cgit.FreeBSD.org/src/commit/?id=372803d65d242b308abd6b312a40ff6987fc3452

commit 372803d65d242b308abd6b312a40ff6987fc3452
Author:     Kevin Bowling <kbowling@FreeBSD.org>
AuthorDate: 2026-09-07 13:36:06 +0000
Commit:     Kevin Bowling <kbowling@FreeBSD.org>
CommitDate: 2026-09-11 20:46:33 +0000

    ixl: Set critical-error state bits independently
    
    ixl_set_state() takes a bit index, not a bit mask.  ORing the
    reset request and critical error indices produced the global reset
    index, so a critical interrupt could mask its cause without scheduling
    the intended PF reset.
    
    Set both state bits explicitly.
    
    MFC after:      2 weeks
    Sponsored by:   BBOX.io
---
 sys/dev/ixl/ixl_pf_iflib.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/sys/dev/ixl/ixl_pf_iflib.c b/sys/dev/ixl/ixl_pf_iflib.c
index 90fc85198523..723b5b635220 100644
--- a/sys/dev/ixl/ixl_pf_iflib.c
+++ b/sys/dev/ixl/ixl_pf_iflib.c
@@ -201,8 +201,8 @@ ixl_msix_adminq(void *arg)
 	/* Checks against the conditions above */
 	if (reg & IXL_ICR0_CRIT_ERR_MASK) {
 		mask &= ~IXL_ICR0_CRIT_ERR_MASK;
-		ixl_set_state(&pf->state,
-		    IXL_STATE_PF_RESET_REQ | IXL_STATE_PF_CRIT_ERR);
+		ixl_set_state(&pf->state, IXL_STATE_PF_RESET_REQ);
+		ixl_set_state(&pf->state, IXL_STATE_PF_CRIT_ERR);
 		do_task = TRUE;
 	}