base: genlock: Use a signed long for the result from wait_timeout
interruptible_wait_timeout returns a signed long, so make sure that
we use a signed long to hold the result. Using an unsigned value would
horribly misinterpet an error such as -ERESTARTSYS.
CRs-Fixed: 341347
Change-Id: Ic0dedbadff2dbe404e68a2a78f6282b5976d05c1
Signed-off-by: Jordan Crouse <jcrouse@codeaurora.org>
diff --git a/drivers/base/genlock.c b/drivers/base/genlock.c
index 1507915..d9cd600 100644
--- a/drivers/base/genlock.c
+++ b/drivers/base/genlock.c
@@ -288,7 +288,7 @@
{
unsigned long irqflags;
int ret = 0;
- unsigned int ticks = msecs_to_jiffies(timeout);
+ unsigned long ticks = msecs_to_jiffies(timeout);
spin_lock_irqsave(&lock->lock, irqflags);
@@ -359,7 +359,7 @@
/* Wait while the lock remains in an incompatible state */
while (lock->state != _UNLOCKED) {
- unsigned int elapsed;
+ signed long elapsed;
spin_unlock_irqrestore(&lock->lock, irqflags);
@@ -373,7 +373,7 @@
goto done;
}
- ticks = elapsed;
+ ticks = (unsigned long) elapsed;
}
dolock:
@@ -447,7 +447,7 @@
struct genlock *lock;
unsigned long irqflags;
int ret = 0;
- unsigned int ticks = msecs_to_jiffies(timeout);
+ unsigned long ticks = msecs_to_jiffies(timeout);
if (IS_ERR_OR_NULL(handle)) {
GENLOCK_LOG_ERR("Invalid handle\n");
@@ -474,7 +474,7 @@
}
while (lock->state != _UNLOCKED) {
- unsigned int elapsed;
+ signed long elapsed;
spin_unlock_irqrestore(&lock->lock, irqflags);
@@ -488,7 +488,7 @@
break;
}
- ticks = elapsed;
+ ticks = (unsigned long) elapsed;
}
done: