2014-04-14 22:10:58

by Christoph Jaeger

[permalink] [raw]
Subject: [PATCH] drm/radeon: fix VCE fence command

Due to a type mismatch that causes an implicit type conversion, the
upper 32 bits of the GPU address have been zeroed out when adding to the
command buffer.

Picked up by Coverity - CID 1198624.

Signed-off-by: Christoph Jaeger <[email protected]>
---
drivers/gpu/drm/radeon/radeon_vce.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/radeon/radeon_vce.c b/drivers/gpu/drm/radeon/radeon_vce.c
index 76e9904..ced53dd 100644
--- a/drivers/gpu/drm/radeon/radeon_vce.c
+++ b/drivers/gpu/drm/radeon/radeon_vce.c
@@ -613,7 +613,7 @@ void radeon_vce_fence_emit(struct radeon_device *rdev,
struct radeon_fence *fence)
{
struct radeon_ring *ring = &rdev->ring[fence->ring];
- uint32_t addr = rdev->fence_drv[fence->ring].gpu_addr;
+ uint64_t addr = rdev->fence_drv[fence->ring].gpu_addr;

radeon_ring_write(ring, VCE_CMD_FENCE);
radeon_ring_write(ring, addr);
--
1.9.0


2014-04-14 22:13:20

by Deucher, Alexander

[permalink] [raw]
Subject: RE: [PATCH] drm/radeon: fix VCE fence command

> -----Original Message-----
> From: Christoph Jaeger [mailto:[email protected]]
> Sent: Monday, April 14, 2014 6:10 PM
> To: Deucher, Alexander; Koenig, Christian; [email protected]
> Cc: [email protected]; [email protected]; Christoph
> Jaeger
> Subject: [PATCH] drm/radeon: fix VCE fence command
>
> Due to a type mismatch that causes an implicit type conversion, the
> upper 32 bits of the GPU address have been zeroed out when adding to the
> command buffer.
>
> Picked up by Coverity - CID 1198624.
>
> Signed-off-by: Christoph Jaeger <[email protected]>

Good catch!

Reviewed-by: Alex Deucher <[email protected]>

> ---
> drivers/gpu/drm/radeon/radeon_vce.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/radeon/radeon_vce.c
> b/drivers/gpu/drm/radeon/radeon_vce.c
> index 76e9904..ced53dd 100644
> --- a/drivers/gpu/drm/radeon/radeon_vce.c
> +++ b/drivers/gpu/drm/radeon/radeon_vce.c
> @@ -613,7 +613,7 @@ void radeon_vce_fence_emit(struct radeon_device
> *rdev,
> struct radeon_fence *fence)
> {
> struct radeon_ring *ring = &rdev->ring[fence->ring];
> - uint32_t addr = rdev->fence_drv[fence->ring].gpu_addr;
> + uint64_t addr = rdev->fence_drv[fence->ring].gpu_addr;
>
> radeon_ring_write(ring, VCE_CMD_FENCE);
> radeon_ring_write(ring, addr);
> --
> 1.9.0

2014-04-15 09:17:34

by Christian König

[permalink] [raw]
Subject: Re: [PATCH] drm/radeon: fix VCE fence command

Am 15.04.2014 00:13, schrieb Deucher, Alexander:
>> -----Original Message-----
>> From: Christoph Jaeger [mailto:[email protected]]
>> Sent: Monday, April 14, 2014 6:10 PM
>> To: Deucher, Alexander; Koenig, Christian; [email protected]
>> Cc: [email protected]; [email protected]; Christoph
>> Jaeger
>> Subject: [PATCH] drm/radeon: fix VCE fence command
>>
>> Due to a type mismatch that causes an implicit type conversion, the
>> upper 32 bits of the GPU address have been zeroed out when adding to the
>> command buffer.
>>
>> Picked up by Coverity - CID 1198624.
>>
>> Signed-off-by: Christoph Jaeger <[email protected]>
> Good catch!

Indeed.

>
> Reviewed-by: Alex Deucher <[email protected]>

Added to my 3.15 fixes queue.

Thanks,
Christian.

>
>> ---
>> drivers/gpu/drm/radeon/radeon_vce.c | 2 +-
>> 1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/drivers/gpu/drm/radeon/radeon_vce.c
>> b/drivers/gpu/drm/radeon/radeon_vce.c
>> index 76e9904..ced53dd 100644
>> --- a/drivers/gpu/drm/radeon/radeon_vce.c
>> +++ b/drivers/gpu/drm/radeon/radeon_vce.c
>> @@ -613,7 +613,7 @@ void radeon_vce_fence_emit(struct radeon_device
>> *rdev,
>> struct radeon_fence *fence)
>> {
>> struct radeon_ring *ring = &rdev->ring[fence->ring];
>> - uint32_t addr = rdev->fence_drv[fence->ring].gpu_addr;
>> + uint64_t addr = rdev->fence_drv[fence->ring].gpu_addr;
>>
>> radeon_ring_write(ring, VCE_CMD_FENCE);
>> radeon_ring_write(ring, addr);
>> --
>> 1.9.0