mac80211: brcmfmac: backport changes from 2016-06-16
[openwrt/svn-archive/archive.git] / package / kernel / mac80211 / patches / 351-0014-brcmfmac-use-ndev-needed_headroom-to-reserve-additio.patch
diff --git a/package/kernel/mac80211/patches/351-0014-brcmfmac-use-ndev-needed_headroom-to-reserve-additio.patch b/package/kernel/mac80211/patches/351-0014-brcmfmac-use-ndev-needed_headroom-to-reserve-additio.patch
new file mode 100644 (file)
index 0000000..7cfdc03
--- /dev/null
@@ -0,0 +1,30 @@
+From: Wright Feng <wright.feng@broadcom.com>
+Date: Fri, 3 Jun 2016 23:31:09 +0200
+Subject: [PATCH] brcmfmac: use ndev->needed_headroom to reserve additional
+ header space
+
+When using nmap tool with FMAC, the nmap packets were be dropped by kernel
+because the size was too short. The kernel message showed like
+"nmap: packet size is too short (42 <= 50)". It is caused by the packet
+length is shorter than ndev->hard_header_len. According to definition of
+LL_RESERVED_SPACE() and hard_header_len, we should use hard_header_len
+to reserve for L2 header, like ethernet header(ETH_HLEN) in our case and
+use needed_headroom for the additional headroom needed by hardware.
+
+Reviewed-by: Arend Van Spriel <arend@broadcom.com>
+Signed-off-by: Wright Feng <wright.feng@broadcom.com>
+Signed-off-by: Arend van Spriel <arend.vanspriel@broadcom.com>
+Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
+---
+
+--- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/core.c
++++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/core.c
+@@ -516,7 +516,7 @@ int brcmf_net_attach(struct brcmf_if *if
+       /* set appropriate operations */
+       ndev->netdev_ops = &brcmf_netdev_ops_pri;
+-      ndev->hard_header_len += drvr->hdrlen;
++      ndev->needed_headroom += drvr->hdrlen;
+       ndev->ethtool_ops = &brcmf_ethtool_ops;
+       drvr->rxsz = ndev->mtu + ndev->hard_header_len +