flags |= NL80211_AP_SETTINGS_SA_QUERY_OFFLOAD_SUPPORT;
- if (nla_put_u32(msg, NL80211_ATTR_AP_SETTINGS_FLAGS, flags))
+ if (nl80211_attr_supported(drv,
+ NL80211_ATTR_AP_SETTINGS_FLAGS) &&
+ nla_put_u32(msg, NL80211_ATTR_AP_SETTINGS_FLAGS, flags))
goto fail;
}
if (params->freq && nl80211_put_freq_params(msg, params->freq) < 0)
goto fail;
- if (params->freq && params->freq->he_enabled) {
+ if (params->freq && params->freq->he_enabled &&
+ nl80211_attr_supported(drv, NL80211_ATTR_HE_BSS_COLOR)) {
struct nlattr *bss_color;
bss_color = nla_nest_start(msg, NL80211_ATTR_HE_BSS_COLOR);
void nl80211_restore_ap_mode(struct i802_bss *bss);
struct i802_link * nl80211_get_link(struct i802_bss *bss, s8 link_id);
+static inline bool
+nl80211_attr_supported(struct wpa_driver_nl80211_data *drv, unsigned int attr)
+{
+ return attr <= drv->global->nl80211_maxattr;
+}
+
#ifdef ANDROID
int android_nl_socket_set_nonblocking(struct nl_sock *handle);
int android_pno_start(struct i802_bss *bss,