s390: cleanup timer API use
authorYu Liao <liaoyu15@huawei.com>
Tue, 22 Mar 2022 03:00:57 +0000 (11:00 +0800)
committerVasily Gorbik <gor@linux.ibm.com>
Sun, 27 Mar 2022 20:18:39 +0000 (22:18 +0200)
cleanup the s390's use of the timer API
- del_timer() contains timer_pending() condition
- mod_timer(timer, expires) is equivalent to:

del_timer(timer);
timer->expires = expires;
add_timer(timer);

If the timer is inactive it will be activated, using add_timer() on
condition !timer_pending(&private->timer) is redundant.

Just cleanup, no logic change.

Signed-off-by: Yu Liao <liaoyu15@huawei.com>
Link: https://lore.kernel.org/r/20220322030057.1243196-1-liaoyu15@huawei.com
Signed-off-by: Heiko Carstens <hca@linux.ibm.com>
Signed-off-by: Vasily Gorbik <gor@linux.ibm.com>
drivers/s390/char/sclp.c
drivers/s390/char/sclp_con.c
drivers/s390/char/sclp_vt220.c
drivers/s390/cio/device_fsm.c
drivers/s390/cio/eadm_sch.c

index f0763e3..cb24917 100644 (file)
@@ -745,9 +745,7 @@ sclp_sync_wait(void)
        /* Loop until driver state indicates finished request */
        while (sclp_running_state != sclp_running_state_idle) {
                /* Check for expired request timer */
-               if (timer_pending(&sclp_request_timer) &&
-                   get_tod_clock_fast() > timeout &&
-                   del_timer(&sclp_request_timer))
+               if (get_tod_clock_fast() > timeout && del_timer(&sclp_request_timer))
                        sclp_request_timer.function(&sclp_request_timer);
                cpu_relax();
        }
index de02886..fe5ee26 100644 (file)
@@ -109,8 +109,7 @@ static void sclp_console_sync_queue(void)
        unsigned long flags;
 
        spin_lock_irqsave(&sclp_con_lock, flags);
-       if (timer_pending(&sclp_con_timer))
-               del_timer(&sclp_con_timer);
+       del_timer(&sclp_con_timer);
        while (sclp_con_queue_running) {
                spin_unlock_irqrestore(&sclp_con_lock, flags);
                sclp_sync_wait();
index 7bc4e4a..3b4e7e5 100644 (file)
@@ -231,8 +231,7 @@ sclp_vt220_emit_current(void)
                        list_add_tail(&sclp_vt220_current_request->list,
                                      &sclp_vt220_outqueue);
                        sclp_vt220_current_request = NULL;
-                       if (timer_pending(&sclp_vt220_timer))
-                               del_timer(&sclp_vt220_timer);
+                       del_timer(&sclp_vt220_timer);
                }
                sclp_vt220_flush_later = 0;
        }
@@ -776,8 +775,7 @@ static void __sclp_vt220_flush_buffer(void)
 
        sclp_vt220_emit_current();
        spin_lock_irqsave(&sclp_vt220_lock, flags);
-       if (timer_pending(&sclp_vt220_timer))
-               del_timer(&sclp_vt220_timer);
+       del_timer(&sclp_vt220_timer);
        while (sclp_vt220_queue_running) {
                spin_unlock_irqrestore(&sclp_vt220_lock, flags);
                sclp_sync_wait();
index 05e136c..6d63b96 100644 (file)
@@ -113,16 +113,10 @@ ccw_device_timeout(struct timer_list *t)
 void
 ccw_device_set_timeout(struct ccw_device *cdev, int expires)
 {
-       if (expires == 0) {
+       if (expires == 0)
                del_timer(&cdev->private->timer);
-               return;
-       }
-       if (timer_pending(&cdev->private->timer)) {
-               if (mod_timer(&cdev->private->timer, jiffies + expires))
-                       return;
-       }
-       cdev->private->timer.expires = jiffies + expires;
-       add_timer(&cdev->private->timer);
+       else
+               mod_timer(&cdev->private->timer, jiffies + expires);
 }
 
 int
index 8b46368..ab6a749 100644 (file)
@@ -112,16 +112,10 @@ static void eadm_subchannel_set_timeout(struct subchannel *sch, int expires)
 {
        struct eadm_private *private = get_eadm_private(sch);
 
-       if (expires == 0) {
+       if (expires == 0)
                del_timer(&private->timer);
-               return;
-       }
-       if (timer_pending(&private->timer)) {
-               if (mod_timer(&private->timer, jiffies + expires))
-                       return;
-       }
-       private->timer.expires = jiffies + expires;
-       add_timer(&private->timer);
+       else
+               mod_timer(&private->timer, jiffies + expires);
 }
 
 static void eadm_subchannel_irq(struct subchannel *sch)