• David Howells's avatar
    rxrpc: Emit BUSY packets when supposed to rather than ABORTs · ece64fec
    David Howells authored
    In the input path, a received sk_buff can be marked for rejection by
    setting RXRPC_SKB_MARK_* in skb->mark and, if needed, some auxiliary data
    (such as an abort code) in skb->priority.  The rejection is handled by
    queueing the sk_buff up for dealing with in process context.  The output
    code reads the mark and priority and, theoretically, generates an
    appropriate response packet.
    
    However, if RXRPC_SKB_MARK_BUSY is set, this isn't noticed and an ABORT
    message with a random abort code is generated (since skb->priority wasn't
    set to anything).
    
    Fix this by outputting the appropriate sort of packet.
    
    Also, whilst we're at it, most of the marks are no longer used, so remove
    them and rename the remaining two to something more obvious.
    
    Fixes: 248f219c ("rxrpc: Rewrite the data and ack handling code")
    Signed-off-by: default avatarDavid Howells <dhowells@redhat.com>
    ece64fec
output.c 16.7 KB