Reviewed-by: Clément Mathieu--Drif<clement.mathieu--d...@eviden.com>


On 18/07/2024 10:16, Zhenzhong Duan wrote:
> Caution: External email. Do not open attachments or click links, unless this 
> email comes from a known sender and you know the content is safe.
>
>
> When guest configures Nested Translation(011b) or First-stage Translation only
> (001b), type check passed unaccurately.
>
> Fails the type check in those cases as their simulation isn't supported yet.
>
> Fixes: fb43cf739e1 ("intel_iommu: scalable mode emulation")
> Suggested-by: Yi Liu <yi.l....@intel.com>
> Signed-off-by: Zhenzhong Duan <zhenzhong.d...@intel.com>
> ---
>   hw/i386/intel_iommu.c | 12 ++++--------
>   1 file changed, 4 insertions(+), 8 deletions(-)
>
> diff --git a/hw/i386/intel_iommu.c b/hw/i386/intel_iommu.c
> index e65f5b29a5..1cff8b00ae 100644
> --- a/hw/i386/intel_iommu.c
> +++ b/hw/i386/intel_iommu.c
> @@ -759,20 +759,16 @@ static inline bool vtd_pe_type_check(X86IOMMUState 
> *x86_iommu,
>                                        VTDPASIDEntry *pe)
>   {
>       switch (VTD_PE_GET_TYPE(pe)) {
> -    case VTD_SM_PASID_ENTRY_FLT:
>       case VTD_SM_PASID_ENTRY_SLT:
> -    case VTD_SM_PASID_ENTRY_NESTED:
> -        break;
> +        return true;
>       case VTD_SM_PASID_ENTRY_PT:
> -        if (!x86_iommu->pt_supported) {
> -            return false;
> -        }
> -        break;
> +        return x86_iommu->pt_supported;
> +    case VTD_SM_PASID_ENTRY_FLT:
> +    case VTD_SM_PASID_ENTRY_NESTED:
>       default:
>           /* Unknown type */
>           return false;
>       }
> -    return true;
>   }
>
>   static inline bool vtd_pdire_present(VTDPASIDDirEntry *pdire)
> --
> 2.34.1
>

Reply via email to