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; > } >
