Re: [PATCH 2/2] drm/rockchip: don't leak iommu mapping

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 2016年04月05日 21:50, John Keeping wrote:
arm_iommu_attach_device() takes its own reference to the mapping we give
it.  Since we do not keep a reference to the mapping ourselves, we must
release it before returning.

Also fix the error path, which fails to release the mapping if it has
called arm_iommu_detach_device() since that clears archdata.mapping.

Signed-off-by: John Keeping <john@xxxxxxxxxxxx>
---
  drivers/gpu/drm/rockchip/rockchip_drm_drv.c | 3 ++-
  1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_drv.c b/drivers/gpu/drm/rockchip/rockchip_drm_drv.c
index 7695c79..1e2d88b 100644
--- a/drivers/gpu/drm/rockchip/rockchip_drm_drv.c
+++ b/drivers/gpu/drm/rockchip/rockchip_drm_drv.c
@@ -218,6 +218,7 @@ static int rockchip_drm_load(struct drm_device *drm_dev, unsigned long flags)
  	if (ret)
  		goto err_vblank_cleanup;
+ arm_iommu_release_mapping(mapping);
  	return 0;
  err_vblank_cleanup:
  	drm_vblank_cleanup(drm_dev);
@@ -228,7 +229,7 @@ err_unbind:
  err_detach_device:
  	arm_iommu_detach_device(dev);
  err_release_mapping:
-	arm_iommu_release_mapping(dev->archdata.mapping);
+	arm_iommu_release_mapping(mapping);
  err_config_cleanup:
  	drm_mode_config_cleanup(drm_dev);
  	drm_dev->dev_private = NULL;
Applied to my drm-fixes

Thanks.

--
Mark Yao


_______________________________________________
dri-devel mailing list
dri-devel@xxxxxxxxxxxxxxxxxxxxx
https://lists.freedesktop.org/mailman/listinfo/dri-devel




[Index of Archives]     [Linux DRI Users]     [Linux Intel Graphics]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux