Hi Laurent,

On 20/06/15 05:35, Laurent Vivier wrote:
> Le 19/06/2015 15:43, g...@uclinux.org a écrit :
>> From: Greg Ungerer <g...@uclinux.org>
>>
>> The action to potentially switch sp register is not occurring at the correct
>> point in the interrupt entry or exception exit sequences.
>>
>> For the interrupt entry case the sp on entry is used to create the stack
>> exception frame - but this may well be the user stack pointer, since we
>> haven't done the switch yet. Re-order the flow to switch the sp regs then
>> use the current sp to create the exception frame.
>>
>> For the return from exception case the code is unwinding the sp after
>> switching sp registers. But it should always unwind the supervisor sp
>> first, then carry out any required sp switch.
>>
>> Note that these problems don't effect operation unless the user sp bit is
>> set in the CACR register. Only a single sp is used in the default power up
>> state. Previously Linux only used this single sp mode. But modern versions
>> of Linux use the user sp mode now, so we need correct behavior for Linux
>> to work.
>>
>> Signed-off-by: Greg Ungerer <g...@uclinux.org>
>> Reviewed-by: Peter Crosthwaite <peter.crosthwa...@xilinx.com>
>> ---
>>  target-m68k/op_helper.c | 7 +++----
>>  1 file changed, 3 insertions(+), 4 deletions(-)
> 
> Reviewed-by: Laurent Vivier <laur...@vivier.eu>

Thanks for the reviews.

Regards
Greg




Reply via email to