Lines Matching refs:walk
1614 int xfrm_state_walk(struct net *net, struct xfrm_state_walk *walk, in xfrm_state_walk() argument
1622 if (walk->seq != 0 && list_empty(&walk->all)) in xfrm_state_walk()
1626 if (list_empty(&walk->all)) in xfrm_state_walk()
1629 x = list_first_entry(&walk->all, struct xfrm_state_walk, all); in xfrm_state_walk()
1634 if (!xfrm_id_proto_match(state->id.proto, walk->proto)) in xfrm_state_walk()
1636 if (!__xfrm_state_filter_match(state, walk->filter)) in xfrm_state_walk()
1638 err = func(state, walk->seq, data); in xfrm_state_walk()
1640 list_move_tail(&walk->all, &x->all); in xfrm_state_walk()
1643 walk->seq++; in xfrm_state_walk()
1645 if (walk->seq == 0) { in xfrm_state_walk()
1649 list_del_init(&walk->all); in xfrm_state_walk()
1656 void xfrm_state_walk_init(struct xfrm_state_walk *walk, u8 proto, in xfrm_state_walk_init() argument
1659 INIT_LIST_HEAD(&walk->all); in xfrm_state_walk_init()
1660 walk->proto = proto; in xfrm_state_walk_init()
1661 walk->state = XFRM_STATE_DEAD; in xfrm_state_walk_init()
1662 walk->seq = 0; in xfrm_state_walk_init()
1663 walk->filter = filter; in xfrm_state_walk_init()
1667 void xfrm_state_walk_done(struct xfrm_state_walk *walk, struct net *net) in xfrm_state_walk_done() argument
1669 kfree(walk->filter); in xfrm_state_walk_done()
1671 if (list_empty(&walk->all)) in xfrm_state_walk_done()
1675 list_del(&walk->all); in xfrm_state_walk_done()