aboutsummaryrefslogtreecommitdiffstats
path: root/net/wireless/nl80211.c
diff options
context:
space:
mode:
authorJohannes Berg <johannes.berg@intel.com>2012-07-12 13:45:08 -0400
committerJohannes Berg <johannes.berg@intel.com>2012-07-13 10:16:11 -0400
commit5b7ccaf3fc7446e42b83a77fd7aa7ad92850acdd (patch)
treee87b3f28cdfe513de4f3527fabaaacca63eedc24 /net/wireless/nl80211.c
parent075e08477d51709ae1998a05c35aadf59ef823b9 (diff)
cfg80211/mac80211: re-add get_channel operation
This essentially reverts commit 2e165b818456 but introduces the get_channel operation with a new wireless_dev argument so that you can retrieve the channel per interface. This is necessary as even though we can track all interface channels (except monitor) we can't track the channel type used. Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Diffstat (limited to 'net/wireless/nl80211.c')
-rw-r--r--net/wireless/nl80211.c16
1 files changed, 11 insertions, 5 deletions
diff --git a/net/wireless/nl80211.c b/net/wireless/nl80211.c
index 079fc49e397..6b001e44571 100644
--- a/net/wireless/nl80211.c
+++ b/net/wireless/nl80211.c
@@ -1759,11 +1759,17 @@ static int nl80211_send_iface(struct sk_buff *msg, u32 pid, u32 seq, int flags,
1759 (cfg80211_rdev_list_generation << 2))) 1759 (cfg80211_rdev_list_generation << 2)))
1760 goto nla_put_failure; 1760 goto nla_put_failure;
1761 1761
1762 if (rdev->monitor_channel) { 1762 if (rdev->ops->get_channel) {
1763 if (nla_put_u32(msg, NL80211_ATTR_WIPHY_FREQ, 1763 struct ieee80211_channel *chan;
1764 rdev->monitor_channel->center_freq) || 1764 enum nl80211_channel_type channel_type;
1765 nla_put_u32(msg, NL80211_ATTR_WIPHY_CHANNEL_TYPE, 1765
1766 rdev->monitor_channel_type)) 1766 chan = rdev->ops->get_channel(&rdev->wiphy, wdev,
1767 &channel_type);
1768 if (chan &&
1769 (nla_put_u32(msg, NL80211_ATTR_WIPHY_FREQ,
1770 chan->center_freq) ||
1771 nla_put_u32(msg, NL80211_ATTR_WIPHY_CHANNEL_TYPE,
1772 channel_type)))
1767 goto nla_put_failure; 1773 goto nla_put_failure;
1768 } 1774 }
1769 1775