From patchwork Sun Sep 5 00:17:59 2010 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mark Lord X-Patchwork-Id: 63814 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 27384B713E for ; Sun, 5 Sep 2010 10:28:03 +1000 (EST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754402Ab0IEA17 (ORCPT ); Sat, 4 Sep 2010 20:27:59 -0400 Received: from ironport2-out.teksavvy.com ([206.248.154.183]:38253 "EHLO ironport2-out.pppoe.ca" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1754390Ab0IEA16 (ORCPT ); Sat, 4 Sep 2010 20:27:58 -0400 X-Greylist: delayed 596 seconds by postgrey-1.27 at vger.kernel.org; Sat, 04 Sep 2010 20:27:58 EDT X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: ApIBAFt+gkxLd/sX/2dsb2JhbAAHgxHHc5EIgSKDJ3QE X-IronPort-AV: E=Sophos;i="4.56,319,1280721600"; d="scan'208";a="74184182" Received: from rtr.ca (HELO [10.0.0.6]) ([75.119.251.23]) by ironport2-out.pppoe.ca with ESMTP/TLS/DHE-RSA-CAMELLIA256-SHA; 04 Sep 2010 20:18:00 -0400 Subject: PATCH: b44 Handle RX FIFO overflow better (simplified) From: Mark Lord To: "linux-kernel-owner@vger.kernel.org" Cc: netdev@vger.kernel.org, "David S. Miller" , James@superbug.co.uk Date: Sat, 04 Sep 2010 20:17:59 -0400 Message-ID: <1283645879.1672.2.camel@corey> Mime-Version: 1.0 X-Mailer: Evolution 2.28.3 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org This patch is a simplified version of the original patch from James Courtier-Dutton. >From: James Courtier-Dutton >Subject: [PATCH] Fix b44 RX FIFO overflow recovery. >Date: Wednesday, June 30, 2010 - 1:11 pm > >This patch improves the recovery after a RX FIFO overflow on the b44 >Ethernet NIC. >Before it would do a complete chip reset, resulting is loss of link >for a few seconds. >This patch improves this to do recovery in about 20ms without loss of link. > >Signed off by: James@superbug.co.uk Signed-off-by: Mark Lord --- 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 --- a/drivers/net/b44.c 2010-09-04 20:02:27.539248270 -0400 +++ b/drivers/net/b44.c 2010-09-04 20:07:03.749248234 -0400 @@ -851,6 +851,15 @@ b44_tx(bp); /* spin_unlock(&bp->tx_lock); */ } + if (bp->istat & ISTAT_RFO) { /* fast recovery, in ~20msec */ + bp->istat &= ~ISTAT_RFO; + b44_disable_ints(bp); + ssb_device_enable(bp->sdev, 0); /* resets ISTAT_RFO */ + b44_init_rings(bp); + b44_init_hw(bp, B44_FULL_RESET_SKIP_PHY); + netif_wake_queue(bp->dev); + } + spin_unlock_irqrestore(&bp->lock, flags); work_done = 0;