diff options
author | Luis R. Rodriguez <lrodriguez@atheros.com> | 2010-09-16 15:12:29 -0400 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2010-09-16 15:46:13 -0400 |
commit | be099e82e9cf6d5d65d044e9ef6fc8bee3c7a113 (patch) | |
tree | 3c5859de583495c60a66a92a6bd91d2726866498 /net | |
parent | 48a6a468198aadb54bc5d3fdd065364d43ff5197 (diff) |
mac80211: add helper for reseting the connection monitor
This will be used in another place later. The connection
monitor was added as of 2.6.35 so these fixes will be
applicable to >= 2.6.35.
Cc: stable@kernel.org
Cc: Paul Stewart <pstew@google.com>
Cc: Amod Bodas <amod.bodas@atheros.com>
Signed-off-by: Luis R. Rodriguez <lrodriguez@atheros.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'net')
-rw-r--r-- | net/mac80211/ieee80211_i.h | 1 | ||||
-rw-r--r-- | net/mac80211/mlme.c | 15 |
2 files changed, 11 insertions, 5 deletions
diff --git a/net/mac80211/ieee80211_i.h b/net/mac80211/ieee80211_i.h index 4e635e2fabdb..737fd0f07524 100644 --- a/net/mac80211/ieee80211_i.h +++ b/net/mac80211/ieee80211_i.h | |||
@@ -1041,6 +1041,7 @@ void ieee80211_sta_restart(struct ieee80211_sub_if_data *sdata); | |||
1041 | void ieee80211_sta_work(struct ieee80211_sub_if_data *sdata); | 1041 | void ieee80211_sta_work(struct ieee80211_sub_if_data *sdata); |
1042 | void ieee80211_sta_rx_queued_mgmt(struct ieee80211_sub_if_data *sdata, | 1042 | void ieee80211_sta_rx_queued_mgmt(struct ieee80211_sub_if_data *sdata, |
1043 | struct sk_buff *skb); | 1043 | struct sk_buff *skb); |
1044 | void ieee80211_sta_reset_conn_monitor(struct ieee80211_sub_if_data *sdata); | ||
1044 | 1045 | ||
1045 | /* IBSS code */ | 1046 | /* IBSS code */ |
1046 | void ieee80211_ibss_notify_scan_completed(struct ieee80211_local *local); | 1047 | void ieee80211_ibss_notify_scan_completed(struct ieee80211_local *local); |
diff --git a/net/mac80211/mlme.c b/net/mac80211/mlme.c index bfb0eab5c26d..2d86a4d5e912 100644 --- a/net/mac80211/mlme.c +++ b/net/mac80211/mlme.c | |||
@@ -124,6 +124,15 @@ static void mod_beacon_timer(struct ieee80211_sub_if_data *sdata) | |||
124 | round_jiffies_up(jiffies + IEEE80211_BEACON_LOSS_TIME)); | 124 | round_jiffies_up(jiffies + IEEE80211_BEACON_LOSS_TIME)); |
125 | } | 125 | } |
126 | 126 | ||
127 | void ieee80211_sta_reset_conn_monitor(struct ieee80211_sub_if_data *sdata) | ||
128 | { | ||
129 | if (sdata->local->hw.flags & IEEE80211_HW_CONNECTION_MONITOR) | ||
130 | return; | ||
131 | |||
132 | mod_timer(&sdata->u.mgd.conn_mon_timer, | ||
133 | round_jiffies_up(jiffies + IEEE80211_CONNECTION_IDLE_TIME)); | ||
134 | } | ||
135 | |||
127 | static int ecw2cw(int ecw) | 136 | static int ecw2cw(int ecw) |
128 | { | 137 | { |
129 | return (1 << ecw) - 1; | 138 | return (1 << ecw) - 1; |
@@ -1018,11 +1027,7 @@ void ieee80211_sta_rx_notify(struct ieee80211_sub_if_data *sdata, | |||
1018 | if (is_multicast_ether_addr(hdr->addr1)) | 1027 | if (is_multicast_ether_addr(hdr->addr1)) |
1019 | return; | 1028 | return; |
1020 | 1029 | ||
1021 | if (sdata->local->hw.flags & IEEE80211_HW_CONNECTION_MONITOR) | 1030 | ieee80211_sta_reset_conn_monitor(sdata); |
1022 | return; | ||
1023 | |||
1024 | mod_timer(&sdata->u.mgd.conn_mon_timer, | ||
1025 | round_jiffies_up(jiffies + IEEE80211_CONNECTION_IDLE_TIME)); | ||
1026 | } | 1031 | } |
1027 | 1032 | ||
1028 | static void ieee80211_mgd_probe_ap_send(struct ieee80211_sub_if_data *sdata) | 1033 | static void ieee80211_mgd_probe_ap_send(struct ieee80211_sub_if_data *sdata) |