drm/amdgpu: return early on error while setting bar0 memtype
authorNirmoy Das <nirmoy.das@amd.com>
Fri, 29 Oct 2021 14:06:04 +0000 (16:06 +0200)
committerAlex Deucher <alexander.deucher@amd.com>
Wed, 17 Nov 2021 21:58:04 +0000 (16:58 -0500)
We set WC memtype for aper_base but don't check return value
of arch_io_reserve_memtype_wc(). Be more defensive and return
early on error.

Signed-off-by: Nirmoy Das <nirmoy.das@amd.com>
Reviewed-by: Christian König <christian.koenig@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/amdgpu/amdgpu_object.c

index 4fcfc2313b8ce122063652779cbee442b027942b..3a7b56e57cec114afee1c117c2ecef79a0543f2a 100644 (file)
@@ -1032,9 +1032,14 @@ int amdgpu_bo_init(struct amdgpu_device *adev)
        /* On A+A platform, VRAM can be mapped as WB */
        if (!adev->gmc.xgmi.connected_to_cpu) {
                /* reserve PAT memory space to WC for VRAM */
-               arch_io_reserve_memtype_wc(adev->gmc.aper_base,
+               int r = arch_io_reserve_memtype_wc(adev->gmc.aper_base,
                                adev->gmc.aper_size);
 
+               if (r) {
+                       DRM_ERROR("Unable to set WC memtype for the aperture base\n");
+                       return r;
+               }
+
                /* Add an MTRR for the VRAM */
                adev->gmc.vram_mtrr = arch_phys_wc_add(adev->gmc.aper_base,
                                adev->gmc.aper_size);