s390/idle: remove raw_local_irq_save()/restore() from arch_cpu_idle()
arch_cpu_idle() gets called with interrupts disabled, and psw_idle() returns with interrupts disabled. No reason to use raw_local_irq_save() / restore(). Signed-off-by: Heiko Carstens <hca@linux.ibm.com>
This commit is contained in:
parent
44292c8684
commit
7494755a9a
@ -25,18 +25,15 @@ void arch_cpu_idle(void)
|
|||||||
{
|
{
|
||||||
struct s390_idle_data *idle = this_cpu_ptr(&s390_idle);
|
struct s390_idle_data *idle = this_cpu_ptr(&s390_idle);
|
||||||
unsigned long long idle_time;
|
unsigned long long idle_time;
|
||||||
unsigned long psw_mask, flags;
|
unsigned long psw_mask;
|
||||||
|
|
||||||
|
|
||||||
/* Wait for external, I/O or machine check interrupt. */
|
/* Wait for external, I/O or machine check interrupt. */
|
||||||
psw_mask = PSW_KERNEL_BITS | PSW_MASK_WAIT | PSW_MASK_DAT |
|
psw_mask = PSW_KERNEL_BITS | PSW_MASK_WAIT | PSW_MASK_DAT |
|
||||||
PSW_MASK_IO | PSW_MASK_EXT | PSW_MASK_MCHECK;
|
PSW_MASK_IO | PSW_MASK_EXT | PSW_MASK_MCHECK;
|
||||||
clear_cpu_flag(CIF_NOHZ_DELAY);
|
clear_cpu_flag(CIF_NOHZ_DELAY);
|
||||||
|
|
||||||
raw_local_irq_save(flags);
|
/* psw_idle() returns with interrupts disabled. */
|
||||||
/* Call the assembler magic in entry.S */
|
|
||||||
psw_idle(idle, psw_mask);
|
psw_idle(idle, psw_mask);
|
||||||
raw_local_irq_restore(flags);
|
|
||||||
|
|
||||||
/* Account time spent with enabled wait psw loaded as idle time. */
|
/* Account time spent with enabled wait psw loaded as idle time. */
|
||||||
raw_write_seqcount_begin(&idle->seqcount);
|
raw_write_seqcount_begin(&idle->seqcount);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user