diff options
author | Luciano Coelho <coelho@ti.com> | 2011-07-13 14:57:29 +0300 |
---|---|---|
committer | Dmitry Shmidt <dimitrysh@google.com> | 2012-03-13 10:49:17 -0700 |
commit | 001692ab00eac6564c672240cd7da62860925d15 (patch) | |
tree | b4d0b1043e3c66e6e4acc246abeba75404e1295d | |
parent | 2e128bd956e19c4a55effbdf8f7701cfa1bb7a23 (diff) |
nl80211/cfg80211: add max_sched_scan_ie_len in the hw description
Some chips may support different lengths of user-supplied IEs with a
single scheduled scan command than with a single normal scan command.
To support this, this patch creates a separate hardware description
element that describes the maximum size of user-supplied information
element data supported in scheduled scans.
Signed-off-by: Luciano Coelho <coelho@ti.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
-rw-r--r-- | include/linux/nl80211.h | 3 | ||||
-rw-r--r-- | include/net/cfg80211.h | 3 | ||||
-rw-r--r-- | net/wireless/nl80211.c | 4 |
3 files changed, 9 insertions, 1 deletions
diff --git a/include/linux/nl80211.h b/include/linux/nl80211.h index 40d747d2f376..234ecfc6c2e4 100644 --- a/include/linux/nl80211.h +++ b/include/linux/nl80211.h @@ -749,6 +749,8 @@ enum nl80211_commands { * scan with a single scheduled scan request, a wiphy attribute. * @NL80211_ATTR_MAX_SCAN_IE_LEN: maximum length of information elements * that can be added to a scan request + * @NL80211_ATTR_MAX_SCHED_SCAN_IE_LEN: maximum length of information + * elements that can be added to a scheduled scan request * * @NL80211_ATTR_SCAN_FREQUENCIES: nested attribute with frequencies (in MHz) * @NL80211_ATTR_SCAN_SSIDS: nested attribute with SSIDs, leave out for passive @@ -1199,6 +1201,7 @@ enum nl80211_attrs { NL80211_ATTR_REKEY_DATA, NL80211_ATTR_MAX_NUM_SCHED_SCAN_SSIDS, + NL80211_ATTR_MAX_SCHED_SCAN_IE_LEN, /* add attributes here, update the policy in nl80211.c */ diff --git a/include/net/cfg80211.h b/include/net/cfg80211.h index 21ee679c09b4..c8fd6597e1fd 100644 --- a/include/net/cfg80211.h +++ b/include/net/cfg80211.h @@ -1736,6 +1736,8 @@ struct wiphy_wowlan_support { * @max_scan_ie_len: maximum length of user-controlled IEs device can * add to probe request frames transmitted during a scan, must not * include fixed IEs like supported rates + * @max_sched_scan_ie_len: same as max_scan_ie_len, but for scheduled + * scans * @coverage_class: current coverage class * @fw_version: firmware version for ethtool reporting * @hw_version: hardware version for ethtool reporting @@ -1789,6 +1791,7 @@ struct wiphy { u8 max_scan_ssids; u8 max_sched_scan_ssids; u16 max_scan_ie_len; + u16 max_sched_scan_ie_len; int n_cipher_suites; const u32 *cipher_suites; diff --git a/net/wireless/nl80211.c b/net/wireless/nl80211.c index 8b2c406baafe..25cf96ab2928 100644 --- a/net/wireless/nl80211.c +++ b/net/wireless/nl80211.c @@ -687,6 +687,8 @@ static int nl80211_send_wiphy(struct sk_buff *msg, u32 pid, u32 seq, int flags, dev->wiphy.max_sched_scan_ssids); NLA_PUT_U16(msg, NL80211_ATTR_MAX_SCAN_IE_LEN, dev->wiphy.max_scan_ie_len); + NLA_PUT_U16(msg, NL80211_ATTR_MAX_SCHED_SCAN_IE_LEN, + dev->wiphy.max_sched_scan_ie_len); if (dev->wiphy.flags & WIPHY_FLAG_IBSS_RSN) NLA_PUT_FLAG(msg, NL80211_ATTR_SUPPORT_IBSS_RSN); @@ -3503,7 +3505,7 @@ static int nl80211_start_sched_scan(struct sk_buff *skb, else ie_len = 0; - if (ie_len > wiphy->max_scan_ie_len) + if (ie_len > wiphy->max_sched_scan_ie_len) return -EINVAL; mutex_lock(&rdev->sched_scan_mtx); |