Acked-by: Jon Thank you, Partha, and Merry Christmas ///j
From: Parthasarathy Bhuvaragan [mailto:[email protected]] Sent: Friday, December 22, 2017 10:35 To: [email protected]; Jon Maloy <[email protected]>; [email protected]; Ying Xue <[email protected]>; Mohan Krishna Ghanta Krishnamurthy <[email protected]>; Pontus Sköldström <[email protected]> Subject: PATCH v1: 0001-tipc-fix-hanging-poll-for-stream-clients.patch From 2c23b6a88a134bd9df0acc998383a34aa1df6583 Mon Sep 17 00:00:00 2001 From: Parthasarathy Bhuvaragan <[email protected]<mailto:[email protected]>> Date: Fri, 22 Dec 2017 15:43:23 +0100 Subject: [PATCH] tipc: fix hanging poll() for stream clients In commit 42b531de17d2f6 ("tipc: Fix missing connection request handling"), we replaced unconditional wakeup() with condtional wakeup for clients with flags POLLIN | POLLRDNORM | POLLRDBAND. This breaks the ABI for applications which do a connect followed by poll with POLLOUT flag. These applications are not woken when the connection is ESTABLISHED. In this commit, we fix it by including the POLLOUT event for sockets in TIPC_CONNECTING state. Fixes: 42b531de17d2f6 ("tipc: Fix missing connection request handling") Reported-by: [email protected]<mailto:[email protected]> Signed-off-by: Parthasarathy Bhuvaragan <[email protected]<mailto:[email protected]>> --- net/tipc/socket.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/net/tipc/socket.c b/net/tipc/socket.c index 41127d0b925e..3b4084480377 100644 --- a/net/tipc/socket.c +++ b/net/tipc/socket.c @@ -727,11 +727,11 @@ static unsigned int tipc_poll(struct file *file, struct socket *sock, switch (sk->sk_state) { case TIPC_ESTABLISHED: + case TIPC_CONNECTING: if (!tsk->cong_link_cnt && !tsk_conn_cong(tsk)) revents |= POLLOUT; /* fall thru' */ case TIPC_LISTEN: - case TIPC_CONNECTING: if (!skb_queue_empty(&sk->sk_receive_queue)) revents |= POLLIN | POLLRDNORM; break; -- 2.11.0 ------------------------------------------------------------------------------ Check out the vibrant tech community on one of the world's most engaging tech sites, Slashdot.org! http://sdm.link/slashdot _______________________________________________ tipc-discussion mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/tipc-discussion
