summaryrefslogtreecommitdiffstats
path: root/net/rxrpc/input.c
diff options
context:
space:
mode:
authorDavid Howells <dhowells@redhat.com>2016-09-13 23:36:21 +0200
committerDavid Howells <dhowells@redhat.com>2016-09-13 23:36:21 +0200
commitbc4abfcf51835420d61440b2b7aa18181bc1f273 (patch)
treeb92a09373cd856ed8b490e4a27a28fd2fa37b5e6 /net/rxrpc/input.c
parentrxrpc: Make sure we initialise the peer hash key (diff)
downloadlinux-bc4abfcf51835420d61440b2b7aa18181bc1f273.tar.xz
linux-bc4abfcf51835420d61440b2b7aa18181bc1f273.zip
rxrpc: Add missing wakeup on Tx window rotation
We need to wake up the sender when Tx window rotation due to an incoming ACK makes space in the buffer otherwise the sender is liable to just hang endlessly. This problem isn't noticeable if the Tx phase transfers no more than will fit in a single window or the Tx window rotates fast enough that it doesn't get full. Signed-off-by: David Howells <dhowells@redhat.com>
Diffstat (limited to 'net/rxrpc/input.c')
-rw-r--r--net/rxrpc/input.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/net/rxrpc/input.c b/net/rxrpc/input.c
index afeba98004b1..a707d5952164 100644
--- a/net/rxrpc/input.c
+++ b/net/rxrpc/input.c
@@ -59,6 +59,8 @@ static void rxrpc_rotate_tx_window(struct rxrpc_call *call, rxrpc_seq_t to)
spin_unlock(&call->lock);
+ wake_up(&call->waitq);
+
while (list) {
skb = list;
list = skb->next;