| --- 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); |
| |