Lines Matching refs:idev

57 	struct inet6_dev *idev;  in ipv6_sock_ac_join()  local
101 idev = __in6_dev_get(dev); in ipv6_sock_ac_join()
102 if (!idev) { in ipv6_sock_ac_join()
110 ishost = !idev->cnf.forwarding; in ipv6_sock_ac_join()
126 err = __ipv6_dev_ac_inc(idev, addr); in ipv6_sock_ac_join()
221 struct inet6_dev *idev = rt->rt6i_idev; in aca_alloc() local
229 in6_dev_hold(idev); in aca_alloc()
230 aca->aca_idev = idev; in aca_alloc()
243 int __ipv6_dev_ac_inc(struct inet6_dev *idev, const struct in6_addr *addr) in __ipv6_dev_ac_inc() argument
251 write_lock_bh(&idev->lock); in __ipv6_dev_ac_inc()
252 if (idev->dead) { in __ipv6_dev_ac_inc()
257 for (aca = idev->ac_list; aca; aca = aca->aca_next) { in __ipv6_dev_ac_inc()
265 rt = addrconf_dst_alloc(idev, addr, true); in __ipv6_dev_ac_inc()
277 aca->aca_next = idev->ac_list; in __ipv6_dev_ac_inc()
278 idev->ac_list = aca; in __ipv6_dev_ac_inc()
284 write_unlock_bh(&idev->lock); in __ipv6_dev_ac_inc()
288 addrconf_join_solict(idev->dev, &aca->aca_addr); in __ipv6_dev_ac_inc()
293 write_unlock_bh(&idev->lock); in __ipv6_dev_ac_inc()
300 int __ipv6_dev_ac_dec(struct inet6_dev *idev, const struct in6_addr *addr) in __ipv6_dev_ac_dec() argument
306 write_lock_bh(&idev->lock); in __ipv6_dev_ac_dec()
308 for (aca = idev->ac_list; aca; aca = aca->aca_next) { in __ipv6_dev_ac_dec()
314 write_unlock_bh(&idev->lock); in __ipv6_dev_ac_dec()
318 write_unlock_bh(&idev->lock); in __ipv6_dev_ac_dec()
324 idev->ac_list = aca->aca_next; in __ipv6_dev_ac_dec()
325 write_unlock_bh(&idev->lock); in __ipv6_dev_ac_dec()
326 addrconf_leave_solict(idev, &aca->aca_addr); in __ipv6_dev_ac_dec()
338 struct inet6_dev *idev = __in6_dev_get(dev); in ipv6_dev_ac_dec() local
340 if (!idev) in ipv6_dev_ac_dec()
342 return __ipv6_dev_ac_dec(idev, addr); in ipv6_dev_ac_dec()
345 void ipv6_ac_destroy_dev(struct inet6_dev *idev) in ipv6_ac_destroy_dev() argument
349 write_lock_bh(&idev->lock); in ipv6_ac_destroy_dev()
350 while ((aca = idev->ac_list) != NULL) { in ipv6_ac_destroy_dev()
351 idev->ac_list = aca->aca_next; in ipv6_ac_destroy_dev()
352 write_unlock_bh(&idev->lock); in ipv6_ac_destroy_dev()
354 addrconf_leave_solict(idev, &aca->aca_addr); 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()