diff options
author | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2016-10-30 06:40:39 -0400 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2016-10-30 06:40:39 -0400 |
commit | cbfff98a623df8d4e7c02d63d6448220cf0aec7c (patch) | |
tree | 1a02766ada2b9be9745d6028f80a801eff5b358a /drivers/misc/cxl/api.c | |
parent | b65fba3d87216bfe6ae9bc77be5eb6eabb6514a4 (diff) | |
parent | a909d3e636995ba7c349e2ca5dbb528154d4ac30 (diff) |
Merge 4.9-rc3 into usb-next
We want the USB fixes in here as well.
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/misc/cxl/api.c')
-rw-r--r-- | drivers/misc/cxl/api.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/drivers/misc/cxl/api.c b/drivers/misc/cxl/api.c index f3d34b941f85..2e5233b60971 100644 --- a/drivers/misc/cxl/api.c +++ b/drivers/misc/cxl/api.c @@ -229,6 +229,14 @@ int cxl_start_context(struct cxl_context *ctx, u64 wed, if (ctx->status == STARTED) goto out; /* already started */ + /* + * Increment the mapped context count for adapter. This also checks + * if adapter_context_lock is taken. + */ + rc = cxl_adapter_context_get(ctx->afu->adapter); + if (rc) + goto out; + if (task) { ctx->pid = get_task_pid(task, PIDTYPE_PID); ctx->glpid = get_task_pid(task->group_leader, PIDTYPE_PID); @@ -239,7 +247,10 @@ 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; } |