On Mon, 07 Oct 2024 18:16:21 -0500 Ira Weiny <ira.weiny@xxxxxxxxx> wrote: > create_pmem_region_store() and create_ram_region_store() are identical > with the exception of the region mode. With the addition of DC region > mode this would end up being 3 copies of the same code. > > Refactor create_pmem_region_store() and create_ram_region_store() to use > a single common function to be used in subsequent DC code. > > Suggested-by: Fan Ni <fan.ni@xxxxxxxxxxx> > Signed-off-by: Ira Weiny <ira.weiny@xxxxxxxxx> Nice. Reviewed-by: Jonathan Cameron <Jonathan.Cameron@xxxxxxxxxx> Is it worth dragging out cleanup like this to the start of the series so Dave can queue it up as 'good to have whatever' and reduce this set a bit? Jonathan > --- > drivers/cxl/core/region.c | 28 +++++++++++----------------- > 1 file changed, 11 insertions(+), 17 deletions(-) > > diff --git a/drivers/cxl/core/region.c b/drivers/cxl/core/region.c > index ab00203f285a..2ca6148d108c 100644 > --- a/drivers/cxl/core/region.c > +++ b/drivers/cxl/core/region.c > @@ -2552,9 +2552,8 @@ static struct cxl_region *__create_region(struct cxl_root_decoder *cxlrd, > return devm_cxl_add_region(cxlrd, id, mode, CXL_DECODER_HOSTONLYMEM); > } > > + > +static ssize_t create_pmem_region_store(struct device *dev, > + struct device_attribute *attr, > + const char *buf, size_t len) > +{ > + return create_region_store(dev, buf, len, CXL_REGION_PMEM); > +} > DEVICE_ATTR_RW(create_pmem_region); > > static ssize_t create_ram_region_store(struct device *dev, > struct device_attribute *attr, > const char *buf, size_t len) > { > - struct cxl_root_decoder *cxlrd = to_cxl_root_decoder(dev); > - struct cxl_region *cxlr; > - int rc, id; > - > - rc = sscanf(buf, "region%d\n", &id); > - if (rc != 1) > - return -EINVAL; > - > - cxlr = __create_region(cxlrd, CXL_REGION_RAM, id); > - if (IS_ERR(cxlr)) > - return PTR_ERR(cxlr); > - > - return len; > + return create_region_store(dev, buf, len, CXL_REGION_RAM); > } > DEVICE_ATTR_RW(create_ram_region); > >