Lines Matching refs:keypairs
151 void wg_noise_keypairs_clear(struct noise_keypairs *keypairs)
155 spin_lock_bh(&keypairs->keypair_update_lock);
161 old = rcu_dereference_protected(keypairs->next_keypair,
162 lockdep_is_held(&keypairs->keypair_update_lock));
163 RCU_INIT_POINTER(keypairs->next_keypair, NULL);
166 old = rcu_dereference_protected(keypairs->previous_keypair,
167 lockdep_is_held(&keypairs->keypair_update_lock));
168 RCU_INIT_POINTER(keypairs->previous_keypair, NULL);
171 old = rcu_dereference_protected(keypairs->current_keypair,
172 lockdep_is_held(&keypairs->keypair_update_lock));
173 RCU_INIT_POINTER(keypairs->current_keypair, NULL);
176 spin_unlock_bh(&keypairs->keypair_update_lock);
186 spin_lock_bh(&peer->keypairs.keypair_update_lock);
187 keypair = rcu_dereference_protected(peer->keypairs.next_keypair,
188 lockdep_is_held(&peer->keypairs.keypair_update_lock));
191 keypair = rcu_dereference_protected(peer->keypairs.current_keypair,
192 lockdep_is_held(&peer->keypairs.keypair_update_lock));
195 spin_unlock_bh(&peer->keypairs.keypair_update_lock);
198 static void add_new_keypair(struct noise_keypairs *keypairs,
203 spin_lock_bh(&keypairs->keypair_update_lock);
204 previous_keypair = rcu_dereference_protected(keypairs->previous_keypair,
205 lockdep_is_held(&keypairs->keypair_update_lock));
206 next_keypair = rcu_dereference_protected(keypairs->next_keypair,
207 lockdep_is_held(&keypairs->keypair_update_lock));
208 current_keypair = rcu_dereference_protected(keypairs->current_keypair,
209 lockdep_is_held(&keypairs->keypair_update_lock));
225 RCU_INIT_POINTER(keypairs->next_keypair, NULL);
226 rcu_assign_pointer(keypairs->previous_keypair,
232 rcu_assign_pointer(keypairs->previous_keypair,
238 rcu_assign_pointer(keypairs->current_keypair, new_keypair);
245 rcu_assign_pointer(keypairs->next_keypair, new_keypair);
247 RCU_INIT_POINTER(keypairs->previous_keypair, NULL);
250 spin_unlock_bh(&keypairs->keypair_update_lock);
253 bool wg_noise_received_with_keypair(struct noise_keypairs *keypairs,
261 rcu_access_pointer(keypairs->next_keypair);
265 spin_lock_bh(&keypairs->keypair_update_lock);
270 rcu_dereference_protected(keypairs->next_keypair,
271 lockdep_is_held(&keypairs->keypair_update_lock)))) {
272 spin_unlock_bh(&keypairs->keypair_update_lock);
280 old_keypair = rcu_dereference_protected(keypairs->previous_keypair,
281 lockdep_is_held(&keypairs->keypair_update_lock));
282 rcu_assign_pointer(keypairs->previous_keypair,
283 rcu_dereference_protected(keypairs->current_keypair,
284 lockdep_is_held(&keypairs->keypair_update_lock)));
286 rcu_assign_pointer(keypairs->current_keypair, received_keypair);
287 RCU_INIT_POINTER(keypairs->next_keypair, NULL);
289 spin_unlock_bh(&keypairs->keypair_update_lock);
817 struct noise_keypairs *keypairs)
845 add_new_keypair(keypairs, new_keypair);