diff mbox

mac80211: Fix headroom allocation when forwarding mesh pkt

Message ID e3b7a95724944c6aadc8512eadfe1c1d@ceva-dsp.com (mailing list archive)
State Accepted
Delegated to: Johannes Berg
Headers show

Commit Message

Cedric Izoard Jan. 11, 2017, 2:39 p.m. UTC
This patch fix issue introduced by commit
"mac80211: Ensure enough headroom when forwarding mesh pkt"

When forwarding mesh pkt, mac80211 may also add security header,
and it must therefore be taken into account in the needed headroom.

Signed-off-by: Cedric Izoard <cedric.izoard@ceva-dsp.com>
---
 net/mac80211/rx.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

Comments

Johannes Berg Jan. 11, 2017, 3:08 p.m. UTC | #1
On Wed, 2017-01-11 at 14:39 +0000, Cedric Izoard wrote:
> This patch fix issue introduced by commit
> "mac80211: Ensure enough headroom when forwarding mesh pkt"

I reworded that, and replaced the commit reference with a Fixes: tag,
please try to do that in the future.

Applied, but I also reindented that to match the expression.

johannes
Masashi Honma Jan. 12, 2017, 2:40 a.m. UTC | #2
On 2017/01/11 23:39, Cedric Izoard wrote:
> -	fwd_skb = skb_copy_expand(skb, local->tx_headroom, 0, GFP_ATOMIC);
> +	fwd_skb = skb_copy_expand(skb, local->tx_headroom +
> +				  sdata->encrypt_headroom, 0, GFP_ATOMIC);
>  	if (!fwd_skb) {
>  		net_info_ratelimited("%s: failed to clone mesh frame\n",
>  				    sdata->name);
>

# I retransmit this because of server error.

Thanks ! It work for me.

Bisected-reported-and-tested-by: Masashi Honma <masashi.honma@gmail.com>

Masashi Honma.
diff mbox

Patch

diff --git a/net/mac80211/rx.c b/net/mac80211/rx.c
index c037c5b..e376093 100644
--- a/net/mac80211/rx.c
+++ b/net/mac80211/rx.c
@@ -2472,7 +2472,8 @@  ieee80211_rx_h_mesh_fwding(struct ieee80211_rx_data *rx)
 	if (!ifmsh->mshcfg.dot11MeshForwarding)
 		goto out;
 
-	fwd_skb = skb_copy_expand(skb, local->tx_headroom, 0, GFP_ATOMIC);
+	fwd_skb = skb_copy_expand(skb, local->tx_headroom +
+				  sdata->encrypt_headroom, 0, GFP_ATOMIC);
 	if (!fwd_skb) {
 		net_info_ratelimited("%s: failed to clone mesh frame\n",
 				    sdata->name);