summaryrefslogtreecommitdiffstats
path: root/virt/kvm/arm/vgic/vgic-v3.c
diff options
context:
space:
mode:
authorMarc Zyngier <marc.zyngier@arm.com>2018-03-19 17:43:01 +0000
committerMarc Zyngier <marc.zyngier@arm.com>2018-03-19 17:43:01 +0000
commit5fbb0df6f68e31a586b947433e93ba9654c8080f (patch)
tree65e68ad352e17318d009e5f69bde535c79b8c3e7 /virt/kvm/arm/vgic/vgic-v3.c
parent4b472ffd1513407ee3607b8e638e8695e9b487ca (diff)
parent27e91ad1e746e341ca2312f29bccb9736be7b476 (diff)
downloadlinux-stable-5fbb0df6f68e31a586b947433e93ba9654c8080f.tar.gz
linux-stable-5fbb0df6f68e31a586b947433e93ba9654c8080f.tar.bz2
linux-stable-5fbb0df6f68e31a586b947433e93ba9654c8080f.zip
Merge tag 'kvm-arm-fixes-for-v4.16-2' into HEAD
Resolve conflicts with current mainline
Diffstat (limited to 'virt/kvm/arm/vgic/vgic-v3.c')
-rw-r--r--virt/kvm/arm/vgic/vgic-v3.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/virt/kvm/arm/vgic/vgic-v3.c b/virt/kvm/arm/vgic/vgic-v3.c
index 4200657694f0..e17f61a434fa 100644
--- a/virt/kvm/arm/vgic/vgic-v3.c
+++ b/virt/kvm/arm/vgic/vgic-v3.c
@@ -27,6 +27,13 @@ static bool group1_trap;
static bool common_trap;
static bool gicv4_enable;
+void vgic_v3_set_npie(struct kvm_vcpu *vcpu)
+{
+ struct vgic_v3_cpu_if *cpuif = &vcpu->arch.vgic_cpu.vgic_v3;
+
+ cpuif->vgic_hcr |= ICH_HCR_NPIE;
+}
+
void vgic_v3_set_underflow(struct kvm_vcpu *vcpu)
{
struct vgic_v3_cpu_if *cpuif = &vcpu->arch.vgic_cpu.vgic_v3;
@@ -48,7 +55,7 @@ void vgic_v3_fold_lr_state(struct kvm_vcpu *vcpu)
int lr;
unsigned long flags;
- cpuif->vgic_hcr &= ~ICH_HCR_UIE;
+ cpuif->vgic_hcr &= ~(ICH_HCR_UIE | ICH_HCR_NPIE);
for (lr = 0; lr < vgic_cpu->used_lrs; lr++) {
u64 val = cpuif->vgic_lr[lr];