This annotation would have caught the bug fixed by commit 491a67a0005347130 (ofproto-dpif-xlate: Avoid recursive acquisition of xlate_rwlock.).
Signed-off-by: Ben Pfaff <b...@nicira.com> CC: YAMAMOTO Takashi <yamam...@valinux.co.jp> --- ofproto/ofproto-dpif-xlate.c | 1 + ofproto/ofproto-dpif.h | 8 ++++++-- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/ofproto/ofproto-dpif-xlate.c b/ofproto/ofproto-dpif-xlate.c index 4747ea7..b5b6171 100644 --- a/ofproto/ofproto-dpif-xlate.c +++ b/ofproto/ofproto-dpif-xlate.c @@ -2999,6 +2999,7 @@ actions_output_to_local_port(const struct xlate_ctx *ctx) /* Thread safe call to xlate_actions__(). */ void xlate_actions(struct xlate_in *xin, struct xlate_out *xout) + OVS_EXCLUDED(xlate_rwlock) { ovs_rwlock_rdlock(&xlate_rwlock); xlate_actions__(xin, xout); diff --git a/ofproto/ofproto-dpif.h b/ofproto/ofproto-dpif.h index 51cb38f..5da0b5d 100644 --- a/ofproto/ofproto-dpif.h +++ b/ofproto/ofproto-dpif.h @@ -1,4 +1,4 @@ -/* Copyright (c) 2009, 2010, 2011, 2012, 2013 Nicira, Inc. +/* Copyright (c) 2009, 2010, 2011, 2012, 2013, 2014 Nicira, Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -34,6 +34,9 @@ struct dpif_backer; struct OVS_LOCKABLE rule_dpif; struct OVS_LOCKABLE group_dpif; +/* For lock annotation below only. */ +extern struct ovs_rwlock xlate_rwlock; + /* Ofproto-dpif -- DPIF based ofproto implementation. * * Ofproto-dpif provides an ofproto implementation for those platforms which @@ -107,7 +110,8 @@ bool vsp_adjust_flow(const struct ofproto_dpif *, struct flow *); int ofproto_dpif_execute_actions(struct ofproto_dpif *, const struct flow *, struct rule_dpif *, const struct ofpact *, - size_t ofpacts_len, struct ofpbuf *); + size_t ofpacts_len, struct ofpbuf *) + OVS_EXCLUDED(xlate_rwlock); void ofproto_dpif_send_packet_in(struct ofproto_dpif *, struct ofproto_packet_in *); int ofproto_dpif_send_packet(const struct ofport_dpif *, struct ofpbuf *); -- 1.7.10.4 _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev