File tree Expand file tree Collapse file tree 1 file changed +7
-9
lines changed Expand file tree Collapse file tree 1 file changed +7
-9
lines changed Original file line number Diff line number Diff line change @@ -80,7 +80,8 @@ static int x86_64_ap_startup(int cpu)
80
80
81
81
/* Send an INIT IPI to the CPU */
82
82
83
- regval = MSR_X2APIC_ICR_INIT | dest ;
83
+ regval = MSR_X2APIC_ICR_INIT | MSR_X2APIC_ICR_ASSERT
84
+ | MSR_X2APIC_ICR_LEVEL | dest ;
84
85
write_msr (MSR_X2APIC_ICR , regval );
85
86
86
87
/* Wait for 10 ms */
@@ -95,16 +96,13 @@ static int x86_64_ap_startup(int cpu)
95
96
96
97
/* Wait for AP ready */
97
98
98
- up_udelay (300 );
99
- SP_DMB ();
100
-
101
- /* Check CPU ready flag */
102
-
103
- if (x86_64_cpu_ready_get (cpu ) == false)
99
+ do
104
100
{
105
- sinfo ("failed to startup cpu=%d\n" , cpu );
106
- return - EBUSY ;
101
+ up_udelay (300 );
102
+ SP_DMB ();
103
+ sinfo ("wait for startup cpu=%d...\n" , cpu );
107
104
}
105
+ while (x86_64_cpu_ready_get (cpu ) == false);
108
106
109
107
return OK ;
110
108
}
You can’t perform that action at this time.
0 commit comments