]> git.baikalelectronics.ru Git - kernel.git/commit
IPoIB: Fix hang in ipoib_flush_paths()
authorYossi Etigin <yosefe@Voltaire.COM>
Wed, 12 Nov 2008 18:24:38 +0000 (10:24 -0800)
committerRoland Dreier <rolandd@cisco.com>
Wed, 12 Nov 2008 18:24:38 +0000 (10:24 -0800)
commit68fa9fcad01359d0ac9b1e0c4dca72a5613bf985
tree440fda184cac17d6d347f031d2fcff6a995eb41c
parent584367f7544529e8722590010787fe46f10825ed
IPoIB: Fix hang in ipoib_flush_paths()

ipoib_flush_paths() can hang during an SM up/down loop: if
path_rec_start() fails (for instance, because there is no sm_ah), the
path is still added to the path list by neigh_add_path().  Then,
ipoib_flush_paths() will wait for path->done, but it will never
complete because the request was not issued at all.  Fix this by
completing path->done if issuing the query fails.

This fixes <https://bugs.openfabrics.org/show_bug.cgi?id=1329>.

Signed-off-by: Yossi Etigin <yosefe@voltaire.com>
Signed-off-by: Roland Dreier <rolandd@cisco.com>
drivers/infiniband/ulp/ipoib/ipoib_main.c