Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

wifi: drivers: indicate support for attributes in NL80211_CMD_SET_BSS

The command NL80211_CMD_SET_BSS has a number of individual attributes
and the driver can advertise which of those it will handle when it is
changed by user-space. For drivers providing an empty .change_bss()
the callback has been removed.

Signed-off-by: Arend van Spriel <arend.vanspriel@broadcom.com>
Link: https://patch.msgid.link/20250817190435.1495094-3-arend.vanspriel@broadcom.com
Signed-off-by: Johannes Berg <johannes.berg@intel.com>

authored by

Arend van Spriel and committed by
Johannes Berg
18abf7a0 24185534

+9 -15
+1
drivers/net/wireless/ath/wil6210/cfg80211.c
··· 2708 2708 wiphy->n_cipher_suites = ARRAY_SIZE(wil_cipher_suites); 2709 2709 wiphy->mgmt_stypes = wil_mgmt_stypes; 2710 2710 wiphy->features |= NL80211_FEATURE_SK_TX_STATUS; 2711 + wiphy->bss_param_support = WIPHY_BSS_PARAM_AP_ISOLATE; 2711 2712 2712 2713 wiphy->n_vendor_commands = ARRAY_SIZE(wil_nl80211_vendor_commands); 2713 2714 wiphy->vendor_commands = wil_nl80211_vendor_commands;
-7
drivers/net/wireless/microchip/wilc1000/cfg80211.c
··· 794 794 return 0; 795 795 } 796 796 797 - static int change_bss(struct wiphy *wiphy, struct net_device *dev, 798 - struct bss_parameters *params) 799 - { 800 - return 0; 801 - } 802 - 803 797 static int set_wiphy_params(struct wiphy *wiphy, int radio_idx, u32 changed) 804 798 { 805 799 int ret = -EINVAL; ··· 1703 1709 .change_station = change_station, 1704 1710 .get_station = get_station, 1705 1711 .dump_station = dump_station, 1706 - .change_bss = change_bss, 1707 1712 .set_wiphy_params = set_wiphy_params, 1708 1713 1709 1714 .external_auth = external_auth,
-8
drivers/staging/rtl8723bs/os_dep/ioctl_cfg80211.c
··· 2441 2441 return ret; 2442 2442 } 2443 2443 2444 - static int cfg80211_rtw_change_bss(struct wiphy *wiphy, 2445 - struct net_device *ndev, 2446 - struct bss_parameters *params) 2447 - { 2448 - return 0; 2449 - } 2450 - 2451 2444 void rtw_cfg80211_rx_action(struct adapter *adapter, u8 *frame, uint frame_len, const char *msg) 2452 2445 { 2453 2446 s32 freq; ··· 2697 2704 .del_station = cfg80211_rtw_del_station, 2698 2705 .change_station = cfg80211_rtw_change_station, 2699 2706 .dump_station = cfg80211_rtw_dump_station, 2700 - .change_bss = cfg80211_rtw_change_bss, 2701 2707 2702 2708 .mgmt_tx = cfg80211_rtw_mgmt_tx, 2703 2709 };
+8
net/mac80211/main.c
··· 862 862 if (emulate_chanctx || ops->remain_on_channel) 863 863 wiphy->flags |= WIPHY_FLAG_HAS_REMAIN_ON_CHANNEL; 864 864 865 + wiphy->bss_param_support = WIPHY_BSS_PARAM_CTS_PROT | 866 + WIPHY_BSS_PARAM_SHORT_PREAMBLE | 867 + WIPHY_BSS_PARAM_SHORT_SLOT_TIME | 868 + WIPHY_BSS_PARAM_BASIC_RATES | 869 + WIPHY_BSS_PARAM_AP_ISOLATE | 870 + WIPHY_BSS_PARAM_HT_OPMODE | 871 + WIPHY_BSS_PARAM_P2P_CTWINDOW | 872 + WIPHY_BSS_PARAM_P2P_OPPPS; 865 873 wiphy->features |= NL80211_FEATURE_SK_TX_STATUS | 866 874 NL80211_FEATURE_SAE | 867 875 NL80211_FEATURE_HT_IBSS |