iwlwifi: Tell the ucode immediately when association state changes
authorJay Sternberg <jay.e.sternberg@intel.com>
Fri, 20 Nov 2009 20:05:06 +0000 (12:05 -0800)
committerJohn W. Linville <linville@tuxdriver.com>
Mon, 23 Nov 2009 22:05:37 +0000 (17:05 -0500)
When we get a state change of associated or not, we need to tell the
ucode via the RX_ON command using the filter flags.  This will prevent
the ucode from sending any packets when not associated, specifically not
sending NULL QOS packets after a deauthentication which causes the AP to
repeatedly send deauth's in some situations.

Signed-off-by: Jay Sternberg <jay.e.sternberg@intel.com>
Signed-off-by: Reinette Chatre <reinette.chatre@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
drivers/net/wireless/iwlwifi/iwl-core.c

index 05a0c41..2e0fb28 100644 (file)
@@ -2478,6 +2478,16 @@ void iwl_bss_info_changed(struct ieee80211_hw *hw,
                } else {
                        priv->assoc_id = 0;
                        iwl_led_disassociate(priv);
+
+                       /*
+                        * inform the ucode that there is no longer an
+                        * association and that no more packets should be
+                        * send
+                        */
+                       priv->staging_rxon.filter_flags &=
+                               ~RXON_FILTER_ASSOC_MSK;
+                       priv->staging_rxon.assoc_id = 0;
+                       iwlcore_commit_rxon(priv);
                }
        }