diff options
author | Vladimir Kondratiev <qca_vkondrat@qca.qualcomm.com> | 2013-08-15 07:51:28 -0400 |
---|---|---|
committer | Johannes Berg <johannes.berg@intel.com> | 2013-08-23 10:06:03 -0400 |
commit | 19504cf5f35fbe85db811fce9f4392a0cbdada2f (patch) | |
tree | 29e8eaeb1a062cb3e843781c7dc4add821fd592b /net/wireless | |
parent | c4c205f3cd17b567b8e20098522416eac2e73960 (diff) |
cfg80211: add flags to cfg80211_rx_mgmt()
Add flags intended to report various auxiliary information
and introduce the NL80211_RXMGMT_FLAG_ANSWERED flag to report
that the frame was already answered by the device.
Signed-off-by: Vladimir Kondratiev <qca_vkondrat@qca.qualcomm.com>
[REPLIED->ANSWERED, reword commit message]
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Diffstat (limited to 'net/wireless')
-rw-r--r-- | net/wireless/mlme.c | 4 | ||||
-rw-r--r-- | net/wireless/nl80211.c | 6 | ||||
-rw-r--r-- | net/wireless/nl80211.h | 2 |
3 files changed, 7 insertions, 5 deletions
diff --git a/net/wireless/mlme.c b/net/wireless/mlme.c index bfac5e186f57..8d49c1ce3dea 100644 --- a/net/wireless/mlme.c +++ b/net/wireless/mlme.c | |||
@@ -621,7 +621,7 @@ int cfg80211_mlme_mgmt_tx(struct cfg80211_registered_device *rdev, | |||
621 | } | 621 | } |
622 | 622 | ||
623 | bool cfg80211_rx_mgmt(struct wireless_dev *wdev, int freq, int sig_mbm, | 623 | bool cfg80211_rx_mgmt(struct wireless_dev *wdev, int freq, int sig_mbm, |
624 | const u8 *buf, size_t len, gfp_t gfp) | 624 | const u8 *buf, size_t len, u32 flags, gfp_t gfp) |
625 | { | 625 | { |
626 | struct wiphy *wiphy = wdev->wiphy; | 626 | struct wiphy *wiphy = wdev->wiphy; |
627 | struct cfg80211_registered_device *rdev = wiphy_to_dev(wiphy); | 627 | struct cfg80211_registered_device *rdev = wiphy_to_dev(wiphy); |
@@ -664,7 +664,7 @@ bool cfg80211_rx_mgmt(struct wireless_dev *wdev, int freq, int sig_mbm, | |||
664 | /* Indicate the received Action frame to user space */ | 664 | /* Indicate the received Action frame to user space */ |
665 | if (nl80211_send_mgmt(rdev, wdev, reg->nlportid, | 665 | if (nl80211_send_mgmt(rdev, wdev, reg->nlportid, |
666 | freq, sig_mbm, | 666 | freq, sig_mbm, |
667 | buf, len, gfp)) | 667 | buf, len, flags, gfp)) |
668 | continue; | 668 | continue; |
669 | 669 | ||
670 | result = true; | 670 | result = true; |
diff --git a/net/wireless/nl80211.c b/net/wireless/nl80211.c index 334697de5cc0..a51269d2d488 100644 --- a/net/wireless/nl80211.c +++ b/net/wireless/nl80211.c | |||
@@ -10446,7 +10446,7 @@ EXPORT_SYMBOL(cfg80211_rx_unexpected_4addr_frame); | |||
10446 | int nl80211_send_mgmt(struct cfg80211_registered_device *rdev, | 10446 | int nl80211_send_mgmt(struct cfg80211_registered_device *rdev, |
10447 | struct wireless_dev *wdev, u32 nlportid, | 10447 | struct wireless_dev *wdev, u32 nlportid, |
10448 | int freq, int sig_dbm, | 10448 | int freq, int sig_dbm, |
10449 | const u8 *buf, size_t len, gfp_t gfp) | 10449 | const u8 *buf, size_t len, u32 flags, gfp_t gfp) |
10450 | { | 10450 | { |
10451 | struct net_device *netdev = wdev->netdev; | 10451 | struct net_device *netdev = wdev->netdev; |
10452 | struct sk_buff *msg; | 10452 | struct sk_buff *msg; |
@@ -10469,7 +10469,9 @@ int nl80211_send_mgmt(struct cfg80211_registered_device *rdev, | |||
10469 | nla_put_u32(msg, NL80211_ATTR_WIPHY_FREQ, freq) || | 10469 | nla_put_u32(msg, NL80211_ATTR_WIPHY_FREQ, freq) || |
10470 | (sig_dbm && | 10470 | (sig_dbm && |
10471 | nla_put_u32(msg, NL80211_ATTR_RX_SIGNAL_DBM, sig_dbm)) || | 10471 | nla_put_u32(msg, NL80211_ATTR_RX_SIGNAL_DBM, sig_dbm)) || |
10472 | nla_put(msg, NL80211_ATTR_FRAME, len, buf)) | 10472 | nla_put(msg, NL80211_ATTR_FRAME, len, buf) || |
10473 | (flags && | ||
10474 | nla_put_u32(msg, NL80211_ATTR_RXMGMT_FLAGS, flags))) | ||
10473 | goto nla_put_failure; | 10475 | goto nla_put_failure; |
10474 | 10476 | ||
10475 | genlmsg_end(msg, hdr); | 10477 | genlmsg_end(msg, hdr); |
diff --git a/net/wireless/nl80211.h b/net/wireless/nl80211.h index 44341bf53cfc..2c0f2b3c07cb 100644 --- a/net/wireless/nl80211.h +++ b/net/wireless/nl80211.h | |||
@@ -66,7 +66,7 @@ void nl80211_send_ibss_bssid(struct cfg80211_registered_device *rdev, | |||
66 | int nl80211_send_mgmt(struct cfg80211_registered_device *rdev, | 66 | int nl80211_send_mgmt(struct cfg80211_registered_device *rdev, |
67 | struct wireless_dev *wdev, u32 nlpid, | 67 | struct wireless_dev *wdev, u32 nlpid, |
68 | int freq, int sig_dbm, | 68 | int freq, int sig_dbm, |
69 | const u8 *buf, size_t len, gfp_t gfp); | 69 | const u8 *buf, size_t len, u32 flags, gfp_t gfp); |
70 | 70 | ||
71 | void | 71 | void |
72 | nl80211_radar_notify(struct cfg80211_registered_device *rdev, | 72 | nl80211_radar_notify(struct cfg80211_registered_device *rdev, |