Now that cfg80211 has support for periodic scan, we call those ops in the nl80211 code. Signed-off-by: Luciano Coelho <luciano.coelho@xxxxxxxxx> --- net/wireless/nl80211.c | 30 ++++++++++++++++++++---------- 1 files changed, 20 insertions(+), 10 deletions(-) diff --git a/net/wireless/nl80211.c b/net/wireless/nl80211.c index 0884464..fd50186 100644 --- a/net/wireless/nl80211.c +++ b/net/wireless/nl80211.c @@ -3014,6 +3014,11 @@ static int nl80211_start_periodic(struct sk_buff *skb, if (err) goto out_rtnl; + if (!rdev->ops->periodic_start) { + err = -EOPNOTSUPP; + goto out; + } + if (!netif_running(dev)) { err = -ENETDOWN; goto out; @@ -3035,14 +3040,15 @@ static int nl80211_start_periodic(struct sk_buff *skb, rdev->periodic_req = request; - /* add actual calls here */ - - if (!err) { - nl80211_send_periodic(rdev, dev, - NL80211_CMD_START_PERIODIC_SCAN); - dev_hold(dev); + err = rdev->ops->periodic_start(&rdev->wiphy, dev, request); + if (err) { + kfree(request); + rdev->periodic_req = NULL; + goto out; } + nl80211_send_periodic(rdev, dev, + NL80211_CMD_START_PERIODIC_SCAN); out: cfg80211_unlock_rdev(rdev); dev_put(dev); @@ -3067,20 +3073,24 @@ static int nl80211_stop_periodic(struct sk_buff *skb, if (err) goto out_rtnl; + if (!rdev->ops->periodic_stop) { + err = -EOPNOTSUPP; + goto out; + } + if (!netif_running(dev)) { err = -ENETDOWN; goto out; } if (rdev->periodic_req) { - /* add actual calls here */ + err = rdev->ops->periodic_stop(&rdev->wiphy, dev, + rdev->periodic_req); } - if (!err) { + if (!err) nl80211_send_periodic(rdev, dev, NL80211_CMD_STOP_PERIODIC_SCAN); - dev_hold(dev); - } /* * FIXME: Can this stay here? How will the auto-complete and other -- 1.7.0.4 -- To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html