On Wed, 29 Nov 2023 03:52:36 -0800 Haoran Liu <liuhaoran14@xxxxxxx> wrote: Hi, you should add a proper prefix to your patch, like: "serial: 8250_acorn: Add..." You can use "git log --oneline drivers/tty/serial" to have an idea on what prefix to add. > This patch adds error handling to the serial_card_probe > function in drivers/tty/serial/8250/8250_acorn.c. The You can drop the full path to the file (and also the file itself) in your commit log message, as this information is available in the diff. > serial8250_register_8250_port call within this function > previously lacked proper handling for failure scenarios. > > Signed-off-by: Haoran Liu <liuhaoran14@xxxxxxx> > --- > 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; I am just wondering if unregistering all ports in case one fails is the correct course of action? Looking at other drivers in the same folder (8250_exar, 8250_pericom, 8250_pci), they seem to abort registering new ports in case of error, but do not unregister previously registered ports? For 8250_pci1xxxx, in case of failure the for/loop still continues... For 8250_men_mcb however, the probe exit in case of error. Hugo Villeneuve. > + } > } > > return 0; > -- > 2.17.1 > >