Skip to content

Conversation

@zbowling
Copy link

@zbowling zbowling commented Jan 1, 2026

This PR adds NULL pointer checks in MLO link selection and channel context functions.

Problem

Several functions in the MT7925 driver call mt792x_vif_to_link() and
mt792x_vif_to_bss_conf() without checking for NULL return values before
dereferencing. This can cause kernel panics during rapid MLO state transitions.

Functions Fixed

  • mt7925_mac_set_links(): Check both primary and secondary link_conf
    before dereferencing chanreq.oper for band selection
  • mt7925_link_info_changed(): Check mconf before using it to get
    link_conf, prevents NULL dereference chain
  • mt7925_assign_vif_chanctx(): Check mconf before use, return -EINVAL
    if NULL; check pri_link_conf before passing to MCU function
  • mt7925_unassign_vif_chanctx(): Check mconf before dereferencing,
    return early if NULL during MLO cleanup

Testing

Tested on Framework Desktop (AMD Ryzen AI Max 300 Series) with MT7925 WiFi.

Related PRs

Add NULL pointer checks for mconf and link_conf in several functions
that were missing validation after calling mt792x_vif_to_link() and
mt792x_vif_to_bss_conf().

Functions fixed:
- mt7925_mac_set_links(): Check both primary and secondary link_conf
  before dereferencing chanreq.oper for band selection
- mt7925_link_info_changed(): Check mconf before using it to get
  link_conf, prevents NULL dereference chain
- mt7925_assign_vif_chanctx(): Check mconf before use, return -EINVAL
  if NULL; check pri_link_conf before passing to MCU function
- mt7925_unassign_vif_chanctx(): Check mconf before dereferencing,
  return early if NULL during MLO cleanup

These functions handle MLO (Multi-Link Operation) scenarios where link
configurations may not be fully set up when called, particularly during
rapid link state transitions or error recovery paths.

Reported-by: Zac Bowling <zac@zacbowling.com>
Signed-off-by: Zac Bowling <zac@zacbowling.com>
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.

1 participant