Re: [PATCH V2] staging: fieldbus: anybus-s: consolidate wait_for_completion_timeout return handling

From: Sven Van Asbroeck
Date: Sun Apr 28 2019 - 10:28:09 EST


Looking good, but see inline.

On Sat, Apr 27, 2019 at 10:39 PM Nicholas Mc Guire <hofrat@xxxxxxxxx> wrote:
>
> wait_for_completion_timeout() returns unsigned long (0 on timeout or
> remaining jiffies) not int - so rather than introducing an additional
> variable simply wrap the completion into an if().

Your commit message could be improved:

- the headline should make clear what this is, e.g. add functionality,
bugfix, shutting up sparse, etc. Using the verb 'fix' would be
good here.

- in case of a bugfix, it would make sense to write a short
paragraph about what can go wrong, followed by a short
paragraph outlining what the patch does to fix it.

>
> Signed-off-by: Nicholas Mc Guire <hofrat@xxxxxxxxx>
> ---
>
> Problem located with experimental API conformance checking cocci script
>
> V2: The original patch's logic was wrong as it was skipping the
> fall-through if so using the fix proposed by Sven Van Asbroeck
> <thesven73@xxxxxxxxx> - This solution also eliminates the need
> to introduce an additional variable - Thanks !
>
> Patch was compile-tested with. x86_64_defconfig + FIELDBUS_DEV=m,
> HMS_ANYBUSS_BUS=m
> (with an unrelated sparse warnings (cast to restricted __be16))
>
> Patch is against 5.1-rc6 (localversion-next is next-20190426)
>
> drivers/staging/fieldbus/anybuss/host.c | 6 +++---
> 1 file changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/staging/fieldbus/anybuss/host.c b/drivers/staging/fieldbus/anybuss/host.c
> index e34d424..6227daf 100644
> --- a/drivers/staging/fieldbus/anybuss/host.c
> +++ b/drivers/staging/fieldbus/anybuss/host.c
> @@ -1325,11 +1325,11 @@ anybuss_host_common_probe(struct device *dev,
> * interrupt came in: ready to go !
> */
> reset_deassert(cd);
> - ret = wait_for_completion_timeout(&cd->card_boot, TIMEOUT);
> - if (ret == 0)
> + if (!wait_for_completion_timeout(&cd->card_boot, TIMEOUT)) {
> ret = -ETIMEDOUT;
> - if (ret < 0)
> goto err_reset;
> + }
> +

Nit: why add a blank line here?

> /*
> * according to the anybus docs, we're allowed to read these
> * without handshaking / reserving the area
> --
> 2.1.4
>