>From internal-wifi-devel-bounces@linux.intel.com Mon Sep 19 22:17:03 2011 Received: from fmsmsx101.amr.corp.intel.com (10.19.9.52) by orsmsx605.amr.corp.intel.com (10.22.226.10) with Microsoft SMTP Server (TLS) id 8.2.255.0; Mon, 19 Sep 2011 22:17:03 -0700 Received: from rrsmsx606.amr.corp.intel.com (10.31.1.130) by FMSMSX101.amr.corp.intel.com (10.19.9.52) with Microsoft SMTP Server (TLS) id 14.1.323.3; Mon, 19 Sep 2011 22:17:02 -0700 Received: from orsmga001.jf.intel.com (10.7.209.18) by rrsmsx606-2.rr.intel.com (10.31.1.136) with Microsoft SMTP Server id 8.2.255.0; Mon, 19 Sep 2011 23:17:01 -0600 Received: from linux.jf.intel.com (HELO linux.intel.com) ([10.23.219.25]) by orsmga001.jf.intel.com with ESMTP; 19 Sep 2011 22:16:59 -0700 Received: from linux.intel.com (linux.intel.com [127.0.0.1]) by linux.intel.com (Postfix) with ESMTP id 6A1466A4082; Mon, 19 Sep 2011 22:16:57 -0700 (PDT) Received: from azsmga001.ch.intel.com (azsmga001.ch.intel.com [10.2.17.19]) by linux.intel.com (Postfix) with ESMTP id 87C516A4082 for ; Mon, 19 Sep 2011 22:16:56 -0700 (PDT) Received: from iapp029.jer.intel.com (HELO localhost.localdomain) ([10.12.252.35]) by azsmga001.ch.intel.com with ESMTP; 19 Sep 2011 22:16:56 -0700 From: "Grumbach, Emmanuel" To: "internal-wifi-devel@linux.intel.com" CC: "Grumbach, Emmanuel" Sender: "internal-wifi-devel-bounces@linux.intel.com" Date: Mon, 19 Sep 2011 22:16:54 -0700 Subject: [Internal-wifi-devel] [PATCH] iwlagn: update rate scaling with BA notifications Thread-Topic: [Internal-wifi-devel] [PATCH] iwlagn: update rate scaling with BA notifications Thread-Index: Acx3VJZ7Wv3bk11hTxOeFpC21jME+g== Message-ID: <1316495814-16512-1-git-send-email-emmanuel.grumbach@intel.com> List-Help: List-Subscribe: , List-Unsubscribe: , Accept-Language: en-US Content-Language: en-US X-MS-Exchange-Organization-AuthAs: Internal X-MS-Exchange-Organization-AuthMechanism: 10 X-MS-Exchange-Organization-AuthSource: RRSMSX606.amr.corp.intel.com X-MS-Has-Attach: X-Auto-Response-Suppress: All X-MS-TNEF-Correlator: x-ironport-av: E=Sophos;i="4.68,409,1312182000"; d="scan'208";a="50725773" x-extloop1: 1 x-extloopcount2: 2 from 10.23.219.25 errors-to: internal-wifi-devel-bounces@linux.intel.com list-id: internal wifi development mailing list list-post: list-archive: x-original-to: internal-wifi-devel@linux.intel.com delivered-to: internal-wifi-devel@localhost.localdomain x-beenthere: internal-wifi-devel@linux.intel.com x-mailman-version: 2.1.5 Content-Type: text/plain; charset="iso-8859-1" MIME-Version: 1.0 X-Evolution-Source: imap://wwguy@imapmail.intel.com/ Content-Transfer-Encoding: 8bit From: Emmanuel Grumbach In the current code, the rate scaling isn't fed with statistics from the BA notifications. This is since my patch: iwlagn: reclaim the packets in transport layer Fix that. Signed-off-by: Emmanuel Grumbach Signed-off-by: Wey-Yi Guy --- drivers/net/wireless/iwlwifi/iwl-agn-tx.c | 13 +++++++++---- 1 files changed, 9 insertions(+), 4 deletions(-) diff --git a/drivers/net/wireless/iwlwifi/iwl-agn-tx.c b/drivers/net/wireless/iwlwifi/iwl-agn-tx.c index 1a475a5..5e5a09b 100644 --- a/drivers/net/wireless/iwlwifi/iwl-agn-tx.c +++ b/drivers/net/wireless/iwlwifi/iwl-agn-tx.c @@ -342,6 +342,8 @@ int iwlagn_tx_skb(struct iwl_priv *priv, struct sk_buff *skb) iwl_update_stats(priv, true, fc, len); + memset(&info->status, 0, sizeof(info->status)); + info->driver_data[0] = ctx; info->driver_data[1] = dev_cmd; @@ -580,6 +582,9 @@ static void iwl_rx_reply_tx_agg(struct iwl_priv *priv, IWL_DEBUG_COEX(priv, "receive reply tx w/ bt_kill\n"); } + if (tx_resp->frame_count == 1) + return; + /* Construct bit-map of pending frames within Tx window */ for (i = 0; i < tx_resp->frame_count; i++) { u16 fstatus = le16_to_cpu(frame_status[i].status); @@ -937,7 +942,10 @@ int iwlagn_rx_reply_compressed_ba(struct iwl_priv *priv, else WARN_ON_ONCE(1); - if (freed == 0) { + info = IEEE80211_SKB_CB(skb); + kmem_cache_free(priv->tx_cmd_pool, (info->driver_data[1])); + + if (freed == 1) { /* this is the first skb we deliver in this batch */ /* put the rate scaling data there */ info = IEEE80211_SKB_CB(skb); @@ -950,9 +958,6 @@ int iwlagn_rx_reply_compressed_ba(struct iwl_priv *priv, info); } - info = IEEE80211_SKB_CB(skb); - kmem_cache_free(priv->tx_cmd_pool, (info->driver_data[1])); - ieee80211_tx_status_irqsafe(priv->hw, skb); } -- 1.7.1 _______________________________________________ internal-wifi-devel mailing list internal-wifi-devel@linux.intel.com http://linux.intel.com/mailman/listinfo/internal-wifi-devel