Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932165AbbKXWPT (ORCPT ); Tue, 24 Nov 2015 17:15:19 -0500 Received: from mx1.redhat.com ([209.132.183.28]:50633 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754149AbbKXWPQ (ORCPT ); Tue, 24 Nov 2015 17:15:16 -0500 Date: Tue, 24 Nov 2015 17:15:15 -0500 (EST) Message-Id: <20151124.171515.1710534888834295691.davem@redhat.com> To: dhowells@redhat.com Cc: netdev@vger.kernel.org, linux-afs@lists.infradead.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH] rxrpc: Correctly handle ack at end of client call transmit phase From: David Miller In-Reply-To: <20151124144159.18105.50840.stgit@warthog.procyon.org.uk> References: <20151124144159.18105.50840.stgit@warthog.procyon.org.uk> Mime-Version: 1.0 Content-Type: Text/Plain; charset=us-ascii Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1497 Lines: 32 From: David Howells Date: Tue, 24 Nov 2015 14:41:59 +0000 > Normally, the transmit phase of a client call is implicitly ack'd by the > reception of the first data packet of the response being received. > However, if a security negotiation happens, the transmit phase, if it is > entirely contained in a single packet, may get an ack packet in response > and then may get aborted due to security negotiation failure. > > Because the client has shifted state to RXRPC_CALL_CLIENT_AWAIT_REPLY due > to having transmitted all the data, the code that handles processing of the > received ack packet doesn't note the hard ack the data packet. > > The following abort packet in the case of security negotiation failure then > incurs an assertion failure when it tries to drain the Tx queue because the > hard ack state is out of sync (hard ack means the packets have been > processed and can be discarded by the sender; a soft ack means that the > packets are received but could still be discarded and rerequested by the > receiver). > > To fix this, we should record the hard ack we received for the ack packet. > > The assertion failure looks like: ... > Signed-off-by: David Howells Applied, thanks David. -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/