diff options
author | Paul Mackerras <paulus@samba.org> | 2013-04-15 16:28:01 -0400 |
---|---|---|
committer | Michael Ellerman <michael@ellerman.id.au> | 2013-04-17 23:03:57 -0400 |
commit | 3cc33d50f52521760da29ebd9db239741da7f21a (patch) | |
tree | b0968eaa092072c83b54bedadc7f2f03d42e6556 /arch/powerpc/kvm/book3s_hv_interrupts.S | |
parent | c843be8a5480c04a18410aaf32d5a339a8b3a61b (diff) |
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: Paul Mackerras <paulus@samba.org>
Signed-off-by: Michael Ellerman <michael@ellerman.id.au>
Diffstat (limited to 'arch/powerpc/kvm/book3s_hv_interrupts.S')
-rw-r--r-- | arch/powerpc/kvm/book3s_hv_interrupts.S | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/arch/powerpc/kvm/book3s_hv_interrupts.S b/arch/powerpc/kvm/book3s_hv_interrupts.S index 84035a528c80..37f1cc417ca0 100644 --- a/arch/powerpc/kvm/book3s_hv_interrupts.S +++ b/arch/powerpc/kvm/book3s_hv_interrupts.S | |||
@@ -122,11 +122,16 @@ END_FTR_SECTION_IFSET(CPU_FTR_ARCH_201) | |||
122 | add r8,r8,r7 | 122 | add r8,r8,r7 |
123 | std r8,HSTATE_DECEXP(r13) | 123 | std r8,HSTATE_DECEXP(r13) |
124 | 124 | ||
125 | #ifdef CONFIG_SMP | ||
125 | /* | 126 | /* |
126 | * On PPC970, if the guest vcpu has an external interrupt pending, | 127 | * On PPC970, if the guest vcpu has an external interrupt pending, |
127 | * send ourselves an IPI so as to interrupt the guest once it | 128 | * send ourselves an IPI so as to interrupt the guest once it |
128 | * enables interrupts. (It must have interrupts disabled, | 129 | * enables interrupts. (It must have interrupts disabled, |
129 | * otherwise we would already have delivered the interrupt.) | 130 | * otherwise we would already have delivered the interrupt.) |
131 | * | ||
132 | * XXX If this is a UP build, smp_send_reschedule is not available, | ||
133 | * so the interrupt will be delayed until the next time the vcpu | ||
134 | * enters the guest with interrupts enabled. | ||
130 | */ | 135 | */ |
131 | BEGIN_FTR_SECTION | 136 | BEGIN_FTR_SECTION |
132 | ld r0, VCPU_PENDING_EXC(r4) | 137 | ld r0, VCPU_PENDING_EXC(r4) |
@@ -141,6 +146,7 @@ BEGIN_FTR_SECTION | |||
141 | mr r4, r31 | 146 | mr r4, r31 |
142 | 32: | 147 | 32: |
143 | END_FTR_SECTION_IFSET(CPU_FTR_ARCH_201) | 148 | END_FTR_SECTION_IFSET(CPU_FTR_ARCH_201) |
149 | #endif /* CONFIG_SMP */ | ||
144 | 150 | ||
145 | /* Jump to partition switch code */ | 151 | /* Jump to partition switch code */ |
146 | bl .kvmppc_hv_entry_trampoline | 152 | bl .kvmppc_hv_entry_trampoline |