2021-03-23 09:26:10

by Greg Kroah-Hartman

[permalink] [raw]
Subject: Re: [PATCH 1/3] tty: serial: Add UART driver for Cortina-Access platform

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.


> +}
> +
> +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.

thanks,

greg k-h


2021-03-24 07:23:44

by Alex Nemirovsky

[permalink] [raw]
Subject: Re: [PATCH 1/3] tty: serial: Add UART driver for Cortina-Access platform

Hi Greg,

> On Mar 23, 2021, at 2:24 AM, Greg Kroah-Hartman <[email protected]> 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.
>
>
>> +}
>> +
>> +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?
>
> thanks,
>
> greg k-h

2021-03-25 01:11:16

by Greg Kroah-Hartman

[permalink] [raw]
Subject: Re: [PATCH 1/3] tty: serial: Add UART driver for Cortina-Access platform

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 <[email protected]> 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