mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-08-22 17:01:14 +00:00
mac80211: handle HW ROC expired properly
In case of HW ROC, when the driver reports that the ROC expired, it is not sufficient to purge the ROCs based on the remaining time, as it possible that the device finished the ROC session before the actual requested duration. To handle such cases, in case of ROC expired notification from the driver, complete all the ROCs which are marked with hw_begun, regardless of the remaining duration. Signed-off-by: Ilan Peer <ilan.peer@intel.com> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
This commit is contained in:
parent
641cf2a5ba
commit
1b894521e6
1 changed files with 5 additions and 1 deletions
|
@ -224,7 +224,11 @@ static unsigned long ieee80211_end_finished_rocs(struct ieee80211_local *local,
|
|||
msecs_to_jiffies(roc->duration) -
|
||||
now;
|
||||
|
||||
if (roc->abort || remaining <= 0)
|
||||
/* In case of HW ROC, it is possible that the HW finished the
|
||||
* ROC session before the actual requested time. In such a case
|
||||
* end the ROC session (disregarding the remaining time).
|
||||
*/
|
||||
if (roc->abort || roc->hw_begun || remaining <= 0)
|
||||
ieee80211_roc_notify_destroy(roc);
|
||||
else
|
||||
remaining_dur_min = min(remaining_dur_min, remaining);
|
||||
|
|
Loading…
Reference in a new issue