Subject: Re: [Question] net: dsa: tag_qca: QCA tag and headroom size?

From: Andrew Lunn <[email-masked]>
Date: Wed, 12 Feb 2020 21:23:32 +0100

On Wed, Feb 12, 2020 at 09:57:00AM +0000, Per Förlin wrote:
> Hi,
> 
> ---
>  net/dsa/tag_qca.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/net/dsa/tag_qca.c b/net/dsa/tag_qca.c
> index c8a128c9e5e0..70db7c909f74 100644
> --- a/net/dsa/tag_qca.c
> +++ b/net/dsa/tag_qca.c
> @@ -33,7 +33,7 @@ static struct sk_buff *qca_tag_xmit(struct sk_buff *skb, struct net_device *dev)
>  	struct dsa_port *dp = dsa_slave_to_port(dev);
>  	u16 *phdr, hdr;
>  
> -	if (skb_cow_head(skb, 0) < 0)
> >  Is it really safe to assume there is enough headroom for the QCA tag?
> 
> +	if (skb_cow_head(skb, QCA_HDR_LEN) < 0)
> > My proposal. Specify QCA tag size to make sure there is headroom.
> 
>  		return NULL;
>  
>  	skb_push(skb, QCA_HDR_LEN);

Hi Per

Yes, your change looks correct. ar9331_tag_xmit() also seems to have
the same problem.

Do you want to submit a patch?

Thanks

    Andrew