Lines Matching refs:walk
2280 int xfrm_state_walk(struct net *net, struct xfrm_state_walk *walk, in xfrm_state_walk() argument
2288 if (walk->seq != 0 && list_empty(&walk->all)) in xfrm_state_walk()
2292 if (list_empty(&walk->all)) in xfrm_state_walk()
2295 x = list_first_entry(&walk->all, struct xfrm_state_walk, all); in xfrm_state_walk()
2300 if (!xfrm_id_proto_match(state->id.proto, walk->proto)) in xfrm_state_walk()
2302 if (!__xfrm_state_filter_match(state, walk->filter)) in xfrm_state_walk()
2304 err = func(state, walk->seq, data); in xfrm_state_walk()
2306 list_move_tail(&walk->all, &x->all); in xfrm_state_walk()
2309 walk->seq++; in xfrm_state_walk()
2311 if (walk->seq == 0) { in xfrm_state_walk()
2315 list_del_init(&walk->all); in xfrm_state_walk()
2322 void xfrm_state_walk_init(struct xfrm_state_walk *walk, u8 proto, in xfrm_state_walk_init() argument
2325 INIT_LIST_HEAD(&walk->all); in xfrm_state_walk_init()
2326 walk->proto = proto; in xfrm_state_walk_init()
2327 walk->state = XFRM_STATE_DEAD; in xfrm_state_walk_init()
2328 walk->seq = 0; in xfrm_state_walk_init()
2329 walk->filter = filter; in xfrm_state_walk_init()
2333 void xfrm_state_walk_done(struct xfrm_state_walk *walk, struct net *net) in xfrm_state_walk_done() argument
2335 kfree(walk->filter); in xfrm_state_walk_done()
2337 if (list_empty(&walk->all)) in xfrm_state_walk_done()
2341 list_del(&walk->all); in xfrm_state_walk_done()