diff options
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c')
| -rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c | 9 | 
1 files changed, 6 insertions, 3 deletions
| diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c index d33cb344be69..3d0e8f8f733e 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c @@ -937,7 +937,7 @@ static ssize_t amdgpu_debugfs_gpr_read(struct file *f, char __user *buf,  	r = pm_runtime_get_sync(adev->ddev->dev);  	if (r < 0) -		return r; +		goto err;  	r = amdgpu_virt_enable_access_debugfs(adev);  	if (r < 0) @@ -967,7 +967,7 @@ static ssize_t amdgpu_debugfs_gpr_read(struct file *f, char __user *buf,  		value = data[result >> 2];  		r = put_user(value, (uint32_t *)buf);  		if (r) { -			result = r; +			amdgpu_virt_disable_access_debugfs(adev);  			goto err;  		} @@ -976,10 +976,13 @@ static ssize_t amdgpu_debugfs_gpr_read(struct file *f, char __user *buf,  		size -= 4;  	} -err:  	kfree(data);  	amdgpu_virt_disable_access_debugfs(adev);  	return result; + +err: +	kfree(data); +	return r;  }  /** | 
