]> www.infradead.org Git - linux.git/commitdiff
cxl/region: Drop goto pattern in cxl_dax_region_alloc()
authorLi Ming <ming.li@zohomail.com>
Fri, 21 Feb 2025 01:24:52 +0000 (09:24 +0800)
committerDave Jiang <dave.jiang@intel.com>
Fri, 14 Mar 2025 21:46:32 +0000 (14:46 -0700)
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@huawei.com>
Reviewed-by: Dave Jiang <dave.jiang@intel.com>
Reviewed-by: Alison Schofield <alison.schofield@intel.com>
Reviewed-by: Ira Weiny <ira.weiny@intel.com>
Acked-by: Davidlohr Bueso <dave@stgolabs.net>
Signed-off-by: Li Ming <ming.li@zohomail.com>
Link: https://patch.msgid.link/20250221012453.126366-7-ming.li@zohomail.com
Signed-off-by: Dave Jiang <dave.jiang@intel.com>
drivers/cxl/core/region.c

index d8a71f9f9fa5bf144268313a43fb0f13ce5b7337..320a3f2181315515249591210738f606803af854 100644 (file)
@@ -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;
 }