sparc64: Set cpu state to offline when stopped
CPU needs to be marked offline before stopping it. When not marked offline, the xcall receives HV_EWOULDBLOCK and so assumes that not all CPUs received the message, and retries. After 10000 retries, it finally fails with fatal mondo timeout. Signed-off-by: Vijay Kumar <vijay.ac.kumar@oracle.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
f41e54616c
commit
cffb3e7681
|
@ -1443,6 +1443,7 @@ void __irq_entry smp_receive_signal_client(int irq, struct pt_regs *regs)
|
||||||
|
|
||||||
static void stop_this_cpu(void *dummy)
|
static void stop_this_cpu(void *dummy)
|
||||||
{
|
{
|
||||||
|
set_cpu_online(smp_processor_id(), false);
|
||||||
prom_stopself();
|
prom_stopself();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1454,6 +1455,8 @@ void smp_send_stop(void)
|
||||||
for_each_online_cpu(cpu) {
|
for_each_online_cpu(cpu) {
|
||||||
if (cpu == smp_processor_id())
|
if (cpu == smp_processor_id())
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
|
set_cpu_online(cpu, false);
|
||||||
#ifdef CONFIG_SUN_LDOMS
|
#ifdef CONFIG_SUN_LDOMS
|
||||||
if (ldom_domaining_enabled) {
|
if (ldom_domaining_enabled) {
|
||||||
unsigned long hv_err;
|
unsigned long hv_err;
|
||||||
|
|
Loading…
Reference in New Issue