]> git.baikalelectronics.ru Git - kernel.git/commit
s390/cputime: fix incorrect system time
authorMartin Schwidefsky <schwidefsky@de.ibm.com>
Tue, 2 May 2017 11:36:00 +0000 (13:36 +0200)
committerMartin Schwidefsky <schwidefsky@de.ibm.com>
Wed, 3 May 2017 07:08:57 +0000 (09:08 +0200)
commitb089680de01045386d8ff32929b2322a554959e9
treee7ef1fae73975159ed7886988db715af73e73d49
parent6a711a01e1bdf65fbe08f10731a2e44ee744f97a
s390/cputime: fix incorrect system time

git commit d9bd7f2607ecced6 "[S390] entry[64].S improvements" removed
the update of the exit_timer lowcore field from the critical section
cleanup of the .Lsysc_restore/.Lsysc_done and .Lio_restore/.Lio_done
blocks. If the PSW is updated by the critical section cleanup to point to
user space again, the interrupt entry code will do a vtime calculation
after the cleanup completed with an exit_timer value which has *not* been
updated. Due to this incorrect system time deltas are calculated.

If an interrupt occured with an old PSW between .Lsysc_restore/.Lsysc_done
or .Lio_restore/.Lio_done update __LC_EXIT_TIMER with the system entry
time of the interrupt.

Cc: stable@vger.kernel.org # 3.3+
Tested-by: Christian Borntraeger <borntraeger@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
arch/s390/kernel/entry.S