From patchwork Thu Jan 22 22:36:06 2009 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Vlad Yasevich X-Patchwork-Id: 19911 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Received: from vger.kernel.org (vger.kernel.org [209.132.176.167]) by ozlabs.org (Postfix) with ESMTP id BFC3DDDF2B for ; Fri, 23 Jan 2009 09:36:35 +1100 (EST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1759209AbZAVWgP (ORCPT ); Thu, 22 Jan 2009 17:36:15 -0500 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1759165AbZAVWgO (ORCPT ); Thu, 22 Jan 2009 17:36:14 -0500 Received: from g4t0016.houston.hp.com ([15.201.24.19]:2094 "EHLO g4t0016.houston.hp.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1758808AbZAVWgL (ORCPT ); Thu, 22 Jan 2009 17:36:11 -0500 Received: from smtp1.fc.hp.com (smtp.cnd.hp.com [15.15.136.127]) by g4t0016.houston.hp.com (Postfix) with ESMTP id 9A303140C5; Thu, 22 Jan 2009 22:36:11 +0000 (UTC) Received: from localhost.localdomain (squirrel.fc.hp.com [15.11.146.57]) by smtp1.fc.hp.com (Postfix) with ESMTP id 5D27D24DCCE; Thu, 22 Jan 2009 22:11:59 +0000 (UTC) From: Vlad Yasevich To: netdev@vger.kernel.org Cc: linux-sctp@vger.kernel.org, davem@davemloft.net, Vlad Yasevich Subject: [PATCH 2/4] sctp: Correctly start rtx timer on new packet transmissions. Date: Thu, 22 Jan 2009 17:36:06 -0500 Message-Id: <1232663768-4028-3-git-send-email-vladislav.yasevich@hp.com> X-Mailer: git-send-email 1.5.3.5 In-Reply-To: <1232663768-4028-1-git-send-email-vladislav.yasevich@hp.com> References: <1232663768-4028-1-git-send-email-vladislav.yasevich@hp.com> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org Commit 62aeaff5ccd96462b7077046357a6d7886175a57 (sctp: Start T3-RTX timer when fast retransmitting lowest TSN) introduced a regression where it was possible to forcibly restart the sctp retransmit timer at the transmission of any new chunk. This resulted in much longer timeout times and sometimes hung sctp connections. Signed-off-by: Vlad Yasevich --- net/sctp/outqueue.c | 3 +-- 1 files changed, 1 insertions(+), 2 deletions(-) diff --git a/net/sctp/outqueue.c b/net/sctp/outqueue.c index 247ebc9..bc411c8 100644 --- a/net/sctp/outqueue.c +++ b/net/sctp/outqueue.c @@ -929,7 +929,6 @@ static int sctp_outq_flush(struct sctp_outq *q, int rtx_timeout) } /* Finally, transmit new packets. */ - start_timer = 0; while ((chunk = sctp_outq_dequeue_data(q)) != NULL) { /* RFC 2960 6.5 Every DATA chunk MUST carry a valid * stream identifier. @@ -1028,7 +1027,7 @@ static int sctp_outq_flush(struct sctp_outq *q, int rtx_timeout) list_add_tail(&chunk->transmitted_list, &transport->transmitted); - sctp_transport_reset_timers(transport, start_timer-1); + sctp_transport_reset_timers(transport, 0); q->empty = 0;