intel_iommu: provide vtd_ce_get_type()
Helper to fetch VT-d context entry type. Signed-off-by: Peter Xu <peterx@redhat.com> Reviewed-by: Michael S. Tsirkin <mst@redhat.com> Signed-off-by: Michael S. Tsirkin <mst@redhat.com> Reviewed-by: Jason Wang <jasowang@redhat.com>
This commit is contained in:
parent
8f7d7161dd
commit
127ff5c356
@ -595,6 +595,11 @@ static inline uint32_t vtd_ce_get_agaw(VTDContextEntry *ce)
|
|||||||
return 30 + (ce->hi & VTD_CONTEXT_ENTRY_AW) * 9;
|
return 30 + (ce->hi & VTD_CONTEXT_ENTRY_AW) * 9;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static inline uint32_t vtd_ce_get_type(VTDContextEntry *ce)
|
||||||
|
{
|
||||||
|
return ce->lo & VTD_CONTEXT_ENTRY_TT;
|
||||||
|
}
|
||||||
|
|
||||||
static inline uint64_t vtd_iova_limit(VTDContextEntry *ce)
|
static inline uint64_t vtd_iova_limit(VTDContextEntry *ce)
|
||||||
{
|
{
|
||||||
uint32_t ce_agaw = vtd_ce_get_agaw(ce);
|
uint32_t ce_agaw = vtd_ce_get_agaw(ce);
|
||||||
@ -865,7 +870,7 @@ static int vtd_dev_to_context_entry(IntelIOMMUState *s, uint8_t bus_num,
|
|||||||
trace_vtd_ce_invalid(ce->hi, ce->lo);
|
trace_vtd_ce_invalid(ce->hi, ce->lo);
|
||||||
return -VTD_FR_CONTEXT_ENTRY_INV;
|
return -VTD_FR_CONTEXT_ENTRY_INV;
|
||||||
} else {
|
} else {
|
||||||
switch (ce->lo & VTD_CONTEXT_ENTRY_TT) {
|
switch (vtd_ce_get_type(ce)) {
|
||||||
case VTD_CONTEXT_TT_MULTI_LEVEL:
|
case VTD_CONTEXT_TT_MULTI_LEVEL:
|
||||||
/* fall through */
|
/* fall through */
|
||||||
case VTD_CONTEXT_TT_DEV_IOTLB:
|
case VTD_CONTEXT_TT_DEV_IOTLB:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user