summaryrefslogtreecommitdiffstats
path: root/net
diff options
context:
space:
mode:
authorJohannes Berg <johannes@sipsolutions.net>2008-05-12 20:51:44 -0700
committerDavid S. Miller <davem@davemloft.net>2008-05-12 20:51:44 -0700
commitf3994eceebf64cf356a82ffb2718ef538eb8d4f4 (patch)
treef5d6b53c6026d721a9ba7e31b16e281f02f20a21 /net
parentf5184d267c1aedb9b7a8cc44e08ff6b8d382c3b5 (diff)
downloadlinux-f3994eceebf64cf356a82ffb2718ef538eb8d4f4.tar.gz
linux-f3994eceebf64cf356a82ffb2718ef538eb8d4f4.tar.bz2
linux-f3994eceebf64cf356a82ffb2718ef538eb8d4f4.zip
mac80211: assign needed_headroom/tailroom for netdevs
This assigns the netdev's needed_headroom/tailroom members to take advantage of pre-allocated space for 802.11 headers. Signed-off-by: Johannes Berg <johannes@sipsolutions.net> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net')
-rw-r--r--net/mac80211/iface.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/net/mac80211/iface.c b/net/mac80211/iface.c
index 80954a512185..06e88a5a036d 100644
--- a/net/mac80211/iface.c
+++ b/net/mac80211/iface.c
@@ -54,6 +54,15 @@ int ieee80211_if_add(struct net_device *dev, const char *name,
if (!ndev)
return -ENOMEM;
+ ndev->needed_headroom = local->tx_headroom +
+ 4*6 /* four MAC addresses */
+ + 2 + 2 + 2 + 2 /* ctl, dur, seq, qos */
+ + 6 /* mesh */
+ + 8 /* rfc1042/bridge tunnel */
+ - ETH_HLEN /* ethernet hard_header_len */
+ + IEEE80211_ENCRYPT_HEADROOM;
+ ndev->needed_tailroom = IEEE80211_ENCRYPT_TAILROOM;
+
ret = dev_alloc_name(ndev, ndev->name);
if (ret < 0)
goto fail;