The mt7925_ops struct contains these four ieee80211_ops which are not present in the mt7921_ops struct. In mt7925_change_vif_links mconf->vif is set. from drivers/net/wireless/mediatek/mt76/mt7925/main.c: .vif_cfg_changed = mt7925_vif_cfg_changed, .link_info_changed = mt7925_link_info_changed, .change_vif_links = mt7925_change_vif_links, .change_sta_links = mt7925_change_sta_links, So I think you're probably breaking generic code (i. e. code that is also used on mt7921) with mt7925 specific changes. Bert Karwatzki