[S390] Use del_timer instead of del_timer_sync
authorMichael Holzheu <holzheu@linux.vnet.ibm.com>
Mon, 22 Jun 2009 10:08:09 +0000 (12:08 +0200)
committerMartin Schwidefsky <schwidefsky@de.ibm.com>
Mon, 22 Jun 2009 10:08:19 +0000 (12:08 +0200)
When syncing the sclp console queue, we call del_timer_sync() while holding
the "sclp_con_lock" spinlock. This lock is also taken in the timer function
"sclp_console_timeout". Therefore the sync version of del_timer() cannot be
used here. Because the synchronous deletion of the timer is only needed
in the suspend callback and in that case only one CPU is remaining and
therefore it is not possible that the timer function is running in parallel,
we can safely use del_timer() instead of del_timer_sync().

Signed-off-by: Michael Holzheu <holzheu@linux.vnet.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
drivers/s390/char/sclp_con.c

index fb54e7e47e59a80e0a97eb8779fcb73ecfc872e1..ad698d30cb3b5db6dbfb52e147fa1f60592c07b9 100644 (file)
@@ -109,7 +109,7 @@ static void sclp_console_sync_queue(void)
 
        spin_lock_irqsave(&sclp_con_lock, flags);
        if (timer_pending(&sclp_con_timer))
-               del_timer_sync(&sclp_con_timer);
+               del_timer(&sclp_con_timer);
        while (sclp_con_queue_running) {
                spin_unlock_irqrestore(&sclp_con_lock, flags);
                sclp_sync_wait();