IPoIB: Move ipoib_ib_dev_flush() to ipoib workqueue
authorJack Morgenstein <jackm@mellanox.co.il>
Mon, 20 Mar 2006 18:08:24 +0000 (10:08 -0800)
committerRoland Dreier <rolandd@cisco.com>
Mon, 20 Mar 2006 18:08:24 +0000 (10:08 -0800)
commit0b3ea0829cbcdaee6e018a83a2949ef458213f3b
tree3e86dc70e4b71b1de1e9ab2df319b014dd242f7c
parent8b9ab02b690e988f19c9d740ef642d7d833d23d5
IPoIB: Move ipoib_ib_dev_flush() to ipoib workqueue

Move ipoib_ib_dev_flush() to ipoib's workqueue.  This keeps it ordered
with respect to other work scheduled by the ipoib driver.  This fixes
problems with races, for example:
 - ipoib_ib_dev_flush() has started running because of an IB event
 - user does ifconfig ib0 down
 - ipoib_mcast_stop_thread() gets called twice and waits for the same
   completion twice

Signed-off-by: Jack Morgenstein <jackm@mellanox.co.il>
Signed-off-by: Michael S. Tsirkin <mst@mellanox.co.il>
Signed-off-by: Roland Dreier <rolandd@cisco.com>
drivers/infiniband/ulp/ipoib/ipoib.h
drivers/infiniband/ulp/ipoib/ipoib_ib.c
drivers/infiniband/ulp/ipoib/ipoib_main.c
drivers/infiniband/ulp/ipoib/ipoib_verbs.c