diff options
author | 2013-06-21 11:57:56 +0100 | |
---|---|---|
committer | 2014-07-11 04:57:36 -0700 | |
commit | 1a9b13056dde7e3092304d6041ccc60a913042ea (patch) | |
tree | 3e70b5ee93eb9c0bbc8271b240a19cf69a605bb2 /virt/kvm/arm | |
parent | arm64: KVM: remove __kvm_hyp_code_{start,end} from hyp.S (diff) | |
download | linux-1a9b13056dde7e3092304d6041ccc60a913042ea.tar.gz linux-1a9b13056dde7e3092304d6041ccc60a913042ea.tar.bz2 linux-1a9b13056dde7e3092304d6041ccc60a913042ea.zip |
arm64: KVM: split GICv2 world switch from hyp code
Move the GICv2 world switch code into its own file, and add the
necessary indirection to the arm64 switch code.
Also introduce a new type field to the vgic_params structure.
Acked-by: Catalin Marinas <catalin.marinas@arm.com>
Reviewed-by: Christoffer Dall <christoffer.dall@linaro.org>
Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
Diffstat (limited to 'virt/kvm/arm')
-rw-r--r-- | virt/kvm/arm/vgic-v2.c | 1 | ||||
-rw-r--r-- | virt/kvm/arm/vgic.c | 3 |
2 files changed, 4 insertions, 0 deletions
diff --git a/virt/kvm/arm/vgic-v2.c b/virt/kvm/arm/vgic-v2.c index 940418ebd0d0..d6c9c142f813 100644 --- a/virt/kvm/arm/vgic-v2.c +++ b/virt/kvm/arm/vgic-v2.c @@ -236,6 +236,7 @@ int vgic_v2_probe(struct device_node *vgic_node, kvm_info("%s@%llx IRQ%d\n", vgic_node->name, vctrl_res.start, vgic->maint_irq); + vgic->type = VGIC_V2; *ops = &vgic_v2_ops; *params = vgic; goto out; diff --git a/virt/kvm/arm/vgic.c b/virt/kvm/arm/vgic.c index 1348e74c4d11..7867b9a1f694 100644 --- a/virt/kvm/arm/vgic.c +++ b/virt/kvm/arm/vgic.c @@ -1568,6 +1568,9 @@ int kvm_vgic_hyp_init(void) on_each_cpu(vgic_init_maintenance_interrupt, NULL, 1); + /* Callback into for arch code for setup */ + vgic_arch_setup(vgic); + return 0; out_free_irq: |