On Mon, Jan 09, 2017 at 09:33:42PM -0600, Suthikulpanit, Suravee wrote:
> +static struct amd_iommu *get_amd_iommu(uint idx)
> +{
> +     uint i = 0;
> +     struct amd_iommu *iommu = NULL;
> +
> +     for_each_iommu(iommu) {
> +             if (i == idx)
> +                     break;
> +             i++;
> +     }
> +     return iommu;
> +}

Sorry for missing that in the last review, but this function returns
just the last iommu in the list when there are less iommus than the
requested index.

Is that intentional? The following code checks for !iommu, so I guess
not. It should look more like this then:

        static struct amd_iommu *get_amd_iommu(uint idx)
        {
                uint i = 0;
                struct amd_iommu *iommu, *ret = NULL;

                for_each_iommu(iommu)
                        if (i++ == idx) {
                                ret = iommu;
                                break;
                        }
                return ret;
        }


Regards,

        Joerg

Reply via email to