aboutsummaryrefslogtreecommitdiffstats
path: root/net/wireless/core.h
diff options
context:
space:
mode:
authorJohannes Berg <johannes.berg@intel.com>2013-05-15 03:30:07 -0400
committerJohannes Berg <johannes.berg@intel.com>2013-05-27 09:10:58 -0400
commit6abb9cb99f33b20c2f32f18a3ae9cc7543e46edb (patch)
treea230daf7c9ff4cab240d048216db1ec3a0cd2ae4 /net/wireless/core.h
parent83739b03de97049181d711c95200b94a14d3f693 (diff)
cfg80211: make WoWLAN configuration available to drivers
Make the current WoWLAN configuration available to drivers at runtime. This isn't really useful for the normal WoWLAN behaviour and accessing it can also be racy, but drivers may use it for testing the WoWLAN device behaviour while the host stays up & running to observe the device. Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Diffstat (limited to 'net/wireless/core.h')
-rw-r--r--net/wireless/core.h21
1 files changed, 11 insertions, 10 deletions
diff --git a/net/wireless/core.h b/net/wireless/core.h
index b4b4a566626b..a65eaf8a84c1 100644
--- a/net/wireless/core.h
+++ b/net/wireless/core.h
@@ -74,8 +74,6 @@ struct cfg80211_registered_device {
74 struct work_struct conn_work; 74 struct work_struct conn_work;
75 struct work_struct event_work; 75 struct work_struct event_work;
76 76
77 struct cfg80211_wowlan *wowlan;
78
79 struct delayed_work dfs_update_channels_wk; 77 struct delayed_work dfs_update_channels_wk;
80 78
81 /* netlink port which started critical protocol (0 means not started) */ 79 /* netlink port which started critical protocol (0 means not started) */
@@ -96,17 +94,20 @@ struct cfg80211_registered_device *wiphy_to_dev(struct wiphy *wiphy)
96static inline void 94static inline void
97cfg80211_rdev_free_wowlan(struct cfg80211_registered_device *rdev) 95cfg80211_rdev_free_wowlan(struct cfg80211_registered_device *rdev)
98{ 96{
97#ifdef CONFIG_PM
99 int i; 98 int i;
100 99
101 if (!rdev->wowlan) 100 if (!rdev->wiphy.wowlan_config)
102 return; 101 return;
103 for (i = 0; i < rdev->wowlan->n_patterns; i++) 102 for (i = 0; i < rdev->wiphy.wowlan_config->n_patterns; i++)
104 kfree(rdev->wowlan->patterns[i].mask); 103 kfree(rdev->wiphy.wowlan_config->patterns[i].mask);
105 kfree(rdev->wowlan->patterns); 104 kfree(rdev->wiphy.wowlan_config->patterns);
106 if (rdev->wowlan->tcp && rdev->wowlan->tcp->sock) 105 if (rdev->wiphy.wowlan_config->tcp &&
107 sock_release(rdev->wowlan->tcp->sock); 106 rdev->wiphy.wowlan_config->tcp->sock)
108 kfree(rdev->wowlan->tcp); 107 sock_release(rdev->wiphy.wowlan_config->tcp->sock);
109 kfree(rdev->wowlan); 108 kfree(rdev->wiphy.wowlan_config->tcp);
109 kfree(rdev->wiphy.wowlan_config);
110#endif
110} 111}
111 112
112extern struct workqueue_struct *cfg80211_wq; 113extern struct workqueue_struct *cfg80211_wq;