[PATCH] drm/amdgpu: fix Coverity explicit null dereferenced warnings

Huang, Tim Tim.Huang at amd.com
Wed Jul 24 07:58:08 UTC 2024


[Public]

Hi Christian,

> -----Original Message-----
> From: Christian König <ckoenig.leichtzumerken at gmail.com>
> Sent: Wednesday, July 24, 2024 3:35 PM
> To: Huang, Tim <Tim.Huang at amd.com>; amd-gfx at lists.freedesktop.org
> Cc: Deucher, Alexander <Alexander.Deucher at amd.com>; Koenig, Christian
> <Christian.Koenig at amd.com>
> Subject: Re: [PATCH] drm/amdgpu: fix Coverity explicit null dereferenced
> warnings
>
> Am 24.07.24 um 09:06 schrieb Tim Huang:
> > This is to address the Coverity explicit null dereferenced warnings by
> > NULL returns from amdgpu_mes_ctx_get_offs* but without follow-up
> > Checks. Meanwhile refactor the code to keep only one *_get_gpu/cpu_addr.
>
> Well nice that you are looking into that, but the short term plan is to remove
> the in kernel MES tests again.
>
> That should also fix the Coverity warnings. Arun already created a patch for
> that which will probably be merged in the next weeks.

Thanks for letting me know.
Will hold and not upstream this patch.

Best Regards,
Tim Huang
>
> Regards,
> Christian.
>
> >
> > Signed-off-by: Tim Huang <tim.huang at amd.com>
> > ---
> >   drivers/gpu/drm/amd/amdgpu/amdgpu_mes.c  |  2 +-
> >   drivers/gpu/drm/amd/amdgpu/amdgpu_ring.c | 14 ++------------
> >   drivers/gpu/drm/amd/amdgpu/amdgpu_ring.h | 17 +++++++++--------
> >   drivers/gpu/drm/amd/amdgpu/amdgpu_sdma.c |  2 +-
> >   drivers/gpu/drm/amd/amdgpu/gfx_v11_0.c   | 14 +++++++-------
> >   drivers/gpu/drm/amd/amdgpu/gfx_v12_0.c   |  8 ++++----
> >   drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c    | 14 +++++++-------
> >   drivers/gpu/drm/amd/amdgpu/sdma_v5_0.c   | 12 ++++++------
> >   drivers/gpu/drm/amd/amdgpu/sdma_v5_2.c   | 12 ++++++------
> >   drivers/gpu/drm/amd/amdgpu/sdma_v6_0.c   | 12 ++++++------
> >   drivers/gpu/drm/amd/amdgpu/sdma_v7_0.c   | 12 ++++++------
> >   11 files changed, 55 insertions(+), 64 deletions(-)
> >
> > diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_mes.c
> > b/drivers/gpu/drm/amd/amdgpu/amdgpu_mes.c
> > index e499d6ba306b..fb708b695db8 100644
> > --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_mes.c
> > +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_mes.c
> > @@ -1082,7 +1082,7 @@ int amdgpu_mes_add_ring(struct amdgpu_device
> *adev, int gang_id,
> >             int offset = offsetof(struct amdgpu_mes_ctx_meta_data,
> >                                   compute[ring->idx].mec_hpd);
> >             ring->eop_gpu_addr =
> > -                   amdgpu_mes_ctx_get_offs_gpu_addr(ring, offset);
> > +                   amdgpu_ring_get_gpu_addr(ring, offset);
> >     }
> >
> >     switch (queue_type) {
> > diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ring.c
> > b/drivers/gpu/drm/amd/amdgpu/amdgpu_ring.c
> > index ad49cecb20b8..01dd7b30ba74 100644
> > --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ring.c
> > +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ring.c
> > @@ -169,16 +169,6 @@ void amdgpu_ring_undo(struct amdgpu_ring *ring)
> >             ring->funcs->end_use(ring);
> >   }
> >
> > -#define amdgpu_ring_get_gpu_addr(ring, offset)                             \
> > -   (ring->is_mes_queue ?                                           \
> > -    (ring->mes_ctx->meta_data_gpu_addr + offset) :                 \
> > -    (ring->adev->wb.gpu_addr + offset * 4))
> > -
> > -#define amdgpu_ring_get_cpu_addr(ring, offset)                             \
> > -   (ring->is_mes_queue ?                                           \
> > -    (void *)((uint8_t *)(ring->mes_ctx->meta_data_ptr) + offset) : \
> > -    (&ring->adev->wb.wb[offset]))
> > -
> >   /**
> >    * amdgpu_ring_init - init driver ring struct.
> >    *
> > @@ -332,8 +322,8 @@ int amdgpu_ring_init(struct amdgpu_device *adev,
> > struct amdgpu_ring *ring,
> >
> >             offset = amdgpu_mes_ctx_get_offs(ring,
> >                                      AMDGPU_MES_CTX_RING_OFFS);
> > -           ring->gpu_addr = amdgpu_mes_ctx_get_offs_gpu_addr(ring, offset);
> > -           ring->ring = amdgpu_mes_ctx_get_offs_cpu_addr(ring, offset);
> > +           ring->gpu_addr = amdgpu_ring_get_gpu_addr(ring, offset);
> > +           ring->ring = amdgpu_ring_get_cpu_addr(ring, offset);
> >             amdgpu_ring_clear_ring(ring);
> >
> >     } else if (ring->ring_obj == NULL) { diff --git
> > a/drivers/gpu/drm/amd/amdgpu/amdgpu_ring.h
> > b/drivers/gpu/drm/amd/amdgpu/amdgpu_ring.h
> > index 582053f1cd56..f65f13d147b4 100644
> > --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ring.h
> > +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ring.h
> > @@ -436,14 +436,15 @@ static inline void
> amdgpu_ring_patch_cond_exec(struct amdgpu_ring *ring,
> >     ring->ring[offset] = cur - offset;
> >   }
> >
> > -#define amdgpu_mes_ctx_get_offs_gpu_addr(ring, offset)                     \
> > -   (ring->is_mes_queue && ring->mes_ctx ?                          \
> > -    (ring->mes_ctx->meta_data_gpu_addr + offset) : 0)
> > -
> > -#define amdgpu_mes_ctx_get_offs_cpu_addr(ring, offset)                     \
> > -   (ring->is_mes_queue && ring->mes_ctx ?                          \
> > -    (void *)((uint8_t *)(ring->mes_ctx->meta_data_ptr) + offset) : \
> > -    NULL)
> > +#define amdgpu_ring_get_gpu_addr(ring, offset)                             \
> > +   (ring->is_mes_queue ?                                           \
> > +   (ring->mes_ctx->meta_data_gpu_addr + offset) :                  \
> > +   (ring->adev->wb.gpu_addr + offset * 4))
> > +
> > +#define amdgpu_ring_get_cpu_addr(ring, offset)                             \
> > +   (ring->is_mes_queue ?                                           \
> > +   ((void *)((uint8_t *)(ring->mes_ctx->meta_data_ptr) + offset)) : \
> > +   ((void *)(&ring->adev->wb.wb[offset])))
> >
> >   int amdgpu_ring_test_helper(struct amdgpu_ring *ring);
> >
> > diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_sdma.c
> > b/drivers/gpu/drm/amd/amdgpu/amdgpu_sdma.c
> > index 183a976ba29d..8eca0f1733ce 100644
> > --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_sdma.c
> > +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_sdma.c
> > @@ -80,7 +80,7 @@ uint64_t amdgpu_sdma_get_csa_mc_addr(struct
> > amdgpu_ring *ring,
> >
> >             offset = offsetof(struct amdgpu_mes_ctx_meta_data,
> >                               sdma[ring->idx].sdma_meta_data);
> > -           csa_mc_addr = amdgpu_mes_ctx_get_offs_gpu_addr(ring, offset);
> > +           csa_mc_addr = amdgpu_ring_get_gpu_addr(ring, offset);
> >     } else {
> >             r = amdgpu_sdma_get_index_from_ring(ring, &index);
> >
> > diff --git a/drivers/gpu/drm/amd/amdgpu/gfx_v11_0.c
> > b/drivers/gpu/drm/amd/amdgpu/gfx_v11_0.c
> > index dcef39907449..abda3fba1cba 100644
> > --- a/drivers/gpu/drm/amd/amdgpu/gfx_v11_0.c
> > +++ b/drivers/gpu/drm/amd/amdgpu/gfx_v11_0.c
> > @@ -546,11 +546,11 @@ static int gfx_v11_0_ring_test_ib(struct
> amdgpu_ring *ring, long timeout)
> >             padding = amdgpu_mes_ctx_get_offs(ring,
> >                                               AMDGPU_MES_CTX_PADDING_OFFS);
> >
> > -           ib.gpu_addr = amdgpu_mes_ctx_get_offs_gpu_addr(ring, offset);
> > -           ib.ptr = amdgpu_mes_ctx_get_offs_cpu_addr(ring, offset);
> > +           ib.gpu_addr = amdgpu_ring_get_gpu_addr(ring, offset);
> > +           ib.ptr = amdgpu_ring_get_cpu_addr(ring, offset);
> >
> > -           gpu_addr = amdgpu_mes_ctx_get_offs_gpu_addr(ring, padding);
> > -           cpu_ptr = amdgpu_mes_ctx_get_offs_cpu_addr(ring, padding);
> > +           gpu_addr = amdgpu_ring_get_gpu_addr(ring, padding);
> > +           cpu_ptr = amdgpu_ring_get_cpu_addr(ring, padding);
> >             *cpu_ptr = cpu_to_le32(0xCAFEDEAD);
> >     } else {
> >             r = amdgpu_device_wb_get(adev, &index); @@ -5895,14 +5895,14
> @@
> > static void gfx_v11_0_ring_emit_de_meta(struct amdgpu_ring *ring, bool
> resume)
> >                               gfx[0].gfx_meta_data) +
> >                     offsetof(struct v10_gfx_meta_data, de_payload);
> >             de_payload_gpu_addr =
> > -                   amdgpu_mes_ctx_get_offs_gpu_addr(ring, offset);
> > +                   amdgpu_ring_get_gpu_addr(ring, offset);
> >             de_payload_cpu_addr =
> > -                   amdgpu_mes_ctx_get_offs_cpu_addr(ring, offset);
> > +                   amdgpu_ring_get_cpu_addr(ring, offset);
> >
> >             offset = offsetof(struct amdgpu_mes_ctx_meta_data,
> >                               gfx[0].gds_backup) +
> >                     offsetof(struct v10_gfx_meta_data, de_payload);
> > -           gds_addr = amdgpu_mes_ctx_get_offs_gpu_addr(ring, offset);
> > +           gds_addr = amdgpu_ring_get_gpu_addr(ring, offset);
> >     } else {
> >             offset = offsetof(struct v10_gfx_meta_data, de_payload);
> >             de_payload_gpu_addr = amdgpu_csa_vaddr(ring->adev) + offset; diff
> > --git a/drivers/gpu/drm/amd/amdgpu/gfx_v12_0.c
> > b/drivers/gpu/drm/amd/amdgpu/gfx_v12_0.c
> > index f384be0d1800..df817b898e48 100644
> > --- a/drivers/gpu/drm/amd/amdgpu/gfx_v12_0.c
> > +++ b/drivers/gpu/drm/amd/amdgpu/gfx_v12_0.c
> > @@ -456,11 +456,11 @@ static int gfx_v12_0_ring_test_ib(struct
> amdgpu_ring *ring, long timeout)
> >             padding = amdgpu_mes_ctx_get_offs(ring,
> >                                               AMDGPU_MES_CTX_PADDING_OFFS);
> >
> > -           ib.gpu_addr = amdgpu_mes_ctx_get_offs_gpu_addr(ring, offset);
> > -           ib.ptr = amdgpu_mes_ctx_get_offs_cpu_addr(ring, offset);
> > +           ib.gpu_addr = amdgpu_ring_get_gpu_addr(ring, offset);
> > +           ib.ptr = amdgpu_ring_get_cpu_addr(ring, offset);
> >
> > -           gpu_addr = amdgpu_mes_ctx_get_offs_gpu_addr(ring, padding);
> > -           cpu_ptr = amdgpu_mes_ctx_get_offs_cpu_addr(ring, padding);
> > +           gpu_addr = amdgpu_ring_get_gpu_addr(ring, padding);
> > +           cpu_ptr = amdgpu_ring_get_cpu_addr(ring, padding);
> >             *cpu_ptr = cpu_to_le32(0xCAFEDEAD);
> >     } else {
> >             r = amdgpu_device_wb_get(adev, &index); diff --git
> > a/drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c
> > b/drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c
> > index 2929c8972ea7..b26658414f3c 100644
> > --- a/drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c
> > +++ b/drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c
> > @@ -5359,7 +5359,7 @@ static void gfx_v9_0_ring_patch_ce_meta(struct
> amdgpu_ring *ring,
> >                                       gfx[0].gfx_meta_data) +
> >                     offsetof(struct v9_gfx_meta_data, ce_payload);
> >             ce_payload_cpu_addr =
> > -                   amdgpu_mes_ctx_get_offs_cpu_addr(ring, payload_offset);
> > +                   amdgpu_ring_get_cpu_addr(ring, payload_offset);
> >     } else {
> >             payload_offset = offsetof(struct v9_gfx_meta_data, ce_payload);
> >             ce_payload_cpu_addr = adev->virt.csa_cpu_addr + payload_offset;
> @@
> > -5391,7 +5391,7 @@ static void gfx_v9_0_ring_patch_de_meta(struct
> amdgpu_ring *ring,
> >                                       gfx[0].gfx_meta_data) +
> >                     offsetof(struct v9_gfx_meta_data, de_payload);
> >             de_payload_cpu_addr =
> > -                   amdgpu_mes_ctx_get_offs_cpu_addr(ring, payload_offset);
> > +                   amdgpu_ring_get_cpu_addr(ring, payload_offset);
> >     } else {
> >             payload_offset = offsetof(struct v9_gfx_meta_data, de_payload);
> >             de_payload_cpu_addr = adev->virt.csa_cpu_addr + payload_offset;
> @@
> > -5590,9 +5590,9 @@ static void gfx_v9_0_ring_emit_ce_meta(struct
> amdgpu_ring *ring, bool resume)
> >                               gfx[0].gfx_meta_data) +
> >                     offsetof(struct v9_gfx_meta_data, ce_payload);
> >             ce_payload_gpu_addr =
> > -                   amdgpu_mes_ctx_get_offs_gpu_addr(ring, offset);
> > +                   amdgpu_ring_get_gpu_addr(ring, offset);
> >             ce_payload_cpu_addr =
> > -                   amdgpu_mes_ctx_get_offs_cpu_addr(ring, offset);
> > +                   amdgpu_ring_get_cpu_addr(ring, offset);
> >     } else {
> >             offset = offsetof(struct v9_gfx_meta_data, ce_payload);
> >             ce_payload_gpu_addr = amdgpu_csa_vaddr(ring->adev) + offset;
> @@
> > -5688,14 +5688,14 @@ static void gfx_v9_0_ring_emit_de_meta(struct
> amdgpu_ring *ring, bool resume, bo
> >                               gfx[0].gfx_meta_data) +
> >                     offsetof(struct v9_gfx_meta_data, de_payload);
> >             de_payload_gpu_addr =
> > -                   amdgpu_mes_ctx_get_offs_gpu_addr(ring, offset);
> > +                   amdgpu_ring_get_gpu_addr(ring, offset);
> >             de_payload_cpu_addr =
> > -                   amdgpu_mes_ctx_get_offs_cpu_addr(ring, offset);
> > +                   amdgpu_ring_get_cpu_addr(ring, offset);
> >
> >             offset = offsetof(struct amdgpu_mes_ctx_meta_data,
> >                               gfx[0].gds_backup) +
> >                     offsetof(struct v9_gfx_meta_data, de_payload);
> > -           gds_addr = amdgpu_mes_ctx_get_offs_gpu_addr(ring, offset);
> > +           gds_addr = amdgpu_ring_get_gpu_addr(ring, offset);
> >     } else {
> >             offset = offsetof(struct v9_gfx_meta_data, de_payload);
> >             de_payload_gpu_addr = amdgpu_csa_vaddr(ring->adev) + offset; diff
> > --git a/drivers/gpu/drm/amd/amdgpu/sdma_v5_0.c
> > b/drivers/gpu/drm/amd/amdgpu/sdma_v5_0.c
> > index b7d33d78bce0..533b1d9964b4 100644
> > --- a/drivers/gpu/drm/amd/amdgpu/sdma_v5_0.c
> > +++ b/drivers/gpu/drm/amd/amdgpu/sdma_v5_0.c
> > @@ -982,8 +982,8 @@ static int sdma_v5_0_ring_test_ring(struct
> amdgpu_ring *ring)
> >             uint32_t offset = 0;
> >             offset = amdgpu_mes_ctx_get_offs(ring,
> >                                      AMDGPU_MES_CTX_PADDING_OFFS);
> > -           gpu_addr = amdgpu_mes_ctx_get_offs_gpu_addr(ring, offset);
> > -           cpu_ptr = amdgpu_mes_ctx_get_offs_cpu_addr(ring, offset);
> > +           gpu_addr = amdgpu_ring_get_gpu_addr(ring, offset);
> > +           cpu_ptr = amdgpu_ring_get_cpu_addr(ring, offset);
> >             *cpu_ptr = tmp;
> >     } else {
> >             r = amdgpu_device_wb_get(adev, &index); @@ -1060,13 +1060,13
> @@
> > static int sdma_v5_0_ring_test_ib(struct amdgpu_ring *ring, long timeout)
> >     if (ring->is_mes_queue) {
> >             uint32_t offset = 0;
> >             offset = amdgpu_mes_ctx_get_offs(ring,
> AMDGPU_MES_CTX_IB_OFFS);
> > -           ib.gpu_addr = amdgpu_mes_ctx_get_offs_gpu_addr(ring, offset);
> > -           ib.ptr = (void *)amdgpu_mes_ctx_get_offs_cpu_addr(ring, offset);
> > +           ib.gpu_addr = amdgpu_ring_get_gpu_addr(ring, offset);
> > +           ib.ptr = (void *)amdgpu_ring_get_cpu_addr(ring, offset);
> >
> >             offset = amdgpu_mes_ctx_get_offs(ring,
> >                                      AMDGPU_MES_CTX_PADDING_OFFS);
> > -           gpu_addr = amdgpu_mes_ctx_get_offs_gpu_addr(ring, offset);
> > -           cpu_ptr = amdgpu_mes_ctx_get_offs_cpu_addr(ring, offset);
> > +           gpu_addr = amdgpu_ring_get_gpu_addr(ring, offset);
> > +           cpu_ptr = amdgpu_ring_get_cpu_addr(ring, offset);
> >             *cpu_ptr = tmp;
> >     } else {
> >             r = amdgpu_device_wb_get(adev, &index); diff --git
> > a/drivers/gpu/drm/amd/amdgpu/sdma_v5_2.c
> > b/drivers/gpu/drm/amd/amdgpu/sdma_v5_2.c
> > index 630b03f2ce3d..e94f52e34489 100644
> > --- a/drivers/gpu/drm/amd/amdgpu/sdma_v5_2.c
> > +++ b/drivers/gpu/drm/amd/amdgpu/sdma_v5_2.c
> > @@ -871,8 +871,8 @@ static int sdma_v5_2_ring_test_ring(struct
> amdgpu_ring *ring)
> >             uint32_t offset = 0;
> >             offset = amdgpu_mes_ctx_get_offs(ring,
> >                                      AMDGPU_MES_CTX_PADDING_OFFS);
> > -           gpu_addr = amdgpu_mes_ctx_get_offs_gpu_addr(ring, offset);
> > -           cpu_ptr = amdgpu_mes_ctx_get_offs_cpu_addr(ring, offset);
> > +           gpu_addr = amdgpu_ring_get_gpu_addr(ring, offset);
> > +           cpu_ptr = amdgpu_ring_get_cpu_addr(ring, offset);
> >             *cpu_ptr = tmp;
> >     } else {
> >             r = amdgpu_device_wb_get(adev, &index); @@ -949,13 +949,13
> @@
> > static int sdma_v5_2_ring_test_ib(struct amdgpu_ring *ring, long timeout)
> >     if (ring->is_mes_queue) {
> >             uint32_t offset = 0;
> >             offset = amdgpu_mes_ctx_get_offs(ring,
> AMDGPU_MES_CTX_IB_OFFS);
> > -           ib.gpu_addr = amdgpu_mes_ctx_get_offs_gpu_addr(ring, offset);
> > -           ib.ptr = (void *)amdgpu_mes_ctx_get_offs_cpu_addr(ring, offset);
> > +           ib.gpu_addr = amdgpu_ring_get_gpu_addr(ring, offset);
> > +           ib.ptr = amdgpu_ring_get_cpu_addr(ring, offset);
> >
> >             offset = amdgpu_mes_ctx_get_offs(ring,
> >                                      AMDGPU_MES_CTX_PADDING_OFFS);
> > -           gpu_addr = amdgpu_mes_ctx_get_offs_gpu_addr(ring, offset);
> > -           cpu_ptr = amdgpu_mes_ctx_get_offs_cpu_addr(ring, offset);
> > +           gpu_addr = amdgpu_ring_get_gpu_addr(ring, offset);
> > +           cpu_ptr = amdgpu_ring_get_cpu_addr(ring, offset);
> >             *cpu_ptr = tmp;
> >     } else {
> >             r = amdgpu_device_wb_get(adev, &index); diff --git
> > a/drivers/gpu/drm/amd/amdgpu/sdma_v6_0.c
> > b/drivers/gpu/drm/amd/amdgpu/sdma_v6_0.c
> > index dab4c2db8c9d..e29260d5b694 100644
> > --- a/drivers/gpu/drm/amd/amdgpu/sdma_v6_0.c
> > +++ b/drivers/gpu/drm/amd/amdgpu/sdma_v6_0.c
> > @@ -845,8 +845,8 @@ static int sdma_v6_0_ring_test_ring(struct
> amdgpu_ring *ring)
> >             uint32_t offset = 0;
> >             offset = amdgpu_mes_ctx_get_offs(ring,
> >                                      AMDGPU_MES_CTX_PADDING_OFFS);
> > -           gpu_addr = amdgpu_mes_ctx_get_offs_gpu_addr(ring, offset);
> > -           cpu_ptr = amdgpu_mes_ctx_get_offs_cpu_addr(ring, offset);
> > +           gpu_addr = amdgpu_ring_get_gpu_addr(ring, offset);
> > +           cpu_ptr = amdgpu_ring_get_cpu_addr(ring, offset);
> >             *cpu_ptr = tmp;
> >     } else {
> >             r = amdgpu_device_wb_get(adev, &index); @@ -923,13 +923,13
> @@
> > static int sdma_v6_0_ring_test_ib(struct amdgpu_ring *ring, long timeout)
> >     if (ring->is_mes_queue) {
> >             uint32_t offset = 0;
> >             offset = amdgpu_mes_ctx_get_offs(ring,
> AMDGPU_MES_CTX_IB_OFFS);
> > -           ib.gpu_addr = amdgpu_mes_ctx_get_offs_gpu_addr(ring, offset);
> > -           ib.ptr = (void *)amdgpu_mes_ctx_get_offs_cpu_addr(ring, offset);
> > +           ib.gpu_addr = amdgpu_ring_get_gpu_addr(ring, offset);
> > +           ib.ptr = amdgpu_ring_get_cpu_addr(ring, offset);
> >
> >             offset = amdgpu_mes_ctx_get_offs(ring,
> >                                      AMDGPU_MES_CTX_PADDING_OFFS);
> > -           gpu_addr = amdgpu_mes_ctx_get_offs_gpu_addr(ring, offset);
> > -           cpu_ptr = amdgpu_mes_ctx_get_offs_cpu_addr(ring, offset);
> > +           gpu_addr = amdgpu_ring_get_gpu_addr(ring, offset);
> > +           cpu_ptr = amdgpu_ring_get_cpu_addr(ring, offset);
> >             *cpu_ptr = tmp;
> >     } else {
> >             r = amdgpu_device_wb_get(adev, &index); diff --git
> > a/drivers/gpu/drm/amd/amdgpu/sdma_v7_0.c
> > b/drivers/gpu/drm/amd/amdgpu/sdma_v7_0.c
> > index 41b5e45697dc..efd3c9bdb7c6 100644
> > --- a/drivers/gpu/drm/amd/amdgpu/sdma_v7_0.c
> > +++ b/drivers/gpu/drm/amd/amdgpu/sdma_v7_0.c
> > @@ -857,8 +857,8 @@ static int sdma_v7_0_ring_test_ring(struct
> amdgpu_ring *ring)
> >             uint32_t offset = 0;
> >             offset = amdgpu_mes_ctx_get_offs(ring,
> >                                      AMDGPU_MES_CTX_PADDING_OFFS);
> > -           gpu_addr = amdgpu_mes_ctx_get_offs_gpu_addr(ring, offset);
> > -           cpu_ptr = amdgpu_mes_ctx_get_offs_cpu_addr(ring, offset);
> > +           gpu_addr = amdgpu_ring_get_gpu_addr(ring, offset);
> > +           cpu_ptr = amdgpu_ring_get_cpu_addr(ring, offset);
> >             *cpu_ptr = tmp;
> >     } else {
> >             r = amdgpu_device_wb_get(adev, &index); @@ -935,13 +935,13
> @@
> > static int sdma_v7_0_ring_test_ib(struct amdgpu_ring *ring, long timeout)
> >     if (ring->is_mes_queue) {
> >             uint32_t offset = 0;
> >             offset = amdgpu_mes_ctx_get_offs(ring,
> AMDGPU_MES_CTX_IB_OFFS);
> > -           ib.gpu_addr = amdgpu_mes_ctx_get_offs_gpu_addr(ring, offset);
> > -           ib.ptr = (void *)amdgpu_mes_ctx_get_offs_cpu_addr(ring, offset);
> > +           ib.gpu_addr = amdgpu_ring_get_gpu_addr(ring, offset);
> > +           ib.ptr = amdgpu_ring_get_cpu_addr(ring, offset);
> >
> >             offset = amdgpu_mes_ctx_get_offs(ring,
> >                                      AMDGPU_MES_CTX_PADDING_OFFS);
> > -           gpu_addr = amdgpu_mes_ctx_get_offs_gpu_addr(ring, offset);
> > -           cpu_ptr = amdgpu_mes_ctx_get_offs_cpu_addr(ring, offset);
> > +           gpu_addr = amdgpu_ring_get_gpu_addr(ring, offset);
> > +           cpu_ptr = amdgpu_ring_get_cpu_addr(ring, offset);
> >             *cpu_ptr = tmp;
> >     } else {
> >             r = amdgpu_device_wb_get(adev, &index);



More information about the amd-gfx mailing list