mirror of
https://git.FreeBSD.org/src.git
synced 2024-12-15 10:17:20 +00:00
changes to smp_init_secondary_glue():
- use the unique value to save the per-cpu globalp struct like the comment says - don't lower the ipl to ALPHA_PSL_IPL_HIGH: we may have a pending machine check to take and we're not prepared for that yet, as we haven't setup our interrupt entry points. (this may only happen on sable/lynx) - indicate the fact that the working version of smp_init_secondary() doesn't return (this is tied up in other changes and hasn't yet been committed).
This commit is contained in:
parent
2766dc31da
commit
ed4835b64d
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=75599
@ -147,34 +147,26 @@
|
||||
* be executing on their private idle stack.
|
||||
*/
|
||||
NESTED(smp_init_secondary_glue, 1, 0, ra, 0, 0)
|
||||
mov pv, globalp
|
||||
|
||||
ldiq a0, ALPHA_PSL_IPL_HIGH /* disable all interrupts */
|
||||
call_pal PAL_OSF1_swpipl
|
||||
|
||||
|
||||
br pv, 1f
|
||||
1: LDGP(pv)
|
||||
|
||||
mov gp, a0
|
||||
call_pal PAL_OSF1_wrkgp /* clobbers a0, t0, t8-t11 */
|
||||
|
||||
ldiq a0, -2 /* TBIA */
|
||||
call_pal PAL_OSF1_tbi
|
||||
call_pal PAL_imb
|
||||
call_pal PAL_rdunique /* initialise globalp */
|
||||
mov v0, globalp
|
||||
|
||||
ldq a0, GD_IDLEPCBPHYS(globalp) /* switch to idle ctx */
|
||||
call_pal PAL_OSF1_swpctx
|
||||
|
||||
CALL(smp_init_secondary) /* initialise the rest */
|
||||
|
||||
/*
|
||||
* After initialising, we start idling for real.
|
||||
* We have the kernel lock at this point.
|
||||
*/
|
||||
CALL(cpu_switch) /* never returns */
|
||||
/* Load KGP with current GP. */
|
||||
or gp,zero,a0
|
||||
call_pal PAL_OSF1_wrkgp /* clobbers a0, t0, t8-t11 */
|
||||
|
||||
CALL(smp_init_secondary) /* never returns */
|
||||
|
||||
/* NOTREACHED */
|
||||
|
||||
call_pal PAL_halt
|
||||
|
||||
|
||||
END(smp_init_secondary_glue)
|
||||
#endif
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user