Re: [PATCH v7 3/3] iommu/vt-d: Add iotlb flush for nested domain

Yi Liu
2023-12-12T03:56:52Z

On 2023/12/7 02:56, Jason Gunthorpe wrote:
> On Fri, Nov 17, 2023 at 05:18:16AM -0800, Yi Liu wrote:
>> +static int intel_nested_cache_invalidate_user(struct iommu_domain *domain,
>> + struct iommu_user_data_array *array,
>> + u32 *cerror_idx)
>> +{
>> + struct dmar_domain *dmar_domain = to_dmar_domain(domain);
>> + struct iommu_hwpt_vtd_s1_invalidate inv_info;
>> + u32 index;
>> + int ret;
>> +
>> + /* REVISIT:
>> + * VT-d has defined ITE, ICE, IQE for invalidation failure per hardware,
>> + * but no error code yet, so just set the error code to be 0.
>> + */
>> + *cerror_idx = 0;
>> +
>> + for (index = 0; index < array->entry_num; index++) {
>> + ret = iommu_copy_struct_from_user_array(&inv_info, array,
>> + IOMMU_HWPT_DATA_VTD_S1,
>> + index, __reserved);
>> + if (ret) {
>> + pr_err_ratelimited("Failed to fetch invalidation request\n");
>> + break;
>
> No error prints on ioctls!

ok, will remove it.

>
>> + if (inv_info.addr == 0 && inv_info.npages == -1)
>> + intel_flush_iotlb_all(domain);
>
> -1 is clearer written as U64_MAX - same remark for the comment
> documenting it.

sure.

--
Regards,
Yi Liu