rxrpc: Trace protocol errors in received packets
Add a tracepoint (rxrpc_rx_proto) to record protocol errors in received packets. The following changes are made: (1) Add a function, __rxrpc_abort_eproto(), to note a protocol error on a call and mark the call aborted. This is wrapped by rxrpc_abort_eproto() that makes the why string usable in trace. (2) Add trace_rxrpc_rx_proto() or rxrpc_abort_eproto() to protocol error generation points, replacing rxrpc_abort_call() with the latter. (3) Only send an abort packet in rxkad_verify_packet*() if we actually managed to abort the call. Note that a trace event is also emitted if a kernel user (e.g. afs) tries to send data through a call when it's not in the transmission phase, though it's not technically a receive event. Signed-off-by: David Howells <dhowells@redhat.com>
This commit is contained in:
@ -682,9 +682,11 @@ out:
|
||||
return ret;
|
||||
|
||||
short_data:
|
||||
trace_rxrpc_rx_eproto(call, 0, tracepoint_string("short_data"));
|
||||
ret = -EBADMSG;
|
||||
goto out;
|
||||
excess_data:
|
||||
trace_rxrpc_rx_eproto(call, 0, tracepoint_string("excess_data"));
|
||||
ret = -EMSGSIZE;
|
||||
goto out;
|
||||
call_complete:
|
||||
|
Reference in New Issue
Block a user