[PATCH v2 0/8] wifi: ath12k: handle change_vif_links() callback

Aditya Kumar Singh
2025-02-04T17:05:23Z

Currently, links in an interface are allocated during channel assignment
via assign_vif_chanctx(). Conversely, links are deleted during channel
unassignment via unassign_vif_chanctx(). However, deleting links during
channel unassignment does not comply with mac80211 link handling.
Therefore, this process should be managed within change_vif_links().

This series aims to add support to handle links in change_vif_links()
callback.

Patches 1-2 are making debug infra to work without device info.

Patches 3-8 are the ones changing the code to handle as mentioned above.

NOTE:
* A new ath12k-check warning comes which probably needs to be added to
ignore list

drivers/net/wireless/ath/ath12k/debug.c:69: Prefer [subsystem eg: netdev]_dbg([subsystem]dev, ... then dev_dbg(dev, ... then pr_debug(... to printk(KERN_DEBUG ...

This is because, since device info is not known can not use netdev_ or dev_
dbg family. pr_debug() is an option but that will require DYNAMIC_DEBUG
and then ath12k needs to be probed with dyndbg=+p which we don't want in
ath. Hence, only option left is to use printk() directly.

---
Changes in v2:
- No changes in patches 1-5, 7.
- Relocated ath12k_mac_remove_link_interface() as well in patch 6.
- Properly handled peer create and peer delete symmetry in patch 8. This
unsymmetry was the root cause of the DFS channel bring up as reported
with v1.
- Link to v1: https://lore.kernel.org/r/20250204-unlink_link_arvif_from_chanctx-v1-0-675bd4cea339@oss.qualcomm.com

---
Aditya Kumar Singh (8):
wifi: ath12k: eliminate redundant debug mask check in ath12k_dbg()
wifi: ath12k: introduce ath12k_generic_dbg()
wifi: ath12k: remove redundant vif settings during link interface creation
wifi: ath12k: remove redundant logic for initializing arvif
wifi: ath12k: use arvif instead of link_conf in ath12k_mac_set_key()
wifi: ath12k: relocate a few functions in mac.c
wifi: ath12k: allocate new links in change_vif_links()
wifi: ath12k: handle link removal in change_vif_links()

drivers/net/wireless/ath/ath12k/debug.c | 6 +-
drivers/net/wireless/ath/ath12k/debug.h | 7 +-
drivers/net/wireless/ath/ath12k/mac.c | 302 ++++++++++++++++++--------------
3 files changed, 180 insertions(+), 135 deletions(-)
---
base-commit: 48a62436540224f57013c27519dd2aa3ddd714c9
change-id: 20241210-unlink_link_arvif_from_chanctx-315159c5ac63