mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* [PATCH v2] cxl/region: Fix memregion leaks in devm_cxl_add_region()
@ 2024-05-07  5:34 Li Zhijian
  2024-05-21  7:25 ` Zhijian Li (Fujitsu)
  2024-05-21 16:19 ` Dan Williams
  0 siblings, 2 replies; 3+ messages in thread
From: Li Zhijian @ 2024-05-07  5:34 UTC (permalink / raw)
  To: dave, jonathan.cameron, dave.jiang, alison.schofield,
	vishal.l.verma, ira.weiny, dan.j.williams, linux-cxl
  Cc: linux-kernel, Li Zhijian

Move the mode verification to __create_region() before allocating the
memregion to avoid the memregion leaks.

Fixes: 6e099264185d ("cxl/region: Add volatile region creation support")
Signed-off-by: Li Zhijian <lizhijian@fujitsu.com>
---
V2: Move the mode verification to __create_region() # Dan
---
 drivers/cxl/core/region.c | 18 +++++++++---------
 1 file changed, 9 insertions(+), 9 deletions(-)

diff --git a/drivers/cxl/core/region.c b/drivers/cxl/core/region.c
index 812b2948b6c6..18b95149640b 100644
--- a/drivers/cxl/core/region.c
+++ b/drivers/cxl/core/region.c
@@ -2352,15 +2352,6 @@ static struct cxl_region *devm_cxl_add_region(struct cxl_root_decoder *cxlrd,
 	struct device *dev;
 	int rc;
 
-	switch (mode) {
-	case CXL_DECODER_RAM:
-	case CXL_DECODER_PMEM:
-		break;
-	default:
-		dev_err(&cxlrd->cxlsd.cxld.dev, "unsupported mode %d\n", mode);
-		return ERR_PTR(-EINVAL);
-	}
-
 	cxlr = cxl_region_alloc(cxlrd, id);
 	if (IS_ERR(cxlr))
 		return cxlr;
@@ -2415,6 +2406,15 @@ static struct cxl_region *__create_region(struct cxl_root_decoder *cxlrd,
 {
 	int rc;
 
+	switch (mode) {
+	case CXL_DECODER_RAM:
+	case CXL_DECODER_PMEM:
+		break;
+	default:
+		dev_err(&cxlrd->cxlsd.cxld.dev, "unsupported mode %d\n", mode);
+		return ERR_PTR(-EINVAL);
+	}
+
 	rc = memregion_alloc(GFP_KERNEL);
 	if (rc < 0)
 		return ERR_PTR(rc);
-- 
2.29.2


^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH v2] cxl/region: Fix memregion leaks in devm_cxl_add_region()
  2024-05-07  5:34 [PATCH v2] cxl/region: Fix memregion leaks in devm_cxl_add_region() Li Zhijian
@ 2024-05-21  7:25 ` Zhijian Li (Fujitsu)
  2024-05-21 16:19 ` Dan Williams
  1 sibling, 0 replies; 3+ messages in thread
From: Zhijian Li (Fujitsu) @ 2024-05-21  7:25 UTC (permalink / raw)
  To: dave, jonathan.cameron, dave.jiang, alison.schofield,
	vishal.l.verma, ira.weiny, dan.j.williams, linux-cxl
  Cc: linux-kernel

ping


On 07/05/2024 13:34, Li Zhijian wrote:
> Move the mode verification to __create_region() before allocating the
> memregion to avoid the memregion leaks.
> 
> Fixes: 6e099264185d ("cxl/region: Add volatile region creation support")
> Signed-off-by: Li Zhijian <lizhijian@fujitsu.com>
> ---
> V2: Move the mode verification to __create_region() # Dan
> ---
>   drivers/cxl/core/region.c | 18 +++++++++---------
>   1 file changed, 9 insertions(+), 9 deletions(-)
> 
> diff --git a/drivers/cxl/core/region.c b/drivers/cxl/core/region.c
> index 812b2948b6c6..18b95149640b 100644
> --- a/drivers/cxl/core/region.c
> +++ b/drivers/cxl/core/region.c
> @@ -2352,15 +2352,6 @@ static struct cxl_region *devm_cxl_add_region(struct cxl_root_decoder *cxlrd,
>   	struct device *dev;
>   	int rc;
>   
> -	switch (mode) {
> -	case CXL_DECODER_RAM:
> -	case CXL_DECODER_PMEM:
> -		break;
> -	default:
> -		dev_err(&cxlrd->cxlsd.cxld.dev, "unsupported mode %d\n", mode);
> -		return ERR_PTR(-EINVAL);
> -	}
> -
>   	cxlr = cxl_region_alloc(cxlrd, id);
>   	if (IS_ERR(cxlr))
>   		return cxlr;
> @@ -2415,6 +2406,15 @@ static struct cxl_region *__create_region(struct cxl_root_decoder *cxlrd,
>   {
>   	int rc;
>   
> +	switch (mode) {
> +	case CXL_DECODER_RAM:
> +	case CXL_DECODER_PMEM:
> +		break;
> +	default:
> +		dev_err(&cxlrd->cxlsd.cxld.dev, "unsupported mode %d\n", mode);
> +		return ERR_PTR(-EINVAL);
> +	}
> +
>   	rc = memregion_alloc(GFP_KERNEL);
>   	if (rc < 0)
>   		return ERR_PTR(rc);

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH v2] cxl/region: Fix memregion leaks in devm_cxl_add_region()
  2024-05-07  5:34 [PATCH v2] cxl/region: Fix memregion leaks in devm_cxl_add_region() Li Zhijian
  2024-05-21  7:25 ` Zhijian Li (Fujitsu)
@ 2024-05-21 16:19 ` Dan Williams
  1 sibling, 0 replies; 3+ messages in thread
From: Dan Williams @ 2024-05-21 16:19 UTC (permalink / raw)
  To: Li Zhijian, dave, jonathan.cameron, dave.jiang, alison.schofield,
	vishal.l.verma, ira.weiny, dan.j.williams, linux-cxl
  Cc: linux-kernel, Li Zhijian

Li Zhijian wrote:
> Move the mode verification to __create_region() before allocating the
> memregion to avoid the memregion leaks.
> 
> Fixes: 6e099264185d ("cxl/region: Add volatile region creation support")
> Signed-off-by: Li Zhijian <lizhijian@fujitsu.com>
> ---
> V2: Move the mode verification to __create_region() # Dan
> ---
>  drivers/cxl/core/region.c | 18 +++++++++---------
>  1 file changed, 9 insertions(+), 9 deletions(-)

LGTM

Reviewed-by: Dan Williams <dan.j.williams@intel.com>

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2024-05-21 16:20 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-05-07  5:34 [PATCH v2] cxl/region: Fix memregion leaks in devm_cxl_add_region() Li Zhijian
2024-05-21  7:25 ` Zhijian Li (Fujitsu)
2024-05-21 16:19 ` Dan Williams

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®