[S390] idle: Fix machine check handling in idle loop.
If a machine check handling is pending when the idle loop is entered default_idle will be left with timer ticks and virtual timer disabled. Fix this by "calling" the idle_chain. Also a BUG_ON(!in_interrupt) in start_hz_timer must be removed since the function now gets called from non interrupt context as well. Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com> Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
This commit is contained in:
committed by
Martin Schwidefsky
parent
9361a492cd
commit
5ccd0e43bb
@@ -152,6 +152,10 @@ static void default_idle(void)
|
||||
local_mcck_disable();
|
||||
if (test_thread_flag(TIF_MCCK_PENDING)) {
|
||||
local_mcck_enable();
|
||||
/* disable monitor call class 0 */
|
||||
__ctl_clear_bit(8, 15);
|
||||
atomic_notifier_call_chain(&idle_chain, S390_CPU_NOT_IDLE,
|
||||
hcpu);
|
||||
local_irq_enable();
|
||||
s390_handle_mcck();
|
||||
return;
|
||||
|
Reference in New Issue
Block a user