summaryrefslogtreecommitdiffstats
path: root/include/net/mac80211.h
diff options
context:
space:
mode:
authorJohannes Berg2012-06-05 14:28:40 +0200
committerJohn W. Linville2012-06-06 21:20:33 +0200
commit196ac1c13d4db6c276dbb1c9190c8d7d45a83f1f (patch)
tree68d2a1b99ec08d685381c812e38d0f18553e1cee /include/net/mac80211.h
parentwireless: update wireless URLs (diff)
downloadkernel-qcow2-linux-196ac1c13d4db6c276dbb1c9190c8d7d45a83f1f.tar.gz
kernel-qcow2-linux-196ac1c13d4db6c276dbb1c9190c8d7d45a83f1f.tar.xz
kernel-qcow2-linux-196ac1c13d4db6c276dbb1c9190c8d7d45a83f1f.zip
mac80211: do remain-on-channel while idle
The IDLE handling in HW off-channel is broken right now since we turn off IDLE only when the off-channel period already started. Therefore, all drivers that use it today (only iwlwifi!) must support off-channel while idle, so playing with idle isn't needed at all. Off-channel in general, since it's no longer used for authentication/association, shouldn't affect PS, so also remove that logic. Also document a small caveat for reporting TX status from off-channel frames in HW remain-on-channel. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'include/net/mac80211.h')
-rw-r--r--include/net/mac80211.h8
1 files changed, 7 insertions, 1 deletions
diff --git a/include/net/mac80211.h b/include/net/mac80211.h
index d2ed86da8e4c..6e700bf8d4a5 100644
--- a/include/net/mac80211.h
+++ b/include/net/mac80211.h
@@ -2183,7 +2183,13 @@ enum ieee80211_rate_control_changed {
* offload. Frames to transmit on the off-channel channel are transmitted
* normally except for the %IEEE80211_TX_CTL_TX_OFFCHAN flag. When the
* duration (which will always be non-zero) expires, the driver must call
- * ieee80211_remain_on_channel_expired(). This callback may sleep.
+ * ieee80211_remain_on_channel_expired().
+ * The driver must not call ieee80211_remain_on_channel_expired() before
+ * the TX status for a frame that was sent off-channel, otherwise the TX
+ * status is reported to userspace in an invalid way.
+ * Note that this callback may be called while the device is in IDLE and
+ * must be accepted in this case.
+ * This callback may sleep.
* @cancel_remain_on_channel: Requests that an ongoing off-channel period is
* aborted before it expires. This callback may sleep.
*