[ovs-dev] [PATCH 18/31] fixup: Fix locking in netdev-native-tnl.
Ben Pfaff
blp at ovn.org
Mon Jun 12 22:28:43 UTC 2017
Locks weren't always released on error paths.
Signed-off-by: Ben Pfaff <blp at ovn.org>
---
lib/netdev-native-tnl.c | 11 +++++++----
1 file changed, 7 insertions(+), 4 deletions(-)
diff --git a/lib/netdev-native-tnl.c b/lib/netdev-native-tnl.c
index 658c871015f9..515b9948cabb 100644
--- a/lib/netdev-native-tnl.c
+++ b/lib/netdev-native-tnl.c
@@ -468,6 +468,7 @@ netdev_gre_build_header(const struct netdev *netdev,
} else if (pt_ns(params->flow->packet_type) == OFPHTN_ETHERTYPE) {
greh->protocol = pt_ns_type_be(params->flow->packet_type);
} else {
+ ovs_mutex_unlock(&dev->mutex);
return 1;
}
greh->flags = 0;
@@ -591,12 +592,10 @@ netdev_vxlan_build_header(const struct netdev *netdev,
vxh->vx_gpe.next_protocol = VXLAN_GPE_NP_ETHERNET;
break;
default:
- /* Drop packet. */
- return 1;
- break;
+ goto drop;
}
} else {
- return 1;
+ goto drop;
}
} else {
put_16aligned_be32(&vxh->vx_flags, htonl(VXLAN_FLAGS));
@@ -608,6 +607,10 @@ netdev_vxlan_build_header(const struct netdev *netdev,
data->header_len += sizeof *vxh;
data->tnl_type = OVS_VPORT_TYPE_VXLAN;
return 0;
+
+drop:
+ ovs_mutex_unlock(&dev->mutex);
+ return 1;
}
struct dp_packet *
--
2.10.2
More information about the dev
mailing list