git: 107f080085ab - stable/15 - ixl: Set critical-error state bits independently

From: Kevin Bowling <kbowling_at_FreeBSD.org>
Date: Thu, 29 Oct 2026 04:59:55 UTC
The branch stable/15 has been updated by kbowling:

URL: https://cgit.FreeBSD.org/src/commit/?id=107f080085ab51af6873585b65ce2b058593af33

commit 107f080085ab51af6873585b65ce2b058593af33
Author:     Kevin Bowling <kbowling@FreeBSD.org>
AuthorDate: 2026-09-07 13:36:06 +0000
Commit:     Kevin Bowling <kbowling@FreeBSD.org>
CommitDate: 2026-10-29 04:59:45 +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.
    
    Sponsored by:   BBOX.io
    
    (cherry picked from commit 372803d65d242b308abd6b312a40ff6987fc3452)
---
 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 5660cadf22ab..2791ad769f67 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;
 	}