On 10/26/18 3:22 PM, Jeff Barnhill wrote: > @@ -275,6 +356,13 @@ int __ipv6_dev_ac_inc(struct inet6_dev *idev, const > struct in6_addr *addr) > err = -ENOMEM; > goto out; > } > + err = ipv6_add_acaddr_hash(dev_net(idev->dev), addr); > + if (err) { > + fib6_info_release(f6i); > + fib6_info_release(f6i); > + kfree(aca); > + goto out; > + }
I think aca_put() makes this less confusing as it will do the fib6_info_release(f6i) and kfree(aca);