Lines Matching refs:sa
147 struct macsec_rx_sa *sa = rcu_dereference_bh(ptr); in macsec_rxsa_get() local
149 if (!sa || !sa->active) in macsec_rxsa_get()
152 if (!refcount_inc_not_zero(&sa->refcnt)) in macsec_rxsa_get()
155 return sa; in macsec_rxsa_get()
179 struct macsec_rx_sa *sa = container_of(head, struct macsec_rx_sa, rcu); in free_rxsa() local
181 crypto_free_aead(sa->key.tfm); in free_rxsa()
182 free_percpu(sa->stats); in free_rxsa()
183 kfree(sa); in free_rxsa()
186 static void macsec_rxsa_put(struct macsec_rx_sa *sa) in macsec_rxsa_put() argument
188 if (refcount_dec_and_test(&sa->refcnt)) in macsec_rxsa_put()
189 call_rcu(&sa->rcu, free_rxsa); in macsec_rxsa_put()
194 struct macsec_tx_sa *sa = rcu_dereference_bh(ptr); in macsec_txsa_get() local
196 if (!sa || !sa->active) in macsec_txsa_get()
199 if (!refcount_inc_not_zero(&sa->refcnt)) in macsec_txsa_get()
202 return sa; in macsec_txsa_get()
207 struct macsec_tx_sa *sa = container_of(head, struct macsec_tx_sa, rcu); in free_txsa() local
209 crypto_free_aead(sa->key.tfm); in free_txsa()
210 free_percpu(sa->stats); in free_txsa()
211 kfree(sa); in free_txsa()
214 static void macsec_txsa_put(struct macsec_tx_sa *sa) in macsec_txsa_put() argument
216 if (refcount_dec_and_test(&sa->refcnt)) in macsec_txsa_put()
217 call_rcu(&sa->rcu, free_txsa); in macsec_txsa_put()
545 struct macsec_tx_sa *sa = macsec_skb_cb(skb)->tx_sa; in macsec_encrypt_done() local
559 macsec_txsa_put(sa); in macsec_encrypt_done()
615 tx_sa = macsec_txsa_get(tx_sc->sa[tx_sc->encoding_sa]); in macsec_encrypt()
1219 rx_sa = macsec_rxsa_get(rx_sc->sa[macsec_skb_cb(skb)->assoc_num]); in macsec_handle_frame()
1426 struct macsec_rx_sa *sa = rtnl_dereference(rx_sc->sa[i]); in free_rx_sc() local
1428 RCU_INIT_POINTER(rx_sc->sa[i], NULL); in free_rx_sc()
1429 if (sa) in free_rx_sc()
1430 clear_rx_sa(sa); in free_rx_sc()
1592 tx_sa = rtnl_dereference(tx_sc->sa[*assoc_num]); in get_txsa_from_nl()
1656 rx_sa = rtnl_dereference(rx_sc->sa[*assoc_num]); in get_rxsa_from_nl()
1825 rx_sa = rtnl_dereference(rx_sc->sa[assoc_num]); in macsec_add_rxsa()
1873 ctx.sa.assoc_num = assoc_num; in macsec_add_rxsa()
1874 ctx.sa.rx_sa = rx_sa; in macsec_add_rxsa()
1876 memcpy(ctx.sa.key, nla_data(tb_sa[MACSEC_SA_ATTR_KEY]), in macsec_add_rxsa()
1880 memzero_explicit(ctx.sa.key, secy->key_len); in macsec_add_rxsa()
1886 rcu_assign_pointer(rx_sc->sa[assoc_num], rx_sa); in macsec_add_rxsa()
2068 tx_sa = rtnl_dereference(tx_sc->sa[assoc_num]); in macsec_add_txsa()
2116 ctx.sa.assoc_num = assoc_num; in macsec_add_txsa()
2117 ctx.sa.tx_sa = tx_sa; in macsec_add_txsa()
2119 memcpy(ctx.sa.key, nla_data(tb_sa[MACSEC_SA_ATTR_KEY]), in macsec_add_txsa()
2123 memzero_explicit(ctx.sa.key, secy->key_len); in macsec_add_txsa()
2129 rcu_assign_pointer(tx_sc->sa[assoc_num], tx_sa); in macsec_add_txsa()
2187 ctx.sa.assoc_num = assoc_num; in macsec_del_rxsa()
2188 ctx.sa.rx_sa = rx_sa; in macsec_del_rxsa()
2196 RCU_INIT_POINTER(rx_sc->sa[assoc_num], NULL); in macsec_del_rxsa()
2312 ctx.sa.assoc_num = assoc_num; in macsec_del_txsa()
2313 ctx.sa.tx_sa = tx_sa; in macsec_del_txsa()
2321 RCU_INIT_POINTER(tx_sc->sa[assoc_num], NULL); in macsec_del_txsa()
2424 ctx.sa.assoc_num = assoc_num; in macsec_upd_txsa()
2425 ctx.sa.tx_sa = tx_sa; in macsec_upd_txsa()
2426 ctx.sa.update_pn = !!prev_pn.full64; in macsec_upd_txsa()
2518 ctx.sa.assoc_num = assoc_num; in macsec_upd_rxsa()
2519 ctx.sa.rx_sa = rx_sa; in macsec_upd_rxsa()
2520 ctx.sa.update_pn = !!prev_pn.full64; in macsec_upd_rxsa()
2620 if (tx_sc->sa[i]) in macsec_is_configured()
2773 ctx.sa.assoc_num = an; in get_tx_sa_stats()
2774 ctx.sa.tx_sa = tx_sa; in get_tx_sa_stats()
2817 ctx.sa.assoc_num = an; in get_rx_sa_stats()
2818 ctx.sa.rx_sa = rx_sa; in get_rx_sa_stats()
3180 struct macsec_tx_sa *tx_sa = rtnl_dereference(tx_sc->sa[i]); in dump_secy()
3280 struct macsec_rx_sa *rx_sa = rtnl_dereference(rx_sc->sa[i]); in dump_secy()
3893 tx_sa = rtnl_dereference(tx_sc->sa[tx_sc->encoding_sa]); in macsec_changelink_common()
4034 struct macsec_tx_sa *sa = rtnl_dereference(macsec->secy.tx_sc.sa[i]); in macsec_del_dev() local
4036 if (sa) { in macsec_del_dev()
4037 RCU_INIT_POINTER(macsec->secy.tx_sc.sa[i], NULL); in macsec_del_dev()
4038 clear_tx_sa(sa); in macsec_del_dev()