RDMA/cma: Simplify DEVICE_REMOVAL for internal_id
authorJason Gunthorpe <jgg@nvidia.com>
Thu, 23 Jul 2020 07:07:04 +0000 (10:07 +0300)
committerJason Gunthorpe <jgg@nvidia.com>
Wed, 29 Jul 2020 17:10:01 +0000 (14:10 -0300)
commitd54f23c09ec62670901f1a2a4712a5218522ca2b
tree130ce7ad5538758d052cedb29c53704d8a5d1f4c
parentd4f9cb5c5b224dca3ff752c1bb854250bf114944
RDMA/cma: Simplify DEVICE_REMOVAL for internal_id

cma_process_remove() triggers an unconditional rdma_destroy_id() for
internal_id's and skips the event deliver and transition through
RDMA_CM_DEVICE_REMOVAL.

This is confusing and unnecessary. internal_id always has
cma_listen_handler() as the handler, have it catch the
RDMA_CM_DEVICE_REMOVAL event and directly consume it and signal removal.

This way the FSM sequence never skips the DEVICE_REMOVAL case and the
logic in this hard to test area is simplified.

Link: https://lore.kernel.org/r/20200723070707.1771101-2-leon@kernel.org
Signed-off-by: Leon Romanovsky <leonro@mellanox.com>
Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
drivers/infiniband/core/cma.c