projects
/
openvswitch
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
datapath: Use NULL for null pointer in compat code.
[openvswitch]
/
datapath
/
flow.c
diff --git
a/datapath/flow.c
b/datapath/flow.c
index 5cf0d54a7839860519c9f7337e1890f220c8db95..fb339e73e581a6379a726c14fc0ca592b45ab92b 100644
(file)
--- a/
datapath/flow.c
+++ b/
datapath/flow.c
@@
-175,7
+175,7
@@
void flow_put(struct sw_flow *flow)
return;
if (atomic_dec_and_test(&flow->refcnt)) {
return;
if (atomic_dec_and_test(&flow->refcnt)) {
- kfree(flow->sf_acts);
+ kfree(
(struct sf_flow_acts __force *)
flow->sf_acts);
kmem_cache_free(flow_cache, flow);
}
}
kmem_cache_free(flow_cache, flow);
}
}
@@
-333,7
+333,8
@@
int flow_extract(struct sk_buff *skb, u16 in_port, struct odp_flow_key *key,
key->nw_proto = nh->protocol;
/* Transport layer. */
key->nw_proto = nh->protocol;
/* Transport layer. */
- if (!(nh->frag_off & htons(IP_MF | IP_OFFSET))) {
+ if (!(nh->frag_off & htons(IP_MF | IP_OFFSET)) &&
+ !(skb_shinfo(skb)->gso_type & SKB_GSO_UDP)) {
if (key->nw_proto == IPPROTO_TCP) {
if (tcphdr_ok(skb)) {
struct tcphdr *tcp = tcp_hdr(skb);
if (key->nw_proto == IPPROTO_TCP) {
if (tcphdr_ok(skb)) {
struct tcphdr *tcp = tcp_hdr(skb);