linux/net/tipc
Xin Long 0a178a0151 tipc: call tipc_wait_for_connect only when dlen is not 0
commit 7387a72c5f upstream.

__tipc_sendmsg() is called to send SYN packet by either tipc_sendmsg()
or tipc_connect(). The difference is in tipc_connect(), it will call
tipc_wait_for_connect() after __tipc_sendmsg() to wait until connecting
is done. So there's no need to wait in __tipc_sendmsg() for this case.

This patch is to fix it by calling tipc_wait_for_connect() only when dlen
is not 0 in __tipc_sendmsg(), which means it's called by tipc_connect().

Note this also fixes the failure in tipcutils/test/ptts/:

  # ./tipcTS &
  # ./tipcTC 9
  (hang)

Fixes: 36239dab6da7 ("tipc: fix implicit-connect for SYN+")
Reported-by: Shuang Li <shuali@redhat.com>
Signed-off-by: Xin Long <lucien.xin@gmail.com>
Acked-by: Jon Maloy <jmaloy@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Cc: Paul Gortmaker <paul.gortmaker@windriver.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2021-09-03 10:09:28 +02:00
..
addr.c
addr.h
bcast.c net: tipc: fix FB_MTU eat two pages 2021-07-14 16:56:32 +02:00
bcast.h tipc: update a binding service via broadcast 2020-06-17 08:53:34 -07:00
bearer.c tipc: fix unique bearer names sanity check 2021-06-10 13:39:22 +02:00
bearer.h
core.c tipc: wait and exit until all work queues are done 2021-06-03 09:00:37 +02:00
core.h tipc: wait and exit until all work queues are done 2021-06-03 09:00:37 +02:00
crypto.c tipc: do not write skb_shinfo frags when doing decrytion 2021-08-04 12:46:43 +02:00
crypto.h tipc: add automatic rekeying for encryption key 2020-09-18 13:58:37 -07:00
diag.c
discover.c net: tipc: kerneldoc fixes 2020-07-13 17:20:40 -07:00
discover.h
eth_media.c tipc: Use is_broadcast_ether_addr() instead of memcmp() 2020-08-03 16:21:46 -07:00
group.c tipc: Fix memory leak in tipc_group_create_member() 2020-09-14 16:36:20 -07:00
group.h
ib_media.c
Kconfig tipc: not enable tipc when ipv6 works as a module 2020-08-16 21:04:55 -07:00
link.c tipc: fix NULL deref in tipc_link_xmit() 2021-01-23 16:04:00 +01:00
link.h tipc: add support for broadcast rcv stats dumping 2020-05-26 15:16:52 -07:00
Makefile
monitor.c
monitor.h
msg.c net: tipc: fix FB_MTU eat two pages 2021-07-14 16:56:32 +02:00
msg.h net: tipc: fix FB_MTU eat two pages 2021-07-14 16:56:32 +02:00
name_distr.c tipc: fix NULL pointer dereference in tipc_named_rcv 2020-10-09 18:29:06 -07:00
name_distr.h tipc: update a binding service via broadcast 2020-06-17 08:53:34 -07:00
name_table.c tipc: update a binding service via broadcast 2020-06-17 08:53:34 -07:00
name_table.h tipc: update a binding service via broadcast 2020-06-17 08:53:34 -07:00
net.c tipc: fix a deadlock when flushing scheduled work 2020-09-07 12:08:53 -07:00
net.h tipc: fix a deadlock when flushing scheduled work 2020-09-07 12:08:53 -07:00
netlink_compat.c tipc: convert dest node's address to network order 2021-05-19 10:12:52 +02:00
netlink.c tipc: add automatic rekeying for encryption key 2020-09-18 13:58:37 -07:00
netlink.h
node.c tipc: better validate user input in tipc_nl_retrieve_key() 2021-03-30 14:31:59 +02:00
node.h tipc: add automatic session key exchange 2020-09-18 13:58:37 -07:00
socket.c tipc: call tipc_wait_for_connect only when dlen is not 0 2021-09-03 10:09:28 +02:00
socket.h tipc: call tsk_set_importance from tipc_topsrv_create_listener 2020-05-28 11:11:46 -07:00
subscr.c
subscr.h
sysctl.c tipc: add automatic session key exchange 2020-09-18 13:58:37 -07:00
topsrv.c tipc: fix memory leak in tipc_topsrv_start() 2020-11-11 14:39:23 -08:00
topsrv.h
trace.c
trace.h tipc: add support for broadcast rcv stats dumping 2020-05-26 15:16:52 -07:00
udp_media.c tipc: wait and exit until all work queues are done 2021-06-03 09:00:37 +02:00
udp_media.h