Skip to content

Commit

Permalink
cfg80211: add request id parameter to .sched_scan_stop() signature
Browse files Browse the repository at this point in the history
For multiple scheduled scan support the driver needs to know which
scheduled scan request is being stopped. Pass the request id in the
.sched_scan_stop() callback.

Reviewed-by: Hante Meuleman <hante.meuleman@broadcom.com>
Reviewed-by: Pieter-Paul Giesberts <pieter-paul.giesberts@broadcom.com>
Reviewed-by: Franky Lin <franky.lin@broadcom.com>
Signed-off-by: Arend van Spriel <arend.vanspriel@broadcom.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
  • Loading branch information
Arend Van Spriel authored and Johannes Berg committed Apr 26, 2017
1 parent 3007e35 commit 3a3ecf1
Show file tree
Hide file tree
Showing 8 changed files with 24 additions and 22 deletions.
2 changes: 1 addition & 1 deletion drivers/net/wireless/ath/ath6kl/cfg80211.c
Original file line number Diff line number Diff line change
Expand Up @@ -3352,7 +3352,7 @@ static int ath6kl_cfg80211_sscan_start(struct wiphy *wiphy,
}

static int ath6kl_cfg80211_sscan_stop(struct wiphy *wiphy,
struct net_device *dev)
struct net_device *dev, u64 reqid)
{
struct ath6kl_vif *vif = netdev_priv(dev);
bool stopped;
Expand Down
6 changes: 3 additions & 3 deletions drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
Original file line number Diff line number Diff line change
Expand Up @@ -3405,7 +3405,7 @@ brcmf_cfg80211_sched_scan_start(struct wiphy *wiphy,
}

static int brcmf_cfg80211_sched_scan_stop(struct wiphy *wiphy,
struct net_device *ndev)
struct net_device *ndev, u64 reqid)
{
struct brcmf_cfg80211_info *cfg = wiphy_to_cfg(wiphy);
struct brcmf_if *ifp = netdev_priv(ndev);
Expand Down Expand Up @@ -3607,7 +3607,7 @@ static s32 brcmf_cfg80211_resume(struct wiphy *wiphy)
cfg->wowl.pre_pmmode);
cfg->wowl.active = false;
if (cfg->wowl.nd_enabled) {
brcmf_cfg80211_sched_scan_stop(cfg->wiphy, ifp->ndev);
brcmf_cfg80211_sched_scan_stop(cfg->wiphy, ifp->ndev, 0);
brcmf_fweh_unregister(cfg->pub, BRCMF_E_PFN_NET_FOUND);
brcmf_fweh_register(cfg->pub, BRCMF_E_PFN_NET_FOUND,
brcmf_notify_sched_scan_results);
Expand Down Expand Up @@ -3691,7 +3691,7 @@ static s32 brcmf_cfg80211_suspend(struct wiphy *wiphy,

/* Stop scheduled scan */
if (brcmf_feat_is_enabled(ifp, BRCMF_FEAT_PNO))
brcmf_cfg80211_sched_scan_stop(wiphy, ndev);
brcmf_cfg80211_sched_scan_stop(wiphy, ndev, 0);

/* end any scanning */
if (test_bit(BRCMF_SCAN_STATUS_BUSY, &cfg->scan_status))
Expand Down
2 changes: 1 addition & 1 deletion drivers/net/wireless/marvell/mwifiex/cfg80211.c
Original file line number Diff line number Diff line change
Expand Up @@ -2720,7 +2720,7 @@ mwifiex_cfg80211_sched_scan_start(struct wiphy *wiphy,
* previous bgscan configuration in the firmware
*/
static int mwifiex_cfg80211_sched_scan_stop(struct wiphy *wiphy,
struct net_device *dev)
struct net_device *dev, u64 reqid)
{
struct mwifiex_private *priv = mwifiex_netdev_get_priv(dev);

Expand Down
15 changes: 8 additions & 7 deletions include/net/cfg80211.h
Original file line number Diff line number Diff line change
Expand Up @@ -2773,12 +2773,12 @@ struct cfg80211_nan_func {
* @set_cqm_txe_config: Configure connection quality monitor TX error
* thresholds.
* @sched_scan_start: Tell the driver to start a scheduled scan.
* @sched_scan_stop: Tell the driver to stop an ongoing scheduled scan. This
* call must stop the scheduled scan and be ready for starting a new one
* before it returns, i.e. @sched_scan_start may be called immediately
* after that again and should not fail in that case. The driver should
* not call cfg80211_sched_scan_stopped() for a requested stop (when this
* method returns 0.)
* @sched_scan_stop: Tell the driver to stop an ongoing scheduled scan with
* given request id. This call must stop the scheduled scan and be ready
* for starting a new one before it returns, i.e. @sched_scan_start may be
* called immediately after that again and should not fail in that case.
* The driver should not call cfg80211_sched_scan_stopped() for a requested
* stop (when this method returns 0).
*
* @mgmt_frame_register: Notify driver that a management frame type was
* registered. The callback is allowed to sleep.
Expand Down Expand Up @@ -3076,7 +3076,8 @@ struct cfg80211_ops {
int (*sched_scan_start)(struct wiphy *wiphy,
struct net_device *dev,
struct cfg80211_sched_scan_request *request);
int (*sched_scan_stop)(struct wiphy *wiphy, struct net_device *dev);
int (*sched_scan_stop)(struct wiphy *wiphy, struct net_device *dev,
u64 reqid);

int (*set_rekey_data)(struct wiphy *wiphy, struct net_device *dev,
struct cfg80211_gtk_rekey_data *data);
Expand Down
3 changes: 2 additions & 1 deletion net/mac80211/cfg.c
Original file line number Diff line number Diff line change
Expand Up @@ -2242,7 +2242,8 @@ ieee80211_sched_scan_start(struct wiphy *wiphy,
}

static int
ieee80211_sched_scan_stop(struct wiphy *wiphy, struct net_device *dev)
ieee80211_sched_scan_stop(struct wiphy *wiphy, struct net_device *dev,
u64 reqid)
{
struct ieee80211_local *local = wiphy_priv(wiphy);

Expand Down
6 changes: 3 additions & 3 deletions net/wireless/rdev-ops.h
Original file line number Diff line number Diff line change
Expand Up @@ -820,11 +820,11 @@ rdev_sched_scan_start(struct cfg80211_registered_device *rdev,
}

static inline int rdev_sched_scan_stop(struct cfg80211_registered_device *rdev,
struct net_device *dev)
struct net_device *dev, u64 reqid)
{
int ret;
trace_rdev_sched_scan_stop(&rdev->wiphy, dev);
ret = rdev->ops->sched_scan_stop(&rdev->wiphy, dev);
trace_rdev_sched_scan_stop(&rdev->wiphy, dev, reqid);
ret = rdev->ops->sched_scan_stop(&rdev->wiphy, dev, reqid);
trace_rdev_return_int(&rdev->wiphy, ret);
return ret;
}
Expand Down
2 changes: 1 addition & 1 deletion net/wireless/scan.c
Original file line number Diff line number Diff line change
Expand Up @@ -436,7 +436,7 @@ int cfg80211_stop_sched_scan_req(struct cfg80211_registered_device *rdev,
ASSERT_RTNL();

if (!driver_initiated) {
int err = rdev_sched_scan_stop(rdev, req->dev);
int err = rdev_sched_scan_stop(rdev, req->dev, req->reqid);
if (err)
return err;
}
Expand Down
10 changes: 5 additions & 5 deletions net/wireless/trace.h
Original file line number Diff line number Diff line change
Expand Up @@ -576,11 +576,6 @@ DEFINE_EVENT(wiphy_netdev_evt, rdev_stop_ap,
TP_ARGS(wiphy, netdev)
);

DEFINE_EVENT(wiphy_netdev_evt, rdev_sched_scan_stop,
TP_PROTO(struct wiphy *wiphy, struct net_device *netdev),
TP_ARGS(wiphy, netdev)
);

DEFINE_EVENT(wiphy_netdev_evt, rdev_set_rekey_data,
TP_PROTO(struct wiphy *wiphy, struct net_device *netdev),
TP_ARGS(wiphy, netdev)
Expand Down Expand Up @@ -1632,6 +1627,11 @@ DEFINE_EVENT(wiphy_netdev_id_evt, rdev_sched_scan_start,
TP_ARGS(wiphy, netdev, id)
);

DEFINE_EVENT(wiphy_netdev_id_evt, rdev_sched_scan_stop,
TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, u64 id),
TP_ARGS(wiphy, netdev, id)
);

TRACE_EVENT(rdev_tdls_mgmt,
TP_PROTO(struct wiphy *wiphy, struct net_device *netdev,
u8 *peer, u8 action_code, u8 dialog_token,
Expand Down

0 comments on commit 3a3ecf1

Please sign in to comment.