On 7/7/26 11:41 AM, Alex Deucher wrote:
> There's no need to crash the kernel for these cases.
> 
> Signed-off-by: Alex Deucher <[email protected]>
> ---
>  drivers/gpu/drm/amd/amdgpu/mes_v11_0.c | 17 ++++++++++-------
>  1 file changed, 10 insertions(+), 7 deletions(-)
> 
> diff --git a/drivers/gpu/drm/amd/amdgpu/mes_v11_0.c 
> b/drivers/gpu/drm/amd/amdgpu/mes_v11_0.c
> index 72ca7302bbfbc..ee5229ae3d75e 100644
> --- a/drivers/gpu/drm/amd/amdgpu/mes_v11_0.c
> +++ b/drivers/gpu/drm/amd/amdgpu/mes_v11_0.c
> @@ -86,7 +86,7 @@ static void mes_v11_0_ring_set_wptr(struct amdgpu_ring 
> *ring)
>                            ring->wptr);
>               WDOORBELL64(ring->doorbell_index, ring->wptr);
>       } else {
> -             BUG();
> +             dev_warn(adev->dev, "mes_v11_0_ring_set_wptr() requires 
> doorbell!\n");

Per scripts/checkpatch.pl:

WARNING: Prefer using '"%s...", __func__' to using 'mes_v11_0_ring_set_wptr', 
this function's name, in a string

>       }
>  }
>  
> @@ -97,12 +97,15 @@ static u64 mes_v11_0_ring_get_rptr(struct amdgpu_ring 
> *ring)
>  
>  static u64 mes_v11_0_ring_get_wptr(struct amdgpu_ring *ring)
>  {
> +     struct amdgpu_device *adev = ring->adev;
>       u64 wptr;
>  
> -     if (ring->use_doorbell)
> +     if (ring->use_doorbell) {
>               wptr = atomic64_read((atomic64_t *)ring->wptr_cpu_addr);
> -     else
> -             BUG();
> +     } else {
> +             dev_warn(adev->dev, "mes_v11_0_ring_get_wptr() requires 
> doorbell!\n");

See above.  Interestingly, scripts/checkpatch.pl doesn't catch this one.

There are additional prints like this in the series.

Thanks,
John

> +             wptr = 0;
> +     }
>       return wptr;
>  }
>  
> @@ -294,7 +297,7 @@ static int convert_to_mes_queue_type(int queue_type)
>       else if (queue_type == AMDGPU_RING_TYPE_SDMA)
>               return MES_QUEUE_TYPE_SDMA;
>       else
> -             BUG();
> +             WARN(1, "Invalid queue type %d\n", queue_type);
>       return -1;
>  }
>  
> @@ -1544,7 +1547,7 @@ static int mes_v11_0_queue_init(struct amdgpu_device 
> *adev,
>       else if (pipe == AMDGPU_MES_SCHED_PIPE)
>               ring = &adev->mes.ring[0];
>       else
> -             BUG();
> +             WARN(1, "Invalid MES pipe %d\n", pipe);
>  
>       if ((pipe == AMDGPU_MES_SCHED_PIPE) &&
>           (amdgpu_in_reset(adev) || adev->in_suspend)) {
> @@ -1627,7 +1630,7 @@ static int mes_v11_0_mqd_sw_init(struct amdgpu_device 
> *adev,
>       else if (pipe == AMDGPU_MES_SCHED_PIPE)
>               ring = &adev->mes.ring[0];
>       else
> -             BUG();
> +             return -EINVAL;
>  
>       if (ring->mqd_obj)
>               return 0;

Reply via email to