Re: [PATCH] usb: typec: retimer: Check dev_set_name() return value

From: Alan Stern
Date: Sat Oct 14 2023 - 10:39:49 EST


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@xxxxxxxxxxx>
> ---
> 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