From patchwork Mon Jun 28 20:39:23 2010 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Reinette Chatre X-Patchwork-Id: 108425 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by demeter.kernel.org (8.14.4/8.14.3) with ESMTP id o5SKdYiP010442 for ; Mon, 28 Jun 2010 20:39:34 GMT Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754826Ab0F1Ujd (ORCPT ); Mon, 28 Jun 2010 16:39:33 -0400 Received: from mga02.intel.com ([134.134.136.20]:48413 "EHLO mga02.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753062Ab0F1Ujd (ORCPT ); Mon, 28 Jun 2010 16:39:33 -0400 Received: from orsmga002.jf.intel.com ([10.7.209.21]) by orsmga101.jf.intel.com with ESMTP; 28 Jun 2010 13:38:48 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="4.53,499,1272870000"; d="scan'208";a="531073679" Received: from rchatre-desk.jf.intel.com (HELO [10.23.232.219]) ([10.23.232.219]) by orsmga002.jf.intel.com with ESMTP; 28 Jun 2010 13:39:13 -0700 Subject: Re: intel 5100/iwlagn bug in 2.6.35-rc2 during large file transfer From: reinette chatre To: Richard Farina Cc: "linux-wireless@vger.kernel.org" In-Reply-To: <4C28D552.30000@gmail.com> References: <4C198EF0.5080807@gmail.com> <1277225293.25793.2257.camel@rchatre-DESK> <4C2383E2.8000909@gmail.com> <1277399636.25793.2389.camel@rchatre-DESK> <4C23961D.7050500@gmail.com> <1277401731.25793.2391.camel@rchatre-DESK> <4C24D926.7010806@gmail.com> <1277492229.13673.1297.camel@rchatre-DESK> <4C278704.5040604@gmail.com> <1277742425.13673.1376.camel@rchatre-DESK> <4C28D552.30000@gmail.com> Date: Mon, 28 Jun 2010 13:39:23 -0700 Message-ID: <1277757563.4197.11.camel@rchatre-DESK> Mime-Version: 1.0 X-Mailer: Evolution 2.28.3 Sender: linux-wireless-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-wireless@vger.kernel.org X-Greylist: IP, sender and recipient auto-whitelisted, not delayed by milter-greylist-4.2.3 (demeter.kernel.org [140.211.167.41]); Mon, 28 Jun 2010 20:39:35 +0000 (UTC) diff --git a/drivers/net/wireless/iwlwifi/iwl-agn-lib.c b/drivers/net/wireless/iwlwifi/iwl-agn-lib.c index 0f292a2..2815ee7 100644 --- a/drivers/net/wireless/iwlwifi/iwl-agn-lib.c +++ b/drivers/net/wireless/iwlwifi/iwl-agn-lib.c @@ -613,7 +613,8 @@ void iwlagn_rx_allocate(struct iwl_priv *priv, gfp_t priority) } spin_unlock_irqrestore(&rxq->lock, flags); - if (rxq->free_count > RX_LOW_WATERMARK) + if ((priority == GFP_ATOMIC) || + (rxq->free_count > RX_LOW_WATERMARK / 4)) gfp_mask |= __GFP_NOWARN; if (priv->hw_params.rx_page_order > 0) @@ -627,7 +628,7 @@ void iwlagn_rx_allocate(struct iwl_priv *priv, gfp_t priority) "order: %d\n", priv->hw_params.rx_page_order); - if ((rxq->free_count <= RX_LOW_WATERMARK) && + if ((rxq->free_count <= RX_LOW_WATERMARK / 4) && net_ratelimit()) IWL_CRIT(priv, "Failed to alloc_pages with %s. Only %u free buffers remaining.\n", priority == GFP_ATOMIC ? "GFP_ATOMIC" : "GFP_KERNEL", diff --git a/drivers/net/wireless/iwlwifi/iwl-fh.h b/drivers/net/wireless/iwlwifi/iwl-fh.h index 113c366..431bc58 100644 --- a/drivers/net/wireless/iwlwifi/iwl-fh.h +++ b/drivers/net/wireless/iwlwifi/iwl-fh.h @@ -426,7 +426,7 @@ * RX related structures and functions */ #define RX_FREE_BUFFERS 64 -#define RX_LOW_WATERMARK 8 +#define RX_LOW_WATERMARK 128 /* Size of one Rx buffer in host DRAM */ #define IWL_RX_BUF_SIZE_3K (3 * 1000) /* 3945 only */