All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jonathan Cameron <Jonathan.Cameron@Huawei.com>
To: Ira Weiny <ira.weiny@intel.com>
Cc: Dave Jiang <dave.jiang@intel.com>, Fan Ni <fan.ni@samsung.com>,
	"Navneet Singh" <navneet.singh@intel.com>,
	Jonathan Corbet <corbet@lwn.net>,
	"Andrew Morton" <akpm@linux-foundation.org>,
	Dan Williams <dan.j.williams@intel.com>,
	Davidlohr Bueso <dave@stgolabs.net>,
	"Alison Schofield" <alison.schofield@intel.com>,
	Vishal Verma <vishal.l.verma@intel.com>,
	<linux-cxl@vger.kernel.org>, <linux-doc@vger.kernel.org>,
	<nvdimm@lists.linux.dev>, <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH v6 05/27] cxl/hdm: Use guard() in cxl_dpa_set_mode()
Date: Thu, 7 Nov 2024 11:08:10 +0000	[thread overview]
Message-ID: <20241107110810.00000fc1@Huawei.com> (raw)
In-Reply-To: <20241105-dcd-type2-upstream-v6-5-85c7fa2140fe@intel.com>

On Tue, 05 Nov 2024 12:38:27 -0600
Ira Weiny <ira.weiny@intel.com> wrote:

> Additional DCD functionality is being added to this call which will be
> simplified by the use of guard() with the cxl_dpa_rwsem.
> 
> Convert the function to use guard() prior to adding DCD functionality.
> 
> Suggested-by: Jonathan Cameron <Jonathan.Cameron@Huawei.com>
> Signed-off-by: Ira Weiny <ira.weiny@intel.com>

You missed some RBs from v5 and I don't think this changed.

Reviewed-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>

Davidlohr also gave one.

> ---
>  drivers/cxl/core/hdm.c | 21 ++++++---------------
>  1 file changed, 6 insertions(+), 15 deletions(-)
> 
> diff --git a/drivers/cxl/core/hdm.c b/drivers/cxl/core/hdm.c
> index 3df10517a3278f228c7535fcbdb607d7b75bc879..463ba2669cea55194e2be2c26d02af75dde8d145 100644
> --- a/drivers/cxl/core/hdm.c
> +++ b/drivers/cxl/core/hdm.c
> @@ -424,7 +424,6 @@ int cxl_dpa_set_mode(struct cxl_endpoint_decoder *cxled,
>  	struct cxl_memdev *cxlmd = cxled_to_memdev(cxled);
>  	struct cxl_dev_state *cxlds = cxlmd->cxlds;
>  	struct device *dev = &cxled->cxld.dev;
> -	int rc;
>  
>  	switch (mode) {
>  	case CXL_DECODER_RAM:
> @@ -435,11 +434,9 @@ int cxl_dpa_set_mode(struct cxl_endpoint_decoder *cxled,
>  		return -EINVAL;
>  	}
>  
> -	down_write(&cxl_dpa_rwsem);
> -	if (cxled->cxld.flags & CXL_DECODER_F_ENABLE) {
> -		rc = -EBUSY;
> -		goto out;
> -	}
> +	guard(rwsem_write)(&cxl_dpa_rwsem);
> +	if (cxled->cxld.flags & CXL_DECODER_F_ENABLE)
> +		return -EBUSY;
>  
>  	/*
>  	 * Only allow modes that are supported by the current partition
> @@ -447,21 +444,15 @@ int cxl_dpa_set_mode(struct cxl_endpoint_decoder *cxled,
>  	 */
>  	if (mode == CXL_DECODER_PMEM && !resource_size(&cxlds->pmem_res)) {
>  		dev_dbg(dev, "no available pmem capacity\n");
> -		rc = -ENXIO;
> -		goto out;
> +		return -ENXIO;
>  	}
>  	if (mode == CXL_DECODER_RAM && !resource_size(&cxlds->ram_res)) {
>  		dev_dbg(dev, "no available ram capacity\n");
> -		rc = -ENXIO;
> -		goto out;
> +		return -ENXIO;
>  	}
>  
>  	cxled->mode = mode;
> -	rc = 0;
> -out:
> -	up_write(&cxl_dpa_rwsem);
> -
> -	return rc;
> +	return 0;
>  }
>  
>  int cxl_dpa_alloc(struct cxl_endpoint_decoder *cxled, unsigned long long size)
> 


  reply	other threads:[~2024-11-07 11:08 UTC|newest]

Thread overview: 34+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-11-05 18:38 [PATCH v6 00/27] DCD: Add support for Dynamic Capacity Devices (DCD) Ira Weiny
2024-11-05 18:38 ` [PATCH v6 01/27] range: Add range_overlaps() Ira Weiny
2024-11-05 18:38 ` [PATCH v6 02/27] ACPI/CDAT: Add CDAT/DSMAS shared and read only flag values Ira Weiny
2024-11-05 20:04   ` Rafael J. Wysocki
2024-11-05 18:38 ` [PATCH v6 03/27] dax: Document struct dev_dax_range Ira Weiny
2024-11-05 18:38 ` [PATCH v6 04/27] cxl/pci: Delay event buffer allocation Ira Weiny
2024-11-05 18:38 ` [PATCH v6 05/27] cxl/hdm: Use guard() in cxl_dpa_set_mode() Ira Weiny
2024-11-07 11:08   ` Jonathan Cameron [this message]
2024-11-07 19:46     ` Ira Weiny
2024-11-05 18:38 ` [PATCH v6 06/27] cxl/region: Refactor common create region code Ira Weiny
2024-11-05 18:38 ` [PATCH v6 07/27] cxl/mbox: Flag support for Dynamic Capacity Devices (DCD) ira.weiny
2024-11-05 18:38 ` [PATCH v6 08/27] cxl/mem: Read dynamic capacity configuration from the device ira.weiny
2024-11-05 18:38 ` [PATCH v6 09/27] cxl/core: Separate region mode from decoder mode ira.weiny
2024-11-05 18:38 ` [PATCH v6 10/27] cxl/region: Add dynamic capacity decoder and region modes ira.weiny
2024-11-05 18:38 ` [PATCH v6 11/27] cxl/hdm: Add dynamic capacity size support to endpoint decoders ira.weiny
2024-11-05 18:38 ` [PATCH v6 12/27] cxl/cdat: Gather DSMAS data for DCD regions Ira Weiny
2024-11-05 18:38 ` [PATCH v6 13/27] cxl/mem: Expose DCD partition capabilities in sysfs ira.weiny
2024-11-05 18:38 ` [PATCH v6 14/27] cxl/port: Add endpoint decoder DC mode support to sysfs ira.weiny
2024-11-05 18:38 ` [PATCH v6 15/27] cxl/region: Add sparse DAX region support ira.weiny
2024-11-05 18:38 ` [PATCH v6 16/27] cxl/events: Split event msgnum configuration from irq setup Ira Weiny
2024-11-05 18:38 ` [PATCH v6 17/27] cxl/pci: Factor out interrupt policy check Ira Weiny
2024-11-05 18:38 ` [PATCH v6 18/27] cxl/mem: Configure dynamic capacity interrupts ira.weiny
2024-11-05 18:38 ` [PATCH v6 19/27] cxl/core: Return endpoint decoder information from region search Ira Weiny
2024-11-05 18:38 ` [PATCH v6 20/27] cxl/extent: Process DCD events and realize region extents ira.weiny
2024-11-06 15:13   ` Li, Ming4
2024-11-07 11:29   ` Jonathan Cameron
2024-11-05 18:38 ` [PATCH v6 21/27] cxl/region/extent: Expose region extent information in sysfs ira.weiny
2024-11-05 18:38 ` [PATCH v6 22/27] dax/bus: Factor out dev dax resize logic Ira Weiny
2024-11-05 18:38 ` [PATCH v6 23/27] dax/region: Create resources on sparse DAX regions ira.weiny
2024-11-07 11:32   ` Jonathan Cameron
2024-11-05 18:38 ` [PATCH v6 24/27] cxl/region: Read existing extents on region creation ira.weiny
2024-11-05 18:38 ` [PATCH v6 25/27] cxl/mem: Trace Dynamic capacity Event Record ira.weiny
2024-11-05 18:38 ` [PATCH v6 26/27] tools/testing/cxl: Make event logs dynamic Ira Weiny
2024-11-05 18:38 ` [PATCH v6 27/27] tools/testing/cxl: Add DC Regions to mock mem data Ira Weiny

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20241107110810.00000fc1@Huawei.com \
    --to=jonathan.cameron@huawei.com \
    --cc=akpm@linux-foundation.org \
    --cc=alison.schofield@intel.com \
    --cc=corbet@lwn.net \
    --cc=dan.j.williams@intel.com \
    --cc=dave.jiang@intel.com \
    --cc=dave@stgolabs.net \
    --cc=fan.ni@samsung.com \
    --cc=ira.weiny@intel.com \
    --cc=linux-cxl@vger.kernel.org \
    --cc=linux-doc@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=navneet.singh@intel.com \
    --cc=nvdimm@lists.linux.dev \
    --cc=vishal.l.verma@intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.