summaryrefslogtreecommitdiffstats
path: root/drivers/misc/cxl/api.c
diff options
context:
space:
mode:
authorVaibhav Jain2016-10-21 11:23:53 +0200
committerMichael Ellerman2016-10-24 02:38:27 +0200
commita05b82d5149dfeef05254a11c3636a89a854520a (patch)
tree754443158c6580a98fe669086cf97f981d37d1bb /drivers/misc/cxl/api.c
parentpowerpc: Convert cmp to cmpd in idle enter sequence (diff)
downloadkernel-qcow2-linux-a05b82d5149dfeef05254a11c3636a89a854520a.tar.gz
kernel-qcow2-linux-a05b82d5149dfeef05254a11c3636a89a854520a.tar.xz
kernel-qcow2-linux-a05b82d5149dfeef05254a11c3636a89a854520a.zip
cxl: Fix leaking pid refs in some error paths
In some error paths in functions cxl_start_context and afu_ioctl_start_work pid references to the current & group-leader tasks can leak after they are taken. This patch fixes these error paths to release these pid references before exiting the error path. Fixes: 7b8ad495d592 ("cxl: Fix DSI misses when the context owning task exits") Cc: stable@vger.kernel.org # v4.5+ Reviewed-by: Andrew Donnellan <andrew.donnellan@au1.ibm.com> Reported-by: Frederic Barrat <fbarrat@linux.vnet.ibm.com> Signed-off-by: Vaibhav Jain <vaibhav@linux.vnet.ibm.com> Acked-by: Frederic Barrat <fbarrat@linux.vnet.ibm.com> Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Diffstat (limited to 'drivers/misc/cxl/api.c')
-rw-r--r--drivers/misc/cxl/api.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/misc/cxl/api.c b/drivers/misc/cxl/api.c
index af23d7dfe752..2e5233b60971 100644
--- a/drivers/misc/cxl/api.c
+++ b/drivers/misc/cxl/api.c
@@ -247,7 +247,9 @@ int cxl_start_context(struct cxl_context *ctx, u64 wed,
cxl_ctx_get();
if ((rc = cxl_ops->attach_process(ctx, kernel, wed, 0))) {
+ put_pid(ctx->glpid);
put_pid(ctx->pid);
+ ctx->glpid = ctx->pid = NULL;
cxl_adapter_context_put(ctx->afu->adapter);
cxl_ctx_put();
goto out;