提交 aa4d5d3c 编写于 作者: J James Morse 提交者: Will Deacon

arm64: Add this_cpu_ptr() assembler macro for use in entry.S

irq_stack is a per_cpu variable, that needs to be access from entry.S.
Use an assembler macro instead of the unreadable details.
Signed-off-by: NJames Morse <james.morse@arm.com>
Signed-off-by: NWill Deacon <will.deacon@arm.com>
上级 7596abf2
......@@ -193,6 +193,17 @@ lr .req x30 // link register
str \src, [\tmp, :lo12:\sym]
.endm
/*
* @sym: The name of the per-cpu variable
* @reg: Result of per_cpu(sym, smp_processor_id())
* @tmp: scratch register
*/
.macro this_cpu_ptr, sym, reg, tmp
adr_l \reg, \sym
mrs \tmp, tpidr_el1
add \reg, \reg, \tmp
.endm
/*
* Annotate a function as position independent, i.e., safe to be called before
* the kernel virtual mapping is activated.
......
......@@ -179,9 +179,7 @@ alternative_endif
.macro irq_stack_entry, dummy_lr
mov x19, sp // preserve the original sp
adr_l x25, irq_stack
mrs x26, tpidr_el1
add x25, x25, x26
this_cpu_ptr irq_stack, x25, x26
/*
* Check the lowest address on irq_stack for the irq_count value,
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册