Re: [PATCH] drm: radeon: r600_dma: Replace cpu_to_le32() by lower_32_bits()

From: Michel Dänzer
Date: Fri Aug 13 2021 - 11:04:00 EST


On 2021-08-13 10:54 a.m., zhaoxiao wrote:
> This patch fixes the following sparse errors:
> drivers/gpu/drm/radeon/r600_dma.c:247:30: warning: incorrect type in assignment (different base types)
> drivers/gpu/drm/radeon/r600_dma.c:247:30: expected unsigned int volatile [usertype]
> drivers/gpu/drm/radeon/r600_dma.c:247:30: got restricted __le32 [usertype]
>
> Signed-off-by: zhaoxiao <zhaoxiao@xxxxxxxxxxxxx>
> ---
> drivers/gpu/drm/radeon/r600_dma.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/radeon/r600_dma.c b/drivers/gpu/drm/radeon/r600_dma.c
> index fb65e6fb5c4f..a2d0b1edcd22 100644
> --- a/drivers/gpu/drm/radeon/r600_dma.c
> +++ b/drivers/gpu/drm/radeon/r600_dma.c
> @@ -244,7 +244,7 @@ int r600_dma_ring_test(struct radeon_device *rdev,
> gpu_addr = rdev->wb.gpu_addr + index;
>
> tmp = 0xCAFEDEAD;
> - rdev->wb.wb[index/4] = cpu_to_le32(tmp);
> + rdev->wb.wb[index/4] = lower_32_bits(tmp);
>
> r = radeon_ring_lock(rdev, ring, 4);
> if (r) {
>

Seems better to mark rdev->wb.wb as little endian instead. It's read with le32_to_cpu (with some exceptions which look like bugs), which would result in 0xADEDFECA like this.


--
Earthling Michel Dänzer | https://redhat.com
Libre software enthusiast | Mesa and X developer