Lines Matching defs:idev

67 	struct inet6_dev *idev;
114 idev = __in6_dev_get(dev);
115 if (!idev) {
123 ishost = !idev->cnf.forwarding;
139 err = __ipv6_dev_ac_inc(idev, addr);
284 int __ipv6_dev_ac_inc(struct inet6_dev *idev, const struct in6_addr *addr)
293 write_lock_bh(&idev->lock);
294 if (idev->dead) {
299 for (aca = idev->ac_list; aca; aca = aca->aca_next) {
307 net = dev_net(idev->dev);
308 f6i = addrconf_f6i_alloc(net, idev, addr, true, GFP_ATOMIC);
320 aca->aca_next = idev->ac_list;
321 idev->ac_list = aca;
324 * it is already exposed via idev->ac_list.
327 write_unlock_bh(&idev->lock);
333 addrconf_join_solict(idev->dev, &aca->aca_addr);
338 write_unlock_bh(&idev->lock);
345 int __ipv6_dev_ac_dec(struct inet6_dev *idev, const struct in6_addr *addr)
351 write_lock_bh(&idev->lock);
353 for (aca = idev->ac_list; aca; aca = aca->aca_next) {
359 write_unlock_bh(&idev->lock);
363 write_unlock_bh(&idev->lock);
369 idev->ac_list = aca->aca_next;
370 write_unlock_bh(&idev->lock);
372 addrconf_leave_solict(idev, &aca->aca_addr);
374 ip6_del_rt(dev_net(idev->dev), aca->aca_rt, false);
383 struct inet6_dev *idev = __in6_dev_get(dev);
385 if (!idev)
387 return __ipv6_dev_ac_dec(idev, addr);
390 void ipv6_ac_destroy_dev(struct inet6_dev *idev)
394 write_lock_bh(&idev->lock);
395 while ((aca = idev->ac_list) != NULL) {
396 idev->ac_list = aca->aca_next;
397 write_unlock_bh(&idev->lock);
401 addrconf_leave_solict(idev, &aca->aca_addr);
403 ip6_del_rt(dev_net(idev->dev), aca->aca_rt, false);
407 write_lock_bh(&idev->lock);
409 write_unlock_bh(&idev->lock);
418 struct inet6_dev *idev;
421 idev = __in6_dev_get(dev);
422 if (idev) {
423 read_lock_bh(&idev->lock);
424 for (aca = idev->ac_list; aca; aca = aca->aca_next)
427 read_unlock_bh(&idev->lock);
480 struct inet6_dev *idev;
491 state->idev = NULL;
493 struct inet6_dev *idev;
494 idev = __in6_dev_get(state->dev);
495 if (!idev)
497 read_lock_bh(&idev->lock);
498 im = idev->ac_list;
500 state->idev = idev;
503 read_unlock_bh(&idev->lock);
514 if (likely(state->idev != NULL))
515 read_unlock_bh(&state->idev->lock);
519 state->idev = NULL;
522 state->idev = __in6_dev_get(state->dev);
523 if (!state->idev)
525 read_lock_bh(&state->idev->lock);
526 im = state->idev->ac_list;
560 if (likely(state->idev != NULL)) {
561 read_unlock_bh(&state->idev->lock);
562 state->idev = NULL;