mirror of
https://github.com/torvalds/linux.git
synced 2026-05-28 17:13:52 +02:00
s390/sclp: Use monotonic clock in sclp_sync_wait()
sclp_sync_wait() should use the monotonic clock for the delay loop. Otherwise the code won't work correctly when the clock is changed. Signed-off-by: Sven Schnelle <svens@linux.ibm.com> Reviewed-by: Heiko Carstens <hca@linux.ibm.com> Signed-off-by: Alexander Gordeev <agordeev@linux.ibm.com>
This commit is contained in:
parent
e12570c985
commit
925f0707a6
|
|
@ -720,7 +720,7 @@ sclp_sync_wait(void)
|
|||
timeout = 0;
|
||||
if (timer_pending(&sclp_request_timer)) {
|
||||
/* Get timeout TOD value */
|
||||
timeout = get_tod_clock_fast() +
|
||||
timeout = get_tod_clock_monotonic() +
|
||||
sclp_tod_from_jiffies(sclp_request_timer.expires -
|
||||
jiffies);
|
||||
}
|
||||
|
|
@ -740,7 +740,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 (get_tod_clock_fast() > timeout && timer_delete(&sclp_request_timer))
|
||||
if (get_tod_clock_monotonic() > timeout && timer_delete(&sclp_request_timer))
|
||||
sclp_request_timer.function(&sclp_request_timer);
|
||||
cpu_relax();
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user