From: Jeff Johnson <jeff.johnson@oss.qualcomm.com>
To: Miaoqing Pan <miaoqing.pan@oss.qualcomm.com>, jjohnson@kernel.org
Cc: ath12k@lists.infradead.org, linux-wireless@vger.kernel.org,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH ath-next] wifi: ath12k: fix MLO 4-way handshake timeout on QCC2072
Date: Thu, 24 Sep 2026 11:05:28 -0700 [thread overview]
Message-ID: <c6611810-07fa-41c6-af3d-486891444dff@oss.qualcomm.com> (raw)
In-Reply-To: <20260815014329.3748059-1-miaoqing.pan@oss.qualcomm.com>
On 8/14/2026 6:43 PM, Miaoqing Pan wrote:
> In MLO connections, ath12k_wifi7_dp_rx_set_link_id_wcn7850() attempts
> to resolve the IEEE 802.11 link ID for received frames by matching
> rxcb->peer_id against the link_peer->peer_id entries in
> dp_peer->link_peers[].
>
> This fails for EAPOL frames because the firmware delivers them via
> the MLD peer path. In this case, rxcb->peer_id contains an MLD peer
> ID while link_peer->peer_id contains a link peer ID. The mismatch
> prevents status->link_valid from being set.
>
> When mac80211 receives a data frame with link_valid=0 for an MLO
> station, it calls link_sta_info_get_bss() with hdr->addr2 to resolve
> the link ID. If hdr->addr2 contains the AP MLD address rather than a
> link address, the lookup fails because link_sta_info_get_bss()
> indexes by link address, and the frame is dropped in
> __ieee80211_rx_handle_packet(). This is observed on QCC2072 where
> EAPOL M3 uses the MLD address,
>
> deauthenticated (Reason: 15=4WAY_HANDSHAKE_TIMEOUT)
>
> Fix this by resolving the link peer using the current operating
> frequency associated with each link peer.
>
> For 6 GHz links, the received frequency corresponds to the operating
> center frequency, while for other bands it corresponds to the primary
> channel frequency. Match the received frame against associated links
> using the appropriate frequency for each band.
>
> The frequency-based lookup is used only when exactly one associated
> link matches the received frequency. If multiple links share the same
> frequency, the match becomes ambiguous and no link ID is assigned. In
> that case, leave status->link_valid unset and let mac80211 fall back
> to its own link resolution logic.
>
> Tested-on: QCC2072 hw1.0 PCI WLAN.COL.1.0.c2-00228-QCACOLSWPL_V1_TO_SILICON-1
> Tested-on: WCN7850 hw2.0 PCI WLAN.HMT.1.1.c7-00108-QCAHMTSWPL_V1.0_V2.0_SILICONZ_UPSTREAM-3
>
> Fixes: a2fe9dc70f3b ("wifi: ath12k: Fix low MLO RX throughput on WCN7850")
> Signed-off-by: Miaoqing Pan <miaoqing.pan@oss.qualcomm.com>
> ---
FYI this no longer applies to ath/main, can you please rebase?
Applying: wifi: ath12k: fix MLO 4-way handshake timeout on QCC2072
Using index info to reconstruct a base tree...
M drivers/net/wireless/ath/ath12k/wifi7/dp_rx.c
Falling back to patching base and 3-way merge...
Auto-merging drivers/net/wireless/ath/ath12k/wifi7/dp_rx.c
CONFLICT (content): Merge conflict in drivers/net/wireless/ath/ath12k/wifi7/dp_rx.c
prev parent reply other threads:[~2026-09-24 18:05 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-08-15 1:43 Miaoqing Pan
2026-09-24 18:05 ` Jeff Johnson [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=c6611810-07fa-41c6-af3d-486891444dff@oss.qualcomm.com \
--to=jeff.johnson@oss.qualcomm.com \
--cc=ath12k@lists.infradead.org \
--cc=jjohnson@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-wireless@vger.kernel.org \
--cc=miaoqing.pan@oss.qualcomm.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®