[PATCH v2] cxl: Use %pe to print error pointers

Shaikh Kamaluddin posted 1 patch 2 months ago
drivers/cxl/core/port.c   | 13 ++++++-------
drivers/cxl/core/region.c |  8 ++++----
2 files changed, 10 insertions(+), 11 deletions(-)
[PATCH v2] cxl: Use %pe to print error pointers
Posted by Shaikh Kamaluddin 2 months ago
Use the %pe printk format specifier to report error pointers directly
instead of printing PTR_ERR() as a long value.  A failed dport addition
then reports -EBUSY rather than -16, which is easier to follow when
tracing port and region setup with dynamic debug enabled.

Convert the five affected sites in drivers/cxl/core/port.c and
drivers/cxl/core/region.c.  PTR_ERR() uses in return statements are
unaffected and left unchanged.

drivers/cxl was scanned in full; these are the only conversion
candidates.

Found by: make coccicheck MODE=report M=drivers/cxl/
No functional change intended.

Signed-off-by: Shaikh Kamaluddin <shaikhkamal2012@gmail.com>
---
Compile tested only with cxl config on x86.

v2:
 - Reword commit message: lead with the code improvement, note coccinelle
   only as the tool used to locate the sites (Alison)
 - Capitalise subject per CXL convention (Alison)
 - Note that drivers/cxl was scanned in full and these are the only
   candidates (Alison)
 - Clarify that the patch is compile tested only
 - No code changes
Link to v1: https://lore.kernel.org/linux-cxl/20260801101217.12778-1-shaikhkamal2012@gmail.com/

 drivers/cxl/core/port.c   | 13 ++++++-------
 drivers/cxl/core/region.c |  8 ++++----
 2 files changed, 10 insertions(+), 11 deletions(-)

diff --git a/drivers/cxl/core/port.c b/drivers/cxl/core/port.c
index 1215ee4f4035..c9875e6af9f6 100644
--- a/drivers/cxl/core/port.c
+++ b/drivers/cxl/core/port.c
@@ -932,11 +932,10 @@ struct cxl_port *devm_cxl_add_port(struct device *host,
 
 	parent_port = parent_dport ? parent_dport->port : NULL;
 	if (IS_ERR(port)) {
-		dev_dbg(uport_dev, "Failed to add%s%s%s: %ld\n",
+		dev_dbg(uport_dev, "Failed to add%s%s%s: %pe\n",
 			parent_port ? " port to " : "",
 			parent_port ? dev_name(&parent_port->dev) : "",
-			parent_port ? "" : " root port",
-			PTR_ERR(port));
+			parent_port ? "" : " root port", port);
 	} else {
 		dev_dbg(uport_dev, "%s added%s%s%s\n",
 			dev_name(&port->dev),
@@ -1271,8 +1270,8 @@ struct cxl_dport *devm_cxl_add_dport(struct cxl_port *port,
 	dport = __devm_cxl_add_dport(port, dport_dev, port_id,
 				     component_reg_phys, CXL_RESOURCE_NONE);
 	if (IS_ERR(dport)) {
-		dev_dbg(dport_dev, "failed to add dport to %s: %ld\n",
-			dev_name(&port->dev), PTR_ERR(dport));
+		dev_dbg(dport_dev, "failed to add dport to %s: %pe\n",
+			dev_name(&port->dev), dport);
 	} else {
 		dev_dbg(dport_dev, "dport added to %s\n",
 			dev_name(&port->dev));
@@ -1305,8 +1304,8 @@ struct cxl_dport *devm_cxl_add_rch_dport(struct cxl_port *port,
 	dport = __devm_cxl_add_dport(port, dport_dev, port_id,
 				     CXL_RESOURCE_NONE, rcrb);
 	if (IS_ERR(dport)) {
-		dev_dbg(dport_dev, "failed to add RCH dport to %s: %ld\n",
-			dev_name(&port->dev), PTR_ERR(dport));
+		dev_dbg(dport_dev, "failed to add RCH dport to %s: %pe\n",
+			dev_name(&port->dev), dport);
 	} else {
 		dev_dbg(dport_dev, "RCH dport added to %s\n",
 			dev_name(&port->dev));
diff --git a/drivers/cxl/core/region.c b/drivers/cxl/core/region.c
index 1e211542b6b6..894df68a6074 100644
--- a/drivers/cxl/core/region.c
+++ b/drivers/cxl/core/region.c
@@ -682,8 +682,8 @@ static int alloc_hpa(struct cxl_region *cxlr, resource_size_t size)
 				    dev_name(&cxlr->dev));
 	if (IS_ERR(res)) {
 		dev_dbg(&cxlr->dev,
-			"HPA allocation error (%ld) for size:%pap in %s %pr\n",
-			PTR_ERR(res), &size, cxlrd->res->name, cxlrd->res);
+			"HPA allocation error (%pe) for size:%pap in %s %pr\n",
+			res, &size, cxlrd->res->name, cxlrd->res);
 		return PTR_ERR(res);
 	}
 
@@ -3773,9 +3773,9 @@ static struct cxl_region *construct_region(struct cxl_root_decoder *cxlrd,
 
 	if (IS_ERR(cxlr)) {
 		dev_err(cxlmd->dev.parent,
-			"%s:%s: %s failed assign region: %ld\n",
+			"%s:%s: %s failed assign region: %pe\n",
 			dev_name(&cxlmd->dev), dev_name(&cxled->cxld.dev),
-			__func__, PTR_ERR(cxlr));
+			__func__, cxlr);
 		return cxlr;
 	}
 

base-commit: f5098b6bae761e346ebcd9da7f95622c04733cff
-- 
2.43.0
Re: [PATCH v2] cxl: Use %pe to print error pointers
Posted by Dave Jiang 1 month, 4 weeks ago

On 8/2/26 4:20 AM, Shaikh Kamaluddin wrote:
> Use the %pe printk format specifier to report error pointers directly
> instead of printing PTR_ERR() as a long value.  A failed dport addition
> then reports -EBUSY rather than -16, which is easier to follow when
> tracing port and region setup with dynamic debug enabled.
> 
> Convert the five affected sites in drivers/cxl/core/port.c and
> drivers/cxl/core/region.c.  PTR_ERR() uses in return statements are
> unaffected and left unchanged.
> 
> drivers/cxl was scanned in full; these are the only conversion
> candidates.
> 
> Found by: make coccicheck MODE=report M=drivers/cxl/
> No functional change intended.
> 
> Signed-off-by: Shaikh Kamaluddin <shaikhkamal2012@gmail.com>

Applied to cxl/next
4ee75140669c

> ---
> Compile tested only with cxl config on x86.
> 
> v2:
>  - Reword commit message: lead with the code improvement, note coccinelle
>    only as the tool used to locate the sites (Alison)
>  - Capitalise subject per CXL convention (Alison)
>  - Note that drivers/cxl was scanned in full and these are the only
>    candidates (Alison)
>  - Clarify that the patch is compile tested only
>  - No code changes
> Link to v1: https://lore.kernel.org/linux-cxl/20260801101217.12778-1-shaikhkamal2012@gmail.com/
> 
>  drivers/cxl/core/port.c   | 13 ++++++-------
>  drivers/cxl/core/region.c |  8 ++++----
>  2 files changed, 10 insertions(+), 11 deletions(-)
> 
> diff --git a/drivers/cxl/core/port.c b/drivers/cxl/core/port.c
> index 1215ee4f4035..c9875e6af9f6 100644
> --- a/drivers/cxl/core/port.c
> +++ b/drivers/cxl/core/port.c
> @@ -932,11 +932,10 @@ struct cxl_port *devm_cxl_add_port(struct device *host,
>  
>  	parent_port = parent_dport ? parent_dport->port : NULL;
>  	if (IS_ERR(port)) {
> -		dev_dbg(uport_dev, "Failed to add%s%s%s: %ld\n",
> +		dev_dbg(uport_dev, "Failed to add%s%s%s: %pe\n",
>  			parent_port ? " port to " : "",
>  			parent_port ? dev_name(&parent_port->dev) : "",
> -			parent_port ? "" : " root port",
> -			PTR_ERR(port));
> +			parent_port ? "" : " root port", port);
>  	} else {
>  		dev_dbg(uport_dev, "%s added%s%s%s\n",
>  			dev_name(&port->dev),
> @@ -1271,8 +1270,8 @@ struct cxl_dport *devm_cxl_add_dport(struct cxl_port *port,
>  	dport = __devm_cxl_add_dport(port, dport_dev, port_id,
>  				     component_reg_phys, CXL_RESOURCE_NONE);
>  	if (IS_ERR(dport)) {
> -		dev_dbg(dport_dev, "failed to add dport to %s: %ld\n",
> -			dev_name(&port->dev), PTR_ERR(dport));
> +		dev_dbg(dport_dev, "failed to add dport to %s: %pe\n",
> +			dev_name(&port->dev), dport);
>  	} else {
>  		dev_dbg(dport_dev, "dport added to %s\n",
>  			dev_name(&port->dev));
> @@ -1305,8 +1304,8 @@ struct cxl_dport *devm_cxl_add_rch_dport(struct cxl_port *port,
>  	dport = __devm_cxl_add_dport(port, dport_dev, port_id,
>  				     CXL_RESOURCE_NONE, rcrb);
>  	if (IS_ERR(dport)) {
> -		dev_dbg(dport_dev, "failed to add RCH dport to %s: %ld\n",
> -			dev_name(&port->dev), PTR_ERR(dport));
> +		dev_dbg(dport_dev, "failed to add RCH dport to %s: %pe\n",
> +			dev_name(&port->dev), dport);
>  	} else {
>  		dev_dbg(dport_dev, "RCH dport added to %s\n",
>  			dev_name(&port->dev));
> diff --git a/drivers/cxl/core/region.c b/drivers/cxl/core/region.c
> index 1e211542b6b6..894df68a6074 100644
> --- a/drivers/cxl/core/region.c
> +++ b/drivers/cxl/core/region.c
> @@ -682,8 +682,8 @@ static int alloc_hpa(struct cxl_region *cxlr, resource_size_t size)
>  				    dev_name(&cxlr->dev));
>  	if (IS_ERR(res)) {
>  		dev_dbg(&cxlr->dev,
> -			"HPA allocation error (%ld) for size:%pap in %s %pr\n",
> -			PTR_ERR(res), &size, cxlrd->res->name, cxlrd->res);
> +			"HPA allocation error (%pe) for size:%pap in %s %pr\n",
> +			res, &size, cxlrd->res->name, cxlrd->res);
>  		return PTR_ERR(res);
>  	}
>  
> @@ -3773,9 +3773,9 @@ static struct cxl_region *construct_region(struct cxl_root_decoder *cxlrd,
>  
>  	if (IS_ERR(cxlr)) {
>  		dev_err(cxlmd->dev.parent,
> -			"%s:%s: %s failed assign region: %ld\n",
> +			"%s:%s: %s failed assign region: %pe\n",
>  			dev_name(&cxlmd->dev), dev_name(&cxled->cxld.dev),
> -			__func__, PTR_ERR(cxlr));
> +			__func__, cxlr);
>  		return cxlr;
>  	}
>  
> 
> base-commit: f5098b6bae761e346ebcd9da7f95622c04733cff
Re: [PATCH v2] cxl: Use %pe to print error pointers
Posted by Alison Schofield 1 month, 4 weeks ago
On Sun, Aug 02, 2026 at 04:50:29PM +0530, Shaikh Kamaluddin wrote:
> Use the %pe printk format specifier to report error pointers directly
> instead of printing PTR_ERR() as a long value.  A failed dport addition
> then reports -EBUSY rather than -16, which is easier to follow when
> tracing port and region setup with dynamic debug enabled.
> 
> Convert the five affected sites in drivers/cxl/core/port.c and
> drivers/cxl/core/region.c.  PTR_ERR() uses in return statements are
> unaffected and left unchanged.
> 
> drivers/cxl was scanned in full; these are the only conversion
> candidates.
> 
> Found by: make coccicheck MODE=report M=drivers/cxl/
> No functional change intended.
> 
> Signed-off-by: Shaikh Kamaluddin <shaikhkamal2012@gmail.com>

Reviewed-by: Alison Schofield <alison.schofield@intel.com>
Re: [PATCH v2] cxl: Use %pe to print error pointers
Posted by Richard Cheng 2 months ago
On Sun, Aug 02, 2026 at 04:50:29PM +0800, Shaikh Kamaluddin wrote:
> Use the %pe printk format specifier to report error pointers directly
> instead of printing PTR_ERR() as a long value.  A failed dport addition
> then reports -EBUSY rather than -16, which is easier to follow when
> tracing port and region setup with dynamic debug enabled.
> 
> Convert the five affected sites in drivers/cxl/core/port.c and
> drivers/cxl/core/region.c.  PTR_ERR() uses in return statements are
> unaffected and left unchanged.
> 
> drivers/cxl was scanned in full; these are the only conversion
> candidates.
> 
> Found by: make coccicheck MODE=report M=drivers/cxl/
> No functional change intended.
> 
> Signed-off-by: Shaikh Kamaluddin <shaikhkamal2012@gmail.com>

Reviewed-by: Richard Cheng <icheng@nvidia.com>


> ---
> Compile tested only with cxl config on x86.
> 
> v2:
>  - Reword commit message: lead with the code improvement, note coccinelle
>    only as the tool used to locate the sites (Alison)
>  - Capitalise subject per CXL convention (Alison)
>  - Note that drivers/cxl was scanned in full and these are the only
>    candidates (Alison)
>  - Clarify that the patch is compile tested only
>  - No code changes
> Link to v1: https://lore.kernel.org/linux-cxl/20260801101217.12778-1-shaikhkamal2012@gmail.com/
> 
>  drivers/cxl/core/port.c   | 13 ++++++-------
>  drivers/cxl/core/region.c |  8 ++++----
>  2 files changed, 10 insertions(+), 11 deletions(-)
> 
> diff --git a/drivers/cxl/core/port.c b/drivers/cxl/core/port.c
> index 1215ee4f4035..c9875e6af9f6 100644
> --- a/drivers/cxl/core/port.c
> +++ b/drivers/cxl/core/port.c
> @@ -932,11 +932,10 @@ struct cxl_port *devm_cxl_add_port(struct device *host,
>  
>  	parent_port = parent_dport ? parent_dport->port : NULL;
>  	if (IS_ERR(port)) {
> -		dev_dbg(uport_dev, "Failed to add%s%s%s: %ld\n",
> +		dev_dbg(uport_dev, "Failed to add%s%s%s: %pe\n",
>  			parent_port ? " port to " : "",
>  			parent_port ? dev_name(&parent_port->dev) : "",
> -			parent_port ? "" : " root port",
> -			PTR_ERR(port));
> +			parent_port ? "" : " root port", port);
>  	} else {
>  		dev_dbg(uport_dev, "%s added%s%s%s\n",
>  			dev_name(&port->dev),
> @@ -1271,8 +1270,8 @@ struct cxl_dport *devm_cxl_add_dport(struct cxl_port *port,
>  	dport = __devm_cxl_add_dport(port, dport_dev, port_id,
>  				     component_reg_phys, CXL_RESOURCE_NONE);
>  	if (IS_ERR(dport)) {
> -		dev_dbg(dport_dev, "failed to add dport to %s: %ld\n",
> -			dev_name(&port->dev), PTR_ERR(dport));
> +		dev_dbg(dport_dev, "failed to add dport to %s: %pe\n",
> +			dev_name(&port->dev), dport);
>  	} else {
>  		dev_dbg(dport_dev, "dport added to %s\n",
>  			dev_name(&port->dev));
> @@ -1305,8 +1304,8 @@ struct cxl_dport *devm_cxl_add_rch_dport(struct cxl_port *port,
>  	dport = __devm_cxl_add_dport(port, dport_dev, port_id,
>  				     CXL_RESOURCE_NONE, rcrb);
>  	if (IS_ERR(dport)) {
> -		dev_dbg(dport_dev, "failed to add RCH dport to %s: %ld\n",
> -			dev_name(&port->dev), PTR_ERR(dport));
> +		dev_dbg(dport_dev, "failed to add RCH dport to %s: %pe\n",
> +			dev_name(&port->dev), dport);
>  	} else {
>  		dev_dbg(dport_dev, "RCH dport added to %s\n",
>  			dev_name(&port->dev));
> diff --git a/drivers/cxl/core/region.c b/drivers/cxl/core/region.c
> index 1e211542b6b6..894df68a6074 100644
> --- a/drivers/cxl/core/region.c
> +++ b/drivers/cxl/core/region.c
> @@ -682,8 +682,8 @@ static int alloc_hpa(struct cxl_region *cxlr, resource_size_t size)
>  				    dev_name(&cxlr->dev));
>  	if (IS_ERR(res)) {
>  		dev_dbg(&cxlr->dev,
> -			"HPA allocation error (%ld) for size:%pap in %s %pr\n",
> -			PTR_ERR(res), &size, cxlrd->res->name, cxlrd->res);
> +			"HPA allocation error (%pe) for size:%pap in %s %pr\n",
> +			res, &size, cxlrd->res->name, cxlrd->res);
>  		return PTR_ERR(res);
>  	}
>  
> @@ -3773,9 +3773,9 @@ static struct cxl_region *construct_region(struct cxl_root_decoder *cxlrd,
>  
>  	if (IS_ERR(cxlr)) {
>  		dev_err(cxlmd->dev.parent,
> -			"%s:%s: %s failed assign region: %ld\n",
> +			"%s:%s: %s failed assign region: %pe\n",
>  			dev_name(&cxlmd->dev), dev_name(&cxled->cxld.dev),
> -			__func__, PTR_ERR(cxlr));
> +			__func__, cxlr);
>  		return cxlr;
>  	}
>  
> 
> base-commit: f5098b6bae761e346ebcd9da7f95622c04733cff
> -- 
> 2.43.0
> 
>