diff options
Diffstat (limited to 'arch/s390/kernel/smp.c')
-rw-r--r-- | arch/s390/kernel/smp.c | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/arch/s390/kernel/smp.c b/arch/s390/kernel/smp.c index 642572a8e334..85222fee4361 100644 --- a/arch/s390/kernel/smp.c +++ b/arch/s390/kernel/smp.c | |||
@@ -375,7 +375,7 @@ static void smp_ext_bitcall(int cpu, ec_bit_sig sig) | |||
375 | * Set signaling bit in lowcore of target cpu and kick it | 375 | * Set signaling bit in lowcore of target cpu and kick it |
376 | */ | 376 | */ |
377 | set_bit(sig, (unsigned long *) &lowcore_ptr[cpu]->ext_call_fast); | 377 | set_bit(sig, (unsigned long *) &lowcore_ptr[cpu]->ext_call_fast); |
378 | while(signal_processor(cpu, sigp_external_call) == sigp_busy) | 378 | while(signal_processor(cpu, sigp_emergency_signal) == sigp_busy) |
379 | udelay(10); | 379 | udelay(10); |
380 | } | 380 | } |
381 | 381 | ||
@@ -394,7 +394,7 @@ static void smp_ext_bitcall_others(ec_bit_sig sig) | |||
394 | * Set signaling bit in lowcore of target cpu and kick it | 394 | * Set signaling bit in lowcore of target cpu and kick it |
395 | */ | 395 | */ |
396 | set_bit(sig, (unsigned long *) &lowcore_ptr[cpu]->ext_call_fast); | 396 | set_bit(sig, (unsigned long *) &lowcore_ptr[cpu]->ext_call_fast); |
397 | while (signal_processor(cpu, sigp_external_call) == sigp_busy) | 397 | while (signal_processor(cpu, sigp_emergency_signal) == sigp_busy) |
398 | udelay(10); | 398 | udelay(10); |
399 | } | 399 | } |
400 | } | 400 | } |
@@ -537,7 +537,8 @@ int __devinit start_secondary(void *cpuvoid) | |||
537 | #endif | 537 | #endif |
538 | #ifdef CONFIG_PFAULT | 538 | #ifdef CONFIG_PFAULT |
539 | /* Enable pfault pseudo page faults on this cpu. */ | 539 | /* Enable pfault pseudo page faults on this cpu. */ |
540 | pfault_init(); | 540 | if (MACHINE_IS_VM) |
541 | pfault_init(); | ||
541 | #endif | 542 | #endif |
542 | /* Mark this cpu as online */ | 543 | /* Mark this cpu as online */ |
543 | cpu_set(smp_processor_id(), cpu_online_map); | 544 | cpu_set(smp_processor_id(), cpu_online_map); |
@@ -690,7 +691,8 @@ __cpu_disable(void) | |||
690 | 691 | ||
691 | #ifdef CONFIG_PFAULT | 692 | #ifdef CONFIG_PFAULT |
692 | /* Disable pfault pseudo page faults on this cpu. */ | 693 | /* Disable pfault pseudo page faults on this cpu. */ |
693 | pfault_fini(); | 694 | if (MACHINE_IS_VM) |
695 | pfault_fini(); | ||
694 | #endif | 696 | #endif |
695 | 697 | ||
696 | /* disable all external interrupts */ | 698 | /* disable all external interrupts */ |
@@ -751,9 +753,9 @@ void __init smp_prepare_cpus(unsigned int max_cpus) | |||
751 | unsigned int cpu; | 753 | unsigned int cpu; |
752 | int i; | 754 | int i; |
753 | 755 | ||
754 | /* request the 0x1202 external interrupt */ | 756 | /* request the 0x1201 emergency signal external interrupt */ |
755 | if (register_external_interrupt(0x1202, do_ext_call_interrupt) != 0) | 757 | if (register_external_interrupt(0x1201, do_ext_call_interrupt) != 0) |
756 | panic("Couldn't request external interrupt 0x1202"); | 758 | panic("Couldn't request external interrupt 0x1201"); |
757 | smp_check_cpus(max_cpus); | 759 | smp_check_cpus(max_cpus); |
758 | memset(lowcore_ptr,0,sizeof(lowcore_ptr)); | 760 | memset(lowcore_ptr,0,sizeof(lowcore_ptr)); |
759 | /* | 761 | /* |