]> git.baikalelectronics.ru Git - kernel.git/commit
IB/ipoib: Change list_del to list_del_init in the tx object
authorFeras Daoud <ferasda@mellanox.com>
Wed, 28 Dec 2016 12:47:28 +0000 (14:47 +0200)
committerDoug Ledford <dledford@redhat.com>
Thu, 12 Jan 2017 19:01:06 +0000 (14:01 -0500)
commit04c563ad08a215342a46efc110e1c14ef09136d4
treefb61bc7a58ddab779bf5bfa8e306847b521ba861
parent2325e51c6479ab7c78f60be7e2e1fc1e59118810
IB/ipoib: Change list_del to list_del_init in the tx object

Since ipoib_cm_tx_start function and ipoib_cm_tx_reap function
belong to different work queues, they can run in parallel.
In this case if ipoib_cm_tx_reap calls list_del and release the
lock, ipoib_cm_tx_start may acquire it and call list_del_init
on the already deleted object.
Changing list_del to list_del_init in ipoib_cm_tx_reap fixes the problem.

Fixes: 095322ab8fd9 ("IPoIB: Connected mode experimental support")
Signed-off-by: Feras Daoud <ferasda@mellanox.com>
Signed-off-by: Erez Shitrit <erezsh@mellanox.com>
Reviewed-by: Alex Vesker <valex@mellanox.com>
Signed-off-by: Leon Romanovsky <leon@kernel.org>
Reviewed-by: Yuval Shaia <yuval.shaia@oracle.com>
Signed-off-by: Doug Ledford <dledford@redhat.com>
drivers/infiniband/ulp/ipoib/ipoib_cm.c