Messages in this thread Patch in this message | | | From | Haoran Liu <> | Subject | [PATCH] [tty/serial] 8250_acorn: Add error handling in serial_card_probe | Date | Wed, 29 Nov 2023 03:52:36 -0800 |
| |
This patch adds error handling to the serial_card_probe function in drivers/tty/serial/8250/8250_acorn.c. The serial8250_register_8250_port call within this function previously lacked proper handling for failure scenarios.
Signed-off-by: Haoran Liu <liuhaoran14@163.com> --- drivers/tty/serial/8250/8250_acorn.c | 9 +++++++++ 1 file changed, 9 insertions(+)
diff --git a/drivers/tty/serial/8250/8250_acorn.c b/drivers/tty/serial/8250/8250_acorn.c index 758c4aa203ab..378ae6936028 100644 --- a/drivers/tty/serial/8250/8250_acorn.c +++ b/drivers/tty/serial/8250/8250_acorn.c @@ -43,6 +43,7 @@ serial_card_probe(struct expansion_card *ec, const struct ecard_id *id) struct uart_8250_port uart; unsigned long bus_addr; unsigned int i; + int ret; info = kzalloc(sizeof(struct serial_card_info), GFP_KERNEL); if (!info) @@ -72,6 +73,14 @@ serial_card_probe(struct expansion_card *ec, const struct ecard_id *id) uart.port.mapbase = bus_addr + type->offset[i]; info->ports[i] = serial8250_register_8250_port(&uart); + if (IS_ERR(info->ports[i])) { + ret = PTR_ERR(info->ports[i]); + while (i--) + serial8250_unregister_port(info->ports[i]); + + kfree(info); + return ret; + } } return 0; -- 2.17.1
| |