kvm tools: powerpc: Fix init order for xics

xics_init() assumes kvm->nrcpus is already setup.  kvm->nrcpus is setup
in kvm_cpu_init()

Unfortunately xics_init() and kvm_cpu_init() both use base_init().  So
depending on the order randomly determined by the compiler, xics_init()
may initialised see kvm->nrcpus as 0 and not setup any of the icp VCPU
pointers.  This manifests itself later in boot when trying to raise an
IRQ resulting in a null pointer deference/segv.

This moves xics_init() to use dev_base_init() to ensure it happens after
kvm_cpu_init().

Signed-off-by: Michael Neuling <mikey@neuling.org>
Signed-off-by: Pekka Enberg <penberg@kernel.org>
This commit is contained in:
Michael Neuling
2013-08-20 13:28:34 +10:00
committed by Will Deacon
parent 64857d5d30
commit 61c003c973
+1 -1
View File
@@ -505,7 +505,7 @@ static int xics_init(struct kvm *kvm)
return 0;
}
base_init(xics_init);
dev_base_init(xics_init);
void kvm__irq_line(struct kvm *kvm, int irq, int level)