mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-29 19:21:31 -04:00
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
All three conflicts were cases of simple overlapping changes. Signed-off-by: David S. Miller <[email protected]>
This commit is contained in:
commit
6abdd5f593
468 changed files with 5386 additions and 2127 deletions
|
|
@ -1872,7 +1872,6 @@ static int addrconf_dad_end(struct inet6_ifaddr *ifp)
|
|||
|
||||
void addrconf_dad_failure(struct inet6_ifaddr *ifp)
|
||||
{
|
||||
struct in6_addr addr;
|
||||
struct inet6_dev *idev = ifp->idev;
|
||||
struct net *net = dev_net(ifp->idev->dev);
|
||||
|
||||
|
|
@ -1934,18 +1933,6 @@ void addrconf_dad_failure(struct inet6_ifaddr *ifp)
|
|||
in6_ifa_put(ifp2);
|
||||
lock_errdad:
|
||||
spin_lock_bh(&ifp->lock);
|
||||
} else if (idev->cnf.accept_dad > 1 && !idev->cnf.disable_ipv6) {
|
||||
addr.s6_addr32[0] = htonl(0xfe800000);
|
||||
addr.s6_addr32[1] = 0;
|
||||
|
||||
if (!ipv6_generate_eui64(addr.s6_addr + 8, idev->dev) &&
|
||||
ipv6_addr_equal(&ifp->addr, &addr)) {
|
||||
/* DAD failed for link-local based on MAC address */
|
||||
idev->cnf.disable_ipv6 = 1;
|
||||
|
||||
pr_info("%s: IPv6 being disabled!\n",
|
||||
ifp->idev->dev->name);
|
||||
}
|
||||
}
|
||||
|
||||
errdad:
|
||||
|
|
@ -3821,6 +3808,7 @@ static void addrconf_dad_work(struct work_struct *w)
|
|||
dad_work);
|
||||
struct inet6_dev *idev = ifp->idev;
|
||||
struct in6_addr mcaddr;
|
||||
bool disable_ipv6 = false;
|
||||
|
||||
enum {
|
||||
DAD_PROCESS,
|
||||
|
|
@ -3837,6 +3825,24 @@ static void addrconf_dad_work(struct work_struct *w)
|
|||
} else if (ifp->state == INET6_IFADDR_STATE_ERRDAD) {
|
||||
action = DAD_ABORT;
|
||||
ifp->state = INET6_IFADDR_STATE_POSTDAD;
|
||||
|
||||
if (idev->cnf.accept_dad > 1 && !idev->cnf.disable_ipv6 &&
|
||||
!(ifp->flags & IFA_F_STABLE_PRIVACY)) {
|
||||
struct in6_addr addr;
|
||||
|
||||
addr.s6_addr32[0] = htonl(0xfe800000);
|
||||
addr.s6_addr32[1] = 0;
|
||||
|
||||
if (!ipv6_generate_eui64(addr.s6_addr + 8, idev->dev) &&
|
||||
ipv6_addr_equal(&ifp->addr, &addr)) {
|
||||
/* DAD failed for link-local based on MAC */
|
||||
idev->cnf.disable_ipv6 = 1;
|
||||
|
||||
pr_info("%s: IPv6 being disabled!\n",
|
||||
ifp->idev->dev->name);
|
||||
disable_ipv6 = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
spin_unlock_bh(&ifp->lock);
|
||||
|
||||
|
|
@ -3845,6 +3851,8 @@ static void addrconf_dad_work(struct work_struct *w)
|
|||
goto out;
|
||||
} else if (action == DAD_ABORT) {
|
||||
addrconf_dad_stop(ifp, 1);
|
||||
if (disable_ipv6)
|
||||
addrconf_ifdown(idev->dev, 0);
|
||||
goto out;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -945,9 +945,15 @@ static void tcp_v6_reqsk_send_ack(const struct sock *sk, struct sk_buff *skb,
|
|||
/* sk->sk_state == TCP_LISTEN -> for regular TCP_SYN_RECV
|
||||
* sk->sk_state == TCP_SYN_RECV -> for Fast Open.
|
||||
*/
|
||||
/* RFC 7323 2.3
|
||||
* The window field (SEG.WND) of every outgoing segment, with the
|
||||
* exception of <SYN> segments, MUST be right-shifted by
|
||||
* Rcv.Wind.Shift bits:
|
||||
*/
|
||||
tcp_v6_send_ack(sk, skb, (sk->sk_state == TCP_LISTEN) ?
|
||||
tcp_rsk(req)->snt_isn + 1 : tcp_sk(sk)->snd_nxt,
|
||||
tcp_rsk(req)->rcv_nxt, req->rsk_rcv_wnd,
|
||||
tcp_rsk(req)->rcv_nxt,
|
||||
req->rsk_rcv_wnd >> inet_rsk(req)->rcv_wscale,
|
||||
tcp_time_stamp, req->ts_recent, sk->sk_bound_dev_if,
|
||||
tcp_v6_md5_do_lookup(sk, &ipv6_hdr(skb)->daddr),
|
||||
0, 0);
|
||||
|
|
|
|||
|
|
@ -1449,7 +1449,6 @@ struct proto udpv6_prot = {
|
|||
.sysctl_wmem = &sysctl_udp_wmem_min,
|
||||
.sysctl_rmem = &sysctl_udp_rmem_min,
|
||||
.obj_size = sizeof(struct udp6_sock),
|
||||
.slab_flags = SLAB_DESTROY_BY_RCU,
|
||||
.h.udp_table = &udp_table,
|
||||
#ifdef CONFIG_COMPAT
|
||||
.compat_setsockopt = compat_udpv6_setsockopt,
|
||||
|
|
|
|||
|
|
@ -50,7 +50,6 @@ struct proto udplitev6_prot = {
|
|||
.unhash = udp_lib_unhash,
|
||||
.get_port = udp_v6_get_port,
|
||||
.obj_size = sizeof(struct udp6_sock),
|
||||
.slab_flags = SLAB_DESTROY_BY_RCU,
|
||||
.h.udp_table = &udplite_table,
|
||||
#ifdef CONFIG_COMPAT
|
||||
.compat_setsockopt = compat_udpv6_setsockopt,
|
||||
|
|
|
|||
Loading…
Reference in a new issue