Thread (44 messages) 44 messages, 9 authors, 2017-12-12

[PATCH v2 12/18] arm64: entry: Explicitly pass exception level to kernel_ventry macro

From: mark.rutland@arm.com (Mark Rutland)
Date: 2017-12-01 18:00:55
Also in: lkml

On Fri, Dec 01, 2017 at 05:51:44PM +0000, Will Deacon wrote:
On Fri, Dec 01, 2017 at 11:58:36AM +0000, Mark Rutland wrote:
quoted
On Thu, Nov 30, 2017 at 04:39:40PM +0000, Will Deacon wrote:
quoted
quoted
+	.macro kernel_ventry, el, label, regsize = 64
quoted
quoted
+	b	el\()\el\()_\label
quoted
quoted
-	kernel_ventry	el1_sync_invalid		// Synchronous EL1t
quoted
quoted
+	kernel_ventry	1, sync_invalid			// Synchronous EL1t
quoted
Using the el paramter to build the branch name has the unfortunate
property of obscuring the branch name. For example, that makes it
difficult to jump around the entry asm with ctags, which is somewhat
painful.

Could we leave the full branch name in place, e.g.

	kernel_ventry	1, el1_sync_invalid		// Synchronous EL1t
	kernel_ventry	1, el1_irq_invalid		// IRQ EL1t
	kernel_ventry	1, el1_fiq_invalid		// FIQ EL1t
	kernel_ventry	1, el1_error_invalid		// Error EL1t

... or have separate kernel_ventry and user_ventry macros that
implicitly encoded the source EL, also leaving the label name as-is.
The downside of doing that is that it makes it possible to say things like:

	kernel_ventry	0, el1_sync

which I don't want to be expressible.

Given that ctags already chokes on lots of entry.S (for example, any macro
that is defined outside of the file) *and* that you can easily search for
things like el1_sync_invalid within the file, I'm inclined to leave this
patch as-is, but I'll note your objection and buy you a pint.
I guess I'll live with it, then. ;)

Assuming I can't twist your arm, feel free to take my Reviewed-by here
too.

Thanks,
Mark.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help