diff options
author | Michel Dänzer <michel.daenzer@amd.com> | 2015-10-28 17:53:27 +0900 |
---|---|---|
committer | Michel Dänzer <michel@daenzer.net> | 2015-10-30 18:33:22 +0900 |
commit | 8e7ee03f55c2f3874f6e84daeb5700f8b8037a51 (patch) | |
tree | 1524004514b06429a0ef938bba22f887eba7c7a9 | |
parent | 6bab8fabb37eb131e131ce59446c214ded28f779 (diff) |
Remove amdgpu_reference_drm_fd
Increase pAMDGPUEnt->fd_ref in the probe code instead when we're reusing
the existing fd.
The previous reference counting was imbalanced, so pAMDGPUEnt->fd_ref
could never go to 0.
Reviewed-by: Jammy Zhou <Jammy.Zhou@amd.com>
-rw-r--r-- | src/amdgpu_kms.c | 9 | ||||
-rw-r--r-- | src/amdgpu_probe.c | 2 |
2 files changed, 2 insertions, 9 deletions
diff --git a/src/amdgpu_kms.c b/src/amdgpu_kms.c index 7861cf6..5e17525 100644 --- a/src/amdgpu_kms.c +++ b/src/amdgpu_kms.c @@ -624,13 +624,6 @@ static Bool AMDGPUPreInitChipType_KMS(ScrnInfoPtr pScrn) return TRUE; } -static void amdgpu_reference_drm_fd(ScrnInfoPtr pScrn) -{ - AMDGPUEntPtr pAMDGPUEnt = AMDGPUEntPriv(pScrn); - - pAMDGPUEnt->fd_ref++; -} - static Bool amdgpu_get_tile_config(ScrnInfoPtr pScrn) { AMDGPUInfoPtr info = AMDGPUPTR(pScrn); @@ -767,8 +760,6 @@ Bool AMDGPUPreInit_KMS(ScrnInfoPtr pScrn, int flags) if (!AMDGPUPreInitChipType_KMS(pScrn)) goto fail; - amdgpu_reference_drm_fd(pScrn); - info->dri2.available = FALSE; info->dri2.enabled = FALSE; info->dri2.pKernelDRMVersion = drmGetVersion(pAMDGPUEnt->fd); diff --git a/src/amdgpu_probe.c b/src/amdgpu_probe.c index 61605b9..e4f5c75 100644 --- a/src/amdgpu_probe.c +++ b/src/amdgpu_probe.c @@ -245,6 +245,7 @@ static Bool amdgpu_get_scrninfo(int entity_num, struct pci_device *pci_dev) } } else { pAMDGPUEnt = pPriv->ptr; + pAMDGPUEnt->fd_ref++; } xf86SetEntityInstanceForScreen(pScrn, pEnt->index, @@ -360,6 +361,7 @@ amdgpu_platform_probe(DriverPtr pDriver, } } else { pAMDGPUEnt = pPriv->ptr; + pAMDGPUEnt->fd_ref++; } pAMDGPUEnt->platform_dev = dev; |