s390/time: return with irqs disabled from psw_idle
Modify the psw_idle waiting logic in entry[64].S to return with interrupts disabled. This avoids potential issues with udelay and interrupt loops as interrupts are not reenabled after clock comparator interrupts. Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
This commit is contained in:
@@ -44,7 +44,6 @@ static void __udelay_disabled(unsigned long long usecs)
|
||||
do {
|
||||
set_clock_comparator(end);
|
||||
vtime_stop_cpu();
|
||||
local_irq_disable();
|
||||
} while (get_tod_clock() < end);
|
||||
lockdep_on();
|
||||
__ctl_load(cr0, 0, 0);
|
||||
@@ -64,7 +63,6 @@ static void __udelay_enabled(unsigned long long usecs)
|
||||
set_clock_comparator(end);
|
||||
}
|
||||
vtime_stop_cpu();
|
||||
local_irq_disable();
|
||||
if (clock_saved)
|
||||
local_tick_enable(clock_saved);
|
||||
} while (get_tod_clock() < end);
|
||||
|
||||
Reference in New Issue
Block a user