aboutsummaryrefslogtreecommitdiffstats
path: root/net/ipv4
diff options
context:
space:
mode:
authorDavid S. Miller <davem@davemloft.net>2016-01-06 22:54:18 -0500
committerDavid S. Miller <davem@davemloft.net>2016-01-06 22:54:18 -0500
commit9e0efaf6b41bf22c2eb81258fc2a6f1538a643e5 (patch)
treee2daa5fb47f707f44b6b7e9da82a6d8017af3f8c /net/ipv4
parentc7f5d105495a38ed09e70d825f75d9d7d5407264 (diff)
parent51cb67c0b0fcb91581b15bd2e85f29af4d4b2df6 (diff)
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
Diffstat (limited to 'net/ipv4')
-rw-r--r--net/ipv4/raw.c7
-rw-r--r--net/ipv4/tcp_input.c3
-rw-r--r--net/ipv4/udp.c7
3 files changed, 13 insertions, 4 deletions
diff --git a/net/ipv4/raw.c b/net/ipv4/raw.c
index 63e5be0abd86..bc35f1842512 100644
--- a/net/ipv4/raw.c
+++ b/net/ipv4/raw.c
@@ -601,8 +601,11 @@ static int raw_sendmsg(struct sock *sk, struct msghdr *msg, size_t len)
601 (inet->hdrincl ? FLOWI_FLAG_KNOWN_NH : 0), 601 (inet->hdrincl ? FLOWI_FLAG_KNOWN_NH : 0),
602 daddr, saddr, 0, 0); 602 daddr, saddr, 0, 0);
603 603
604 if (!saddr && ipc.oif) 604 if (!saddr && ipc.oif) {
605 l3mdev_get_saddr(net, ipc.oif, &fl4); 605 err = l3mdev_get_saddr(net, ipc.oif, &fl4);
606 if (err < 0)
607 goto done;
608 }
606 609
607 if (!inet->hdrincl) { 610 if (!inet->hdrincl) {
608 rfv.msg = msg; 611 rfv.msg = msg;
diff --git a/net/ipv4/tcp_input.c b/net/ipv4/tcp_input.c
index 7b1fddc47019..0003d409fec5 100644
--- a/net/ipv4/tcp_input.c
+++ b/net/ipv4/tcp_input.c
@@ -2478,6 +2478,9 @@ static void tcp_cwnd_reduction(struct sock *sk, const int prior_unsacked,
2478 int newly_acked_sacked = prior_unsacked - 2478 int newly_acked_sacked = prior_unsacked -
2479 (tp->packets_out - tp->sacked_out); 2479 (tp->packets_out - tp->sacked_out);
2480 2480
2481 if (newly_acked_sacked <= 0 || WARN_ON_ONCE(!tp->prior_cwnd))
2482 return;
2483
2481 tp->prr_delivered += newly_acked_sacked; 2484 tp->prr_delivered += newly_acked_sacked;
2482 if (delta < 0) { 2485 if (delta < 0) {
2483 u64 dividend = (u64)tp->snd_ssthresh * tp->prr_delivered + 2486 u64 dividend = (u64)tp->snd_ssthresh * tp->prr_delivered +
diff --git a/net/ipv4/udp.c b/net/ipv4/udp.c
index 3a66731e3af6..dc45b538e237 100644
--- a/net/ipv4/udp.c
+++ b/net/ipv4/udp.c
@@ -1097,8 +1097,11 @@ int udp_sendmsg(struct sock *sk, struct msghdr *msg, size_t len)
1097 flow_flags, 1097 flow_flags,
1098 faddr, saddr, dport, inet->inet_sport); 1098 faddr, saddr, dport, inet->inet_sport);
1099 1099
1100 if (!saddr && ipc.oif) 1100 if (!saddr && ipc.oif) {
1101 l3mdev_get_saddr(net, ipc.oif, fl4); 1101 err = l3mdev_get_saddr(net, ipc.oif, fl4);
1102 if (err < 0)
1103 goto out;
1104 }
1102 1105
1103 security_sk_classify_flow(sk, flowi4_to_flowi(fl4)); 1106 security_sk_classify_flow(sk, flowi4_to_flowi(fl4));
1104 rt = ip_route_output_flow(net, fl4, sk); 1107 rt = ip_route_output_flow(net, fl4, sk);