diff options
author | Gertjan van Wingerde <gwingerde@gmail.com> | 2010-10-10 19:25:33 +0100 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2011-05-09 15:55:22 -0700 |
commit | 2b5f7f94872ef2ed281783017e1a6ac787b8c107 (patch) | |
tree | c4b62532a8d4526168b97660f31b3a14cb53b3d2 | |
parent | 5e93019e4a06ade55e91010371ee22a218190567 (diff) | |
download | lwn-2b5f7f94872ef2ed281783017e1a6ac787b8c107.tar.gz lwn-2b5f7f94872ef2ed281783017e1a6ac787b8c107.zip |
mac80211: Add define for TX headroom reserved by mac80211 itself.
commit d24deb2580823ab0b8425790c6f5d18e2ff749d8 upstream.
Add a definition of the amount of TX headroom reserved by mac80211 itself
for its own purposes. Also add BUILD_BUG_ON to validate the value.
This define can then be used by drivers to request additional TX headroom
in the most efficient manner.
Signed-off-by: Gertjan van Wingerde <gwingerde@gmail.com>
Acked-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
[bwh: Adjust context for 2.6.32]
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
-rw-r--r-- | include/net/mac80211.h | 6 | ||||
-rw-r--r-- | net/mac80211/main.c | 2 |
2 files changed, 8 insertions, 0 deletions
diff --git a/include/net/mac80211.h b/include/net/mac80211.h index c39ed0792948..a2bd2f98b63f 100644 --- a/include/net/mac80211.h +++ b/include/net/mac80211.h @@ -1700,6 +1700,12 @@ void ieee80211_rx(struct ieee80211_hw *hw, struct sk_buff *skb); */ void ieee80211_rx_irqsafe(struct ieee80211_hw *hw, struct sk_buff *skb); +/* + * The TX headroom reserved by mac80211 for its own tx_status functions. + * This is enough for the radiotap header. + */ +#define IEEE80211_TX_STATUS_HEADROOM 13 + /** * ieee80211_tx_status - transmit status callback * diff --git a/net/mac80211/main.c b/net/mac80211/main.c index 19fbd25a705b..2dfe1768e2ab 100644 --- a/net/mac80211/main.c +++ b/net/mac80211/main.c @@ -859,6 +859,8 @@ int ieee80211_register_hw(struct ieee80211_hw *hw) * and we need some headroom for passing the frame to monitor * interfaces, but never both at the same time. */ + BUILD_BUG_ON(IEEE80211_TX_STATUS_HEADROOM != + sizeof(struct ieee80211_tx_status_rtap_hdr)); local->tx_headroom = max_t(unsigned int , local->hw.extra_tx_headroom, sizeof(struct ieee80211_tx_status_rtap_hdr)); |