aboutsummaryrefslogtreecommitdiffstats
path: root/net/wireless
diff options
context:
space:
mode:
authorJohannes Berg <johannes.berg@intel.com>2014-11-26 06:42:02 -0500
committerJohannes Berg <johannes.berg@intel.com>2014-11-26 14:56:42 -0500
commit98f0334263f177dd22ca7c685cde04b47cc57b05 (patch)
treeb91346fbd400ceb756d02aacb4f050398c9c7a38 /net/wireless
parent5b97f49d653d366d8cb03cab40f8c45eb59dc70c (diff)
cfg80211: clean up beacon loss CQM event
Having it as a sub-event for RSSI thresholds is very ugly, but luckily no userspace actually uses the events yet. Move the event to its own function call internally and to its own event attribute in nl80211. Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Diffstat (limited to 'net/wireless')
-rw-r--r--net/wireless/nl80211.c23
1 files changed, 23 insertions, 0 deletions
diff --git a/net/wireless/nl80211.c b/net/wireless/nl80211.c
index 9c4d0102d34d..e11980e74a04 100644
--- a/net/wireless/nl80211.c
+++ b/net/wireless/nl80211.c
@@ -11826,6 +11826,10 @@ void cfg80211_cqm_rssi_notify(struct net_device *dev,
11826 11826
11827 trace_cfg80211_cqm_rssi_notify(dev, rssi_event); 11827 trace_cfg80211_cqm_rssi_notify(dev, rssi_event);
11828 11828
11829 if (WARN_ON(rssi_event != NL80211_CQM_RSSI_THRESHOLD_EVENT_LOW &&
11830 rssi_event != NL80211_CQM_RSSI_THRESHOLD_EVENT_HIGH))
11831 return;
11832
11829 msg = cfg80211_prepare_cqm(dev, NULL, gfp); 11833 msg = cfg80211_prepare_cqm(dev, NULL, gfp);
11830 if (!msg) 11834 if (!msg)
11831 return; 11835 return;
@@ -11892,6 +11896,25 @@ void cfg80211_cqm_pktloss_notify(struct net_device *dev,
11892} 11896}
11893EXPORT_SYMBOL(cfg80211_cqm_pktloss_notify); 11897EXPORT_SYMBOL(cfg80211_cqm_pktloss_notify);
11894 11898
11899void cfg80211_cqm_beacon_loss_notify(struct net_device *dev, gfp_t gfp)
11900{
11901 struct sk_buff *msg;
11902
11903 msg = cfg80211_prepare_cqm(dev, NULL, gfp);
11904 if (!msg)
11905 return;
11906
11907 if (nla_put_flag(msg, NL80211_ATTR_CQM_BEACON_LOSS_EVENT))
11908 goto nla_put_failure;
11909
11910 cfg80211_send_cqm(msg, gfp);
11911 return;
11912
11913 nla_put_failure:
11914 nlmsg_free(msg);
11915}
11916EXPORT_SYMBOL(cfg80211_cqm_beacon_loss_notify);
11917
11895static void nl80211_gtk_rekey_notify(struct cfg80211_registered_device *rdev, 11918static void nl80211_gtk_rekey_notify(struct cfg80211_registered_device *rdev,
11896 struct net_device *netdev, const u8 *bssid, 11919 struct net_device *netdev, const u8 *bssid,
11897 const u8 *replay_ctr, gfp_t gfp) 11920 const u8 *replay_ctr, gfp_t gfp)