|
@@ -7371,8 +7371,7 @@ static int nl80211_start_sched_scan(struct sk_buff *skb,
|
|
|
|
|
|
rcu_assign_pointer(rdev->sched_scan_req, sched_scan_req);
|
|
rcu_assign_pointer(rdev->sched_scan_req, sched_scan_req);
|
|
|
|
|
|
- nl80211_send_sched_scan(rdev, dev,
|
|
|
|
- NL80211_CMD_START_SCHED_SCAN);
|
|
|
|
|
|
+ nl80211_send_sched_scan(sched_scan_req, NL80211_CMD_START_SCHED_SCAN);
|
|
return 0;
|
|
return 0;
|
|
|
|
|
|
out_free:
|
|
out_free:
|
|
@@ -13219,18 +13218,19 @@ static int nl80211_prep_scan_msg(struct sk_buff *msg,
|
|
|
|
|
|
static int
|
|
static int
|
|
nl80211_prep_sched_scan_msg(struct sk_buff *msg,
|
|
nl80211_prep_sched_scan_msg(struct sk_buff *msg,
|
|
- struct cfg80211_registered_device *rdev,
|
|
|
|
- struct net_device *netdev,
|
|
|
|
- u32 portid, u32 seq, int flags, u32 cmd)
|
|
|
|
|
|
+ struct cfg80211_sched_scan_request *req, u32 cmd)
|
|
{
|
|
{
|
|
void *hdr;
|
|
void *hdr;
|
|
|
|
|
|
- hdr = nl80211hdr_put(msg, portid, seq, flags, cmd);
|
|
|
|
|
|
+ hdr = nl80211hdr_put(msg, 0, 0, 0, cmd);
|
|
if (!hdr)
|
|
if (!hdr)
|
|
return -1;
|
|
return -1;
|
|
|
|
|
|
- if (nla_put_u32(msg, NL80211_ATTR_WIPHY, rdev->wiphy_idx) ||
|
|
|
|
- nla_put_u32(msg, NL80211_ATTR_IFINDEX, netdev->ifindex))
|
|
|
|
|
|
+ if (nla_put_u32(msg, NL80211_ATTR_WIPHY,
|
|
|
|
+ wiphy_to_rdev(req->wiphy)->wiphy_idx) ||
|
|
|
|
+ nla_put_u32(msg, NL80211_ATTR_IFINDEX, req->dev->ifindex) ||
|
|
|
|
+ nla_put_u64_64bit(msg, NL80211_ATTR_COOKIE, req->reqid,
|
|
|
|
+ NL80211_ATTR_PAD))
|
|
goto nla_put_failure;
|
|
goto nla_put_failure;
|
|
|
|
|
|
genlmsg_end(msg, hdr);
|
|
genlmsg_end(msg, hdr);
|
|
@@ -13290,8 +13290,7 @@ void nl80211_send_scan_msg(struct cfg80211_registered_device *rdev,
|
|
NL80211_MCGRP_SCAN, GFP_KERNEL);
|
|
NL80211_MCGRP_SCAN, GFP_KERNEL);
|
|
}
|
|
}
|
|
|
|
|
|
-void nl80211_send_sched_scan(struct cfg80211_registered_device *rdev,
|
|
|
|
- struct net_device *netdev, u32 cmd)
|
|
|
|
|
|
+void nl80211_send_sched_scan(struct cfg80211_sched_scan_request *req, u32 cmd)
|
|
{
|
|
{
|
|
struct sk_buff *msg;
|
|
struct sk_buff *msg;
|
|
|
|
|
|
@@ -13299,12 +13298,12 @@ void nl80211_send_sched_scan(struct cfg80211_registered_device *rdev,
|
|
if (!msg)
|
|
if (!msg)
|
|
return;
|
|
return;
|
|
|
|
|
|
- if (nl80211_prep_sched_scan_msg(msg, rdev, netdev, 0, 0, 0, cmd) < 0) {
|
|
|
|
|
|
+ if (nl80211_prep_sched_scan_msg(msg, req, cmd) < 0) {
|
|
nlmsg_free(msg);
|
|
nlmsg_free(msg);
|
|
return;
|
|
return;
|
|
}
|
|
}
|
|
|
|
|
|
- genlmsg_multicast_netns(&nl80211_fam, wiphy_net(&rdev->wiphy), msg, 0,
|
|
|
|
|
|
+ genlmsg_multicast_netns(&nl80211_fam, wiphy_net(req->wiphy), msg, 0,
|
|
NL80211_MCGRP_SCAN, GFP_KERNEL);
|
|
NL80211_MCGRP_SCAN, GFP_KERNEL);
|
|
}
|
|
}
|
|
|
|
|