max3100_probe misses a call uart_unregister_driver in error path, this patch fixes that. Signed-off-by: Zheng Bin <zhengbin13@xxxxxxxxxx> --- drivers/tty/serial/max3100.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/drivers/tty/serial/max3100.c b/drivers/tty/serial/max3100.c index 0b5f21fbb53d..6d34ca2a3f7b 100644 --- a/drivers/tty/serial/max3100.c +++ b/drivers/tty/serial/max3100.c @@ -752,6 +752,7 @@ static int max3100_probe(struct spi_device *spi) if (!max3100s[i]) break; if (i == MAX_MAX3100) { + uart_unregister_driver(&max3100_uart_driver); dev_warn(&spi->dev, "too many MAX3100 chips\n"); mutex_unlock(&max3100s_lock); return -ENOMEM; @@ -759,6 +760,7 @@ static int max3100_probe(struct spi_device *spi) max3100s[i] = kzalloc(sizeof(struct max3100_port), GFP_KERNEL); if (!max3100s[i]) { + uart_unregister_driver(&max3100_uart_driver); dev_warn(&spi->dev, "kmalloc for max3100 structure %d failed!\n", i); mutex_unlock(&max3100s_lock); -- 2.31.1