Browse Source

drm/amdgpu: check before checking pci bridge registers

Make sure we are not the root device before attempting to
read the pcie bridge registers to check the pcie gen speeed.

Fixes a crash when the device is passed through to a VM.

Reviewed-by: Christian König <christian.koenig@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Cc: stable@vger.kernel.org
Alex Deucher 9 years ago
parent
commit
e79d5c0870
2 changed files with 6 additions and 0 deletions
  1. 3 0
      drivers/gpu/drm/amd/amdgpu/cik.c
  2. 3 0
      drivers/gpu/drm/amd/amdgpu/vi.c

+ 3 - 0
drivers/gpu/drm/amd/amdgpu/cik.c

@@ -1567,6 +1567,9 @@ static void cik_pcie_gen3_enable(struct amdgpu_device *adev)
 	int ret, i;
 	int ret, i;
 	u16 tmp16;
 	u16 tmp16;
 
 
+	if (pci_is_root_bus(adev->pdev->bus))
+		return;
+
 	if (amdgpu_pcie_gen2 == 0)
 	if (amdgpu_pcie_gen2 == 0)
 		return;
 		return;
 
 

+ 3 - 0
drivers/gpu/drm/amd/amdgpu/vi.c

@@ -1005,6 +1005,9 @@ static void vi_pcie_gen3_enable(struct amdgpu_device *adev)
 	u32 mask;
 	u32 mask;
 	int ret;
 	int ret;
 
 
+	if (pci_is_root_bus(adev->pdev->bus))
+		return;
+
 	if (amdgpu_pcie_gen2 == 0)
 	if (amdgpu_pcie_gen2 == 0)
 		return;
 		return;