Due to userspace assumptions, the sched_scan_stop operation must be synchronous, i.e. once it returns a new scheduled scan must be able to start immediately. Document this in the API.
Unified · Split
| @@ -2206,7 +2206,12 @@ struct cfg80211_qos_map { · 2205 unmodified lines | ||
| 2206 | 2206 | * @set_cqm_txe_config: Configure connection quality monitor TX error |
| 2207 | 2207 | * thresholds. |
| 2208 | 2208 | * @sched_scan_start: Tell the driver to start a scheduled scan. |
| 2209 | − * @sched_scan_stop: Tell the driver to stop an ongoing scheduled scan. | |
| 2209 | + * @sched_scan_stop: Tell the driver to stop an ongoing scheduled scan. This | |
| 2210 | + * call must stop the scheduled scan and be ready for starting a new one | |
| 2211 | + * before it returns, i.e. @sched_scan_start may be called immediately | |
| 2212 | + * after that again and should not fail in that case. The driver should | |
| 2213 | + * not call cfg80211_sched_scan_stopped() for a requested stop (when this | |
| 2214 | + * method returns 0.) | |
| 2210 | 2215 | * |
| 2211 | 2216 | * @mgmt_frame_register: Notify driver that a management frame type was |
| 2212 | 2217 | * registered. Note that this callback may not sleep, and cannot run |
| @@ -303,8 +303,9 @@ · 302 unmodified lines | ||
| 303 | 303 | * passed, all channels allowed for the current regulatory domain |
| 304 | 304 | * are used. Extra IEs can also be passed from the userspace by |
| 305 | 305 | * using the %NL80211_ATTR_IE attribute. |
| 306 | − * @NL80211_CMD_STOP_SCHED_SCAN: stop a scheduled scan. Returns -ENOENT | |
| 307 | − * if scheduled scan is not running. | |
| 306 | + * @NL80211_CMD_STOP_SCHED_SCAN: stop a scheduled scan. Returns -ENOENT if | |
| 307 | + * scheduled scan is not running. The caller may assume that as soon | |
| 308 | + * as the call returns, it is safe to start a new scheduled scan again. | |
| 308 | 309 | * @NL80211_CMD_SCHED_SCAN_RESULTS: indicates that there are scheduled scan |
| 309 | 310 | * results available. |
| 310 | 311 | * @NL80211_CMD_SCHED_SCAN_STOPPED: indicates that the scheduled scan has |