Lines Matching refs:rte
183 struct iosapic_rte_info *rte; in __gsi_to_irq() local
187 list_for_each_entry(rte, &info->rtes, rte_list) in __gsi_to_irq()
188 if (rte->iosapic->gsi_base + rte->rte_index == gsi) in __gsi_to_irq()
208 struct iosapic_rte_info *rte; in find_rte() local
210 list_for_each_entry(rte, &iosapic_intr_info[irq].rtes, rte_list) in find_rte()
211 if (rte->iosapic->gsi_base + rte->rte_index == gsi) in find_rte()
212 return rte; in find_rte()
223 struct iosapic_rte_info *rte; in set_rte() local
228 rte = find_rte(irq, gsi); in set_rte()
229 if (!rte) in set_rte()
232 rte_index = rte->rte_index; in set_rte()
252 iosapic_write(rte->iosapic, IOSAPIC_RTE_HIGH(rte_index), high32); in set_rte()
253 iosapic_write(rte->iosapic, IOSAPIC_RTE_LOW(rte_index), low32); in set_rte()
270 struct iosapic_rte_info *rte; in kexec_disable_iosapic() local
277 list_for_each_entry(rte, &info->rtes, in kexec_disable_iosapic()
279 iosapic_write(rte->iosapic, in kexec_disable_iosapic()
280 IOSAPIC_RTE_LOW(rte->rte_index), in kexec_disable_iosapic()
282 iosapic_eoi(rte->iosapic->addr, vec); in kexec_disable_iosapic()
294 struct iosapic_rte_info *rte; in mask_irq() local
301 list_for_each_entry(rte, &iosapic_intr_info[irq].rtes, rte_list) { in mask_irq()
302 rte_index = rte->rte_index; in mask_irq()
303 iosapic_write(rte->iosapic, IOSAPIC_RTE_LOW(rte_index), low32); in mask_irq()
313 struct iosapic_rte_info *rte; in unmask_irq() local
319 list_for_each_entry(rte, &iosapic_intr_info[irq].rtes, rte_list) { in unmask_irq()
320 rte_index = rte->rte_index; in unmask_irq()
321 iosapic_write(rte->iosapic, IOSAPIC_RTE_LOW(rte_index), low32); in unmask_irq()
335 struct iosapic_rte_info *rte; in iosapic_set_affinity() local
369 list_for_each_entry(rte, &iosapic_intr_info[irq].rtes, rte_list) { in iosapic_set_affinity()
370 iosapic = rte->iosapic; in iosapic_set_affinity()
371 rte_index = rte->rte_index; in iosapic_set_affinity()
396 struct iosapic_rte_info *rte; in iosapic_unmask_level_irq() local
406 list_for_each_entry(rte, &iosapic_intr_info[irq].rtes, rte_list) in iosapic_unmask_level_irq()
407 iosapic_eoi(rte->iosapic->addr, vec); in iosapic_unmask_level_irq()
559 struct iosapic_rte_info *rte; in register_intr() local
568 rte = find_rte(irq, gsi); in register_intr()
569 if (!rte) { in register_intr()
570 rte = kzalloc(sizeof (*rte), GFP_ATOMIC); in register_intr()
571 if (!rte) { in register_intr()
577 rte->iosapic = &iosapic_lists[index]; in register_intr()
578 rte->rte_index = gsi - rte->iosapic->gsi_base; in register_intr()
579 rte->refcnt++; in register_intr()
580 list_add_tail(&rte->rte_list, &iosapic_intr_info[irq].rtes); in register_intr()
584 else if (rte->refcnt == NO_REF_RTE) { in register_intr()
593 rte->refcnt++; in register_intr()
722 struct iosapic_rte_info *rte; in iosapic_register_intr() local
735 rte = find_rte(irq, gsi); in iosapic_register_intr()
739 } else if (rte->refcnt != NO_REF_RTE) { in iosapic_register_intr()
740 rte->refcnt++; in iosapic_register_intr()
792 struct iosapic_rte_info *rte; in iosapic_unregister_intr() local
808 if ((rte = find_rte(irq, gsi)) == NULL) { in iosapic_unregister_intr()
815 if (--rte->refcnt > 0) in iosapic_unregister_intr()
818 rte->refcnt = NO_REF_RTE; in iosapic_unregister_intr()
822 iosapic_write(rte->iosapic, IOSAPIC_RTE_LOW(rte->rte_index), low32); in iosapic_unregister_intr()
1016 struct iosapic_rte_info *rte, *temp; in iosapic_delete_rte() local
1018 list_for_each_entry_safe(rte, temp, &iosapic_intr_info[irq].rtes, in iosapic_delete_rte()
1020 if (rte->iosapic->gsi_base + rte->rte_index == gsi) { in iosapic_delete_rte()
1021 if (rte->refcnt) in iosapic_delete_rte()
1024 list_del(&rte->rte_list); in iosapic_delete_rte()
1025 kfree(rte); in iosapic_delete_rte()