diff options
Diffstat (limited to 'net/wireless/sysfs.c')
-rw-r--r-- | net/wireless/sysfs.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/net/wireless/sysfs.c b/net/wireless/sysfs.c index 26a72b0797a0..15feaeb5ced5 100644 --- a/net/wireless/sysfs.c +++ b/net/wireless/sysfs.c | |||
@@ -60,6 +60,8 @@ static int wiphy_suspend(struct device *dev, pm_message_t state) | |||
60 | struct cfg80211_registered_device *rdev = dev_to_rdev(dev); | 60 | struct cfg80211_registered_device *rdev = dev_to_rdev(dev); |
61 | int ret = 0; | 61 | int ret = 0; |
62 | 62 | ||
63 | rdev->suspend_at = get_seconds(); | ||
64 | |||
63 | if (rdev->ops->suspend) { | 65 | if (rdev->ops->suspend) { |
64 | rtnl_lock(); | 66 | rtnl_lock(); |
65 | ret = rdev->ops->suspend(&rdev->wiphy); | 67 | ret = rdev->ops->suspend(&rdev->wiphy); |
@@ -74,6 +76,11 @@ static int wiphy_resume(struct device *dev) | |||
74 | struct cfg80211_registered_device *rdev = dev_to_rdev(dev); | 76 | struct cfg80211_registered_device *rdev = dev_to_rdev(dev); |
75 | int ret = 0; | 77 | int ret = 0; |
76 | 78 | ||
79 | /* Age scan results with time spent in suspend */ | ||
80 | spin_lock_bh(&rdev->bss_lock); | ||
81 | cfg80211_bss_age(rdev, get_seconds() - rdev->suspend_at); | ||
82 | spin_unlock_bh(&rdev->bss_lock); | ||
83 | |||
77 | if (rdev->ops->resume) { | 84 | if (rdev->ops->resume) { |
78 | rtnl_lock(); | 85 | rtnl_lock(); |
79 | ret = rdev->ops->resume(&rdev->wiphy); | 86 | ret = rdev->ops->resume(&rdev->wiphy); |