···7979 return uval;8080}81818282+#ifdef CONFIG_ISA_ARCV28383+8284void arch_cpu_idle(void)8385{8484- /* sleep, but enable all interrupts before committing */8686+ /* Re-enable interrupts <= default irq priority before commiting SLEEP */8787+ const unsigned int arg = 0x10 | ARCV2_IRQ_DEF_PRIO;8888+8589 __asm__ __volatile__(8690 "sleep %0 \n"8791 :8888- :"I"(ISA_SLEEP_ARG)); /* can't be "r" has to be embedded const */9292+ :"I"(arg)); /* can't be "r" has to be embedded const */8993}9494+9595+#else9696+9797+void arch_cpu_idle(void)9898+{9999+ /* sleep, but enable both set E1/E2 (levels of interrutps) before committing */100100+ __asm__ __volatile__("sleep 0x3 \n");101101+}102102+103103+#endif9010491105asmlinkage void ret_from_fork(void);92106