[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <ZgxBBioFa1HIFth8@smile.fi.intel.com>
Date: Tue, 2 Apr 2024 20:31:50 +0300
From: Andy Shevchenko <andriy.shevchenko@...ux.intel.com>
To: Hugo Villeneuve <hugo@...ovil.com>
Cc: Greg Kroah-Hartman <gregkh@...uxfoundation.org>,
linux-kernel@...r.kernel.org, linux-serial@...r.kernel.org,
Jiri Slaby <jirislaby@...nel.org>
Subject: Re: [PATCH v1 02/16] serial: max3100: Update uart_driver_registered
on driver removal
On Tue, Apr 02, 2024 at 01:18:27PM -0400, Hugo Villeneuve wrote:
> On Tue, 2 Apr 2024 18:38:08 +0300
> Andy Shevchenko <andriy.shevchenko@...ux.intel.com> wrote:
..
> > pr_debug("removing max3100 driver\n");
> > uart_unregister_driver(&max3100_uart_driver);
> > + uart_driver_registered = 0;
>
> At the beginning of the probe function, we have:
>
> -----------------------
> if (!uart_driver_registered) {
> uart_driver_registered = 1;
> retval = uart_register_driver(&max3100_uart_driver);
> if (retval) {
> printk(KERN_ERR "Couldn't register max3100 uart
> driver\n"); mutex_unlock(&max3100s_lock);
> return retval;
> ...
> -----------------------
>
> If uart_register_driver() fails, uart_driver_registered would still be
> true and would it prevent any other subsequent devices from being
> properly registered? If yes, then maybe "uart_driver_registered = 1"
> should be set only after a sucessfull call to uart_register_driver()?
Looks like yet another issue here (however I haven't hit it so far).
I guess I can combine both fixes. What do you think?
--
With Best Regards,
Andy Shevchenko
Powered by blists - more mailing lists