Commit 86d7f9f3 authored by Javier Cardona's avatar Javier Cardona Committed by John W. Linville

mac80211: fix mpath timer NULL function

If we have an mpath whose timer has not been initialized, don't try to
delete it.
Signed-off-by: default avatarJavier Cardona <javier@cozybit.com>
Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
parent 7646887a
...@@ -619,7 +619,8 @@ static void mesh_path_node_reclaim(struct rcu_head *rp) ...@@ -619,7 +619,8 @@ static void mesh_path_node_reclaim(struct rcu_head *rp)
struct mpath_node *node = container_of(rp, struct mpath_node, rcu); struct mpath_node *node = container_of(rp, struct mpath_node, rcu);
struct ieee80211_sub_if_data *sdata = node->mpath->sdata; struct ieee80211_sub_if_data *sdata = node->mpath->sdata;
del_timer_sync(&node->mpath->timer); if (node->mpath->timer.function)
del_timer_sync(&node->mpath->timer);
atomic_dec(&sdata->u.mesh.mpaths); atomic_dec(&sdata->u.mesh.mpaths);
kfree(node->mpath); kfree(node->mpath);
kfree(node); kfree(node);
...@@ -768,7 +769,8 @@ static void mesh_path_node_free(struct hlist_node *p, bool free_leafs) ...@@ -768,7 +769,8 @@ static void mesh_path_node_free(struct hlist_node *p, bool free_leafs)
mpath = node->mpath; mpath = node->mpath;
hlist_del_rcu(p); hlist_del_rcu(p);
if (free_leafs) { if (free_leafs) {
del_timer_sync(&mpath->timer); if (mpath->timer.function)
del_timer_sync(&mpath->timer);
kfree(mpath); kfree(mpath);
} }
kfree(node); kfree(node);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment