From 8e7c130ef71b6300a99f6404d23e7ff8646066be Mon Sep 17 00:00:00 2001 From: Ian Romanick Date: Fri, 3 Jun 2005 22:45:21 +0000 Subject: Move the deallocation of dev_private. Since dev_private is allocated when the driver is loaded and is always expected to be around, it should only be deallocated when the driver is unloaded. Xorg bug: #3408 Reported by: Chris Rankin --- shared-core/mga_dma.c | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) (limited to 'shared-core/mga_dma.c') diff --git a/shared-core/mga_dma.c b/shared-core/mga_dma.c index 2adb30ac..367c670e 100644 --- a/shared-core/mga_dma.c +++ b/shared-core/mga_dma.c @@ -572,10 +572,6 @@ static int mga_do_cleanup_dma(drm_device_t * dev) if (dev_priv->head != NULL) { mga_freelist_cleanup(dev); } - - drm_free(dev->dev_private, sizeof(drm_mga_private_t), - DRM_MEM_DRIVER); - dev->dev_private = NULL; } return 0; @@ -723,7 +719,17 @@ int mga_dma_buffers(DRM_IOCTL_ARGS) int mga_driver_postcleanup(drm_device_t * dev) { - return mga_do_cleanup_dma(dev); + int err; + + + err = mga_do_cleanup_dma(dev); + if (!err) { + drm_free(dev->dev_private, sizeof(drm_mga_private_t), + DRM_MEM_DRIVER); + dev->dev_private = NULL; + } + + return err; } int mga_driver_dma_quiescent(drm_device_t * dev) -- cgit v1.2.3