diff options
Diffstat (limited to 'net/mac80211/ieee80211_key.h')
-rw-r--r-- | net/mac80211/ieee80211_key.h | 20 |
1 files changed, 16 insertions, 4 deletions
diff --git a/net/mac80211/ieee80211_key.h b/net/mac80211/ieee80211_key.h index d670e6dbfa39..467890c6fe81 100644 --- a/net/mac80211/ieee80211_key.h +++ b/net/mac80211/ieee80211_key.h | |||
@@ -51,13 +51,19 @@ struct sta_info; | |||
51 | * | 51 | * |
52 | * @KEY_FLAG_UPLOADED_TO_HARDWARE: Indicates that this key is present | 52 | * @KEY_FLAG_UPLOADED_TO_HARDWARE: Indicates that this key is present |
53 | * in the hardware for TX crypto hardware acceleration. | 53 | * in the hardware for TX crypto hardware acceleration. |
54 | * @KEY_FLAG_REMOVE_FROM_HARDWARE: Indicates to the key code that this | 54 | * @KEY_FLAG_TODO_DELETE: Key is marked for deletion and will, after an |
55 | * key is present in the hardware (but it cannot be used for | 55 | * RCU grace period, no longer be reachable other than from the |
56 | * hardware acceleration any more!) | 56 | * todo list. |
57 | * @KEY_FLAG_TODO_HWACCEL: Key needs to be added to hardware acceleration. | ||
58 | * @KEY_FLAG_TODO_DEFKEY: Key is default key and debugfs needs to be updated. | ||
59 | * @KEY_FLAG_TODO_ADD_DEBUGFS: Key needs to be added to debugfs. | ||
57 | */ | 60 | */ |
58 | enum ieee80211_internal_key_flags { | 61 | enum ieee80211_internal_key_flags { |
59 | KEY_FLAG_UPLOADED_TO_HARDWARE = BIT(0), | 62 | KEY_FLAG_UPLOADED_TO_HARDWARE = BIT(0), |
60 | KEY_FLAG_REMOVE_FROM_HARDWARE = BIT(1), | 63 | KEY_FLAG_TODO_DELETE = BIT(1), |
64 | KEY_FLAG_TODO_HWACCEL = BIT(2), | ||
65 | KEY_FLAG_TODO_DEFKEY = BIT(3), | ||
66 | KEY_FLAG_TODO_ADD_DEBUGFS = BIT(4), | ||
61 | }; | 67 | }; |
62 | 68 | ||
63 | struct ieee80211_key { | 69 | struct ieee80211_key { |
@@ -65,8 +71,12 @@ struct ieee80211_key { | |||
65 | struct ieee80211_sub_if_data *sdata; | 71 | struct ieee80211_sub_if_data *sdata; |
66 | struct sta_info *sta; | 72 | struct sta_info *sta; |
67 | 73 | ||
74 | /* for sdata list */ | ||
68 | struct list_head list; | 75 | struct list_head list; |
76 | /* for todo list */ | ||
77 | struct list_head todo; | ||
69 | 78 | ||
79 | /* protected by todo lock! */ | ||
70 | unsigned int flags; | 80 | unsigned int flags; |
71 | 81 | ||
72 | union { | 82 | union { |
@@ -142,4 +152,6 @@ void ieee80211_free_keys(struct ieee80211_sub_if_data *sdata); | |||
142 | void ieee80211_enable_keys(struct ieee80211_sub_if_data *sdata); | 152 | void ieee80211_enable_keys(struct ieee80211_sub_if_data *sdata); |
143 | void ieee80211_disable_keys(struct ieee80211_sub_if_data *sdata); | 153 | void ieee80211_disable_keys(struct ieee80211_sub_if_data *sdata); |
144 | 154 | ||
155 | void ieee80211_key_todo(void); | ||
156 | |||
145 | #endif /* IEEE80211_KEY_H */ | 157 | #endif /* IEEE80211_KEY_H */ |