[PATCH v8 4/4] arm64: switch to irq_stack during softirq

Catalin Marinas catalin.marinas at arm.com
Fri Dec 4 06:01:19 PST 2015


On Fri, Dec 04, 2015 at 11:02:28AM +0000, James Morse wrote:
> +ENTRY(__do_softirq_on_irqstack)
> +	push	x19, lr
> +	push	x25, x26
> +
> +	irq_stack_entry lr
> +
> +	/* irq_stack_entry leaves irq_count in x25 */
> +	ldr	x1, [x25]
> +	add	x1, x1, #1
> +	str	x1, [x25]
> +
> +	bl	__do_softirq
> +
> +	ldr	x1, [x25]
> +	sub	x1, x1, #1
> +	str	x1, [x25]
> +
> +	irq_stack_exit
> +
> +	pop x25, x26
> +	pop x19, lr
> +	ret
> +ENDPROC(__do_softirq_on_irqstack)

I was thinking of doing do_softirq_own_stack() entirely in assembly
without the need to check for on_irq_stack() check in C, just a test of
the irq_count value.

But this means collapsing patches 3 and 4 ;).

-- 
Catalin



More information about the linux-arm-kernel mailing list