Lines Matching refs:sa

143 	struct macsec_rx_sa *sa = rcu_dereference_bh(ptr);  in macsec_rxsa_get()  local
145 if (!sa || !sa->active) in macsec_rxsa_get()
148 if (!refcount_inc_not_zero(&sa->refcnt)) in macsec_rxsa_get()
151 return sa; in macsec_rxsa_get()
156 struct macsec_rx_sa *sa = NULL; in macsec_active_rxsa_get() local
160 sa = macsec_rxsa_get(rx_sc->sa[an]); in macsec_active_rxsa_get()
161 if (sa) in macsec_active_rxsa_get()
164 return sa; in macsec_active_rxsa_get()
188 struct macsec_rx_sa *sa = container_of(head, struct macsec_rx_sa, rcu); in free_rxsa() local
190 crypto_free_aead(sa->key.tfm); in free_rxsa()
191 free_percpu(sa->stats); in free_rxsa()
192 kfree(sa); in free_rxsa()
195 static void macsec_rxsa_put(struct macsec_rx_sa *sa) in macsec_rxsa_put() argument
197 if (refcount_dec_and_test(&sa->refcnt)) in macsec_rxsa_put()
198 call_rcu(&sa->rcu, free_rxsa); in macsec_rxsa_put()
203 struct macsec_tx_sa *sa = rcu_dereference_bh(ptr); in macsec_txsa_get() local
205 if (!sa || !sa->active) in macsec_txsa_get()
208 if (!refcount_inc_not_zero(&sa->refcnt)) in macsec_txsa_get()
211 return sa; in macsec_txsa_get()
216 struct macsec_tx_sa *sa = container_of(head, struct macsec_tx_sa, rcu); in free_txsa() local
218 crypto_free_aead(sa->key.tfm); in free_txsa()
219 free_percpu(sa->stats); in free_txsa()
220 kfree(sa); in free_txsa()
223 static void macsec_txsa_put(struct macsec_tx_sa *sa) in macsec_txsa_put() argument
225 if (refcount_dec_and_test(&sa->refcnt)) in macsec_txsa_put()
226 call_rcu(&sa->rcu, free_txsa); in macsec_txsa_put()
530 struct macsec_tx_sa *sa = macsec_skb_cb(skb)->tx_sa; in macsec_encrypt_done() local
544 macsec_txsa_put(sa); in macsec_encrypt_done()
600 tx_sa = macsec_txsa_get(tx_sc->sa[tx_sc->encoding_sa]); in macsec_encrypt()
1201 rx_sa = macsec_rxsa_get(rx_sc->sa[macsec_skb_cb(skb)->assoc_num]); in macsec_handle_frame()
1412 struct macsec_rx_sa *sa = rtnl_dereference(rx_sc->sa[i]); in free_rx_sc() local
1414 RCU_INIT_POINTER(rx_sc->sa[i], NULL); in free_rx_sc()
1415 if (sa) in free_rx_sc()
1416 clear_rx_sa(sa); in free_rx_sc()
1578 tx_sa = rtnl_dereference(tx_sc->sa[*assoc_num]); in get_txsa_from_nl()
1642 rx_sa = rtnl_dereference(rx_sc->sa[*assoc_num]); in get_rxsa_from_nl()
1811 rx_sa = rtnl_dereference(rx_sc->sa[assoc_num]); in macsec_add_rxsa()
1859 ctx.sa.assoc_num = assoc_num; in macsec_add_rxsa()
1860 ctx.sa.rx_sa = rx_sa; in macsec_add_rxsa()
1862 memcpy(ctx.sa.key, nla_data(tb_sa[MACSEC_SA_ATTR_KEY]), in macsec_add_rxsa()
1866 memzero_explicit(ctx.sa.key, secy->key_len); in macsec_add_rxsa()
1872 rcu_assign_pointer(rx_sc->sa[assoc_num], rx_sa); in macsec_add_rxsa()
2054 tx_sa = rtnl_dereference(tx_sc->sa[assoc_num]); in macsec_add_txsa()
2102 ctx.sa.assoc_num = assoc_num; in macsec_add_txsa()
2103 ctx.sa.tx_sa = tx_sa; in macsec_add_txsa()
2105 memcpy(ctx.sa.key, nla_data(tb_sa[MACSEC_SA_ATTR_KEY]), in macsec_add_txsa()
2109 memzero_explicit(ctx.sa.key, secy->key_len); in macsec_add_txsa()
2115 rcu_assign_pointer(tx_sc->sa[assoc_num], tx_sa); in macsec_add_txsa()
2173 ctx.sa.assoc_num = assoc_num; in macsec_del_rxsa()
2174 ctx.sa.rx_sa = rx_sa; in macsec_del_rxsa()
2182 RCU_INIT_POINTER(rx_sc->sa[assoc_num], NULL); in macsec_del_rxsa()
2298 ctx.sa.assoc_num = assoc_num; in macsec_del_txsa()
2299 ctx.sa.tx_sa = tx_sa; in macsec_del_txsa()
2307 RCU_INIT_POINTER(tx_sc->sa[assoc_num], NULL); in macsec_del_txsa()
2410 ctx.sa.assoc_num = assoc_num; in macsec_upd_txsa()
2411 ctx.sa.tx_sa = tx_sa; in macsec_upd_txsa()
2412 ctx.sa.update_pn = !!prev_pn.full64; in macsec_upd_txsa()
2504 ctx.sa.assoc_num = assoc_num; in macsec_upd_rxsa()
2505 ctx.sa.rx_sa = rx_sa; in macsec_upd_rxsa()
2506 ctx.sa.update_pn = !!prev_pn.full64; in macsec_upd_rxsa()
2606 if (tx_sc->sa[i]) in macsec_is_configured()
2712 ctx.sa.assoc_num = an; in get_tx_sa_stats()
2713 ctx.sa.tx_sa = tx_sa; in get_tx_sa_stats()
2756 ctx.sa.assoc_num = an; in get_rx_sa_stats()
2757 ctx.sa.rx_sa = rx_sa; in get_rx_sa_stats()
3119 struct macsec_tx_sa *tx_sa = rtnl_dereference(tx_sc->sa[i]); in dump_secy()
3219 struct macsec_rx_sa *rx_sa = rtnl_dereference(rx_sc->sa[i]); in dump_secy()
3772 tx_sa = rtnl_dereference(tx_sc->sa[tx_sc->encoding_sa]); in macsec_changelink_common()
3913 struct macsec_tx_sa *sa = rtnl_dereference(macsec->secy.tx_sc.sa[i]); in macsec_del_dev() local
3915 if (sa) { in macsec_del_dev()
3916 RCU_INIT_POINTER(macsec->secy.tx_sc.sa[i], NULL); in macsec_del_dev()
3917 clear_tx_sa(sa); in macsec_del_dev()