|
@@ -37,6 +37,14 @@ static int cam_icp_context_dump_active_request(void *data, unsigned long iova,
|
|
return -EINVAL;
|
|
return -EINVAL;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ mutex_lock(&ctx->ctx_mutex);
|
|
|
|
+
|
|
|
|
+ if (ctx->state < CAM_CTX_ACQUIRED || ctx->state > CAM_CTX_ACTIVATED) {
|
|
|
|
+ CAM_ERR(CAM_ICP, "Invalid state icp ctx %d state %d",
|
|
|
|
+ ctx->ctx_id, ctx->state);
|
|
|
|
+ goto end;
|
|
|
|
+ }
|
|
|
|
+
|
|
CAM_INFO(CAM_ICP, "iommu fault for icp ctx %d state %d",
|
|
CAM_INFO(CAM_ICP, "iommu fault for icp ctx %d state %d",
|
|
ctx->ctx_id, ctx->state);
|
|
ctx->ctx_id, ctx->state);
|
|
|
|
|
|
@@ -55,6 +63,8 @@ static int cam_icp_context_dump_active_request(void *data, unsigned long iova,
|
|
req->request_id, rc);
|
|
req->request_id, rc);
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+end:
|
|
|
|
+ mutex_unlock(&ctx->ctx_mutex);
|
|
return rc;
|
|
return rc;
|
|
}
|
|
}
|
|
|
|
|