diff mbox series

cxl/port: Fix NULL pointer access in devm_cxl_add_port()

Message ID 20230519215436.3394532-1-rrichter@amd.com
State Accepted
Commit a70fc4ed20a6118837b0aecbbf789074935f473b
Headers show
Series cxl/port: Fix NULL pointer access in devm_cxl_add_port() | expand

Commit Message

Robert Richter May 19, 2023, 9:54 p.m. UTC
In devm_cxl_add_port() the port creation may fail and its associated
pointer does not contain a valid address. During error message
generation this invalid port address is used. Fix that wrong address
access.

Fixes: f3cd264c4ec1 ("cxl: Unify debug messages when calling devm_cxl_add_port()")
Signed-off-by: Robert Richter <rrichter@amd.com>
---
 drivers/cxl/core/port.c | 7 +++----
 1 file changed, 3 insertions(+), 4 deletions(-)


base-commit: e764f12208b99ac7892c4e3f6bf88d71ca71036f

Comments

Dave Jiang May 19, 2023, 11:33 p.m. UTC | #1
On 5/19/23 2:54 PM, Robert Richter wrote:
> In devm_cxl_add_port() the port creation may fail and its associated
> pointer does not contain a valid address. During error message
> generation this invalid port address is used. Fix that wrong address
> access.
> 
> Fixes: f3cd264c4ec1 ("cxl: Unify debug messages when calling devm_cxl_add_port()")
> Signed-off-by: Robert Richter <rrichter@amd.com>

Reviewed-by: Dave Jiang <dave.jiang@intel.com>

> ---
>   drivers/cxl/core/port.c | 7 +++----
>   1 file changed, 3 insertions(+), 4 deletions(-)
> 
> diff --git a/drivers/cxl/core/port.c b/drivers/cxl/core/port.c
> index da2068475fa2..e7c284c890bc 100644
> --- a/drivers/cxl/core/port.c
> +++ b/drivers/cxl/core/port.c
> @@ -750,11 +750,10 @@ struct cxl_port *devm_cxl_add_port(struct device *host, struct device *uport,
>   
>   	parent_port = parent_dport ? parent_dport->port : NULL;
>   	if (IS_ERR(port)) {
> -		dev_dbg(uport, "Failed to add %s%s%s%s: %ld\n",
> -			dev_name(&port->dev),
> -			parent_port ? " to " : "",
> +		dev_dbg(uport, "Failed to add%s%s%s: %ld\n",
> +			parent_port ? " port to " : "",
>   			parent_port ? dev_name(&parent_port->dev) : "",
> -			parent_port ? "" : " (root port)",
> +			parent_port ? "" : " root port",
>   			PTR_ERR(port));
>   	} else {
>   		dev_dbg(uport, "%s added%s%s%s\n",
> 
> base-commit: e764f12208b99ac7892c4e3f6bf88d71ca71036f
Dan Williams May 20, 2023, 12:46 a.m. UTC | #2
Robert Richter wrote:
> In devm_cxl_add_port() the port creation may fail and its associated
> pointer does not contain a valid address. During error message
> generation this invalid port address is used. Fix that wrong address
> access.
> 
> Fixes: f3cd264c4ec1 ("cxl: Unify debug messages when calling devm_cxl_add_port()")
> Signed-off-by: Robert Richter <rrichter@amd.com>
> ---
>  drivers/cxl/core/port.c | 7 +++----
>  1 file changed, 3 insertions(+), 4 deletions(-)
> 
> diff --git a/drivers/cxl/core/port.c b/drivers/cxl/core/port.c
> index da2068475fa2..e7c284c890bc 100644
> --- a/drivers/cxl/core/port.c
> +++ b/drivers/cxl/core/port.c
> @@ -750,11 +750,10 @@ struct cxl_port *devm_cxl_add_port(struct device *host, struct device *uport,
>  
>  	parent_port = parent_dport ? parent_dport->port : NULL;
>  	if (IS_ERR(port)) {
> -		dev_dbg(uport, "Failed to add %s%s%s%s: %ld\n",
> -			dev_name(&port->dev),
> -			parent_port ? " to " : "",
> +		dev_dbg(uport, "Failed to add%s%s%s: %ld\n",
> +			parent_port ? " port to " : "",
>  			parent_port ? dev_name(&parent_port->dev) : "",
> -			parent_port ? "" : " (root port)",
> +			parent_port ? "" : " root port",
>  			PTR_ERR(port));

Looks good, applied.
diff mbox series

Patch

diff --git a/drivers/cxl/core/port.c b/drivers/cxl/core/port.c
index da2068475fa2..e7c284c890bc 100644
--- a/drivers/cxl/core/port.c
+++ b/drivers/cxl/core/port.c
@@ -750,11 +750,10 @@  struct cxl_port *devm_cxl_add_port(struct device *host, struct device *uport,
 
 	parent_port = parent_dport ? parent_dport->port : NULL;
 	if (IS_ERR(port)) {
-		dev_dbg(uport, "Failed to add %s%s%s%s: %ld\n",
-			dev_name(&port->dev),
-			parent_port ? " to " : "",
+		dev_dbg(uport, "Failed to add%s%s%s: %ld\n",
+			parent_port ? " port to " : "",
 			parent_port ? dev_name(&parent_port->dev) : "",
-			parent_port ? "" : " (root port)",
+			parent_port ? "" : " root port",
 			PTR_ERR(port));
 	} else {
 		dev_dbg(uport, "%s added%s%s%s\n",