drm/exynos/ipp: clean memory nodes on command node cleaning
authorAndrzej Hajda <a.hajda@samsung.com>
Thu, 28 Aug 2014 09:07:32 +0000 (11:07 +0200)
committerInki Dae <daeinki@gmail.com>
Fri, 19 Sep 2014 15:56:11 +0000 (00:56 +0900)
The nodes should be removed before removing command node.

Signed-off-by: Andrzej Hajda <a.hajda@samsung.com>
Reviewed-by: Joonyoung Shim <jy0922.shim@samsung.com>
Signed-off-by: Inki Dae <inki.dae@samsung.com>
drivers/gpu/drm/exynos/exynos_drm_ipp.c

index 05f103e9306df99e53640dc7a0c441e20c9d6347..857817cc9b4aad7346373e8694cf99e82528006a 100644 (file)
@@ -603,11 +603,16 @@ static void ipp_clean_mem_nodes(struct drm_device *drm_dev,
 static void ipp_clean_cmd_node(struct ipp_context *ctx,
                                struct drm_exynos_ipp_cmd_node *c_node)
 {
+       int i;
+
        /* cancel works */
        cancel_work_sync(&c_node->start_work->work);
        cancel_work_sync(&c_node->stop_work->work);
        cancel_work_sync(&c_node->event_work->work);
 
+       for_each_ipp_ops(i)
+               ipp_clean_mem_nodes(ctx->subdrv.drm_dev, c_node, i);
+
        /* delete list */
        list_del(&c_node->list);