diff options
author | Nicholas Mc Guire <hofrat@osadl.org> | 2019-05-01 10:38:12 -0400 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2019-05-01 16:45:03 +0200 |
commit | 3e2e9cf9ee67086d9c43e03bd6041a9d1bce9473 (patch) | |
tree | 35af929064d97b3d1775c43461251886cd9ced1d /drivers/staging/fieldbus | |
parent | 91b6cb7216cd8bad027bc9ef88e2834786c8eeaf (diff) |
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 <hofrat@osadl.org>
Reviewed-by: Sven Van Asbroeck <TheSven73@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/staging/fieldbus')
-rw-r--r-- | drivers/staging/fieldbus/anybuss/host.c | 5 |
1 files changed, 2 insertions, 3 deletions
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 |