Re: [PATCH v7 2/7] perf/amd/iommu: Modify functions to query max banks and counters

From: Joerg Roedel
Date: Tue Jan 10 2017 - 09:43:49 EST


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