]> git.baikalelectronics.ru Git - kernel.git/commit
[S390] fix io_return critical section cleanup
authorMartin Schwidefsky <schwidefsky@de.ibm.com>
Fri, 9 Apr 2010 11:43:00 +0000 (13:43 +0200)
committerMartin Schwidefsky <sky@mschwide.boeblingen.de.ibm.com>
Fri, 9 Apr 2010 11:43:02 +0000 (13:43 +0200)
commit4c31af0e5a5c41d08cd3e2ef04cec82fc16b9226
tree92601341680bf89e42ed0073bd5086d16405356c
parent0828c43a7260534c02a8cf621bb0e9b64800b837
[S390] fix io_return critical section cleanup

If a machine check interrupts the io interrupt handler on one of the
instructions between io_return and io_leave the critical section
cleanup code will move the return psw to io_work_loop. By doing that
the switch from the asynchronous interrupt stack to the process stack
is skipped. If e.g. TIF_NEED_RESCHED is set things break because
the scheduler is called with the asynchronous interrupts stack.
Moving the psw back to io_return instead fixes the problem.

Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
arch/s390/kernel/entry.S
arch/s390/kernel/entry64.S