Lines Matching refs:xs
52 static void xsk_map_sock_add(struct xdp_sock *xs, struct xsk_map_node *node) in xsk_map_sock_add() argument
54 spin_lock_bh(&xs->map_list_lock); in xsk_map_sock_add()
55 list_add_tail(&node->node, &xs->map_list); in xsk_map_sock_add()
56 spin_unlock_bh(&xs->map_list_lock); in xsk_map_sock_add()
59 static void xsk_map_sock_delete(struct xdp_sock *xs, in xsk_map_sock_delete() argument
64 spin_lock_bh(&xs->map_list_lock); in xsk_map_sock_delete()
65 list_for_each_entry_safe(n, tmp, &xs->map_list, node) { in xsk_map_sock_delete()
71 spin_unlock_bh(&xs->map_list_lock); in xsk_map_sock_delete()
166 struct xdp_sock *xs, *old_xs, **map_entry; in xsk_map_update_elem() local
186 xs = (struct xdp_sock *)sock->sk; in xsk_map_update_elem()
197 if (old_xs == xs) { in xsk_map_update_elem()
207 xsk_map_sock_add(xs, node); in xsk_map_update_elem()
208 WRITE_ONCE(*map_entry, xs); in xsk_map_update_elem()
241 void xsk_map_try_sock_delete(struct xsk_map *map, struct xdp_sock *xs, in xsk_map_try_sock_delete() argument
245 if (READ_ONCE(*map_entry) == xs) { in xsk_map_try_sock_delete()
247 xsk_map_sock_delete(xs, map_entry); in xsk_map_try_sock_delete()