From: Mark Brown Date: Tue, 11 Mar 2014 09:47:53 +0000 (+0000) Subject: Merge branch 'linaro-android-3.10-lsk' of git://git.linaro.org/people/jstultz/android... X-Git-Tag: firefly_0821_release~3680^2~156 X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=943550a24c51bdd971f579200f286241548deaf7;p=firefly-linux-kernel-4.4.55.git Merge branch 'linaro-android-3.10-lsk' of git://git.linaro.org/people/jstultz/android into linux-linaro-lsk-android Conflicts: arch/arm64/include/asm/cmpxchg.h drivers/cpufreq/cpufreq.c include/net/tcp.h net/ipv4/ping.c net/ipv4/sysctl_net_ipv4.c net/netfilter/xt_qtaguid.c --- 943550a24c51bdd971f579200f286241548deaf7 diff --cc include/net/tcp.h index a67601f2cb50,cfb55e14b25b..c10bd7a33492 --- a/include/net/tcp.h +++ b/include/net/tcp.h @@@ -287,7 -287,7 +287,8 @@@ extern int sysctl_tcp_thin_dupack extern int sysctl_tcp_early_retrans; extern int sysctl_tcp_limit_output_bytes; extern int sysctl_tcp_challenge_ack_limit; +extern int sysctl_tcp_min_tso_segs; + extern int sysctl_tcp_default_init_rwnd; extern atomic_long_t tcp_memory_allocated; extern struct percpu_counter tcp_sockets_allocated; diff --cc net/ipv4/ping.c index 8cae28f5c3cf,edd6e74cad35..b0891b877fca --- a/net/ipv4/ping.c +++ b/net/ipv4/ping.c @@@ -622,10 -822,13 +822,13 @@@ do_confirm goto out; } - static int ping_recvmsg(struct kiocb *iocb, struct sock *sk, struct msghdr *msg, - size_t len, int noblock, int flags, int *addr_len) + int ping_recvmsg(struct kiocb *iocb, struct sock *sk, struct msghdr *msg, + size_t len, int noblock, int flags, int *addr_len) { struct inet_sock *isk = inet_sk(sk); + int family = sk->sk_family; - struct sockaddr_in *sin; - struct sockaddr_in6 *sin6; ++ struct sockaddr_in *sin; ++ struct sockaddr_in6 *sin6; struct sk_buff *skb; int copied, err; @@@ -635,8 -838,22 +838,22 @@@ if (flags & MSG_OOB) goto out; - if (flags & MSG_ERRQUEUE) - return ip_recv_error(sk, msg, len, addr_len); - if (addr_len) { - if (family == AF_INET) - *addr_len = sizeof(*sin); - else if (family == AF_INET6 && addr_len) - *addr_len = sizeof(*sin6); - } ++ if (addr_len) { ++ if (family == AF_INET) ++ *addr_len = sizeof(*sin); ++ else if (family == AF_INET6 && addr_len) ++ *addr_len = sizeof(*sin6); ++ } + + if (flags & MSG_ERRQUEUE) { + if (family == AF_INET) { - return ip_recv_error(sk, msg, len); ++ return ip_recv_error(sk, msg, len, addr_len); + #if IS_ENABLED(CONFIG_IPV6) + } else if (family == AF_INET6) { + return pingv6_ops.ipv6_recv_error(sk, msg, len); + #endif + } + } skb = skb_recv_datagram(sk, flags, noblock, &err); if (!skb) diff --cc net/ipv4/sysctl_net_ipv4.c index 90b26beb84d4,f9bb5d7488e0..4fca1aa4c505 --- a/net/ipv4/sysctl_net_ipv4.c +++ b/net/ipv4/sysctl_net_ipv4.c @@@ -753,15 -763,13 +768,22 @@@ static struct ctl_table ipv4_table[] = .extra1 = &zero, .extra2 = &four, }, + { + .procname = "tcp_min_tso_segs", + .data = &sysctl_tcp_min_tso_segs, + .maxlen = sizeof(int), + .mode = 0644, + .proc_handler = proc_dointvec_minmax, + .extra1 = &zero, + .extra2 = &gso_max_segs, + }, + { + .procname = "tcp_default_init_rwnd", + .data = &sysctl_tcp_default_init_rwnd, + .maxlen = sizeof(int), + .mode = 0644, + .proc_handler = proc_tcp_default_init_rwnd + }, { .procname = "udp_mem", .data = &sysctl_udp_mem,