aboutsummaryrefslogtreecommitdiffstats
path: root/net
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2016-08-03 07:26:11 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2016-08-03 07:26:11 -0400
commitf0936155f2204720655aefbc2f17c25a2c80a59e (patch)
tree89ef908bbe7205b8725e5b331fcd3c53a5c85c13 /net
parentd52bd54db8be8999df6df5a776f38c4f8b5e9cea (diff)
parent1d2c2024dcb7aeb2555db4bfd7f991d247ba0508 (diff)
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
Pull networking fixes from David Miller: 1) Fix several cases of missing of_node_put() calls in various networking drivers. From Peter Chen. 2) Don't try to remove unconfigured VLANs in qed driver, from Yuval Mintz. 3) Unbalanced locking in TIPC error handling, from Wei Yongjun. 4) Fix lockups in CPDMA driver, from Grygorii Strashko. 5) More MACSEC refcount et al fixes, from Sabrina Dubroca. 6) Fix MAC address setting in r8169 during runtime suspend, from Chun-Hao Lin. 7) Various printf format specifier fixes, from Heinrich Schuchardt. * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (59 commits) qed: Fail driver load in 100g MSI mode. ethernet: ti: davinci_emac: add missing of_node_put after calling of_parse_phandle ethernet: stmicro: stmmac: add missing of_node_put after calling of_parse_phandle ethernet: stmicro: stmmac: dwmac-socfpga: add missing of_node_put after calling of_parse_phandle ethernet: renesas: sh_eth: add missing of_node_put after calling of_parse_phandle ethernet: renesas: ravb_main: add missing of_node_put after calling of_parse_phandle ethernet: marvell: pxa168_eth: add missing of_node_put after calling of_parse_phandle ethernet: marvell: mvpp2: add missing of_node_put after calling of_parse_phandle ethernet: marvell: mvneta: add missing of_node_put after calling of_parse_phandle ethernet: hisilicon: hns: hns_dsaf_main: add missing of_node_put after calling of_parse_phandle ethernet: hisilicon: hns: hns_dsaf_mac: add missing of_node_put after calling of_parse_phandle ethernet: cavium: octeon: add missing of_node_put after calling of_parse_phandle ethernet: aurora: nb8800: add missing of_node_put after calling of_parse_phandle ethernet: arc: emac_main: add missing of_node_put after calling of_parse_phandle ethernet: apm: xgene: add missing of_node_put after calling of_parse_phandle ethernet: altera: add missing of_node_put 8139too: fix system hang when there is a tx timeout event. qed: Fix error return code in qed_resc_alloc() net: qlcnic: avoid superfluous assignement dsa: b53: remove redundant if ...
Diffstat (limited to 'net')
-rw-r--r--net/ipv4/tcp_output.c3
-rw-r--r--net/ipv6/addrconf.c3
-rw-r--r--net/sctp/output.c3
-rw-r--r--net/sctp/socket.c2
-rw-r--r--net/sctp/ulpqueue.c4
-rw-r--r--net/tipc/monitor.c2
6 files changed, 10 insertions, 7 deletions
diff --git a/net/ipv4/tcp_output.c b/net/ipv4/tcp_output.c
index b26aa870adc0..bdaef7fd6e47 100644
--- a/net/ipv4/tcp_output.c
+++ b/net/ipv4/tcp_output.c
@@ -236,7 +236,8 @@ void tcp_select_initial_window(int __space, __u32 mss,
236 /* Set window scaling on max possible window 236 /* Set window scaling on max possible window
237 * See RFC1323 for an explanation of the limit to 14 237 * See RFC1323 for an explanation of the limit to 14
238 */ 238 */
239 space = max_t(u32, sysctl_tcp_rmem[2], sysctl_rmem_max); 239 space = max_t(u32, space, sysctl_tcp_rmem[2]);
240 space = max_t(u32, space, sysctl_rmem_max);
240 space = min_t(u32, space, *window_clamp); 241 space = min_t(u32, space, *window_clamp);
241 while (space > 65535 && (*rcv_wscale) < 14) { 242 while (space > 65535 && (*rcv_wscale) < 14) {
242 space >>= 1; 243 space >>= 1;
diff --git a/net/ipv6/addrconf.c b/net/ipv6/addrconf.c
index 6287a8b9f428..ab3e796596b1 100644
--- a/net/ipv6/addrconf.c
+++ b/net/ipv6/addrconf.c
@@ -3624,8 +3624,7 @@ restart:
3624 state = ifa->state; 3624 state = ifa->state;
3625 ifa->state = INET6_IFADDR_STATE_DEAD; 3625 ifa->state = INET6_IFADDR_STATE_DEAD;
3626 3626
3627 list_del(&ifa->if_list); 3627 list_move(&ifa->if_list, &del_list);
3628 list_add(&ifa->if_list, &del_list);
3629 } 3628 }
3630 3629
3631 spin_unlock_bh(&ifa->lock); 3630 spin_unlock_bh(&ifa->lock);
diff --git a/net/sctp/output.c b/net/sctp/output.c
index 7425f6c23888..1f1682b9a6a8 100644
--- a/net/sctp/output.c
+++ b/net/sctp/output.c
@@ -610,7 +610,8 @@ int sctp_packet_transmit(struct sctp_packet *packet, gfp_t gfp)
610 /* We will generate more packets, so re-queue 610 /* We will generate more packets, so re-queue
611 * auth chunk. 611 * auth chunk.
612 */ 612 */
613 list_add(&chunk->list, &packet->chunk_list); 613 list_add(&packet->auth->list,
614 &packet->chunk_list);
614 } else { 615 } else {
615 sctp_chunk_free(packet->auth); 616 sctp_chunk_free(packet->auth);
616 packet->auth = NULL; 617 packet->auth = NULL;
diff --git a/net/sctp/socket.c b/net/sctp/socket.c
index 8812e1bf6c1c..9fc417a8b476 100644
--- a/net/sctp/socket.c
+++ b/net/sctp/socket.c
@@ -2079,7 +2079,7 @@ static int sctp_recvmsg(struct sock *sk, struct msghdr *msg, size_t len,
2079 lock_sock(sk); 2079 lock_sock(sk);
2080 2080
2081 if (sctp_style(sk, TCP) && !sctp_sstate(sk, ESTABLISHED) && 2081 if (sctp_style(sk, TCP) && !sctp_sstate(sk, ESTABLISHED) &&
2082 !sctp_sstate(sk, CLOSING)) { 2082 !sctp_sstate(sk, CLOSING) && !sctp_sstate(sk, CLOSED)) {
2083 err = -ENOTCONN; 2083 err = -ENOTCONN;
2084 goto out; 2084 goto out;
2085 } 2085 }
diff --git a/net/sctp/ulpqueue.c b/net/sctp/ulpqueue.c
index ec166d2bd2d9..877e55066f89 100644
--- a/net/sctp/ulpqueue.c
+++ b/net/sctp/ulpqueue.c
@@ -204,7 +204,9 @@ int sctp_ulpq_tail_event(struct sctp_ulpq *ulpq, struct sctp_ulpevent *event)
204 /* If the socket is just going to throw this away, do not 204 /* If the socket is just going to throw this away, do not
205 * even try to deliver it. 205 * even try to deliver it.
206 */ 206 */
207 if (sock_flag(sk, SOCK_DEAD) || (sk->sk_shutdown & RCV_SHUTDOWN)) 207 if (sk->sk_shutdown & RCV_SHUTDOWN &&
208 (sk->sk_shutdown & SEND_SHUTDOWN ||
209 !sctp_ulpevent_is_notification(event)))
208 goto out_free; 210 goto out_free;
209 211
210 if (!sctp_ulpevent_is_notification(event)) { 212 if (!sctp_ulpevent_is_notification(event)) {
diff --git a/net/tipc/monitor.c b/net/tipc/monitor.c
index be70a57c1ff9..b62caa1c770c 100644
--- a/net/tipc/monitor.c
+++ b/net/tipc/monitor.c
@@ -794,10 +794,10 @@ int __tipc_nl_add_monitor(struct net *net, struct tipc_nl_msg *msg,
794 return 0; 794 return 0;
795 795
796attr_msg_full: 796attr_msg_full:
797 read_unlock_bh(&mon->lock);
797 nla_nest_cancel(msg->skb, attrs); 798 nla_nest_cancel(msg->skb, attrs);
798msg_full: 799msg_full:
799 genlmsg_cancel(msg->skb, hdr); 800 genlmsg_cancel(msg->skb, hdr);
800 read_unlock_bh(&mon->lock);
801 801
802 return -EMSGSIZE; 802 return -EMSGSIZE;
803} 803}