From: Michel Dänzer <michel.daenzer@xxxxxxx> Preparation for the following change. Assign pAMDGPUEnt->fd = -1 instead of 0 when we're not using the file descriptor anymore. Signed-off-by: Michel Dänzer <michel.daenzer at amd.com> --- src/amdgpu_kms.c | 7 +------ src/amdgpu_probe.c | 10 ++++++++++ src/amdgpu_probe.h | 2 ++ 3 files changed, 13 insertions(+), 6 deletions(-) diff --git a/src/amdgpu_kms.c b/src/amdgpu_kms.c index 31c2e86f2..92bf5fadf 100644 --- a/src/amdgpu_kms.c +++ b/src/amdgpu_kms.c @@ -132,12 +132,7 @@ static void AMDGPUFreeRec(ScrnInfoPtr pScrn) pAMDGPUEnt->fd_ref--; if (!pAMDGPUEnt->fd_ref) { amdgpu_device_deinitialize(pAMDGPUEnt->pDev); -#ifdef XF86_PDEV_SERVER_FD - if (!(pAMDGPUEnt->platform_dev && - pAMDGPUEnt->platform_dev->flags & XF86_PDEV_SERVER_FD)) -#endif - drmClose(pAMDGPUEnt->fd); - pAMDGPUEnt->fd = 0; + amdgpu_kernel_close_fd(pAMDGPUEnt); } } diff --git a/src/amdgpu_probe.c b/src/amdgpu_probe.c index 94da7f623..fc93ac6a2 100644 --- a/src/amdgpu_probe.c +++ b/src/amdgpu_probe.c @@ -134,6 +134,16 @@ static int amdgpu_kernel_open_fd(ScrnInfoPtr pScrn, char *busid, return fd; } +void amdgpu_kernel_close_fd(AMDGPUEntPtr pAMDGPUEnt) +{ +#ifdef XF86_PDEV_SERVER_FD + if (!(pAMDGPUEnt->platform_dev && + pAMDGPUEnt->platform_dev->flags & XF86_PDEV_SERVER_FD)) +#endif + drmClose(pAMDGPUEnt->fd); + pAMDGPUEnt->fd = -1; +} + static Bool amdgpu_open_drm_master(ScrnInfoPtr pScrn, AMDGPUEntPtr pAMDGPUEnt, char *busid) { diff --git a/src/amdgpu_probe.h b/src/amdgpu_probe.h index 0f43233c3..9e4a9a451 100644 --- a/src/amdgpu_probe.h +++ b/src/amdgpu_probe.h @@ -71,6 +71,8 @@ typedef struct { char *render_node; } AMDGPUEntRec, *AMDGPUEntPtr; +extern void amdgpu_kernel_close_fd(AMDGPUEntPtr pAMDGPUEnt); + extern const OptionInfoRec *AMDGPUOptionsWeak(void); extern Bool AMDGPUPreInit_KMS(ScrnInfoPtr, int); -- 2.11.0