On Thu, Aug 6, 2026 at 3:53 AM Zhu, Lingshan <[email protected]> wrote:
>
> Ping Christian and Alex
>
> I may still need the maintainer's comments to merge this patch.

You can go ahead with Sunil's RB.

Thanks!

Alex

>
> Thanks
> Lingshan
>
> On 7/23/2026 7:17 PM, Khatri, Sunil wrote:
>
> Reviewed-by: Sunil Khatri <[email protected]>
>
> On 23-07-2026 01:53 pm, Zhu Lingshan wrote:
>
> amdgpu_userq_buffer_vas_mapped() checks whether all VAs
> of a queue are mapped before restoring it.
> So that HW won't access any invalid addresses.
>
> Currently, this function assumes all VAs are mapped if
> any VA of a queue has been mapped, which is wrong.
>
> This commit fixes this problem by examining all VAs of
> a queue and reporting false if any of them is not mapped.
>
> Signed-off-by: Zhu Lingshan <[email protected]>
> ---
>   drivers/gpu/drm/amd/amdgpu/amdgpu_userq.c | 16 +++++++++-------
>   1 file changed, 9 insertions(+), 7 deletions(-)
>
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_userq.c 
> b/drivers/gpu/drm/amd/amdgpu/amdgpu_userq.c
> index 3fe10d6af757..2b3cb4ec4835 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_userq.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_userq.c
> @@ -280,22 +280,24 @@ static bool amdgpu_userq_buffer_va_mapped(struct 
> amdgpu_vm *vm, u64 addr)
>     static bool amdgpu_userq_buffer_vas_mapped(struct amdgpu_usermode_queue 
> *queue)
>   {
> -    int i, r = 0;
> +    int i;
> +    bool mapped;
>         for (i = 0; i < ARRAY_SIZE(queue->userq_vas.va_array); i++) {
>           if (!queue->userq_vas.va_array[i])
>               continue;
> -        r += amdgpu_userq_buffer_va_mapped(queue->vm,
> +
> +        mapped = amdgpu_userq_buffer_va_mapped(queue->vm,
>                              queue->userq_vas.va_array[i]);
>           dev_dbg(queue->userq_mgr->adev->dev,
>               "validate the userq mapping:%p va:%llx r:%d\n",
> -            queue, queue->userq_vas.va_array[i], r);
> -    }
> +            queue, queue->userq_vas.va_array[i], mapped);
>   -    if (r != 0)
> -        return true;
> +        if (!mapped)
> +            return false;
> +    }
>   -    return false;
> +    return true;
>   }
>

Reply via email to