diff options
author | Michel Dänzer <michel.daenzer@amd.com> | 2017-10-19 17:28:53 +0200 |
---|---|---|
committer | Michel Dänzer <michel@daenzer.net> | 2017-10-20 10:34:34 +0200 |
commit | 9d84934309e4ccd9a43c73d958b8ff10ef2fc990 (patch) | |
tree | 5aa8c4a07ba858876fd136e23f7695ae4729c0af | |
parent | b67a2b62b20c17db7471f5bbea591ab55806cb29 (diff) |
Free pAMDGPUEnt memory in AMDGPUFreeRec
We were freeing it earlier but then still trying to access it in
AMDGPUFreeRec.
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
-rw-r--r-- | src/amdgpu_kms.c | 2 | ||||
-rw-r--r-- | src/amdgpu_probe.c | 8 |
2 files changed, 4 insertions, 6 deletions
diff --git a/src/amdgpu_kms.c b/src/amdgpu_kms.c index 3598dd2..44a99b5 100644 --- a/src/amdgpu_kms.c +++ b/src/amdgpu_kms.c @@ -138,6 +138,8 @@ static void AMDGPUFreeRec(ScrnInfoPtr pScrn) if (!pAMDGPUEnt->fd_ref) { amdgpu_device_deinitialize(pAMDGPUEnt->pDev); amdgpu_kernel_close_fd(pAMDGPUEnt); + free(pPriv->ptr); + pPriv->ptr = NULL; } } diff --git a/src/amdgpu_probe.c b/src/amdgpu_probe.c index fb62cb8..e446539 100644 --- a/src/amdgpu_probe.c +++ b/src/amdgpu_probe.c @@ -227,7 +227,7 @@ static Bool amdgpu_get_scrninfo(int entity_num, struct pci_device *pci_dev) pAMDGPUEnt = pPriv->ptr; if (!amdgpu_open_drm_master(pScrn, pAMDGPUEnt, busid)) - goto error_fd; + goto error; pAMDGPUEnt->fd_ref = 1; @@ -255,8 +255,6 @@ static Bool amdgpu_get_scrninfo(int entity_num, struct pci_device *pci_dev) error_amdgpu: amdgpu_kernel_close_fd(pAMDGPUEnt); -error_fd: - free(pPriv->ptr); error: free(busid); return FALSE; @@ -352,7 +350,7 @@ amdgpu_platform_probe(DriverPtr pDriver, pAMDGPUEnt->platform_dev = dev; pAMDGPUEnt->fd = amdgpu_kernel_open_fd(pScrn, busid, dev); if (pAMDGPUEnt->fd < 0) - goto error_fd; + goto error; pAMDGPUEnt->fd_ref = 1; @@ -380,8 +378,6 @@ amdgpu_platform_probe(DriverPtr pDriver, error_amdgpu: amdgpu_kernel_close_fd(pAMDGPUEnt); -error_fd: - free(pPriv->ptr); error: free(busid); return FALSE; |