Re: [PATCH] ocxl: Fix potential memory leak on context creation
Le 20/05/2019 à 03:45, Andrew Donnellan a écrit : On 18/5/19 12:20 am, 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 Acked-by: Andrew Donnellan --- drivers/misc/ocxl/context.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/misc/ocxl/context.c b/drivers/misc/ocxl/context.c index bab9c9364184..ab93156aa83e 100644 --- a/drivers/misc/ocxl/context.c +++ b/drivers/misc/ocxl/context.c @@ -22,6 +22,7 @@ int ocxl_context_alloc(struct ocxl_context **context, struct ocxl_afu *afu, afu->pasid_base + afu->pasid_max, GFP_KERNEL); if (pasid < 0) { mutex_unlock(>contexts_lock); + kfree(*context); (defensive programming: set *context = NULL so that if the caller ignores the return code we get an obvious crash) Good point. v2 on its way return pasid; } afu->pasid_count++;
Re: [PATCH] ocxl: Fix potential memory leak on context creation
On 18/5/19 12:20 am, 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 Acked-by: Andrew Donnellan --- drivers/misc/ocxl/context.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/misc/ocxl/context.c b/drivers/misc/ocxl/context.c index bab9c9364184..ab93156aa83e 100644 --- a/drivers/misc/ocxl/context.c +++ b/drivers/misc/ocxl/context.c @@ -22,6 +22,7 @@ int ocxl_context_alloc(struct ocxl_context **context, struct ocxl_afu *afu, afu->pasid_base + afu->pasid_max, GFP_KERNEL); if (pasid < 0) { mutex_unlock(>contexts_lock); + kfree(*context); (defensive programming: set *context = NULL so that if the caller ignores the return code we get an obvious crash) return pasid; } afu->pasid_count++; -- Andrew Donnellan OzLabs, ADL Canberra a...@linux.ibm.com IBM Australia Limited
[PATCH] ocxl: Fix potential memory leak on context creation
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 --- drivers/misc/ocxl/context.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/misc/ocxl/context.c b/drivers/misc/ocxl/context.c index bab9c9364184..ab93156aa83e 100644 --- a/drivers/misc/ocxl/context.c +++ b/drivers/misc/ocxl/context.c @@ -22,6 +22,7 @@ int ocxl_context_alloc(struct ocxl_context **context, struct ocxl_afu *afu, afu->pasid_base + afu->pasid_max, GFP_KERNEL); if (pasid < 0) { mutex_unlock(>contexts_lock); + kfree(*context); return pasid; } afu->pasid_count++; -- 2.21.0