• Gregory Greenman's avatar
    wifi: iwlwifi: mvm: vif preparation for MLO · 650cadb7
    Gregory Greenman authored
    In MLO, some fields of iwl_mvm_vif should be defined in the
    context of a link. Define a separate structure for these fields and
    add a deflink object to hold it as part of iwl_mvm_vif. Non-MLO legacy
    code will use only deflink object while MLO related code will use the
    corresponding link from the link array.
    
    It follows the strategy applied in mac80211 for introducing MLO
    changes.
    
    The below spatch takes care of updating all driver code to access
    fields separated into MLD specific data structure via deflink (need
    to convert all references to the fields listed in var to deflink.var
    and also to take care of calls like iwl_mvm_vif_from_mac80211(vif)->field).
    
      @iwl_mld_vif@
      struct iwl_mvm_vif *v;
      struct ieee80211_vif *vv;
      identifier fn;
      identifier var = {bssid, ap_sta_id, bcast_sta, mcast_sta,
                        beacon_stats, smps_requests, probe_resp_data,
    		    he_ru_2mhz_block, cab_queue, phy_ctxt,
                        queue_params};
      @@
    
      (
        v->
      -    var
      +    deflink.var
      |
        fn(vv)->
      -    var
      +    deflink.var
      )
    Signed-off-by: default avatarGregory Greenman <gregory.greenman@intel.com>
    Link: https://lore.kernel.org/r/20230328104948.4896576f0a9f.Ifaf0187c96b9fe52b24bd629331165831a877691@changeidSigned-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
    650cadb7
sf.c 7.08 KB