linux/arch/xtensa
Max Filippov e4cbf9a98c xtensa: add fixup for double exception raised in window overflow
commit 17290231df upstream.

There are two FIXMEs in the double exception handler 'for the extremely
unlikely case'. This case gets hit by gcc during kernel build once in
a few hours, resulting in an unrecoverable exception condition.

Provide missing fixup routine to handle this case. Double exception
literals now need 8 more bytes, add them to the linker script.

Also replace bbsi instructions with bbsi.l as we're branching depending
on 8th and 7th LSB-based bits of exception address.

This may be tested by adding the explicit DTLB invalidation to window
overflow handlers, like the following:

#    --- a/arch/xtensa/kernel/vectors.S
#    +++ b/arch/xtensa/kernel/vectors.S
#    @@ -592,6 +592,14 @@ ENDPROC(_WindowUnderflow4)
#     ENTRY_ALIGN64(_WindowOverflow8)
#
#    	s32e	a0, a9, -16
#    +	bbsi.l	a9, 31, 1f
#    +	rsr	a0, ccount
#    +	bbsi.l	a0, 4, 1f
#    +	pdtlb	a0, a9
#    +	idtlb	a0
#    +	movi	a0, 9
#    +	idtlb	a0
#    +1:
#    	l32e    a0, a1, -12
#    	s32e    a2, a9,  -8
#    	s32e    a1, a9, -12

Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
History 2014-08-07 14:52:39 -07:00
..
boot xtensa: xtfpga: set ethoc clock frequency 2014-02-21 21:33:44 +04:00
configs Remove GENERIC_HARDIRQ config option 2013-09-13 15:09:52 +02:00
include Xtensa fixes for 3.14: 2014-02-24 00:34:36 -08:00
kernel xtensa: add fixup for double exception raised in window overflow 2014-08-07 14:52:39 -07:00
lib xtensa: clean up files to make them code-style compliant 2012-12-18 21:10:25 -08:00
mm Xtensa fixes for 3.14: 2014-02-24 00:34:36 -08:00
oprofile xtensa: fix oprofile building as module 2013-05-09 01:07:09 -07:00
platforms xtensa: xtfpga: set ethoc clock frequency 2014-02-21 21:33:44 +04:00
variants xtensa: fsf: drop nonexistent GPIO32 support 2014-02-21 21:33:40 +04:00
Kconfig xtensa: support common clock framework 2014-02-21 21:33:42 +04:00
Kconfig.debug xtensa: check TLB sanity on return to userspace 2013-07-08 01:18:56 -07:00
Makefile xtensa: don't use echo -e needlessly 2013-09-06 09:48:29 -07:00