From 3e2e9cf9ee67086d9c43e03bd6041a9d1bce9473 Mon Sep 17 00:00:00 2001 From: Nicholas Mc Guire Date: Wed, 1 May 2019 10:38:12 -0400 Subject: staging: fieldbus: anybus-s: fix wait_for_completion_timeout return handling 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 Reviewed-by: Sven Van Asbroeck Signed-off-by: Greg Kroah-Hartman --- drivers/staging/fieldbus/anybuss/host.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) (limited to 'drivers/staging/fieldbus') diff --git a/drivers/staging/fieldbus/anybuss/host.c b/drivers/staging/fieldbus/anybuss/host.c index dc692f69df84..f69dc4930457 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 -- cgit v1.2.3-59-g8ed1b