David Howells
f9c32435ab
rxrpc: Fix handling of last subpacket of jumbo packet
...
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: 248f219cb8 ("rxrpc: Rewrite the data and ack handling code")
Fixes: e2de6c4048 ("rxrpc: Use info in skbuff instead of reparsing a jumbo packet")
Signed-off-by: David Howells <dhowells@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2019-10-31 12:23:09 -07:00
..
af_rxrpc.c
rxrpc: Fix lack of conn cleanup when local endpoint is cleaned up [ver #2 ]
2019-08-30 15:06:52 -07:00
ar-internal.h
rxrpc: Fix handling of last subpacket of jumbo packet
2019-10-31 12:23:09 -07:00
call_accept.c
rxrpc: Fix call crypto state cleanup
2019-10-07 11:05:05 +01:00
call_event.c
rxrpc: Use the tx-phase skb flag to simplify tracing
2019-08-27 10:04:18 +01:00
call_object.c
rxrpc: Fix call crypto state cleanup
2019-10-07 11:05:05 +01:00
conn_client.c
rxrpc: Fix call crypto state cleanup
2019-10-07 11:05:05 +01:00
conn_event.c
rxrpc: Use the tx-phase skb flag to simplify tracing
2019-08-27 10:04:18 +01:00
conn_object.c
rxrpc: Fix trace-after-put looking at the put connection record
2019-10-07 11:05:05 +01:00
conn_service.c
rxrpc: Fix trace-after-put looking at the put connection record
2019-10-07 11:05:05 +01:00
input.c
rxrpc: Fix misplaced traceline
2019-09-05 00:24:58 +02:00
insecure.c
rxrpc: Fix -Wframe-larger-than= warnings from on-stack crypto
2019-07-30 10:32:35 -07:00
Kconfig
treewide: Add SPDX license identifier - Makefile/Kconfig
2019-05-21 10:50:46 +02:00
key.c
Revert "Merge tag 'keys-acl-20190703' of git://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-fs"
2019-07-10 18:43:43 -07:00
local_event.c
rxrpc: Use the tx-phase skb flag to simplify tracing
2019-08-27 10:04:18 +01:00
local_object.c
rxrpc: Fix lack of conn cleanup when local endpoint is cleaned up [ver #2 ]
2019-08-30 15:06:52 -07:00
Makefile
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
misc.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 36
2019-05-24 17:27:11 +02:00
net_ns.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 36
2019-05-24 17:27:11 +02:00
output.c
rxrpc: Use the tx-phase skb flag to simplify tracing
2019-08-27 10:04:18 +01:00
peer_event.c
rxrpc: use rcu protection while reading sk->sk_user_data
2019-10-16 12:20:17 -07:00
peer_object.c
rxrpc: rxrpc_peer needs to hold a ref on the rxrpc_local record
2019-10-07 11:05:05 +01:00
proc.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152
2019-05-30 11:26:32 -07:00
protocol.h
rxrpc: Improve jumbo packet counting
2019-08-27 09:48:37 +01:00
recvmsg.c
rxrpc: Fix handling of last subpacket of jumbo packet
2019-10-31 12:23:09 -07:00
rxkad.c
Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net
2019-09-02 11:20:17 -07:00
security.c
Keyrings namespacing
2019-07-08 19:36:47 -07:00
sendmsg.c
rxrpc: Fix call crypto state cleanup
2019-10-07 11:05:05 +01:00
skbuff.c
rxrpc: Use skb_unshare() rather than skb_cow_data()
2019-08-27 10:13:46 +01:00
sysctl.c
proc/sysctl: add shared variables for range check
2019-07-18 17:08:07 -07:00
utils.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 36
2019-05-24 17:27:11 +02:00