Re: [PATCH net] rxrpc: Fix handling of last subpacket of jumbo packet

From: David Miller
Date: Thu Oct 31 2019 - 15:23:32 EST


From: David Howells <dhowells@xxxxxxxxxx>
Date: Thu, 31 Oct 2019 12:13:46 +0000

> When rxrpc_recvmsg_data() sets the return value to 1 because it's drained
> all the data for the last packet, it checks the last-packet flag on the
> whole packet - but this is wrong, since the last-packet flag is only set on
> the final subpacket of the last jumbo packet. This means that a call that
> receives its last packet in a jumbo packet won't complete properly.
>
> Fix this by having rxrpc_locate_data() determine the last-packet state of
> the subpacket it's looking at and passing that back to the caller rather
> than having the caller look in the packet header. The caller then needs to
> cache this in the rxrpc_call struct as rxrpc_locate_data() isn't then
> called again for this packet.
>
> Fixes: 248f219cb8bc ("rxrpc: Rewrite the data and ack handling code")
> Fixes: e2de6c404898 ("rxrpc: Use info in skbuff instead of reparsing a jumbo packet")
> Signed-off-by: David Howells <dhowells@xxxxxxxxxx>

Applied, thanks David.