Fix secondary PIC initialization order

Call arm_init_secondary before any other PIC-related functions
are called. This is necessary for GICv3 where PIC_INIT_SECONDARY
allocates resources needed for all further operations.

Obtained from: Semihalf
Sponsored by:  The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D3066
This commit is contained in:
Zbigniew Bodek 2015-07-14 12:02:56 +00:00
parent b7ac293f44
commit d1be8e59e2

View File

@ -229,6 +229,9 @@ init_secondary(uint64_t cpu)
pcpup->pc_curthread = pcpup->pc_idlethread;
pcpup->pc_curpcb = pcpup->pc_idlethread->td_pcb;
/* Configure the interrupt controller */
arm_init_secondary();
for (i = 0; i < COUNT_IPI; i++)
arm_unmask_ipi(i);
@ -239,9 +242,6 @@ init_secondary(uint64_t cpu)
vfp_init();
#endif
/* Configure the interrupt controller */
arm_init_secondary();
/* Enable interrupts */
intr_enable();