local->dynamic_ps_forced_timeout = -1;
 
-       result = sta_info_start(local);
-       if (result < 0)
-               goto fail_sta_info;
-
        result = ieee80211_wep_init(local);
        if (result < 0)
                wiphy_debug(local->hw.wiphy, "Failed to initialize wep: %d\n",
        rtnl_unlock();
        ieee80211_wep_free(local);
        sta_info_stop(local);
- fail_sta_info:
        destroy_workqueue(local->workqueue);
  fail_workqueue:
        wiphy_unregister(local->hw.wiphy);
 
        if (!timer_needed)
                return;
 
-       local->sta_cleanup.expires =
-               round_jiffies(jiffies + STA_INFO_CLEANUP_INTERVAL);
-       add_timer(&local->sta_cleanup);
+       mod_timer(&local->sta_cleanup,
+                 round_jiffies(jiffies + STA_INFO_CLEANUP_INTERVAL));
 }
 
 void sta_info_init(struct ieee80211_local *local)
 
        setup_timer(&local->sta_cleanup, sta_info_cleanup,
                    (unsigned long)local);
-       local->sta_cleanup.expires =
-               round_jiffies(jiffies + STA_INFO_CLEANUP_INTERVAL);
-}
-
-int sta_info_start(struct ieee80211_local *local)
-{
-       add_timer(&local->sta_cleanup);
-       return 0;
 }
 
 void sta_info_stop(struct ieee80211_local *local)
 
 void sta_info_clear_tim_bit(struct sta_info *sta);
 
 void sta_info_init(struct ieee80211_local *local);
-int sta_info_start(struct ieee80211_local *local);
 void sta_info_stop(struct ieee80211_local *local);
 int sta_info_flush(struct ieee80211_local *local,
                   struct ieee80211_sub_if_data *sdata);
 
                }
        }
 
-       add_timer(&local->sta_cleanup);
+       mod_timer(&local->sta_cleanup, jiffies + 1);
 
        mutex_lock(&local->sta_mtx);
        list_for_each_entry(sta, &local->sta_list, list)