Lines Matching refs:rte

184 	struct iosapic_rte_info *rte;  in __gsi_to_irq()  local
188 list_for_each_entry(rte, &info->rtes, rte_list) in __gsi_to_irq()
189 if (rte->iosapic->gsi_base + rte->rte_index == gsi) in __gsi_to_irq()
209 struct iosapic_rte_info *rte; in find_rte() local
211 list_for_each_entry(rte, &iosapic_intr_info[irq].rtes, rte_list) in find_rte()
212 if (rte->iosapic->gsi_base + rte->rte_index == gsi) in find_rte()
213 return rte; in find_rte()
224 struct iosapic_rte_info *rte; in set_rte() local
229 rte = find_rte(irq, gsi); in set_rte()
230 if (!rte) in set_rte()
233 rte_index = rte->rte_index; in set_rte()
253 iosapic_write(rte->iosapic, IOSAPIC_RTE_HIGH(rte_index), high32); in set_rte()
254 iosapic_write(rte->iosapic, IOSAPIC_RTE_LOW(rte_index), low32); in set_rte()
271 struct iosapic_rte_info *rte; in kexec_disable_iosapic() local
278 list_for_each_entry(rte, &info->rtes, in kexec_disable_iosapic()
280 iosapic_write(rte->iosapic, in kexec_disable_iosapic()
281 IOSAPIC_RTE_LOW(rte->rte_index), in kexec_disable_iosapic()
283 iosapic_eoi(rte->iosapic->addr, vec); in kexec_disable_iosapic()
295 struct iosapic_rte_info *rte; in mask_irq() local
302 list_for_each_entry(rte, &iosapic_intr_info[irq].rtes, rte_list) { in mask_irq()
303 rte_index = rte->rte_index; in mask_irq()
304 iosapic_write(rte->iosapic, IOSAPIC_RTE_LOW(rte_index), low32); in mask_irq()
314 struct iosapic_rte_info *rte; in unmask_irq() local
320 list_for_each_entry(rte, &iosapic_intr_info[irq].rtes, rte_list) { in unmask_irq()
321 rte_index = rte->rte_index; in unmask_irq()
322 iosapic_write(rte->iosapic, IOSAPIC_RTE_LOW(rte_index), low32); in unmask_irq()
336 struct iosapic_rte_info *rte; in iosapic_set_affinity() local
370 list_for_each_entry(rte, &iosapic_intr_info[irq].rtes, rte_list) { in iosapic_set_affinity()
371 iosapic = rte->iosapic; in iosapic_set_affinity()
372 rte_index = rte->rte_index; in iosapic_set_affinity()
397 struct iosapic_rte_info *rte; in iosapic_unmask_level_irq() local
407 list_for_each_entry(rte, &iosapic_intr_info[irq].rtes, rte_list) in iosapic_unmask_level_irq()
408 iosapic_eoi(rte->iosapic->addr, vec); in iosapic_unmask_level_irq()
560 struct iosapic_rte_info *rte; in register_intr() local
569 rte = find_rte(irq, gsi); in register_intr()
570 if (!rte) { in register_intr()
571 rte = kzalloc(sizeof (*rte), GFP_ATOMIC); in register_intr()
572 if (!rte) { in register_intr()
578 rte->iosapic = &iosapic_lists[index]; in register_intr()
579 rte->rte_index = gsi - rte->iosapic->gsi_base; in register_intr()
580 rte->refcnt++; in register_intr()
581 list_add_tail(&rte->rte_list, &iosapic_intr_info[irq].rtes); in register_intr()
585 else if (rte->refcnt == NO_REF_RTE) { in register_intr()
594 rte->refcnt++; in register_intr()
723 struct iosapic_rte_info *rte; in iosapic_register_intr() local
736 rte = find_rte(irq, gsi); in iosapic_register_intr()
740 } else if (rte->refcnt != NO_REF_RTE) { in iosapic_register_intr()
741 rte->refcnt++; in iosapic_register_intr()
793 struct iosapic_rte_info *rte; in iosapic_unregister_intr() local
809 if ((rte = find_rte(irq, gsi)) == NULL) { in iosapic_unregister_intr()
816 if (--rte->refcnt > 0) in iosapic_unregister_intr()
819 rte->refcnt = NO_REF_RTE; in iosapic_unregister_intr()
823 iosapic_write(rte->iosapic, IOSAPIC_RTE_LOW(rte->rte_index), low32); in iosapic_unregister_intr()
1017 struct iosapic_rte_info *rte, *temp; in iosapic_delete_rte() local
1019 list_for_each_entry_safe(rte, temp, &iosapic_intr_info[irq].rtes, in iosapic_delete_rte()
1021 if (rte->iosapic->gsi_base + rte->rte_index == gsi) { in iosapic_delete_rte()
1022 if (rte->refcnt) in iosapic_delete_rte()
1025 list_del(&rte->rte_list); in iosapic_delete_rte()
1026 kfree(rte); in iosapic_delete_rte()