Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

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

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>
Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com>
Acked-by: Heikki Krogerus <heikki.krogerus@linux.intel.com>
Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
Link: https://lore.kernel.org/r/20220422222351.1297276-4-bjorn.andersson@linaro.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

authored by

Bjorn Andersson and committed by
Greg Kroah-Hartman
b9fa0292 bcd6a517

+10 -4
+10 -4
drivers/usb/typec/mux.c
··· 131 131 sw->dev.class = &typec_mux_class; 132 132 sw->dev.type = &typec_switch_dev_type; 133 133 sw->dev.driver_data = desc->drvdata; 134 - dev_set_name(&sw->dev, "%s-switch", 135 - desc->name ? desc->name : dev_name(parent)); 134 + ret = dev_set_name(&sw->dev, "%s-switch", desc->name ? desc->name : dev_name(parent)); 135 + if (ret) { 136 + put_device(&sw->dev); 137 + return ERR_PTR(ret); 138 + } 136 139 137 140 ret = device_add(&sw->dev); 138 141 if (ret) { ··· 341 338 mux->dev.class = &typec_mux_class; 342 339 mux->dev.type = &typec_mux_dev_type; 343 340 mux->dev.driver_data = desc->drvdata; 344 - dev_set_name(&mux->dev, "%s-mux", 345 - desc->name ? desc->name : dev_name(parent)); 341 + ret = dev_set_name(&mux->dev, "%s-mux", desc->name ? desc->name : dev_name(parent)); 342 + if (ret) { 343 + put_device(&mux->dev); 344 + return ERR_PTR(ret); 345 + } 346 346 347 347 ret = device_add(&mux->dev); 348 348 if (ret) {