vlan: should take into account needed_headroom

Commit c95b819ad7 (gre: Use needed_headroom)
made gre use needed_headroom instead of hard_header_len

This uncover a bug in vlan code.

We should make sure vlan devices take into account their
real_dev->needed_headroom or we risk a crash in ipgre_header(), because
we dont have enough room to push IP header in skb.

Reported-by: Diddi Oscarsson <diddi@diddi.se>
Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com>
Cc: Patrick McHardy <kaber@trash.net>
Cc: Herbert Xu <herbert@gondor.apana.org.au>
Acked-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: David S. Miller <davem@davemloft.net>

authored by Eric Dumazet and committed by David S. Miller d870bfb9 3a7da39d

+1
+1
net/8021q/vlan_dev.c
··· 720 dev->fcoe_ddp_xid = real_dev->fcoe_ddp_xid; 721 #endif 722 723 if (real_dev->features & NETIF_F_HW_VLAN_TX) { 724 dev->header_ops = real_dev->header_ops; 725 dev->hard_header_len = real_dev->hard_header_len;
··· 720 dev->fcoe_ddp_xid = real_dev->fcoe_ddp_xid; 721 #endif 722 723 + dev->needed_headroom = real_dev->needed_headroom; 724 if (real_dev->features & NETIF_F_HW_VLAN_TX) { 725 dev->header_ops = real_dev->header_ops; 726 dev->hard_header_len = real_dev->hard_header_len;