IB/mad: Fix oopsable race on device removal
authorMichael S. Tsirkin <mst@mellanox.co.il>
Mon, 20 Mar 2006 18:08:25 +0000 (10:08 -0800)
committerRoland Dreier <rolandd@cisco.com>
Mon, 20 Mar 2006 18:08:25 +0000 (10:08 -0800)
commitdc05980dd736bfbe5b2524b463e5f098e67a64e9
tree87f212e24ee4362a5e670418b32bd0c959d3f1c6
parentbf17c1c7cc9250d7c3c01b0ae898aefa1853535a
IB/mad: Fix oopsable race on device removal

Fix an oopsable race debugged by Eli Cohen <eli@mellanox.co.il>:
After removing the port from port_list, ib_mad_port_close flushes
port_priv->wq before destroying the special QPs. This means that a
completion event could arrive, and queue a new work in this work queue
after flush.

This patch also removes an unnecessary flush_workqueue():
destroy_workqueue() already includes a flush.

Signed-off-by: Michael S. Tsirkin <mst@mellanox.co.il>
Signed-off-by: Roland Dreier <rolandd@cisco.com>
drivers/infiniband/core/mad.c