|
@@ -2654,10 +2654,6 @@ static int nl80211_new_interface(struct sk_buff *skb, struct genl_info *info)
|
|
|
return err;
|
|
|
}
|
|
|
|
|
|
- msg = nlmsg_new(NLMSG_DEFAULT_SIZE, GFP_KERNEL);
|
|
|
- if (!msg)
|
|
|
- return -ENOMEM;
|
|
|
-
|
|
|
err = parse_monitor_flags(type == NL80211_IFTYPE_MONITOR ?
|
|
|
info->attrs[NL80211_ATTR_MNTR_FLAGS] : NULL,
|
|
|
&flags);
|
|
@@ -2666,6 +2662,10 @@ static int nl80211_new_interface(struct sk_buff *skb, struct genl_info *info)
|
|
|
!(rdev->wiphy.features & NL80211_FEATURE_ACTIVE_MONITOR))
|
|
|
return -EOPNOTSUPP;
|
|
|
|
|
|
+ msg = nlmsg_new(NLMSG_DEFAULT_SIZE, GFP_KERNEL);
|
|
|
+ if (!msg)
|
|
|
+ return -ENOMEM;
|
|
|
+
|
|
|
wdev = rdev_add_virtual_intf(rdev,
|
|
|
nla_data(info->attrs[NL80211_ATTR_IFNAME]),
|
|
|
type, err ? NULL : &flags, ¶ms);
|
|
@@ -12528,9 +12528,7 @@ static int cfg80211_net_detect_results(struct sk_buff *msg,
|
|
|
}
|
|
|
|
|
|
for (j = 0; j < match->n_channels; j++) {
|
|
|
- if (nla_put_u32(msg,
|
|
|
- NL80211_ATTR_WIPHY_FREQ,
|
|
|
- match->channels[j])) {
|
|
|
+ if (nla_put_u32(msg, j, match->channels[j])) {
|
|
|
nla_nest_cancel(msg, nl_freqs);
|
|
|
nla_nest_cancel(msg, nl_match);
|
|
|
goto out;
|