ofproto-dpif-xlate: Fix mac learning deadlock.
authorEthan Jackson <ethan@nicira.com>
Wed, 4 Sep 2013 00:34:00 +0000 (17:34 -0700)
committerEthan Jackson <ethan@nicira.com>
Wed, 4 Sep 2013 00:56:03 +0000 (17:56 -0700)
commit60c2f2e32ed6355d485555f029111c2cc475f5ed
tree89ea3a9304eed29f015ddee9214a05e1f72b63ac
parentb175497e9b5ca4fa56d1aff3ab367baa5a221af6
ofproto-dpif-xlate: Fix mac learning deadlock.

xlate_normal() held the mac_learning lock while calling
output_normal().  When running with patch ports, this could cause
xlate_actions() to be called again, possibly attempting to take a
write lock on the same learning table causing a deadlock.  This patch
solves the problem by holding the lock for a very brief period of
time.

Bug #19423.
Signed-off-by: Ethan Jackson <ethan@nicira.com>
Acked-by: Justin Pettit <jpettit@nicira.com>
ofproto/ofproto-dpif-xlate.c