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 |
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
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 --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'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(-)