Hi David, On Thu, Jul 04, 2024 at 11:30:01AM +0800, David Lin wrote: > Add host based MLME to enable WPA3 functionalities in AP mode. > This feature required a firmware with the corresponding V2 Key API > support. The feature (WPA3) is currently enabled and verified only > on IW416. Also, verified no regression with change when host MLME > is disabled. > > Signed-off-by: David Lin <yu-hao.lin@xxxxxxx> > Reviewed-by: Francesco Dolcini <francesco.dolcini@xxxxxxxxxxx> > Acked-by: Brian Norris <briannorris@xxxxxxxxxxxx> > --- > > v11: > - modify 'mwifiex_mgmt_stypes' to allow multi-adapters with different > setting of host_mlme_enbaled. ... > - wiphy->mgmt_stypes = mwifiex_mgmt_stypes; > + if (adapter->host_mlme_enabled) { > + memcpy(adapter->mwifiex_mgmt_stypes, > + mwifiex_mgmt_stypes, > + NUM_NL80211_IFTYPES * > + sizeof(struct ieee80211_txrx_stypes)); > + > + adapter->mwifiex_mgmt_stypes[NL80211_IFTYPE_AP].tx = 0xffff; > + adapter->mwifiex_mgmt_stypes[NL80211_IFTYPE_AP].rx = > + BIT(IEEE80211_STYPE_ASSOC_REQ >> 4) | > + BIT(IEEE80211_STYPE_REASSOC_REQ >> 4) | > + BIT(IEEE80211_STYPE_PROBE_REQ >> 4) | > + BIT(IEEE80211_STYPE_DISASSOC >> 4) | > + BIT(IEEE80211_STYPE_AUTH >> 4) | > + BIT(IEEE80211_STYPE_DEAUTH >> 4) | > + BIT(IEEE80211_STYPE_ACTION >> 4); > + wiphy->mgmt_stypes = adapter->mwifiex_mgmt_stypes; > + } else { > + wiphy->mgmt_stypes = mwifiex_mgmt_stypes; > + } > wiphy->max_remain_on_channel_duration = 5000; > wiphy->interface_modes = BIT(NL80211_IFTYPE_STATION) | > BIT(NL80211_IFTYPE_P2P_CLIENT) | ... > --- a/drivers/net/wireless/marvell/mwifiex/main.h > +++ b/drivers/net/wireless/marvell/mwifiex/main.h > @@ -1008,6 +1008,7 @@ struct mwifiex_adapter { > > bool ext_scan; > bool host_mlme_enabled; > + struct ieee80211_txrx_stypes mwifiex_mgmt_stypes[NUM_NL80211_IFTYPES]; This wasn't exactly what I had in mind by a "second copy" of mwifiex_mgmt_stypes -- that you add a new array to mwifiex_adapter that is only sometimes used. I meant something more like a const 'mwifiex_mgmt_stypes_mlme`, with the appropriate constant values. But I suppose this works too, if a bit awkward, and saves a bit of code/data duplication. So, the 'Acked-by' still seems appropriate. Thanks for the patience on this series. Brian