diff options
Diffstat (limited to 'net/openvswitch/vport-internal_dev.c')
-rw-r--r-- | net/openvswitch/vport-internal_dev.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/net/openvswitch/vport-internal_dev.c b/net/openvswitch/vport-internal_dev.c index b6b1d7daa3cb..4061b9ee07f7 100644 --- a/net/openvswitch/vport-internal_dev.c +++ b/net/openvswitch/vport-internal_dev.c | |||
@@ -1,5 +1,5 @@ | |||
1 | /* | 1 | /* |
2 | * Copyright (c) 2007-2011 Nicira Networks. | 2 | * Copyright (c) 2007-2012 Nicira, Inc. |
3 | * | 3 | * |
4 | * This program is free software; you can redistribute it and/or | 4 | * This program is free software; you can redistribute it and/or |
5 | * modify it under the terms of version 2 of the GNU General Public | 5 | * modify it under the terms of version 2 of the GNU General Public |
@@ -24,6 +24,9 @@ | |||
24 | #include <linux/ethtool.h> | 24 | #include <linux/ethtool.h> |
25 | #include <linux/skbuff.h> | 25 | #include <linux/skbuff.h> |
26 | 26 | ||
27 | #include <net/dst.h> | ||
28 | #include <net/xfrm.h> | ||
29 | |||
27 | #include "datapath.h" | 30 | #include "datapath.h" |
28 | #include "vport-internal_dev.h" | 31 | #include "vport-internal_dev.h" |
29 | #include "vport-netdev.h" | 32 | #include "vport-netdev.h" |
@@ -209,6 +212,11 @@ static int internal_dev_recv(struct vport *vport, struct sk_buff *skb) | |||
209 | int len; | 212 | int len; |
210 | 213 | ||
211 | len = skb->len; | 214 | len = skb->len; |
215 | |||
216 | skb_dst_drop(skb); | ||
217 | nf_reset(skb); | ||
218 | secpath_reset(skb); | ||
219 | |||
212 | skb->dev = netdev; | 220 | skb->dev = netdev; |
213 | skb->pkt_type = PACKET_HOST; | 221 | skb->pkt_type = PACKET_HOST; |
214 | skb->protocol = eth_type_trans(skb, netdev); | 222 | skb->protocol = eth_type_trans(skb, netdev); |