mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-30 11:41:38 -04:00
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
Conflicts: drivers/net/ethernet/mediatek/mtk_eth_soc.c drivers/net/ethernet/qlogic/qed/qed_dcbx.c drivers/net/phy/Kconfig All conflicts were cases of overlapping commits. Signed-off-by: David S. Miller <[email protected]>
This commit is contained in:
commit
b20b378d49
473 changed files with 3789 additions and 2493 deletions
|
|
@ -778,7 +778,14 @@ static int addrconf_fixup_forwarding(struct ctl_table *table, int *p, int newf)
|
|||
}
|
||||
|
||||
if (p == &net->ipv6.devconf_all->forwarding) {
|
||||
int old_dflt = net->ipv6.devconf_dflt->forwarding;
|
||||
|
||||
net->ipv6.devconf_dflt->forwarding = newf;
|
||||
if ((!newf) ^ (!old_dflt))
|
||||
inet6_netconf_notify_devconf(net, NETCONFA_FORWARDING,
|
||||
NETCONFA_IFINDEX_DEFAULT,
|
||||
net->ipv6.devconf_dflt);
|
||||
|
||||
addrconf_forward_change(net, newf);
|
||||
if ((!newf) ^ (!old))
|
||||
inet6_netconf_notify_devconf(net, NETCONFA_FORWARDING,
|
||||
|
|
@ -1941,6 +1948,7 @@ errdad:
|
|||
spin_unlock_bh(&ifp->lock);
|
||||
|
||||
addrconf_mod_dad_work(ifp, 0);
|
||||
in6_ifa_put(ifp);
|
||||
}
|
||||
|
||||
/* Join to solicited addr multicast group.
|
||||
|
|
@ -3850,6 +3858,7 @@ static void addrconf_dad_work(struct work_struct *w)
|
|||
addrconf_dad_begin(ifp);
|
||||
goto out;
|
||||
} else if (action == DAD_ABORT) {
|
||||
in6_ifa_hold(ifp);
|
||||
addrconf_dad_stop(ifp, 1);
|
||||
if (disable_ipv6)
|
||||
addrconf_ifdown(idev->dev, 0);
|
||||
|
|
@ -6025,7 +6034,7 @@ static const struct ctl_table addrconf_sysctl[] = {
|
|||
static int __addrconf_sysctl_register(struct net *net, char *dev_name,
|
||||
struct inet6_dev *idev, struct ipv6_devconf *p)
|
||||
{
|
||||
int i;
|
||||
int i, ifindex;
|
||||
struct ctl_table *table;
|
||||
char path[sizeof("net/ipv6/conf/") + IFNAMSIZ];
|
||||
|
||||
|
|
@ -6045,6 +6054,13 @@ static int __addrconf_sysctl_register(struct net *net, char *dev_name,
|
|||
if (!p->sysctl_header)
|
||||
goto free;
|
||||
|
||||
if (!strcmp(dev_name, "all"))
|
||||
ifindex = NETCONFA_IFINDEX_ALL;
|
||||
else if (!strcmp(dev_name, "default"))
|
||||
ifindex = NETCONFA_IFINDEX_DEFAULT;
|
||||
else
|
||||
ifindex = idev->dev->ifindex;
|
||||
inet6_netconf_notify_devconf(net, NETCONFA_ALL, ifindex, p);
|
||||
return 0;
|
||||
|
||||
free:
|
||||
|
|
|
|||
|
|
@ -1174,6 +1174,7 @@ ip4ip6_tnl_xmit(struct sk_buff *skb, struct net_device *dev)
|
|||
encap_limit = t->parms.encap_limit;
|
||||
|
||||
memcpy(&fl6, &t->fl.u.ip6, sizeof(fl6));
|
||||
fl6.flowi6_proto = IPPROTO_IPIP;
|
||||
|
||||
dsfield = ipv4_get_dsfield(iph);
|
||||
|
||||
|
|
@ -1233,6 +1234,7 @@ ip6ip6_tnl_xmit(struct sk_buff *skb, struct net_device *dev)
|
|||
encap_limit = t->parms.encap_limit;
|
||||
|
||||
memcpy(&fl6, &t->fl.u.ip6, sizeof(fl6));
|
||||
fl6.flowi6_proto = IPPROTO_IPV6;
|
||||
|
||||
dsfield = ipv6_get_dsfield(ipv6h);
|
||||
if (t->parms.flags & IP6_TNL_F_USE_ORIG_TCLASS)
|
||||
|
|
|
|||
|
|
@ -47,6 +47,7 @@ static const struct nft_expr_ops nft_reject_ipv6_ops = {
|
|||
.eval = nft_reject_ipv6_eval,
|
||||
.init = nft_reject_init,
|
||||
.dump = nft_reject_dump,
|
||||
.validate = nft_reject_validate,
|
||||
};
|
||||
|
||||
static struct nft_expr_type nft_reject_ipv6_type __read_mostly = {
|
||||
|
|
|
|||
|
|
@ -126,8 +126,10 @@ static int ping_v6_sendmsg(struct sock *sk, struct msghdr *msg, size_t len)
|
|||
rt = (struct rt6_info *) dst;
|
||||
|
||||
np = inet6_sk(sk);
|
||||
if (!np)
|
||||
return -EBADF;
|
||||
if (!np) {
|
||||
err = -EBADF;
|
||||
goto dst_err_out;
|
||||
}
|
||||
|
||||
if (!fl6.flowi6_oif && ipv6_addr_is_multicast(&fl6.daddr))
|
||||
fl6.flowi6_oif = np->mcast_oif;
|
||||
|
|
@ -163,6 +165,9 @@ static int ping_v6_sendmsg(struct sock *sk, struct msghdr *msg, size_t len)
|
|||
}
|
||||
release_sock(sk);
|
||||
|
||||
dst_err_out:
|
||||
dst_release(dst);
|
||||
|
||||
if (err)
|
||||
return err;
|
||||
|
||||
|
|
|
|||
|
|
@ -23,6 +23,7 @@ int xfrm6_extract_input(struct xfrm_state *x, struct sk_buff *skb)
|
|||
|
||||
int xfrm6_rcv_spi(struct sk_buff *skb, int nexthdr, __be32 spi)
|
||||
{
|
||||
XFRM_TUNNEL_SKB_CB(skb)->tunnel.ip6 = NULL;
|
||||
XFRM_SPI_SKB_CB(skb)->family = AF_INET6;
|
||||
XFRM_SPI_SKB_CB(skb)->daddroff = offsetof(struct ipv6hdr, daddr);
|
||||
return xfrm_input(skb, nexthdr, spi, 0);
|
||||
|
|
|
|||
|
|
@ -36,7 +36,7 @@ static struct dst_entry *xfrm6_dst_lookup(struct net *net, int tos, int oif,
|
|||
int err;
|
||||
|
||||
memset(&fl6, 0, sizeof(fl6));
|
||||
fl6.flowi6_oif = oif;
|
||||
fl6.flowi6_oif = l3mdev_master_ifindex_by_index(net, oif);
|
||||
fl6.flowi6_flags = FLOWI_FLAG_SKIP_NH_OIF;
|
||||
memcpy(&fl6.daddr, daddr, sizeof(fl6.daddr));
|
||||
if (saddr)
|
||||
|
|
|
|||
Loading…
Reference in a new issue