diff options
author | Parav Pandit <parav@mellanox.com> | 2018-08-30 08:35:19 +0300 |
---|---|---|
committer | Jason Gunthorpe <jgg@mellanox.com> | 2018-09-06 22:01:59 +0300 |
commit | 954a8e3aea87e896e320cf648c1a5bbe47de443e (patch) | |
tree | fe1fb0ea23827207ef93717c4f572a7386781cc5 /Documentation/digsig.txt | |
parent | 08e74be103051861eb2c1ee52a2dcf119cde264f (diff) | |
download | linux-954a8e3aea87e896e320cf648c1a5bbe47de443e.tar.xz |
RDMA/cma: Protect cma dev list with lock
When AF_IB addresses are used during rdma_resolve_addr() a lock is not
held. A cma device can get removed while list traversal is in progress
which may lead to crash. ie
CPU0 CPU1
==== ====
rdma_resolve_addr()
cma_resolve_ib_dev()
list_for_each() cma_remove_one()
cur_dev->device mutex_lock(&lock)
list_del();
mutex_unlock(&lock);
cma_process_remove();
Therefore, hold a lock while traversing the list which avoids such
situation.
Cc: <stable@vger.kernel.org> # 3.10
Fixes: f17df3b0dede ("RDMA/cma: Add support for AF_IB to rdma_resolve_addr()")
Signed-off-by: Parav Pandit <parav@mellanox.com>
Reviewed-by: Daniel Jurgens <danielj@mellanox.com>
Signed-off-by: Leon Romanovsky <leonro@mellanox.com>
Reviewed-by: Dennis Dalessandro <dennis.dalessandro@intel.com>
Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
Diffstat (limited to 'Documentation/digsig.txt')
0 files changed, 0 insertions, 0 deletions