Lines Matching refs:key

283 static void __mctp_key_remove(struct mctp_sk_key *key, struct net *net,  in __mctp_key_remove()  argument
285 __releases(&key->lock) in __mctp_key_remove()
290 trace_mctp_key_release(key, reason); in __mctp_key_remove()
291 skb = key->reasm_head; in __mctp_key_remove()
292 key->reasm_head = NULL; in __mctp_key_remove()
293 key->reasm_dead = true; in __mctp_key_remove()
294 key->valid = false; in __mctp_key_remove()
295 mctp_dev_release_key(key->dev, key); in __mctp_key_remove()
296 spin_unlock_irqrestore(&key->lock, flags); in __mctp_key_remove()
298 if (!hlist_unhashed(&key->hlist)) { in __mctp_key_remove()
299 hlist_del_init(&key->hlist); in __mctp_key_remove()
300 hlist_del_init(&key->sklist); in __mctp_key_remove()
302 mctp_key_unref(key); in __mctp_key_remove()
356 struct mctp_sk_key *key = NULL; in mctp_ioctl_alloctag() local
370 key = mctp_alloc_local_tag(msk, ctl.peer_addr, MCTP_ADDR_ANY, in mctp_ioctl_alloctag()
372 if (IS_ERR(key)) in mctp_ioctl_alloctag()
373 return PTR_ERR(key); in mctp_ioctl_alloctag()
384 spin_lock_irqsave(&key->lock, fl2); in mctp_ioctl_alloctag()
385 __mctp_key_remove(key, net, fl2, MCTP_TRACE_KEY_DROPPED); in mctp_ioctl_alloctag()
386 mctp_key_unref(key); in mctp_ioctl_alloctag()
391 mctp_key_unref(key); in mctp_ioctl_alloctag()
400 struct mctp_sk_key *key; in mctp_ioctl_droptag() local
419 hlist_for_each_entry_safe(key, tmp, &msk->keys, sklist) { in mctp_ioctl_droptag()
423 spin_lock_irqsave(&key->lock, fl2); in mctp_ioctl_droptag()
424 if (key->manual_alloc && in mctp_ioctl_droptag()
425 ctl.peer_addr == key->peer_addr && in mctp_ioctl_droptag()
426 tag == key->tag) { in mctp_ioctl_droptag()
427 __mctp_key_remove(key, net, fl2, in mctp_ioctl_droptag()
431 spin_unlock_irqrestore(&key->lock, fl2); in mctp_ioctl_droptag()
499 struct mctp_sk_key *key; in mctp_sk_expire_keys() local
505 hlist_for_each_entry_safe(key, tmp, &msk->keys, sklist) { in mctp_sk_expire_keys()
509 if (key->manual_alloc) in mctp_sk_expire_keys()
512 spin_lock_irqsave(&key->lock, fl2); in mctp_sk_expire_keys()
513 if (!time_after_eq(key->expiry, jiffies)) { in mctp_sk_expire_keys()
514 __mctp_key_remove(key, net, fl2, in mctp_sk_expire_keys()
520 if (time_before(key->expiry, next_expiry)) in mctp_sk_expire_keys()
521 next_expiry = key->expiry; in mctp_sk_expire_keys()
523 next_expiry = key->expiry; in mctp_sk_expire_keys()
526 spin_unlock_irqrestore(&key->lock, fl2); in mctp_sk_expire_keys()
565 struct mctp_sk_key *key; in mctp_sk_unhash() local
575 hlist_for_each_entry_safe(key, tmp, &msk->keys, sklist) { in mctp_sk_unhash()
576 spin_lock_irqsave(&key->lock, fl2); in mctp_sk_unhash()
577 __mctp_key_remove(key, net, fl2, MCTP_TRACE_KEY_CLOSED); in mctp_sk_unhash()