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 afeba98004b17060d37b9816599d30a5651abfed..a707d5952164699877129185f964d95426e1eb1b 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;