diff options
Diffstat (limited to 'net/mac80211/mesh_pathtbl.c')
| -rw-r--r-- | net/mac80211/mesh_pathtbl.c | 40 | 
1 files changed, 21 insertions, 19 deletions
diff --git a/net/mac80211/mesh_pathtbl.c b/net/mac80211/mesh_pathtbl.c index 30420bc1f69..49aaefd9963 100644 --- a/net/mac80211/mesh_pathtbl.c +++ b/net/mac80211/mesh_pathtbl.c @@ -336,7 +336,7 @@ static void mesh_path_move_to_queue(struct mesh_path *gate_mpath,  } -static struct mesh_path *path_lookup(struct mesh_table *tbl, u8 *dst, +static struct mesh_path *mpath_lookup(struct mesh_table *tbl, u8 *dst,  					  struct ieee80211_sub_if_data *sdata)  {  	struct mesh_path *mpath; @@ -348,7 +348,7 @@ static struct mesh_path *path_lookup(struct mesh_table *tbl, u8 *dst,  	hlist_for_each_entry_rcu(node, n, bucket, list) {  		mpath = node->mpath;  		if (mpath->sdata == sdata && -				memcmp(dst, mpath->dst, ETH_ALEN) == 0) { +				compare_ether_addr(dst, mpath->dst) == 0) {  			if (MPATH_EXPIRED(mpath)) {  				spin_lock_bh(&mpath->state_lock);  				mpath->flags &= ~MESH_PATH_ACTIVE; @@ -371,12 +371,12 @@ static struct mesh_path *path_lookup(struct mesh_table *tbl, u8 *dst,   */  struct mesh_path *mesh_path_lookup(u8 *dst, struct ieee80211_sub_if_data *sdata)  { -	return path_lookup(rcu_dereference(mesh_paths), dst, sdata); +	return mpath_lookup(rcu_dereference(mesh_paths), dst, sdata);  }  struct mesh_path *mpp_path_lookup(u8 *dst, struct ieee80211_sub_if_data *sdata)  { -	return path_lookup(rcu_dereference(mpp_paths), dst, sdata); +	return mpath_lookup(rcu_dereference(mpp_paths), dst, sdata);  } @@ -517,7 +517,7 @@ int mesh_path_add(u8 *dst, struct ieee80211_sub_if_data *sdata)  	int err = 0;  	u32 hash_idx; -	if (memcmp(dst, sdata->vif.addr, ETH_ALEN) == 0) +	if (compare_ether_addr(dst, sdata->vif.addr) == 0)  		/* never add ourselves as neighbours */  		return -ENOTSUPP; @@ -553,12 +553,13 @@ int mesh_path_add(u8 *dst, struct ieee80211_sub_if_data *sdata)  	hash_idx = mesh_table_hash(dst, sdata, tbl);  	bucket = &tbl->hash_buckets[hash_idx]; -	spin_lock_bh(&tbl->hashwlock[hash_idx]); +	spin_lock(&tbl->hashwlock[hash_idx]);  	err = -EEXIST;  	hlist_for_each_entry(node, n, bucket, list) {  		mpath = node->mpath; -		if (mpath->sdata == sdata && memcmp(dst, mpath->dst, ETH_ALEN) == 0) +		if (mpath->sdata == sdata && +		    compare_ether_addr(dst, mpath->dst) == 0)  			goto err_exists;  	} @@ -569,7 +570,7 @@ int mesh_path_add(u8 *dst, struct ieee80211_sub_if_data *sdata)  	mesh_paths_generation++; -	spin_unlock_bh(&tbl->hashwlock[hash_idx]); +	spin_unlock(&tbl->hashwlock[hash_idx]);  	read_unlock_bh(&pathtbl_resize_lock);  	if (grow) {  		set_bit(MESH_WORK_GROW_MPATH_TABLE,  &ifmsh->wrkq_flags); @@ -578,7 +579,7 @@ int mesh_path_add(u8 *dst, struct ieee80211_sub_if_data *sdata)  	return 0;  err_exists: -	spin_unlock_bh(&tbl->hashwlock[hash_idx]); +	spin_unlock(&tbl->hashwlock[hash_idx]);  	read_unlock_bh(&pathtbl_resize_lock);  	kfree(new_node);  err_node_alloc: @@ -649,7 +650,7 @@ int mpp_path_add(u8 *dst, u8 *mpp, struct ieee80211_sub_if_data *sdata)  	int err = 0;  	u32 hash_idx; -	if (memcmp(dst, sdata->vif.addr, ETH_ALEN) == 0) +	if (compare_ether_addr(dst, sdata->vif.addr) == 0)  		/* never add ourselves as neighbours */  		return -ENOTSUPP; @@ -681,12 +682,13 @@ int mpp_path_add(u8 *dst, u8 *mpp, struct ieee80211_sub_if_data *sdata)  	hash_idx = mesh_table_hash(dst, sdata, tbl);  	bucket = &tbl->hash_buckets[hash_idx]; -	spin_lock_bh(&tbl->hashwlock[hash_idx]); +	spin_lock(&tbl->hashwlock[hash_idx]);  	err = -EEXIST;  	hlist_for_each_entry(node, n, bucket, list) {  		mpath = node->mpath; -		if (mpath->sdata == sdata && memcmp(dst, mpath->dst, ETH_ALEN) == 0) +		if (mpath->sdata == sdata && +		    compare_ether_addr(dst, mpath->dst) == 0)  			goto err_exists;  	} @@ -695,7 +697,7 @@ int mpp_path_add(u8 *dst, u8 *mpp, struct ieee80211_sub_if_data *sdata)  	    tbl->mean_chain_len * (tbl->hash_mask + 1))  		grow = 1; -	spin_unlock_bh(&tbl->hashwlock[hash_idx]); +	spin_unlock(&tbl->hashwlock[hash_idx]);  	read_unlock_bh(&pathtbl_resize_lock);  	if (grow) {  		set_bit(MESH_WORK_GROW_MPP_TABLE,  &ifmsh->wrkq_flags); @@ -704,7 +706,7 @@ int mpp_path_add(u8 *dst, u8 *mpp, struct ieee80211_sub_if_data *sdata)  	return 0;  err_exists: -	spin_unlock_bh(&tbl->hashwlock[hash_idx]); +	spin_unlock(&tbl->hashwlock[hash_idx]);  	read_unlock_bh(&pathtbl_resize_lock);  	kfree(new_node);  err_node_alloc: @@ -803,9 +805,9 @@ void mesh_path_flush_by_nexthop(struct sta_info *sta)  	for_each_mesh_entry(tbl, p, node, i) {  		mpath = node->mpath;  		if (rcu_dereference(mpath->next_hop) == sta) { -			spin_lock_bh(&tbl->hashwlock[i]); +			spin_lock(&tbl->hashwlock[i]);  			__mesh_path_del(tbl, node); -			spin_unlock_bh(&tbl->hashwlock[i]); +			spin_unlock(&tbl->hashwlock[i]);  		}  	}  	read_unlock_bh(&pathtbl_resize_lock); @@ -876,11 +878,11 @@ int mesh_path_del(u8 *addr, struct ieee80211_sub_if_data *sdata)  	hash_idx = mesh_table_hash(addr, sdata, tbl);  	bucket = &tbl->hash_buckets[hash_idx]; -	spin_lock_bh(&tbl->hashwlock[hash_idx]); +	spin_lock(&tbl->hashwlock[hash_idx]);  	hlist_for_each_entry(node, n, bucket, list) {  		mpath = node->mpath;  		if (mpath->sdata == sdata && -		    memcmp(addr, mpath->dst, ETH_ALEN) == 0) { +		    compare_ether_addr(addr, mpath->dst) == 0) {  			__mesh_path_del(tbl, node);  			goto enddel;  		} @@ -889,7 +891,7 @@ int mesh_path_del(u8 *addr, struct ieee80211_sub_if_data *sdata)  	err = -ENXIO;  enddel:  	mesh_paths_generation++; -	spin_unlock_bh(&tbl->hashwlock[hash_idx]); +	spin_unlock(&tbl->hashwlock[hash_idx]);  	read_unlock_bh(&pathtbl_resize_lock);  	return err;  }  |