From: Martin Schwidefsky Date: Tue, 15 May 2012 07:20:06 +0000 (+0200) Subject: s390: fix race on TIF_MCCK_PENDING X-Git-Tag: v3.5-rc1~189^2~16 X-Git-Url: http://git.openpandora.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=eda0c6d6b04d3cf72f5e8d656e39bffe3568e6db;p=pandora-kernel.git s390: fix race on TIF_MCCK_PENDING There is a small race window in the __switch_to code in regard to the transfer of the TIF_MCCK_PENDING bit from the previous to the next task. The bit is transferred before the task struct pointer and the thread-info pointer for the next task has been stored to lowcore. If a machine check sets the TIF_MCCK_PENDING bit between the transfer code and the store of current/thread_info the bit is still set for the previous task. And if the previous task has terminated it can get lost. The effect is that a pending CRW is not retrieved until the next machine checks sets TIF_MCCK_PENDING. To fix this reorder __switch_to to first store the task struct and thread-info pointer and then do the transfer of the bit. Signed-off-by: Martin Schwidefsky --- Reading git-diff-tree failed