@@ -109,6 +109,7 @@ int wl1271_ps_elp_wakeup(struct wl1271 *wl)
DECLARE_COMPLETION_ONSTACK(compl);
unsigned long flags;
int ret;
+ unsigned long timeout;
unsigned long start_time = jiffies;
bool pending = false;
@@ -145,9 +146,9 @@ int wl1271_ps_elp_wakeup(struct wl1271 *wl)
}
if (!pending) {
- ret = wait_for_completion_timeout(
+ timeout = wait_for_completion_timeout(
&compl, msecs_to_jiffies(WL1271_WAKEUP_TIMEOUT));
- if (ret == 0) {
+ if (timeout == 0) {
wl1271_error("ELP wakeup timeout!");
wl12xx_queue_recovery_work(wl);
ret = -ETIMEDOUT;
return type of wait_for_completion_timeout is unsigned long not int, this patch adds an appropriate return type and assignment. Signed-off-by: Nicholas Mc Guire <der.herr@hofr.at> --- The return type of wait_for_completion_timeout is unsigned long not int. This patch adds a separate variable of proper type for handling of the wait_for_completion_timeout. The alternative would be to fold it into the if condition and not use a separate variable like so: if (!pending) { if (!wait_for_completion_timeout( &compl, msecs_to_jiffies(WL1271_WAKEUP_TIMEOUT)) { wl1271_error("ELP wakeup timeout!"); wl12xx_queue_recovery_work(wl); ret = -ETIMEDOUT; goto err; } } not sure if this or the below solution is preferable. Patch was compile tested only for x86_64_defconfig + CONFIG_WL_TI=y, CONFIG_WLCORE=m Patch is against 3.19.0-rc5 -next-20150123 drivers/net/wireless/ti/wlcore/ps.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-)