aboutsummaryrefslogtreecommitdiffstats
path: root/net/ipv4/gre.c
diff options
context:
space:
mode:
authorPravin B Shelar <pshelar@nicira.com>2013-05-07 20:41:07 +0000
committerDavid S. Miller <davem@davemloft.net>2013-05-08 13:13:30 -0700
commit19acc327258ac5bcd0f31c07853e6d9784010fb4 (patch)
tree4079bd2f20e09ebc1f9b23b2eef4ec6976801c74 /net/ipv4/gre.c
parentnet: fec: fix kernel oops when plug/unplug cable many times (diff)
downloadlinux-dev-19acc327258ac5bcd0f31c07853e6d9784010fb4.tar.xz
linux-dev-19acc327258ac5bcd0f31c07853e6d9784010fb4.zip
gso: Handle Trans-Ether-Bridging protocol in skb_network_protocol()
Rather than having logic to calculate inner protocol in every tunnel gso handler move it to gso code. This simplifies code. Cc: Eric Dumazet <eric.dumazet@gmail.com> Cc: Cong Wang <amwang@redhat.com> Cc: David S. Miller <davem@davemloft.net> Signed-off-by: Pravin B Shelar <pshelar@nicira.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/ipv4/gre.c')
-rw-r--r--net/ipv4/gre.c8
1 files changed, 1 insertions, 7 deletions
diff --git a/net/ipv4/gre.c b/net/ipv4/gre.c
index cc22363965d2..b2e805af9b87 100644
--- a/net/ipv4/gre.c
+++ b/net/ipv4/gre.c
@@ -150,13 +150,7 @@ static struct sk_buff *gre_gso_segment(struct sk_buff *skb,
csum = false;
/* setup inner skb. */
- if (greh->protocol == htons(ETH_P_TEB)) {
- struct ethhdr *eth = (struct ethhdr *)skb_inner_mac_header(skb);
- skb->protocol = eth->h_proto;
- } else {
- skb->protocol = greh->protocol;
- }
-
+ skb->protocol = greh->protocol;
skb->encapsulation = 0;
if (unlikely(!pskb_may_pull(skb, ghl)))