Lines Matching refs:ite

233 	struct its_ite *ite;  in find_ite()  local
239 list_for_each_entry(ite, &device->itt_head, ite_list) in find_ite()
240 if (ite->event_id == event_id) in find_ite()
241 return ite; in find_ite()
247 #define for_each_lpi_its(dev, ite, its) \ argument
249 list_for_each_entry(ite, &(dev)->itt_head, ite_list)
394 static void update_affinity_ite(struct kvm *kvm, struct its_ite *ite) in update_affinity_ite() argument
398 if (!its_is_collection_mapped(ite->collection)) in update_affinity_ite()
401 vcpu = kvm_get_vcpu(kvm, ite->collection->target_addr); in update_affinity_ite()
402 update_affinity(ite->irq, vcpu); in update_affinity_ite()
413 struct its_ite *ite; in update_affinity_collection() local
415 for_each_lpi_its(device, ite, its) { in update_affinity_collection()
416 if (!ite->collection || coll != ite->collection) in update_affinity_collection()
419 update_affinity_ite(kvm, ite); in update_affinity_collection()
559 struct its_ite *ite; in vgic_its_resolve_lpi() local
564 ite = find_ite(its, devid, eventid); in vgic_its_resolve_lpi()
565 if (!ite || !its_is_collection_mapped(ite->collection)) in vgic_its_resolve_lpi()
568 vcpu = kvm_get_vcpu(kvm, ite->collection->target_addr); in vgic_its_resolve_lpi()
575 *irq = ite->irq; in vgic_its_resolve_lpi()
670 static void its_free_ite(struct kvm *kvm, struct its_ite *ite) in its_free_ite() argument
672 list_del(&ite->ite_list); in its_free_ite()
675 if (ite->irq) { in its_free_ite()
676 if (ite->irq->hw) in its_free_ite()
677 WARN_ON(its_unmap_vlpi(ite->irq->host_irq)); in its_free_ite()
679 vgic_put_irq(kvm, ite->irq); in its_free_ite()
682 kfree(ite); in its_free_ite()
709 struct its_ite *ite; in vgic_its_cmd_handle_discard() local
712 ite = find_ite(its, device_id, event_id); in vgic_its_cmd_handle_discard()
713 if (ite && ite->collection) { in vgic_its_cmd_handle_discard()
719 its_free_ite(kvm, ite); in vgic_its_cmd_handle_discard()
737 struct its_ite *ite; in vgic_its_cmd_handle_movi() local
740 ite = find_ite(its, device_id, event_id); in vgic_its_cmd_handle_movi()
741 if (!ite) in vgic_its_cmd_handle_movi()
744 if (!its_is_collection_mapped(ite->collection)) in vgic_its_cmd_handle_movi()
751 ite->collection = collection; in vgic_its_cmd_handle_movi()
754 return update_affinity(ite->irq, vcpu); in vgic_its_cmd_handle_movi()
868 struct its_ite *ite; in vgic_its_free_collection() local
879 for_each_lpi_its(device, ite, its) in vgic_its_free_collection()
880 if (ite->collection && in vgic_its_free_collection()
881 ite->collection->collection_id == coll_id) in vgic_its_free_collection()
882 ite->collection = NULL; in vgic_its_free_collection()
893 struct its_ite *ite; in vgic_its_alloc_ite() local
895 ite = kzalloc(sizeof(*ite), GFP_KERNEL); in vgic_its_alloc_ite()
896 if (!ite) in vgic_its_alloc_ite()
899 ite->event_id = event_id; in vgic_its_alloc_ite()
900 ite->collection = collection; in vgic_its_alloc_ite()
902 list_add_tail(&ite->ite_list, &device->itt_head); in vgic_its_alloc_ite()
903 return ite; in vgic_its_alloc_ite()
916 struct its_ite *ite; in vgic_its_cmd_handle_mapi() local
950 ite = vgic_its_alloc_ite(device, collection, event_id); in vgic_its_cmd_handle_mapi()
951 if (IS_ERR(ite)) { in vgic_its_cmd_handle_mapi()
954 return PTR_ERR(ite); in vgic_its_cmd_handle_mapi()
964 its_free_ite(kvm, ite); in vgic_its_cmd_handle_mapi()
967 ite->irq = irq; in vgic_its_cmd_handle_mapi()
975 struct its_ite *ite, *temp; in vgic_its_free_device() local
982 list_for_each_entry_safe(ite, temp, &device->itt_head, ite_list) in vgic_its_free_device()
983 its_free_ite(kvm, ite); in vgic_its_free_device()
1119 struct its_ite *ite; in vgic_its_cmd_handle_clear() local
1122 ite = find_ite(its, device_id, event_id); in vgic_its_cmd_handle_clear()
1123 if (!ite) in vgic_its_cmd_handle_clear()
1126 ite->irq->pending_latch = false; in vgic_its_cmd_handle_clear()
1128 if (ite->irq->hw) in vgic_its_cmd_handle_clear()
1129 return irq_set_irqchip_state(ite->irq->host_irq, in vgic_its_cmd_handle_clear()
1144 struct its_ite *ite; in vgic_its_cmd_handle_inv() local
1147 ite = find_ite(its, device_id, event_id); in vgic_its_cmd_handle_inv()
1148 if (!ite) in vgic_its_cmd_handle_inv()
1151 return update_lpi_config(kvm, ite->irq, NULL, true); in vgic_its_cmd_handle_inv()
1865 static u32 compute_next_eventid_offset(struct list_head *h, struct its_ite *ite) in compute_next_eventid_offset() argument
1870 if (list_is_last(&ite->ite_list, h)) in compute_next_eventid_offset()
1872 next = list_next_entry(ite, ite_list); in compute_next_eventid_offset()
1873 next_offset = next->event_id - ite->event_id; in compute_next_eventid_offset()
1945 struct its_ite *ite, gpa_t gpa, int ite_esz) in vgic_its_save_ite() argument
1951 next_offset = compute_next_eventid_offset(&dev->itt_head, ite); in vgic_its_save_ite()
1953 ((u64)ite->irq->intid << KVM_ITS_ITE_PINTID_SHIFT) | in vgic_its_save_ite()
1954 ite->collection->collection_id; in vgic_its_save_ite()
1976 struct its_ite *ite; in vgic_its_restore_ite() local
2000 ite = vgic_its_alloc_ite(dev, collection, event_id); in vgic_its_restore_ite()
2001 if (IS_ERR(ite)) in vgic_its_restore_ite()
2002 return PTR_ERR(ite); in vgic_its_restore_ite()
2010 ite->irq = irq; in vgic_its_restore_ite()
2031 struct its_ite *ite; in vgic_its_save_itt() local
2037 list_for_each_entry(ite, &device->itt_head, ite_list) { in vgic_its_save_itt()
2038 gpa_t gpa = base + ite->event_id * ite_esz; in vgic_its_save_itt()
2046 if (ite->irq->hw) in vgic_its_save_itt()
2049 ret = vgic_its_save_ite(its, device, ite, gpa, ite_esz); in vgic_its_save_itt()