blob: 7f17b8015cfadcbfd8aefcd631744ae403143f3d [file] [log] [blame]
This is an optimization introduced on newer kernels, just ignore for
older kernels on mac80211. For others the netdev->hard_header_len
could be used.
--- a/net/mac80211/iface.c
+++ b/net/mac80211/iface.c
@@ -1508,6 +1508,7 @@ int ieee80211_if_add(struct ieee80211_lo
return -ENOMEM;
dev_net_set(ndev, wiphy_net(local->hw.wiphy));
+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,26))
ndev->needed_headroom = local->tx_headroom +
4*6 /* four MAC addresses */
+ 2 + 2 + 2 + 2 /* ctl, dur, seq, qos */
@@ -1516,6 +1517,7 @@ int ieee80211_if_add(struct ieee80211_lo
- ETH_HLEN /* ethernet hard_header_len */
+ IEEE80211_ENCRYPT_HEADROOM;
ndev->needed_tailroom = IEEE80211_ENCRYPT_TAILROOM;
+#endif
ret = dev_alloc_name(ndev, ndev->name);
if (ret < 0) {
--- a/drivers/net/wireless/orinoco/main.c
+++ b/drivers/net/wireless/orinoco/main.c
@@ -2279,7 +2279,11 @@ int orinoco_if_add(struct orinoco_privat
/* we use the default eth_mac_addr for setting the MAC addr */
/* Reserve space in skb for the SNAP header */
+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,26))
dev->needed_headroom = ENCAPS_OVERHEAD;
+#else
+ dev->hard_header_len += ENCAPS_OVERHEAD;
+#endif
netif_carrier_off(dev);