projects
/
openvswitch
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
tests: Fix intermittent failure in ovs-monitor-ipsec test.
[openvswitch]
/
datapath
/
vport-capwap.c
diff --git
a/datapath/vport-capwap.c
b/datapath/vport-capwap.c
index 76db8a737e219188bcb5e23a6db15a83598a29c6..8d78b6d10df0d77772b473567e784c8fdc93792c 100644
(file)
--- a/
datapath/vport-capwap.c
+++ b/
datapath/vport-capwap.c
@@
-334,8
+334,8
@@
static int capwap_rcv(struct sock *sk, struct sk_buff *skb)
goto out;
iph = ip_hdr(skb);
goto out;
iph = ip_hdr(skb);
- vport = tnl_find_port(iph->daddr, iph->saddr, key,
-
TNL_T_PROTO_CAPWAP | TNL_T_KEY_EITHER,
&mutable);
+ vport = tnl_find_port(iph->daddr, iph->saddr, key,
TNL_T_PROTO_CAPWAP,
+ &mutable);
if (unlikely(!vport)) {
icmp_send(skb, ICMP_DEST_UNREACH, ICMP_PORT_UNREACH, 0);
goto error;
if (unlikely(!vport)) {
icmp_send(skb, ICMP_DEST_UNREACH, ICMP_PORT_UNREACH, 0);
goto error;
@@
-507,13
+507,13
@@
static struct sk_buff *fragment(struct sk_buff *skb, const struct vport *vport,
remaining -= frag_size;
}
remaining -= frag_size;
}
- goto out;
+ consume_skb(skb);
+ return result;
error:
tnl_free_linked_skbs(result);
error:
tnl_free_linked_skbs(result);
-out:
kfree_skb(skb);
kfree_skb(skb);
- return
result
;
+ return
NULL
;
}
/* All of the following functions relate to fragmentation reassembly. */
}
/* All of the following functions relate to fragmentation reassembly. */