ipv6_chk_addr
if (ipv6_chk_addr(net,
if (ipv6_chk_addr(&init_net,
if (ipv6_chk_addr(&init_net, &laddr6, ip_dev, 1)) {
if (ipv6_chk_addr(&init_net, &laddr6, ip_dev, 1)) {
if (ipv6_chk_addr(&init_net, &laddr6, ndev, 1)) {
ipv6_chk_addr(net, &addr_in6->sin6_addr, dev, 1))
return ipv6_chk_addr(dev_net(dev), addr, dev, 0);
if (ipv6_chk_addr(&init_net, (struct in6_addr *)
if (unlikely(!ipv6_chk_addr(sock_net(sk), &fl.saddr, NULL, 0))) {
!ipv6_chk_addr(sock_net(sock), &fl.saddr, NULL, 0))) {
if (ipv6_chk_addr(&init_net, addr6, ndev, 1)) {
return ipv6_chk_addr(net, addr, dev, strict);
int ipv6_chk_addr(struct net *net, const struct in6_addr *addr,
int (*ipv6_chk_addr)(struct net *net, const struct in6_addr *addr,
if (ipv6_chk_addr(dev_net(dev), addr, dev, 0))
has_addr = pingv6_ops.ipv6_chk_addr(net, &addr->sin6_addr, dev,
EXPORT_SYMBOL(ipv6_chk_addr);
!ipv6_chk_addr(net, &addr->sin6_addr,
if (ipv6_chk_addr(net, &hdr->daddr, skb->dev, 0) ||
ipv6_chk_addr(net, &ipv6_hdr(skb)->saddr, in6_dev->dev, 0)) {
ipv6_chk_addr(dev_net(in6_dev->dev), &ipv6_hdr(skb)->saddr,
.chk_addr = ipv6_chk_addr,
pingv6_ops.ipv6_chk_addr = ipv6_chk_addr;
pingv6_ops.ipv6_chk_addr = dummy_ipv6_chk_addr;
if (!ipv6_chk_addr(sock_net(sk), &addr->sin6_addr,
if (!ipv6_chk_addr(net, &cfg->fc_prefsrc, dev, 0)) {
!ipv6_chk_addr(net, addr, rt->fib6_nh->fib_nh_dev, 0)) {
if (ipv6_chk_addr(net, saddr, dev,
if (!ipv6_chk_addr(sock_net(sk), &addr->l2tp_addr, dev, 0))
if (!ipv6_chk_addr(&init_net, addr, dev, 1)) {
if (ipv6_chk_addr(net, addr, dev, 1)) {
ret = ipv6_chk_addr(net, addr, dev, 0);
if (ipv6_chk_addr(dev_net(bdst->dev),
ipv6_chk_addr(net, in6, dev, 0);
ipv6_chk_addr(net, &addr->v6.sin6_addr,
if (ipv6_chk_addr(net, in6, NULL, 0) == 0 &&