]> git.proxmox.com Git - mirror_ubuntu-focal-kernel.git/commit
rxrpc: Use info in skbuff instead of reparsing a jumbo packet
authorDavid Howells <dhowells@redhat.com>
Tue, 27 Aug 2019 08:51:30 +0000 (09:51 +0100)
committerDavid Howells <dhowells@redhat.com>
Tue, 27 Aug 2019 08:51:30 +0000 (09:51 +0100)
commite2de6c4048989007b353164b19d6b7d5be4fa9e3
tree09df8d01294fbeb0477e7eebe82ff213b46e7288
parentc3c9e3df49f8d83db09d1f61c8bed54e7fed8662
rxrpc: Use info in skbuff instead of reparsing a jumbo packet

Use the information now cached in the skbuff private data to avoid the need
to reparse a jumbo packet.  We can find all the subpackets by dead
reckoning, so it's only necessary to note how many there are, whether the
last one is flagged as LAST_PACKET and whether any have the REQUEST_ACK
flag set.

This is necessary as once recvmsg() can see the packet, it can start
modifying it, such as doing in-place decryption.

Fixes: 248f219cb8bc ("rxrpc: Rewrite the data and ack handling code")
Signed-off-by: David Howells <dhowells@redhat.com>
net/rxrpc/ar-internal.h
net/rxrpc/input.c
net/rxrpc/recvmsg.c