Re: [PATCH 1/2] iio: adc: Use complete() instead of complete_all()

From: Jonathan Cameron
Date: Mon Aug 15 2016 - 13:02:19 EST


On 04/08/16 14:07, Daniel Wagner wrote:
> From: Daniel Wagner <daniel.wagner@xxxxxxxxxxxx>
>
> 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
>
> nau7802_read_irq()
> reinit_completion()
> nau7802_read_conversion()
> wait_for_completion_interruptible_timeout()
>
> nau7802_eoc_trigger()
> complete()
>
> Signed-off-by: Daniel Wagner <daniel.wagner@xxxxxxxxxxxx>
Applied to the togreg branch of iio.git - initially pushed
out as testing for the autobuilders to play with it.

Thanks,

Jonathan
> ---
> drivers/iio/adc/nau7802.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/iio/adc/nau7802.c b/drivers/iio/adc/nau7802.c
> index db9b829..08f4466 100644
> --- a/drivers/iio/adc/nau7802.c
> +++ b/drivers/iio/adc/nau7802.c
> @@ -197,7 +197,7 @@ static irqreturn_t nau7802_eoc_trigger(int irq, void *private)
> if (st->conversion_count < NAU7802_MIN_CONVERSIONS)
> st->conversion_count++;
> if (st->conversion_count >= NAU7802_MIN_CONVERSIONS)
> - complete_all(&st->value_ok);
> + complete(&st->value_ok);
>
> return IRQ_HANDLED;
> }
>