Lines Matching refs:idev

67 	struct inet6_dev *idev;  in ipv6_sock_ac_join()  local
114 idev = __in6_dev_get(dev); in ipv6_sock_ac_join()
115 if (!idev) { in ipv6_sock_ac_join()
123 ishost = !idev->cnf.forwarding; in ipv6_sock_ac_join()
139 err = __ipv6_dev_ac_inc(idev, addr); in ipv6_sock_ac_join()
277 int __ipv6_dev_ac_inc(struct inet6_dev *idev, const struct in6_addr *addr) in __ipv6_dev_ac_inc() argument
286 write_lock_bh(&idev->lock); in __ipv6_dev_ac_inc()
287 if (idev->dead) { in __ipv6_dev_ac_inc()
292 for (aca = idev->ac_list; aca; aca = aca->aca_next) { in __ipv6_dev_ac_inc()
300 net = dev_net(idev->dev); in __ipv6_dev_ac_inc()
301 f6i = addrconf_f6i_alloc(net, idev, addr, true, GFP_ATOMIC); in __ipv6_dev_ac_inc()
313 aca->aca_next = idev->ac_list; in __ipv6_dev_ac_inc()
314 idev->ac_list = aca; in __ipv6_dev_ac_inc()
320 write_unlock_bh(&idev->lock); in __ipv6_dev_ac_inc()
326 addrconf_join_solict(idev->dev, &aca->aca_addr); in __ipv6_dev_ac_inc()
331 write_unlock_bh(&idev->lock); in __ipv6_dev_ac_inc()
338 int __ipv6_dev_ac_dec(struct inet6_dev *idev, const struct in6_addr *addr) in __ipv6_dev_ac_dec() argument
344 write_lock_bh(&idev->lock); in __ipv6_dev_ac_dec()
346 for (aca = idev->ac_list; aca; aca = aca->aca_next) { in __ipv6_dev_ac_dec()
352 write_unlock_bh(&idev->lock); in __ipv6_dev_ac_dec()
356 write_unlock_bh(&idev->lock); in __ipv6_dev_ac_dec()
362 idev->ac_list = aca->aca_next; in __ipv6_dev_ac_dec()
363 write_unlock_bh(&idev->lock); in __ipv6_dev_ac_dec()
365 addrconf_leave_solict(idev, &aca->aca_addr); in __ipv6_dev_ac_dec()
367 ip6_del_rt(dev_net(idev->dev), aca->aca_rt); in __ipv6_dev_ac_dec()
376 struct inet6_dev *idev = __in6_dev_get(dev); in ipv6_dev_ac_dec() local
378 if (!idev) in ipv6_dev_ac_dec()
380 return __ipv6_dev_ac_dec(idev, addr); in ipv6_dev_ac_dec()
383 void ipv6_ac_destroy_dev(struct inet6_dev *idev) in ipv6_ac_destroy_dev() argument
387 write_lock_bh(&idev->lock); in ipv6_ac_destroy_dev()
388 while ((aca = idev->ac_list) != NULL) { in ipv6_ac_destroy_dev()
389 idev->ac_list = aca->aca_next; in ipv6_ac_destroy_dev()
390 write_unlock_bh(&idev->lock); in ipv6_ac_destroy_dev()
394 addrconf_leave_solict(idev, &aca->aca_addr); in ipv6_ac_destroy_dev()
396 ip6_del_rt(dev_net(idev->dev), aca->aca_rt); in ipv6_ac_destroy_dev()
400 write_lock_bh(&idev->lock); in ipv6_ac_destroy_dev()
402 write_unlock_bh(&idev->lock); in ipv6_ac_destroy_dev()
411 struct inet6_dev *idev; in ipv6_chk_acast_dev() local
414 idev = __in6_dev_get(dev); in ipv6_chk_acast_dev()
415 if (idev) { in ipv6_chk_acast_dev()
416 read_lock_bh(&idev->lock); in ipv6_chk_acast_dev()
417 for (aca = idev->ac_list; aca; aca = aca->aca_next) in ipv6_chk_acast_dev()
420 read_unlock_bh(&idev->lock); in ipv6_chk_acast_dev()
473 struct inet6_dev *idev; member
484 state->idev = NULL; in ac6_get_first()
486 struct inet6_dev *idev; in ac6_get_first() local
487 idev = __in6_dev_get(state->dev); in ac6_get_first()
488 if (!idev) in ac6_get_first()
490 read_lock_bh(&idev->lock); in ac6_get_first()
491 im = idev->ac_list; in ac6_get_first()
493 state->idev = idev; in ac6_get_first()
496 read_unlock_bh(&idev->lock); in ac6_get_first()
507 if (likely(state->idev != NULL)) in ac6_get_next()
508 read_unlock_bh(&state->idev->lock); in ac6_get_next()
512 state->idev = NULL; in ac6_get_next()
515 state->idev = __in6_dev_get(state->dev); in ac6_get_next()
516 if (!state->idev) in ac6_get_next()
518 read_lock_bh(&state->idev->lock); in ac6_get_next()
519 im = state->idev->ac_list; in ac6_get_next()
553 if (likely(state->idev != NULL)) { in ac6_seq_stop()
554 read_unlock_bh(&state->idev->lock); in ac6_seq_stop()
555 state->idev = NULL; in ac6_seq_stop()