Lines Matching refs:aca
224 struct ifacaddr6 *aca;
240 for (aca = idev->ac_list; aca; aca = aca->aca_next) {
241 if (ipv6_addr_equal(&aca->aca_addr, addr)) {
242 aca->aca_users++;
252 aca = kzalloc(sizeof(struct ifacaddr6), GFP_ATOMIC);
254 if (aca == NULL) {
261 kfree(aca);
266 ipv6_addr_copy(&aca->aca_addr, addr);
267 aca->aca_idev = idev;
268 aca->aca_rt = rt;
269 aca->aca_users = 1;
271 aca->aca_cstamp = aca->aca_tstamp = jiffies;
272 atomic_set(&aca->aca_refcnt, 2);
273 spin_lock_init(&aca->aca_lock);
275 aca->aca_next = idev->ac_list;
276 idev->ac_list = aca;
281 addrconf_join_solict(dev, &aca->aca_addr);
283 aca_put(aca);
296 struct ifacaddr6 *aca, *prev_aca;
300 for (aca = idev->ac_list; aca; aca = aca->aca_next) {
301 if (ipv6_addr_equal(&aca->aca_addr, addr))
303 prev_aca = aca;
305 if (!aca) {
309 if (--aca->aca_users > 0) {
314 prev_aca->aca_next = aca->aca_next;
316 idev->ac_list = aca->aca_next;
318 addrconf_leave_solict(idev, &aca->aca_addr);
320 dst_hold(&aca->aca_rt->dst);
321 ip6_del_rt(aca->aca_rt);
323 aca_put(aca);
344 struct ifacaddr6 *aca;
349 for (aca = idev->ac_list; aca; aca = aca->aca_next)
350 if (ipv6_addr_equal(&aca->aca_addr, addr))
353 return aca != NULL;