From patchwork Fri May 16 19:48:29 2014 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Bj=C3=B8rn_Mork?= X-Patchwork-Id: 349732 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.180.67]) by ozlabs.org (Postfix) with ESMTP id 7D093140090 for ; Sat, 17 May 2014 05:49:08 +1000 (EST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2992534AbaEPTs4 (ORCPT ); Fri, 16 May 2014 15:48:56 -0400 Received: from canardo.mork.no ([148.122.252.1]:52179 "EHLO canardo.mork.no" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754787AbaEPTsv (ORCPT ); Fri, 16 May 2014 15:48:51 -0400 Received: from nemi.mork.no (nemi.mork.no [IPv6:2001:4641:0:2:e8b:fdff:fe08:971]) (authenticated bits=0) by canardo.mork.no (8.14.4/8.14.4) with ESMTP id s4GJmewe021818 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES128-SHA bits=128 verify=NOT); Fri, 16 May 2014 21:48:40 +0200 Received: from bjorn by nemi.mork.no with local (Exim 4.80) (envelope-from ) id 1WlO7U-0004vc-16; Fri, 16 May 2014 21:48:40 +0200 From: =?UTF-8?q?Bj=C3=B8rn=20Mork?= To: Cc: , Alexey Orishko , Oliver Neukum , Enrico Mioso , David Laight , =?UTF-8?q?Bj=C3=B8rn=20Mork?= Subject: [PATCH net-next v2 12/12] net: cdc_ncm: do not start timer on an empty skb Date: Fri, 16 May 2014 21:48:29 +0200 Message-Id: <1400269709-18854-13-git-send-email-bjorn@mork.no> X-Mailer: git-send-email 2.0.0.rc2 In-Reply-To: <1400269709-18854-1-git-send-email-bjorn@mork.no> References: <1400269709-18854-1-git-send-email-bjorn@mork.no> MIME-Version: 1.0 X-Virus-Scanned: clamav-milter 0.98.1 at canardo X-Virus-Status: Clean Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org We can end up with a freshly allocated tx_curr_skb with no frames in it. In this case it does not make any sense to start the timer. This avoids the timer periodically trying to start tx when there is nothing in the queue. Signed-off-by: Bjørn Mork --- drivers/net/usb/cdc_ncm.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/net/usb/cdc_ncm.c b/drivers/net/usb/cdc_ncm.c index 783c4ed96395..2d0caf1eea25 100644 --- a/drivers/net/usb/cdc_ncm.c +++ b/drivers/net/usb/cdc_ncm.c @@ -1069,8 +1069,8 @@ cdc_ncm_fill_tx_frame(struct usbnet *dev, struct sk_buff *skb, __le32 sign) return skb_out; exit_no_skb: - /* Start timer, if there is a remaining skb */ - if (ctx->tx_curr_skb != NULL) + /* Start timer, if there is a remaining non-empty skb */ + if (ctx->tx_curr_skb != NULL && n > 0) cdc_ncm_tx_timeout_start(ctx); return NULL; }