smp.c (e51df2c170efaeadce4d416e1825b0830de0a795) | smp.c (d6a4f70909d279004a2b3d539e240e07b1ecc1cb) |
---|---|
1/* 2 * SMP support for PowerNV machines. 3 * 4 * Copyright 2011 IBM Corp. 5 * 6 * This program is free software; you can redistribute it and/or 7 * modify it under the terms of the GNU General Public License 8 * as published by the Free Software Foundation; either version --- 154 unchanged lines hidden (view full) --- 163 * so clear LPCR:PECE1. We keep PECE2 enabled. 164 */ 165 mtspr(SPRN_LPCR, mfspr(SPRN_LPCR) & ~(u64)LPCR_PECE1); 166 while (!generic_check_cpu_restart(cpu)) { 167 ppc64_runlatch_off(); 168 power7_nap(1); 169 ppc64_runlatch_on(); 170 | 1/* 2 * SMP support for PowerNV machines. 3 * 4 * Copyright 2011 IBM Corp. 5 * 6 * This program is free software; you can redistribute it and/or 7 * modify it under the terms of the GNU General Public License 8 * as published by the Free Software Foundation; either version --- 154 unchanged lines hidden (view full) --- 163 * so clear LPCR:PECE1. We keep PECE2 enabled. 164 */ 165 mtspr(SPRN_LPCR, mfspr(SPRN_LPCR) & ~(u64)LPCR_PECE1); 166 while (!generic_check_cpu_restart(cpu)) { 167 ppc64_runlatch_off(); 168 power7_nap(1); 169 ppc64_runlatch_on(); 170 |
171 /* Reenable IRQs briefly to clear the IPI that woke us */ 172 local_irq_enable(); 173 local_irq_disable(); | 171 /* Clear the IPI that woke us up */ 172 icp_native_flush_interrupt(); 173 local_paca->irq_happened &= PACA_IRQ_HARD_DIS; |
174 mb(); 175 176 if (cpu_core_split_required()) 177 continue; 178 179 if (!generic_check_cpu_restart(cpu)) 180 DBG("CPU%d Unexpected exit while offline !\n", cpu); 181 } --- 40 unchanged lines hidden --- | 174 mb(); 175 176 if (cpu_core_split_required()) 177 continue; 178 179 if (!generic_check_cpu_restart(cpu)) 180 DBG("CPU%d Unexpected exit while offline !\n", cpu); 181 } --- 40 unchanged lines hidden --- |