* [PATCH v3] ocxl: Fix potential memory leak on context creation
@ 2019-12-09 10:55 Frederic Barrat
2019-12-09 13:32 ` Andrew Donnellan
` (2 more replies)
0 siblings, 3 replies; 4+ messages in thread
From: Frederic Barrat @ 2019-12-09 10:55 UTC (permalink / raw)
To: linuxppc-dev, andrew.donnellan, alastair; +Cc: clombard, groug
If we couldn't fully init a context, we were leaking memory.
Fixes: b9721d275cc2 ("ocxl: Allow external drivers to use OpenCAPI contexts")
Signed-off-by: Frederic Barrat <fbarrat@linux.ibm.com>
---
Changlog:
v3:
code cleanup (Greg)
v2:
reset context pointer in case of allocation failure (Andrew)
drivers/misc/ocxl/context.c | 8 ++++----
1 file 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);
--
2.21.0
^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [PATCH v3] ocxl: Fix potential memory leak on context creation
2019-12-09 10:55 [PATCH v3] ocxl: Fix potential memory leak on context creation Frederic Barrat
@ 2019-12-09 13:32 ` Andrew Donnellan
2019-12-09 20:51 ` Greg Kurz
2019-12-18 4:05 ` Michael Ellerman
2 siblings, 0 replies; 4+ messages in thread
From: Andrew Donnellan @ 2019-12-09 13:32 UTC (permalink / raw)
To: Frederic Barrat, linuxppc-dev, andrew.donnellan, alastair; +Cc: clombard, groug
On 9/12/19 9:55 pm, Frederic Barrat wrote:
> If we couldn't fully init a context, we were leaking memory.
>
> Fixes: b9721d275cc2 ("ocxl: Allow external drivers to use OpenCAPI contexts")
> Signed-off-by: Frederic Barrat <fbarrat@linux.ibm.com>
Acked-by: Andrew Donnellan <ajd@linux.ibm.com>
--
Andrew Donnellan OzLabs, ADL Canberra
ajd@linux.ibm.com IBM Australia Limited
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH v3] ocxl: Fix potential memory leak on context creation
2019-12-09 10:55 [PATCH v3] ocxl: Fix potential memory leak on context creation Frederic Barrat
2019-12-09 13:32 ` Andrew Donnellan
@ 2019-12-09 20:51 ` Greg Kurz
2019-12-18 4:05 ` Michael Ellerman
2 siblings, 0 replies; 4+ messages in thread
From: Greg Kurz @ 2019-12-09 20:51 UTC (permalink / raw)
To: Frederic Barrat; +Cc: clombard, linuxppc-dev, alastair, andrew.donnellan
On Mon, 9 Dec 2019 11:55:13 +0100
Frederic Barrat <fbarrat@linux.ibm.com> wrote:
> If we couldn't fully init a context, we were leaking memory.
>
> Fixes: b9721d275cc2 ("ocxl: Allow external drivers to use OpenCAPI contexts")
> Signed-off-by: Frederic Barrat <fbarrat@linux.ibm.com>
> ---
Reviewed-by: Greg Kurz <groug@kaod.org>
> Changlog:
> v3:
> code cleanup (Greg)
> v2:
> reset context pointer in case of allocation failure (Andrew)
>
>
> drivers/misc/ocxl/context.c | 8 ++++----
> 1 file 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);
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH v3] ocxl: Fix potential memory leak on context creation
2019-12-09 10:55 [PATCH v3] ocxl: Fix potential memory leak on context creation Frederic Barrat
2019-12-09 13:32 ` Andrew Donnellan
2019-12-09 20:51 ` Greg Kurz
@ 2019-12-18 4:05 ` Michael Ellerman
2 siblings, 0 replies; 4+ messages in thread
From: Michael Ellerman @ 2019-12-18 4:05 UTC (permalink / raw)
To: Frederic Barrat, linuxppc-dev, andrew.donnellan, alastair; +Cc: clombard, groug
On Mon, 2019-12-09 at 10:55:13 UTC, Frederic Barrat wrote:
> If we couldn't fully init a context, we were leaking memory.
>
> Fixes: b9721d275cc2 ("ocxl: Allow external drivers to use OpenCAPI contexts")
> Signed-off-by: Frederic Barrat <fbarrat@linux.ibm.com>
Applied to powerpc fixes, thanks.
https://git.kernel.org/powerpc/c/913e73c77d48aeeb50c16450a653dca9c71ae2e2
cheers
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2019-12-18 4:09 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-12-09 10:55 [PATCH v3] ocxl: Fix potential memory leak on context creation Frederic Barrat
2019-12-09 13:32 ` Andrew Donnellan
2019-12-09 20:51 ` Greg Kurz
2019-12-18 4:05 ` Michael Ellerman
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.