"dev" <dev-boun...@openvswitch.org> wrote on 04/22/2016 07:04:09 PM:
> From: Ben Pfaff <b...@ovn.org> > To: dev@openvswitch.org > Cc: Ben Pfaff <b...@ovn.org> > Date: 04/22/2016 07:04 PM > Subject: [ovs-dev] [PATCH 2/2] netdev: Fix potential deadlock. > Sent by: "dev" <dev-boun...@openvswitch.org> > > Until now, netdev_class_mutex and route_table_mutex could be taken in > either order: > > * netdev_run() takes netdev_class_mutex, then netdev_vport_run() calls > route_table_run(), which takes route_table_mutex. > > * route_table_init() takes route_table_mutex and then eventually calls > netdev_open(), which takes netdev_class_mutex. > > This commit fixes the problem by converting the netdev_classes hmap, > protected by netdev_class_mutex, into a cmap protected on the read > side by RCU. Only a very small amount of code actually writes to the > cmap in question, so it's a lot easier to understand the locking rules > at that point. In particular, there's no need to take netdev_class_mutex > from either netdev_run() or netdev_open(), so neither of the code paths > above determines a lock ordering any longer. > > Reported-by: William Tu <u9012...@gmail.com> > Reported-at: http://openvswitch.org/pipermail/discuss/2016-February/ > 020216.html > Signed-off-by: Ben Pfaff <b...@ovn.org> Yep, this one too... Acked-by: Ryan Moats <rmo...@us.ibm.com> _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev