Re: [PATCH] drm/amdgpu: fix SI failure due to doorbells allocation

From: Alex Deucher
Date: Mon Oct 09 2023 - 14:46:12 EST


Applied. Thanks!

On Mon, Oct 9, 2023 at 5:27 AM Sharma, Shashank <Shashank.Sharma@xxxxxxx> wrote:
>
> [AMD Official Use Only - General]
>
> Reviewed-by: Shashank Sharma <shashank.sharma@xxxxxxx>
>
> Regards
> Shashank
> -----Original Message-----
> From: Icenowy Zheng <uwu@xxxxxxxxxx>
> Sent: Sunday, October 8, 2023 8:47 AM
> To: Deucher, Alexander <Alexander.Deucher@xxxxxxx>; Koenig, Christian <Christian.Koenig@xxxxxxx>; Pan, Xinhui <Xinhui.Pan@xxxxxxx>; David Airlie <airlied@xxxxxxxxx>; Daniel Vetter <daniel@xxxxxxxx>; Sharma, Shashank <Shashank.Sharma@xxxxxxx>; Yadav, Arvind <Arvind.Yadav@xxxxxxx>
> Cc: amd-gfx@xxxxxxxxxxxxxxxxxxxxx; dri-devel@xxxxxxxxxxxxxxxxxxxxx; linux-kernel@xxxxxxxxxxxxxxx; Icenowy Zheng <uwu@xxxxxxxxxx>
> Subject: [PATCH] drm/amdgpu: fix SI failure due to doorbells allocation
>
> SI hardware does not have doorbells at all, however currently the code will try to do the allocation and thus fail, makes SI AMDGPU not usable.
>
> Fix this failure by skipping doorbells allocation when doorbells count is zero.
>
> Fixes: 54c30d2a8def ("drm/amdgpu: create kernel doorbell pages")
> Signed-off-by: Icenowy Zheng <uwu@xxxxxxxxxx>
> ---
> drivers/gpu/drm/amd/amdgpu/amdgpu_doorbell_mgr.c | 4 ++++
> 1 file changed, 4 insertions(+)
>
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_doorbell_mgr.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_doorbell_mgr.c
> index d0249ada91d30..599aece42017a 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_doorbell_mgr.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_doorbell_mgr.c
> @@ -142,6 +142,10 @@ int amdgpu_doorbell_create_kernel_doorbells(struct amdgpu_device *adev)
> int r;
> int size;
>
> + /* SI HW does not have doorbells, skip allocation */
> + if (adev->doorbell.num_kernel_doorbells == 0)
> + return 0;
> +
> /* Reserve first num_kernel_doorbells (page-aligned) for kernel ops */
> size = ALIGN(adev->doorbell.num_kernel_doorbells * sizeof(u32), PAGE_SIZE);
>
> --
> 2.39.1
>