]> git.baikalelectronics.ru Git - kernel.git/commit
rxrpc: Fix conn-based retransmit
authorDavid Howells <dhowells@redhat.com>
Wed, 24 Aug 2016 12:06:14 +0000 (13:06 +0100)
committerDavid Howells <dhowells@redhat.com>
Wed, 24 Aug 2016 12:06:14 +0000 (13:06 +0100)
commit7c9e9b2a6ed6ed8540f73bc89b8292a5f91ac99d
treed56e7e0fecb29ebd45772460e3e248084cb58eab
parentcfefd55a0438e6268b73c92a3d91365330346324
rxrpc: Fix conn-based retransmit

If a duplicate packet comes in for a call that has just completed on a
connection's channel then there will be an oops in the data_ready handler
because it tries to examine the connection struct via a call struct (which
we don't have - the pointer is unset).

Since the connection struct pointer is available to us, go direct instead.

Also, the ACK packet to be retransmitted needs three octets of padding
between the soft ack list and the ackinfo.

Fixes: 6907fb2de0dbb4fabbccea42cc47f4eaa8f65cf6 ("rxrpc: Perform terminal call ACK/ABORT retransmission from conn processor")
Signed-off-by: David Howells <dhowells@redhat.com>
net/rxrpc/conn_event.c
net/rxrpc/input.c