Lines Matching refs:rte

181 	struct iosapic_rte_info *rte;  in __gsi_to_irq()  local
185 list_for_each_entry(rte, &info->rtes, rte_list) in __gsi_to_irq()
186 if (rte->iosapic->gsi_base + rte->rte_index == gsi) in __gsi_to_irq()
206 struct iosapic_rte_info *rte; in find_rte() local
208 list_for_each_entry(rte, &iosapic_intr_info[irq].rtes, rte_list) in find_rte()
209 if (rte->iosapic->gsi_base + rte->rte_index == gsi) in find_rte()
210 return rte; in find_rte()
221 struct iosapic_rte_info *rte; in set_rte() local
226 rte = find_rte(irq, gsi); in set_rte()
227 if (!rte) in set_rte()
230 rte_index = rte->rte_index; in set_rte()
250 iosapic_write(rte->iosapic, IOSAPIC_RTE_HIGH(rte_index), high32); in set_rte()
251 iosapic_write(rte->iosapic, IOSAPIC_RTE_LOW(rte_index), low32); in set_rte()
268 struct iosapic_rte_info *rte; in kexec_disable_iosapic() local
275 list_for_each_entry(rte, &info->rtes, in kexec_disable_iosapic()
277 iosapic_write(rte->iosapic, in kexec_disable_iosapic()
278 IOSAPIC_RTE_LOW(rte->rte_index), in kexec_disable_iosapic()
280 iosapic_eoi(rte->iosapic->addr, vec); in kexec_disable_iosapic()
292 struct iosapic_rte_info *rte; in mask_irq() local
299 list_for_each_entry(rte, &iosapic_intr_info[irq].rtes, rte_list) { in mask_irq()
300 rte_index = rte->rte_index; in mask_irq()
301 iosapic_write(rte->iosapic, IOSAPIC_RTE_LOW(rte_index), low32); in mask_irq()
311 struct iosapic_rte_info *rte; in unmask_irq() local
317 list_for_each_entry(rte, &iosapic_intr_info[irq].rtes, rte_list) { in unmask_irq()
318 rte_index = rte->rte_index; in unmask_irq()
319 iosapic_write(rte->iosapic, IOSAPIC_RTE_LOW(rte_index), low32); in unmask_irq()
333 struct iosapic_rte_info *rte; in iosapic_set_affinity() local
367 list_for_each_entry(rte, &iosapic_intr_info[irq].rtes, rte_list) { in iosapic_set_affinity()
368 iosapic = rte->iosapic; in iosapic_set_affinity()
369 rte_index = rte->rte_index; in iosapic_set_affinity()
394 struct iosapic_rte_info *rte; in iosapic_unmask_level_irq() local
404 list_for_each_entry(rte, &iosapic_intr_info[irq].rtes, rte_list) in iosapic_unmask_level_irq()
405 iosapic_eoi(rte->iosapic->addr, vec); in iosapic_unmask_level_irq()
557 struct iosapic_rte_info *rte; in register_intr() local
566 rte = find_rte(irq, gsi); in register_intr()
567 if (!rte) { in register_intr()
568 rte = kzalloc(sizeof (*rte), GFP_ATOMIC); in register_intr()
569 if (!rte) { in register_intr()
575 rte->iosapic = &iosapic_lists[index]; in register_intr()
576 rte->rte_index = gsi - rte->iosapic->gsi_base; in register_intr()
577 rte->refcnt++; in register_intr()
578 list_add_tail(&rte->rte_list, &iosapic_intr_info[irq].rtes); in register_intr()
582 else if (rte->refcnt == NO_REF_RTE) { in register_intr()
591 rte->refcnt++; in register_intr()
718 struct iosapic_rte_info *rte; in iosapic_register_intr() local
731 rte = find_rte(irq, gsi); in iosapic_register_intr()
735 } else if (rte->refcnt != NO_REF_RTE) { in iosapic_register_intr()
736 rte->refcnt++; in iosapic_register_intr()
788 struct iosapic_rte_info *rte; in iosapic_unregister_intr() local
804 if ((rte = find_rte(irq, gsi)) == NULL) { in iosapic_unregister_intr()
811 if (--rte->refcnt > 0) in iosapic_unregister_intr()
814 rte->refcnt = NO_REF_RTE; in iosapic_unregister_intr()
818 iosapic_write(rte->iosapic, IOSAPIC_RTE_LOW(rte->rte_index), low32); in iosapic_unregister_intr()
1012 struct iosapic_rte_info *rte, *temp; in iosapic_delete_rte() local
1014 list_for_each_entry_safe(rte, temp, &iosapic_intr_info[irq].rtes, in iosapic_delete_rte()
1016 if (rte->iosapic->gsi_base + rte->rte_index == gsi) { in iosapic_delete_rte()
1017 if (rte->refcnt) in iosapic_delete_rte()
1020 list_del(&rte->rte_list); in iosapic_delete_rte()
1021 kfree(rte); in iosapic_delete_rte()