Re: [1/2] cxl: Fix + cleanup error paths in cxl_dev_context_init

2015-08-30 Thread Michael Ellerman
On Thu, 2015-27-08 at 09:50:18 UTC, Ian Munsie wrote:
> From: Ian Munsie 
> 
> If the cxl_context_alloc() call fails, we return immediately without
> releasing the reference on the AFU device, allowing it to leak.
> 
> This patch switches to using goto style error handling so that the
> device is released in common code for both error paths, and will also
> simplify things if we add additional initialisation in this function in
> the future.
> 
> Signed-off-by: Ian Munsie 

Applied to powerpc next, thanks.

https://git.kernel.org/powerpc/c/af2a50bb0ce1ca7a9c478481

cheers
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [1/2] cxl: Fix + cleanup error paths in cxl_dev_context_init

2015-08-30 Thread Michael Ellerman
On Thu, 2015-27-08 at 09:50:18 UTC, Ian Munsie wrote:
 From: Ian Munsie imun...@au1.ibm.com
 
 If the cxl_context_alloc() call fails, we return immediately without
 releasing the reference on the AFU device, allowing it to leak.
 
 This patch switches to using goto style error handling so that the
 device is released in common code for both error paths, and will also
 simplify things if we add additional initialisation in this function in
 the future.
 
 Signed-off-by: Ian Munsie imun...@au1.ibm.com

Applied to powerpc next, thanks.

https://git.kernel.org/powerpc/c/af2a50bb0ce1ca7a9c478481

cheers
--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


[PATCH 1/2] cxl: Fix + cleanup error paths in cxl_dev_context_init

2015-08-27 Thread Ian Munsie
From: Ian Munsie 

If the cxl_context_alloc() call fails, we return immediately without
releasing the reference on the AFU device, allowing it to leak.

This patch switches to using goto style error handling so that the
device is released in common code for both error paths, and will also
simplify things if we add additional initialisation in this function in
the future.

Signed-off-by: Ian Munsie 
---
 drivers/misc/cxl/api.c | 19 ---
 1 file changed, 12 insertions(+), 7 deletions(-)

diff --git a/drivers/misc/cxl/api.c b/drivers/misc/cxl/api.c
index f49e3e5..005adc7 100644
--- a/drivers/misc/cxl/api.c
+++ b/drivers/misc/cxl/api.c
@@ -25,19 +25,24 @@ struct cxl_context *cxl_dev_context_init(struct pci_dev 
*dev)
 
get_device(>dev);
ctx = cxl_context_alloc();
-   if (IS_ERR(ctx))
-   return ctx;
+   if (IS_ERR(ctx)) {
+   rc = PTR_ERR(ctx);
+   goto err_dev;
+   }
 
/* Make it a slave context.  We can promote it later? */
rc = cxl_context_init(ctx, afu, false, NULL);
-   if (rc) {
-   kfree(ctx);
-   put_device(>dev);
-   return ERR_PTR(-ENOMEM);
-   }
+   if (rc)
+   goto err_ctx;
cxl_assign_psn_space(ctx);
 
return ctx;
+
+err_ctx:
+   kfree(ctx);
+err_dev:
+   put_device(>dev);
+   return ERR_PTR(rc);
 }
 EXPORT_SYMBOL_GPL(cxl_dev_context_init);
 
-- 
2.1.4

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


[PATCH 1/2] cxl: Fix + cleanup error paths in cxl_dev_context_init

2015-08-27 Thread Ian Munsie
From: Ian Munsie imun...@au1.ibm.com

If the cxl_context_alloc() call fails, we return immediately without
releasing the reference on the AFU device, allowing it to leak.

This patch switches to using goto style error handling so that the
device is released in common code for both error paths, and will also
simplify things if we add additional initialisation in this function in
the future.

Signed-off-by: Ian Munsie imun...@au1.ibm.com
---
 drivers/misc/cxl/api.c | 19 ---
 1 file changed, 12 insertions(+), 7 deletions(-)

diff --git a/drivers/misc/cxl/api.c b/drivers/misc/cxl/api.c
index f49e3e5..005adc7 100644
--- a/drivers/misc/cxl/api.c
+++ b/drivers/misc/cxl/api.c
@@ -25,19 +25,24 @@ struct cxl_context *cxl_dev_context_init(struct pci_dev 
*dev)
 
get_device(afu-dev);
ctx = cxl_context_alloc();
-   if (IS_ERR(ctx))
-   return ctx;
+   if (IS_ERR(ctx)) {
+   rc = PTR_ERR(ctx);
+   goto err_dev;
+   }
 
/* Make it a slave context.  We can promote it later? */
rc = cxl_context_init(ctx, afu, false, NULL);
-   if (rc) {
-   kfree(ctx);
-   put_device(afu-dev);
-   return ERR_PTR(-ENOMEM);
-   }
+   if (rc)
+   goto err_ctx;
cxl_assign_psn_space(ctx);
 
return ctx;
+
+err_ctx:
+   kfree(ctx);
+err_dev:
+   put_device(afu-dev);
+   return ERR_PTR(rc);
 }
 EXPORT_SYMBOL_GPL(cxl_dev_context_init);
 
-- 
2.1.4

--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/