Re: [PATCH v1 4/4] serial: exar: change port_type ternary line wrapping

From: Greg Kroah-Hartman
Date: Fri Apr 19 2024 - 02:57:50 EST


On Thu, Apr 18, 2024 at 11:36:31AM -0400, Parker Newman wrote:
> From: Parker Newman <pnewman@xxxxxxxxxxxxxxx>
>
> Change line wrapping of ternary operators in
> cti_get_port_type_xr17c15x_xr17v25x() for better readability.
>
> Old example:
>
> port_type = port_num == 0 ?
> CTI_PORT_TYPE_RS232 : CTI_PORT_TYPE_RS422_485;
>
> New:
> port_type = port_num == 0 ? CTI_PORT_TYPE_RS232 :
> CTI_PORT_TYPE_RS422_485;
>
> Based on feedback from:
> Link: https://lore.kernel.org/linux-serial/f2353b8c-2079-b895-2707-f6be83161288@xxxxxxxxxxxxxxx
>
> Signed-off-by: Parker Newman <pnewman@xxxxxxxxxxxxxxx>
> ---
> drivers/tty/serial/8250/8250_exar.c | 20 ++++++++++----------
> 1 file changed, 10 insertions(+), 10 deletions(-)
>
> diff --git a/drivers/tty/serial/8250/8250_exar.c b/drivers/tty/serial/8250/8250_exar.c
> index 10725ad0f3ef..a76b4e5bab4e 100644
> --- a/drivers/tty/serial/8250/8250_exar.c
> +++ b/drivers/tty/serial/8250/8250_exar.c
> @@ -741,19 +741,19 @@ static enum cti_port_type cti_get_port_type_xr17c15x_xr17v25x(struct exar8250 *p
> break;
> // 1x RS232, 1x RS422/RS485
> case PCI_SUBDEVICE_ID_CONNECT_TECH_PCI_UART_1_1:
> - port_type = port_num == 0 ?
> - CTI_PORT_TYPE_RS232 : CTI_PORT_TYPE_RS422_485;
> + port_type = port_num == 0 ? CTI_PORT_TYPE_RS232 :
> + CTI_PORT_TYPE_RS422_485;

I missed this the first time, PLEASE never use ? : unless you have to.
Spell it out and use an if statement, the compiler doesn't care, and you
write code for people to read it first, cpus second. So this should
look like:
if (port_num)
port_type = CTI_PORT_TYPE_RS422_485;
else
port_type = CTI_PORT_TYPE_RS232;

Much simpler and easier to understand when you look at this in 10 years
and try to scan to figure out what went wrong with the logic here...

thanks,

greg k-h