mac80211: Convert timers to use timer_setup()
In preparation for unconditionally passing the struct timer_list pointer to all timer callbacks, switch to using the new timer_setup() and from_timer() to pass the timer pointer explicitly. Cc: Johannes Berg <johannes@sipsolutions.net> Cc: "David S. Miller" <davem@davemloft.net> Cc: linux-wireless@vger.kernel.org Cc: netdev@vger.kernel.org Signed-off-by: Kees Cook <keescook@chromium.org> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
This commit is contained in:
@@ -37,9 +37,10 @@ void ieee80211s_stop(void)
|
||||
kmem_cache_destroy(rm_cache);
|
||||
}
|
||||
|
||||
static void ieee80211_mesh_housekeeping_timer(unsigned long data)
|
||||
static void ieee80211_mesh_housekeeping_timer(struct timer_list *t)
|
||||
{
|
||||
struct ieee80211_sub_if_data *sdata = (void *) data;
|
||||
struct ieee80211_sub_if_data *sdata =
|
||||
from_timer(sdata, t, u.mesh.housekeeping_timer);
|
||||
struct ieee80211_local *local = sdata->local;
|
||||
struct ieee80211_if_mesh *ifmsh = &sdata->u.mesh;
|
||||
|
||||
@@ -528,18 +529,18 @@ int mesh_add_vht_oper_ie(struct ieee80211_sub_if_data *sdata,
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void ieee80211_mesh_path_timer(unsigned long data)
|
||||
static void ieee80211_mesh_path_timer(struct timer_list *t)
|
||||
{
|
||||
struct ieee80211_sub_if_data *sdata =
|
||||
(struct ieee80211_sub_if_data *) data;
|
||||
from_timer(sdata, t, u.mesh.mesh_path_timer);
|
||||
|
||||
ieee80211_queue_work(&sdata->local->hw, &sdata->work);
|
||||
}
|
||||
|
||||
static void ieee80211_mesh_path_root_timer(unsigned long data)
|
||||
static void ieee80211_mesh_path_root_timer(struct timer_list *t)
|
||||
{
|
||||
struct ieee80211_sub_if_data *sdata =
|
||||
(struct ieee80211_sub_if_data *) data;
|
||||
from_timer(sdata, t, u.mesh.mesh_path_root_timer);
|
||||
struct ieee80211_if_mesh *ifmsh = &sdata->u.mesh;
|
||||
|
||||
set_bit(MESH_WORK_ROOT, &ifmsh->wrkq_flags);
|
||||
@@ -1442,9 +1443,8 @@ void ieee80211_mesh_init_sdata(struct ieee80211_sub_if_data *sdata)
|
||||
struct ieee80211_if_mesh *ifmsh = &sdata->u.mesh;
|
||||
static u8 zero_addr[ETH_ALEN] = {};
|
||||
|
||||
setup_timer(&ifmsh->housekeeping_timer,
|
||||
ieee80211_mesh_housekeeping_timer,
|
||||
(unsigned long) sdata);
|
||||
timer_setup(&ifmsh->housekeeping_timer,
|
||||
ieee80211_mesh_housekeeping_timer, 0);
|
||||
|
||||
ifmsh->accepting_plinks = true;
|
||||
atomic_set(&ifmsh->mpaths, 0);
|
||||
@@ -1458,12 +1458,9 @@ void ieee80211_mesh_init_sdata(struct ieee80211_sub_if_data *sdata)
|
||||
|
||||
mesh_pathtbl_init(sdata);
|
||||
|
||||
setup_timer(&ifmsh->mesh_path_timer,
|
||||
ieee80211_mesh_path_timer,
|
||||
(unsigned long) sdata);
|
||||
setup_timer(&ifmsh->mesh_path_root_timer,
|
||||
ieee80211_mesh_path_root_timer,
|
||||
(unsigned long) sdata);
|
||||
timer_setup(&ifmsh->mesh_path_timer, ieee80211_mesh_path_timer, 0);
|
||||
timer_setup(&ifmsh->mesh_path_root_timer,
|
||||
ieee80211_mesh_path_root_timer, 0);
|
||||
INIT_LIST_HEAD(&ifmsh->preq_queue.list);
|
||||
skb_queue_head_init(&ifmsh->ps.bc_buf);
|
||||
spin_lock_init(&ifmsh->mesh_preq_queue_lock);
|
||||
|
Reference in New Issue
Block a user