Lines Matching full:cs

32 void ovpn_crypto_state_release(struct ovpn_crypto_state *cs)  in ovpn_crypto_state_release()  argument
36 ks = rcu_access_pointer(cs->slots[0]); in ovpn_crypto_state_release()
38 RCU_INIT_POINTER(cs->slots[0], NULL); in ovpn_crypto_state_release()
42 ks = rcu_access_pointer(cs->slots[1]); in ovpn_crypto_state_release()
44 RCU_INIT_POINTER(cs->slots[1], NULL); in ovpn_crypto_state_release()
50 bool ovpn_crypto_kill_key(struct ovpn_crypto_state *cs, u8 key_id) in ovpn_crypto_kill_key() argument
56 spin_lock_bh(&cs->lock); in ovpn_crypto_kill_key()
57 tmp = rcu_access_pointer(cs->slots[slot]); in ovpn_crypto_kill_key()
60 tmp = rcu_access_pointer(cs->slots[slot]); in ovpn_crypto_kill_key()
64 ks = rcu_replace_pointer(cs->slots[slot], NULL, in ovpn_crypto_kill_key()
65 lockdep_is_held(&cs->lock)); in ovpn_crypto_kill_key()
66 spin_unlock_bh(&cs->lock); in ovpn_crypto_kill_key()
78 int ovpn_crypto_state_reset(struct ovpn_crypto_state *cs, in ovpn_crypto_state_reset() argument
92 spin_lock_bh(&cs->lock); in ovpn_crypto_state_reset()
93 idx = cs->primary_idx; in ovpn_crypto_state_reset()
96 old = rcu_replace_pointer(cs->slots[idx], new, in ovpn_crypto_state_reset()
97 lockdep_is_held(&cs->lock)); in ovpn_crypto_state_reset()
100 old = rcu_replace_pointer(cs->slots[!idx], new, in ovpn_crypto_state_reset()
101 lockdep_is_held(&cs->lock)); in ovpn_crypto_state_reset()
104 spin_unlock_bh(&cs->lock); in ovpn_crypto_state_reset()
112 void ovpn_crypto_key_slot_delete(struct ovpn_crypto_state *cs, in ovpn_crypto_key_slot_delete() argument
124 spin_lock_bh(&cs->lock); in ovpn_crypto_key_slot_delete()
125 idx = cs->primary_idx; in ovpn_crypto_key_slot_delete()
128 ks = rcu_replace_pointer(cs->slots[idx], NULL, in ovpn_crypto_key_slot_delete()
129 lockdep_is_held(&cs->lock)); in ovpn_crypto_key_slot_delete()
132 ks = rcu_replace_pointer(cs->slots[!idx], NULL, in ovpn_crypto_key_slot_delete()
133 lockdep_is_held(&cs->lock)); in ovpn_crypto_key_slot_delete()
136 spin_unlock_bh(&cs->lock); in ovpn_crypto_key_slot_delete()
147 void ovpn_crypto_key_slots_swap(struct ovpn_crypto_state *cs) in ovpn_crypto_key_slots_swap() argument
152 spin_lock_bh(&cs->lock); in ovpn_crypto_key_slots_swap()
153 idx = cs->primary_idx; in ovpn_crypto_key_slots_swap()
154 old_primary = rcu_dereference_protected(cs->slots[idx], in ovpn_crypto_key_slots_swap()
155 lockdep_is_held(&cs->lock)); in ovpn_crypto_key_slots_swap()
156 old_secondary = rcu_dereference_protected(cs->slots[!idx], in ovpn_crypto_key_slots_swap()
157 lockdep_is_held(&cs->lock)); in ovpn_crypto_key_slots_swap()
159 WRITE_ONCE(cs->primary_idx, !cs->primary_idx); in ovpn_crypto_key_slots_swap()
165 spin_unlock_bh(&cs->lock); in ovpn_crypto_key_slots_swap()
170 * @cs: the crypto state to extract the key data from
176 int ovpn_crypto_config_get(struct ovpn_crypto_state *cs, in ovpn_crypto_config_get() argument
185 idx = cs->primary_idx; in ovpn_crypto_config_get()
188 idx = !cs->primary_idx; in ovpn_crypto_config_get()
195 ks = rcu_dereference(cs->slots[idx]); in ovpn_crypto_config_get()