datapath: Fix deadlock in switch port removal.
authorBen Pfaff <blp@nicira.com>
Thu, 8 Jan 2009 20:25:18 +0000 (12:25 -0800)
committerBen Pfaff <blp@nicira.com>
Thu, 8 Jan 2009 21:22:56 +0000 (13:22 -0800)
commita9744caf6347f3af54362d39465011b9bf17a61d
tree284dfaa8cc7d5f8938c484855e7ecb4b63151252
parent12339817903642e1c9fe444cdf48ad31388337be
datapath: Fix deadlock in switch port removal.

dp_del_switch_port() cancels the port_task and waits for
it to finish, but the port_task requires the RTNL lock
to complete, which dp_del_switch_port() holds, thus a
deadlock.

This commit fixes the problem, by deleting the port_task
entirely and moving its work into secchan.
datapath/datapath.c
datapath/datapath.h
secchan/port-watcher.c
udatapath/datapath.c