rxrpc: Add missing wakeup on Tx window rotation
authorDavid Howells <dhowells@redhat.com>
Tue, 13 Sep 2016 21:36:21 +0000 (22:36 +0100)
committerDavid Howells <dhowells@redhat.com>
Tue, 13 Sep 2016 21:36:21 +0000 (22:36 +0100)
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>
net/rxrpc/input.c

index afeba98..a707d59 100644 (file)
@@ -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;