Skip to content

FROMLIST: wifi: ath12k: support firmware-allocated MLD peer ID#827

Open
GaoleZhangHaha wants to merge 8 commits into
qualcomm-linux:qcom-6.18.yfrom
GaoleZhangHaha:qcom-6.18.y
Open

FROMLIST: wifi: ath12k: support firmware-allocated MLD peer ID#827
GaoleZhangHaha wants to merge 8 commits into
qualcomm-linux:qcom-6.18.yfrom
GaoleZhangHaha:qcom-6.18.y

Conversation

@GaoleZhangHaha

Copy link
Copy Markdown

ath12k currently assumes the host allocates the MLD peer ID and passes
it down to firmware via WMI_PEER_ASSOC_CMDID. This works on QCN9274
but breaks WCN7850/QCC2072, whose firmware always picks the ID itself
and reports it back through HTT_T2H_MSG_TYPE_MLO_RX_PEER_MAP. As a
result dp_hw->dp_peers[] is never populated for MLO peers and the data
path lookup fails. On QCC2072 the firmware additionally crashes on MLO
disconnect when ATH12K_WMI_FLAG_MLO_PEER_ID_VALID was set in the peer
assoc command.

Add a host_alloc_ml_id hw_param to branch behavior, defer the
dp_peers[] publish to the HTT event for firmware-allocated chips, and
propagate the firmware-assigned ID through the existing host
bookkeeping when it arrives.

Patch summary:

1: fix for an out-of-bounds clear_bit() in ath12k_mac_dp_peer_cleanup().
2: group peer assoc send-and-wait into a helper
3: refactor, keep ATH12K_PEER_ML_ID_VALID set in ahsta->ml_peer_id
so later patches do not have to OR or mask it at every call site;
4: parse the HTT_T2H_MSG_TYPE_MLO_RX_PEER_MAP message;
5: introduce hw_param host_alloc_ml_id, set true on QCN9274 family
and false on WCN7850/QCC2072;
6: on host_alloc_ml_id == false, leave peer_id_valid unset and send
ml_peer_id == 0 in WMI_PEER_ASSOC_CMDID;
7: on host_alloc_ml_id == false, mark ahsta->ml_peer_id and
dp_peer->peer_id as ATH12K_MLO_PEER_ID_PENDING and skip the
dp_hw->dp_peers[] publish until the firmware reports the ID;
8: in the MLO_RX_PEER_MAP handler, propagate the firmware-assigned
ID into dp_peer->peer_id, every dp_link_peer in
dp_peer->link_peers[], and ahsta->ml_peer_id, all under
dp_hw->peer_lock.

Tested-on: WCN7850 hw2.0 PCI WLAN.HMT.1.1.c5-00302-QCAHMTSWPL_V1.0_V2.0_SILICONZ-1.115823.3

Link: https://lore.kernel.org/linux-wireless/20260713-ath12k-fw-allocated-ml-peer-id-v1-0-d0a2a1a519eb@oss.qualcomm.com/

CRs-Fixed: 4459878

Baochen Qiang added 8 commits July 14, 2026 00:00
…peer_cleanup()

ath12k_mac_dp_peer_cleanup() clears the ML peer ID slot on the
free_ml_peer_id_map bitmap by indexing it with dp_peer->peer_id. That is
wrong: dp_peer->peer_id for an MLO peer always carries the
ATH12K_PEER_ML_ID_VALID bit (BIT(13)), so clear_bit() is invoked with
index >= 0x2000, which is far outside the bitmap of ATH12K_MAX_MLO_PEERS
(256) bits and corrupts memory adjacent to ah->free_ml_peer_id_map. The
intended bitmap entry also never gets cleared, so subsequent
ath12k_peer_ml_alloc() calls eventually run out of IDs.

The ID without the VALID bit is what ath12k_peer_ml_alloc() returned and
is stored in ahsta->ml_peer_id. Use that instead.

While there, also reset ahsta->ml_peer_id to ATH12K_MLO_PEER_ID_INVALID so
the bitmap and ahsta->ml_peer_id stay in sync;

Tested-on: WCN7850 hw2.0 PCI WLAN.HMT.1.1.c5-00302-QCAHMTSWPL_V1.0_V2.0_SILICONZ-1.115823.3

Fixes: ee16dcf ("wifi: ath12k: Define ath12k_dp_peer structure & APIs for create & delete")
Link: https://lore.kernel.org/linux-wireless/20260713-ath12k-fw-allocated-ml-peer-id-v1-1-d0a2a1a519eb@oss.qualcomm.com/
Signed-off-by: Baochen Qiang <baochen.qiang@oss.qualcomm.com>
Signed-off-by: Gaole Zhang <gaole.zhang@oss.qualcomm.com>
…lper

ath12k_bss_assoc(), ath12k_mac_station_assoc() and
ath12k_sta_rc_update_wk() all open-code the same sequence: reinit the
peer_assoc_done completion, send the peer assoc WMI command, then wait
for the firmware confirmation event. The reinit_completion() was buried
in ath12k_peer_assoc_prepare(), far from the wait_for_completion_timeout()
that consumes it, making the reinit/send/wait sequence hard to follow,
and the three open-coded copies are easy to get out of sync.

Move the sequence into a new helper ath12k_mac_peer_assoc() and call it
from all three sites. The reinit, send and wait now live together so the
completion's lifecycle is easy to read.

While at it, ath12k_sta_rc_update_wk() previously warned but still
waited the full timeout when the peer assoc command failed to send. Now
a send failure returns immediately and skips the pointless 1 second
wait, matching the other two callers.

Tested-on: WCN7850 hw2.0 PCI WLAN.HMT.1.1.c5-00302-QCAHMTSWPL_V1.0_V2.0_SILICONZ-1.115823.3

Link: https://lore.kernel.org/linux-wireless/20260713-ath12k-fw-allocated-ml-peer-id-v1-2-d0a2a1a519eb@oss.qualcomm.com/
Signed-off-by: Baochen Qiang <baochen.qiang@oss.qualcomm.com>
Signed-off-by: Gaole Zhang <gaole.zhang@oss.qualcomm.com>
…a::ml_peer_id

Several pieces of host bookkeeping for MLD peer IDs encode the
same fact in different ways:

  - ath12k_sta::ml_peer_id stores the raw ID in [0, ATH12K_MAX_MLO_PEERS);
  - ath12k_dp_peer::peer_id, ath12k_dp_link_peer::ml_id and the index used
    on ath12k_dp_hw::dp_peers[] always carry the ATH12K_PEER_ML_ID_VALID
    bit (BIT(13)) when the ID is real;
  - WMI_MLO_PEER_ASSOC_PARAMS::ml_peer_id sent down to firmware is
    raw, without the bookkeeping bit.

The mismatch leaks into call sites that have to remember to OR
the bit in (ath12k_peer_create(), ath12k_mac_op_sta_state()) or
remember not to (ath12k_peer_assoc_h_mlo()).

Make ath12k_sta::ml_peer_id carry the VALID bit when valid, the same
way ath12k_dp_peer::peer_id and ath12k_dp_link_peer::ml_id do:

  - ath12k_peer_ml_alloc() OR-s the bit in once on the way out;
    the internal bitmap stays raw [0, ATH12K_MAX_MLO_PEERS);
  - ath12k_peer_create() and ath12k_mac_op_sta_state() drop the
    explicit OR;
  - ath12k_peer_assoc_h_mlo() masks the bit off when populating
    the WMI ml_peer_id;

While there, introduce ath12k_peer_ml_free() to mirror
ath12k_peer_ml_alloc(), which helps avoid code duplication.

Tested-on: WCN7850 hw2.0 PCI WLAN.HMT.1.1.c5-00302-QCAHMTSWPL_V1.0_V2.0_SILICONZ-1.115823.3

Link: https://lore.kernel.org/linux-wireless/20260713-ath12k-fw-allocated-ml-peer-id-v1-3-d0a2a1a519eb@oss.qualcomm.com/
Signed-off-by: Baochen Qiang <baochen.qiang@oss.qualcomm.com>
Signed-off-by: Gaole Zhang <gaole.zhang@oss.qualcomm.com>
Firmware on chips that allocate the MLD peer ID itself (WCN7850 and
QCC2072) reports the assignment back to the host through
HTT_T2H_MSG_TYPE_MLO_RX_PEER_MAP. The message carries the chosen
MLD peer id, the MLD MAC address etc.

Add the message type, the on-the-wire struct, the field masks and a
handler that parses them out. The host-side state update (publishing the
dp peer into ath12k_dp_hw::dp_peers[], propagating the ID to
ath12k_dp_link_peer::ml_id and ath12k_sta::ml_peer_id) is added in a
follow-up patch;

Tested-on: WCN7850 hw2.0 PCI WLAN.HMT.1.1.c5-00302-QCAHMTSWPL_V1.0_V2.0_SILICONZ-1.115823.3

Link: https://lore.kernel.org/linux-wireless/20260713-ath12k-fw-allocated-ml-peer-id-v1-4-d0a2a1a519eb@oss.qualcomm.com/
Signed-off-by: Baochen Qiang <baochen.qiang@oss.qualcomm.com>
Signed-off-by: Gaole Zhang <gaole.zhang@oss.qualcomm.com>
Different ath12k devices diverge on who allocates MLD peer id:
WCN7850/QCC2072 have the firmware allocate it and notify the host via
HTT_T2H_MSG_TYPE_MLO_RX_PEER_MAP event; While others let the host allocate
it and pass it down through WMI_PEER_ASSOC_CMDID with
ATH12K_WMI_FLAG_MLO_PEER_ID_VALID set.

Currently ath12k host allocates this ID and sends it to firmware by
default for all devices. This breaks WCN7850/QCC2072, because the host
maintained ID may be different from the firmware-allocated one.
Consequently data path may fail to find the dp peer and drop some received
packets. From user point of view, this results in bugs reported in [1] or
the 4-way handshake timeout issue.

Add host_alloc_ml_id flag to struct ath12k_hw_params (and a copy on struct
ath12k_hw for hot-path access) so subsequent patches can branch on it. Set
true for QCN9274/IPQ5332, false for WCN7850/QCC2072. The flag will
be consumed by subsequent patches.

Tested-on: WCN7850 hw2.0 PCI WLAN.HMT.1.1.c5-00302-QCAHMTSWPL_V1.0_V2.0_SILICONZ-1.115823.3

Link: https://bugzilla.kernel.org/show_bug.cgi?id=221039 # 1
Link: https://lore.kernel.org/linux-wireless/20260713-ath12k-fw-allocated-ml-peer-id-v1-5-d0a2a1a519eb@oss.qualcomm.com/
Signed-off-by: Baochen Qiang <baochen.qiang@oss.qualcomm.com>
Signed-off-by: Gaole Zhang <gaole.zhang@oss.qualcomm.com>
…ocate devices

ath12k_peer_assoc_h_mlo() unconditionally sets ml->peer_id_valid and copies
ahsta->ml_peer_id (with the ATH12K_PEER_ML_ID_VALID bookkeeping bit masked
off) into the WMI_PEER_ASSOC_CMDID ML params, which causes
ath12k_wmi_send_peer_assoc_cmd() to set ATH12K_WMI_FLAG_MLO_PEER_ID_VALID.
This needs to be gated on chips where the firmware allocates the MLD peer
ID:

  - WCN7850/QCC2072 firmware always picks the ID itself and does not honor
    a host-supplied one, so the value would be silently ignored anyway;
  - QCC2072 firmware additionally crashes during MLO disconnect when
    ATH12K_WMI_FLAG_MLO_PEER_ID_VALID was set in the preceding peer assoc,
    so the bit must not be sent at all.

Branch on ah->host_alloc_ml_id:

  - When true (QCN9274 etc.), behavior is unchanged: peer_id_valid is set
    and the raw ahsta->ml_peer_id (without the VALID bit) is sent down.
  - When false (WCN7850, QCC2072), peer_id_valid stays unset and
    ml_peer_id is sent as 0. The firmware ignores both fields and reports
    the ID it allocated through HTT_T2H_MSG_TYPE_MLO_RX_PEER_MAP.

The early-return on ahsta->ml_peer_id == ATH12K_MLO_PEER_ID_INVALID only
applies on the host-alloc path, since on the firmware-alloc path the value
is ATH12K_MLO_PEER_ID_PENDING here, not INVALID.

Tested-on: WCN7850 hw2.0 PCI WLAN.HMT.1.1.c5-00302-QCAHMTSWPL_V1.0_V2.0_SILICONZ-1.115823.3

Link: https://lore.kernel.org/linux-wireless/20260713-ath12k-fw-allocated-ml-peer-id-v1-6-d0a2a1a519eb@oss.qualcomm.com/
Signed-off-by: Baochen Qiang <baochen.qiang@oss.qualcomm.com>
Signed-off-by: Gaole Zhang <gaole.zhang@oss.qualcomm.com>
…cates MLD peer ID

For chips with host_alloc_ml_id=true (QCN9274 etc.), the host allocates
the MLD peer ID up front; ath12k_dp_peer_create() publishes the dp_peer
into dp_hw->dp_peers[] using that ID immediately. WCN7850/QCC2072 does
not work that way: the firmware picks the ID and only tells the host
afterwards via HTT_T2H_MSG_TYPE_MLO_RX_PEER_MAP, so the publication has
to be delayed until the event arrives.

Introduce ATH12K_MLO_PEER_ID_PENDING (0xFFFE) as a sentinel for "is_mlo,
but ID not yet known". On the firmware-allocates path:

  - ath12k_mac_op_sta_state(NOTEXIST->NONE) skips ath12k_peer_ml_alloc()
    and stores PENDING in ahsta->ml_peer_id and dp_params.peer_id;
  - ath12k_dp_peer_create() skips dp_peer registration until a real ID is
    known;
  - ath12k_peer_create() leaves peer->ml_id at INVALID so consumer sites
    do not treat PENDING as a real ID;
  - ath12k_peer_ml_free() and ath12k_mac_dp_peer_cleanup() skip the
    dp_peers[] write and the free_ml_peer_id_map clear when
    host_alloc_ml_id is false or the ID is still PENDING.

The HTT handler change that resolves the PENDING ID is added in a
follow-up patch.

Tested-on: WCN7850 hw2.0 PCI WLAN.HMT.1.1.c5-00302-QCAHMTSWPL_V1.0_V2.0_SILICONZ-1.115823.3

Link: https://lore.kernel.org/linux-wireless/20260713-ath12k-fw-allocated-ml-peer-id-v1-7-d0a2a1a519eb@oss.qualcomm.com/
Signed-off-by: Baochen Qiang <baochen.qiang@oss.qualcomm.com>
Signed-off-by: Gaole Zhang <gaole.zhang@oss.qualcomm.com>
…HTT event

Add ath12k_dp_peer_fixup_peer_id() and call it from the
HTT_T2H_MSG_TYPE_MLO_RX_PEER_MAP handler. For devices where the
firmware allocates the MLD peer ID, this is the point at which
all data structures that were left with ATH12K_MLO_PEER_ID_PENDING
or ATH12K_MLO_PEER_ID_INVALID get their real ID:

  - dp_peer->peer_id is updated and the dp_peer is published into
    dp_hw->dp_peers[];
  - every existing dp_link_peer in dp_peer->link_peers[] gets its
    ml_id set to the same value;
  - ahsta->ml_peer_id is updated to the same value so peer_assoc,
    sta_state and cleanup paths see a consistent ID.

Devices with host_alloc_ml_id == true also receive the same HTT
event, but the firmware-reported ID always matches the
host-allocated one and everything has already been populated by
ath12k_dp_peer_create(); Skips the helper entirely on those devices.

Tested-on: WCN7850 hw2.0 PCI WLAN.HMT.1.1.c5-00302-QCAHMTSWPL_V1.0_V2.0_SILICONZ-1.115823.3

Closes: https://bugzilla.kernel.org/show_bug.cgi?id=221039
Link: https://lore.kernel.org/linux-wireless/20260713-ath12k-fw-allocated-ml-peer-id-v1-8-d0a2a1a519eb@oss.qualcomm.com/
Signed-off-by: Baochen Qiang <baochen.qiang@oss.qualcomm.com>
Signed-off-by: Gaole Zhang <gaole.zhang@oss.qualcomm.com>
@qswat-orbit-external

Copy link
Copy Markdown

Merge Check Failed: No Change Task Found

No associated change tasks found for CR 4459878 on any of the following entities:

Entities:

  • kernel.qli.2.0

CR: 4459878

Please ensure the CR has a change task associated with at least one of the entities for this branch.

@qlijarvis

Copy link
Copy Markdown

PR #827 — validate-patch

PR: #827

Verdict Issues Detailed Report
⚠️ 0 Full report

Final Summary

  1. Lore link present: Yes — all 8 commits have valid lore.kernel.org links to the patch series posted July 13, 2026
  2. Lore link matches PR commits: Cannot verify — network access restricted; unable to fetch lore patches for diff comparison
  3. Upstream patch status: ⏳ Decision Pending — posted today (July 13, 2026); too recent for maintainer decision; cannot fetch thread to check for early feedback
  4. PR present in qcom-next: No — patches posted today; not yet in qcom-next (expected for fresh FROMLIST patches)
Verdict: ⚠️ — click to expand

🔍 Patch Validation

PR: #827 - wifi: ath12k: fix firmware-allocated ML peer ID handling (8 commits)
Upstream commit: https://lore.kernel.org/linux-wireless/20260713-ath12k-fw-allocated-ml-peer-id-v1-0-d0a2a1a519eb@oss.qualcomm.com/ (series)
Verdict: ⚠️ PARTIAL — Cannot verify diff faithfulness (network restricted); commit message structure is correct


Summary

This PR contains 8 commits from a patch series posted to linux-wireless on July 13, 2026. All commits use the FROMLIST: prefix, have proper lore.kernel.org links, and follow kernel commit message conventions. However, full validation cannot be completed because:

  1. Network access is restricted — cannot fetch lore patches via b4/curl to compare diffs
  2. Commits are very recent (posted July 13, 2026) — not yet in qcom-next or mainline

Per-Commit Analysis

Commit 1/8: fix out-of-bounds clear_bit in ath12k_mac_dp_peer_cleanup()

Check Status Note
FROMLIST prefix Correct
Lore link present https://lore.kernel.org/linux-wireless/20260713-ath12k-fw-allocated-ml-peer-id-v1-1-d0a2a1a519eb@oss.qualcomm.com/
Author Baochen Qiang baochen.qiang@oss.qualcomm.com
Original author in Signed-off-by Present as first SOB
Submitter SOB Gaole Zhang added as second SOB (correct for FROMLIST)
Fixes tag Present: Fixes: ee16dcf573d5
Tested-on WCN7850 hw2.0
Link before SOB Correct trailer order

Authorship note for FROMLIST: The From: field shows Baochen Qiang (original author), and both Baochen's and Gaole Zhang's (submitter) Signed-off-by lines are present. This is correct for FROMLIST commits — the submitter (Gaole) cherry-picked the patch and added their SOB.


Commit 2/8: factor out peer assoc send-and-wait into a helper

Check Status Note
FROMLIST prefix Correct
Lore link present https://lore.kernel.org/linux-wireless/20260713-ath12k-fw-allocated-ml-peer-id-v1-2-d0a2a1a519eb@oss.qualcomm.com/
Author Baochen Qiang
Signed-off-by chain Baochen → Gaole
Fixes tag N/A Not a fix, refactoring
Link before SOB Correct

Commit 3/8: keep ATH12K_PEER_ML_ID_VALID set in ath12k_sta::ml_peer_id

Check Status Note
FROMLIST prefix Correct
Lore link present https://lore.kernel.org/linux-wireless/20260713-ath12k-fw-allocated-ml-peer-id-v1-3-d0a2a1a519eb@oss.qualcomm.com/
Author Baochen Qiang
Signed-off-by chain Baochen → Gaole
Link before SOB Correct

Commit 4/8: add support for HTT_T2H_MSG_TYPE_MLO_RX_PEER_MAP

Check Status Note
FROMLIST prefix Correct
Lore link present https://lore.kernel.org/linux-wireless/20260713-ath12k-fw-allocated-ml-peer-id-v1-4-d0a2a1a519eb@oss.qualcomm.com/
Author Baochen Qiang
Signed-off-by chain Baochen → Gaole
Link before SOB Correct

Commit 5/8: introduce host_alloc_ml_id hardware parameter

Check Status Note
FROMLIST prefix Correct
Lore link present https://lore.kernel.org/linux-wireless/20260713-ath12k-fw-allocated-ml-peer-id-v1-5-d0a2a1a519eb@oss.qualcomm.com/
Author Baochen Qiang
Signed-off-by chain Baochen → Gaole
Extra Link Bugzilla reference: https://bugzilla.kernel.org/show_bug.cgi?id=221039 (correctly placed before lore link)
Link before SOB Correct

Commit 6/8: do not advertise MLD peer ID for firmware-allocate devices

Check Status Note
FROMLIST prefix Correct
Lore link present https://lore.kernel.org/linux-wireless/20260713-ath12k-fw-allocated-ml-peer-id-v1-6-d0a2a1a519eb@oss.qualcomm.com/
Author Baochen Qiang
Signed-off-by chain Baochen → Gaole
Link before SOB Correct

Commit 7/8: defer dp_peer registration when firmware allocates MLD peer ID

Check Status Note
FROMLIST prefix Correct
Lore link present https://lore.kernel.org/linux-wireless/20260713-ath12k-fw-allocated-ml-peer-id-v1-7-d0a2a1a519eb@oss.qualcomm.com/
Author Baochen Qiang
Signed-off-by chain Baochen → Gaole
Link before SOB Correct

Commit 8/8: resolve PENDING ML peer ID from MLO_PEER_MAP HTT event

Check Status Note
FROMLIST prefix Correct
Lore link present https://lore.kernel.org/linux-wireless/20260713-ath12k-fw-allocated-ml-peer-id-v1-8-d0a2a1a519eb@oss.qualcomm.com/
Author Baochen Qiang
Signed-off-by chain Baochen → Gaole
Link before SOB Correct

Commit Message Quality

All 8 commits follow kernel commit message conventions:

Subject lines: Concise, imperative mood, subsystem prefix (wifi: ath12k:)
Body: Clear problem description, rationale, and solution
Tested-on: Present in all commits (WCN7850 hw2.0)
Fixes tag: Present where applicable (commit 1)
Link placement: All lore links correctly placed before Signed-off-by
Signed-off-by chain: Original author (Baochen) → Submitter (Gaole) — correct for FROMLIST
FROMLIST authorship: From: field preserves original author; submitter added SOB — correct per kernel conventions


Diff Comparison

File Status Notes
drivers/net/wireless/ath/ath12k/mac.c ⏭️ Skipped Cannot fetch lore patch (network restricted)
drivers/net/wireless/ath/ath12k/core.h ⏭️ Skipped Cannot fetch lore patch (network restricted)
drivers/net/wireless/ath/ath12k/hw.h ⏭️ Skipped Cannot fetch lore patch (network restricted)
drivers/net/wireless/ath/ath12k/wifi7/hw.c ⏭️ Skipped Cannot fetch lore patch (network restricted)
drivers/net/wireless/ath/ath12k/dp_rx.c ⏭️ Skipped Cannot fetch lore patch (network restricted)
drivers/net/wireless/ath/ath12k/dp.h ⏭️ Skipped Cannot fetch lore patch (network restricted)

Note: Diff faithfulness cannot be verified without network access to lore.kernel.org.


Upstream Patch Status

Series: https://lore.kernel.org/linux-wireless/20260713-ath12k-fw-allocated-ml-peer-id-v1-0-d0a2a1a519eb@oss.qualcomm.com/

Commit Community Verdict
All 8 commits Decision Pending — Posted July 13, 2026 (today); too recent to have maintainer decision. Cannot fetch thread (network restricted).

Recommendation: Check lore thread in 1-2 weeks for maintainer feedback (Reviewed-by, Acked-by, or applied confirmation).


qcom-next Presence

Searched /local/mnt/workspace/sgaud/Qgenie/image_pipeline/kernel (pre-mounted qualcomm-linux/kernel repo):

Commit Status
1/8: fix out-of-bounds clear_bit ⚠️ Not in qcom-next
2/8: factor out peer assoc ⚠️ Not in qcom-next
3/8: keep ATH12K_PEER_ML_ID_VALID ⚠️ Not in qcom-next
4/8: add HTT_T2H_MSG_TYPE_MLO_RX_PEER_MAP ⚠️ Not in qcom-next
5/8: introduce host_alloc_ml_id ⚠️ Not in qcom-next
6/8: do not advertise MLD peer ID ⚠️ Not in qcom-next
7/8: defer dp_peer registration ⚠️ Not in qcom-next
8/8: resolve PENDING ML peer ID ⚠️ Not in qcom-next

Reason: Patches posted July 13, 2026 (today) — too recent to have landed in qcom-next.


Issues Found

None — All commit messages follow kernel conventions correctly.

Key observations:

  1. FROMLIST authorship is correct: The From: field preserves the original author (Baochen Qiang), and the submitter (Gaole Zhang) added their Signed-off-by. This is the correct pattern for FROMLIST commits per kernel conventions — the submitter is not required to match the original author.

  2. Trailer order is correct: All commits place Link: before Signed-off-by:, which is the standard kernel convention.

  3. Series structure: This is a cohesive 8-patch series addressing firmware-allocated ML peer ID handling for WCN7850/QCC2072 devices.


Verdict

⚠️ PARTIAL — Commit message structure and metadata are correct, but diff faithfulness cannot be verified due to network restrictions.

What was verified:

  • ✅ All 8 commits have FROMLIST prefix and lore links
  • ✅ Commit message structure follows kernel conventions
  • ✅ Authorship and Signed-off-by chains are correct for FROMLIST
  • ✅ Trailer order (Link before SOB) is correct
  • ✅ Fixes tag present where applicable
  • ✅ Tested-on tags present

What could not be verified:

  • ⏭️ Diff content faithfulness to lore patches (network access required)
  • ⏭️ Upstream acceptance status (network access required)

Recommendation:

Merge conditionally — The commit message structure is correct and follows kernel conventions. However, before merging:

  1. Verify diff faithfulness: When network access is available, fetch the lore patches and compare diffs using b4 am + interdiff to ensure no unintended changes.

  2. Monitor upstream status: Check the lore thread in 1-2 weeks for maintainer feedback. If the series is NACKed or requires changes, this PR should be updated or closed.

  3. Consider waiting for upstream acceptance: Since these are FROMLIST patches (not yet merged upstream), consider waiting for maintainer Acked-by or applied confirmation before merging to qcom-next to avoid divergence.


Final Summary

  1. Lore link present: Yes — all 8 commits have valid lore.kernel.org links to the patch series posted July 13, 2026
  2. Lore link matches PR commits: Cannot verify — network access restricted; unable to fetch lore patches for diff comparison
  3. Upstream patch status: ⏳ Decision Pending — posted today (July 13, 2026); too recent for maintainer decision; cannot fetch thread to check for early feedback
  4. PR present in qcom-next: No — patches posted today; not yet in qcom-next (expected for fresh FROMLIST patches)

@qlijarvis

Copy link
Copy Markdown

PR #827 — checker-log-analyzer

PR: #827
Checker run: https://github.com/qualcomm-linux/kernel-config/actions/runs/29328924644

Checker Result Summary
Checker Result Summary
checkpatch ⚠️ 8 warnings (7× long Tested-on: line, 1× unknown commit ID)
dt-binding-check ⏭️ Skipped - no DT binding changes
dtb-check ⏭️ Skipped - no devicetree changes
sparse-check Passed
check-uapi-headers Passed - no UAPI changes
check-patch-compliance 1 commit: b4 fetch failed for bugzilla link
tag-check All commits have FROMLIST: prefix

Detailed report: Full report

Checker analysis — click to expand

🤖 CI Checker Analysis (checker-log-analyzer)

PR: #827 - wifi: ath12k firmware-allocated MLD peer ID support (8 commits)
Source: https://github.com/qualcomm-linux/kernel-config/actions/runs/29328924644
Target branch: qcom-6.18.y

Checker Result Summary
checkpatch ⚠️ 8 warnings (7× long Tested-on: line, 1× unknown commit ID)
dt-binding-check ⏭️ Skipped - no DT binding changes
dtb-check ⏭️ Skipped - no devicetree changes
sparse-check Passed
check-uapi-headers Passed - no UAPI changes
check-patch-compliance 1 commit: b4 fetch failed for bugzilla link
tag-check All commits have FROMLIST: prefix

⚠️ checkpatch

Root cause: All 8 commits contain a Tested-on: trailer line that exceeds 75 characters, and commit 1 references an unknown commit ID in its Fixes: tag.

Failure details:

WARNING: Prefer a maximum 75 chars per line (possible unwrapped commit description?)
#22: 
Tested-on: WCN7850 hw2.0 PCI WLAN.HMT.1.1.c5-00302-QCAHMTSWPL_V1.0_V2.0_SILICONZ-1.115823.3

WARNING: Unknown commit id 'ee16dcf573d5', maybe rebased or not pulled?
#24: 
Fixes: ee16dcf573d5 ("wifi: ath12k: Define ath12k_dp_peer structure & APIs for create & delete")

Analysis:

  1. Long Tested-on: line (7 commits): The Tested-on: trailer is 91 characters long. Checkpatch prefers commit body lines ≤ 75 chars. However, this is a false positiveTested-on: is a structured metadata trailer (like Link:, Signed-off-by:, etc.) and wrapping it would break tooling that parses these tags. The kernel community accepts long trailer lines.

  2. Unknown commit ID (commit 1): The Fixes: tag references ee16dcf573d5, which is not present in the qcom-6.18.y branch at the time of the check. This commit likely exists in a newer upstream tree or a different topic branch. Checkpatch cannot verify it, hence the warning. This is informational — the commit ID is valid upstream.

Fix:

  • Tested-on: warnings: No action required. These are acceptable false positives for structured trailer lines.
  • Unknown commit ID: Verify that ee16dcf573d5 exists in the upstream ath12k tree. If it does, no action is needed — the warning is expected when the base branch hasn't pulled that commit yet.

Reproduce locally:

./scripts/checkpatch.pl --strict --ignore FILE_PATH_CHANGES --git be2b092b0a9cccbf0f8e82da74f369aa1b3227bf..9e8c0efe595564fe8b9149dbf6e31c172c40ba00

❌ check-patch-compliance

Root cause: Commit 5 (d1fd810f8d55 - "introduce host_alloc_ml_id hardware parameter") includes a Link: to a bugzilla URL, which b4 am cannot fetch.

Failure details:

Checking commit: FROMLIST: wifi: ath12k: introduce host_alloc_ml_id hardware parameter
Something seems wrong with the provided link. Please verify it
Try below command to run locally-
b4 am --single-message -C -l -3 https://bugzilla.kernel.org/show_bug.cgi?id=221039 # 1
https://lore.kernel.org/linux-wireless/20260713-ath12k-fw-allocated-ml-peer-id-v1-5-d0a2a1a519eb@oss.qualcomm.com/

Analysis:

The commit message contains two Link: tags:

Link: https://bugzilla.kernel.org/show_bug.cgi?id=221039 # 1
Link: https://lore.kernel.org/linux-wireless/20260713-ath12k-fw-allocated-ml-peer-id-v1-5-d0a2a1a519eb@oss.qualcomm.com/

The checker tries to fetch the first Link: (the bugzilla URL) with b4 am, which fails because b4 only supports lore.kernel.org mbox URLs. The second Link: (the lore URL) is the correct upstream patch reference.

Fix:

Option 1 (Recommended): Remove the bugzilla Link: tag and keep only the lore URL:

git rebase -i be2b092b0a9cccbf0f8e82da74f369aa1b3227bf
# mark commit d1fd810f8d55 as 'edit'
# Edit the commit message to remove the bugzilla Link: line
git commit --amend
# Remove: Link: https://bugzilla.kernel.org/show_bug.cgi?id=221039 # 1
# Keep:   Link: https://lore.kernel.org/linux-wireless/20260713-ath12k-fw-allocated-ml-peer-id-v1-5-d0a2a1a519eb@oss.qualcomm.com/
git rebase --continue

Option 2: Swap the order so the lore URL comes first (the checker only validates the first Link:):

Link: https://lore.kernel.org/linux-wireless/20260713-ath12k-fw-allocated-ml-peer-id-v1-5-d0a2a1a519eb@oss.qualcomm.com/
Link: https://bugzilla.kernel.org/show_bug.cgi?id=221039 # 1

Reproduce locally:

b4 am --single-message -C -l -3 https://bugzilla.kernel.org/show_bug.cgi?id=221039
# This will fail — bugzilla is not a valid b4 source
b4 am --single-message -C -l -3 https://lore.kernel.org/linux-wireless/20260713-ath12k-fw-allocated-ml-peer-id-v1-5-d0a2a1a519eb@oss.qualcomm.com/
# This will succeed

Verdict

1 blocker to fix before merge:

  • check-patch-compliance: Remove or reorder the bugzilla Link: in commit 5 so the lore URL is validated first.

Checkpatch warnings are acceptable false positives — long Tested-on: lines are standard practice for structured trailers, and the unknown commit ID warning is expected when the base branch hasn't synced the referenced upstream commit yet.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants