]> git.baikalelectronics.ru Git - kernel.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)
committerDavid S. Miller <davem@davemloft.net>
Wed, 6 Jun 2018 18:04:08 +0000 (14:04 -0400)
commitd0a5f4870fc790a0143b160320f573edd0d825df
tree14decc8b1e6e813030898e3b4259133e9928482b
parent0993114407e5f194c122eae8629df3faf08fcb6c
rxrpc: Fix terminal retransmission connection ID to include the channel

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 0a8a57fbf52ab66198c13affa8d703a5a12d7ba1
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: 0b9a5c241fa4 ("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>
net/rxrpc/conn_event.c