Lines Matching refs:source_id
398 static VTDIOTLBEntry *vtd_lookup_iotlb(IntelIOMMUState *s, uint16_t source_id, in vtd_lookup_iotlb() argument
408 key.sid = source_id; in vtd_lookup_iotlb()
421 static void vtd_update_iotlb(IntelIOMMUState *s, uint16_t source_id, in vtd_update_iotlb() argument
430 trace_vtd_iotlb_page_update(source_id, addr, pte, domain_id); in vtd_update_iotlb()
445 key->sid = source_id; in vtd_update_iotlb()
553 static bool vtd_try_collapse_fault(IntelIOMMUState *s, uint16_t source_id) in vtd_try_collapse_fault() argument
562 ((frcd_reg & VTD_FRCD_SID_MASK) == source_id)) { in vtd_try_collapse_fault()
571 static void vtd_report_frcd_fault(IntelIOMMUState *s, uint64_t source_id, in vtd_report_frcd_fault() argument
582 if (vtd_try_collapse_fault(s, source_id)) { in vtd_report_frcd_fault()
621 static void vtd_report_dmar_fault(IntelIOMMUState *s, uint16_t source_id, in vtd_report_dmar_fault() argument
630 trace_vtd_dmar_fault(source_id, fault, addr, is_write); in vtd_report_dmar_fault()
633 hi = VTD_FRCD_SID(source_id) | VTD_FRCD_FR(fault) | in vtd_report_dmar_fault()
639 vtd_report_frcd_fault(s, source_id, hi, lo); in vtd_report_dmar_fault()
643 static void vtd_report_ir_fault(IntelIOMMUState *s, uint64_t source_id, in vtd_report_ir_fault() argument
649 hi = VTD_FRCD_SID(source_id) | VTD_FRCD_FR(fault); in vtd_report_ir_fault()
651 vtd_report_frcd_fault(s, source_id, hi, lo); in vtd_report_ir_fault()
1888 static void vtd_pt_enable_fast_path(IntelIOMMUState *s, uint16_t source_id) in vtd_pt_enable_fast_path() argument
1893 vtd_as = vtd_get_as_by_sid(s, source_id); in vtd_pt_enable_fast_path()
1904 trace_vtd_pt_enable_fast_path(source_id, success); in vtd_pt_enable_fast_path()
2060 uint16_t source_id, in vtd_report_fault() argument
2069 vtd_report_dmar_fault(s, source_id, addr, err, is_write, in vtd_report_fault()
2096 uint16_t source_id = PCI_BUILD_BDF(bus_num, devfn); in vtd_do_iommu_translate() local
2118 iotlb_entry = vtd_lookup_iotlb(s, source_id, pasid, addr); in vtd_do_iommu_translate()
2120 trace_vtd_iotlb_page_hit(source_id, addr, iotlb_entry->pte, in vtd_do_iommu_translate()
2140 source_id, addr, is_write, in vtd_do_iommu_translate()
2153 source_id, addr, is_write, in vtd_do_iommu_translate()
2178 trace_vtd_translate_pt(source_id, entry->iova); in vtd_do_iommu_translate()
2189 vtd_pt_enable_fast_path(s, source_id); in vtd_do_iommu_translate()
2196 iotlb_entry = vtd_lookup_iotlb(s, source_id, pasid, addr); in vtd_do_iommu_translate()
2198 trace_vtd_iotlb_page_hit(source_id, addr, iotlb_entry->pte, in vtd_do_iommu_translate()
2240 vtd_report_fault(s, -ret_fr, is_fpd_set, source_id, in vtd_do_iommu_translate()
2247 vtd_update_iotlb(s, source_id, vtd_get_domain_id(s, &ce, pasid), in vtd_do_iommu_translate()
2330 uint16_t source_id, in vtd_context_device_invalidate() argument
2338 trace_vtd_inv_desc_cc_devices(source_id, func_mask); in vtd_context_device_invalidate()
2358 bus_n = VTD_SID_TO_BUS(source_id); in vtd_context_device_invalidate()
2359 devfn = VTD_SID_TO_DEVFN(source_id); in vtd_context_device_invalidate()
3840 uint16_t mask, source_id; in vtd_irte_get() local
3901 source_id = entry->irte.source_id; in vtd_irte_get()
3908 if ((source_id & mask) != (sid & mask)) { in vtd_irte_get()
3911 __func__, index, sid, source_id); in vtd_irte_get()
3920 bus_max = source_id >> 8; in vtd_irte_get()
3921 bus_min = source_id & 0xff; in vtd_irte_get()