cxl/core: cxl_mem_sanitize() cleanup
In cxl_mem_sanitize(), the down_read() and up_read() for cxl_region_rwsem can be simply replaced by a guard(rwsem_read), and the local variable 'rc' 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-3-ming.li@zohomail.com Signed-off-by: Dave Jiang <dave.jiang@intel.com>
This commit is contained in:
@@ -1222,23 +1222,19 @@ int cxl_mem_sanitize(struct cxl_memdev *cxlmd, u16 cmd)
|
||||
{
|
||||
struct cxl_memdev_state *mds = to_cxl_memdev_state(cxlmd->cxlds);
|
||||
struct cxl_port *endpoint;
|
||||
int rc;
|
||||
|
||||
/* synchronize with cxl_mem_probe() and decoder write operations */
|
||||
guard(device)(&cxlmd->dev);
|
||||
endpoint = cxlmd->endpoint;
|
||||
down_read(&cxl_region_rwsem);
|
||||
guard(rwsem_read)(&cxl_region_rwsem);
|
||||
/*
|
||||
* Require an endpoint to be safe otherwise the driver can not
|
||||
* be sure that the device is unmapped.
|
||||
*/
|
||||
if (endpoint && cxl_num_decoders_committed(endpoint) == 0)
|
||||
rc = __cxl_mem_sanitize(mds, cmd);
|
||||
else
|
||||
rc = -EBUSY;
|
||||
up_read(&cxl_region_rwsem);
|
||||
return __cxl_mem_sanitize(mds, cmd);
|
||||
|
||||
return rc;
|
||||
return -EBUSY;
|
||||
}
|
||||
|
||||
static int add_dpa_res(struct device *dev, struct resource *parent,
|
||||
|
||||
Reference in New Issue
Block a user