Lines Matching refs:rx_sc
65 for (sc = rcu_dereference_bh(secy->rx_sc); \
69 for (sc = rtnl_dereference(secy->rx_sc); \
164 struct macsec_rx_sc *rx_sc = container_of(head, struct macsec_rx_sc, rcu_head); in free_rx_sc_rcu() local
166 free_percpu(rx_sc->stats); in free_rx_sc_rcu()
167 kfree(rx_sc); in free_rx_sc_rcu()
837 struct macsec_rx_sc *rx_sc = rx_sa->sc; in macsec_decrypt_done() local
866 macsec_rxsc_put(rx_sc); in macsec_decrypt_done()
973 struct macsec_rx_sc *rx_sc; in find_rx_sc() local
975 for_each_rxsc(secy, rx_sc) { in find_rx_sc()
976 if (rx_sc->sci == sci) in find_rx_sc()
977 return rx_sc; in find_rx_sc()
985 struct macsec_rx_sc *rx_sc; in find_rx_sc_rtnl() local
987 for_each_rxsc_rtnl(secy, rx_sc) { in find_rx_sc_rtnl()
988 if (rx_sc->sci == sci) in find_rx_sc_rtnl()
989 return rx_sc; in find_rx_sc_rtnl()
1077 struct macsec_rx_sc *rx_sc; in macsec_handle_frame() local
1141 rx_sc = sc; in macsec_handle_frame()
1152 rxsc_stats = this_cpu_ptr(rx_sc->stats); in macsec_handle_frame()
1161 rx_sa = macsec_rxsa_get(rx_sc->sa[macsec_skb_cb(skb)->assoc_num]); in macsec_handle_frame()
1217 macsec_rxsc_put(rx_sc); in macsec_handle_frame()
1234 macsec_rxsc_put(rx_sc); in macsec_handle_frame()
1252 macsec_rxsc_put(rx_sc); in macsec_handle_frame()
1360 static void free_rx_sc(struct macsec_rx_sc *rx_sc) in free_rx_sc() argument
1365 struct macsec_rx_sa *sa = rtnl_dereference(rx_sc->sa[i]); in free_rx_sc()
1367 RCU_INIT_POINTER(rx_sc->sa[i], NULL); in free_rx_sc()
1372 macsec_rxsc_put(rx_sc); in free_rx_sc()
1377 struct macsec_rx_sc *rx_sc, __rcu **rx_scp; in del_rx_sc() local
1379 for (rx_scp = &secy->rx_sc, rx_sc = rtnl_dereference(*rx_scp); in del_rx_sc()
1380 rx_sc; in del_rx_sc()
1381 rx_scp = &rx_sc->next, rx_sc = rtnl_dereference(*rx_scp)) { in del_rx_sc()
1382 if (rx_sc->sci == sci) { in del_rx_sc()
1383 if (rx_sc->active) in del_rx_sc()
1385 rcu_assign_pointer(*rx_scp, rx_sc->next); in del_rx_sc()
1386 return rx_sc; in del_rx_sc()
1396 struct macsec_rx_sc *rx_sc; in create_rx_sc() local
1407 rx_sc = kzalloc(sizeof(*rx_sc), GFP_KERNEL); in create_rx_sc()
1408 if (!rx_sc) in create_rx_sc()
1411 rx_sc->stats = netdev_alloc_pcpu_stats(struct pcpu_rx_sc_stats); in create_rx_sc()
1412 if (!rx_sc->stats) { in create_rx_sc()
1413 kfree(rx_sc); in create_rx_sc()
1417 rx_sc->sci = sci; in create_rx_sc()
1418 rx_sc->active = active; in create_rx_sc()
1419 refcount_set(&rx_sc->refcnt, 1); in create_rx_sc()
1422 rcu_assign_pointer(rx_sc->next, secy->rx_sc); in create_rx_sc()
1423 rcu_assign_pointer(secy->rx_sc, rx_sc); in create_rx_sc()
1425 if (rx_sc->active) in create_rx_sc()
1428 return rx_sc; in create_rx_sc()
1549 struct macsec_rx_sc *rx_sc; in get_rxsc_from_nl() local
1562 rx_sc = find_rx_sc_rtnl(secy, sci); in get_rxsc_from_nl()
1563 if (!rx_sc) in get_rxsc_from_nl()
1569 return rx_sc; in get_rxsc_from_nl()
1581 struct macsec_rx_sc *rx_sc; in get_rxsa_from_nl() local
1591 rx_sc = get_rxsc_from_nl(net, attrs, tb_rxsc, devp, secyp); in get_rxsa_from_nl()
1592 if (IS_ERR(rx_sc)) in get_rxsa_from_nl()
1593 return ERR_CAST(rx_sc); in get_rxsa_from_nl()
1595 rx_sa = rtnl_dereference(rx_sc->sa[*assoc_num]); in get_rxsa_from_nl()
1599 *scp = rx_sc; in get_rxsa_from_nl()
1718 struct macsec_rx_sc *rx_sc; in macsec_add_rxsa() local
1739 rx_sc = get_rxsc_from_nl(genl_info_net(info), attrs, tb_rxsc, &dev, &secy); in macsec_add_rxsa()
1740 if (IS_ERR(rx_sc)) { in macsec_add_rxsa()
1742 return PTR_ERR(rx_sc); in macsec_add_rxsa()
1778 rx_sa = rtnl_dereference(rx_sc->sa[assoc_num]); in macsec_add_rxsa()
1807 rx_sa->sc = rx_sc; in macsec_add_rxsa()
1839 rcu_assign_pointer(rx_sc->sa[assoc_num], rx_sa); in macsec_add_rxsa()
1869 struct macsec_rx_sc *rx_sc; in macsec_add_rxsc() local
1897 rx_sc = create_rx_sc(dev, sci, active); in macsec_add_rxsc()
1898 if (IS_ERR(rx_sc)) { in macsec_add_rxsc()
1900 return PTR_ERR(rx_sc); in macsec_add_rxsc()
1913 ctx.rx_sc = rx_sc; in macsec_add_rxsc()
1927 free_rx_sc(rx_sc); in macsec_add_rxsc()
2100 struct macsec_rx_sc *rx_sc; in macsec_del_rxsa() local
2118 &dev, &secy, &rx_sc, &assoc_num); in macsec_del_rxsa()
2149 RCU_INIT_POINTER(rx_sc->sa[assoc_num], NULL); in macsec_del_rxsa()
2166 struct macsec_rx_sc *rx_sc; in macsec_del_rxsc() local
2190 rx_sc = del_rx_sc(secy, sci); in macsec_del_rxsc()
2191 if (!rx_sc) { in macsec_del_rxsc()
2207 ctx.rx_sc = rx_sc; in macsec_del_rxsc()
2214 free_rx_sc(rx_sc); in macsec_del_rxsc()
2407 struct macsec_rx_sc *rx_sc; in macsec_upd_rxsa() local
2432 &dev, &secy, &rx_sc, &assoc_num); in macsec_upd_rxsa()
2498 struct macsec_rx_sc *rx_sc; in macsec_upd_rxsc() local
2514 rx_sc = get_rxsc_from_nl(genl_info_net(info), attrs, tb_rxsc, &dev, &secy); in macsec_upd_rxsc()
2515 if (IS_ERR(rx_sc)) { in macsec_upd_rxsc()
2517 return PTR_ERR(rx_sc); in macsec_upd_rxsc()
2520 was_active = rx_sc->active; in macsec_upd_rxsc()
2525 if (rx_sc->active != new) in macsec_upd_rxsc()
2528 rx_sc->active = new; in macsec_upd_rxsc()
2542 ctx.rx_sc = rx_sc; in macsec_upd_rxsc()
2556 rx_sc->active = was_active; in macsec_upd_rxsc()
2567 if (secy->rx_sc) in macsec_is_configured()
2705 struct macsec_rx_sc *rx_sc, int an, in get_rx_sa_stats() argument
2723 ctx.rx_sc = rx_sc; in get_rx_sa_stats()
2759 struct macsec_rx_sc *rx_sc, in get_rx_sc_stats() argument
2774 ctx.rx_sc = rx_sc; in get_rx_sc_stats()
2785 stats = per_cpu_ptr(rx_sc->stats, cpu); in get_rx_sc_stats()
3032 struct macsec_rx_sc *rx_sc; in dump_secy() local
3139 for_each_rxsc_rtnl(secy, rx_sc) { in dump_secy()
3149 if (nla_put_u8(skb, MACSEC_RXSC_ATTR_ACTIVE, rx_sc->active) || in dump_secy()
3150 nla_put_sci(skb, MACSEC_RXSC_ATTR_SCI, rx_sc->sci, in dump_secy()
3164 get_rx_sc_stats(dev, rx_sc, &rx_sc_stats); in dump_secy()
3182 struct macsec_rx_sa *rx_sa = rtnl_dereference(rx_sc->sa[i]); in dump_secy()
3207 get_rx_sa_stats(dev, rx_sc, i, rx_sa, &rx_sa_stats); in dump_secy()
3843 while (macsec->secy.rx_sc) { in macsec_del_dev()
3844 struct macsec_rx_sc *rx_sc = rtnl_dereference(macsec->secy.rx_sc); in macsec_del_dev() local
3846 rcu_assign_pointer(macsec->secy.rx_sc, rx_sc->next); in macsec_del_dev()
3847 free_rx_sc(rx_sc); in macsec_del_dev()