diff mbox series

[v5,3/7] usb: typec: mux: Check dev_set_name() return value

Message ID 20220422222351.1297276-4-bjorn.andersson@linaro.org
State Accepted
Commit b9fa0292490db39d6542f514117333d366ec0011
Headers show
Series typec: mux: Introduce support for multiple USB TypeC muxes | expand

Commit Message

Bjorn Andersson April 22, 2022, 10:23 p.m. UTC
It's possible that dev_set_name() returns -ENOMEM, catch and handle this.

Fixes: 3370db35193b ("usb: typec: Registering real device entries for the muxes")
Reported-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Acked-by: Heikki Krogerus <heikki.krogerus@linux.intel.com>
Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
---

Changes since v4:
- Added Fixes tag

 drivers/usb/typec/mux.c | 14 ++++++++++----
 1 file changed, 10 insertions(+), 4 deletions(-)

Comments

Andy Shevchenko April 26, 2022, 10:13 a.m. UTC | #1
On Sat, Apr 23, 2022 at 1:25 AM Bjorn Andersson
<bjorn.andersson@linaro.org> wrote:
>
> It's possible that dev_set_name() returns -ENOMEM, catch and handle this.

Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com>

> Fixes: 3370db35193b ("usb: typec: Registering real device entries for the muxes")
> Reported-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
> Acked-by: Heikki Krogerus <heikki.krogerus@linux.intel.com>
> Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
> ---
>
> Changes since v4:
> - Added Fixes tag
>
>  drivers/usb/typec/mux.c | 14 ++++++++++----
>  1 file changed, 10 insertions(+), 4 deletions(-)
>
> diff --git a/drivers/usb/typec/mux.c b/drivers/usb/typec/mux.c
> index c8340de0ed49..d2aaf294b649 100644
> --- a/drivers/usb/typec/mux.c
> +++ b/drivers/usb/typec/mux.c
> @@ -131,8 +131,11 @@ typec_switch_register(struct device *parent,
>         sw->dev.class = &typec_mux_class;
>         sw->dev.type = &typec_switch_dev_type;
>         sw->dev.driver_data = desc->drvdata;
> -       dev_set_name(&sw->dev, "%s-switch",
> -                    desc->name ? desc->name : dev_name(parent));
> +       ret = dev_set_name(&sw->dev, "%s-switch", desc->name ? desc->name : dev_name(parent));
> +       if (ret) {
> +               put_device(&sw->dev);
> +               return ERR_PTR(ret);
> +       }
>
>         ret = device_add(&sw->dev);
>         if (ret) {
> @@ -338,8 +341,11 @@ typec_mux_register(struct device *parent, const struct typec_mux_desc *desc)
>         mux->dev.class = &typec_mux_class;
>         mux->dev.type = &typec_mux_dev_type;
>         mux->dev.driver_data = desc->drvdata;
> -       dev_set_name(&mux->dev, "%s-mux",
> -                    desc->name ? desc->name : dev_name(parent));
> +       ret = dev_set_name(&mux->dev, "%s-mux", desc->name ? desc->name : dev_name(parent));
> +       if (ret) {
> +               put_device(&mux->dev);
> +               return ERR_PTR(ret);
> +       }
>
>         ret = device_add(&mux->dev);
>         if (ret) {
> --
> 2.35.1
>
diff mbox series

Patch

diff --git a/drivers/usb/typec/mux.c b/drivers/usb/typec/mux.c
index c8340de0ed49..d2aaf294b649 100644
--- a/drivers/usb/typec/mux.c
+++ b/drivers/usb/typec/mux.c
@@ -131,8 +131,11 @@  typec_switch_register(struct device *parent,
 	sw->dev.class = &typec_mux_class;
 	sw->dev.type = &typec_switch_dev_type;
 	sw->dev.driver_data = desc->drvdata;
-	dev_set_name(&sw->dev, "%s-switch",
-		     desc->name ? desc->name : dev_name(parent));
+	ret = dev_set_name(&sw->dev, "%s-switch", desc->name ? desc->name : dev_name(parent));
+	if (ret) {
+		put_device(&sw->dev);
+		return ERR_PTR(ret);
+	}
 
 	ret = device_add(&sw->dev);
 	if (ret) {
@@ -338,8 +341,11 @@  typec_mux_register(struct device *parent, const struct typec_mux_desc *desc)
 	mux->dev.class = &typec_mux_class;
 	mux->dev.type = &typec_mux_dev_type;
 	mux->dev.driver_data = desc->drvdata;
-	dev_set_name(&mux->dev, "%s-mux",
-		     desc->name ? desc->name : dev_name(parent));
+	ret = dev_set_name(&mux->dev, "%s-mux", desc->name ? desc->name : dev_name(parent));
+	if (ret) {
+		put_device(&mux->dev);
+		return ERR_PTR(ret);
+	}
 
 	ret = device_add(&mux->dev);
 	if (ret) {