Any comments ?

Thanks
Ma Ling 

>-----Original Message-----
>From: [email protected] 
>[mailto:[email protected]] On Behalf Of Ma Ling
>Sent: Friday, June 05, 2009 5:16 PM
>To: [email protected]
>Cc: [email protected]
>Subject: [Intel-gfx] [PATCH] drm: remove mode from list and 
>destroy it in order
>
>Usually We create drm mode by drm_mode_create function which 
>also will assign ID
>to this mode by drm_mode_object_get function, then insert this 
>new mode into 
>mode list by list_add function. So when destroying mode, we 
>need to remove mode
>from list, then free ID and allocated memory by 
>drm_mode_destroy function,
>otherwise memory leak.
>
>Signed-off-by: Ma Ling <[email protected]>
>---
> drivers/gpu/drm/drm_crtc.c |   13 +++++++++----
> 1 files changed, 9 insertions(+), 4 deletions(-)
>
>diff --git a/drivers/gpu/drm/drm_crtc.c b/drivers/gpu/drm/drm_crtc.c
>index 94a7688..03a7b30 100644
>--- a/drivers/gpu/drm/drm_crtc.c
>+++ b/drivers/gpu/drm/drm_crtc.c
>@@ -423,7 +423,6 @@ void drm_mode_remove(struct drm_connector 
>*connector,
>                    struct drm_display_mode *mode)
> {
>       list_del(&mode->head);
>-      kfree(mode);
> }
> EXPORT_SYMBOL(drm_mode_remove);
> 
>@@ -485,14 +484,20 @@ void drm_connector_cleanup(struct 
>drm_connector *connector)
>       struct drm_device *dev = connector->dev;
>       struct drm_display_mode *mode, *t;
> 
>-      list_for_each_entry_safe(mode, t, 
>&connector->probed_modes, head)
>+      list_for_each_entry_safe(mode, t, 
>&connector->probed_modes, head) {
>               drm_mode_remove(connector, mode);
>+              drm_mode_destroy(dev, mode);
>+      }
> 
>-      list_for_each_entry_safe(mode, t, &connector->modes, head)
>+      list_for_each_entry_safe(mode, t, &connector->modes, head) {
>               drm_mode_remove(connector, mode);
>+              drm_mode_destroy(dev, mode);
>+      }
> 
>-      list_for_each_entry_safe(mode, t, &connector->user_modes, head)
>+      list_for_each_entry_safe(mode, t, 
>&connector->user_modes, head) {
>               drm_mode_remove(connector, mode);
>+              drm_mode_destroy(dev, mode);
>+      }
> 
>       mutex_lock(&dev->mode_config.mutex);
>       drm_mode_object_put(dev, &connector->base);
>-- 
>1.5.4.4
>
>
>
>_______________________________________________
>Intel-gfx mailing list
>[email protected]
>http://lists.freedesktop.org/mailman/listinfo/intel-gfx
>
------------------------------------------------------------------------------
OpenSolaris 2009.06 is a cutting edge operating system for enterprises 
looking to deploy the next generation of Solaris that includes the latest 
innovations from Sun and the OpenSource community. Download a copy and 
enjoy capabilities such as Networking, Storage and Virtualization. 
Go to: http://p.sf.net/sfu/opensolaris-get
--
_______________________________________________
Dri-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/dri-devel

Reply via email to