diff mbox series

usb: typec: retimer: Check dev_set_name() return value

Message ID tencent_A06A37B6A0C0643DEC1524501525866FAC09@qq.com (mailing list archive)
State New, archived
Headers show
Series usb: typec: retimer: Check dev_set_name() return value | expand

Commit Message

Zhang Shurong Oct. 14, 2023, 9:24 a.m. UTC
It's possible that dev_set_name() returns -ENOMEM.
We fix this by catching the error and handling it.

Fixes: ddaf8d96f93b ("usb: typec: Add support for retimers")
Signed-off-by: Zhang Shurong <zhang_shurong@foxmail.com>
---
 drivers/usb/typec/retimer.c | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

Comments

Alan Stern Oct. 14, 2023, 2:39 p.m. UTC | #1
On Sat, Oct 14, 2023 at 05:24:53PM +0800, Zhang Shurong wrote:
> It's possible that dev_set_name() returns -ENOMEM.
> We fix this by catching the error and handling it.
> 
> Fixes: ddaf8d96f93b ("usb: typec: Add support for retimers")
> Signed-off-by: Zhang Shurong <zhang_shurong@foxmail.com>
> ---
>  drivers/usb/typec/retimer.c | 7 ++++++-
>  1 file changed, 6 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/usb/typec/retimer.c b/drivers/usb/typec/retimer.c
> index 4a7d1b5c4d86..f163856a78cd 100644
> --- a/drivers/usb/typec/retimer.c
> +++ b/drivers/usb/typec/retimer.c
> @@ -122,8 +122,13 @@ typec_retimer_register(struct device *parent, const struct typec_retimer_desc *d
>  	retimer->dev.class = &retimer_class;
>  	retimer->dev.type = &typec_retimer_dev_type;
>  	retimer->dev.driver_data = desc->drvdata;
> -	dev_set_name(&retimer->dev, "%s-retimer",
> +	ret = dev_set_name(&retimer->dev, "%s-retimer",
>  		     desc->name ? desc->name : dev_name(parent));
> +	if (ret) {
> +		dev_err(parent, "failed to register retimer (%d)\n", ret);
> +		put_device(&retimer->dev);
> +		return ERR_PTR(ret);
> +	}
>  
>  	ret = device_add(&retimer->dev);
>  	if (ret) {

It should not be necessary to do this.  If dev_set_name() fails then 
device_add() will also fail.

Alan Stern
Greg Kroah-Hartman Oct. 16, 2023, 5:47 p.m. UTC | #2
On Sat, Oct 14, 2023 at 05:24:53PM +0800, Zhang Shurong wrote:
> It's possible that dev_set_name() returns -ENOMEM.
> We fix this by catching the error and handling it.
> 
> Fixes: ddaf8d96f93b ("usb: typec: Add support for retimers")
> Signed-off-by: Zhang Shurong <zhang_shurong@foxmail.com>
> ---
>  drivers/usb/typec/retimer.c | 7 ++++++-
>  1 file changed, 6 insertions(+), 1 deletion(-)

How was this found?

How was this tested?
diff mbox series

Patch

diff --git a/drivers/usb/typec/retimer.c b/drivers/usb/typec/retimer.c
index 4a7d1b5c4d86..f163856a78cd 100644
--- a/drivers/usb/typec/retimer.c
+++ b/drivers/usb/typec/retimer.c
@@ -122,8 +122,13 @@  typec_retimer_register(struct device *parent, const struct typec_retimer_desc *d
 	retimer->dev.class = &retimer_class;
 	retimer->dev.type = &typec_retimer_dev_type;
 	retimer->dev.driver_data = desc->drvdata;
-	dev_set_name(&retimer->dev, "%s-retimer",
+	ret = dev_set_name(&retimer->dev, "%s-retimer",
 		     desc->name ? desc->name : dev_name(parent));
+	if (ret) {
+		dev_err(parent, "failed to register retimer (%d)\n", ret);
+		put_device(&retimer->dev);
+		return ERR_PTR(ret);
+	}
 
 	ret = device_add(&retimer->dev);
 	if (ret) {