aboutsummaryrefslogtreecommitdiffstats
path: root/net/mac80211/mesh.c
diff options
context:
space:
mode:
Diffstat (limited to 'net/mac80211/mesh.c')
-rw-r--r--net/mac80211/mesh.c19
1 files changed, 10 insertions, 9 deletions
diff --git a/net/mac80211/mesh.c b/net/mac80211/mesh.c
index 2913113c5833..6fac18c0423f 100644
--- a/net/mac80211/mesh.c
+++ b/net/mac80211/mesh.c
@@ -133,7 +133,7 @@ bool mesh_peer_accepts_plinks(struct ieee802_11_elems *ie)
133} 133}
134 134
135/** 135/**
136 * mesh_accept_plinks_update: update accepting_plink in local mesh beacons 136 * mesh_accept_plinks_update - update accepting_plink in local mesh beacons
137 * 137 *
138 * @sdata: mesh interface in which mesh beacons are going to be updated 138 * @sdata: mesh interface in which mesh beacons are going to be updated
139 */ 139 */
@@ -443,7 +443,7 @@ static void ieee80211_mesh_path_root_timer(unsigned long data)
443 443
444void ieee80211_mesh_root_setup(struct ieee80211_if_mesh *ifmsh) 444void ieee80211_mesh_root_setup(struct ieee80211_if_mesh *ifmsh)
445{ 445{
446 if (ifmsh->mshcfg.dot11MeshHWMPRootMode) 446 if (ifmsh->mshcfg.dot11MeshHWMPRootMode > IEEE80211_ROOTMODE_ROOT)
447 set_bit(MESH_WORK_ROOT, &ifmsh->wrkq_flags); 447 set_bit(MESH_WORK_ROOT, &ifmsh->wrkq_flags);
448 else { 448 else {
449 clear_bit(MESH_WORK_ROOT, &ifmsh->wrkq_flags); 449 clear_bit(MESH_WORK_ROOT, &ifmsh->wrkq_flags);
@@ -523,11 +523,6 @@ static void ieee80211_mesh_housekeeping(struct ieee80211_sub_if_data *sdata,
523{ 523{
524 bool free_plinks; 524 bool free_plinks;
525 525
526#ifdef CONFIG_MAC80211_VERBOSE_DEBUG
527 printk(KERN_DEBUG "%s: running mesh housekeeping\n",
528 sdata->name);
529#endif
530
531 ieee80211_sta_expire(sdata, IEEE80211_MESH_PEER_INACTIVITY_LIMIT); 526 ieee80211_sta_expire(sdata, IEEE80211_MESH_PEER_INACTIVITY_LIMIT);
532 mesh_path_expire(sdata); 527 mesh_path_expire(sdata);
533 528
@@ -542,11 +537,17 @@ static void ieee80211_mesh_housekeeping(struct ieee80211_sub_if_data *sdata,
542static void ieee80211_mesh_rootpath(struct ieee80211_sub_if_data *sdata) 537static void ieee80211_mesh_rootpath(struct ieee80211_sub_if_data *sdata)
543{ 538{
544 struct ieee80211_if_mesh *ifmsh = &sdata->u.mesh; 539 struct ieee80211_if_mesh *ifmsh = &sdata->u.mesh;
540 u32 interval;
545 541
546 mesh_path_tx_root_frame(sdata); 542 mesh_path_tx_root_frame(sdata);
543
544 if (ifmsh->mshcfg.dot11MeshHWMPRootMode == IEEE80211_PROACTIVE_RANN)
545 interval = ifmsh->mshcfg.dot11MeshHWMPRannInterval;
546 else
547 interval = ifmsh->mshcfg.dot11MeshHWMProotInterval;
548
547 mod_timer(&ifmsh->mesh_path_root_timer, 549 mod_timer(&ifmsh->mesh_path_root_timer,
548 round_jiffies(TU_TO_EXP_TIME( 550 round_jiffies(TU_TO_EXP_TIME(interval)));
549 ifmsh->mshcfg.dot11MeshHWMPRannInterval)));
550} 551}
551 552
552#ifdef CONFIG_PM 553#ifdef CONFIG_PM