[PATCH net 0/8] rxrpc: Fixes

From: David Howells
Date: Fri Sep 28 2018 - 06:09:58 EST



Here are some miscellaneous fixes for AF_RXRPC:

(1) Remove a duplicate variable initialisation.

(2) Fix one of the checks made when we decide to set up a new incoming
service call in which a flag is being checked in the wrong field of
the packet header. This check is abstracted out into helper
functions.

(3) Fix RTT gathering. The code has been trying to make use of socket
timestamps, but wasn't actually enabling them. The code has also been
recording a transmit time for the outgoing packet for which we're
going to measure the RTT after sending the message - but we can get
the incoming packet before we get to that and record a negative RTT.

(4) Fix the emission of BUSY packets (we are emitting ABORTs instead).

(5) Improve error checking on incoming packets.

(6) Try to fix a bug in new service call handling whereby a BUG we should
never be able to reach somehow got triggered. Do this by moving much
of the checking as early as possible and not repeating it later
(depends on (5) above).

(7) Fix the sockopts set on a UDP6 socket to include the ones set on a
UDP4 socket so that we receive UDP4 errors and packet-too-large
notifications too.

(8) Fix the distribution of errors so that we do it at the point of
receiving an error in the UDP callback rather than deferring it
thereby cutting short any transmissions that would otherwise occur in
the window.

The patches are tagged here:

git://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-fs.git
rxrpc-fixes-20180928

and can also be found on the following branch:

http://git.kernel.org/cgit/linux/kernel/git/dhowells/linux-fs.git/log/?h=rxrpc-fixes

David
---
David Howells (8):
rxrpc: Remove dup code from rxrpc_find_connection_rcu()
rxrpc: Fix checks as to whether we should set up a new call
rxrpc: Fix RTT gathering
rxrpc: Emit BUSY packets when supposed to rather than ABORTs
rxrpc: Improve up-front incoming packet checking
rxrpc: Make service call handling more robust
rxrpc: Fix transport sockopts to get IPv4 errors on an IPv6 socket
rxrpc: Fix error distribution


include/trace/events/rxrpc.h | 4 --
net/rxrpc/ar-internal.h | 36 +++++++++--------
net/rxrpc/call_accept.c | 45 +++++++--------------
net/rxrpc/call_object.c | 2 -
net/rxrpc/conn_client.c | 4 +-
net/rxrpc/conn_object.c | 14 ++++---
net/rxrpc/input.c | 90 ++++++++++++++++++++++++++++++------------
net/rxrpc/local_object.c | 32 ++++++++++-----
net/rxrpc/output.c | 54 +++++++++++++++++--------
net/rxrpc/peer_event.c | 46 +++++----------------
net/rxrpc/peer_object.c | 52 +++++-------------------
net/rxrpc/protocol.h | 15 -------
12 files changed, 189 insertions(+), 205 deletions(-)