[PATCH] drm/amdkfd: Fix iterator used outside loop in 'kfd_add_peer_prop()'

Felix Kuehling felix.kuehling at amd.com
Tue Jan 2 16:35:43 UTC 2024


On 2023-12-29 04:43, Srinivasan Shanmugam wrote:
> Fix the following about iterator use:
> drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_topology.c:1456 kfd_add_peer_prop() warn: iterator used outside loop: 'iolink3'
>
> Cc: Felix Kuehling <Felix.Kuehling at amd.com>
> Cc: Christian König <christian.koenig at amd.com>
> Cc: Alex Deucher <alexander.deucher at amd.com>
> Signed-off-by: Srinivasan Shanmugam <srinivasan.shanmugam at amd.com>

Reviewed-by: Felix Kuehling <felix.kuehling at amd.com>


> ---
>   drivers/gpu/drm/amd/amdkfd/kfd_topology.c | 24 ++++++++++++-----------
>   1 file changed, 13 insertions(+), 11 deletions(-)
>
> diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_topology.c b/drivers/gpu/drm/amd/amdkfd/kfd_topology.c
> index dc7c8312e8c7..68640e46312f 100644
> --- a/drivers/gpu/drm/amd/amdkfd/kfd_topology.c
> +++ b/drivers/gpu/drm/amd/amdkfd/kfd_topology.c
> @@ -1449,17 +1449,19 @@ static int kfd_add_peer_prop(struct kfd_topology_device *kdev,
>   		/* CPU->CPU  link*/
>   		cpu_dev = kfd_topology_device_by_proximity_domain(iolink1->node_to);
>   		if (cpu_dev) {
> -			list_for_each_entry(iolink3, &cpu_dev->io_link_props, list)
> -				if (iolink3->node_to == iolink2->node_to)
> -					break;
> -
> -			props->weight += iolink3->weight;
> -			props->min_latency += iolink3->min_latency;
> -			props->max_latency += iolink3->max_latency;
> -			props->min_bandwidth = min(props->min_bandwidth,
> -							iolink3->min_bandwidth);
> -			props->max_bandwidth = min(props->max_bandwidth,
> -							iolink3->max_bandwidth);
> +			list_for_each_entry(iolink3, &cpu_dev->io_link_props, list) {
> +				if (iolink3->node_to != iolink2->node_to)
> +					continue;
> +
> +				props->weight += iolink3->weight;
> +				props->min_latency += iolink3->min_latency;
> +				props->max_latency += iolink3->max_latency;
> +				props->min_bandwidth = min(props->min_bandwidth,
> +							   iolink3->min_bandwidth);
> +				props->max_bandwidth = min(props->max_bandwidth,
> +							   iolink3->max_bandwidth);
> +				break;
> +			}
>   		} else {
>   			WARN(1, "CPU node not found");
>   		}


More information about the amd-gfx mailing list