From: Dave Jiang <dave.jiang@intel.com>
To: Dan Williams <dan.j.williams@intel.com>, linux-cxl@vger.kernel.org
Subject: Re: [PATCH 1/2] cxl/hdm: Fix double allocation of @cxlhdm
Date: Wed, 22 Feb 2023 09:57:12 -0700 [thread overview]
Message-ID: <bd3d3821-a861-be0a-8d55-80136217495a@intel.com> (raw)
In-Reply-To: <167703067936.185722.7908921750127154779.stgit@dwillia2-xfh.jf.intel.com>
On 2/21/23 6:51 PM, Dan Williams wrote:
> devm_cxl_setup_emulated_hdm() reallocates an instance of @cxlhdm that
> was already allocated at the start of devm_cxl_setup_hdm(). Only one is
> needed and devm_cxl_setup_emulated_hdm() does not do enough to warrant
> being an explicit helper.
>
> Fixes: 4474ce565ee4 ("cxl/hdm: Create emulated cxl_hdm for devices that do not have HDM decoders")
> Signed-off-by: Dan Williams <dan.j.williams@intel.com>
Reviewed-by: Dave Jiang <dave.jiang@intel.com>
> ---
> drivers/cxl/core/hdm.c | 34 ++++++----------------------------
> 1 file changed, 6 insertions(+), 28 deletions(-)
>
> diff --git a/drivers/cxl/core/hdm.c b/drivers/cxl/core/hdm.c
> index 45deda18ed32..520814130928 100644
> --- a/drivers/cxl/core/hdm.c
> +++ b/drivers/cxl/core/hdm.c
> @@ -101,27 +101,6 @@ static int map_hdm_decoder_regs(struct cxl_port *port, void __iomem *crb,
> BIT(CXL_CM_CAP_CAP_ID_HDM));
> }
>
> -static struct cxl_hdm *devm_cxl_setup_emulated_hdm(struct cxl_port *port,
> - struct cxl_endpoint_dvsec_info *info)
> -{
> - struct device *dev = &port->dev;
> - struct cxl_hdm *cxlhdm;
> -
> - if (!info->mem_enabled)
> - return ERR_PTR(-ENODEV);
> -
> - cxlhdm = devm_kzalloc(dev, sizeof(*cxlhdm), GFP_KERNEL);
> - if (!cxlhdm)
> - return ERR_PTR(-ENOMEM);
> -
> - cxlhdm->port = port;
> - cxlhdm->decoder_count = info->ranges;
> - cxlhdm->target_count = info->ranges;
> - dev_set_drvdata(&port->dev, cxlhdm);
> -
> - return cxlhdm;
> -}
> -
> /**
> * devm_cxl_setup_hdm - map HDM decoder component registers
> * @port: cxl_port to map
> @@ -138,13 +117,14 @@ struct cxl_hdm *devm_cxl_setup_hdm(struct cxl_port *port,
> cxlhdm = devm_kzalloc(dev, sizeof(*cxlhdm), GFP_KERNEL);
> if (!cxlhdm)
> return ERR_PTR(-ENOMEM);
> -
> cxlhdm->port = port;
> - crb = ioremap(port->component_reg_phys, CXL_COMPONENT_REG_BLOCK_SIZE);
> - if (!crb) {
> - if (info && info->mem_enabled)
> - return devm_cxl_setup_emulated_hdm(port, info);
> + dev_set_drvdata(dev, cxlhdm);
>
> + crb = ioremap(port->component_reg_phys, CXL_COMPONENT_REG_BLOCK_SIZE);
> + if (!crb && info && info->mem_enabled) {
> + cxlhdm->decoder_count = info->ranges;
> + cxlhdm->target_count = info->ranges;
> + } else if (!crb) {
> dev_err(dev, "No component registers mapped\n");
> return ERR_PTR(-ENXIO);
> }
> @@ -160,8 +140,6 @@ struct cxl_hdm *devm_cxl_setup_hdm(struct cxl_port *port,
> return ERR_PTR(-ENXIO);
> }
>
> - dev_set_drvdata(dev, cxlhdm);
> -
> return cxlhdm;
> }
> EXPORT_SYMBOL_NS_GPL(devm_cxl_setup_hdm, CXL);
>
next prev parent reply other threads:[~2023-02-22 16:57 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-02-22 1:51 [PATCH 0/2] cxl: DVSEC Range emulation fixups Dan Williams
2023-02-22 1:51 ` [PATCH 1/2] cxl/hdm: Fix double allocation of @cxlhdm Dan Williams
2023-02-22 12:53 ` Jonathan Cameron
2023-02-22 16:57 ` Dave Jiang [this message]
2023-02-22 1:51 ` [PATCH 2/2] cxl/hdm: Skip emulation when driver manages mem_enable Dan Williams
2023-02-22 13:22 ` Jonathan Cameron
2023-02-23 5:05 ` Dan Williams
2023-02-22 16:59 ` Dave Jiang
2023-03-31 16:33 ` Fan Ni
2023-02-24 1:14 ` [PATCH 0/2] cxl: DVSEC Range emulation fixups Gregory Price
2023-03-01 18:46 ` Dan Williams
2023-02-26 7:28 ` Gregory Price
2023-03-03 16:43 ` Gregory Price
2023-03-21 17:17 ` Gregory Price
2023-03-23 17:56 ` Dan Williams
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=bd3d3821-a861-be0a-8d55-80136217495a@intel.com \
--to=dave.jiang@intel.com \
--cc=dan.j.williams@intel.com \
--cc=linux-cxl@vger.kernel.org \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox