> - fwd_skb = skb_copy(skb, GFP_ATOMIC); > + if (skb_headroom(skb) >= local->tx_headroom) > + fwd_skb = skb_copy(skb, GFP_ATOMIC); > + else > + fwd_skb = skb_copy_expand(skb, local->tx_headroom, > + 0, GFP_ATOMIC); Why bother making this conditional? It seems that always using skb_copy_expand() should be sufficient? The code between the two (skb_copy, skb_copy_expand) is almost identical anyway, apart from the latter setting the headroom (and tailroom). johannes