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!

> +             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.

Jason

Reply via email to