brcmfmac: use ndev->needed_headroom to reserve additional header space
authorWright Feng <wright.feng@broadcom.com>
Fri, 3 Jun 2016 21:31:09 +0000 (23:31 +0200)
committerKalle Valo <kvalo@codeaurora.org>
Thu, 16 Jun 2016 15:20:02 +0000 (18:20 +0300)
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>
drivers/net/wireless/broadcom/brcm80211/brcmfmac/core.c

index 6a764807a5c9b89ea3b3b088759f2ccd5a0eaa55..faf4e46bd65bb149d8553d4217cec6309aa03c86 100644 (file)
@@ -516,7 +516,7 @@ int brcmf_net_attach(struct brcmf_if *ifp, bool rtnl_locked)
        /* 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 +