On 04/08/16 14:07, Daniel Wagner wrote:
> From: Daniel Wagner <[email protected]>
> 
> There is only one waiter for the completion, therefore there
> is no need to use complete_all(). Let's make that clear by
> using complete() instead of complete_all().
> 
> The usage pattern of the completion is:
> 
> waiter context                          waker context
> 
> sx9500_read_proximity()
>   sx9500_inc_chan_users()
>   sx9500_inc_data_rdy_users()
>   wait_for_completion_interruptible()
> 
>                                         s9500_irq_thread_handler()
>                                           complete()
> 
>   reinit_completion()
> 
> Signed-off-by: Daniel Wagner <[email protected]>
Applied to the togreg branch of iio.git - initially pushed
out as testing for the autobuilders to play with it.

Thanks,

Jonathan
> ---
>  drivers/iio/proximity/sx9500.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/iio/proximity/sx9500.c b/drivers/iio/proximity/sx9500.c
> index 1d74b3a..6f84f53 100644
> --- a/drivers/iio/proximity/sx9500.c
> +++ b/drivers/iio/proximity/sx9500.c
> @@ -516,7 +516,7 @@ static irqreturn_t sx9500_irq_thread_handler(int irq, 
> void *private)
>               sx9500_push_events(indio_dev);
>  
>       if (val & SX9500_CONVDONE_IRQ)
> -             complete_all(&data->completion);
> +             complete(&data->completion);
>  
>  out:
>       mutex_unlock(&data->mutex);
> 

Reply via email to