Skip to contentSkip to conversation

sched/wait: fix __wait_event_interruptible_lock_irq_timeout()

PATCH In review Heiko Carstens 3 participants 3 messages Oct 31, 2013 – Nov 1, 2013

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

PATCH 1/1 sched/wait: fix __wait_event_interruptible_lock_irq_timeout()

__wait_event_interruptible_lock_irq_timeout() needs the timeout parameter passed instead of "ret".
This magically compiled since the only user has a local ret variable. Luckily we got a build warning:

CC drivers/s390/scsi/zfcp_qdio.o
drivers/s390/scsi/zfcp_qdio.c: In function 'zfcp_qdio_sbal_get':
include/linux/wait.h:780:15: warning: 'ret' may be used uninitialized

         __ret = schedule_timeout(__ret);   \
               ^
drivers/s390/scsi/zfcp_qdio.c:245:7: note: 'ret' was declared here
  long ret;
       ^
---
 include/linux/wait.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
include/linux/wait.h +1 -1
index fcc968087f05..d3d033ec5313 100644
@@ -775,7 +775,7 @@ do {									\
 #define __wait_event_interruptible_lock_irq_timeout(wq, condition,	\
 						    lock, timeout)	\
 	___wait_event(wq, ___wait_cond_timeout(condition),		\
-		      TASK_INTERRUPTIBLE, 0, ret,			\
+		      TASK_INTERRUPTIBLE, 0, timeout,			\
 		      spin_unlock_irq(&lock);				\
 		      __ret = schedule_timeout(__ret);			\
 		      spin_lock_irq(&lock));
Signature · 1 line
1.8.3.4
maintainer Acked-by on v1 1/1
#1 lore raw
Quoted 8 lines · Heiko Carstens

__wait_event_interruptible_lock_irq_timeout() needs the timeout parameter passed instead of "ret".
This magically compiled since the only user has a local ret variable. Luckily we got a build warning:

CC drivers/s390/scsi/zfcp_qdio.o
drivers/s390/scsi/zfcp_qdio.c: In function 'zfcp_qdio_sbal_get':
include/linux/wait.h:780:15: warning: 'ret' may be used uninitialized

Quoted 6 lines
         __ret = schedule_timeout(__ret);   \
               ^
drivers/s390/scsi/zfcp_qdio.c:245:7: note: 'ret' was declared here
  long ret;
       ^

Urgh, sorry about that..

Quoted 20 lines
---
 include/linux/wait.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
include/linux/wait.h +1 -1
index fcc968087f05..d3d033ec5313 100644
@@ -775,7 +775,7 @@ do {									\
 #define __wait_event_interruptible_lock_irq_timeout(wq, condition,	\
 						    lock, timeout)	\
 	___wait_event(wq, ___wait_cond_timeout(condition),		\
-		      TASK_INTERRUPTIBLE, 0, ret,			\
+		      TASK_INTERRUPTIBLE, 0, timeout,			\
 		      spin_unlock_irq(&lock);				\
 		      __ret = schedule_timeout(__ret);			\
 		      spin_lock_irq(&lock));
Signature · 1 line
1.8.3.4
#2 lore raw

[tip:sched/core] sched/wait: Fix __wait_event_interruptible_lock_irq_timeout()

In reply to Heiko Carstens
sched/wait: Fix __wait_event_interruptible_lock_irq_timeout()
Commit-ID:  7d716456a0ee4e9bd63be9234f886d20382ac950
Gitweb:     http://git.kernel.org/tip/7d716456a0ee4e9bd63be9234f886d20382ac950
Author:     Heiko Carstens <[email protected]>
AuthorDate: Thu, 31 Oct 2013 12:48:14 +0100
Committer:  Ingo Molnar <[email protected]>
CommitDate: Fri, 1 Nov 2013 08:42:44 +0100

sched/wait: Fix __wait_event_interruptible_lock_irq_timeout()

__wait_event_interruptible_lock_irq_timeout() needs the timeout parameter passed instead of "ret".

This magically compiled since the only user has a local ret variable. Luckily we got a build warning:

CC drivers/s390/scsi/zfcp_qdio.o
drivers/s390/scsi/zfcp_qdio.c: In function 'zfcp_qdio_sbal_get':
include/linux/wait.h:780:15: warning: 'ret' may be used uninitialized

---
 include/linux/wait.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
include/linux/wait.h +1 -1
index 3b23afa..61939ba 100644
@@ -739,7 +739,7 @@ do {									\
 #define __wait_event_interruptible_lock_irq_timeout(wq, condition,	\
 						    lock, timeout)	\
 	___wait_event(wq, ___wait_cond_timeout(condition),		\
-		      TASK_INTERRUPTIBLE, 0, ret,			\
+		      TASK_INTERRUPTIBLE, 0, timeout,			\
 		      spin_unlock_irq(&lock);				\
 		      __ret = schedule_timeout(__ret);			\
 		      spin_lock_irq(&lock));