diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2019-06-22 01:23:35 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2019-06-22 01:23:35 -0400 |
commit | c356dc4b540edd6c02b409dd8cf3208ba2804c38 (patch) | |
tree | 457d971da033bfb11c85aaee260d9811937fa2c4 /net/tipc/node.c | |
parent | 121bddf39a8e39baf0df9ef1d688392c179935cd (diff) | |
parent | b6653b3629e5b88202be3c9abc44713973f5c4b4 (diff) |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
Pull networking fixes from David Miller:
1) Fix leak of unqueued fragments in ipv6 nf_defrag, from Guillaume
Nault.
2) Don't access the DDM interface unless the transceiver implements it
in bnx2x, from Mauro S. M. Rodrigues.
3) Don't double fetch 'len' from userspace in sock_getsockopt(), from
JingYi Hou.
4) Sign extension overflow in lio_core, from Colin Ian King.
5) Various netem bug fixes wrt. corrupted packets from Jakub Kicinski.
6) Fix epollout hang in hvsock, from Sunil Muthuswamy.
7) Fix regression in default fib6_type, from David Ahern.
8) Handle memory limits in tcp_fragment more appropriately, from Eric
Dumazet.
* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (24 commits)
tcp: refine memory limit test in tcp_fragment()
inet: clear num_timeout reqsk_alloc()
net: mvpp2: debugfs: Add pmap to fs dump
ipv6: Default fib6_type to RTN_UNICAST when not set
net: hns3: Fix inconsistent indenting
net/af_iucv: always register net_device notifier
net/af_iucv: build proper skbs for HiperTransport
net/af_iucv: remove GFP_DMA restriction for HiperTransport
net: dsa: mv88e6xxx: fix shift of FID bits in mv88e6185_g1_vtu_loadpurge()
hvsock: fix epollout hang from race condition
net/udp_gso: Allow TX timestamp with UDP GSO
net: netem: fix use after free and double free with packet corruption
net: netem: fix backlog accounting for corrupted GSO frames
net: lio_core: fix potential sign-extension overflow on large shift
tipc: pass tunnel dev as NULL to udp_tunnel(6)_xmit_skb
ip6_tunnel: allow not to count pkts on tstats by passing dev as NULL
ip_tunnel: allow not to count pkts on tstats by setting skb's dev to NULL
tun: wake up waitqueues after IFF_UP is set
net: remove duplicate fetch in sock_getsockopt
tipc: fix issues with early FAILOVER_MSG from peer
...
Diffstat (limited to 'net/tipc/node.c')
-rw-r--r-- | net/tipc/node.c | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/net/tipc/node.c b/net/tipc/node.c index 9e106d3ed187..550581d47d51 100644 --- a/net/tipc/node.c +++ b/net/tipc/node.c | |||
@@ -766,9 +766,9 @@ static void tipc_node_link_up(struct tipc_node *n, int bearer_id, | |||
766 | * disturbance, wrong session, etc.) | 766 | * disturbance, wrong session, etc.) |
767 | * 3. Link <1B-2B> up | 767 | * 3. Link <1B-2B> up |
768 | * 4. Link endpoint 2A down (e.g. due to link tolerance timeout) | 768 | * 4. Link endpoint 2A down (e.g. due to link tolerance timeout) |
769 | * 5. Node B starts failover onto link <1B-2B> | 769 | * 5. Node 2 starts failover onto link <1B-2B> |
770 | * | 770 | * |
771 | * ==> Node A does never start link/node failover! | 771 | * ==> Node 1 does never start link/node failover! |
772 | * | 772 | * |
773 | * @n: tipc node structure | 773 | * @n: tipc node structure |
774 | * @l: link peer endpoint failingover (- can be NULL) | 774 | * @l: link peer endpoint failingover (- can be NULL) |
@@ -783,6 +783,10 @@ static void tipc_node_link_failover(struct tipc_node *n, struct tipc_link *l, | |||
783 | if (!tipc_link_is_up(tnl)) | 783 | if (!tipc_link_is_up(tnl)) |
784 | return; | 784 | return; |
785 | 785 | ||
786 | /* Don't rush, failure link may be in the process of resetting */ | ||
787 | if (l && !tipc_link_is_reset(l)) | ||
788 | return; | ||
789 | |||
786 | tipc_link_fsm_evt(tnl, LINK_SYNCH_END_EVT); | 790 | tipc_link_fsm_evt(tnl, LINK_SYNCH_END_EVT); |
787 | tipc_node_fsm_evt(n, NODE_SYNCH_END_EVT); | 791 | tipc_node_fsm_evt(n, NODE_SYNCH_END_EVT); |
788 | 792 | ||
@@ -1706,7 +1710,7 @@ static bool tipc_node_check_state(struct tipc_node *n, struct sk_buff *skb, | |||
1706 | /* Initiate or update failover mode if applicable */ | 1710 | /* Initiate or update failover mode if applicable */ |
1707 | if ((usr == TUNNEL_PROTOCOL) && (mtyp == FAILOVER_MSG)) { | 1711 | if ((usr == TUNNEL_PROTOCOL) && (mtyp == FAILOVER_MSG)) { |
1708 | syncpt = oseqno + exp_pkts - 1; | 1712 | syncpt = oseqno + exp_pkts - 1; |
1709 | if (pl && tipc_link_is_up(pl)) { | 1713 | if (pl && !tipc_link_is_reset(pl)) { |
1710 | __tipc_node_link_down(n, &pb_id, xmitq, &maddr); | 1714 | __tipc_node_link_down(n, &pb_id, xmitq, &maddr); |
1711 | trace_tipc_node_link_down(n, true, | 1715 | trace_tipc_node_link_down(n, true, |
1712 | "node link down <- failover!"); | 1716 | "node link down <- failover!"); |