From patchwork Sat Feb 21 09:28:08 2009 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Patrick Ohly X-Patchwork-Id: 23516 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 53BE2DDF2E for ; Sat, 21 Feb 2009 20:28:20 +1100 (EST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752203AbZBUJ2O (ORCPT ); Sat, 21 Feb 2009 04:28:14 -0500 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1751754AbZBUJ2O (ORCPT ); Sat, 21 Feb 2009 04:28:14 -0500 Received: from mga09.intel.com ([134.134.136.24]:49697 "EHLO mga09.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751547AbZBUJ2N (ORCPT ); Sat, 21 Feb 2009 04:28:13 -0500 Received: from orsmga001.jf.intel.com ([10.7.209.18]) by orsmga102.jf.intel.com with ESMTP; 21 Feb 2009 01:21:09 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="4.38,245,1233561600"; d="scan'208";a="491932191" Received: from unknown (HELO [143.185.76.218]) ([143.185.76.218]) by orsmga001.jf.intel.com with ESMTP; 21 Feb 2009 01:27:53 -0800 Subject: [BUG PATCH NET-NEXT-2.6] kernel panic in dev_hard_start_xmit: remove faulty software TX time stamping From: Patrick Ohly To: David Miller , "netdev@vger.kernel.org" Cc: "Tantilov, Emil S" , "Ronciak, John" , "Brandeburg, Jesse" , "Kirsher, Jeffrey T" Date: Sat, 21 Feb 2009 10:28:08 +0100 Message-Id: <1235208488.22598.40.camel@pohly-MOBL> Mime-Version: 1.0 X-Mailer: Evolution 2.22.3.1 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org The current implementation of the TX software time stamping fallback is faulty because it accesses the skb after ndo_start_xmit() returns successfully. This patch removes the fallback, which fixes kernel panics seen during stress tests. Hardware time stamping is not affected by this removal. Signed-Off: Patrick Ohly Signed-Off: Emil Tantilov Acked-by: Jeff Kirsher --- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html diff --git a/net/core/dev.c b/net/core/dev.c index d393fc9..1dcace3 100644 --- a/net/core/dev.c +++ b/net/core/dev.c @@ -1672,16 +1672,6 @@ static int dev_gso_segment(struct sk_buff *skb) return 0; } -static void tstamp_tx(struct sk_buff *skb) -{ - union skb_shared_tx *shtx = - skb_tx(skb); - if (unlikely(shtx->software && - !shtx->in_progress)) { - skb_tstamp_tx(skb, NULL); - } -} - int dev_hard_start_xmit(struct sk_buff *skb, struct net_device *dev, struct netdev_queue *txq) { @@ -1715,8 +1705,6 @@ int dev_hard_start_xmit(struct sk_buff *skb, struct net_device *dev, * the skb destructor before the call and restoring it * afterwards, then doing the skb_orphan() ourselves? */ - if (likely(!rc)) - tstamp_tx(skb); return rc; } @@ -1732,7 +1720,6 @@ gso: skb->next = nskb; return rc; } - tstamp_tx(skb); if (unlikely(netif_tx_queue_stopped(txq) && skb->next)) return NETDEV_TX_BUSY; } while (skb->next);