Lines Matching refs:lr

85 static struct vgic_lr vgic_get_lr(const struct kvm_vcpu *vcpu, int lr);
86 static void vgic_set_lr(struct kvm_vcpu *vcpu, int lr, struct vgic_lr lr_desc);
666 struct vgic_lr lr = vgic_get_lr(vcpu, i); in vgic_unqueue_irqs() local
675 BUG_ON(!(lr.state & LR_STATE_MASK)); in vgic_unqueue_irqs()
678 if (lr.irq < VGIC_NR_SGIS) in vgic_unqueue_irqs()
679 add_sgi_source(vcpu, lr.irq, lr.source); in vgic_unqueue_irqs()
686 if (lr.state & LR_STATE_ACTIVE) { in vgic_unqueue_irqs()
687 vgic_irq_set_active(vcpu, lr.irq); in vgic_unqueue_irqs()
688 lr.state &= ~LR_STATE_ACTIVE; in vgic_unqueue_irqs()
697 if (lr.state & LR_STATE_PENDING) { in vgic_unqueue_irqs()
698 vgic_dist_irq_set_pending(vcpu, lr.irq); in vgic_unqueue_irqs()
699 lr.state &= ~LR_STATE_PENDING; in vgic_unqueue_irqs()
702 vgic_set_lr(vcpu, i, lr); in vgic_unqueue_irqs()
707 BUG_ON(lr.state & LR_STATE_MASK); in vgic_unqueue_irqs()
708 vgic_retire_lr(i, lr.irq, vcpu); in vgic_unqueue_irqs()
709 vgic_irq_clear_queued(vcpu, lr.irq); in vgic_unqueue_irqs()
1005 static struct vgic_lr vgic_get_lr(const struct kvm_vcpu *vcpu, int lr) in vgic_get_lr() argument
1007 return vgic_ops->get_lr(vcpu, lr); in vgic_get_lr()
1010 static void vgic_set_lr(struct kvm_vcpu *vcpu, int lr, in vgic_set_lr() argument
1013 vgic_ops->set_lr(vcpu, lr, vlr); in vgic_set_lr()
1016 static void vgic_sync_lr_elrsr(struct kvm_vcpu *vcpu, int lr, in vgic_sync_lr_elrsr() argument
1019 vgic_ops->sync_lr_elrsr(vcpu, lr, vlr); in vgic_sync_lr_elrsr()
1091 int lr; in vgic_retire_disabled_irqs() local
1093 for_each_set_bit(lr, vgic_cpu->lr_used, vgic->nr_lr) { in vgic_retire_disabled_irqs()
1094 struct vgic_lr vlr = vgic_get_lr(vcpu, lr); in vgic_retire_disabled_irqs()
1097 vgic_retire_lr(lr, vlr.irq, vcpu); in vgic_retire_disabled_irqs()
1134 int lr; in vgic_queue_irq() local
1143 lr = vgic_cpu->vgic_irq_lr_map[irq]; in vgic_queue_irq()
1146 if (lr != LR_EMPTY) { in vgic_queue_irq()
1147 vlr = vgic_get_lr(vcpu, lr); in vgic_queue_irq()
1149 kvm_debug("LR%d piggyback for IRQ%d\n", lr, vlr.irq); in vgic_queue_irq()
1150 BUG_ON(!test_bit(lr, vgic_cpu->lr_used)); in vgic_queue_irq()
1151 vgic_queue_irq_to_lr(vcpu, irq, lr, vlr); in vgic_queue_irq()
1157 lr = find_first_zero_bit((unsigned long *)vgic_cpu->lr_used, in vgic_queue_irq()
1159 if (lr >= vgic->nr_lr) in vgic_queue_irq()
1162 kvm_debug("LR%d allocated for IRQ%d %x\n", lr, irq, sgi_source_id); in vgic_queue_irq()
1163 vgic_cpu->vgic_irq_lr_map[irq] = lr; in vgic_queue_irq()
1164 set_bit(lr, vgic_cpu->lr_used); in vgic_queue_irq()
1169 vgic_queue_irq_to_lr(vcpu, irq, lr, vlr); in vgic_queue_irq()
1275 int lr; in vgic_process_maintenance() local
1277 for_each_set_bit(lr, eisr_ptr, vgic->nr_lr) { in vgic_process_maintenance()
1278 struct vgic_lr vlr = vgic_get_lr(vcpu, lr); in vgic_process_maintenance()
1285 vgic_set_lr(vcpu, lr, vlr); in vgic_process_maintenance()
1326 vgic_sync_lr_elrsr(vcpu, lr, vlr); in vgic_process_maintenance()
1351 int lr, pending; in __kvm_vgic_sync_hwstate() local
1359 for_each_set_bit(lr, elrsr_ptr, vgic->nr_lr) { in __kvm_vgic_sync_hwstate()
1362 if (!test_and_clear_bit(lr, vgic_cpu->lr_used)) in __kvm_vgic_sync_hwstate()
1365 vlr = vgic_get_lr(vcpu, lr); in __kvm_vgic_sync_hwstate()