Lines Matching defs:key
281 /* We're done with the key; invalidate, stop reassembly, and remove from lists.
283 static void __mctp_key_remove(struct mctp_sk_key *key, struct net *net,
285 __releases(&key->lock)
290 trace_mctp_key_release(key, reason);
291 skb = key->reasm_head;
292 key->reasm_head = NULL;
293 key->reasm_dead = true;
294 key->valid = false;
295 mctp_dev_release_key(key->dev, key);
296 spin_unlock_irqrestore(&key->lock, flags);
298 if (!hlist_unhashed(&key->hlist)) {
299 hlist_del_init(&key->hlist);
300 hlist_del_init(&key->sklist);
302 mctp_key_unref(key);
356 struct mctp_sk_key *key = NULL;
370 key = mctp_alloc_local_tag(msk, ctl.peer_addr, MCTP_ADDR_ANY,
372 if (IS_ERR(key))
373 return PTR_ERR(key);
378 /* Unwind our key allocation: the keys list lock needs to be
379 * taken before the individual key locks, and we need a valid
384 spin_lock_irqsave(&key->lock, fl2);
385 __mctp_key_remove(key, net, fl2, MCTP_TRACE_KEY_DROPPED);
386 mctp_key_unref(key);
391 mctp_key_unref(key);
400 struct mctp_sk_key *key;
419 hlist_for_each_entry_safe(key, tmp, &msk->keys, sklist) {
423 spin_lock_irqsave(&key->lock, fl2);
424 if (key->manual_alloc &&
425 ctl.peer_addr == key->peer_addr &&
426 tag == key->tag) {
427 __mctp_key_remove(key, net, fl2,
431 spin_unlock_irqrestore(&key->lock, fl2);
499 struct mctp_sk_key *key;
505 hlist_for_each_entry_safe(key, tmp, &msk->keys, sklist) {
509 if (key->manual_alloc)
512 spin_lock_irqsave(&key->lock, fl2);
513 if (!time_after_eq(key->expiry, jiffies)) {
514 __mctp_key_remove(key, net, fl2,
520 if (time_before(key->expiry, next_expiry))
521 next_expiry = key->expiry;
523 next_expiry = key->expiry;
526 spin_unlock_irqrestore(&key->lock, fl2);
565 struct mctp_sk_key *key;
575 hlist_for_each_entry_safe(key, tmp, &msk->keys, sklist) {
576 spin_lock_irqsave(&key->lock, fl2);
577 __mctp_key_remove(key, net, fl2, MCTP_TRACE_KEY_CLOSED);