The branch main has been updated by bz:

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

commit 60307068cf64700f5379c782ad98336d4d0f7390
Author:     Bjoern A. Zeeb <b...@freebsd.org>
AuthorDate: 2025-07-07 07:02:35 +0000
Commit:     Bjoern A. Zeeb <b...@freebsd.org>
CommitDate: 2025-08-24 10:26:39 +0000

    LinuxKPi: 802.11: adjust linuxkpi_set_ieee80211_dev() to set ic_name
    
    While we used to pass in the dev_name(), we now use wiphy_dev() inside
    the implementation to get the dev and the name.  This is for two reasons:
    (1) ath1xk also unset the dev and we need to check once we add support,
    and (2) in preparation for future work, which needs to hook into that
    point.
    
    Sponsored by:   The FreeBSD Foundation
    MFC after:      3 days
---
 sys/compat/linuxkpi/common/include/net/mac80211.h |  4 ++--
 sys/compat/linuxkpi/common/src/linux_80211.c      | 19 ++++++++++++++++---
 2 files changed, 18 insertions(+), 5 deletions(-)

diff --git a/sys/compat/linuxkpi/common/include/net/mac80211.h 
b/sys/compat/linuxkpi/common/include/net/mac80211.h
index 2ed595095f9e..c667ddea1085 100644
--- a/sys/compat/linuxkpi/common/include/net/mac80211.h
+++ b/sys/compat/linuxkpi/common/include/net/mac80211.h
@@ -1135,7 +1135,7 @@ extern const struct cfg80211_ops linuxkpi_mac80211cfgops;
 struct ieee80211_hw *linuxkpi_ieee80211_alloc_hw(size_t,
     const struct ieee80211_ops *);
 void linuxkpi_ieee80211_iffree(struct ieee80211_hw *);
-void linuxkpi_set_ieee80211_dev(struct ieee80211_hw *, char *);
+void linuxkpi_set_ieee80211_dev(struct ieee80211_hw *);
 int linuxkpi_ieee80211_ifattach(struct ieee80211_hw *);
 void linuxkpi_ieee80211_ifdetach(struct ieee80211_hw *);
 void linuxkpi_ieee80211_unregister_hw(struct ieee80211_hw *);
@@ -1255,7 +1255,7 @@ SET_IEEE80211_DEV(struct ieee80211_hw *hw, struct device 
*dev)
 {
 
        set_wiphy_dev(hw->wiphy, dev);
-       linuxkpi_set_ieee80211_dev(hw, dev_name(dev));
+       linuxkpi_set_ieee80211_dev(hw);
 
        IMPROVE();
 }
diff --git a/sys/compat/linuxkpi/common/src/linux_80211.c 
b/sys/compat/linuxkpi/common/src/linux_80211.c
index 45e4aa1639ab..eb270fe7c8f6 100644
--- a/sys/compat/linuxkpi/common/src/linux_80211.c
+++ b/sys/compat/linuxkpi/common/src/linux_80211.c
@@ -6048,17 +6048,30 @@ linuxkpi_ieee80211_iffree(struct ieee80211_hw *hw)
 }
 
 void
-linuxkpi_set_ieee80211_dev(struct ieee80211_hw *hw, char *name)
+linuxkpi_set_ieee80211_dev(struct ieee80211_hw *hw)
 {
        struct lkpi_hw *lhw;
        struct ieee80211com *ic;
+       struct device *dev;
 
        lhw = HW_TO_LHW(hw);
        ic = lhw->ic;
 
-       /* Now set a proper name before ieee80211_ifattach(). */
+       /* Save the backpointer from net80211 to LinuxKPI. */
        ic->ic_softc = lhw;
-       ic->ic_name = name;
+
+       /*
+        * Set a proper name before ieee80211_ifattach() if dev is set.
+        * ath1xk also unset the dev so we need to check.
+        */
+       dev = wiphy_dev(hw->wiphy);
+       if (dev != NULL) {
+               ic->ic_name = dev_name(dev);
+       } else {
+               TODO("adjust arguments to still have the old dev or go through "
+                   "the hoops of getting the bsddev from hw and detach; "
+                   "or do in XXX; check ath1kx drivers");
+       }
 
        /* XXX-BZ do we also need to set wiphy name? */
 }

Reply via email to