[PATCH] drm/amdgpu: check ring being ready before using

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Am 18.01.2017 um 15:45 schrieb Pixel Ding:
> From: Ding Pixel <pding at amd.com>
>
> Return success when the ring is properly initialized, otherwise return
> failure.
>
> Tonga SRIOV VF doesn't have UVD and VCE engines, the initialization of
> these IPs is bypassed. The system crashes if application submit IB to
> their rings which are not ready to use. It could be a common issue if
> IP having ring buffer is disabled for some reason on specific ASIC, so
> it should check the ring being ready to use.
>
> Bug: amdgpu_test crashes system on Tonga VF.

Not a big issue, but when you send out a patch for the second time it is 
good practice to add "v2" to the subject and something like "v2: changed 
xyz...." to the commit message.

>
> Signed-off-by: Ding Pixel <pding at amd.com>

Reviewed-by: Christian König <christian.koenig at amd.com>.

> ---
>   drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c | 7 +++++++
>   1 file changed, 7 insertions(+)
>
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c
> index 08dd97b..6e948e4 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c
> @@ -83,6 +83,13 @@ int amdgpu_cs_get_ring(struct amdgpu_device *adev, u32 ip_type,
>   		}
>   		break;
>   	}
> +
> +	if (!(*out_ring && (*out_ring)->adev)) {
> +		DRM_ERROR("Ring %d is not initialized on IP %d\n",
> +			  ring, ip_type);
> +		return -EINVAL;
> +	}
> +
>   	return 0;
>   }
>   




[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux