serial: core: Fix error handling for serial_core_ctrl_device_add()
Checking for NULL is incorrect as serial_base_ctrl_add() uses ERR_PTR().
Let's also pass any returned error along, there's no reason to translate
all errors to -ENODEV.
Fixes: 84a9582fd2
("serial: core: Start managing serial controllers to enable runtime PM")
Signed-off-by: Tony Lindgren <tony@atomide.com>
Reviewed-by: Jiri Slaby <jirislaby@kernel.org>
Link: https://lore.kernel.org/r/20230602070007.59268-1-tony@atomide.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
539914240a
commit
49c80922ff
@ -3342,8 +3342,8 @@ int serial_core_register_port(struct uart_driver *drv, struct uart_port *port)
|
|||||||
ctrl_dev = serial_core_ctrl_find(drv, port->dev, port->ctrl_id);
|
ctrl_dev = serial_core_ctrl_find(drv, port->dev, port->ctrl_id);
|
||||||
if (!ctrl_dev) {
|
if (!ctrl_dev) {
|
||||||
new_ctrl_dev = serial_core_ctrl_device_add(port);
|
new_ctrl_dev = serial_core_ctrl_device_add(port);
|
||||||
if (!new_ctrl_dev) {
|
if (IS_ERR(new_ctrl_dev)) {
|
||||||
ret = -ENODEV;
|
ret = PTR_ERR(new_ctrl_dev);
|
||||||
goto err_unlock;
|
goto err_unlock;
|
||||||
}
|
}
|
||||||
ctrl_dev = new_ctrl_dev;
|
ctrl_dev = new_ctrl_dev;
|
||||||
|
Loading…
Reference in New Issue
Block a user