[PATCH 05/14] drm: don't use idr_remove_all()

2013-01-25 Thread Tejun Heo
idr_destroy() can destroy idr by itself and idr_remove_all() is being
deprecated.  Drop its usage.

* drm_ctxbitmap_cleanup() was calling idr_remove_all() but forgetting
  idr_destroy() thus leaking all buffered free idr_layers.  Replace it
  with idr_destroy().

Signed-off-by: Tejun Heo 
Cc: David Airlie 
Cc: dri-de...@lists.freedesktop.org
Cc: Inki Dae 
Cc: Joonyoung Shim 
Cc: Seung-Woo Kim 
Cc: Kyungmin Park 
---
This patch depends on an earlier idr patch and given the trivial
nature of the patch, I think it would be best to route these together
through -mm.  Please holler if there's any objection.

Thanks.

 drivers/gpu/drm/drm_context.c   | 2 +-
 drivers/gpu/drm/drm_crtc.c  | 1 -
 drivers/gpu/drm/drm_drv.c   | 1 -
 drivers/gpu/drm/drm_gem.c   | 2 --
 drivers/gpu/drm/exynos/exynos_drm_ipp.c | 4 
 drivers/gpu/drm/sis/sis_drv.c   | 1 -
 drivers/gpu/drm/via/via_map.c   | 1 -
 7 files changed, 1 insertion(+), 11 deletions(-)

diff --git a/drivers/gpu/drm/drm_context.c b/drivers/gpu/drm/drm_context.c
index 45adf97..75f62c5 100644
--- a/drivers/gpu/drm/drm_context.c
+++ b/drivers/gpu/drm/drm_context.c
@@ -118,7 +118,7 @@ int drm_ctxbitmap_init(struct drm_device * dev)
 void drm_ctxbitmap_cleanup(struct drm_device * dev)
 {
mutex_lock(>struct_mutex);
-   idr_remove_all(>ctx_idr);
+   idr_destroy(>ctx_idr);
mutex_unlock(>struct_mutex);
 }
 
diff --git a/drivers/gpu/drm/drm_crtc.c b/drivers/gpu/drm/drm_crtc.c
index f2d667b..9b39d1f 100644
--- a/drivers/gpu/drm/drm_crtc.c
+++ b/drivers/gpu/drm/drm_crtc.c
@@ -1102,7 +1102,6 @@ void drm_mode_config_cleanup(struct drm_device *dev)
crtc->funcs->destroy(crtc);
}
 
-   idr_remove_all(>mode_config.crtc_idr);
idr_destroy(>mode_config.crtc_idr);
 }
 EXPORT_SYMBOL(drm_mode_config_cleanup);
diff --git a/drivers/gpu/drm/drm_drv.c b/drivers/gpu/drm/drm_drv.c
index be174ca..25f91cd 100644
--- a/drivers/gpu/drm/drm_drv.c
+++ b/drivers/gpu/drm/drm_drv.c
@@ -297,7 +297,6 @@ static void __exit drm_core_exit(void)
 
unregister_chrdev(DRM_MAJOR, "drm");
 
-   idr_remove_all(_minors_idr);
idr_destroy(_minors_idr);
 }
 
diff --git a/drivers/gpu/drm/drm_gem.c b/drivers/gpu/drm/drm_gem.c
index 24efae4..e775859 100644
--- a/drivers/gpu/drm/drm_gem.c
+++ b/drivers/gpu/drm/drm_gem.c
@@ -561,8 +561,6 @@ drm_gem_release(struct drm_device *dev, struct drm_file 
*file_private)
 {
idr_for_each(_private->object_idr,
 _gem_object_release_handle, file_private);
-
-   idr_remove_all(_private->object_idr);
idr_destroy(_private->object_idr);
 }
 
diff --git a/drivers/gpu/drm/exynos/exynos_drm_ipp.c 
b/drivers/gpu/drm/exynos/exynos_drm_ipp.c
index 0bda964..49278f0 100644
--- a/drivers/gpu/drm/exynos/exynos_drm_ipp.c
+++ b/drivers/gpu/drm/exynos/exynos_drm_ipp.c
@@ -1786,8 +1786,6 @@ err_iommu:
drm_iommu_detach_device(drm_dev, ippdrv->dev);
 
 err_idr:
-   idr_remove_all(>ipp_idr);
-   idr_remove_all(>prop_idr);
idr_destroy(>ipp_idr);
idr_destroy(>prop_idr);
return ret;
@@ -1965,8 +1963,6 @@ static int ipp_remove(struct platform_device *pdev)
exynos_drm_subdrv_unregister(>subdrv);
 
/* remove,destroy ipp idr */
-   idr_remove_all(>ipp_idr);
-   idr_remove_all(>prop_idr);
idr_destroy(>ipp_idr);
idr_destroy(>prop_idr);
 
diff --git a/drivers/gpu/drm/sis/sis_drv.c b/drivers/gpu/drm/sis/sis_drv.c
index 841065b..5a5325e 100644
--- a/drivers/gpu/drm/sis/sis_drv.c
+++ b/drivers/gpu/drm/sis/sis_drv.c
@@ -58,7 +58,6 @@ static int sis_driver_unload(struct drm_device *dev)
 {
drm_sis_private_t *dev_priv = dev->dev_private;
 
-   idr_remove_all(_priv->object_idr);
idr_destroy(_priv->object_idr);
 
kfree(dev_priv);
diff --git a/drivers/gpu/drm/via/via_map.c b/drivers/gpu/drm/via/via_map.c
index c0f1cc7..d0ab3fb 100644
--- a/drivers/gpu/drm/via/via_map.c
+++ b/drivers/gpu/drm/via/via_map.c
@@ -120,7 +120,6 @@ int via_driver_unload(struct drm_device *dev)
 {
drm_via_private_t *dev_priv = dev->dev_private;
 
-   idr_remove_all(_priv->object_idr);
idr_destroy(_priv->object_idr);
 
kfree(dev_priv);
-- 
1.8.1

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


[PATCH 05/14] drm: don't use idr_remove_all()

2013-01-25 Thread Tejun Heo
idr_destroy() can destroy idr by itself and idr_remove_all() is being
deprecated.  Drop its usage.

* drm_ctxbitmap_cleanup() was calling idr_remove_all() but forgetting
  idr_destroy() thus leaking all buffered free idr_layers.  Replace it
  with idr_destroy().

Signed-off-by: Tejun Heo t...@kernel.org
Cc: David Airlie airl...@linux.ie
Cc: dri-de...@lists.freedesktop.org
Cc: Inki Dae inki@samsung.com
Cc: Joonyoung Shim jy0922.s...@samsung.com
Cc: Seung-Woo Kim sw0312@samsung.com
Cc: Kyungmin Park kyungmin.p...@samsung.com
---
This patch depends on an earlier idr patch and given the trivial
nature of the patch, I think it would be best to route these together
through -mm.  Please holler if there's any objection.

Thanks.

 drivers/gpu/drm/drm_context.c   | 2 +-
 drivers/gpu/drm/drm_crtc.c  | 1 -
 drivers/gpu/drm/drm_drv.c   | 1 -
 drivers/gpu/drm/drm_gem.c   | 2 --
 drivers/gpu/drm/exynos/exynos_drm_ipp.c | 4 
 drivers/gpu/drm/sis/sis_drv.c   | 1 -
 drivers/gpu/drm/via/via_map.c   | 1 -
 7 files changed, 1 insertion(+), 11 deletions(-)

diff --git a/drivers/gpu/drm/drm_context.c b/drivers/gpu/drm/drm_context.c
index 45adf97..75f62c5 100644
--- a/drivers/gpu/drm/drm_context.c
+++ b/drivers/gpu/drm/drm_context.c
@@ -118,7 +118,7 @@ int drm_ctxbitmap_init(struct drm_device * dev)
 void drm_ctxbitmap_cleanup(struct drm_device * dev)
 {
mutex_lock(dev-struct_mutex);
-   idr_remove_all(dev-ctx_idr);
+   idr_destroy(dev-ctx_idr);
mutex_unlock(dev-struct_mutex);
 }
 
diff --git a/drivers/gpu/drm/drm_crtc.c b/drivers/gpu/drm/drm_crtc.c
index f2d667b..9b39d1f 100644
--- a/drivers/gpu/drm/drm_crtc.c
+++ b/drivers/gpu/drm/drm_crtc.c
@@ -1102,7 +1102,6 @@ void drm_mode_config_cleanup(struct drm_device *dev)
crtc-funcs-destroy(crtc);
}
 
-   idr_remove_all(dev-mode_config.crtc_idr);
idr_destroy(dev-mode_config.crtc_idr);
 }
 EXPORT_SYMBOL(drm_mode_config_cleanup);
diff --git a/drivers/gpu/drm/drm_drv.c b/drivers/gpu/drm/drm_drv.c
index be174ca..25f91cd 100644
--- a/drivers/gpu/drm/drm_drv.c
+++ b/drivers/gpu/drm/drm_drv.c
@@ -297,7 +297,6 @@ static void __exit drm_core_exit(void)
 
unregister_chrdev(DRM_MAJOR, drm);
 
-   idr_remove_all(drm_minors_idr);
idr_destroy(drm_minors_idr);
 }
 
diff --git a/drivers/gpu/drm/drm_gem.c b/drivers/gpu/drm/drm_gem.c
index 24efae4..e775859 100644
--- a/drivers/gpu/drm/drm_gem.c
+++ b/drivers/gpu/drm/drm_gem.c
@@ -561,8 +561,6 @@ drm_gem_release(struct drm_device *dev, struct drm_file 
*file_private)
 {
idr_for_each(file_private-object_idr,
 drm_gem_object_release_handle, file_private);
-
-   idr_remove_all(file_private-object_idr);
idr_destroy(file_private-object_idr);
 }
 
diff --git a/drivers/gpu/drm/exynos/exynos_drm_ipp.c 
b/drivers/gpu/drm/exynos/exynos_drm_ipp.c
index 0bda964..49278f0 100644
--- a/drivers/gpu/drm/exynos/exynos_drm_ipp.c
+++ b/drivers/gpu/drm/exynos/exynos_drm_ipp.c
@@ -1786,8 +1786,6 @@ err_iommu:
drm_iommu_detach_device(drm_dev, ippdrv-dev);
 
 err_idr:
-   idr_remove_all(ctx-ipp_idr);
-   idr_remove_all(ctx-prop_idr);
idr_destroy(ctx-ipp_idr);
idr_destroy(ctx-prop_idr);
return ret;
@@ -1965,8 +1963,6 @@ static int ipp_remove(struct platform_device *pdev)
exynos_drm_subdrv_unregister(ctx-subdrv);
 
/* remove,destroy ipp idr */
-   idr_remove_all(ctx-ipp_idr);
-   idr_remove_all(ctx-prop_idr);
idr_destroy(ctx-ipp_idr);
idr_destroy(ctx-prop_idr);
 
diff --git a/drivers/gpu/drm/sis/sis_drv.c b/drivers/gpu/drm/sis/sis_drv.c
index 841065b..5a5325e 100644
--- a/drivers/gpu/drm/sis/sis_drv.c
+++ b/drivers/gpu/drm/sis/sis_drv.c
@@ -58,7 +58,6 @@ static int sis_driver_unload(struct drm_device *dev)
 {
drm_sis_private_t *dev_priv = dev-dev_private;
 
-   idr_remove_all(dev_priv-object_idr);
idr_destroy(dev_priv-object_idr);
 
kfree(dev_priv);
diff --git a/drivers/gpu/drm/via/via_map.c b/drivers/gpu/drm/via/via_map.c
index c0f1cc7..d0ab3fb 100644
--- a/drivers/gpu/drm/via/via_map.c
+++ b/drivers/gpu/drm/via/via_map.c
@@ -120,7 +120,6 @@ int via_driver_unload(struct drm_device *dev)
 {
drm_via_private_t *dev_priv = dev-dev_private;
 
-   idr_remove_all(dev_priv-object_idr);
idr_destroy(dev_priv-object_idr);
 
kfree(dev_priv);
-- 
1.8.1

--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/