[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <d3e99ce2-b2c4-42d5-95da-3711b27fd5de@intel.com>
Date: Wed, 19 Feb 2025 10:23:11 -0700
From: Dave Jiang <dave.jiang@...el.com>
To: Li Ming <ming.li@...omail.com>, dave@...olabs.net,
jonathan.cameron@...wei.com, alison.schofield@...el.com,
vishal.l.verma@...el.com, ira.weiny@...el.com, dan.j.williams@...el.com
Cc: linux-cxl@...r.kernel.org, linux-kernel@...r.kernel.org
Subject: Re: [PATCH v2 6/7] cxl/region: Drop goto pattern in
cxl_dax_region_alloc()
On 2/17/25 7:48 AM, Li Ming wrote:
> In cxl_dax_region_alloc(), there is a goto pattern to release the rwsem
> cxl_region_rwsem when the function returns, the down_read() and up_read
> can be replaced by a guard(rwsem_read) then the goto pattern can be
> removed.
>
> Reviewed-by: Jonathan Cameron <Jonathan.Cameron@...wei.com>
> Signed-off-by: Li Ming <ming.li@...omail.com>
Reviewed-by: Dave Jiang <dave.jiang@...el.com>
> ---
> drivers/cxl/core/region.c | 16 +++++-----------
> 1 file changed, 5 insertions(+), 11 deletions(-)
>
> diff --git a/drivers/cxl/core/region.c b/drivers/cxl/core/region.c
> index d8a71f9f9fa5..320a3f218131 100644
> --- a/drivers/cxl/core/region.c
> +++ b/drivers/cxl/core/region.c
> @@ -3038,17 +3038,13 @@ static struct cxl_dax_region *cxl_dax_region_alloc(struct cxl_region *cxlr)
> struct cxl_dax_region *cxlr_dax;
> struct device *dev;
>
> - down_read(&cxl_region_rwsem);
> - if (p->state != CXL_CONFIG_COMMIT) {
> - cxlr_dax = ERR_PTR(-ENXIO);
> - goto out;
> - }
> + guard(rwsem_read)(&cxl_region_rwsem);
> + if (p->state != CXL_CONFIG_COMMIT)
> + return ERR_PTR(-ENXIO);
>
> cxlr_dax = kzalloc(sizeof(*cxlr_dax), GFP_KERNEL);
> - if (!cxlr_dax) {
> - cxlr_dax = ERR_PTR(-ENOMEM);
> - goto out;
> - }
> + if (!cxlr_dax)
> + return ERR_PTR(-ENOMEM);
>
> cxlr_dax->hpa_range.start = p->res->start;
> cxlr_dax->hpa_range.end = p->res->end;
> @@ -3061,8 +3057,6 @@ static struct cxl_dax_region *cxl_dax_region_alloc(struct cxl_region *cxlr)
> dev->parent = &cxlr->dev;
> dev->bus = &cxl_bus_type;
> dev->type = &cxl_dax_region_type;
> -out:
> - up_read(&cxl_region_rwsem);
>
> return cxlr_dax;
> }
Powered by blists - more mailing lists