2013-02-01 00:14:17

by Johannes Berg

[permalink] [raw]
Subject: [PATCH] cfg80211: move locking into cfg80211_bss_age

From: Johannes Berg <[email protected]>

There's no reason for it to require external
locking, move it into the function.

Signed-off-by: Johannes Berg <[email protected]>
---
net/wireless/scan.c | 3 ++-
net/wireless/sysfs.c | 2 --
2 files changed, 2 insertions(+), 3 deletions(-)

diff --git a/net/wireless/scan.c b/net/wireless/scan.c
index cae380f..05dbc5b 100644
--- a/net/wireless/scan.c
+++ b/net/wireless/scan.c
@@ -231,15 +231,16 @@ int __cfg80211_stop_sched_scan(struct cfg80211_registered_device *rdev,
return 0;
}

-/* must hold dev->bss_lock! */
void cfg80211_bss_age(struct cfg80211_registered_device *dev,
unsigned long age_secs)
{
struct cfg80211_internal_bss *bss;
unsigned long age_jiffies = msecs_to_jiffies(age_secs * MSEC_PER_SEC);

+ spin_lock_bh(&dev->bss_lock);
list_for_each_entry(bss, &dev->bss_list, list)
bss->ts -= age_jiffies;
+ spin_unlock_bh(&dev->bss_lock);
}

void cfg80211_bss_expire(struct cfg80211_registered_device *dev)
diff --git a/net/wireless/sysfs.c b/net/wireless/sysfs.c
index 9bf6d5e..73bf39f 100644
--- a/net/wireless/sysfs.c
+++ b/net/wireless/sysfs.c
@@ -108,9 +108,7 @@ static int wiphy_resume(struct device *dev)
int ret = 0;

/* Age scan results with time spent in suspend */
- spin_lock_bh(&rdev->bss_lock);
cfg80211_bss_age(rdev, get_seconds() - rdev->suspend_at);
- spin_unlock_bh(&rdev->bss_lock);

if (rdev->ops->resume) {
rtnl_lock();
--
1.8.0



2013-02-04 15:41:56

by Johannes Berg

[permalink] [raw]
Subject: Re: [PATCH] cfg80211: move locking into cfg80211_bss_age

On Fri, 2013-02-01 at 01:14 +0100, Johannes Berg wrote:
> From: Johannes Berg <[email protected]>
>
> There's no reason for it to require external
> locking, move it into the function.

Applied.

johannes