Max Filippov 5224712374 xtensa: fix access to THREAD_RA/THREAD_SP/THREAD_DS
With SMP and a lot of debug options enabled task_struct::thread gets out
of reach of s32i/l32i instructions with base pointing at task_struct,
breaking build with the following messages:

  arch/xtensa/kernel/entry.S: Assembler messages:
  arch/xtensa/kernel/entry.S:1002: Error: operand 3 of 'l32i.n' has invalid value '1048'
  arch/xtensa/kernel/entry.S:1831: Error: operand 3 of 's32i.n' has invalid value '1040'
  arch/xtensa/kernel/entry.S:1832: Error: operand 3 of 's32i.n' has invalid value '1044'

Change base to point to task_struct::thread in such cases.
Don't use a10 in _switch_to to save/restore prev pointer as a2 is not
clobbered.

Cc: stable@vger.kernel.org
Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
2014-08-14 11:59:16 +04:00
..
2013-02-23 19:35:57 -08:00
2014-01-14 10:19:59 -08:00
2014-01-14 10:19:58 -08:00
2014-01-14 10:19:58 -08:00
2013-04-08 17:39:29 +02:00
2013-02-23 19:35:57 -08:00
2013-02-23 19:12:53 -08:00
2014-01-19 20:00:48 +04:00
2014-01-14 10:19:59 -08:00