diff options
author | John W. Linville <linville@tuxdriver.com> | 2014-02-13 14:43:02 -0500 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2014-02-13 14:43:02 -0500 |
commit | 0e028ab0fb2da47fd235dafd4159859892e73d08 (patch) | |
tree | e9e1348372b413e6b1b503209582b03c9005f614 /net/wireless/nl80211.c | |
parent | e57f1734d87aa0e9a00905ed08888f0c62f56227 (diff) | |
parent | 348f7d4adee97f222e3ad9ff97956ca3793d11c6 (diff) |
Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless
Diffstat (limited to 'net/wireless/nl80211.c')
-rw-r--r-- | net/wireless/nl80211.c | 32 |
1 files changed, 12 insertions, 20 deletions
diff --git a/net/wireless/nl80211.c b/net/wireless/nl80211.c index ebea1a197afb..8e6b6a2d35cb 100644 --- a/net/wireless/nl80211.c +++ b/net/wireless/nl80211.c | |||
@@ -1740,9 +1740,10 @@ static int nl80211_dump_wiphy(struct sk_buff *skb, struct netlink_callback *cb) | |||
1740 | * We can then retry with the larger buffer. | 1740 | * We can then retry with the larger buffer. |
1741 | */ | 1741 | */ |
1742 | if ((ret == -ENOBUFS || ret == -EMSGSIZE) && | 1742 | if ((ret == -ENOBUFS || ret == -EMSGSIZE) && |
1743 | !skb->len && | 1743 | !skb->len && !state->split && |
1744 | cb->min_dump_alloc < 4096) { | 1744 | cb->min_dump_alloc < 4096) { |
1745 | cb->min_dump_alloc = 4096; | 1745 | cb->min_dump_alloc = 4096; |
1746 | state->split_start = 0; | ||
1746 | rtnl_unlock(); | 1747 | rtnl_unlock(); |
1747 | return 1; | 1748 | return 1; |
1748 | } | 1749 | } |
@@ -5274,7 +5275,7 @@ static int nl80211_trigger_scan(struct sk_buff *skb, struct genl_info *info) | |||
5274 | if (!rdev->ops->scan) | 5275 | if (!rdev->ops->scan) |
5275 | return -EOPNOTSUPP; | 5276 | return -EOPNOTSUPP; |
5276 | 5277 | ||
5277 | if (rdev->scan_req) { | 5278 | if (rdev->scan_req || rdev->scan_msg) { |
5278 | err = -EBUSY; | 5279 | err = -EBUSY; |
5279 | goto unlock; | 5280 | goto unlock; |
5280 | } | 5281 | } |
@@ -10116,40 +10117,31 @@ void nl80211_send_scan_start(struct cfg80211_registered_device *rdev, | |||
10116 | NL80211_MCGRP_SCAN, GFP_KERNEL); | 10117 | NL80211_MCGRP_SCAN, GFP_KERNEL); |
10117 | } | 10118 | } |
10118 | 10119 | ||
10119 | void nl80211_send_scan_done(struct cfg80211_registered_device *rdev, | 10120 | struct sk_buff *nl80211_build_scan_msg(struct cfg80211_registered_device *rdev, |
10120 | struct wireless_dev *wdev) | 10121 | struct wireless_dev *wdev, bool aborted) |
10121 | { | 10122 | { |
10122 | struct sk_buff *msg; | 10123 | struct sk_buff *msg; |
10123 | 10124 | ||
10124 | msg = nlmsg_new(NLMSG_DEFAULT_SIZE, GFP_KERNEL); | 10125 | msg = nlmsg_new(NLMSG_DEFAULT_SIZE, GFP_KERNEL); |
10125 | if (!msg) | 10126 | if (!msg) |
10126 | return; | 10127 | return NULL; |
10127 | 10128 | ||
10128 | if (nl80211_send_scan_msg(msg, rdev, wdev, 0, 0, 0, | 10129 | if (nl80211_send_scan_msg(msg, rdev, wdev, 0, 0, 0, |
10129 | NL80211_CMD_NEW_SCAN_RESULTS) < 0) { | 10130 | aborted ? NL80211_CMD_SCAN_ABORTED : |
10131 | NL80211_CMD_NEW_SCAN_RESULTS) < 0) { | ||
10130 | nlmsg_free(msg); | 10132 | nlmsg_free(msg); |
10131 | return; | 10133 | return NULL; |
10132 | } | 10134 | } |
10133 | 10135 | ||
10134 | genlmsg_multicast_netns(&nl80211_fam, wiphy_net(&rdev->wiphy), msg, 0, | 10136 | return msg; |
10135 | NL80211_MCGRP_SCAN, GFP_KERNEL); | ||
10136 | } | 10137 | } |
10137 | 10138 | ||
10138 | void nl80211_send_scan_aborted(struct cfg80211_registered_device *rdev, | 10139 | void nl80211_send_scan_result(struct cfg80211_registered_device *rdev, |
10139 | struct wireless_dev *wdev) | 10140 | struct sk_buff *msg) |
10140 | { | 10141 | { |
10141 | struct sk_buff *msg; | ||
10142 | |||
10143 | msg = nlmsg_new(NLMSG_DEFAULT_SIZE, GFP_KERNEL); | ||
10144 | if (!msg) | 10142 | if (!msg) |
10145 | return; | 10143 | return; |
10146 | 10144 | ||
10147 | if (nl80211_send_scan_msg(msg, rdev, wdev, 0, 0, 0, | ||
10148 | NL80211_CMD_SCAN_ABORTED) < 0) { | ||
10149 | nlmsg_free(msg); | ||
10150 | return; | ||
10151 | } | ||
10152 | |||
10153 | genlmsg_multicast_netns(&nl80211_fam, wiphy_net(&rdev->wiphy), msg, 0, | 10145 | genlmsg_multicast_netns(&nl80211_fam, wiphy_net(&rdev->wiphy), msg, 0, |
10154 | NL80211_MCGRP_SCAN, GFP_KERNEL); | 10146 | NL80211_MCGRP_SCAN, GFP_KERNEL); |
10155 | } | 10147 | } |