Received: with ECARTIS (v1.0.0; list netdev); Thu, 05 May 2005 13:55:18 -0700 (PDT) Received: from MMS2.broadcom.com (mms2.broadcom.com [216.31.210.18]) by oss.sgi.com (8.12.10/8.12.10/SuSE Linux 0.7) with ESMTP id j45KtEOv016040 for ; Thu, 5 May 2005 13:55:14 -0700 Received: from 10.10.64.121 by MMS2.broadcom.com with SMTP (Broadcom SMTP Relay (Email Firewall v6.1.0)); Thu, 05 May 2005 13:54:37 -0700 X-Server-Uuid: 1F20ACF3-9CAF-44F7-AB47-F294E2D5B4EA Received: from mail-irva-8.broadcom.com ([10.10.64.221]) by mail-irva-1.broadcom.com (Post.Office MTA v3.5.3 release 223 ID# 0-72233U7200L2200S0V35) with ESMTP id com; Thu, 5 May 2005 13:54:40 -0700 Received: from mon-irva-10.broadcom.com (mon-irva-10.broadcom.com [10.10.64.171]) by mail-irva-8.broadcom.com (MOS 3.5.6-GR) with ESMTP id AWQ00324; Thu, 5 May 2005 13:54:32 -0700 (PDT) Received: from nt-irva-0741.brcm.ad.broadcom.com ( nt-irva-0741.brcm.ad.broadcom.com [10.8.194.54]) by mon-irva-10.broadcom.com (8.9.1/8.9.1) with ESMTP id NAA01124; Thu, 5 May 2005 13:54:32 -0700 (PDT) Received: from 10.7.17.55 ([10.7.17.55]) by NT-IRVA-0741.brcm.ad.broadcom.com ([10.8.194.54]) with Microsoft Exchange Server HTTP-DAV ; Thu, 5 May 2005 20:54:32 +0000 Received: from rh4 by nt-irva-0741; 05 May 2005 12:56:34 -0700 Subject: Re: Mystery packet killing tg3 From: "Michael Chan" To: "David S. Miller" cc: shemminger@osdl.org, jgarzik@pobox.com, netdev@oss.sgi.com In-Reply-To: <20050505113356.0f1b4c00.davem@davemloft.net> References: <20050504155143.1a78cb7a@dxpl.pdx.osdl.net> <1115245822.15156.78.camel@rh4> <20050505113356.0f1b4c00.davem@davemloft.net> Date: Thu, 05 May 2005 12:56:34 -0700 Message-ID: <1115322994.15156.98.camel@rh4> MIME-Version: 1.0 X-Mailer: Evolution 2.0.2 (2.0.2-3) X-WSS-ID: 6E64578721S2298103-01-01 Content-Type: text/plain Content-Transfer-Encoding: 7bit X-archive-position: 780 X-ecartis-version: Ecartis v1.0.0 Sender: netdev-bounce@oss.sgi.com Errors-to: netdev-bounce@oss.sgi.com X-original-sender: mchan@broadcom.com Precedence: bulk X-list: netdev Content-Length: 2227 Lines: 77 On Thu, 2005-05-05 at 11:33 -0700, David S. Miller wrote: > I'm very tempted to add a silencer to these messages in these > cases. Something like the patch below. Michael, what do you > think? > > [TG3]: Elide tg3_stop_block messages when such events are normal. > > Signed-off-by: David S. Miller > Looks good. I'm adding this patch to further ignore the tg3_stop_block errors. [TG3]: Ignore tg3_stop_block() errors. tg3_stop_block() errors can be safely ignored since tg3_chip_reset() always follows tg3_stop_block() calls. Signed-off-by: Michael Chan diff -Nru f/drivers/net/tg3.c g/drivers/net/tg3.c --- f/drivers/net/tg3.c 2005-05-05 12:29:41.000000000 -0700 +++ g/drivers/net/tg3.c 2005-05-05 12:37:14.000000000 -0700 @@ -3725,8 +3725,6 @@ err |= tg3_stop_block(tp, SNDDATAC_MODE, SNDDATAC_MODE_ENABLE, silent); err |= tg3_stop_block(tp, DMAC_MODE, DMAC_MODE_ENABLE, silent); err |= tg3_stop_block(tp, SNDBDC_MODE, SNDBDC_MODE_ENABLE, silent); - if (err) - goto out; tp->mac_mode &= ~MAC_MODE_TDE_ENABLE; tw32_f(MAC_MODE, tp->mac_mode); @@ -3744,10 +3742,10 @@ printk(KERN_ERR PFX "tg3_abort_hw timed out for %s, " "TX_MODE_ENABLE will not clear MAC_TX_MODE=%08x\n", tp->dev->name, tr32(MAC_TX_MODE)); - return -ENODEV; + err |= -ENODEV; } - err = tg3_stop_block(tp, HOSTCC_MODE, HOSTCC_MODE_ENABLE, silent); + err |= tg3_stop_block(tp, HOSTCC_MODE, HOSTCC_MODE_ENABLE, silent); err |= tg3_stop_block(tp, WDMAC_MODE, WDMAC_MODE_ENABLE, silent); err |= tg3_stop_block(tp, MBFREE_MODE, MBFREE_MODE_ENABLE, silent); @@ -3756,15 +3754,12 @@ err |= tg3_stop_block(tp, BUFMGR_MODE, BUFMGR_MODE_ENABLE, silent); err |= tg3_stop_block(tp, MEMARB_MODE, MEMARB_MODE_ENABLE, silent); - if (err) - goto out; if (tp->hw_status) memset(tp->hw_status, 0, TG3_HW_STATUS_SIZE); if (tp->hw_stats) memset(tp->hw_stats, 0, sizeof(struct tg3_hw_stats)); -out: return err; } @@ -5063,9 +5058,7 @@ tg3_write_sig_pre_reset(tp, RESET_KIND_INIT); if (tp->tg3_flags & TG3_FLAG_INIT_COMPLETE) { - err = tg3_abort_hw(tp, 1); - if (err) - return err; + tg3_abort_hw(tp, 1); } err = tg3_chip_reset(tp);