#include "ieee80211_i.h"
 #include "mesh.h"
 
-#define TMR_RUNNING_HK 0
-#define TMR_RUNNING_MP 1
-#define TMR_RUNNING_MPR        2
-
 static int mesh_allocated;
 static struct kmem_cache *rm_cache;
 
 
        set_bit(MESH_WORK_HOUSEKEEPING, &ifmsh->wrkq_flags);
 
-       if (local->quiescing) {
-               set_bit(TMR_RUNNING_HK, &ifmsh->timers_running);
-               return;
-       }
-
        ieee80211_queue_work(&local->hw, &sdata->work);
 }
 
 {
        struct ieee80211_sub_if_data *sdata =
                (struct ieee80211_sub_if_data *) data;
-       struct ieee80211_if_mesh *ifmsh = &sdata->u.mesh;
-       struct ieee80211_local *local = sdata->local;
-
-       if (local->quiescing) {
-               set_bit(TMR_RUNNING_MP, &ifmsh->timers_running);
-               return;
-       }
 
-       ieee80211_queue_work(&local->hw, &sdata->work);
+       ieee80211_queue_work(&sdata->local->hw, &sdata->work);
 }
 
 static void ieee80211_mesh_path_root_timer(unsigned long data)
        struct ieee80211_sub_if_data *sdata =
                (struct ieee80211_sub_if_data *) data;
        struct ieee80211_if_mesh *ifmsh = &sdata->u.mesh;
-       struct ieee80211_local *local = sdata->local;
 
        set_bit(MESH_WORK_ROOT, &ifmsh->wrkq_flags);
 
-       if (local->quiescing) {
-               set_bit(TMR_RUNNING_MPR, &ifmsh->timers_running);
-               return;
-       }
-
-       ieee80211_queue_work(&local->hw, &sdata->work);
+       ieee80211_queue_work(&sdata->local->hw, &sdata->work);
 }
 
 void ieee80211_mesh_root_setup(struct ieee80211_if_mesh *ifmsh)
                  round_jiffies(TU_TO_EXP_TIME(interval)));
 }
 
-#ifdef CONFIG_PM
-void ieee80211_mesh_quiesce(struct ieee80211_sub_if_data *sdata)
-{
-       struct ieee80211_if_mesh *ifmsh = &sdata->u.mesh;
-
-       /* use atomic bitops in case all timers fire at the same time */
-
-       if (del_timer_sync(&ifmsh->housekeeping_timer))
-               set_bit(TMR_RUNNING_HK, &ifmsh->timers_running);
-       if (del_timer_sync(&ifmsh->mesh_path_timer))
-               set_bit(TMR_RUNNING_MP, &ifmsh->timers_running);
-       if (del_timer_sync(&ifmsh->mesh_path_root_timer))
-               set_bit(TMR_RUNNING_MPR, &ifmsh->timers_running);
-}
-
-void ieee80211_mesh_restart(struct ieee80211_sub_if_data *sdata)
-{
-       struct ieee80211_if_mesh *ifmsh = &sdata->u.mesh;
-
-       if (test_and_clear_bit(TMR_RUNNING_HK, &ifmsh->timers_running))
-               add_timer(&ifmsh->housekeeping_timer);
-       if (test_and_clear_bit(TMR_RUNNING_MP, &ifmsh->timers_running))
-               add_timer(&ifmsh->mesh_path_timer);
-       if (test_and_clear_bit(TMR_RUNNING_MPR, &ifmsh->timers_running))
-               add_timer(&ifmsh->mesh_path_root_timer);
-       ieee80211_mesh_root_setup(ifmsh);
-}
-#endif
-
 static int
 ieee80211_mesh_build_beacon(struct ieee80211_if_mesh *ifmsh)
 {
        local->fif_other_bss--;
        atomic_dec(&local->iff_allmultis);
        ieee80211_configure_filter(local);
-
-       sdata->u.mesh.timers_running = 0;
 }
 
 static void
 
 void mesh_path_flush_by_nexthop(struct sta_info *sta);
 void mesh_path_discard_frame(struct ieee80211_sub_if_data *sdata,
                             struct sk_buff *skb);
-void mesh_path_quiesce(struct ieee80211_sub_if_data *sdata);
-void mesh_path_restart(struct ieee80211_sub_if_data *sdata);
 void mesh_path_tx_root_frame(struct ieee80211_sub_if_data *sdata);
 
 bool mesh_action_is_path_sel(struct ieee80211_mgmt *mgmt);
 
 void ieee80211_mesh_notify_scan_completed(struct ieee80211_local *local);
 
-void ieee80211_mesh_quiesce(struct ieee80211_sub_if_data *sdata);
-void ieee80211_mesh_restart(struct ieee80211_sub_if_data *sdata);
-void mesh_plink_quiesce(struct sta_info *sta);
-void mesh_plink_restart(struct sta_info *sta);
 void mesh_path_flush_by_iface(struct ieee80211_sub_if_data *sdata);
 void mesh_sync_adjust_tbtt(struct ieee80211_sub_if_data *sdata);
 void ieee80211s_stop(void);
 #else
 static inline void
 ieee80211_mesh_notify_scan_completed(struct ieee80211_local *local) {}
-static inline void ieee80211_mesh_quiesce(struct ieee80211_sub_if_data *sdata)
-{}
-static inline void ieee80211_mesh_restart(struct ieee80211_sub_if_data *sdata)
-{}
-static inline void mesh_plink_quiesce(struct sta_info *sta) {}
-static inline void mesh_plink_restart(struct sta_info *sta) {}
 static inline bool mesh_path_sel_is_hwmp(struct ieee80211_sub_if_data *sdata)
 { return false; }
 static inline void mesh_path_flush_by_iface(struct ieee80211_sub_if_data *sdata)
 
         */
        sta = (struct sta_info *) data;
 
-       if (sta->sdata->local->quiescing) {
-               sta->plink_timer_was_running = true;
+       if (sta->sdata->local->quiescing)
                return;
-       }
 
        spin_lock_bh(&sta->lock);
        if (sta->ignore_plink_timer) {
        }
 }
 
-#ifdef CONFIG_PM
-void mesh_plink_quiesce(struct sta_info *sta)
-{
-       if (!ieee80211_vif_is_mesh(&sta->sdata->vif))
-               return;
-
-       /* no kernel mesh sta timers have been initialized */
-       if (sta->sdata->u.mesh.security != IEEE80211_MESH_SEC_NONE)
-               return;
-
-       if (del_timer_sync(&sta->plink_timer))
-               sta->plink_timer_was_running = true;
-}
-
-void mesh_plink_restart(struct sta_info *sta)
-{
-       if (sta->plink_timer_was_running) {
-               add_timer(&sta->plink_timer);
-               sta->plink_timer_was_running = false;
-       }
-}
-#endif
-
 static inline void mesh_plink_timer_set(struct sta_info *sta, int timeout)
 {
        sta->plink_timer.expires = jiffies + (HZ * timeout / 1000);