On Tue, Mar 23, 2021 at 07:25:58PM +0000, Alex Nemirovsky wrote: > Hi Greg, > > > On Mar 23, 2021, at 2:24 AM, Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx> wrote: > > > > On Thu, Feb 18, 2021 at 06:42:09PM -0800, Alex Nemirovsky wrote: > >> +static struct cortina_uart_port *cortina_uart_ports; > > > > Why is this not a per-device pointer? > > > >> +static void __exit cortina_uart_exit(void) > >> +{ > >> + platform_driver_unregister(&serial_cortina_driver); > >> + uart_unregister_driver(&cortina_uart_driver); > >> + kfree(cortina_uart_ports); > > > > Should not need to free this here, it should be tied to the device, not > > the driver. > > Would it be possible to provide a reference to an example > of a good way to do it. You have a device-specific data structure, put this information there. > >> +} > >> + > >> +module_init(cortina_uart_init); > >> +module_exit(cortina_uart_exit); > >> + > >> +MODULE_AUTHOR("Cortina-Access Inc."); > >> +MODULE_DESCRIPTION(" Cortina-Access UART driver"); > >> +MODULE_LICENSE("GPL"); > >> diff --git a/include/uapi/linux/serial_core.h b/include/uapi/linux/serial_core.h > >> index 62c2204..1931892 100644 > >> --- a/include/uapi/linux/serial_core.h > >> +++ b/include/uapi/linux/serial_core.h > >> @@ -277,4 +277,7 @@ > >> /* Freescale LINFlexD UART */ > >> #define PORT_LINFLEXUART 122 > >> > >> +/* Cortina-Access UART */ > >> +#define PORT_CORTINA_ACCESS 123 > > > > Also, no need for this, right? I would prefer to not add new ids if at > > all possible. > > Could you explain why these are no longer required and what has > been done in the tty design to make this obsolete? What do you use in userspace that requires this information to be sent from the kernel? thanks, greg k-h