summaryrefslogtreecommitdiffstats
path: root/include/net
diff options
context:
space:
mode:
authorJohannes Berg <johannes.berg@intel.com>2013-02-13 12:11:00 +0100
committerJohannes Berg <johannes.berg@intel.com>2013-03-18 20:15:03 +0100
commit39ecc01d1bbe3de2cf5f01a81e176ea5160d3b95 (patch)
tree1a75bf065c61f0870ff4d63eac6130998834748c /include/net
parenta0ca796c460259bc079631d2d148ffff1d1fc736 (diff)
downloadlinux-39ecc01d1bbe3de2cf5f01a81e176ea5160d3b95.tar.gz
linux-39ecc01d1bbe3de2cf5f01a81e176ea5160d3b95.tar.bz2
linux-39ecc01d1bbe3de2cf5f01a81e176ea5160d3b95.zip
mac80211: pass queue bitmap to flush operation
There are a number of situations in which mac80211 only really needs to flush queues for one virtual interface, and in fact during this frames might be transmitted on other virtual interfaces. Calculate and pass a queue bitmap to the driver so it knows which queues to flush. Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Diffstat (limited to 'include/net')
-rw-r--r--include/net/mac80211.h9
1 files changed, 6 insertions, 3 deletions
diff --git a/include/net/mac80211.h b/include/net/mac80211.h
index 0b912d22f82d..4158da74e11b 100644
--- a/include/net/mac80211.h
+++ b/include/net/mac80211.h
@@ -2438,8 +2438,11 @@ enum ieee80211_roc_type {
* @testmode_dump: Implement a cfg80211 test mode dump. The callback can sleep.
*
* @flush: Flush all pending frames from the hardware queue, making sure
- * that the hardware queues are empty. If the parameter @drop is set
- * to %true, pending frames may be dropped. The callback can sleep.
+ * that the hardware queues are empty. The @queues parameter is a bitmap
+ * of queues to flush, which is useful if different virtual interfaces
+ * use different hardware queues; it may also indicate all queues.
+ * If the parameter @drop is set to %true, pending frames may be dropped.
+ * The callback can sleep.
*
* @channel_switch: Drivers that need (or want) to offload the channel
* switch operation for CSAs received from the AP may implement this
@@ -2687,7 +2690,7 @@ struct ieee80211_ops {
struct netlink_callback *cb,
void *data, int len);
#endif
- void (*flush)(struct ieee80211_hw *hw, bool drop);
+ void (*flush)(struct ieee80211_hw *hw, u32 queues, bool drop);
void (*channel_switch)(struct ieee80211_hw *hw,
struct ieee80211_channel_switch *ch_switch);
int (*napi_poll)(struct ieee80211_hw *hw, int budget);