diff --git a/net/mptcp/protocol.c b/net/mptcp/protocol.c
index 8cc9cc5675c2..53b1b015d9d4 100644
--- a/net/mptcp/protocol.c
+++ b/net/mptcp/protocol.c
@@ -1229,7 +1229,9 @@ static __poll_t mptcp_poll(struct file *file, struct socket *sock,
 		return ret;
 	}
 
+	release_sock(sk);
 	sock_poll_wait(file, sock, wait);
+	lock_sock(sk);
 
 	mptcp_for_each_subflow(msk, subflow) {
 		struct socket *tcp_sock;
