Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754576Ab0DIPpW (ORCPT ); Fri, 9 Apr 2010 11:45:22 -0400 Received: from charlotte.tuxdriver.com ([70.61.120.58]:51104 "EHLO smtp.tuxdriver.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753839Ab0DIPpU (ORCPT ); Fri, 9 Apr 2010 11:45:20 -0400 Date: Fri, 9 Apr 2010 11:38:07 -0400 From: "John W. Linville" To: davem@davemloft.net Cc: Jeff Chua , "Zhao, Shanyu" , "Chatre, Reinette" , "stable@kernel.org" , Linux Kernel , Linus Torvalds , Al Viro , "Guy, Wey-Yi" , linux-wireless@vger.kernel.org, netdev@vger.kernel.org Subject: pull request: wireless-2.6 2010-04-09 Message-ID: <20100409153807.GA3014@tuxdriver.com> References: <1270759800.19330.19.camel@wwguy-ubuntu> <20100408200218.GC2999@tuxdriver.com> <1270762107.20845.3.camel@wwguy-ubuntu> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1270762107.20845.3.camel@wwguy-ubuntu> User-Agent: Mutt/1.5.19 (2009-01-05) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2774 Lines: 76 Dave, This fix is intended for 2.6.34. It resolves an issue involving an Oops on boxes w/ iwl4965 hardware, apparently introduced by another recent patch. The thread describing the issue and the resolution is here: http://marc.info/?l=linux-kernel&m=127074721531649&w=2 In order to avoid reverting that patch, please accept this fix instead. As usual, please let me know if there are problems! Thanks, John --- The following changes since commit 2626419ad5be1a054d350786b684b41d23de1538: David S. Miller (1): tcp: Set CHECKSUM_UNNECESSARY in tcp_init_nondata_skb are available in the git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6.git master Wey-Yi Guy (1): iwlwifi: need check for valid qos packet before free drivers/net/wireless/iwlwifi/iwl-4965.c | 13 +++++++++---- 1 files changed, 9 insertions(+), 4 deletions(-) diff --git a/drivers/net/wireless/iwlwifi/iwl-4965.c b/drivers/net/wireless/iwlwifi/iwl-4965.c index 83c52a6..8972166 100644 --- a/drivers/net/wireless/iwlwifi/iwl-4965.c +++ b/drivers/net/wireless/iwlwifi/iwl-4965.c @@ -2015,7 +2015,9 @@ static void iwl4965_rx_reply_tx(struct iwl_priv *priv, IWL_DEBUG_TX_REPLY(priv, "Retry scheduler reclaim scd_ssn " "%d index %d\n", scd_ssn , index); freed = iwl_tx_queue_reclaim(priv, txq_id, index); - iwl_free_tfds_in_queue(priv, sta_id, tid, freed); + if (qc) + iwl_free_tfds_in_queue(priv, sta_id, + tid, freed); if (priv->mac80211_registered && (iwl_queue_space(&txq->q) > txq->q.low_mark) && @@ -2041,14 +2043,17 @@ static void iwl4965_rx_reply_tx(struct iwl_priv *priv, tx_resp->failure_frame); freed = iwl_tx_queue_reclaim(priv, txq_id, index); - iwl_free_tfds_in_queue(priv, sta_id, tid, freed); + if (qc && likely(sta_id != IWL_INVALID_STATION)) + iwl_free_tfds_in_queue(priv, sta_id, tid, freed); + else if (sta_id == IWL_INVALID_STATION) + IWL_DEBUG_TX_REPLY(priv, "Station not known\n"); if (priv->mac80211_registered && (iwl_queue_space(&txq->q) > txq->q.low_mark)) iwl_wake_queue(priv, txq_id); } - - iwl_txq_check_empty(priv, sta_id, tid, txq_id); + if (qc && likely(sta_id != IWL_INVALID_STATION)) + iwl_txq_check_empty(priv, sta_id, tid, txq_id); if (iwl_check_bits(status, TX_ABORT_REQUIRED_MSK)) IWL_ERR(priv, "TODO: Implement Tx ABORT REQUIRED!!!\n"); -- John W. Linville Someday the world will need a hero, and you linville@tuxdriver.com might be all we have. Be ready. -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/