mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* [PATCH next] drm/amdgpu: Initialize UALink handle uniqueness state
@ 2026-09-14  5:46 Karl Mehltretter
  2026-09-16 17:41 ` Felix Kuehling
  0 siblings, 1 reply; 2+ messages in thread
From: Karl Mehltretter @ 2026-09-14  5:46 UTC (permalink / raw)
  To: Mukul Joshi, Alex Deucher
  Cc: Karl Mehltretter, Felix Kuehling, Christian König,
	David Airlie, Simona Vetter, amd-gfx, dri-devel, linux-kernel

amdgpu_generate_ualink_handle() continues when handle_lo is zero. For
accelerator ID 0, the random value can become zero after the low 10 bits
are cleared. This path reaches while (!unique) without assigning unique.

Clang's -Wconditional-uninitialized reports the read. A reduced
MemorySanitizer test reports use-of-uninitialized-value at the loop
condition.

If the uninitialized value ends the loop, handle 0 is inserted into
exp_xa while robj->ualink_handle_lo still says that the BO has no handle.
A later export can create another entry for the same BO.

Initialize unique to false so the zero-handle path repeats the loop.

Fixes: c67cb19811ec ("drm/amdgpu: Implement UALink handle export")
Assisted-by: LLM
Signed-off-by: Karl Mehltretter <kmehltretter@gmail.com>
---
 drivers/gpu/drm/amd/amdgpu/amdgpu_ualink.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ualink.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_ualink.c
index ab56420..c6b7122 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ualink.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ualink.c
@@ -1819,7 +1819,7 @@ static void amdgpu_ualink_npa_mm_fini(struct amdgpu_device *adev)
 static void amdgpu_generate_ualink_handle(struct amdgpu_device *adev,
 				   struct amdgpu_ualink_handle *handle)
 {
-	bool unique;
+	bool unique = false;
 
 	do {
 		handle->handle_lo = get_random_u64();
base-commit: 68142f986ff04b2b70b31db00f719bf690f64a9a
-- 
2.53.0


^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: [PATCH next] drm/amdgpu: Initialize UALink handle uniqueness state
  2026-09-14  5:46 [PATCH next] drm/amdgpu: Initialize UALink handle uniqueness state Karl Mehltretter
@ 2026-09-16 17:41 ` Felix Kuehling
  0 siblings, 0 replies; 2+ messages in thread
From: Felix Kuehling @ 2026-09-16 17:41 UTC (permalink / raw)
  To: Karl Mehltretter, Mukul Joshi, Alex Deucher
  Cc: Christian König, David Airlie, Simona Vetter, amd-gfx,
	dri-devel, linux-kernel

On 2026-09-14 01:46, Karl Mehltretter wrote:
> amdgpu_generate_ualink_handle() continues when handle_lo is zero. For
> accelerator ID 0, the random value can become zero after the low 10 bits
> are cleared. This path reaches while (!unique) without assigning unique.
>
> Clang's -Wconditional-uninitialized reports the read. A reduced
> MemorySanitizer test reports use-of-uninitialized-value at the loop
> condition.
>
> If the uninitialized value ends the loop, handle 0 is inserted into
> exp_xa while robj->ualink_handle_lo still says that the BO has no handle.
> A later export can create another entry for the same BO.
>
> Initialize unique to false so the zero-handle path repeats the loop.
>
> Fixes: c67cb19811ec ("drm/amdgpu: Implement UALink handle export")
> Assisted-by: LLM
> Signed-off-by: Karl Mehltretter <kmehltretter@gmail.com>

Thanks for the catch. I'm applying the patch to amd-staging-drm-next.

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

Mukul is looking into the other pre-existing issues pointed out by Sashiko.

Regards,
   Felix


> ---
>   drivers/gpu/drm/amd/amdgpu/amdgpu_ualink.c | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ualink.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_ualink.c
> index ab56420..c6b7122 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ualink.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ualink.c
> @@ -1819,7 +1819,7 @@ static void amdgpu_ualink_npa_mm_fini(struct amdgpu_device *adev)
>   static void amdgpu_generate_ualink_handle(struct amdgpu_device *adev,
>   				   struct amdgpu_ualink_handle *handle)
>   {
> -	bool unique;
> +	bool unique = false;
>   
>   	do {
>   		handle->handle_lo = get_random_u64();
> base-commit: 68142f986ff04b2b70b31db00f719bf690f64a9a

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2026-09-16 17:41 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-09-14  5:46 [PATCH next] drm/amdgpu: Initialize UALink handle uniqueness state Karl Mehltretter
2026-09-16 17:41 ` Felix Kuehling

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®