Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
This commit is contained in:
@@ -601,8 +601,11 @@ static int raw_sendmsg(struct sock *sk, struct msghdr *msg, size_t len)
|
||||
(inet->hdrincl ? FLOWI_FLAG_KNOWN_NH : 0),
|
||||
daddr, saddr, 0, 0);
|
||||
|
||||
if (!saddr && ipc.oif)
|
||||
l3mdev_get_saddr(net, ipc.oif, &fl4);
|
||||
if (!saddr && ipc.oif) {
|
||||
err = l3mdev_get_saddr(net, ipc.oif, &fl4);
|
||||
if (err < 0)
|
||||
goto done;
|
||||
}
|
||||
|
||||
if (!inet->hdrincl) {
|
||||
rfv.msg = msg;
|
||||
|
@@ -2478,6 +2478,9 @@ static void tcp_cwnd_reduction(struct sock *sk, const int prior_unsacked,
|
||||
int newly_acked_sacked = prior_unsacked -
|
||||
(tp->packets_out - tp->sacked_out);
|
||||
|
||||
if (newly_acked_sacked <= 0 || WARN_ON_ONCE(!tp->prior_cwnd))
|
||||
return;
|
||||
|
||||
tp->prr_delivered += newly_acked_sacked;
|
||||
if (delta < 0) {
|
||||
u64 dividend = (u64)tp->snd_ssthresh * tp->prr_delivered +
|
||||
|
@@ -1097,8 +1097,11 @@ int udp_sendmsg(struct sock *sk, struct msghdr *msg, size_t len)
|
||||
flow_flags,
|
||||
faddr, saddr, dport, inet->inet_sport);
|
||||
|
||||
if (!saddr && ipc.oif)
|
||||
l3mdev_get_saddr(net, ipc.oif, fl4);
|
||||
if (!saddr && ipc.oif) {
|
||||
err = l3mdev_get_saddr(net, ipc.oif, fl4);
|
||||
if (err < 0)
|
||||
goto out;
|
||||
}
|
||||
|
||||
security_sk_classify_flow(sk, flowi4_to_flowi(fl4));
|
||||
rt = ip_route_output_flow(net, fl4, sk);
|
||||
|
Reference in New Issue
Block a user