Commit 3cc33d50 authored by Paul Mackerras's avatar Paul Mackerras Committed by Michael Ellerman

powerpc: Fix build errors with UP configs in HV-style KVM

This fixes these errors when building UP with CONFIG_KVM_BOOK3S_64_HV=y:

arch/powerpc/kvm/book3s_hv.c:1855:2: error: implicit declaration of function 'inhibit_secondary_onlining' [-Werror=implicit-function-declaration]
arch/powerpc/kvm/book3s_hv.c:1862:2: error: implicit declaration of function 'uninhibit_secondary_onlining' [-Werror=implicit-function-declaration]
cc1: all warnings being treated as errors

and this error (with CONFIG_KVM_BOOK3S_64=m, or a vmlinux link error
with CONFIG_KVM_BOOK3S_64=y):

ERROR: "smp_send_reschedule" [arch/powerpc/kvm/kvm.ko] undefined!
make[2]: *** [__modpost] Error 1

The fix for the link error is suboptimal; ideally we want a self_ipi()
function from irq.c, connected at least to the MPIC code, to initiate
an IPI to this cpu.  The fix here at least lets the code build, and it
will work, just with interrupts being delayed sometimes.
Signed-off-by: default avatarPaul Mackerras <paulus@samba.org>
Signed-off-by: default avatarMichael Ellerman <michael@ellerman.id.au>
parent c843be8a
...@@ -143,6 +143,8 @@ extern void __cpu_die(unsigned int cpu); ...@@ -143,6 +143,8 @@ extern void __cpu_die(unsigned int cpu);
/* for UP */ /* for UP */
#define hard_smp_processor_id() get_hard_smp_processor_id(0) #define hard_smp_processor_id() get_hard_smp_processor_id(0)
#define smp_setup_cpu_maps() #define smp_setup_cpu_maps()
static inline void inhibit_secondary_onlining(void) {}
static inline void uninhibit_secondary_onlining(void) {}
#endif /* CONFIG_SMP */ #endif /* CONFIG_SMP */
......
...@@ -122,11 +122,16 @@ END_FTR_SECTION_IFSET(CPU_FTR_ARCH_201) ...@@ -122,11 +122,16 @@ END_FTR_SECTION_IFSET(CPU_FTR_ARCH_201)
add r8,r8,r7 add r8,r8,r7
std r8,HSTATE_DECEXP(r13) std r8,HSTATE_DECEXP(r13)
#ifdef CONFIG_SMP
/* /*
* On PPC970, if the guest vcpu has an external interrupt pending, * On PPC970, if the guest vcpu has an external interrupt pending,
* send ourselves an IPI so as to interrupt the guest once it * send ourselves an IPI so as to interrupt the guest once it
* enables interrupts. (It must have interrupts disabled, * enables interrupts. (It must have interrupts disabled,
* otherwise we would already have delivered the interrupt.) * otherwise we would already have delivered the interrupt.)
*
* XXX If this is a UP build, smp_send_reschedule is not available,
* so the interrupt will be delayed until the next time the vcpu
* enters the guest with interrupts enabled.
*/ */
BEGIN_FTR_SECTION BEGIN_FTR_SECTION
ld r0, VCPU_PENDING_EXC(r4) ld r0, VCPU_PENDING_EXC(r4)
...@@ -141,6 +146,7 @@ BEGIN_FTR_SECTION ...@@ -141,6 +146,7 @@ BEGIN_FTR_SECTION
mr r4, r31 mr r4, r31
32: 32:
END_FTR_SECTION_IFSET(CPU_FTR_ARCH_201) END_FTR_SECTION_IFSET(CPU_FTR_ARCH_201)
#endif /* CONFIG_SMP */
/* Jump to partition switch code */ /* Jump to partition switch code */
bl .kvmppc_hv_entry_trampoline bl .kvmppc_hv_entry_trampoline
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment