]> git.ipfire.org Git - thirdparty/kernel/stable.git/commit
rxrpc: Fix terminal retransmission connection ID to include the channel
authorDavid Howells <dhowells@redhat.com>
Wed, 6 Jun 2018 13:59:14 +0000 (14:59 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 3 Aug 2018 05:47:35 +0000 (07:47 +0200)
commit9f8a2aa1c5c782afb03e7ff38597a17e6fea303e
tree04e91031e167b7553aebe76dd66a9722e11fa402
parent6bae9208199822d02c2faea005dfdf596a9a5b9c
rxrpc: Fix terminal retransmission connection ID to include the channel

[ Upstream commit fb1967a69f756073362b8f19347f863f227320ad ]

When retransmitting the final ACK or ABORT packet for a call, the cid field
in the packet header is set to the connection's cid, but this is incorrect
as it also needs to include the channel number on that connection that the
call was made on.

Fix this by OR'ing in the channel number.

Note that this fixes the bug that:

commit 1a025028d400b23477341aa7ec2ce55f8b39b554
rxrpc: Fix handling of call quietly cancelled out on server

works around.  I'm not intending to revert that as it will help protect
against problems that might occur on the server.

Fixes: 3136ef49a14c ("rxrpc: Delay terminal ACK transmission on a client call")
Signed-off-by: David Howells <dhowells@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
net/rxrpc/conn_event.c