Loading arch/arm64/include/asm/assembler.h +16 −0 Original line number Diff line number Diff line Loading @@ -745,6 +745,22 @@ USER(\label, ic ivau, \tmp2) // invalidate I line PoU .Lyield_out_\@ : .endm /* * Check whether preempt-disabled code should yield as soon as it * is able. This is the case if re-enabling preemption a single * time results in a preempt count of zero, and the TIF_NEED_RESCHED * flag is set. (Note that the latter is stored negated in the * top word of the thread_info::preempt_count field) */ .macro cond_yield, lbl:req, tmp:req #ifdef CONFIG_PREEMPTION get_current_task \tmp ldr \tmp, [\tmp, #TSK_TI_PREEMPT] sub \tmp, \tmp, #PREEMPT_DISABLE_OFFSET cbz \tmp, \lbl #endif .endm /* * This macro emits a program property note section identifying * architecture features which require special handling, mainly for Loading Loading
arch/arm64/include/asm/assembler.h +16 −0 Original line number Diff line number Diff line Loading @@ -745,6 +745,22 @@ USER(\label, ic ivau, \tmp2) // invalidate I line PoU .Lyield_out_\@ : .endm /* * Check whether preempt-disabled code should yield as soon as it * is able. This is the case if re-enabling preemption a single * time results in a preempt count of zero, and the TIF_NEED_RESCHED * flag is set. (Note that the latter is stored negated in the * top word of the thread_info::preempt_count field) */ .macro cond_yield, lbl:req, tmp:req #ifdef CONFIG_PREEMPTION get_current_task \tmp ldr \tmp, [\tmp, #TSK_TI_PREEMPT] sub \tmp, \tmp, #PREEMPT_DISABLE_OFFSET cbz \tmp, \lbl #endif .endm /* * This macro emits a program property note section identifying * architecture features which require special handling, mainly for Loading