On 4/28/25 2:43 PM, Robert Richter wrote:
> Commit 3f9e07531778 ("cxl/pci: simplify the check of mem_enabled in
> cxl_hdm_decode_init()") changed the code flow in this function. The
> root port is determined before a check to leave the function. Since
> the root port is not used by the check it can be moved to run the
> check first. This improves code readability and avoids unnesessary
> code execution.
>
> Signed-off-by: Robert Richter <rrichter@amd.com>
> Reviewed-by: Gregory Price <gourry@gourry.net>
> Reviewed-by: Davidlohr Bueso <dave@stgolabs.net>
> Reviewed-by: Alison Schofield <alison.schofield@intel.com>
> Reviewed-by: Fabio M. De Francesco <fabio.m.de.francesco@linux.intel.com>
> Tested-by: Gregory Price <gourry@gourry.net>
Reviewed-by: Dave Jiang <dave.jiang@intel.com>
> ---
> drivers/cxl/core/pci.c | 16 ++++++++--------
> 1 file changed, 8 insertions(+), 8 deletions(-)
>
> diff --git a/drivers/cxl/core/pci.c b/drivers/cxl/core/pci.c
> index 33c3bdd35b24..6386e84e51a4 100644
> --- a/drivers/cxl/core/pci.c
> +++ b/drivers/cxl/core/pci.c
> @@ -419,14 +419,6 @@ int cxl_hdm_decode_init(struct cxl_dev_state *cxlds, struct cxl_hdm *cxlhdm,
> if (!hdm)
> return -ENODEV;
>
> - root = to_cxl_port(port->dev.parent);
> - while (!is_cxl_root(root) && is_cxl_port(root->dev.parent))
> - root = to_cxl_port(root->dev.parent);
> - if (!is_cxl_root(root)) {
> - dev_err(dev, "Failed to acquire root port for HDM enable\n");
> - return -ENODEV;
> - }
> -
> if (!info->mem_enabled) {
> rc = devm_cxl_enable_hdm(&port->dev, cxlhdm);
> if (rc)
> @@ -435,6 +427,14 @@ int cxl_hdm_decode_init(struct cxl_dev_state *cxlds, struct cxl_hdm *cxlhdm,
> return devm_cxl_enable_mem(&port->dev, cxlds);
> }
>
> + root = to_cxl_port(port->dev.parent);
> + while (!is_cxl_root(root) && is_cxl_port(root->dev.parent))
> + root = to_cxl_port(root->dev.parent);
> + if (!is_cxl_root(root)) {
> + dev_err(dev, "Failed to acquire root port for HDM enable\n");
> + return -ENODEV;
> + }
> +
> for (i = 0, allowed = 0; i < info->ranges; i++) {
> struct device *cxld_dev;
>