On October 6, 2018 7:56:02 AM PDT, Johan Hovold <jo...@kernel.org> wrote:
>On Fri, Oct 05, 2018 at 10:35:54PM -0700, h...@zytor.com wrote:
>> On October 5, 2018 4:56:29 PM PDT, Alan Cox <alan@llwyncelyn.cymru>
>wrote:
>> >On Fri, 5 Oct 2018 13:00:05 -0700
>> >"H. Peter Anvin" <h...@zytor.com> wrote:
>> >
>> >> On 10/5/18 6:34 AM, Johan Hovold wrote:
>> >> >>
>> >> >> Specifically, are there any platforms:
>> >> >>
>> >> >> 1. where simply stuffing values into c_ispeed or c_ospeed and
>> >setting BOTHER
>> >> >>    can be used to set the baud rate, even for the "standard"
>baud
>> >rates
>> >> >>    (obviously breaking if the kernel is too old -- how old is
>> >that?)  
>> >> > 
>> >> > This should work on all archs that define BOTHER and IBSHIFT
>(for
>> >input
>> >> > rates), and also to set standard rates (c_cflag would get
>updated
>> >to a
>> >> > Bfoo value).
>> >> > 
>> >> > Alan added this (modulo some follow-up fixes) in edc6afc54968
>> >("[PATCH]
>> >> > tty: switch to ktermios and new framework").
>> >> >   
>> >> 
>> >> Would you happen to know if there are any architectures *other*
>than
>> >Alpha
>> >> which didn't support this by Linux 3.2 (the current glibc cutoff?)
>
>No, sorry. Some quick forensics didn't reveal any other at least.
>
>> >Alpha and Sparc were the only two oddities - because they used other
>> >people's existing APIs.
>
>> I just did massive cleanup with an axe, and close to -2000 lines of
>> code later,
>
>Nice.
>
>> four architectures are oddballs: sparc, alpha, powerpc, and mips. Of
>> those, alpha is the only one that still doesn't support BOTHER.
>> 
>> Also, both alpha and powerpc, especially the latter, can overrun the
>> baud_table.
>
>Good catch. These would be the only archs with CBAUDEX defined as 0.
>And
>this is actually leaking too... Can we plug powerpc by reducing CBAUD
>to
>the expected five bits (037), while handling alpha by defining BOTHER
>as
>you suggested? This would need to be backported to stable.
>
>Johan

I have plugged the hole I'm a better way by cleaning up a lot of the code in 
tty_baudrate.c ... which among other things has one of the most bizarrely coded 
for loops I have ever seen. I'll factor that out of my massive cleanup and 
together with BOTHER for Alpha should do the trick.
-- 
Sent from my Android device with K-9 Mail. Please excuse my brevity.

Reply via email to