public inbox for netdev@vger.kernel.org
 help / color / mirror / Atom feed
From: Alejandro Lucero Palau <alucerop@amd.com>
To: Jonathan Cameron <jonathan.cameron@huawei.com>,
	alejandro.lucero-palau@amd.com
Cc: linux-cxl@vger.kernel.org, netdev@vger.kernel.org,
	dave.jiang@intel.com, dan.j.williams@intel.com,
	edward.cree@amd.com, davem@davemloft.net, kuba@kernel.org,
	pabeni@redhat.com, edumazet@google.com,
	Gregory Price <gourry@gourry.net>
Subject: Re: [PATCH v24 08/11] cxl: Export function for unwinding cxl by accelerators
Date: Tue, 24 Mar 2026 21:36:07 +0000	[thread overview]
Message-ID: <0d21a506-e158-4b80-8264-064ff891dde1@amd.com> (raw)
In-Reply-To: <20260324165056.000037b0@huawei.com>


On 3/24/26 16:50, Jonathan Cameron wrote:
> On Mon, 23 Mar 2026 11:31:14 +0000
> alejandro.lucero-palau@amd.com wrote:
>
>> From: Alejandro Lucero <alucerop@amd.com>
>>
>> Add cxl_unregister_region() to the accelerator driver API
>> for a clean exit.
>>
>> Signed-off-by: Alejandro Lucero <alucerop@amd.com>
>> Reviewed-by: Dave Jiang <dave.jiang@intel.com>
> For this I'm seeing an outstanding question from Gregory on v23.


Yes, I did not forget about it but I forgot to comment back.


The kreview is obviously wrong but I think it points out to the missing 
invocation I need to add. I did not suffer those problems Gregory 
mentions, but I think that is due to how I configure my testing kernel. 
So, yes, I need to remove the release action from inside this function 
to avoid invoking ... this same function. That is another thing that 
puzzled me when I saw that review, and it implies I need to have 
different functions for accelerator driver specific invocation and for 
normal release action call. Or maybe just an extra param only removing 
the devm release action if invoked by accelerators. I think I will go 
with this last one. Any suggestion?


Thank you


>> ---
>>   drivers/cxl/core/region.c | 17 ++++++++++++-----
>>   include/cxl/cxl.h         |  1 +
>>   2 files changed, 13 insertions(+), 5 deletions(-)
>>
>> diff --git a/drivers/cxl/core/region.c b/drivers/cxl/core/region.c
>> index 9c3ba911d865..8bb53a095290 100644
>> --- a/drivers/cxl/core/region.c
>> +++ b/drivers/cxl/core/region.c
>> @@ -2468,9 +2468,8 @@ static struct cxl_region *to_cxl_region(struct device *dev)
>>   	return container_of(dev, struct cxl_region, dev);
>>   }
>>   
>> -static void unregister_region(void *_cxlr)
>> +void cxl_unregister_region(struct cxl_region *cxlr)
>>   {
>> -	struct cxl_region *cxlr = _cxlr;
>>   	struct cxl_region_params *p = &cxlr->params;
>>   	int i;
>>   
>> @@ -2489,6 +2488,14 @@ static void unregister_region(void *_cxlr)
>>   	cxl_region_iomem_release(cxlr);
>>   	put_device(&cxlr->dev);
>>   }
>> +EXPORT_SYMBOL_NS_GPL(cxl_unregister_region, "CXL");
>> +
>> +static void __unregister_region(void *_cxlr)
>> +{
>> +	struct cxl_region *cxlr = _cxlr;
>> +
>> +	return cxl_unregister_region(cxlr);
>> +}
>>   
>>   static struct lock_class_key cxl_region_key;
>>   
>> @@ -2642,7 +2649,7 @@ static struct cxl_region *devm_cxl_add_region(struct cxl_root_decoder *cxlrd,
>>   	if (rc)
>>   		goto err;
>>   
>> -	rc = devm_add_action_or_reset(port->uport_dev, unregister_region, cxlr);
>> +	rc = devm_add_action_or_reset(port->uport_dev, __unregister_region, cxlr);
>>   	if (rc)
>>   		return ERR_PTR(rc);
>>   
>> @@ -2797,7 +2804,7 @@ static ssize_t delete_region_store(struct device *dev,
>>   	if (IS_ERR(cxlr))
>>   		return PTR_ERR(cxlr);
>>   
>> -	devm_release_action(port->uport_dev, unregister_region, cxlr);
>> +	devm_release_action(port->uport_dev, __unregister_region, cxlr);
>>   	put_device(&cxlr->dev);
>>   
>>   	return len;
>> @@ -3963,7 +3970,7 @@ static struct cxl_region *construct_region(struct cxl_root_decoder *cxlrd,
>>   
>>   	rc = __construct_region(cxlr, ctx);
>>   	if (rc) {
>> -		devm_release_action(port->uport_dev, unregister_region, cxlr);
>> +		devm_release_action(port->uport_dev, __unregister_region, cxlr);
>>   		return ERR_PTR(rc);
>>   	}
>>   
>> diff --git a/include/cxl/cxl.h b/include/cxl/cxl.h
>> index 122b3331469d..b8cdc604480a 100644
>> --- a/include/cxl/cxl.h
>> +++ b/include/cxl/cxl.h
>> @@ -236,4 +236,5 @@ struct cxl_endpoint_decoder *cxl_get_committed_decoder(struct cxl_memdev *cxlmd,
>>   						       struct cxl_region **cxlr);
>>   struct range;
>>   int cxl_get_region_range(struct cxl_region *region, struct range *range);
>> +void cxl_unregister_region(struct cxl_region *cxlr);
>>   #endif /* __CXL_CXL_H__ */

  reply	other threads:[~2026-03-24 21:36 UTC|newest]

Thread overview: 29+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-03-23 11:31 [PATCH v24 00/11] Type2 device basic support alejandro.lucero-palau
2026-03-23 11:31 ` [PATCH v24 01/11] sfc: add cxl support alejandro.lucero-palau
2026-03-24 16:29   ` Jonathan Cameron
2026-03-24 21:05     ` Alejandro Lucero Palau
2026-03-23 11:31 ` [PATCH v24 02/11] cxl/sfc: Map cxl regs alejandro.lucero-palau
2026-03-24 16:33   ` Jonathan Cameron
2026-03-24 21:06     ` Alejandro Lucero Palau
2026-03-23 11:31 ` [PATCH v24 03/11] cxl/sfc: Initialize dpa without a mailbox alejandro.lucero-palau
2026-03-23 11:31 ` [PATCH v24 04/11] cxl: Prepare memdev creation for type2 alejandro.lucero-palau
2026-03-23 11:31 ` [PATCH v24 05/11] sfc: create type2 cxl memdev alejandro.lucero-palau
2026-03-23 11:31 ` [PATCH v24 06/11] cxl/hdm: Add support for getting region from committed decoder alejandro.lucero-palau
2026-03-24 16:48   ` Jonathan Cameron
2026-03-24 21:20     ` Alejandro Lucero Palau
2026-03-24 17:32   ` Dave Jiang
2026-03-24 21:55     ` Alejandro Lucero Palau
2026-03-23 11:31 ` [PATCH v24 07/11] cxl: Add function for obtaining region range alejandro.lucero-palau
2026-03-23 11:31 ` [PATCH v24 08/11] cxl: Export function for unwinding cxl by accelerators alejandro.lucero-palau
2026-03-24 16:50   ` Jonathan Cameron
2026-03-24 21:36     ` Alejandro Lucero Palau [this message]
2026-03-26 21:28       ` Cheatham, Benjamin
2026-03-23 11:31 ` [PATCH v24 09/11] sfc: obtain decoder and region if committed by firmware alejandro.lucero-palau
2026-03-24 16:56   ` Jonathan Cameron
2026-03-24 21:43     ` Alejandro Lucero Palau
2026-03-24 17:38   ` Dave Jiang
2026-03-24 22:02     ` Alejandro Lucero Palau
2026-03-23 11:31 ` [PATCH v24 10/11] cxl: Avoid dax creation for accelerators alejandro.lucero-palau
2026-03-25  2:59   ` Alison Schofield
2026-03-23 11:31 ` [PATCH v24 11/11] sfc: support pio mapping based on cxl alejandro.lucero-palau
2026-03-23 22:18   ` Edward Cree

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=0d21a506-e158-4b80-8264-064ff891dde1@amd.com \
    --to=alucerop@amd.com \
    --cc=alejandro.lucero-palau@amd.com \
    --cc=dan.j.williams@intel.com \
    --cc=dave.jiang@intel.com \
    --cc=davem@davemloft.net \
    --cc=edumazet@google.com \
    --cc=edward.cree@amd.com \
    --cc=gourry@gourry.net \
    --cc=jonathan.cameron@huawei.com \
    --cc=kuba@kernel.org \
    --cc=linux-cxl@vger.kernel.org \
    --cc=netdev@vger.kernel.org \
    --cc=pabeni@redhat.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox