git: a965d1ebd3ad - releng/14.0 - LinuxKPI: 802.11: mac80211 ops: distinguish between {bss,link}_info_changed

From: Bjoern A. Zeeb <bz_at_FreeBSD.org>
Date: Mon, 09 Oct 2023 23:16:16 UTC
The branch releng/14.0 has been updated by bz:

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

commit a965d1ebd3adc68bf3c445dc0d5c1db8cf5bd867
Author:     Bjoern A. Zeeb <bz@FreeBSD.org>
AuthorDate: 2023-09-21 11:58:17 +0000
Commit:     Bjoern A. Zeeb <bz@FreeBSD.org>
CommitDate: 2023-10-09 23:14:53 +0000

    LinuxKPI: 802.11: mac80211 ops: distinguish between {bss,link}_info_changed
    
    With MLO and multi-link setups if avail we want to call link_info_changed
    whereas for legacy drivers we still need to call bss_info_changed.
    While we currently do not (yet) support multi-link configurations
    we still need to drive the correct commands to satisfy firmware
    requirements.
    
    Sponsored by:   The FreeBSD Foundation
    Approved by:    re (gjb)
    
    (cherry picked from commit 727f88f2617acaff4ada0f3dda6ca23c6679310d)
    (cherry picked from commit ad79da1b1ad323a00329c1c80fe9b90eb1e434b2)
---
 sys/compat/linuxkpi/common/src/linux_80211_macops.c | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

diff --git a/sys/compat/linuxkpi/common/src/linux_80211_macops.c b/sys/compat/linuxkpi/common/src/linux_80211_macops.c
index c386c096add7..97a72a95e418 100644
--- a/sys/compat/linuxkpi/common/src/linux_80211_macops.c
+++ b/sys/compat/linuxkpi/common/src/linux_80211_macops.c
@@ -538,14 +538,17 @@ lkpi_80211_mo_bss_info_changed(struct ieee80211_hw *hw, struct ieee80211_vif *vi
 	struct lkpi_hw *lhw;
 
 	lhw = HW_TO_LHW(hw);
-	if (lhw->ops->bss_info_changed == NULL)
+	if (lhw->ops->link_info_changed == NULL &&
+	    lhw->ops->bss_info_changed == NULL)
 		return;
 
 	LKPI_80211_TRACE_MO("hw %p vif %p conf %p changed %#jx", hw, vif, conf, (uintmax_t)changed);
-	lhw->ops->bss_info_changed(hw, vif, conf, changed);
+	if (lhw->ops->link_info_changed != NULL)
+		lhw->ops->link_info_changed(hw, vif, conf, changed);
+	else
+		lhw->ops->bss_info_changed(hw, vif, conf, changed);
 }
 
-
 int
 lkpi_80211_mo_conf_tx(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
     uint16_t ac, const struct ieee80211_tx_queue_params *txqp)