Re: [PATCH v2 2/8] IB/core: Replace semaphore sm_sem with completion

From: Binoy Jayan
Date: Tue Oct 25 2016 - 11:08:32 EST


On 25 October 2016 at 18:13, Jack Wang <xjtuwjp@xxxxxxxxx> wrote:
> Hi Binoy,
>
> snip
>>
>> port->ib_dev = device;
>> port->port_num = port_num;
>> - sema_init(&port->sm_sem, 1);
>> + init_completion(&port->sm_comp);
>> + complete(&port->sm_comp);
>
> Why complete here?
>
>> mutex_init(&port->file_mutex);
>> INIT_LIST_HEAD(&port->file_list);
>>
>> --
> KR,
> Jinpu


Hi Jack,

ib_umad_sm_open() calls wait_for_completion_interruptible() which comes before
ib_umad_sm_close() that calls complete(). In the initial open() there
will not be
anybody to signal the completion, so the complete is called to mark
the initial state.
I am not sure if this is the right way to do it, though.

-Binoy