Michael Holzheu 8eb4bd666f [S390] kernel: Initialize register 14 when starting new CPU
When starting a new CPU we currently jump to start_secondary() without
setting register 14 (the return address) correctly. Therefore on the stack
frame for start_secondary an invalid return address is stored. This leads
to wrong stack back traces in kernel dumps.

Example:

 #00 [1f33fe48] cpu_idle at 10614a
 #01 [1f33fe90] start_secondary at 54fa88
 #02 [1f33feb8] (null) at 0                 <--- invalid

To fix this start_secondary() is called now with basr/brasl that sets
register 14 correctly. The output of the stack backtrace looks then
like the following:

 #00 [1f33fe48] cpu_idle at 10614a
 #01 [1f33fe90] start_secondary at 54fa88
 #02 [1f33feb8] restart_base at 54f41e      <--- correct

Signed-off-by: Michael Holzheu <holzheu@linux.vnet.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
2011-05-10 17:13:42 +02:00
..
2011-01-05 12:47:31 +01:00
2011-01-05 12:47:31 +01:00
2011-03-23 10:15:58 +01:00
2010-10-15 15:53:27 +02:00
2011-01-05 12:47:31 +01:00
2011-04-04 09:43:33 +02:00
2011-01-05 12:47:31 +01:00
2010-10-07 14:08:55 +01:00
2011-01-12 09:55:25 +01:00
2011-01-05 12:47:31 +01:00
2011-03-31 11:26:23 -03:00
2010-03-08 16:55:37 +01:00
2011-03-31 11:26:23 -03:00
2011-01-05 12:47:31 +01:00
2011-01-05 12:47:31 +01:00
2011-03-23 10:15:58 +01:00
2011-03-31 11:26:23 -03:00
2011-02-15 07:34:16 -08:00
2011-03-31 11:26:23 -03:00