From patchwork Fri Jun 25 18:57:09 2010 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Reinette Chatre X-Patchwork-Id: 108094 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 o5PIvCNZ018537 for ; Fri, 25 Jun 2010 18:57:12 GMT Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932273Ab0FYS5L (ORCPT ); Fri, 25 Jun 2010 14:57:11 -0400 Received: from mga09.intel.com ([134.134.136.24]:64952 "EHLO mga09.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751253Ab0FYS5K (ORCPT ); Fri, 25 Jun 2010 14:57:10 -0400 Received: from orsmga001.jf.intel.com ([10.7.209.18]) by orsmga102.jf.intel.com with ESMTP; 25 Jun 2010 11:56:46 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="4.53,482,1272870000"; d="scan'208";a="633685758" Received: from rchatre-desk.jf.intel.com (HELO [10.23.232.219]) ([10.23.232.219]) by orsmga001.jf.intel.com with ESMTP; 25 Jun 2010 11:57:05 -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: <4C24D926.7010806@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> Date: Fri, 25 Jun 2010 11:57:09 -0700 Message-ID: <1277492229.13673.1297.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]); Fri, 25 Jun 2010 18:57:12 +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 */