On Tue, Aug 16, 2022 at 3:11 PM Ilpo Järvinen <ilpo.jarvinen@xxxxxxxxxxxxxxx> wrote: > > ->set_termios() callchains input old ktermios (mainly used as fallback > and feature compares). It is discarded right after returning from the > calls and should therefore not be modified by drivers because any such > change will get lost (instead, the changes must be applied to the new > ktermios). While doing this patchset, I found a few such issues that > were fixed earlier. > > Now enforce old ktermios constness. Another goodie is that "get" named > functions in tty_baudrate.c that previously mucked with the old > ktermios can no longer have such side-effects. I found out that the > ktermios adjustments made were dead-code for all in-tree archs anyway. Reviewed-by: Andy Shevchenko <andy.shevchenko@xxxxxxxxx> for all, but patch 3. I'm not sure we can blindly use old_termios settings, is there any guarantee that old_termios _always_ has a correct baud rate settings? > Ilpo Järvinen (8): > tty: Remove baudrate dead code & make ktermios params const > tty: Fix comment style in tty_termios_input_baud_rate() > serial: dz: Assume previous baudrate is valid > tty: Make tty_termios_copy_hw() old ktermios const > tty: Make ldisc ->set_termios() old ktermios const > serial: Make ->set_termios() old ktermios const > usb: serial: Make ->set_termios() old ktermios const > tty: Make ->set_termios() old ktermios const > > drivers/char/pcmcia/synclink_cs.c | 3 ++- > drivers/ipack/devices/ipoctal.c | 2 +- > drivers/mmc/core/sdio_uart.c | 4 ++-- > drivers/net/usb/hso.c | 3 ++- > drivers/s390/char/tty3270.c | 2 +- > drivers/staging/fwserial/fwserial.c | 3 ++- > drivers/staging/greybus/uart.c | 2 +- > drivers/tty/amiserial.c | 6 ++--- > drivers/tty/moxa.c | 9 +++---- > drivers/tty/mxser.c | 6 +++-- > drivers/tty/n_gsm.c | 3 ++- > drivers/tty/n_tty.c | 2 +- > drivers/tty/pty.c | 2 +- > drivers/tty/serial/21285.c | 2 +- > drivers/tty/serial/8250/8250_bcm7271.c | 2 +- > drivers/tty/serial/8250/8250_dw.c | 2 +- > drivers/tty/serial/8250/8250_dwlib.c | 3 ++- > drivers/tty/serial/8250/8250_dwlib.h | 2 +- > drivers/tty/serial/8250/8250_fintek.c | 2 +- > drivers/tty/serial/8250/8250_lpss.c | 2 +- > drivers/tty/serial/8250/8250_mid.c | 5 ++-- > drivers/tty/serial/8250/8250_mtk.c | 2 +- > drivers/tty/serial/8250/8250_omap.c | 2 +- > drivers/tty/serial/8250/8250_port.c | 6 ++--- > drivers/tty/serial/altera_jtaguart.c | 4 ++-- > drivers/tty/serial/altera_uart.c | 2 +- > drivers/tty/serial/amba-pl010.c | 2 +- > drivers/tty/serial/amba-pl011.c | 4 ++-- > drivers/tty/serial/apbuart.c | 2 +- > drivers/tty/serial/ar933x_uart.c | 2 +- > drivers/tty/serial/arc_uart.c | 2 +- > drivers/tty/serial/atmel_serial.c | 5 ++-- > drivers/tty/serial/bcm63xx_uart.c | 5 ++-- > drivers/tty/serial/clps711x.c | 2 +- > drivers/tty/serial/cpm_uart/cpm_uart_core.c | 2 +- > drivers/tty/serial/digicolor-usart.c | 2 +- > drivers/tty/serial/dz.c | 11 +++++---- > drivers/tty/serial/fsl_linflexuart.c | 2 +- > drivers/tty/serial/fsl_lpuart.c | 4 ++-- > drivers/tty/serial/icom.c | 5 ++-- > drivers/tty/serial/imx.c | 2 +- > drivers/tty/serial/ip22zilog.c | 2 +- > drivers/tty/serial/jsm/jsm_tty.c | 4 ++-- > drivers/tty/serial/lantiq.c | 4 ++-- > drivers/tty/serial/liteuart.c | 2 +- > drivers/tty/serial/lpc32xx_hs.c | 2 +- > drivers/tty/serial/max3100.c | 2 +- > drivers/tty/serial/max310x.c | 2 +- > drivers/tty/serial/mcf.c | 2 +- > drivers/tty/serial/men_z135_uart.c | 4 ++-- > drivers/tty/serial/meson_uart.c | 2 +- > drivers/tty/serial/milbeaut_usio.c | 3 ++- > drivers/tty/serial/mpc52xx_uart.c | 12 +++++----- > drivers/tty/serial/mps2-uart.c | 2 +- > drivers/tty/serial/msm_serial.c | 2 +- > drivers/tty/serial/mux.c | 2 +- > drivers/tty/serial/mvebu-uart.c | 2 +- > drivers/tty/serial/mxs-auart.c | 2 +- > drivers/tty/serial/omap-serial.c | 2 +- > drivers/tty/serial/owl-uart.c | 2 +- > drivers/tty/serial/pch_uart.c | 3 ++- > drivers/tty/serial/pic32_uart.c | 2 +- > drivers/tty/serial/pmac_zilog.c | 4 ++-- > drivers/tty/serial/pxa.c | 2 +- > drivers/tty/serial/qcom_geni_serial.c | 3 ++- > drivers/tty/serial/rda-uart.c | 2 +- > drivers/tty/serial/rp2.c | 5 ++-- > drivers/tty/serial/sa1100.c | 2 +- > drivers/tty/serial/samsung_tty.c | 2 +- > drivers/tty/serial/sb1250-duart.c | 2 +- > drivers/tty/serial/sc16is7xx.c | 2 +- > drivers/tty/serial/sccnxp.c | 3 ++- > drivers/tty/serial/serial-tegra.c | 3 ++- > drivers/tty/serial/serial_core.c | 8 +++---- > drivers/tty/serial/serial_txx9.c | 2 +- > drivers/tty/serial/sh-sci.c | 2 +- > drivers/tty/serial/sifive.c | 2 +- > drivers/tty/serial/sprd_serial.c | 5 ++-- > drivers/tty/serial/st-asc.c | 2 +- > drivers/tty/serial/stm32-usart.c | 2 +- > drivers/tty/serial/sunhv.c | 2 +- > drivers/tty/serial/sunplus-uart.c | 2 +- > drivers/tty/serial/sunsab.c | 2 +- > drivers/tty/serial/sunsu.c | 2 +- > drivers/tty/serial/sunzilog.c | 2 +- > drivers/tty/serial/tegra-tcu.c | 2 +- > drivers/tty/serial/timbuart.c | 4 ++-- > drivers/tty/serial/uartlite.c | 5 ++-- > drivers/tty/serial/ucc_uart.c | 3 ++- > drivers/tty/serial/vt8500_serial.c | 2 +- > drivers/tty/serial/xilinx_uartps.c | 3 ++- > drivers/tty/serial/zs.c | 2 +- > drivers/tty/synclink_gt.c | 3 ++- > drivers/tty/tty.h | 2 +- > drivers/tty/tty_baudrate.c | 26 +++++++-------------- > drivers/tty/tty_ioctl.c | 4 ++-- > drivers/usb/class/cdc-acm.c | 4 ++-- > drivers/usb/serial/ark3116.c | 2 +- > drivers/usb/serial/belkin_sa.c | 6 +++-- > drivers/usb/serial/ch341.c | 5 ++-- > drivers/usb/serial/cp210x.c | 13 +++++++---- > drivers/usb/serial/cypress_m8.c | 6 +++-- > drivers/usb/serial/digi_acceleport.c | 6 +++-- > drivers/usb/serial/f81232.c | 3 ++- > drivers/usb/serial/f81534.c | 4 ++-- > drivers/usb/serial/ftdi_sio.c | 6 +++-- > drivers/usb/serial/io_edgeport.c | 7 +++--- > drivers/usb/serial/io_ti.c | 8 ++++--- > drivers/usb/serial/ir-usb.c | 6 +++-- > drivers/usb/serial/iuu_phoenix.c | 3 ++- > drivers/usb/serial/keyspan.c | 3 ++- > drivers/usb/serial/keyspan_pda.c | 3 ++- > drivers/usb/serial/kl5kusb105.c | 5 ++-- > drivers/usb/serial/kobil_sct.c | 6 +++-- > drivers/usb/serial/mct_u232.c | 5 ++-- > drivers/usb/serial/mos7720.c | 5 ++-- > drivers/usb/serial/mos7840.c | 5 ++-- > drivers/usb/serial/mxuport.c | 4 ++-- > drivers/usb/serial/oti6858.c | 6 +++-- > drivers/usb/serial/pl2303.c | 3 ++- > drivers/usb/serial/quatech2.c | 4 ++-- > drivers/usb/serial/spcp8x5.c | 3 ++- > drivers/usb/serial/ssu100.c | 4 ++-- > drivers/usb/serial/ti_usb_3410_5052.c | 6 +++-- > drivers/usb/serial/upd78f0730.c | 4 ++-- > drivers/usb/serial/usb-serial.c | 3 ++- > drivers/usb/serial/whiteheat.c | 6 +++-- > drivers/usb/serial/xr_serial.c | 20 +++++++++------- > include/linux/serial_8250.h | 4 ++-- > include/linux/serial_core.h | 6 ++--- > include/linux/tty.h | 4 ++-- > include/linux/tty_driver.h | 4 ++-- > include/linux/tty_ldisc.h | 4 ++-- > include/linux/usb/serial.h | 4 ++-- > net/bluetooth/rfcomm/tty.c | 3 ++- > 135 files changed, 283 insertions(+), 234 deletions(-) > > -- > 2.30.2 > -- With Best Regards, Andy Shevchenko