From patchwork Mon Jan 19 19:06:46 2009 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jesse Brandeburg X-Patchwork-Id: 19382 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 1D4D6DDFDE for ; Tue, 20 Jan 2009 06:07:02 +1100 (EST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753290AbZASTGu (ORCPT ); Mon, 19 Jan 2009 14:06:50 -0500 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1753205AbZASTGu (ORCPT ); Mon, 19 Jan 2009 14:06:50 -0500 Received: from mga02.intel.com ([134.134.136.20]:46867 "EHLO mga02.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753023AbZASTGs (ORCPT ); Mon, 19 Jan 2009 14:06:48 -0500 Received: from orsmga001.jf.intel.com ([10.7.209.18]) by orsmga101.jf.intel.com with ESMTP; 19 Jan 2009 11:01:25 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="4.37,290,1231142400"; d="p7s'?scan'208";a="482891783" Received: from orsmsx604.amr.corp.intel.com ([10.22.226.87]) by orsmga001.jf.intel.com with ESMTP; 19 Jan 2009 11:05:13 -0800 Received: from orsmsx507.amr.corp.intel.com ([10.22.226.41]) by orsmsx604.amr.corp.intel.com ([10.250.113.17]) with mapi; Mon, 19 Jan 2009 11:06:47 -0800 From: "Brandeburg, Jesse" To: "ohashi-h@mb.dnes.nec.co.jp" CC: "Allan, Bruce W" , "Waskiewicz Jr, Peter P" , "Ronciak, John" , "Kirsher, Jeffrey T" , "jgarzik@pobox.com" , "netdev@vger.kernel.org" , "e1000-devel@lists.sourceforge.net" , "h-shimamoto@ct.jp.nec.com" , "Graham, David" Date: Mon, 19 Jan 2009 11:06:46 -0800 Subject: RE: [PATCH] e1000e: introduce new parameter to disable force-link-up on serdes Thread-Topic: [PATCH] e1000e: introduce new parameter to disable force-link-up on serdes Thread-Index: Acl6IumsKmimeb7YSkCb/3E8UBwPTwARHUYQ Message-ID: References: <20090119194210ohashi-h@mail.jp.nec.com> In-Reply-To: <20090119194210ohashi-h@mail.jp.nec.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: yes X-MS-TNEF-Correlator: acceptlanguage: en-US MIME-Version: 1.0 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org ohashi-h@mb.dnes.nec.co.jp wrote: >>>> Also the Link LED is supposed to indicated that there is a >>>> "physical" link, in which case you can have a physical connection >>>> and still fail auto-neg. So I do not necessarily agree with your >>>> interpretation of what a link LED is supposed to indicate. >>> >>> My explanation was insufficiently. >>> My system was NOT connected LAN cable to NIC, but the Link LED >>> was indicated. >>> So the problem is the LED is indicated without connecting the cable. >>> >> >> I tried again using kernel 2.6.27.8 (e1000e driver). >> The LED of NIC was indicated, even when the system was not >> connected LAN cable. >> When I deleted logic of force-link-up (the following modification.), >> the LED was turned off. >> >> I think it is a problem that LED indicates. >> If you have any good way to modify, please let me know. >> (Patches are considering.) > > I send the patch to modify. I appreciate your work on this issue but I think you're making the wrong solution. We've done some work on a similar issue, does the attached patch fix the issue for you? inline also, but (probably) whitespace damaged. Author: Jesse Brandeburg Date: Mon Jan 19 11:04:11 2009 -0800 e1000e: do not force link on blades e1000 originally had a workaround to force link up based on some hardware errata on ancient parts. The e1000e driver has carried over this workaround even though it doesn't support the same hardware. letting rx sequence errors drive link up/down events is harming the logic of the state machines that control link state on blade connected e1000e parts. remove rx sequence errors from causing link events. Signed-off-by: Jesse Brandeburg * ICH8 workaround-- Call gig speed drop workaround on cable @@ -1218,7 +1218,7 @@ static irqreturn_t e1000_intr(int irq, void *data) * IMC write */ - if (icr & (E1000_ICR_RXSEQ | E1000_ICR_LSC)) { + if (icr & E1000_ICR_LSC) { hw->mac.get_link_status = 1; /* * ICH8 workaround-- Call gig speed drop workaround on cable diff --git a/drivers/net/e1000e/netdev.c b/drivers/net/e1000e/netdev.c index 91817d0..55b2f6b 100644 --- a/drivers/net/e1000e/netdev.c +++ b/drivers/net/e1000e/netdev.c @@ -1152,7 +1152,7 @@ static irqreturn_t e1000_intr_msi(int irq, void *data) * read ICR disables interrupts using IAM */ - if (icr & (E1000_ICR_RXSEQ | E1000_ICR_LSC)) { + if (icr & E1000_ICR_LSC) { hw->mac.get_link_status = 1; /*