diff options
Diffstat (limited to 'drivers/net/wireless/iwlwifi/dvm/sta.c')
-rw-r--r-- | drivers/net/wireless/iwlwifi/dvm/sta.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/drivers/net/wireless/iwlwifi/dvm/sta.c b/drivers/net/wireless/iwlwifi/dvm/sta.c index b775769f8322..db183b44e038 100644 --- a/drivers/net/wireless/iwlwifi/dvm/sta.c +++ b/drivers/net/wireless/iwlwifi/dvm/sta.c | |||
@@ -695,6 +695,7 @@ void iwl_clear_ucode_stations(struct iwl_priv *priv, | |||
695 | void iwl_restore_stations(struct iwl_priv *priv, struct iwl_rxon_context *ctx) | 695 | void iwl_restore_stations(struct iwl_priv *priv, struct iwl_rxon_context *ctx) |
696 | { | 696 | { |
697 | struct iwl_addsta_cmd sta_cmd; | 697 | struct iwl_addsta_cmd sta_cmd; |
698 | static const struct iwl_link_quality_cmd zero_lq = {}; | ||
698 | struct iwl_link_quality_cmd lq; | 699 | struct iwl_link_quality_cmd lq; |
699 | int i; | 700 | int i; |
700 | bool found = false; | 701 | bool found = false; |
@@ -733,7 +734,9 @@ void iwl_restore_stations(struct iwl_priv *priv, struct iwl_rxon_context *ctx) | |||
733 | else | 734 | else |
734 | memcpy(&lq, priv->stations[i].lq, | 735 | memcpy(&lq, priv->stations[i].lq, |
735 | sizeof(struct iwl_link_quality_cmd)); | 736 | sizeof(struct iwl_link_quality_cmd)); |
736 | send_lq = true; | 737 | |
738 | if (!memcmp(&lq, &zero_lq, sizeof(lq))) | ||
739 | send_lq = true; | ||
737 | } | 740 | } |
738 | spin_unlock_bh(&priv->sta_lock); | 741 | spin_unlock_bh(&priv->sta_lock); |
739 | ret = iwl_send_add_sta(priv, &sta_cmd, CMD_SYNC); | 742 | ret = iwl_send_add_sta(priv, &sta_cmd, CMD_SYNC); |