RDMA/siw: Fix passive connection establishment
authorBernard Metzler <bmt@zurich.ibm.com>
Fri, 28 Feb 2020 17:35:34 +0000 (18:35 +0100)
committerJason Gunthorpe <jgg@mellanox.com>
Wed, 4 Mar 2020 18:22:46 +0000 (14:22 -0400)
commit33fb27fd54465c74cbffba6315b2f043e90cec4c
tree4ef2acb644fa52c3a53f1b4438a425a1900c0b60
parent79db784e794b6e7b7fb9b1dd464a34e4c0c039af
RDMA/siw: Fix passive connection establishment

Holding the rtnl_lock while iterating a devices interface address list
potentially causes deadlocks with the cma_netdev_callback. While this was
implemented to limit the scope of a wildcard listen to addresses of the
current device only, a better solution limits the scope of the socket to
the device. This completely avoiding locking, and also results in
significant code simplification.

Fixes: c421651fa229 ("RDMA/siw: Add missing rtnl_lock around access to ifa")
Link: https://lore.kernel.org/r/20200228173534.26815-1-bmt@zurich.ibm.com
Reported-by: syzbot+55de90ab5f44172b0c90@syzkaller.appspotmail.com
Suggested-by: Jason Gunthorpe <jgg@ziepe.ca>
Signed-off-by: Bernard Metzler <bmt@zurich.ibm.com>
Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
drivers/infiniband/sw/siw/siw_cm.c