Hi David, Is it too late for this to go to Linus in this merge window?
--- Here's a set of patches that fix and improve some stuff in the AF_RXRPC protocol: The patches are: (1) Unlock mutex returned by rxrpc_accept_call(). (2) Don't set connection upgrade by default. (3) Differentiate the call->user_mutex used by the kernel from that used by userspace calling sendmsg() to avoid lockdep warnings. (4) Delay terminal ACK transmission to a work queue so that it can be replaced by the next call if there is one. (5) Split the call parameters from the connection parameters so that more call-specific parameters can be passed through. (6) Fix the call timeouts to work the same as for other RxRPC/AFS implementations. (7) Don't transmit DELAY ACKs immediately, but instead delay them slightly so that can be discarded or can represent more packets. (8) Use RTT to calculate certain protocol timeouts. (9) Add a timeout to detect lost ACK/DATA packets. (10) Add a keepalive function so that we ping the peer if we haven't transmitted for a short while, thereby keeping intervening firewall routes open. (11) Make service endpoints expire like they're supposed to so that the UDP port can be reused. (12) Fix connection expiry timers to make cleanup happen in a more timely fashion. The patches can be found here also: http://git.kernel.org/cgit/linux/kernel/git/dhowells/linux-fs.git/log/?h=rxrpc-fixes Tagged thusly: git://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-fs.git rxrpc-fixes-20171124 David --- David Howells (12): rxrpc: The mutex lock returned by rxrpc_accept_call() needs releasing rxrpc: Don't set upgrade by default in sendmsg() rxrpc: Provide a different lockdep key for call->user_mutex for kernel calls rxrpc: Delay terminal ACK transmission on a client call rxrpc: Split the call params from the operation params rxrpc: Fix call timeouts rxrpc: Don't transmit DELAY ACKs immediately on proposal rxrpc: Express protocol timeouts in terms of RTT rxrpc: Add a timeout for detecting lost ACKs/lost DATA rxrpc: Add keepalive for a call rxrpc: Fix service endpoint expiry rxrpc: Fix conn expiry timers include/trace/events/rxrpc.h | 86 ++++++++++++---- include/uapi/linux/rxrpc.h | 1 net/rxrpc/af_rxrpc.c | 23 ++++ net/rxrpc/ar-internal.h | 103 ++++++++++++++++--- net/rxrpc/call_accept.c | 2 net/rxrpc/call_event.c | 229 ++++++++++++++++++++++++------------------ net/rxrpc/call_object.c | 62 +++++++---- net/rxrpc/conn_client.c | 54 ++++++++-- net/rxrpc/conn_event.c | 74 +++++++++++--- net/rxrpc/conn_object.c | 76 +++++++++----- net/rxrpc/input.c | 74 +++++++++++++- net/rxrpc/misc.c | 19 +-- net/rxrpc/net_ns.c | 33 +++++- net/rxrpc/output.c | 43 ++++++++ net/rxrpc/recvmsg.c | 12 +- net/rxrpc/sendmsg.c | 126 ++++++++++++++--------- net/rxrpc/sysctl.c | 60 +++++------ 17 files changed, 752 insertions(+), 325 deletions(-)