Messages in this thread Patch in this message | | | From | Sven Van Asbroeck <> | Subject | [PATCH] staging: fieldbus: anybus-s: fix wait_for_completion_timeout return handling | Date | Wed, 1 May 2019 10:38:12 -0400 |
| |
From: Nicholas Mc Guire <hofrat@osadl.org>
wait_for_completion_timeout() returns unsigned long (0 on timeout or remaining jiffies) not int. Assigning this return value to int may theoretically overflow (though not in this case where TIMEOUT is only HZ*2).
Fix this inconsistency by wrapping the wait_for_completion_timeout into the if().
Signed-off-by: Nicholas Mc Guire <hofrat@osadl.org> Reviewed-by: Sven Van Asbroeck <TheSven73@gmail.com> --- drivers/staging/fieldbus/anybuss/host.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-)
diff --git a/drivers/staging/fieldbus/anybuss/host.c b/drivers/staging/fieldbus/anybuss/host.c index e34d4249f5a7..a64fe03b61fa 100644 --- a/drivers/staging/fieldbus/anybuss/host.c +++ b/drivers/staging/fieldbus/anybuss/host.c @@ -1325,11 +1325,10 @@ 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; + } /* * according to the anybus docs, we're allowed to read these * without handshaking / reserving the area -- 2.17.1
| |