datapath: Avoid deadlock on dp_mutex versus kthread_stop().
authorBen Pfaff <blp@nicira.com>
Thu, 8 Jan 2009 00:57:05 +0000 (16:57 -0800)
committerBen Pfaff <blp@nicira.com>
Thu, 8 Jan 2009 21:22:56 +0000 (13:22 -0800)
commit12339817903642e1c9fe444cdf48ad31388337be
tree2581dbd3c4545c5c0720517afd7e0a4152482166
parent95ceee731ab76d8eb84669a9a285897c96217b8e
datapath: Avoid deadlock on dp_mutex versus kthread_stop().

When a datapath is deleted, del_dp() acquires dp_mutex and uses
kthread_stop() to wait for the dp_task to die.  Meanwhile, dp_task may
be waiting to acquire dp_mutex and won't die until it does so.

This commit fixes the problem by sending SIGKILL to dp_task before
call kthread_stop() and making dp_task give up if it receives a signal.
datapath/datapath.c
datapath/table-hash.c
datapath/table-linear.c