diff options
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/amdgpu_ucode.c')
| -rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_ucode.c | 9 | 
1 files changed, 7 insertions, 2 deletions
| diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ucode.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_ucode.c index b14127429f30..d334e42fe0eb 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ucode.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ucode.c @@ -1062,7 +1062,8 @@ int amdgpu_ucode_create_bo(struct amdgpu_device *adev)  {  	if (adev->firmware.load_type != AMDGPU_FW_LOAD_DIRECT) {  		amdgpu_bo_create_kernel(adev, adev->firmware.fw_size, PAGE_SIZE, -			amdgpu_sriov_vf(adev) ? AMDGPU_GEM_DOMAIN_VRAM : AMDGPU_GEM_DOMAIN_GTT, +			(amdgpu_sriov_vf(adev) || fw_bo_location == 1) ? +			AMDGPU_GEM_DOMAIN_VRAM : AMDGPU_GEM_DOMAIN_GTT,  			&adev->firmware.fw_buf,  			&adev->firmware.fw_buf_mc,  			&adev->firmware.fw_buf_ptr); @@ -1397,9 +1398,13 @@ int amdgpu_ucode_request(struct amdgpu_device *adev, const struct firmware **fw,  	if (err)  		return -ENODEV; +  	err = amdgpu_ucode_validate(*fw); -	if (err) +	if (err) {  		dev_dbg(adev->dev, "\"%s\" failed to validate\n", fw_name); +		release_firmware(*fw); +		*fw = NULL; +	}  	return err;  } | 
