Messages in this thread Patch in this message | | | From | "Ian Munsie" <> | Subject | [PATCH 3/7] CXL: Fix leaking interrupts if attach process fails | Date | Mon, 8 Dec 2014 19:17:57 +1100 |
| |
From: Ian Munsie <imunsie@au1.ibm.com>
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: Ian Munsie <imunsie@au1.ibm.com> --- drivers/misc/cxl/file.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/drivers/misc/cxl/file.c b/drivers/misc/cxl/file.c index 378b099..2e067a5 100644 --- a/drivers/misc/cxl/file.c +++ b/drivers/misc/cxl/file.c @@ -181,8 +181,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; -- 2.1.3
| |