mirror of
https://github.com/opnsense/src.git
synced 2026-06-11 09:41:03 -04:00
Fix a bug where the pmap_cpu_bootstrap() ap argument could be clobbered.
Luckily, it mostly wasn't important, so this didn't cause major problems. Also improve register reuse when setting up trap frames very slightly. Submitted by: Justin Hibbits <chmeeedalf at gmail dot com> MFC after: 5 days
This commit is contained in:
parent
5cac9fa00e
commit
8a4cf006f4
2 changed files with 4 additions and 2 deletions
|
|
@ -303,6 +303,7 @@ cpu_reset:
|
|||
|
||||
lis %r3,1@l
|
||||
bla CNAME(cpudep_ap_early_bootstrap)
|
||||
lis %r3,1@l
|
||||
bla CNAME(pmap_cpu_bootstrap)
|
||||
bla CNAME(cpudep_ap_bootstrap)
|
||||
mr %r1,%r3
|
||||
|
|
@ -665,8 +666,8 @@ disitrap:
|
|||
GET_CPUINFO(%r1)
|
||||
lwz %r30,(PC_TEMPSAVE+CPUSAVE_AIM_DAR)(%r1) /* get DAR */
|
||||
stw %r30,(PC_DBSAVE +CPUSAVE_AIM_DAR)(%r1) /* save DAR */
|
||||
lwz %r30,(PC_TEMPSAVE+CPUSAVE_AIM_DSISR)(%r1) /* get DSISR */
|
||||
stw %r30,(PC_DBSAVE +CPUSAVE_AIM_DSISR)(%r1) /* save DSISR */
|
||||
lwz %r31,(PC_TEMPSAVE+CPUSAVE_AIM_DSISR)(%r1) /* get DSISR */
|
||||
stw %r31,(PC_DBSAVE +CPUSAVE_AIM_DSISR)(%r1) /* save DSISR */
|
||||
lwz %r30,(PC_DISISAVE+CPUSAVE_R28)(%r1) /* get r28 */
|
||||
stw %r30,(PC_DBSAVE +CPUSAVE_R28)(%r1) /* save r28 */
|
||||
lwz %r31,(PC_DISISAVE+CPUSAVE_R29)(%r1) /* get r29 */
|
||||
|
|
|
|||
|
|
@ -301,6 +301,7 @@ cpu_reset:
|
|||
lis %r3,1@l
|
||||
bl CNAME(cpudep_ap_early_bootstrap) /* Set PCPU */
|
||||
nop
|
||||
lis %r3,1@l
|
||||
bl CNAME(pmap_cpu_bootstrap) /* Turn on virtual memory */
|
||||
nop
|
||||
bl CNAME(cpudep_ap_bootstrap) /* Set up PCPU and stack */
|
||||
|
|
|
|||
Loading…
Reference in a new issue