diff options
| author | Hawking Zhang <Hawking.Zhang@amd.com> | 2023-08-29 23:20:27 +0800 | 
|---|---|---|
| committer | Alex Deucher <alexander.deucher@amd.com> | 2023-08-30 15:51:16 -0400 | 
| commit | bf7aa8bea9cbe26dfc7fe5cf9c0ed05a419dbb64 (patch) | |
| tree | ddb490c50aed2ffbb7aa689ef6d1b5fa6795f22f /drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c | |
| parent | eae369917516fff195a49bdff89dcf230671cd6b (diff) | |
drm/amdgpu: Free ras cmd input buffer properly
Do not access the pointer for ras input cmd buffer
if it is even not allocated.
Signed-off-by: Hawking Zhang <Hawking.Zhang@amd.com>
Reviewed-by: Stanley Yang <Stanley.Yang@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c')
| -rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c | 14 | 
1 files changed, 7 insertions, 7 deletions
| diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c index e47600a8e88e..8eb6f6943778 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c @@ -764,7 +764,7 @@ int amdgpu_ras_feature_enable(struct amdgpu_device *adev,  {  	struct amdgpu_ras *con = amdgpu_ras_get_context(adev);  	union ta_ras_cmd_input *info; -	int ret = 0; +	int ret;  	if (!con)  		return -EINVAL; @@ -774,7 +774,7 @@ int amdgpu_ras_feature_enable(struct amdgpu_device *adev,  	/* Force issue enable or disable ras feature commands */  	if (head->block != AMDGPU_RAS_BLOCK__GFX &&  	    !amdgpu_ras_is_feature_allowed(adev, head)) -		goto out; +		return 0;  	/* Only enable gfx ras feature from host side */  	if (head->block == AMDGPU_RAS_BLOCK__GFX && @@ -802,16 +802,16 @@ int amdgpu_ras_feature_enable(struct amdgpu_device *adev,  				enable ? "enable":"disable",  				get_ras_block_str(head),  				amdgpu_ras_is_poison_mode_supported(adev), ret); -			goto out; +			return ret;  		} + +		kfree(info);  	}  	/* setup the obj */  	__amdgpu_ras_feature_enable(adev, head, enable); -out: -	if (head->block == AMDGPU_RAS_BLOCK__GFX) -		kfree(info); -	return ret; + +	return 0;  }  /* Only used in device probe stage and called only once. */ | 
