[PATCH v3] nvmet-rdma: Correctly handle RDMA device hot removal
Bart Van Assche
bart.vanassche at sandisk.com
Mon Aug 1 08:09:59 PDT 2016
On 08/01/16 07:44, Bart Van Assche wrote:
> On 08/01/16 04:15, Christoph Hellwig wrote:
>> This looks reasonable to me, but a little question below:
>>
>>> @@ -1442,7 +1491,8 @@ static void nvmet_rdma_remove_port(struct
>>> nvmet_port *port)
>>> {
>>> struct rdma_cm_id *cm_id = port->priv;
>>>
>>> - rdma_destroy_id(cm_id);
>>> + if (cm_id)
>>> + rdma_destroy_id(cm_id);
>>> }
>>
>> How is ->remove_port synchronized vs the RDMA/CM event handler?
>
> rdma_destroy_id() waits until active RDMA/CM callbacks have finished. Is
> that sufficient or is further synchronization needed?
(replying to my own e-mail)
Please ignore my e-mail. I just realized that Christoph's question was
about synchronization of nvmet_rdma_remove_port() versus the RDMA/CM
event handler instead of just rdma_destroy_id().
Bart.
More information about the Linux-nvme
mailing list