Re: [PATCH v2 1/3] linux/termios: clear k_termios.c_cflag & CIBAUD for non-split speed [BZ 33340]

H. Peter Anvin hpa@zytor.com
Tue Sep 16 14:06:59 GMT 2025


On September 16, 2025 5:07:08 AM PDT, Adhemerval Zanella Netto <adhemerval.zanella@linaro.org> wrote:
>
>
>On 16/09/25 06:36, H. Peter Anvin wrote:
>> On 2025-09-10 14:36, H. Peter Anvin wrote:
>>> After getting more experience with the various broken direct-to-ioctl
>>> termios2 hacks using Fedora 43 beta, I have found a fair number of
>>> cases where the software would fail to set, or clear CIBAUD for
>>> non-split-speed operation.
>>>
>>> Thus it seems will help improve compatibility to clear the kernel-side
>>> version of c_cflag & CIBAUD (having the same meaning to the Linux
>>> kernel as the speed 0 has for cfsetibaud(), i.e. force the input speed
>>> to equal the output speed) for non-split-speed operation, rather than
>>> having it explicitly equal the output speed in CBAUD.
>>>
>>> When writing the code that went into glibc 2.42 I had considered this
>>> issue, and had to make an educated guess which way would be more
>>> likely to break fewer things.  Unfortunately, it appears I guessed
>>> wrong.
>>>
>>> A third option would be to *always* set CIBAUD to __BOTHER, even for
>>> the standard baud rates.  However, that is an even bigger departure
>>> from legacy behavior, whereas this variant mostly preserves current
>>> behavior in terms of under what conditions buggy utilities will
>>> continue to work.
>>>
>>> This change is in tcsetattr() rather than
>>> ___termios2_canonicalize_speeds(), as it should not be run for
>>> tcgetattr(); that would break split speed support for the legacy
>>> interface versions of cfgetispeed() and cfsetispeed().
>>>
>>> [ v2: fixed comment style ]
>>>
>> 
>> *Gentle ping*
>> 
>
>It is on my backlog list, just sorting out some other tasks.  Do you 
>think we will need to backport these?

They are applicable (and apply) to 2.42+ only.


More information about the Libc-alpha mailing list