On Wed, May 11, 2022 at 03:15:23PM +0800, Zheng Bin wrote: > 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); As Jiri said, this change would break the existing devices that are registered with this driver. How did you test this change? What tool found this? How was it verified? thanks, greg k-h