Lines Matching refs:idev

57 	struct inet6_dev *idev;  in ipv6_sock_ac_join()  local
104 idev = __in6_dev_get(dev); in ipv6_sock_ac_join()
105 if (!idev) { in ipv6_sock_ac_join()
113 ishost = !idev->cnf.forwarding; in ipv6_sock_ac_join()
129 err = __ipv6_dev_ac_inc(idev, addr); in ipv6_sock_ac_join()
243 int __ipv6_dev_ac_inc(struct inet6_dev *idev, const struct in6_addr *addr) in __ipv6_dev_ac_inc() argument
252 write_lock_bh(&idev->lock); in __ipv6_dev_ac_inc()
253 if (idev->dead) { in __ipv6_dev_ac_inc()
258 for (aca = idev->ac_list; aca; aca = aca->aca_next) { in __ipv6_dev_ac_inc()
266 net = dev_net(idev->dev); in __ipv6_dev_ac_inc()
267 f6i = addrconf_f6i_alloc(net, idev, addr, true, GFP_ATOMIC); in __ipv6_dev_ac_inc()
279 aca->aca_next = idev->ac_list; in __ipv6_dev_ac_inc()
280 idev->ac_list = aca; in __ipv6_dev_ac_inc()
286 write_unlock_bh(&idev->lock); in __ipv6_dev_ac_inc()
290 addrconf_join_solict(idev->dev, &aca->aca_addr); in __ipv6_dev_ac_inc()
295 write_unlock_bh(&idev->lock); in __ipv6_dev_ac_inc()
302 int __ipv6_dev_ac_dec(struct inet6_dev *idev, const struct in6_addr *addr) in __ipv6_dev_ac_dec() argument
308 write_lock_bh(&idev->lock); in __ipv6_dev_ac_dec()
310 for (aca = idev->ac_list; aca; aca = aca->aca_next) { in __ipv6_dev_ac_dec()
316 write_unlock_bh(&idev->lock); in __ipv6_dev_ac_dec()
320 write_unlock_bh(&idev->lock); in __ipv6_dev_ac_dec()
326 idev->ac_list = aca->aca_next; in __ipv6_dev_ac_dec()
327 write_unlock_bh(&idev->lock); in __ipv6_dev_ac_dec()
328 addrconf_leave_solict(idev, &aca->aca_addr); in __ipv6_dev_ac_dec()
330 ip6_del_rt(dev_net(idev->dev), aca->aca_rt); in __ipv6_dev_ac_dec()
339 struct inet6_dev *idev = __in6_dev_get(dev); in ipv6_dev_ac_dec() local
341 if (!idev) in ipv6_dev_ac_dec()
343 return __ipv6_dev_ac_dec(idev, addr); in ipv6_dev_ac_dec()
346 void ipv6_ac_destroy_dev(struct inet6_dev *idev) in ipv6_ac_destroy_dev() argument
350 write_lock_bh(&idev->lock); in ipv6_ac_destroy_dev()
351 while ((aca = idev->ac_list) != NULL) { in ipv6_ac_destroy_dev()
352 idev->ac_list = aca->aca_next; in ipv6_ac_destroy_dev()
353 write_unlock_bh(&idev->lock); in ipv6_ac_destroy_dev()
355 addrconf_leave_solict(idev, &aca->aca_addr); in ipv6_ac_destroy_dev()
357 ip6_del_rt(dev_net(idev->dev), aca->aca_rt); in ipv6_ac_destroy_dev()
361 write_lock_bh(&idev->lock); in ipv6_ac_destroy_dev()
363 write_unlock_bh(&idev->lock); in ipv6_ac_destroy_dev()
372 struct inet6_dev *idev; in ipv6_chk_acast_dev() local
375 idev = __in6_dev_get(dev); in ipv6_chk_acast_dev()
376 if (idev) { in ipv6_chk_acast_dev()
377 read_lock_bh(&idev->lock); in ipv6_chk_acast_dev()
378 for (aca = idev->ac_list; aca; aca = aca->aca_next) in ipv6_chk_acast_dev()
381 read_unlock_bh(&idev->lock); in ipv6_chk_acast_dev()
424 struct inet6_dev *idev; member
435 state->idev = NULL; in ac6_get_first()
437 struct inet6_dev *idev; in ac6_get_first() local
438 idev = __in6_dev_get(state->dev); in ac6_get_first()
439 if (!idev) in ac6_get_first()
441 read_lock_bh(&idev->lock); in ac6_get_first()
442 im = idev->ac_list; in ac6_get_first()
444 state->idev = idev; in ac6_get_first()
447 read_unlock_bh(&idev->lock); in ac6_get_first()
458 if (likely(state->idev != NULL)) in ac6_get_next()
459 read_unlock_bh(&state->idev->lock); in ac6_get_next()
463 state->idev = NULL; in ac6_get_next()
466 state->idev = __in6_dev_get(state->dev); in ac6_get_next()
467 if (!state->idev) in ac6_get_next()
469 read_lock_bh(&state->idev->lock); in ac6_get_next()
470 im = state->idev->ac_list; in ac6_get_next()
504 if (likely(state->idev != NULL)) { in ac6_seq_stop()
505 read_unlock_bh(&state->idev->lock); in ac6_seq_stop()
506 state->idev = NULL; in ac6_seq_stop()