cfg80211: add request id parameter to .sched_scan_stop() signature
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>
This commit is contained in:
parent
3007e3529c
commit
3a3ecf1d59
|
@ -3352,7 +3352,7 @@ static int ath6kl_cfg80211_sscan_start(struct wiphy *wiphy,
|
||||||
}
|
}
|
||||||
|
|
||||||
static int ath6kl_cfg80211_sscan_stop(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);
|
struct ath6kl_vif *vif = netdev_priv(dev);
|
||||||
bool stopped;
|
bool stopped;
|
||||||
|
|
|
@ -3405,7 +3405,7 @@ brcmf_cfg80211_sched_scan_start(struct wiphy *wiphy,
|
||||||
}
|
}
|
||||||
|
|
||||||
static int brcmf_cfg80211_sched_scan_stop(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_cfg80211_info *cfg = wiphy_to_cfg(wiphy);
|
||||||
struct brcmf_if *ifp = netdev_priv(ndev);
|
struct brcmf_if *ifp = netdev_priv(ndev);
|
||||||
|
@ -3607,7 +3607,7 @@ static s32 brcmf_cfg80211_resume(struct wiphy *wiphy)
|
||||||
cfg->wowl.pre_pmmode);
|
cfg->wowl.pre_pmmode);
|
||||||
cfg->wowl.active = false;
|
cfg->wowl.active = false;
|
||||||
if (cfg->wowl.nd_enabled) {
|
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_unregister(cfg->pub, BRCMF_E_PFN_NET_FOUND);
|
||||||
brcmf_fweh_register(cfg->pub, BRCMF_E_PFN_NET_FOUND,
|
brcmf_fweh_register(cfg->pub, BRCMF_E_PFN_NET_FOUND,
|
||||||
brcmf_notify_sched_scan_results);
|
brcmf_notify_sched_scan_results);
|
||||||
|
@ -3691,7 +3691,7 @@ static s32 brcmf_cfg80211_suspend(struct wiphy *wiphy,
|
||||||
|
|
||||||
/* Stop scheduled scan */
|
/* Stop scheduled scan */
|
||||||
if (brcmf_feat_is_enabled(ifp, BRCMF_FEAT_PNO))
|
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 */
|
/* end any scanning */
|
||||||
if (test_bit(BRCMF_SCAN_STATUS_BUSY, &cfg->scan_status))
|
if (test_bit(BRCMF_SCAN_STATUS_BUSY, &cfg->scan_status))
|
||||||
|
|
|
@ -2720,7 +2720,7 @@ mwifiex_cfg80211_sched_scan_start(struct wiphy *wiphy,
|
||||||
* previous bgscan configuration in the firmware
|
* previous bgscan configuration in the firmware
|
||||||
*/
|
*/
|
||||||
static int mwifiex_cfg80211_sched_scan_stop(struct wiphy *wiphy,
|
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);
|
struct mwifiex_private *priv = mwifiex_netdev_get_priv(dev);
|
||||||
|
|
||||||
|
|
|
@ -2773,12 +2773,12 @@ struct cfg80211_nan_func {
|
||||||
* @set_cqm_txe_config: Configure connection quality monitor TX error
|
* @set_cqm_txe_config: Configure connection quality monitor TX error
|
||||||
* thresholds.
|
* thresholds.
|
||||||
* @sched_scan_start: Tell the driver to start a scheduled scan.
|
* @sched_scan_start: Tell the driver to start a scheduled scan.
|
||||||
* @sched_scan_stop: Tell the driver to stop an ongoing scheduled scan. This
|
* @sched_scan_stop: Tell the driver to stop an ongoing scheduled scan with
|
||||||
* call must stop the scheduled scan and be ready for starting a new one
|
* given request id. This call must stop the scheduled scan and be ready
|
||||||
* before it returns, i.e. @sched_scan_start may be called immediately
|
* for starting a new one before it returns, i.e. @sched_scan_start may be
|
||||||
* after that again and should not fail in that case. The driver should
|
* called immediately after that again and should not fail in that case.
|
||||||
* not call cfg80211_sched_scan_stopped() for a requested stop (when this
|
* The driver should not call cfg80211_sched_scan_stopped() for a requested
|
||||||
* method returns 0.)
|
* stop (when this method returns 0).
|
||||||
*
|
*
|
||||||
* @mgmt_frame_register: Notify driver that a management frame type was
|
* @mgmt_frame_register: Notify driver that a management frame type was
|
||||||
* registered. The callback is allowed to sleep.
|
* registered. The callback is allowed to sleep.
|
||||||
|
@ -3076,7 +3076,8 @@ struct cfg80211_ops {
|
||||||
int (*sched_scan_start)(struct wiphy *wiphy,
|
int (*sched_scan_start)(struct wiphy *wiphy,
|
||||||
struct net_device *dev,
|
struct net_device *dev,
|
||||||
struct cfg80211_sched_scan_request *request);
|
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,
|
int (*set_rekey_data)(struct wiphy *wiphy, struct net_device *dev,
|
||||||
struct cfg80211_gtk_rekey_data *data);
|
struct cfg80211_gtk_rekey_data *data);
|
||||||
|
|
|
@ -2242,7 +2242,8 @@ ieee80211_sched_scan_start(struct wiphy *wiphy,
|
||||||
}
|
}
|
||||||
|
|
||||||
static int
|
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);
|
struct ieee80211_local *local = wiphy_priv(wiphy);
|
||||||
|
|
||||||
|
|
|
@ -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,
|
static inline int rdev_sched_scan_stop(struct cfg80211_registered_device *rdev,
|
||||||
struct net_device *dev)
|
struct net_device *dev, u64 reqid)
|
||||||
{
|
{
|
||||||
int ret;
|
int ret;
|
||||||
trace_rdev_sched_scan_stop(&rdev->wiphy, dev);
|
trace_rdev_sched_scan_stop(&rdev->wiphy, dev, reqid);
|
||||||
ret = rdev->ops->sched_scan_stop(&rdev->wiphy, dev);
|
ret = rdev->ops->sched_scan_stop(&rdev->wiphy, dev, reqid);
|
||||||
trace_rdev_return_int(&rdev->wiphy, ret);
|
trace_rdev_return_int(&rdev->wiphy, ret);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
|
@ -436,7 +436,7 @@ int cfg80211_stop_sched_scan_req(struct cfg80211_registered_device *rdev,
|
||||||
ASSERT_RTNL();
|
ASSERT_RTNL();
|
||||||
|
|
||||||
if (!driver_initiated) {
|
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)
|
if (err)
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
|
|
|
@ -576,11 +576,6 @@ DEFINE_EVENT(wiphy_netdev_evt, rdev_stop_ap,
|
||||||
TP_ARGS(wiphy, netdev)
|
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,
|
DEFINE_EVENT(wiphy_netdev_evt, rdev_set_rekey_data,
|
||||||
TP_PROTO(struct wiphy *wiphy, struct net_device *netdev),
|
TP_PROTO(struct wiphy *wiphy, struct net_device *netdev),
|
||||||
TP_ARGS(wiphy, netdev)
|
TP_ARGS(wiphy, netdev)
|
||||||
|
@ -1632,6 +1627,11 @@ DEFINE_EVENT(wiphy_netdev_id_evt, rdev_sched_scan_start,
|
||||||
TP_ARGS(wiphy, netdev, id)
|
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,
|
TRACE_EVENT(rdev_tdls_mgmt,
|
||||||
TP_PROTO(struct wiphy *wiphy, struct net_device *netdev,
|
TP_PROTO(struct wiphy *wiphy, struct net_device *netdev,
|
||||||
u8 *peer, u8 action_code, u8 dialog_token,
|
u8 *peer, u8 action_code, u8 dialog_token,
|
||||||
|
|
Loading…
Reference in New Issue