summaryrefslogtreecommitdiffstats
path: root/net/rxrpc/input.c
diff options
context:
space:
mode:
authorDavid Howells <dhowells@redhat.com>2016-09-13 22:36:21 +0100
committerDavid Howells <dhowells@redhat.com>2016-09-13 22:36:21 +0100
commitbc4abfcf51835420d61440b2b7aa18181bc1f273 (patch)
treeb92a09373cd856ed8b490e4a27a28fd2fa37b5e6 /net/rxrpc/input.c
parent08a39685a771b4b1108889ea5e4e0a71b51782ba (diff)
downloadlinux-0-day-bc4abfcf51835420d61440b2b7aa18181bc1f273.tar.gz
linux-0-day-bc4abfcf51835420d61440b2b7aa18181bc1f273.tar.xz
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 afeba98004b17..a707d59521646 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;