Skip to content

Commit

Permalink
cfg80211: move world roaming check for beacon hints
Browse files Browse the repository at this point in the history
We should not add new beacon hints even if the wiphy
is not world roaming. Without this we were always adding
a beacon hint if not world roaming for every non world
roaming wiphy interface.

Tested-by: Ben Greear <greearb@candelatech.com>
Reported-by: Ben Greear <greearb@candelatech.com>
Reported-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: Luis R. Rodriguez <mcgrof@do-not-panic.com>
[fix locking]
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
  • Loading branch information
Luis R. Rodriguez authored and Johannes Berg committed Jan 3, 2013
1 parent 3195e48 commit 0f500a5
Showing 1 changed file with 5 additions and 6 deletions.
11 changes: 5 additions & 6 deletions net/wireless/reg.c
Original file line number Diff line number Diff line change
Expand Up @@ -1044,6 +1044,9 @@ static void handle_reg_beacon(struct wiphy *wiphy, unsigned int chan_idx,

chan->beacon_found = true;

if (!reg_is_world_roaming(wiphy))
return;

if (wiphy->flags & WIPHY_FLAG_DISABLE_BEACON_HINTS)
return;

Expand Down Expand Up @@ -1110,8 +1113,6 @@ static void reg_process_beacons(struct wiphy *wiphy)
*/
if (!last_request)
return;
if (!reg_is_world_roaming(wiphy))
return;
wiphy_update_beacon_reg(wiphy);
}

Expand Down Expand Up @@ -1593,11 +1594,8 @@ static void reg_process_pending_beacon_hints(void)
struct cfg80211_registered_device *rdev;
struct reg_beacon *pending_beacon, *tmp;

/*
* No need to hold the reg_mutex here as we just touch wiphys
* and do not read or access regulatory variables.
*/
mutex_lock(&cfg80211_mutex);
mutex_lock(&reg_mutex);

/* This goes through the _pending_ beacon list */
spin_lock_bh(&reg_pending_beacons_lock);
Expand All @@ -1615,6 +1613,7 @@ static void reg_process_pending_beacon_hints(void)
}

spin_unlock_bh(&reg_pending_beacons_lock);
mutex_unlock(&reg_mutex);
mutex_unlock(&cfg80211_mutex);
}

Expand Down

0 comments on commit 0f500a5

Please sign in to comment.