]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
iwlwifi: recalculate average tpt if not current
authorReinette Chatre <reinette.chatre@intel.com>
Mon, 3 May 2010 17:55:07 +0000 (10:55 -0700)
committerGreg Kroah-Hartman <gregkh@suse.de>
Mon, 5 Jul 2010 18:16:07 +0000 (11:16 -0700)
commit 3d79b2a9eeaa066b35c49fbb17e3156a3c482c3e upstream.

We currently have this check as a BUG_ON, which is being hit by people.
Previously it was an error with a recalculation if not current, return that
code.

The BUG_ON was introduced by:
commit 3110bef78cb4282c58245bc8fd6d95d9ccb19749
Author: Guy Cohen <guy.cohen@intel.com>
Date:   Tue Sep 9 10:54:54 2008 +0800

    iwlwifi: Added support for 3 antennas

... the portion adding the BUG_ON is reverted since we are encountering the error
and BUG_ON was created with assumption that error is not encountered.

Signed-off-by: Reinette Chatre <reinette.chatre@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
drivers/net/wireless/iwlwifi/iwl-agn-rs.c

index 3534d86283006d3197bf40ed02ce482e255ec76a..2423068ebeb1ef3bcb97abfe21e66e25d9419944 100644 (file)
@@ -2083,10 +2083,12 @@ static void rs_rate_scale_perform(struct iwl_priv *priv,
        }
        /* Else we have enough samples; calculate estimate of
         * actual average throughput */
-
-       /* Sanity-check TPT calculations */
-       BUG_ON(window->average_tpt != ((window->success_ratio *
-                       tbl->expected_tpt[index] + 64) / 128));
+       if (window->average_tpt != ((window->success_ratio *
+                       tbl->expected_tpt[index] + 64) / 128)) {
+               IWL_ERR(priv, "expected_tpt should have been calculated by now\n");
+               window->average_tpt = ((window->success_ratio *
+                                       tbl->expected_tpt[index] + 64) / 128);
+       }
 
        /* If we are searching for better modulation mode, check success. */
        if (lq_sta->search_better_tbl &&