Lines Matching refs:aca
207 static void aca_get(struct ifacaddr6 *aca) in aca_get() argument
209 refcount_inc(&aca->aca_refcnt); in aca_get()
223 struct ifacaddr6 *aca; in aca_alloc() local
225 aca = kzalloc(sizeof(*aca), GFP_ATOMIC); in aca_alloc()
226 if (!aca) in aca_alloc()
229 aca->aca_addr = *addr; in aca_alloc()
231 aca->aca_rt = f6i; in aca_alloc()
232 aca->aca_users = 1; in aca_alloc()
234 aca->aca_cstamp = aca->aca_tstamp = jiffies; in aca_alloc()
235 refcount_set(&aca->aca_refcnt, 1); in aca_alloc()
237 return aca; in aca_alloc()
245 struct ifacaddr6 *aca; in __ipv6_dev_ac_inc() local
258 for (aca = idev->ac_list; aca; aca = aca->aca_next) { in __ipv6_dev_ac_inc()
259 if (ipv6_addr_equal(&aca->aca_addr, addr)) { in __ipv6_dev_ac_inc()
260 aca->aca_users++; in __ipv6_dev_ac_inc()
272 aca = aca_alloc(f6i, addr); in __ipv6_dev_ac_inc()
273 if (!aca) { 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()
285 aca_get(aca); in __ipv6_dev_ac_inc()
290 addrconf_join_solict(idev->dev, &aca->aca_addr); in __ipv6_dev_ac_inc()
292 aca_put(aca); in __ipv6_dev_ac_inc()
304 struct ifacaddr6 *aca, *prev_aca; in __ipv6_dev_ac_dec() local
310 for (aca = idev->ac_list; aca; aca = aca->aca_next) { in __ipv6_dev_ac_dec()
311 if (ipv6_addr_equal(&aca->aca_addr, addr)) in __ipv6_dev_ac_dec()
313 prev_aca = aca; in __ipv6_dev_ac_dec()
315 if (!aca) { in __ipv6_dev_ac_dec()
319 if (--aca->aca_users > 0) { in __ipv6_dev_ac_dec()
324 prev_aca->aca_next = aca->aca_next; in __ipv6_dev_ac_dec()
326 idev->ac_list = aca->aca_next; 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()
332 aca_put(aca); in __ipv6_dev_ac_dec()
348 struct ifacaddr6 *aca; in ipv6_ac_destroy_dev() local
351 while ((aca = idev->ac_list) != NULL) { in ipv6_ac_destroy_dev()
352 idev->ac_list = aca->aca_next; 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()
359 aca_put(aca); in ipv6_ac_destroy_dev()
373 struct ifacaddr6 *aca; in ipv6_chk_acast_dev() local
378 for (aca = idev->ac_list; aca; aca = aca->aca_next) in ipv6_chk_acast_dev()
379 if (ipv6_addr_equal(&aca->aca_addr, addr)) in ipv6_chk_acast_dev()
382 return aca != NULL; in ipv6_chk_acast_dev()