The branch stable/14 has been updated by np:

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

commit b9f7a09c490f4eb6b9c179d1dfd756e236494998
Author:     Navdeep Parhar <n...@freebsd.org>
AuthorDate: 2024-09-24 23:28:29 +0000
Commit:     Navdeep Parhar <n...@freebsd.org>
CommitDate: 2024-10-21 17:14:39 +0000

    cxgbe(4): Clobber all tracer state on stop and redo only traceq on restart.
    
    Tracers have to be recreated after a restart but that's okay given that
    they are used for debugging only.
    
    Sponsored by:   Chelsio Communications
    
    (cherry picked from commit ee3da604dd016439850dae77366796313e60f0e0)
---
 sys/dev/cxgbe/t4_main.c | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/sys/dev/cxgbe/t4_main.c b/sys/dev/cxgbe/t4_main.c
index 3223d32b5d36..e33e732a7fa2 100644
--- a/sys/dev/cxgbe/t4_main.c
+++ b/sys/dev/cxgbe/t4_main.c
@@ -2095,6 +2095,8 @@ stop_lld(struct adapter *sc)
                if (pi->flags & HAS_TRACEQ) {
                        pi->flags &= ~HAS_TRACEQ;
                        sc->traceq = -1;
+                       sc->tracer_valid = 0;
+                       sc->tracer_enabled = 0;
                }
        }
        if (sc->flags & FULL_INIT_DONE) {
@@ -2411,6 +2413,15 @@ restart_lld(struct adapter *sc)
                                            "interface: %d\n", rc);
                                        goto done;
                                }
+                               if (sc->traceq < 0 && IS_MAIN_VI(vi)) {
+                                       sc->traceq = 
sc->sge.rxq[vi->first_rxq].iq.abs_id;
+                                       t4_write_reg(sc, is_t4(sc) ?
+                                           A_MPS_TRC_RSS_CONTROL :
+                                           A_MPS_T5_TRC_RSS_CONTROL,
+                                           V_RSSCONTROL(pi->tx_chan) |
+                                           V_QUEUENUMBER(sc->traceq));
+                                       pi->flags |= HAS_TRACEQ;
+                               }
 
                                ifp = vi->ifp;
                                if (!(if_getdrvflags(ifp) & IFF_DRV_RUNNING))

Reply via email to