--- a/net/mac80211/fils_aead.c +++ b/net/mac80211/fils_aead.c @@ -1,3 +1,4 @@ +#if LINUX_VERSION_IS_GEQ(4,3,0) /* * FILS AEAD for (Re)Association Request/Response frames * Copyright 2016, Qualcomm Atheros, Inc. @@ -332,3 +333,4 @@ int fils_decrypt_assoc_resp(struct ieee8 *frame_len -= AES_BLOCK_SIZE; return 0; } +#endif --- a/net/mac80211/fils_aead.h +++ b/net/mac80211/fils_aead.h @@ -10,10 +10,27 @@ #ifndef FILS_AEAD_H #define FILS_AEAD_H +#if LINUX_VERSION_IS_GEQ(4,3,0) int fils_encrypt_assoc_req(struct sk_buff *skb, struct ieee80211_mgd_assoc_data *assoc_data); int fils_decrypt_assoc_resp(struct ieee80211_sub_if_data *sdata, u8 *frame, size_t *frame_len, struct ieee80211_mgd_assoc_data *assoc_data); +#else +static inline +int fils_encrypt_assoc_req(struct sk_buff *skb, + struct ieee80211_mgd_assoc_data *assoc_data) +{ + return -EOPNOTSUPP; +} + +static inline +int fils_decrypt_assoc_resp(struct ieee80211_sub_if_data *sdata, + u8 *frame, size_t *frame_len, + struct ieee80211_mgd_assoc_data *assoc_data) +{ + return -EOPNOTSUPP; +} +#endif #endif /* FILS_AEAD_H */ --- a/net/mac80211/main.c +++ b/net/mac80211/main.c @@ -571,7 +571,9 @@ struct ieee80211_hw *ieee80211_alloc_hw_ NL80211_FEATURE_MAC_ON_CREATE | NL80211_FEATURE_USERSPACE_MPM | NL80211_FEATURE_FULL_AP_CLIENT_STATE; +#if LINUX_VERSION_IS_GEQ(4,3,0) wiphy_ext_feature_set(wiphy, NL80211_EXT_FEATURE_FILS_STA); +#endif wiphy_ext_feature_set(wiphy, NL80211_EXT_FEATURE_CONTROL_PORT_OVER_NL80211);