The branch main has been updated by bz:

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

commit 4a07abdeb8ce5271996d85f648832e3d7bc741a7
Author:     Bjoern A. Zeeb <b...@freebsd.org>
AuthorDate: 2022-03-24 15:43:22 +0000
Commit:     Bjoern A. Zeeb <b...@freebsd.org>
CommitDate: 2022-03-24 15:43:22 +0000

    LinuxKPI: 802.11: use cfg80211_chandef_create()
    
    Rather than manually setting up a chandef and then effectively forcing
    a memcpy, use cfg80211_chandef_create() to do the work for us entirely.
    This works here as we do not store the resulting chandef separately
    for other use.
    
    While here remove a duplicate assignment in cfg80211_chandef_create().
    
    Sponsored by:   The FreeBSD Foundation
    MFC after:      3 days
---
 sys/compat/linuxkpi/common/include/net/cfg80211.h |  2 +-
 sys/compat/linuxkpi/common/src/linux_80211.c      | 14 +++-----------
 2 files changed, 4 insertions(+), 12 deletions(-)

diff --git a/sys/compat/linuxkpi/common/include/net/cfg80211.h 
b/sys/compat/linuxkpi/common/include/net/cfg80211.h
index 896559247620..64aef659c771 100644
--- a/sys/compat/linuxkpi/common/include/net/cfg80211.h
+++ b/sys/compat/linuxkpi/common/include/net/cfg80211.h
@@ -1166,9 +1166,9 @@ cfg80211_chandef_create(struct cfg80211_chan_def *chandef,
        KASSERT(chandef != NULL, ("%s: chandef is NULL\n", __func__));
        KASSERT(chan != NULL, ("%s: chan is NULL\n", __func__));
 
+       memset(chandef, 0, sizeof(*chandef));
        chandef->chan = chan;
        chandef->center_freq2 = 0;      /* Set here and only overwrite if 
needed. */
-        chandef->chan = chan;
 
        switch (chan_flag) {
        case NL80211_CHAN_NO_HT:
diff --git a/sys/compat/linuxkpi/common/src/linux_80211.c 
b/sys/compat/linuxkpi/common/src/linux_80211.c
index 4805097fcd4f..e9e75488882a 100644
--- a/sys/compat/linuxkpi/common/src/linux_80211.c
+++ b/sys/compat/linuxkpi/common/src/linux_80211.c
@@ -2629,7 +2629,6 @@ lkpi_ic_set_channel(struct ieee80211com *ic)
        } else {
                struct ieee80211_channel *c = ic->ic_curchan;
                struct linuxkpi_ieee80211_channel *chan;
-               struct cfg80211_chan_def chandef;
 
                if (c == NULL || c == IEEE80211_CHAN_ANYC ||
                    lhw->ops->config == NULL) {
@@ -2645,16 +2644,12 @@ lkpi_ic_set_channel(struct ieee80211com *ic)
                        return;
                }
 
-               memset(&chandef, 0, sizeof(chandef));
-               chandef.chan = chan;
-               chandef.width = NL80211_CHAN_WIDTH_20_NOHT;
-               chandef.center_freq1 = chandef.chan->center_freq;
-
                /* XXX max power for scanning? */
                IMPROVE();
 
                hw = LHW_TO_HW(lhw);
-               hw->conf.chandef = chandef;
+               cfg80211_chandef_create(&hw->conf.chandef, chan,
+                   NL80211_CHAN_NO_HT);
 
                error = lkpi_80211_mo_config(hw, IEEE80211_CONF_CHANGE_CHANNEL);
                if (error != 0 && error != EOPNOTSUPP) {
@@ -3430,15 +3425,12 @@ linuxkpi_ieee80211_ifattach(struct ieee80211_hw *hw)
 
                channels = supband->channels;
                for (i = 0; i < supband->n_channels; i++) {
-                       struct cfg80211_chan_def chandef;
 
                        if (channels[i].flags & IEEE80211_CHAN_DISABLED)
                                continue;
 
-                       memset(&chandef, 0, sizeof(chandef));
-                       cfg80211_chandef_create(&chandef, &channels[i],
+                       cfg80211_chandef_create(&hw->conf.chandef, &channels[i],
                            NL80211_CHAN_NO_HT);
-                       hw->conf.chandef = chandef;
                        break;
                }
        }

Reply via email to