|
@@ -104,6 +104,12 @@ static inline int __devinit smp_startup_cpu(unsigned int lcpu)
|
|
|
|
|
|
pcpu = get_hard_smp_processor_id(lcpu);
|
|
pcpu = get_hard_smp_processor_id(lcpu);
|
|
|
|
|
|
|
|
+ /* Check to see if the CPU out of FW already for kexec */
|
|
|
|
+ if (smp_query_cpu_stopped(pcpu) == QCSS_NOT_STOPPED){
|
|
|
|
+ cpu_set(lcpu, of_spin_map);
|
|
|
|
+ return 1;
|
|
|
|
+ }
|
|
|
|
+
|
|
/* Fixup atomic count: it exited inside IRQ handler. */
|
|
/* Fixup atomic count: it exited inside IRQ handler. */
|
|
task_thread_info(paca[lcpu].__current)->preempt_count = 0;
|
|
task_thread_info(paca[lcpu].__current)->preempt_count = 0;
|
|
|
|
|