X-Git-Url: http://git.openwrt.org/?p=openwrt%2Fsvn-archive%2Farchive.git;a=blobdiff_plain;f=package%2Fkernel%2Fmac80211%2Fpatches%2F351-0014-brcmfmac-use-ndev-needed_headroom-to-reserve-additio.patch;fp=package%2Fkernel%2Fmac80211%2Fpatches%2F351-0014-brcmfmac-use-ndev-needed_headroom-to-reserve-additio.patch;h=7cfdc03a986b8e4854b4ed2c6652b7c0a43a414e;hp=0000000000000000000000000000000000000000;hb=0cd83d19837faea1963fec362af5b3ebbf5a43b7;hpb=5a3c1fb9c26d0462417177fbf8cc921bad3a221f 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 index 0000000000..7cfdc03a98 --- /dev/null +++ b/package/kernel/mac80211/patches/351-0014-brcmfmac-use-ndev-needed_headroom-to-reserve-additio.patch @@ -0,0 +1,30 @@ +From: Wright Feng +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 +Signed-off-by: Wright Feng +Signed-off-by: Arend van Spriel +Signed-off-by: Kalle Valo +--- + +--- 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 +