diff options
| author | Martin Schwidefsky <schwidefsky@de.ibm.com> | 2013-12-02 12:00:36 -0500 |
|---|---|---|
| committer | Martin Schwidefsky <schwidefsky@de.ibm.com> | 2013-12-02 12:15:25 -0500 |
| commit | ca5de58ba746b08c920b2024aaf01aa1500b110d (patch) | |
| tree | 5e1cc6746188775e633dbfa2633ebf1acf79c1d0 /arch/s390/kernel/vdso64 | |
| parent | b5e64b3de7fdd1db0a12871f7114fc1da899df8e (diff) | |
s390/time,vdso: fix clock_gettime for CLOCK_MONOTONIC
With git commit 79c74ecbebf76732f91b82a62ce7fc8a88326962
"s390/time,vdso: convert to the new update_vsyscall interface"
the new update_vsyscall function already does the sum of xtime
and wall_to_monotonic. The old update_vsyscall function only
copied the wall_to_monotonic offset. The vdso code needs to be
modified to take this into consideration.
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Diffstat (limited to 'arch/s390/kernel/vdso64')
| -rw-r--r-- | arch/s390/kernel/vdso64/clock_gettime.S | 6 |
1 files changed, 2 insertions, 4 deletions
diff --git a/arch/s390/kernel/vdso64/clock_gettime.S b/arch/s390/kernel/vdso64/clock_gettime.S index 4007007a9652..91940ed33a4a 100644 --- a/arch/s390/kernel/vdso64/clock_gettime.S +++ b/arch/s390/kernel/vdso64/clock_gettime.S | |||
| @@ -37,13 +37,11 @@ __kernel_clock_gettime: | |||
| 37 | jnz 0b | 37 | jnz 0b |
| 38 | stck 48(%r15) /* Store TOD clock */ | 38 | stck 48(%r15) /* Store TOD clock */ |
| 39 | lgf %r2,__VDSO_TK_SHIFT(%r5) /* Timekeeper shift */ | 39 | lgf %r2,__VDSO_TK_SHIFT(%r5) /* Timekeeper shift */ |
| 40 | lg %r0,__VDSO_XTIME_SEC(%r5) /* tk->xtime_sec */ | 40 | lg %r0,__VDSO_WTOM_SEC(%r5) |
| 41 | alg %r0,__VDSO_WTOM_SEC(%r5) /* + wall_to_monotonic.sec */ | ||
| 42 | lg %r1,48(%r15) | 41 | lg %r1,48(%r15) |
| 43 | sg %r1,__VDSO_XTIME_STAMP(%r5) /* TOD - cycle_last */ | 42 | sg %r1,__VDSO_XTIME_STAMP(%r5) /* TOD - cycle_last */ |
| 44 | msgf %r1,__VDSO_TK_MULT(%r5) /* * tk->mult */ | 43 | msgf %r1,__VDSO_TK_MULT(%r5) /* * tk->mult */ |
| 45 | alg %r1,__VDSO_XTIME_NSEC(%r5) /* + tk->xtime_nsec */ | 44 | alg %r1,__VDSO_WTOM_NSEC(%r5) |
| 46 | alg %r1,__VDSO_WTOM_NSEC(%r5) /* + wall_to_monotonic.nsec */ | ||
| 47 | srlg %r1,%r1,0(%r2) /* >> tk->shift */ | 45 | srlg %r1,%r1,0(%r2) /* >> tk->shift */ |
| 48 | clg %r4,__VDSO_UPD_COUNT(%r5) /* check update counter */ | 46 | clg %r4,__VDSO_UPD_COUNT(%r5) /* check update counter */ |
| 49 | jne 0b | 47 | jne 0b |
