Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 456295e2 authored by Ian Munsie's avatar Ian Munsie Committed by Michael Ellerman
Browse files

cxl: Fix leaking interrupts if attach process fails



In this particular error path we have already allocated the AFU
interrupts, but have not yet set the status to STARTED. The detach
context code will only attempt to release the interrupts if the context
is in state STARTED, so in this case the interrupts would remain
allocated.

This patch releases the AFU interrupts immediately if the attach call
fails to prevent them leaking.

Signed-off-by: default avatarIan Munsie <imunsie@au1.ibm.com>
Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
parent e144d4ed
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -185,8 +185,10 @@ static long afu_ioctl_start_work(struct cxl_context *ctx,
	ctx->pid = get_pid(get_task_pid(current, PIDTYPE_PID));

	if ((rc = cxl_attach_process(ctx, false, work.work_element_descriptor,
				     amr)))
				     amr))) {
		afu_release_irqs(ctx);
		goto out;
	}

	ctx->status = STARTED;
	rc = 0;