diff options
Diffstat (limited to 'net/mac80211/mlme.c')
-rw-r--r-- | net/mac80211/mlme.c | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/net/mac80211/mlme.c b/net/mac80211/mlme.c index c05be09b9c6f..209abb073dfb 100644 --- a/net/mac80211/mlme.c +++ b/net/mac80211/mlme.c | |||
@@ -909,6 +909,21 @@ static void ieee80211_associate(struct ieee80211_sub_if_data *sdata) | |||
909 | mod_timer(&ifmgd->timer, jiffies + IEEE80211_ASSOC_TIMEOUT); | 909 | mod_timer(&ifmgd->timer, jiffies + IEEE80211_ASSOC_TIMEOUT); |
910 | } | 910 | } |
911 | 911 | ||
912 | void ieee80211_sta_rx_notify(struct ieee80211_sub_if_data *sdata, | ||
913 | struct ieee80211_hdr *hdr) | ||
914 | { | ||
915 | /* | ||
916 | * We can postpone the mgd.timer whenever receiving unicast frames | ||
917 | * from AP because we know that the connection is working both ways | ||
918 | * at that time. But multicast frames (and hence also beacons) must | ||
919 | * be ignored here, because we need to trigger the timer during | ||
920 | * data idle periods for sending the periodical probe request to | ||
921 | * the AP. | ||
922 | */ | ||
923 | if (!is_multicast_ether_addr(hdr->addr1)) | ||
924 | mod_timer(&sdata->u.mgd.timer, | ||
925 | jiffies + IEEE80211_MONITORING_INTERVAL); | ||
926 | } | ||
912 | 927 | ||
913 | static void ieee80211_associated(struct ieee80211_sub_if_data *sdata) | 928 | static void ieee80211_associated(struct ieee80211_sub_if_data *sdata) |
914 | { | 929 | { |