netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH net-next 2/4] vlan: Fix mac_len adjustment.
@ 2014-12-01 22:30 Pravin B Shelar
  2014-12-03 14:32 ` Jiri Benc
  0 siblings, 1 reply; 2+ messages in thread
From: Pravin B Shelar @ 2014-12-01 22:30 UTC (permalink / raw)
  To: davem; +Cc: netdev, Pravin B Shelar

skb_reset_mac_len() sets length according to ethernet and network
offsets, but mpls expects mac-length to be offset to mpls header (ref.
skb_mpls_header()). Therefore rather than reset we need to subtract
VLAN_HLEN from mac_len.

Signed-off-by: Pravin B Shelar <pshelar@nicira.com>
---
 net/core/skbuff.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/net/core/skbuff.c b/net/core/skbuff.c
index 92116df..c45888f 100644
--- a/net/core/skbuff.c
+++ b/net/core/skbuff.c
@@ -4178,7 +4178,7 @@ static int __skb_vlan_pop(struct sk_buff *skb, u16 *vlan_tci)
 	if (skb_network_offset(skb) < ETH_HLEN)
 		skb_set_network_header(skb, ETH_HLEN);
 
-	skb_reset_mac_len(skb);
+	skb->mac_len -= VLAN_HLEN;
 pull:
 	__skb_pull(skb, offset);
 
-- 
1.7.1

^ permalink raw reply related	[flat|nested] 2+ messages in thread

* Re: [PATCH net-next 2/4] vlan: Fix mac_len adjustment.
  2014-12-01 22:30 [PATCH net-next 2/4] vlan: Fix mac_len adjustment Pravin B Shelar
@ 2014-12-03 14:32 ` Jiri Benc
  0 siblings, 0 replies; 2+ messages in thread
From: Jiri Benc @ 2014-12-03 14:32 UTC (permalink / raw)
  To: Pravin B Shelar; +Cc: davem, netdev

On Mon,  1 Dec 2014 14:30:38 -0800, Pravin B Shelar wrote:
> skb_reset_mac_len() sets length according to ethernet and network
> offsets, but mpls expects mac-length to be offset to mpls header (ref.
> skb_mpls_header()). Therefore rather than reset we need to subtract
> VLAN_HLEN from mac_len.
> 
> Signed-off-by: Pravin B Shelar <pshelar@nicira.com>
> ---
>  net/core/skbuff.c |    2 +-
>  1 files changed, 1 insertions(+), 1 deletions(-)
> 
> diff --git a/net/core/skbuff.c b/net/core/skbuff.c
> index 92116df..c45888f 100644
> --- a/net/core/skbuff.c
> +++ b/net/core/skbuff.c
> @@ -4178,7 +4178,7 @@ static int __skb_vlan_pop(struct sk_buff *skb, u16 *vlan_tci)
>  	if (skb_network_offset(skb) < ETH_HLEN)
>  		skb_set_network_header(skb, ETH_HLEN);
>  
> -	skb_reset_mac_len(skb);
> +	skb->mac_len -= VLAN_HLEN;
>  pull:
>  	__skb_pull(skb, offset);
>  

See my previous explanation why this patch is wrong with the current
code: http://article.gmane.org/gmane.linux.network/339457

 Jiri

-- 
Jiri Benc

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2014-12-03 14:32 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-12-01 22:30 [PATCH net-next 2/4] vlan: Fix mac_len adjustment Pravin B Shelar
2014-12-03 14:32 ` Jiri Benc

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).