Loading drivers/media/platform/msm/camera/cam_core/cam_node.c +15 −5 Original line number Diff line number Diff line Loading @@ -286,20 +286,30 @@ static int __cam_node_handle_release_dev(struct cam_node *node, return -EINVAL; } if (ctx->state > CAM_CTX_UNINIT && ctx->state < CAM_CTX_STATE_MAX) { rc = cam_context_handle_release_dev(ctx, release); if (rc) CAM_ERR(CAM_CORE, "context release failed node %s", node->name); CAM_ERR(CAM_CORE, "context release failed for node %s", node->name); } else { CAM_WARN(CAM_CORE, "node %s context id %u state %d invalid to release hdl", node->name, ctx->ctx_id, ctx->state); goto destroy_dev_hdl; } cam_context_putref(ctx); destroy_dev_hdl: rc = cam_destroy_device_hdl(release->dev_handle); if (rc) CAM_ERR(CAM_CORE, "destroy device handle is failed node %s", CAM_ERR(CAM_CORE, "destroy device hdl failed for node %s", node->name); CAM_DBG(CAM_CORE, "[%s] Release ctx_id=%d, refcount=%d", node->name, ctx->ctx_id, atomic_read(&(ctx->refcount.refcount.refs))); cam_context_putref(ctx); return rc; } Loading Loading
drivers/media/platform/msm/camera/cam_core/cam_node.c +15 −5 Original line number Diff line number Diff line Loading @@ -286,20 +286,30 @@ static int __cam_node_handle_release_dev(struct cam_node *node, return -EINVAL; } if (ctx->state > CAM_CTX_UNINIT && ctx->state < CAM_CTX_STATE_MAX) { rc = cam_context_handle_release_dev(ctx, release); if (rc) CAM_ERR(CAM_CORE, "context release failed node %s", node->name); CAM_ERR(CAM_CORE, "context release failed for node %s", node->name); } else { CAM_WARN(CAM_CORE, "node %s context id %u state %d invalid to release hdl", node->name, ctx->ctx_id, ctx->state); goto destroy_dev_hdl; } cam_context_putref(ctx); destroy_dev_hdl: rc = cam_destroy_device_hdl(release->dev_handle); if (rc) CAM_ERR(CAM_CORE, "destroy device handle is failed node %s", CAM_ERR(CAM_CORE, "destroy device hdl failed for node %s", node->name); CAM_DBG(CAM_CORE, "[%s] Release ctx_id=%d, refcount=%d", node->name, ctx->ctx_id, atomic_read(&(ctx->refcount.refcount.refs))); cam_context_putref(ctx); return rc; } Loading