]> git.proxmox.com Git - mirror_ubuntu-artful-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)
commit07a63cbe8bcb6ba72fb989dcab1ec55ec6c36c7e
treee7ef1fae73975159ed7886988db715af73e73d49
parent89c9fea3c8034cdb2fd745f551cde0b507fd6893
s390/cputime: fix incorrect system time

git commit c5328901aa1db134 "[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