Skip to content

Commit

Permalink
KVM: arm/arm64: arch_timer: Remove irq_phys_map
Browse files Browse the repository at this point in the history
Now that the interface between the arch timer and the VGIC does not
require passing the irq_phys_map entry pointer anymore, let's remove
it from the virtual arch timer and use the virtual IRQ number instead
directly.
The remaining pointer returned by kvm_vgic_map_phys_irq() will be
removed in the following patch.

Signed-off-by: Andre Przywara <andre.przywara@arm.com>
Reviewed-by: Eric Auger <eric.auger@linaro.org>
Reviewed-by: Christoffer Dall <christoffer.dall@linaro.org>
  • Loading branch information
Andre Przywara authored and Christoffer Dall committed May 20, 2016
1 parent b452cb5 commit a7e33ad
Show file tree
Hide file tree
Showing 2 changed files with 4 additions and 9 deletions.
3 changes: 0 additions & 3 deletions include/kvm/arm_arch_timer.h
Original file line number Diff line number Diff line change
Expand Up @@ -53,9 +53,6 @@ struct arch_timer_cpu {
/* Timer IRQ */
struct kvm_irq_level irq;

/* VGIC mapping */
struct irq_phys_map *map;

/* Active IRQ state caching */
bool active_cleared_last;
};
Expand Down
10 changes: 4 additions & 6 deletions virt/kvm/arm/arch_timer.c
Original file line number Diff line number Diff line change
Expand Up @@ -175,10 +175,10 @@ static void kvm_timer_update_irq(struct kvm_vcpu *vcpu, bool new_level)

timer->active_cleared_last = false;
timer->irq.level = new_level;
trace_kvm_timer_update_irq(vcpu->vcpu_id, timer->map->virt_irq,
trace_kvm_timer_update_irq(vcpu->vcpu_id, timer->irq.irq,
timer->irq.level);
ret = kvm_vgic_inject_mapped_irq(vcpu->kvm, vcpu->vcpu_id,
timer->map->virt_irq,
timer->irq.irq,
timer->irq.level);
WARN_ON(ret);
}
Expand Down Expand Up @@ -276,7 +276,7 @@ void kvm_timer_flush_hwstate(struct kvm_vcpu *vcpu)
* exit.
*/
phys_active = timer->irq.level ||
kvm_vgic_map_is_active(vcpu, timer->map->virt_irq);
kvm_vgic_map_is_active(vcpu, timer->irq.irq);

/*
* We want to avoid hitting the (re)distributor as much as
Expand Down Expand Up @@ -378,7 +378,6 @@ int kvm_timer_vcpu_reset(struct kvm_vcpu *vcpu,
if (WARN_ON(IS_ERR(map)))
return PTR_ERR(map);

timer->map = map;
return 0;
}

Expand Down Expand Up @@ -504,8 +503,7 @@ void kvm_timer_vcpu_terminate(struct kvm_vcpu *vcpu)
struct arch_timer_cpu *timer = &vcpu->arch.timer_cpu;

timer_disarm(timer);
if (timer->map)
kvm_vgic_unmap_phys_irq(vcpu, timer->map->virt_irq);
kvm_vgic_unmap_phys_irq(vcpu, timer->irq.irq);
}

void kvm_timer_enable(struct kvm *kvm)
Expand Down

0 comments on commit a7e33ad

Please sign in to comment.