diff options
Diffstat (limited to 'drivers/misc/ocxl/context.c')
| -rw-r--r-- | drivers/misc/ocxl/context.c | 8 | 
1 files changed, 4 insertions, 4 deletions
diff --git a/drivers/misc/ocxl/context.c b/drivers/misc/ocxl/context.c index 994563a078eb..de8a66b9d76b 100644 --- a/drivers/misc/ocxl/context.c +++ b/drivers/misc/ocxl/context.c @@ -10,18 +10,17 @@ int ocxl_context_alloc(struct ocxl_context **context, struct ocxl_afu *afu,  	int pasid;  	struct ocxl_context *ctx; -	*context = kzalloc(sizeof(struct ocxl_context), GFP_KERNEL); -	if (!*context) +	ctx = kzalloc(sizeof(*ctx), GFP_KERNEL); +	if (!ctx)  		return -ENOMEM; -	ctx = *context; -  	ctx->afu = afu;  	mutex_lock(&afu->contexts_lock);  	pasid = idr_alloc(&afu->contexts_idr, ctx, afu->pasid_base,  			afu->pasid_base + afu->pasid_max, GFP_KERNEL);  	if (pasid < 0) {  		mutex_unlock(&afu->contexts_lock); +		kfree(ctx);  		return pasid;  	}  	afu->pasid_count++; @@ -43,6 +42,7 @@ int ocxl_context_alloc(struct ocxl_context **context, struct ocxl_afu *afu,  	 * duration of the life of the context  	 */  	ocxl_afu_get(afu); +	*context = ctx;  	return 0;  }  EXPORT_SYMBOL_GPL(ocxl_context_alloc);  | 
