Download raw body.
fix wrong use of TAILQ pointers in qwx
On Sun, May 31, 2026 at 01:44:44PM +0800, Kevin Lo wrote:
> While looking at this, I noticed qwx_dp_rx_process_wbm_err() has a third
> spot with the same pattern that isn't covered by your diff.
Nice catch, thanks!
By the way, do you know if we already support any device which has
more than one radio? My QCNFA765 seems to only have one.
> Index: sys/dev/ic/qwx.c
> ===================================================================
> RCS file: /cvs/src/sys/dev/ic/qwx.c,v
> diff -u -p -u -p -r1.119 qwx.c
> --- sys/dev/ic/qwx.c 29 May 2026 09:52:10 -0000 1.119
> +++ sys/dev/ic/qwx.c 31 May 2026 05:31:13 -0000
> @@ -16811,8 +16811,8 @@ qwx_dp_rx_process_wbm_err(struct qwx_sof
>
> if (purge) {
> for (i = 0; i < sc->num_radios; i++) {
> - while ((msdu = TAILQ_FIRST(msdu_list))) {
> - TAILQ_REMOVE(msdu_list, msdu, entry);
> + while ((msdu = TAILQ_FIRST(&msdu_list[i]))) {
> + TAILQ_REMOVE(&msdu_list[i], msdu, entry);
> m_freem(msdu->m);
> msdu->m = NULL;
> }
> @@ -16831,8 +16831,8 @@ qwx_dp_rx_process_wbm_err(struct qwx_sof
> }
>
> for (i = 0; i < sc->num_radios; i++) {
> - while ((msdu = TAILQ_FIRST(msdu_list))) {
> - TAILQ_REMOVE(msdu_list, msdu, entry);
> + while ((msdu = TAILQ_FIRST(&msdu_list[i]))) {
> + TAILQ_REMOVE(&msdu_list[i], msdu, entry);
> if (test_bit(ATH11K_CAC_RUNNING, sc->sc_flags)) {
> m_freem(msdu->m);
> msdu->m = NULL;
> @@ -17633,7 +17633,7 @@ try_again:
>
> if (purge) {
> while ((msdu = TAILQ_FIRST(&msdu_list[i]))) {
> - TAILQ_REMOVE(msdu_list, msdu, entry);
> + TAILQ_REMOVE(&msdu_list[i], msdu, entry);
> m_freem(msdu->m);
> msdu->m = NULL;
> }
>
>
fix wrong use of TAILQ pointers in qwx