[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <540DD1D2.8060206@linaro.org>
Date: Mon, 08 Sep 2014 16:57:06 +0100
From: Daniel Thompson <daniel.thompson@...aro.org>
To: Nicolas Pitre <nicolas.pitre@...aro.org>
CC: Russell King <linux@....linux.org.uk>,
linux-kernel@...r.kernel.org, linux-arm-kernel@...ts.infradead.org,
patches@...aro.org, linaro-kernel@...ts.linaro.org,
John Stultz <john.stultz@...aro.org>,
Thomas Gleixner <tglx@...utronix.de>,
Sumit Semwal <sumit.semwal@...aro.org>,
Catalin Marinas <catalin.marinas@....com>
Subject: Re: [PATCH v3 3/5] arm: fiq: Replace default FIQ handler
On 08/09/14 16:49, Nicolas Pitre wrote:
> On Mon, 8 Sep 2014, Daniel Thompson wrote:
>
>> +@
>> +@ Taking a FIQ in abort mode is similar to taking a FIQ in SVC mode
>> +@ and reuses the same macros. However in abort mode we must also
>> +@ save/restore lr_abt and spsr_abt to make nested aborts safe.
>> +@
>> + .align 5
>> +__fiq_abt:
>> + svc_entry 0, 0
>> +
>> + ARM( msr cpsr_c, #ABT_MODE | PSR_I_BIT | PSR_F_BIT )
>> + THUMB( mov r0, #ABT_MODE | PSR_I_BIT | PSR_F_BIT )
>> + THUMB( msr cpsr_c, r0 )
>> + mov r1, lr @ Save lr_abt
>> + mrs r2, spsr @ Save spsr_abt, abort is now safe
>> + ARM( msr cpsr_c, #SVC_MODE | PSR_I_BIT | PSR_F_BIT )
>> + THUMB( mov r0, #SVC_MODE | PSR_I_BIT | PSR_F_BIT )
>> + THUMB( msr cpsr_c, r0 )
>> + push {r1 - r2}
>
> stmfd sp!, {r1 - r2}
>
>> +
>> + sub r0, sp, #8 @ struct pt_regs *regs
>> + bl handle_fiq_as_nmi
>> +
>> + pop {r1 - r2}
>
> ldmfd sp!, {r1 - r2}
>
> ... so that old binutils we still accept to compile the kernel (in ARM
> mode) are happy.
Will do.
> Otherwise...
>
> Acked-by: Nicolas Pitre <nico@...aro.org>
Thanks :-)
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists