diff options
author | David S. Miller <davem@davemloft.net> | 2015-04-02 16:16:53 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2015-04-02 16:16:53 -0400 |
commit | 9f0d34bc344889c2e6c593bd949d7ab821f0f4a5 (patch) | |
tree | e5bfc776a09315afa4dbcae97ac04f2cca239c96 /net/ipv4 | |
parent | e4a924f5768c55002c02ceba9b9f86824c35f956 (diff) | |
parent | 0a4812798fae4f6bfcaab51e31b3898ff5ea3108 (diff) |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
Conflicts:
drivers/net/usb/asix_common.c
drivers/net/usb/sr9800.c
drivers/net/usb/usbnet.c
include/linux/usb/usbnet.h
net/ipv4/tcp_ipv4.c
net/ipv6/tcp_ipv6.c
The TCP conflicts were overlapping changes. In 'net' we added a
READ_ONCE() to the socket cached RX route read, whilst in 'net-next'
Eric Dumazet touched the surrounding code dealing with how mini
sockets are handled.
With USB, it's a case of the same bug fix first going into net-next
and then I cherry picked it back into net.
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/ipv4')
-rw-r--r-- | net/ipv4/ipmr.c | 2 | ||||
-rw-r--r-- | net/ipv4/tcp_ipv4.c | 2 |
2 files changed, 2 insertions, 2 deletions
diff --git a/net/ipv4/ipmr.c b/net/ipv4/ipmr.c index d2e3b3ef039e..3ef30cf57f4a 100644 --- a/net/ipv4/ipmr.c +++ b/net/ipv4/ipmr.c | |||
@@ -266,7 +266,7 @@ static int __net_init ipmr_rules_init(struct net *net) | |||
266 | return 0; | 266 | return 0; |
267 | 267 | ||
268 | err2: | 268 | err2: |
269 | kfree(mrt); | 269 | ipmr_free_table(mrt); |
270 | err1: | 270 | err1: |
271 | fib_rules_unregister(ops); | 271 | fib_rules_unregister(ops); |
272 | return err; | 272 | return err; |
diff --git a/net/ipv4/tcp_ipv4.c b/net/ipv4/tcp_ipv4.c index 5aababa20a21..69f9cf684744 100644 --- a/net/ipv4/tcp_ipv4.c +++ b/net/ipv4/tcp_ipv4.c | |||
@@ -1469,7 +1469,7 @@ void tcp_v4_early_demux(struct sk_buff *skb) | |||
1469 | skb->sk = sk; | 1469 | skb->sk = sk; |
1470 | skb->destructor = sock_edemux; | 1470 | skb->destructor = sock_edemux; |
1471 | if (sk_fullsock(sk)) { | 1471 | if (sk_fullsock(sk)) { |
1472 | struct dst_entry *dst = sk->sk_rx_dst; | 1472 | struct dst_entry *dst = READ_ONCE(sk->sk_rx_dst); |
1473 | 1473 | ||
1474 | if (dst) | 1474 | if (dst) |
1475 | dst = dst_check(dst, 0); | 1475 | dst = dst_check(dst, 0); |