[Bug 274382] iwlwifi Invalid TXQ id

From: <bugzilla-noreply_at_freebsd.org>
Date: Fri, 14 Jun 2024 18:43:21 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=274382

--- Comment #80 from commit-hook@FreeBSD.org ---
A commit in branch stable/13 references this bug:

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

commit 07da0ad63aa52999c0a381440104122a770decb5
Author:     Bjoern A. Zeeb <bz@FreeBSD.org>
AuthorDate: 2024-06-05 22:54:36 +0000
Commit:     Bjoern A. Zeeb <bz@FreeBSD.org>
CommitDate: 2024-06-14 14:55:16 +0000

    LinuxKPI: 802.11: make sure we can send DISASSOC or DEAUTH frames

    The "Invalid TXQ" error from iwlwifi seems to be triggered by a
    frame being sent for a sta which is no longer known to the driver/fw.

    While we make sure to trigger the sending of the frame in net80211
    early enough (by calling (*iv_newstate)() early on rather than at
    the end), TX in LinuxKPI is run in a deferred task.  When we drop the
    net80211 ic lock again and re-acquire the LHW lock the packet may not
    yet have made it to the driver.
    Work around this between the (ic and lhw) locks by making sure
    (a) no new packets get queued after we return from (*iv_newstate)(),
    and (b) the TX task has run or gets cancelled and we manually push
    any remaining packets out (or let lsta_free() clean them up).
    The disabled packet queuing now also needs to be re-enabled in
    scan_to_auth() in case an lsta is staying in service or gets re-used.

    Also make sure that any following lkpi_wake_tx_queues() calls no
    longer ignore queues which have not seen a prior dequeue.
    This former workaround "feature" (ltxq->seen_dequeue) should be
    fully garbage collected in a later change on its own.

    Sponsored by:   The FreeBSD Foundation
    PR:             274382
    Tested by:      emaste, lwhsu, thj, rkoberman at gmail.com
    Accepted by:    adrian
    Differential Revision: https://reviews.freebsd.org/D45508

    (cherry picked from commit 886653492945f7e945eb9bdaf5bc2ae26df96236)

 sys/compat/linuxkpi/common/src/linux_80211.c | 95 +++++++++++++++++++++++++---
 1 file changed, 86 insertions(+), 9 deletions(-)

-- 
You are receiving this mail because:
You are on the CC list for the bug.